
不少搞西门子博途TIA Portal的朋友都动过在 VMware 虚拟机里装博途 V15 的念头。要么是公司电脑被 IT 锁死没法装软件要么是现场调试笔记本上已经有一堆版本冲突的旧软件要么就是单纯想在一台 Mac 或者 Linux 主机上把活干了。虚拟机跑博途本身是可行的但我见过太多人卡在最要命的一步——虚拟机里装好博途 V15 之后死活搜不到 PLC或者好不容易搜到了下载程序的时候又掉线。这篇文章我就把 VMware 虚拟机里跑博途 V15 的网络设置这件事彻底掰开揉碎讲清楚。不光告诉你该点哪个按钮还会说明白博途找 PLC 用的到底是什么协议、VMware 的三种网络模式各自是什么脾气、为什么你把网卡设成 NAT 就铁定连不上 PLC以及桥接模式下那些看起来不起眼却能把人逼疯的小坑。文末附上我踩过的坑和排查思路照着做不敢说百分百顺但至少能让你少走三个月弯路。1. 内容整体设计与思路拆解1.1 为什么要在虚拟机里跑博途场景与需求先聊一个实际问题博途 V15 到底有多烦人。它不像普通软件装完就完事博途全家桶STEP 7、WinCC、Startdrive 这些动辄几十个 GB对系统环境极其敏感装错一个补丁顺序就可能打不开项目卸载还卸不干净。最典型的是博途 V14、V15、V16 这几个版本同时装在一台电脑上光版本兼容性检查就能让你怀疑人生。所以很多工程师选虚拟机跑博途核心原因无非三个环境隔离宿主机是日常工作、办公、写文档的主力机不想让博途这种“系统破坏狂”污染它。虚拟机里随便折腾坏了删掉重建一个五分钟满血复活。版本共存手头既有 V15 的项目又有 V16 的项目不同厂家给的程序包版本还不一样物理机装两个版本容易出幺蛾子虚拟机里各装各的互不干扰。硬件受限公司发的笔记本可能是 ARM 架构的 Mac、或者是被安全策略限制安装驱动的工作站只能在虚拟机里模拟 x86 Windows 环境跑博途。这些需求放一起结论就是**虚拟机跑博途是完全可行的方案但网络连接这块必须额外用心。**在物理机上博途直接走物理网卡跟 PLC 通信问题相对简单到了虚拟化环境中间多了一层虚拟交换机、虚拟网卡、宿主机网卡任何一层配置不对通信就会失败。1.2 整体网络架构设计桥接直连是核心虚拟机跑博途连 PLC整体网络架构上最靠谱的方案就一句话让虚拟机里的博途认为自己在跟 PLC 同一个局域网里直接对话。这句话翻译成 VMware 的术语就是“桥接模式”。为什么不能偷懒用 NAT因为博途找 PLC 的核心机制之一是发送广播包PLC 收到广播包后会回应。NAT 模式下虚拟机是躲在宿主机背后的广播包经过 NAT 转换后很难原样返回给虚拟机这就导致博途的“搜索可访问设备”功能失灵。你点一万次“开始搜索”结果永远是“未找到任何设备”。所以整体架构上你要搭建的是一条这样的链路物理网卡连 PLC 的网口 → VMware 虚拟交换机桥接 → 虚拟机网卡e1000e 类型 → Windows 虚拟系统内的网络协议栈 → 博途 V15 的通信服务。这条链路看着简单实际一步步配置时暗坑不少。下面我先把原理讲透再给实操步骤这样就算环境不完全一样你也能自己推断出问题出在哪一层。2. 核心难点拆解博途连 PLC 背后的通信原理2.1 博途怎么发现 PLCDCP 广播与 S7 协议很多工程师对博途“搜索可访问设备”这个功能的理解停留在“我点一下它就能找到 PLC”实际上背后有两层协议在干活理解了这两层协议你就知道为什么网络设置不对连不上 PLC。第一层是DCPDiscovery and Configuration Protocol发现与配置协议。这是 PROFINET 设备用来做在线发现的标准协议靠的是一帧广播报文发到网络里的所有设备。博途在“可访问设备”里搜索时就是用 DCP 广播询问“谁是设备报上名来”PLC 收到这个广播后会单播回一个响应报文告诉博途“我是 PLC我的 MAC 是这个我的 IP 是这个我的设备名是这个”。这一来一回看着简单但你让它在虚拟化环境里跑通就有讲究了。**广播帧在虚拟机网络里的转发行为跟你选的虚拟网卡类型、虚拟交换机的模式直接相关。**我在第 2.3 节会专门讲网卡类型的事这里先记住结论VMware 默认给你建的那个 VMXNET3 网卡博途的 DCP 广播经常收不到响应这是无数人踩的第一个大坑。第二层是S7 通信协议。这一步发生在博途已经发现 PLC、你要在线连接或者下载程序的时候。S7 通信走的是 TCP 端口 102这是一个标准 TCP 连接要求两端 IP 能互相 ping 通、防火墙不拦、没有中间设备做奇怪的访问控制。所以你要连上 PLC必须同时满足两个条件能用 DCP 发现它广播层通能用 S7 连上它单播 TCP 层通。这两个条件任何一个不满足都会表现为“连不上 PLC”但排查思路完全不同。2.2 VMware 三种网络模式NAT、桥接、仅主机到底怎么选VMware Workstation 给虚拟机提供了三种基本网络模式它们的核心区别在于虚拟机网卡“接”到的是谁的网络上。桥接模式Bridged虚拟机网卡直接桥接到宿主机的物理网卡上。从网络角度看虚拟机就像一台独立的电脑直接插在跟宿主机同一个交换机上。物理网络里的设备比如 PLC、路由器能看到这台虚拟机虚拟机也能直接访问物理网络里的设备。博途连 PLC 必须用这种模式。NAT 模式虚拟机躲在宿主机后面宿主机充当 NAT 网关。虚拟机可以访问外网但外部设备主动访问虚拟机会很麻烦广播包基本传不进来。博途搜 PLC 会失败因为 PLC 的广播响应回不到虚拟机。仅主机模式Host-Only虚拟机只能跟宿主机通信完全出不去物理网络。这个模式对连 PLC 没有任何帮助除非你的 PLC 是用 USB 转以太网模块插在宿主机上并做了端口映射否则可以忽略。我见过不少人在论坛里问“为什么博途搜不到 PLC”一问截图虚拟机的网络适配器选的 NAT——这种问题神仙来了也救不了。连 PLC 只有桥接模式能选这是第一条铁律。2.3 虚拟网卡选型e1000e 与 VMXNET3 的恩怨情仇这是本文第二大坑。VMware Workstation 默认给新虚拟机创建的网卡类型有两种情况如果选的是较新的操作系统模板比如 Windows 10 x64默认是 VMXNET3如果是较老的模板或者某些自定义配置默认可能是 e1000e。**e1000e 是 Intel 82574L 千兆网卡的虚拟化模拟VMXNET3 是 VMware 自己开发的半虚拟化网卡。**从性能上讲VMXNET3 明显更快、CPU 占用更低正常情况下我会推荐大家用 VMXNET3。但跑博途这件事恰恰要反着来。因为 DCP 广播帧在 VMXNET3 上会有兼容性问题。博途的 DCP 扫描发出去后PLC 的响应报文经过虚拟交换机时VMXNET3 的过滤和处理逻辑会导致响应帧被丢弃或者延迟表现出来的现象就是博途一直转圈搜不到设备。e1000e 虽然性能差点但它的网络行为更接近真实物理网卡广播、多播、混杂模式这些特性都处理得更“老实”博途反而喜欢这种环境。我自己的实测经验是同一台虚拟机上把网卡从 VMXNET3 改成 e1000e 后博途 V15 搜索 S7-1200 的成功率从不到三成直接拉满到接近百分之百。所以配置虚拟机时网络适配器类型一定要选 e1000e。注意这里说的 e1000e 是指“模拟 Intel 网卡”不要在虚拟机的 Windows 系统里手动装什么 Intel 网卡驱动直接用 VMware Tools 自带的驱动就行。VMware Tools 装好后e1000e 在设备管理器里显示的是 Intel 82574L 千兆网卡这是正常现象不用手动更新驱动。3. 实操过程与核心环节实现3.1 虚拟机硬件配置建议别让博途卡到你怀疑人生先把网络的事放一边说说虚拟机整体配置。博途 V15 是个吃资源的大户虚拟机配置不够网络设对了也白搭——你要是连打开博途都卡半天根本谈不上通信顺畅。VMware Workstation 虚拟机创建参数参考表配置项建议值备注操作系统Windows 10 Pro x64博途 V15 官方支持 Win10 x64不建议用 Win11 在虚拟机里折腾内存8 GB 及以上博途 V15 项目打开后 4 GB 是底线加上系统占用至少分 8 GB处理器4 核及以上在虚拟机设置里选“处理器数量 2、每个处理器内核数量 2”或直接 4 核硬盘60 GB 起步建议 100 GB博途 V15 完整安装需要大量空间项目文件也很占地方硬盘类型NVMe 或 SCSI放在 SSD 上虚拟机磁盘文件必须在 SSD 上否则打开项目慢得怀疑人生网络适配器桥接模式e1000e第 3.2 节重点讲显示2 GB 显存博途的 HMI 组态、3D 视图会用到 GPU 加速但别指望虚拟机里跑 3D 流畅内存这块多说一句博途 V15 打开一个中等规模的 S7-1500 项目加上 WinCC 组态内存占用轻轻松松超过 4 GB。如果你宿主机只有 16 GB 内存虚拟机分 8 GB 给博途跑起来基本是极限了如果有 32 GB分 12-16 GB 会更舒服。内存不够的直接表现就是博途工程保存时卡、打开时转圈、在线监控时画面刷新慢这些体验问题虽然不致命但会严重影响调试效率。3.2 桥接模式配置实操选对物理网卡是成败关键创建虚拟机的时候网络适配器默认是 NAT需要手动改成桥接。这里有一个特别容易忽略的细节如果你的宿主机有多个网卡比如有线网卡 WiFiVMware 的桥接模式默认可能桥接到错误的网卡上。具体操作步骤如下在 VMware Workstation 中选中虚拟机右键“设置”或“编辑虚拟机设置”。在“硬件”选项卡里选中“网络适配器”。右侧选择“桥接模式直接连接物理网络”。勾选“复制物理网络连接状态”——这个选项在宿主机从有线切换到 WiFi 时让虚拟机的网络状态跟着切换避免网络变化导致虚拟机断网。点击“高级”按钮在“网卡类型”里选择e1000E不要选 VMXNET3。重点来了在高级设置的“桥接模式”部分VMware 会让你选择桥接到哪块物理网卡。如果你的宿主机同时有有线网卡和无线网卡这里必须手动指定要桥接的那块物理网卡。那么到底该选哪块一个简单的判断标准**你的 PLC 实际接在哪个物理网口上就让虚拟机桥接到哪块网卡。**比如你用网线把电脑和 PLC 直连那就桥接到有线网卡如果你是通过工业交换机接的 PLC那要看电脑是通过哪个口连到交换机就选对应那块网卡。有一个隐藏陷阱是如果你的电脑正好同时连着 WiFi 和有线网卡VMware 默认桥接到活动的那块网卡上而活动的可能是 WiFi。博途的广播帧会从 WiFi 发出去你猜 PLC 能收到吗当然收不到。所以手动指定桥接网卡这件事绝对不能偷懒跳过。3.3 虚拟机内 IP 与防火墙设置固定 IP 是基本盘网络适配器选好之后进到虚拟机里的 Windows 系统还要做两件事设置固定 IP处理防火墙。设置固定 IP 的步骤在虚拟机 Windows 系统里打开“控制面板 → 网络和共享中心 → 更改适配器设置”找到以太网适配器e1000e 对应的那个右键“属性”双击“Internet 协议版本 4 (TCP/IPv4)”手动配置 IP 地址。IP 地址怎么设置核心原则是**虚拟机的 IP 必须跟 PLC 的 IP 在同一个网段。**比如你用的是 S7-1200默认 IP 是 192.168.0.1那虚拟机就设 192.168.0.10子网掩码 255.255.255.0网关可以先空着不用管直连 PLC 时不需要网关。“首选 DNS 服务器”也空着不要乱填。这里再提醒一个细节如果你是用网线把电脑和 PLC 物理直连宿主机和虚拟机的 IP 必须是同网段的不同 IP最好把宿主机网卡也设成固定 IP别用自动获取。直连时自动获取 IP 会花很长时间有时甚至会超时分配导致虚拟机压根没有 IP 可用。防火墙设置虚拟机里 Windows 防火墙默认是开启的会拦截博途的 S7 通信。最省事的方案在“网络和共享中心”里把当前网络类型设置为“专用网络”然后在“Windows Defender 防火墙”里允许“TIA Portal”或者直接关闭专用网络的防火墙。我个人不太建议为了省事把防火墙彻底关掉因为后面你还要用虚拟机浏览器查资料防火墙全关了不安全。更稳妥的做法是**在防火墙设置里把博途安装目录下的几个 exe 添加为允许通过防火墙的应用。**博途 V15 安装目录通常在“C:\Program Files (x86)\Siemens\Automation\Portal V15”需要放行的主要是 S7 相关的进程和 bin 目录下的通信组件。如果你嫌麻烦就临时把防火墙关掉等调试完再打开反正虚拟机里也没啥重要数据。3.4 博途 V15 在线扫描实操从建立项目到下载程序虚拟机网络层的东西都配好后博途 V15 里的操作其实跟在物理机上没什么区别但有几个小细节值得留意。3.4.1 创建项目和添加设备打开博途 V15新建项目添加对应型号的 PLC。这里有个坑**你在博途里添加的 PLC 设备版本必须跟实物 PLC 的固件版本匹配。**比如实物是 S7-1200 固件 V4.2博途里也选 V4.2否则在线连接的时候会提示固件不匹配下载会很麻烦。如果博途 V15 自带的固件版本比 PLC 高下载时可以选“跳过”或者按提示升级固件但升级固件有风险不建议现场做。3.4.2 设置 PG/PC 接口博途 V15 里的“PG/PC 接口”设置是很多人忽略的地方。在博途里菜单栏“在线 → 设置 PG/PC 接口”弹出来的对话框里会列出当前系统里所有可用的网卡。你要确保选中的是虚拟机里的 e1000e 对应的那个接口通常显示为“Intel(R) 82574L Gigabit Network Connection”不要选成什么 VMware Virtual Ethernet Adapter for VMnet1/VMnet8。这个步骤的原理上不必深究但实际很关键。博途的通信服务会绑定到指定网卡上如果绑定的网卡不对哪怕你其他配置全对博途也连不上 PLC。选接口时注意观察接口后面的描述一般是“TCPIP - 网卡名称”认准 e1000e 对应那块即可。3.4.3 搜索可访问设备在博途项目树里右键“添加新设备”选好 PLC 型号后点击“在线 → 可访问设备”。此时博途会弹出搜索窗口选择刚才在 PG/PC 接口里确认过的网卡点击“开始搜索”。正常情况下十几秒内就能搜到 PLC。如果一直搜不到不要反复点搜索先把物理连接、IP 这些问题排查一遍原因多半不在博途里而是虚拟机网络底层的问题。3.4.4 在线连接与下载搜到 PLC 后博途会显示设备名称、IP、MAC 等信息。你需要确认博途里的设备配置尤其 IP 地址跟实物 PLC 一致然后才能进行下载。如果你的项目里给 PLC 配置的 IP 和实物不一样博途会提示“在线与离线不一致”这时你可以选择“下载前先分配 IP 地址”或者“直接下载全部”然后博途会把配置写入 PLC。下载完成后博途会弹出一个窗口要求你“启动模块”这时候 PLC 会重启在线连接会短暂断开属正常现象。等待片刻后博途会自动恢复在线你就能在程序编辑界面里实时监控程序状态了。4. 常见问题与排查技巧实录4.1 博途搜不到 PLC按层级逐层排查这是最让人头疼的问题没有之一。博途搜不到 PLC可能的原因分布在物理层、虚拟网络层、系统防火墙层、博途软件层。我按排查顺序整理了一个思路表你照着做基本能定位问题。排查顺序操作预期结果如果不符合预期1在虚拟机 Windows 里 ping PLC 的 IP如 ping 192.168.0.1有响应说明虚拟机网络不通检查桥接设置、网线连接、IP 网段2在宿主机里 ping PLC 的 IP有响应宿主机不通说明物理层有问题先解决物理连接再说虚拟机的3在虚拟机里 ping 宿主机 IP有响应不通说明 VMware 桥接有问题确认网卡类型、桥接模式4检查虚拟机 Windows 的 IP 是否和 PLC 同网段IP 在同一网段不同就改成同网段这是最基础的前提5临时关闭虚拟机 Windows 防火墙搜索可能成功如果关了防火墙能搜到说明是防火墙拦截添加例外规则6检查博途的 PG/PC 接口设置选择的是 e1000e 网卡选成 VMnet 虚拟网卡就会失败7检查虚拟机网卡类型是否为 e1000e设备管理器显示 Intel 82574L如果是 VMXNET3改成 e1000e 再试这里我特别想把第 6 条单独拎出来强调一下。很多人搜不到 PLC 时会先去翻 VMware 设置检查防火墙怎么都找不出问题结果最后发现博途 PG/PC 接口里选的是“VMware Virtual Ethernet Adapter for VMnet1”。这个接口是仅主机模式的虚拟网卡跟 PLC 所在的物理网络八竿子打不着博途拿它去搜索能搜到就怪了。PG/PC 接口要选带“Intel(R) 82574L”字样的那个。4.2 能搜索到 PLC 但下载失败TCP 通信被劫持这个问题的典型表现是博途“可访问设备”里能看到 PLC设备名、IP 都显示出来了但一点“下载”进度条跑到一半就报错中断提示“连接中断”或者“目标设备无响应”。从原理上讲这类问题集中在 TCP 通信层。DCP 广播成功说明 2 层 3 层基本是通的但 TCP 连接被中间设备中断或者被防火墙重置了。排查重点有几个虚拟机 Windows 防火墙最常见的原因下载时 S7 通过了 102 端口 TCP 连接被防火墙拦了。先把防火墙彻底关掉再试下载。宿主机防火墙/安全软件宿主机上如果装了安全公司自己定制的安全软件它对虚拟机的流量也会做检测有时会拦截虚拟机的 TCP 连接。没法卸载的话可以考虑绕过宿主机网卡做端口转发但操作麻烦不建议。网络里存在 IP 冲突如果 PLC 或者虚拟机的 IP 跟局域网里其他设备重复TCP 连接会时通时断表现跟你这个情况类似。可以在虚拟机和宿主机上分别用 arp -a 命令查一下对应 IP 的 MAC看是否跟 PLC 实物一致。4.3 在线监控时断时续虚拟机 CPU 调度导致的延迟在线连接能建立也能下载程序但在线监控时监控画面刷新特别卡或者点击“监控”按钮后要等好几秒才有反应甚至监控一段时间后直接掉线。这大概率不是网络配置问题而是虚拟机性能不够导致的通信超时。博途跟 PLC 的在线通信是有超时机制的如果虚拟机 CPU 繁忙比如正在编译或者在后台跑着杀毒软件扫描导致博途的通信线程无法及时处理报文就会触发超时判定博途认为 PLC 连接断了于是掉线重连。解决方法主要是给虚拟机资源加码给虚拟机分配更多 CPU 核数和内存前提是宿主机资源够。在虚拟机的 Windows 系统里把“视觉效果”调整为“调整为最佳性能”减少系统开销。关掉虚拟机里不用的后台程序浏览器、自动更新、杀毒软件实时监控。确保虚拟机的磁盘文件在 SSD 上不要在机械硬盘上跑博途IO 延时会导致各种卡顿。还有一个小技巧当你只是在线监控不修改程序时可以把博途的“运行系统”视图关掉只保留程序编辑器这样能显著降低博途的资源占用减少掉线概率。4.4 e1000e 网卡频繁断连关掉 IPv6 和电源管理这个是我自己踩过比较深的一个坑。桥接模式配好、e1000e 网卡也选好了博途也能正常连上 PLC但持续运行几个小时之后虚拟机 Windows 突然断网了ping 不通 PLC博途直接掉线。重启虚拟机又恢复正常然后过几个小时再犯。排查过程很曲折最后定位到两个嫌疑人第一个是e1000e 虚拟网卡的电源管理选项。Windows 默认允许电脑“关闭此设备以节约电源”虚拟网卡也会继承这个设置有时候系统会误认为网卡空闲把它休眠了。解决办法在虚拟机 Windows 的设备管理器里找到网络适配器 → Intel 82574L → 属性 → 电源管理取消勾选“允许计算机关闭此设备以节约电源”。第二个是IPv6 的干扰。博途 V15 对 IPv6 的支持本身就有一些兼容性问题在虚拟化环境下更容易出幺蛾子。最省心的方案在虚拟机 Windows 网卡属性里把“Internet 协议版本 6 (TCP/IPv6)”前面的勾去掉只用 IPv4。实测这样处理后网卡长期运行的稳定性有明显提升。4.5 博途 V15 打开项目卡死内存不足与 WinCC 占用还有一个不算网络问题但会干扰在线调试的问题博途 V15 打开大项目后出现界面卡死、鼠标转圈、保存项目要等半天的现象。遇到这种情况网络设置再对也没用你压根没法正常操作。排查下来内存是主要瓶颈。博途 V15 本身就很吃内存再加上 WinCC 的组态编辑器项目里如果还有一些 HMI 画面内存占用会直线上升。解决办法上面写过给虚拟机分配至少 8 GB 内存最好是 12-16 GB。另外注意博途 V15 是 32 位应用单个进程最多用 4 GB 内存如果项目太大会提示“内存不足”这时只能打开项目后把不用的编辑器都关掉减少内存占用。在虚拟机设置里还可以把 CPU 的“虚拟化 Intel VT-x/EPT”和“虚拟化 CPU 性能计数器”选项打开对性能会有一些帮助。如果是 AMD 平台就开对应的 AMD-V 相关选项。5. 避坑清单与个人经验总结写到最后把最关键的经验再浓缩一下。这些是我在虚拟机跑博途这么多次以来真正值钱的几点体会。关于方案选择如果只是偶尔调试一个 PLC可以不用虚拟机直接在物理机上装博途。但如果你的工作流里同时存在多个博途版本、多个品牌的 PLC 软件、物理机环境受限这些因素那虚拟机基本是唯一解。既然选了虚拟机网络这块就老老实实桥接 e1000e别想着用 NAT 或者仅主机模式偷懒最后浪费时间的一定是你自己。关于资源分配虚拟机跑博途内存是命根子。物理机 16 GB 内存虚拟机至少分 8 GB物理机 32 GB虚拟机分 12 GB 以上这才算是给博途留了足够的发挥空间。硬盘务必要用 SSD虚拟磁盘文件放在机械硬盘上博途打开项目大概率卡到你想骂人。关于调试习惯用虚拟机跑博途时我习惯在改动虚拟机网络配置或者宿主机网络环境后先不启动博途先在虚拟机里用“ping arp”确认底层的网络是通的确认无误后再打开博途去搜索 PLC。把网络问题跟博途问题分开排查能省掉大量无谓的等待时间。还有一个个人比较推荐的做法给虚拟机建快照。在安装好博途 V15、打完所有补丁、配好网络后给虚拟机做一个干净快照。以后不管是调试出问题还是系统被搞坏恢复快照就能回到一个“博途 V15 虚拟机跑博途网络已调通”的稳定可用状态整个过程不超过五分钟。这相当于给调试工作加了一道保险比重新装一遍博途省太多时间了。虚拟机跑博途这件事本质上就是你用一层虚拟化隔离换来了环境的可控性但代价是要多操心网络转发这些底层细节。把这些细节整明白博途在虚拟机里跑起来跟物理机几乎没有差距。我这里分享的都是反复踩坑后验证过的方案希望能帮你省下那些本不该浪费的调试时间。