ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

VMware虚拟机连接PLC全攻略:有线/无线桥接设置与网络排查

VMware虚拟机连接PLC全攻略:有线/无线桥接设置与网络排查 做自动化调试这些年碰到最多的问题之一就是同事抱着笔记本跑到现场打开VMware虚拟机里的博途在线扫描半天设备列表空空如也。很多人第一反应是PLC挂了其实绝大多数情况下是虚拟机的网络方式没配对。VM虚拟机连PLC这个需求在工控现场越来越常见——笔记本上装虚拟机跑博途、GX Works、STEP7一套电脑当好几台工作站用省事归省事可一旦网络设置不对PLC死活扫不到那才叫急人。这篇文章不绕弯子直接把VMware虚拟机通过有线和无线两种方式连接PLC的设置方法摊开讲。有线怎么桥接、无线有哪些坑、IP怎么规划、防火墙放行哪些端口全部按现场实操顺序来。适合正在学PLC编程的入门者也适合被虚拟机网络折腾过的调试工程师收藏备用。1. 先厘清VMware网络模式选对再动手1.1 三种网络模式到底差在哪VMware Workstation里新建虚拟机时网络适配器那一页会让你选网络模式常见的就三种桥接模式、NAT模式、仅主机模式。很多人不细想就直接默认了NAT结果到了现场发现怎么都连不上PLC原因就在这一步。网络模式虚拟机与外部设备的关系是否适合连接PLC桥接模式虚拟机像一台真实主机一样使用物理网卡直接挂在同一局域网里和PLC平级非常适合NAT模式虚拟机通过宿主机共享IP上网外部设备看不到虚拟机只能看到宿主机不适合PLC和编程软件难以主动发现虚拟机仅主机模式虚拟机只能与宿主机互通和外部物理网络完全隔离仅用于本地测试不适合连PLC桥接模式下虚拟机虽然装在宿主机里但对外表现就是一台插在同一个交换机上的独立电脑。它有自己的IP地址可以发广播、可以收组播、可以主动向外发起TCP连接也能被外部设备反过来访问。这个特性对PLC编程软件来说太重要了。NAT模式的问题恰恰相反。虚拟机躲在宿主机后面出站连接可以做但入站连接和二层广播都受限。而博途、GX Works这类软件的在线搜索靠的是在局域网里广播发现设备NAT模式下这些广播根本到不了PLC所在网络你就算把IP填得再准也扫不出设备。有人会想那我给NAT做端口映射行不行理论上能把PLC的102端口映射给虚拟机但设备发现这一步仍然很难搞定每换一台PLC就要改一次映射现场调试根本耗不起。1.2 PLC连接场景下为什么首选桥接模式把桥接模式理解成虚拟机就是另一台插在交换机上的调试电脑一切就通了。PLC的编程软件通过以太网和PLC通信底层走的都是标准TCP/IP协议。西门子S7系列用的是ISO-on-TCP三菱FX5U/Q系列走MC协议欧姆龙走FINSModbus TCP更直接就是502端口。这些协议在上位机和PLC建立连接的时候都需要双方在同一可路由的网络里并且上位机能够主动向PLC发起连接。桥接模式天然满足这个条件。虚拟机分配一个和PLC同网段的IP它发出的报文直接通过物理网卡转发出去PLC收到的连接请求和从物理机发出的没有任何区别。反过来PLC有任何主动上报虚拟机也能直接收到。整个通信链路中虚拟机相当于透明接入不存在中间的地址转换。这里还有个实操细节桥接模式必须选择正确的物理网卡。如果你的笔记本既有有线网卡又有无线网卡VMware的桥接默认可能选的是自动自动选择有时候会选错。举个例子你明明插着网线想走有线链路VMware却把虚拟机的流量交给了无线网卡那虚拟机里的网络自然就是不通的。所以到了现场第一件事就是确认VMnet0到底桥接在哪张网卡上。1.3 我的选择建议有线还是无线我的习惯是第一次连新PLC、下载固件、恢复出厂设置一律用有线直连。这时候PLC的IP可能是未知的甚至可能被前一个人改得面目全非你用无线链路还要先解决AP和网络发现的问题太绕。等PLC的IP确认、程序下载过一次之后日常在线监控和改几个参数无线就方便很多尤其你站在设备旁边还要同时看机械动作的时候。无线最大的问题其实是稳定性。Wi-Fi对延迟和丢包比有线敏感得多虽然TCP协议有重传机制兜底但PLC通信的超时时间通常设置得比较短一旦丢包率上来博途就会报连接中断设备不可访问之类的大红叉。所以我的原则是固件升级、大面积程序下载绝不用无线日常看状态、改参数可以用无线。2. 动手前必须做好的环境准备2.1 宿主机和虚拟机的网络基础检查很多人连不上PLC从头到尾都在虚拟机里折腾结果最后发现宿主机自己都没和PLC连通。所以动手之前先把宿主机的网络链路验证一遍。打开cmd输入下面两条命令ipconfig /all ping PLC的IP -t第一条命令看宿主机当前网络配置第二条命令验证物理链路。如果宿主机ping不通PLC先别开虚拟机把网线、IP地址、防火墙这些在物理机层面解决好。常见的坑包括宿主机和PLC不在同一网段、Windows防火墙拦截了ICMP回显、现场交换机端口被配置成了access模式导致VLAN不对。另外检查一下VMware Tools是否安装完整。虚拟机里没有网络适配器这个报错八成是VMware Tools没装好。在VMware菜单栏点击虚拟机 - 安装VMware Tools装完重启虚拟机虚拟网卡驱动才会正常工作。2.2 VMware虚拟网络编辑器的关键配置把VMware Workstation以管理员身份运行这一步很重要否则后面很多按钮都是灰色的。打开编辑 - 虚拟网络编辑器你会看到VMnet0、VMnet1、VMnet8三个默认虚拟网络VMnet0默认桥接模式VMnet1默认仅主机模式VMnet8默认NAT模式选中VMnet0在底部桥接到下拉菜单里选择你要用的物理网卡。用有线就选那个带Ethernet或者Realtek PCIe GbE Family Controller字样的网卡用无线就选带Wireless或WLAN字样的无线网卡。选错了后面全是白忙活。修改完点击应用再确定。如果你看到VMnet1或者VMnet8的状态是感叹号说明VMware的虚拟网卡配置和宿主机网络产生了冲突可以在虚拟网络编辑器里点击还原默认设置让VMware重建一遍虚拟网卡。注意这个操作会把你之前的自定义网络配置也清掉执行之前确认一下自己有没有存过重要配置。2.3 现场网络拓扑与IP规划思路现场最常见的三种网络拓扑第一种是直连笔记本的网口直接用网线插到PLC的网口上整个链路只有两台设备最简单也最可靠。第二种是经过交换机PLC和笔记本都插到同一台工业交换机上适合柜子里有多台PLC或者还有其他网络设备的情况。第三种就是无线路由器/AP中转PLC接交换机交换机接AP笔记本通过Wi-Fi接入。不管哪种拓扑IP规划的核心思路只有一个所有设备在同一个网段。给一个最常见的配置示例设备IP地址子网掩码网关PLC示例192.168.0.10255.255.255.0视现场网络而定宿主机物理网卡/无线网卡192.168.0.100255.255.255.0192.168.0.1虚拟机192.168.0.200255.255.255.0192.168.0.1如果PL C和电脑之间只有一个直连网线或者交换机没有路由器网关可以不填填了也无所谓。但如果PLC在192.168.1.x网段、电脑在192.168.0.x网段中间又有路由器那网关必须填正确否则就是跨网段不可达。我的建议很简单现场调试时尽量把电脑和PLC改成同一个网段所有跨网段的路由问题全部绕开减少变量。3. 有线方式连接PLC桥接物理网卡的完整操作3.1 物理链路怎么接才稳有线连接最稳但也有讲究。现在的电脑网卡基本都支持自动翻转直通线和交叉线都能用但个别老型号PLC的以太网模块对双工模式敏感。如果遇到能通但丢包的情况可以在电脑网卡属性的高级设置里把速度和双工从自动协商改成100 Mbps 全双工试一试。工业现场的干扰是个大问题变频器、伺服驱动器、大功率电机都是强干扰源。网线尽量用成品屏蔽网线别为了省事随便找一根普通网线凑合。线缆过长或质量差在干扰大的环境里很容易出现通信时断时续的情况那种问题排查起来特别耗时。另外直连PLC的时候不要经过多级交换机。有些柜子里设备多从PLC到笔记本可能要经过两三台交换机每一级交换都会引入一定的转发延迟级联太多还可能出现广播风暴风险。有条件的话笔记本直接插在与PLC同一台交换机上链路最短问题最少。3.2 桥接模式与网卡绑定的具体设置操作顺序很重要我按实际步骤来先关闭虚拟机电源。右键虚拟机 - 设置 - 网络适配器选择桥接模式。打开编辑 - 虚拟网络编辑器选中VMnet0确认底部桥接到选择的是有线网卡。如果宿主机有无线网卡也有有线网卡这里务必选有线那块别选错。启动虚拟机进入系统后打开设备管理器确认虚拟网卡已经正常识别。在虚拟机里设置静态IP与PLC处于同一网段。这里有个复制物理网络连接状态的选项如果勾选虚拟机的网卡连接状态会跟随物理网卡不勾选的话物理网卡断开时虚拟机网卡仍显示已连接。连PLC时这个选项影响不大勾不勾都行但如果你希望虚拟机在网线拔掉后依然保持MAC地址不变化保持默认不勾选也可以。3.3 虚拟机IP参数规划与连通性测试虚拟机里的设置和物理机没有区别。进入虚拟机Windows系统打开控制面板 - 网络和共享中心 - 更改适配器设置右键以太网 - 属性 - Internet协议版本4填入静态IP。比如PLC是192.168.0.10虚拟机就填192.168.0.200子网掩码255.255.255.0网关可以不填或者填现场路由器的IP。设置完点击确定然后回到cmd窗口测试ping 192.168.0.10 -t如果ping通了恭喜虚拟机到PLC的物理链路和IP配置都没问题可以直接打开编程软件连接。如果ping不通按这个顺序排查先看虚拟机IP是否真的生效用ipconfig确认再看宿主机是否占用了同一个IP导致冲突然后临时关闭虚拟机里的Windows防火墙排除系统拦截最后用ARP命令看看虚拟机的ARP表里有没有PLC的MAC地址如果ARP请求反复发出但没有响应说明二层有问题要么物理链路不通要么网线插错口。3.4 编程软件访问PLC时的额外检查IP通了不代表编程软件就能连上PLC因为不同品牌的PLC通信端口和防火墙要求不一样。西门子博途TIA Portal在线 - 可访问的设备 - 选择PN/IE - 开始搜索。搜不到的时候先用cmd测试TCP 102端口通不通telnet 192.168.0.10 102如果telnet直接提示无法打开连接说明PLC的端口不可达如果telnet能连上但博途搜不到多半是广播被Windows防火墙拦了。把虚拟机里的网络配置文件从公用网络改成专用网络或者临时关闭Windows防火墙再试一次问题通常就解决了。三菱GX Works3连接目标设置 - 以太网直接指定PLC的IP地址。三菱MC协议默认使用UDP/TCP 6000端口二进制通信是这个端口ASCII模式下是5001端口。测试方式也是telnet或者用第三方端口扫描工具确认。老的西门子STEP7/SIMATIC Manager连PLC的时候要配置S7ONLINE接口通过普通以太网卡配合TCP/IP接入点原理和博途一样重点是接入点的接口要指定到桥接后的虚拟机网卡。整理一份常用PLC通信端口速查品牌/协议端口说明西门子S7ISO-on-TCPTCP 102博途、STEP7在线访问三菱MC协议二进制TCP/UDP 6000GX Works3在线访问三菱MC协议ASCIITCP/UDP 5001具体看模块配置欧姆龙FINSUDP/TCP 9600在线访问常用Modbus TCPTCP 502通用协议4. 无线方式连接PLC踩过坑后的正确姿势4.1 无线连接PLC的适用场景与典型拓扑无线连接PLC在哪些场景下必须用第一种是柜内检修PLC装在设备深处网线根本够不着第二种是调试移动设备比如AGV、机械臂、行走小车实体网线根本没法插第三种是临时调试现场没有多余的网线插座只能靠Wi-Fi。无线方式连PLC拓扑结构其实和有线差不多PLC网口接交换机交换机接无线路由器或AP笔记本通过Wi-Fi接入。如果PLC本身就带Wi-Fi功能或者通过SCALANCE W这类工业无线以太网桥接入网络电脑直接用无线连AP就能访问PLC原理依然是一样的。所以无线连接的本质是宿主机通过Wi-Fi接入PLC所在的局域网然后虚拟机桥接到无线网卡让虚拟机也在这个局域网里。剩下的操作和有线桥接完全一致。4.2 无线网卡桥接的设置细节无线桥接的操作流程宿主机先连上现场Wi-Fi确保物理机能ping通PLC。注意这一步不是可选项一定要先验证。打开虚拟网络编辑器把VMnet0桥接到无线网卡选带Wireless的那块。虚拟机内把IP设置为和无线网络同一网段。如果虚拟机ping不通PLC但物理机通优先怀疑AP隔离。无线桥接连不上还有一个容易忽略的细节是无线网卡的省电模式。Windows为了省电默认允许系统关闭无线网卡导致虚拟机桥接的链路时不时断一下。在设备管理器里找到无线网卡 - 属性 - 电源管理取消勾选允许计算机关闭此设备以节约电源这个坑一定要提前排掉。VMware版本也有影响。我实测下来VMware Workstation 17对Intel AX210这类新款无线网卡的桥接支持很稳定如果还在用12.0甚至更老的版本无线桥接的兼容性确实一言难尽。真遇到这种情况升级VMware比折腾驱动省事得多。4.3 AP隔离、信道干扰与稳定性调优AP隔离是无线连接PLC最隐蔽的坑。很多无线路由器为了安全默认开启了AP隔离或者客户端隔离意思是同一个Wi-Fi网络里的无线客户端之间不能互相访问。这会导致什么现象宿主机能ping通PLC因为PLC是有线接入和无线的隔离策略可能不生效但虚拟机就算桥接到了无线网卡也ping不通另一个无线设备或者在跨有线和无线之间访问时直接失败。遇到这个问题登录路由器/AP管理界面把AP隔离、客户端隔离、用户隔离之类的开关关掉。如果是锐捷、华为这类ACAP的商用无线架构要在无线控制器的SSID配置里把用户间隔离或者组播隔离关掉。有些现场网络的隔离是安全策略必须保留的那就要找网络管理员单独给调试设备开一个不受隔离的VLAN。信道干扰也是无线连接不稳定的重要原因。工厂里变频器、伺服驱动器对2.4GHz的干扰非常严重表现就是Wi-Fi信号满格但ping PLC的延时忽高忽低甚至偶尔直接超时。解决办法优先用5GHz频段信道固定不要自动2.4GHz用1、6、11这三个不重叠信道中的一个5GHz选36~64或者149~165之间的固定信道。信号强度建议不低于-70dBm做程序监控这种对实时性要求高的操作最好在-60dBm以上。查看信号强度可以直接在Windows命令行输入netsh wlan show interfaces输出里的信号一栏就是当前信号百分比看到的数值低于50%就要注意了链路随时可能断。4.4 无线连接下的通信参数优化无线链路就算调试通了通信参数也得跟着调。PLC编程软件在线访问的超时时间默认都是按照有线网络设置的几百毫秒到一两秒不等。无线环境下一次TCP握手经过Wi-Fi转发耗时可能多出几十毫秒丢包重传时更久。如果超时时间设置太短就会出现偶尔能连上连上马上又断开的诡异现象。博途TIA Portal里可以在设备组态的连接机制中把超时时间相应调大。三菱GX Works3里以太网连接的响应超时设置建议从默认的1000毫秒改成5000毫秒。这些参数在无线调试时适当放宽通信稳定性会好很多。另外无线环境下不要开着在线监视所有PLC变量变量一多瞬时数据量大Wi-Fi带宽和丢包率立刻暴露问题。需要看什么变量就监视什么或者用监控表按需添加能明显减少通信压力。5. 常见问题排查与避坑速查5.1 高频故障对照表把这些年在现场踩过的坑整理成一张速查表排查问题的时候直接对号入座故障现象可能原因解决办法虚拟机里没有网络适配器VMware Tools未安装或损坏重装VMware Tools并重启虚拟机vmnet1网卡显示感叹号VMware虚拟网卡配置冲突虚拟网络编辑器 - 还原默认设置桥接后虚拟机无法访问PLC桥接网卡选错在VMnet0里手动选择正确的物理网卡宿主机能ping通PLC虚拟机ping不通AP隔离开启 / 防火墙拦截关闭AP隔离临时关闭Windows防火墙测试物理机和虚拟机都无法ping通PLCIP不在同一网段 / 网线问题统一IP段检查网线和交换机端口博途在线搜索不到设备广播被防火墙拦截 / 接入点配置错误将网络改为专用网络放行102端口telnet 102端口不通PLC网络配置异常 / 被交换机策略拦截检查PLC侧IP和端口检查交换机端口策略无线连接时断时续信号弱 / 信道拥挤 / 无线网卡省电换5GHz频段固定信道关闭省电模式虚拟机IP一直获取不到虚拟网卡DHCP失败 / 模式不对改用静态IP重新指定桥接网卡5.2 一套标准的排查流程遇到连不上PLC的情况我建议按照下面这个顺序排查不要东一下西一下第一步关掉虚拟机先在宿主机上ping PLC。如果宿主机都不通说明问题出在物理链路、IP规划或PLC本身虚拟机怎么改都没用。这一步能帮你把问题范围缩小一半。第二步确认虚拟机网络模式是桥接模式并且VMnet0绑定到了正确的物理网卡。第三步确认虚拟机IP和PLC在同一个网段且没有IP冲突。用ipconfig查看虚拟机实际生效的IP用arp -a查看ARP表有没有PLC的MAC。第四步在虚拟机上ping PLC。通了继续下一步不通检查防火墙、AP隔离和网卡省电设置。第五步ping通了但编程软件还是连不上用telnet测试对应端口。端口通软件还报错大概率是广播发现被防火墙挡了把Windows防火墙关闭或者调整网络配置文件为专用网络。第六步以上手段都用完了还不行上Wireshark抓包。过滤条件icmp tcp.port 102看虚拟机和PLC之间的报文交互。如果只有ARP请求反复重发但没有应答说明二层被隔离了如果有TCP SYN发出但一直收不到SYN-ACK说明PLC端口没起来或者PLC侧防火墙在拦。抓包能让你从瞎猜变成精准定位。5.3 一些实际项目中总结的小技巧最后分享几个只有踩过坑才总结得出来的小经验。第一现场有多台调试电脑的时候提前规划好各自的固定IP比如A同事用.200B同事用.201谁也别抢谁的。PLC的IP冲突比网络不通还难查因为RS485? 不是以太网里IP冲突会导致ARP表反复漂移现象是时通时不通。第二VMware虚拟机里做网络改动之前先给虚拟机拍个快照。同一台虚拟机可能配多个网络场景一旦改乱了恢复快照比重新配置快得多。第三现场无线Wi-Fi不稳定的情况下程序下载和固件升级尽量用有线在线监控用无线两条腿走路。这个我前面强调过这里再强调一次因为真的有人无线下载固件失败导致PLC模块变砖返修周期能把项目拖垮。第四如果现场PLC的IP是拨码开关或者存储卡设定的别只靠软件扫描先看PLC面板和硬件手册确认当前IP。有些老款S7-300带CP343模块IP是用网线一根一根拨出来的你在电脑上扫描半天它在另一个网段根本不鸟你。第五虚拟机里建议关闭IPv6。某些老型号PLC或者第三方协议栈在处理IPv6地址时兼容性不好会出现奇怪的无响应问题关掉IPv6后反而一切正常。这个原因我没有深挖到底层但实测解决过不少诡异故障。最后再说回我自己现在每次到现场不管之前配置过多少遍都会老老实实先做一件事在宿主机上ping通PLC再开虚拟机。别看这步简单它能帮你把问题范围一下子缩小一半。虚拟网络编辑器记得用管理员权限打开改完桥接网卡后重启一次虚拟机很多莫名其妙的扫不到设备问题到这一步就能解决。
返回列表