免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

VMware虚拟机中博途V15连接PLC的完整避坑指南

VMware虚拟机中博途V15连接PLC的完整避坑指南 写这篇东西的起因是最近在项目现场折腾了一整天VMware虚拟机里的博途V15程序都写好了仿真也没问题结果一下载就卡壳死活连不上PLC。后来发现根本不是博途的问题就是虚拟机网络设置那点破事。这种坑我在好几个项目里都踩过索性把整个过程和排查思路理一遍给还在虚拟机里挣扎的朋友一个参考。先说清楚为什么要在虚拟机里跑博途V15这绝对不是闲得慌。工控这行你永远不知道客户现场电脑里装了什么乱七八糟的软件很多组态软件、驱动、加密狗驱动之间互相打架是家常便饭。用VMware隔离出一个干净的Windows环境专门跑博途至少能保证软件本身不出幺蛾子。但问题恰恰出在这个“隔离”上虚拟机里的Windows和宿主机之间有一层虚拟化网络这层东西要是没配置好博途的通信请求就出不了虚拟机自然也就找不到PLC了。所以这篇避坑指南的核心就是三件事VMware网络模式怎么选、虚拟机里的Windows系统网络怎么配、博途V15里的PG/PC接口怎么设置。三件事环环相扣哪个环节断了都连不上。1. 先弄明白虚拟机网络这回事别急着动手配置1.1 虚拟机网络和我们平时用的物理网卡有什么不同很多朋友第一次在虚拟机里跑博途会下意识地以为网络设置跟在物理机上装博途没区别插上网线、配个IP、打开软件搜设备就完事了。但其实虚拟机多了一层虚拟网卡和虚拟交换机的概念。在VMware里虚拟机里的Windows系统看到的是一张虚拟网卡VMware Virtual Ethernet Adapter这张网卡并不是真实的物理硬件它只是VMware在虚拟机里模拟出来的一块网卡。实际的数据包要真正发到物理网络上还需要经过宿主机上的VMware虚拟网桥服务进行转发。这个转发的过程就是VMware里说的三种网络模式桥接模式Bridged、网络地址转换模式NAT、仅主机模式Host-Only。对于博途和PLC的通信绝大多数情况只能用桥接模式。原因下面详细说。1.2 为什么博途连PLC一定要用桥接模式而不是NAT先说个最核心的观点博途和PLC之间的通信走的是以太网上的TCP/IP或ISO-on-TCP协议PLC编程口本质上就是一个以太网设备博途连PLC的过程就是一台设备向另一台以太网设备发起标准网络连接的过程。听起来很绕打个比方你就明白了物理机连PLC是“两个人面对面说话”相机的桥接模式就是“中间有个透明的电话线两边的声音一样清晰”NAT模式则是“中间隔了个翻译机会话双方不直接见面”。在工控环境里PLC一般是一个静态IP地址它可不会去请求什么DHCP服务很多PLC出厂IP是固定的比如西门子S7-1200默认是192.168.0.1它只会在设定的网段里默默等待别的设备连接它。博途在虚拟机里工作时它并不知道自己是在虚拟机里它只会跟自己的虚拟网卡说我要访问某个IP地址。这个时候如果用的是NAT模式虚拟机里的博途发出的数据包会先交给VMware的NAT服务相当于宿主机上的一个代理网关由NAT服务把源IP改成宿主机的IP再发出去。对于PLC来说它看到的源IP是宿主机而非虚拟机——但问题在于博途的通信不只是建立TCP连接那么简单它还需要用S7comm等协议进行设备发现和多播广播。NAT模式下广播包和部分UDP包会被过滤或者修改博途经常搜不到设备即便输入了正确的IP也可能连接超时。所以我在这里强烈建议只要是要跟PLC做上下载、在线诊断、HMI仿真通讯虚拟机网络模式必须选择“桥接模式”不要思来想去测试NAT。光这一点就能排除掉一半以上的连接故障。2. VMware网络模式选型与配置按这个步骤来基本稳了2.1 三种模式的核心区别一张表看清网络模式虚拟机IP归属是否能被外部设备直接访问工控场景适用性桥接模式Bridged与宿主机同一局域网网段可以虚拟机就是一个独立主机最推荐可用于博途连接PLCNAT模式私有网段如192.168.x.x的VMnet8网段不能直接访问需端口映射不推荐广播协议会被过滤仅主机模式Host-Only私有网段如192.168.x.x的VMnet1网段仅能与宿主机通信基本不适用除非接虚拟PLC仿真这张表你记在心里到了现场调试的时候先确认虚拟机网络模式是不是桥接这个比什么都重要。2.2 桥接模式的具体设置步骤设置路径是VMware Workstation菜单栏“编辑” “虚拟网络编辑器”。在弹出的窗口里能看到VMnet0、VMnet1、VMnet8等条目。VMnet0默认就是桥接模式的虚拟网络通常显示为“桥接模式自动”。但这里有一个非常关键的细节VMnet0默认桥接的物理网卡是“自动”的。如果你的宿主机上同时有有线网卡和无线网卡这种情况在笔记本上太太太常见了VMware可能自动选择无线网卡进行桥接或者干脆在无线和有线之间来回切换。而工程师现场调试时PLC通常是用网线直连笔记本的有线网口如果VMnet0桥接到了无线网卡虚拟机里的博途发出的数据包根本不会走有线网口那自然找不到PLC。必须手动指定桥接到有线网卡在“虚拟网络编辑器”窗口中选择VMnet0。在“桥接到”下拉框中不要选择“自动”手动选择你的有线网卡名称比如“Intel(R) Ethernet Connection I219-LM”或“Realtek PCIe GbE Family Controller”。点击“应用”并关闭。这一步是很多教程不讲的“隐藏坑”我本人曾经含泪吃过一次亏之后每次新建虚拟机都会先检查这一步。2.3 虚拟机网卡类型怎么选e1000e和vmxnet3的区别在VMware里为虚拟机添加网络适配器的时候会让你选择设备类型常见的选项有英特尔千兆网卡e1000eVMXNET 3需要安装VMware Tools后才可用英特尔82545EM老版本用这里我的建议是选择e1000e。原因很简单VMXNET3虽然性能好但需要VMware Tools正确驱动而工业现场用的虚拟机经常出现Tools没装好或版本不匹配的情况一旦驱动异常网卡在Windows设备管理器里可能呈现未识别状态博途就会看丢这块网卡。而e1000e是英特尔的标准虚拟网卡Windows系统自带驱动不依赖额外软件兼容性最好。你可能会问性能会差很多吗博途的上下载通信数据量并不大和视频流、大文件拷贝完全是两码事e1000e完全足够没必要冒险用VMXNET3给自己挖坑。2.4 无线网卡桥接的隐藏限制越早知道越好这里得单独说一节无线网卡的事。很多工程师现场调试用的是笔记本不带网口或者网口坏了只能靠USB转网卡或者无线连接PLC的无线模块。如果你只有无线网卡还想在虚拟机里跑博途连PLC那我要先泼一盆冷水无线网络下桥接模式经常会出问题。原因有两个大部分无线AP都开启了“AP隔离”功能也就是无线设备之间不能直接通信这在公共WiFi环境下尤其常见。PLC和笔记本虽然连在同一个WiFi下但AP隔离开启后PLC的广播包和单播包都到不了笔记本。无线网卡的驱动权限比有线网卡高VMware在无线网卡上做桥接时会受到更多限制数据包捕获和注入的稳定性明显不如有线网卡。如果你必须用无线方式调试建议买一个USB转有线网卡RJ45接口转USB成本不高稳定性立竿见影。否则你会在“为什么搜不到设备”这个问题上反复崩溃很久。3. 虚拟机系统资源与性能保障网络之外的第二大坑3.1 博途V15到底吃多少内存和CPU才算够网络设置只是“通不通”的问题但虚拟机里博途跑得快不快、稳不稳又是另一回事。尤其是当你开着博途、仿真软件、HMI组态软件可能还要同时开着PDF手册和浏览器查资料虚拟机里的那点资源一会儿就见底了。博途V15官方推荐的配置是8GB内存起步但要跑得流畅尤其是做HMI仿真时16GB内存是更踏实的底线。这个16GB是指虚拟机分配的内存不是宿主机总内存。所以如果宿主机只有16GB你给虚拟机分了8GB宿主机的系统加上其他常驻软件运行起来也会很卡。实际项目里我一般这样分配宿主机16GB以上内存时虚拟机分配8GB宿主机32GB内存时虚拟机分配16GBCPU核心给4个硬盘必须用SSD机械硬盘跑虚拟机里的博途会让你怀疑人生启动一个项目能等三分钟。处理器设置里勾选“虚拟化Intel VT-x/EPT”或“AMD-V/RVI”虚拟化引擎这个是应对某些需要嵌套虚拟化场景的博途本身不强制但勾上可以提升整体性能。3.2 固定IP还是DHCP工控现场必须用固定IP在虚拟机里运行的Windows系统默认的网卡设置通常是“自动获取IP地址DHCP”。桥接模式下虚拟机会去问家里的路由器或者现场交换机要IP。这在办公环境没问题但在工控现场往往是个大坑现场PLC网络的网段可能和宿主机DHCP分配的网段不一致。PLC网络可能是纯工业以太网根本没有DHCP服务器比如直接网线怼PLC网口谁去分配IP即使有DHCP服务器它分配的IP地址可能会跳一旦重启虚拟机或者网络重连IP就变了下次打开博途又得重新配置连接极其耽误事。所以在把虚拟机里的Windows网卡IP改成固定IP之前先想清楚整个网络的网段规划。最常见的项目场景是笔记本的有线网口通过网线直连PLC网口PLC的IP是192.168.0.1网段是192.168.0.x。那么虚拟机里的Windows有线网卡就应该设置成192.168.0.10子网掩码255.255.255.0网关可以不填因为只有一个网段没有跨网段通信需求。这样虚拟机里的博途就能以192.168.0.10这个身份与PLC通信。固定IP的设置非常简单在网络适配器属性里双击“Internet协议版本4TCP/IPv4”选择“使用下面的IP地址”填入规划好的地址就行。这里我提醒一个细节网关地址不一定要填但如果你在同一个局域网里既要连PLC又要连路由器上网那就得填上真实网关地址否则虚拟机里Windows可能上不了网。3.3 宿主机和虚拟机的快照策略关键时刻能救命用虚拟机跑博途有一个得天独厚的优势那就是快照功能。装完博途、配好网络环境、确认一切功能正常之后马上给虚拟机打一个快照。这样万一以后软件装坏了、系统中毒了、或者Windows更新把网卡驱动搞崩了你只需要恢复到快照就能满血复活不用重装博途V15——那可是一个动辄几十G的安装包装一次至少一小时。我在实际项目中是这样操作的全新安装Windows 10/1164位初始化系统安装VMware Tools确认拖拽文件、共享文件夹正常安装博途V15确保授权正常、能打开现有项目配置好网络模式为桥接固定IP用博途实际连接一次PLC确保上下载、诊断全部正常关机状态下在VMware里为该虚拟机创建一个快照命名“博途V15基础环境-已联网”。以后到任何一个现场先用这个快照克隆一个新副本出来用就算现场环境搞坏了原始快照还在损失降到最低。这个好习惯帮我省下了无数个重新安装博途的夜晚强烈建议你收藏。4. 博途V15侧的连接配置实操从新建项目到在线下载的全流程4.1 PG/PC接口设置这是博途里最重要的一个入口网络层面都理清了接下来就是博途软件本身了。很多人在虚拟机里配置了好久还是连不上PLC卡住的点往往在“PG/PC接口设置”上。博途V15里无论是S7-1200、S7-1500还是S7-300/400需要额外配置在“项目树”中找到PLC站点双击“在线访问”然后在“PG/PC接口的类型”下拉框中你会看到一堆选项比如“PN/IE”、“DP”、“MPI”等等。连接以太网设备必须选择“PN/IE”。选完接口类型之后还有一个关键选项“PG/PC接口”。这里要特别注意必须选择VMware桥接出来的那块虚拟网卡在虚拟机里的Windows系统下这块网卡通常显示为“Intel(R) 82574L Gigabit Network Connection”e1000e或“VMware VMXNET3 Ethernet Adapter”VMXNET3。如果这里选成了其他项比如某一个不存在的虚拟接口或者物理机被直通进来的某块网卡博途就找不到PLC。这个设置的完整入口是项目树 在线访问 你的电脑名称 双击“在线访问” 在右侧窗口中设置“PG/PC接口的类型”为“PN/IE”“PG/PC接口”选具体网卡名称。我第一次用博途的时候就是在这里卡了一个小时当时根本不知道还要选接口默认选项连不上设备折腾了一通才发现是要手动指定网卡。4.2 搜索可访问的设备能不能发现PLC一目了然在PG/PC接口设置正确的前提下点击右侧窗口里的“搜索设备”博途会在该网卡的网段内广播搜索S7系列PLC和部分第三方设备。如果虚拟机网络模式和IP设置都正确这里一般能列出来PLC的IP地址、设备名称和MAC地址一目了然。注意这里有一个细节如果你搜到了PLC但显示的状态是“不可访问”多半是IP地址和博途项目的设备IP不一致。比如PLC的实际IP是192.168.0.1但博途项目里设备的IP是192.168.1.1那就肯定不会通。这种情况下可以在搜索到的设备列表里选中PLC然后点击右侧的“在线”和“下载”等操作博途会提示你设备IP与项目IP不一致询问是否修改项目或下载变更后的IP。当然你可以在不搜索的情况下直接输入PLC的IP地址。在“在线访问”窗口的“输入设备的IP地址”栏填上PLC的IP然后点击“开始搜索”。如果你明确知道PLC的IP这个方式比广播搜索更快速、更直接。尤其是现场设备比较多、网络广播流量大的时候直接搜IP反而比广播更快更稳。4.3 S7-1200和S7-1500的直接连接设置细节以最常见的S7-1200为例说一下完整路径虚拟机网络模式为桥接模式有线网卡指定到物理有线网口。虚拟机内Windows固定IP为192.168.0.10示例子网掩码255.255.255.0。PLC上电网线直连笔记本有线网口。PLC初始IP通常是192.168.0.1具体以设备铭牌或手册为准不同固件版本可能有差异如果PLC IP不是这个要先用其他方式比如通过显示面板、存储卡或博途在线访问窗口的“可访问设备”确认。打开博途V15项目选中PLC站点双击“在线访问”设置PG/PC接口类型为“PN/IE”接口选择VMware虚拟网卡。点击“搜索设备”应能看到IP为192.168.0.1的S7-1200选中并点击“下载”。第一次下载时如果项目里设备的IP地址和PLC实际不一致博途会弹出对话框让你选择“仅下载硬件配置”或“下载并修改PLC的IP地址”此时要阅读清楚再操作。S7-1500的流程基本一样但S7-1500默认IP有可能是192.168.1.10不同版本和订货号也可能不同一定要先查手册确认没有确认之前不要乱猜猜错IP再折腾半天都是常事。4.4 在博途里查看PLC资源使用情况这个技巧很实用装好虚拟机、配好网络、成功连接PLC以后你还可以用博途查一下PLC的资源使用情况这个功能在“在线与诊断”窗口里。路径是选中PLC站点 双击“在线和诊断” 在右侧窗口里查看“诊断”菜单下的“存储器”、“通信负载”等标签页。我之前遇到过PLC运行中突然报错停机打开诊断一看是工作存储器的使用率已经超过了95%程序太小看数据块了存储空间不够程序一激活就报错。这种问题在离线时很难发现只有在在线状态查看实际资源占用才一目了然。再比如通信负载如果你发现PLC的以太网通信负载已经很高了CPU频繁报警那就得考虑优化通信频率或者更换更高性能的CPU。这个诊断功能是博途的神器强烈建议新手多用比看十天教程都长经验。5. 常见问题排查与避坑实录遇到问题别慌按清单排查5.1 搜不到设备的排查思路我整理的这几个检查顺序这是最最常见的故障现象点击“搜索设备”转了一圈结果一个设备都没搜到。这个时候按以下顺序检查基本能定位90%的问题检查虚拟机网络模式是否为“桥接模式”。方法VMware右下角网络适配器图标查看当前是桥接还是NAT或右键虚拟机设置查看。检查VMnet0的桥接目标是否指定到了正确的物理有线网卡。检查虚拟机内Windows的IP地址是否和PLC在同一网段。比如PLC是192.168.0.1虚拟机就是192.168.0.x子网掩码要相同。检查PG/PC接口类型是否为“PN/IE”PG/PC接口选的是不是当前正在用的虚拟网卡。检查PLC是否上电、网线是否插好、网口指示灯是否正常。检查宿主机本身的防火墙或杀毒软件是否拦截了VMware的桥接驱动。一个容易忽略的点宿主机上的Windows防火墙和杀毒软件可能会拦截VMware的虚拟网络服务。你可以在宿主机上临时关掉防火墙试一次如果关了就连上了那就去防火墙的“允许应用通过防火墙”里添加VMware相关进程再重新打开防火墙。5.2 虚拟机里Windows网络图标显示“未识别网络”是什么情况这个问题我见过太多次了。很多工控工程师在虚拟机里设置完固定IP后发现Windows网络图标变成了“未识别的网络”就以为网络没配置好来回改配置结果越改越乱。这里要给一个定心丸虚拟机内Windows显示“未识别网络”不代表不能用尤其是当你在一个没有DHCP、没有默认网关的纯净工业以太网环境里Windows根本无法判断自己连的是什么网络类型无法连接互联网于是显示为“未识别网络”。这个不影响博途连PLC你可以直接忽略。判断网络是否真正可用的办法很简单在虚拟机内Windows命令行里执行 ping PLC的IP地址。如果能ping通可能丢包但能通那就放心用博途连接。如果ping都完全不通才是真的网络问题。5.3 PG/PC接口下拉列表里没有可选网卡怎么办偶尔会遇到这种诡异情况博途V15的“PG/PC接口”下拉列表是空的或者只有“PN/IE”而没有具体的网卡选项。排查方向确认VMware Tools已安装成功。如果没有安装虚拟网卡驱动可能没有正确加载。打开Windows设备管理器查看“网络适配器”下是否有VMware虚拟网卡且没有黄色感叹号。如果有感叹号右键卸载设备然后点击“扫描检测硬件改动”让系统重新安装驱动。如果还不行尝试在VMware虚拟机设置里把网卡类型换一下比如e1000e换成VMXNET3或者反过来然后再进系统看看设备管理器状态。这个方法我试过多次屡试不爽。虚拟机网卡类型切换对系统其他数据没有影响但博途就能重新识别到网卡了。另外如果你的虚拟机用的是精简版系统或者Ghost系统反正不建议那网卡驱动被裁剪掉的可能性很大这种情况下建议换官方完整版Windows镜像重装虚拟机系统。5.4 USB转以太网适配器的选择工控人必看前面提到了有些笔记本没有网口需要USB转以太网适配器。这东西看起来都差不多但实际用起来差别很大。便宜的十几块钱的USB转网卡芯片方案老旧驱动兼容性差在虚拟机里直通给虚拟机用还好但如果你靠它做桥接就很容易出现掉线、延迟高甚至直接断流的问题。我的建议是买USB转有线网卡时认准芯片型号优先考虑采用瑞昱RealtekRTL8153或RTL8156芯片的知名品牌绿联、山泽等。这类方案在VMware下的兼容性经过了大量用户验证驱动也很成熟稳定性明显好于那些来路不明的小厂芯片方案。使用USB转网卡时的另一个注意点USB转网卡对应的网口在宿主机设备管理器里会显示为一个新的网卡在VMware虚拟网络编辑器里桥接的时候要选择它对应的名字。不要选错成原来的物理网卡否则虚拟机里的博途发出的数据包还是会走错路。5.5 常见问题速查表收藏这一张就够现象可能原因解决方法博途搜不到PLC虚拟机网络模式为NAT改成桥接模式博途搜不到PLCVMnet0桥接到了无线网卡手动指定有线网卡博途搜不到PLC虚拟机IP和PLC不在同一网段设置固定IP到同一网段博途搜不到PLCPG/PC接口选错选择PN/IE和正确网卡搜到PLC但不可访问项目设备IP与PLC实际IP不一致修改项目IP或下载时修改虚拟机显示未识别网络Windows无法识别无网关网络不影响使用直接忽略PG/PC接口列表为空虚拟网卡驱动异常重装VMware Tools或更换网卡类型网络时通时不通无线桥接不稳定换USB转有线网卡或改有线虚拟机网速极慢桥接目标网卡规格太低或驱动不对更换目标网卡或更新驱动5.6 一个真实项目复盘虚拟机连PLC失败的全过程最后一个章节我分享一个真实的项目经历。去年秋天做一个产线改造项目现场PLC是S7-1500我带着笔记本去现场笔记本上装的VMware虚拟机虚拟机里跑博途V15。到了现场之后把网线往笔记本网口一插打开虚拟机搜索设备结果什么也没有搜到。我先排查了虚拟机网络模式确认是桥接模式但是VMnet0桥接的网卡是自动状态笔记本上有线网卡、无线网卡同时开启自动模式有可能选择了无线。我把VMnet0手动指定到有线网卡后重新搜索依然是空的。然后我检查了虚拟机内Windows的IP发现是DHCP自动获取的而现场PLC网络又没有DHCP服务器虚拟机网卡根本没有拿到有效IP。我把虚拟机Windows网卡改成固定IP 192.168.0.10和PLC默认的192.168.0.1同一网段再次用博途搜索这次PLC终于出现了。我还在博途里选择“在线和诊断”查看了一下PLC的通信负载顺便确认了固件版本和资源占用情况。整个排查过程不到20分钟但如果没有系统性的排查顺序光靠瞎试可能折腾一下午。这件事给我最大的体会是虚拟机里跑博途连接不上PLC往往不是一个“大毛病”而是几个“小问题”叠加在一起。网络模式没看、IP没有规划、PG/PC接口没选对三个小问题同时存在表象就是“连不上PLC”。你只要按照“物理网卡桥接对了吗VMnet0→ 虚拟机Windows IP同一网段了吗→ 博途PG/PC接口选对了吗”这条链路逐个确认就没什么解决不了的问题。最后再分享一个小技巧到了新现场先把VMware里的网络编辑器打开看一眼把桥接目标网卡重新选一次即使它显示已经是手动指定再在虚拟机里禁用再启用一次虚拟网卡这个过程能强制驱动重新加载很多莫名其妙的网络故障就自己消失了。
返回列表