TIA Portal V20HMI仿真时数值无法写入虚拟plc解决教程
在博图 V20 中使用 S7-PLCSIM Advanced 仿真 S7-1500 Advanced V5.0 PLC,同时使用 WinCC Runtime Advanced 仿真 HMI 时出现“连接中断”且无法写入数值,而单独使用 S7-PLCSIM (Classic) 仿真 PLC 正常,这是一个非常典型且令人困扰的问题。问题核心在于S7-PLCSIM Advanced 与 WinCC Runtime Advanced 仿真之间的通信配置。
以下是详细的原因分析和解决方法,请按步骤排查:
🔍 核心原因分析
- 网络隔离: S7-PLCSIM Advanced 默认创建一个名为
PLCSIM Virtual Ethernet Adapter
的虚拟网卡,并将虚拟 PLC 绑定到该网卡的一个 IP 地址上。WinCC Runtime Advanced 仿真运行在你的 Windows 主机上。 - 通信路径: WinCC Runtime Advanced 需要能通过 Windows 主机的网络堆栈路由到这个虚拟网卡上的虚拟 PLC IP 地址。
- 主要障碍:
- IP 地址配置错误: 虚拟 PLC 的 IP 和 WinCC 项目中配置的 HMI 连接 IP 不匹配,或者不在同一网段。
- 访问点设置错误: TIA Portal 和 Windows 用于 S7 通信的访问点 (
S7ONLINE
) 没有指向正确的网络接口(虚拟网卡)。 - 防火墙阻止: Windows 防火墙(或其他安全软件)阻止了 WinCC Runtime 访问虚拟网卡或 S7 通信端口 (TCP 102)。
- PLCSIM Advanced 服务/适配器问题: PLCSIM Advanced 服务未正常运行,或虚拟适配器驱动有问题。
- 项目配置不一致: HMI 设备组态的连接参数与实际运行的虚拟 PLC 参数不符。
✅ 详细排查与解决方案
🛠 1. 确认并配置 IP 地址
* **查看虚拟 PLC IP:** 在 S7-PLCSIM Advanced 界面中,明确看到你的虚拟 PLC 实例分配到的 **IP 地址** 和 **子网掩码**。记下来(例如 `192.168.0.1/255.255.255.0`)。
* **配置 WinCC 连接:** 在 TIA Portal 的 HMI 设备(如 KTP700 Basic)配置中:* 进入“连接”编辑器。* 检查 HMI 连接到的 PLC 接口(通常是 `PN/IE_1`)。* **关键:** 确保“IP 地址”字段填写的就是 S7-PLCSIM Advanced 中显示的虚拟 PLC IP 地址(例如 `192.168.0.1`)。* 确保“子网”选择正确(理论上应该匹配,如 `255.255.255.0`)。
* **配置 HMI 设备 IP (仿真时):** 虽然 WinCC Runtime Advanced 仿真运行在主机上,但它在仿真时会模拟一个 HMI 设备。在 HMI 设备的“设备配置”>“PROFINET 接口 [X1]”中:* 分配一个与虚拟 PLC IP **在同一网段** 的 IP 地址(例如 `192.168.0.10`)。* 设置相同的子网掩码(例如 `255.255.255.0`)。* **重要:** 这个 HMI 仿真设备的 IP 不能与虚拟 PLC 的 IP 冲突。
📡 2. 设置正确的 S7ONLINE 访问点 (Crucial!)
* 打开 Windows 的 **控制面板**。
* 找到并打开 **设置 PG/PC 接口**。
* 在“为使用的接口分配参数”选项卡下:* 在“访问点”下拉框中,选择 `S7ONLINE`。* 在“使用的接口参数分配”列表中,**必须选择 `PLCSIM Virtual Ethernet Adapter`**。这是最关键的一步!如果这里选的是你的物理网卡(如 `Realtek PCIe GbE Family Controller`)或者 `TCP/IP -> Auto`,WinCC 仿真会尝试通过物理网络去找 PLC,而找不到虚拟网卡上的 PLC。
* 点击“确定”保存设置。
* **重启 TIA Portal!** 访问点更改后通常需要重启 TIA 才能生效。
🔥 3. 检查并配置 Windows 防火墙
* 打开 **Windows Defender 防火墙** 或你使用的其他防火墙软件。
* 暂时**完全关闭防火墙**进行测试(公共网络、专用网络都关掉)。这是为了快速判断是否是防火墙问题。* 如果关闭防火墙后连接立即恢复正常,说明防火墙阻止了通信。* 需要为 WinCC Runtime Advanced 和 S7 通信添加允许规则:* 允许应用程序:找到 WinCC Runtime Advanced 的可执行文件(通常类似 `RTAdvanced.exe`,路径可能在 `C:\Program Files\Siemens\Automation\WinCC RT Advanced\<版本号>\bin`)。* 允许端口:在入站规则中,允许 TCP 端口 `102`(这是 S7 通信的标准端口)。规则作用域选择“任何”或指定虚拟网卡的 IP 地址范围(如 `192.168.0.0/24`)。
* **不要忘记:** 测试完成后,如果确定是防火墙问题,请创建永久规则后再重新启用防火墙。
⚙ 4. 验证 PLCSIM Advanced 状态和适配器
* **服务状态:** 按 `Win + R`,输入 `services.msc`,回车。检查 `Siemens PLCSIM Advanced Virtualization Service` 和 `Siemens S7PLCSIM Virtual Ethernet Adapter` 服务的状态是否为 **正在运行**。如果不是,尝试手动启动它们。
* **虚拟适配器:** 在 Windows 的 **网络连接** 设置中(`ncpa.cpl`),确认 `Siemens PLCSIM Virtual Ethernet Adapter` 存在且状态为 **已启用**。
* **适配器 IP (主机端):** 在 `Siemens PLCSIM Virtual Ethernet Adapter` 的属性中,检查其 IPv4 设置。通常它应该设置为 **自动获取 IP 地址**。PLCSIM Advanced 会自动管理这个适配器的 IP。**不要手动给它设置 IP!** 手动设置反而可能导致路由问题。
* **重启 PLCSIM Advanced:** 关闭 S7-PLCSIM Advanced 窗口(停止虚拟 PLC),然后重新启动它。有时服务或适配器需要重置。
* **兼容性:** 确保你使用的 **S7-PLCSIM Advanced 版本与 TIA Portal V20 兼容**。V20 通常需要 PLCSIM Adv V3.0 或 V2.0。检查西门子官方兼容性列表。不兼容的版本会有各种奇怪问题。
* **授权:** 确认 S7-PLCSIM Advanced 有有效的授权。没有授权或授权无效可能导致功能受限或无法建立稳定连接。
🔧 5. 检查项目配置一致性
* **编译和下载:** 在修改了 HMI 的连接设置或 IP 地址后,务必 **完全重新编译 HMI 程序**,并在启动 WinCC Runtime Advanced 仿真时选择“**全部重新启动**”或“**更新软件**”选项。确保仿真运行的 HMI 程序包含了你最新的连接配置。
* **PLC 接口确认:** 在 PLC 的硬件配置中,确认你在 HMI 连接中指定的接口(如 `PN/IE_1`) 确实存在且已启用。
* **HMI 连接参数:** 再次仔细核对 HMI 连接属性中的 **PLC IP 地址**、**机架号**、**插槽号**(对于 S7-1500,插槽号通常是 `1`,即 CPU 所在的插槽)。这些必须与虚拟 PLC 的实际参数严格一致。
🌐 6. 高级网络配置 (备用方案 - 如果以上均无效)
* 在 Windows 的 **网络连接** 设置中(`ncpa.cpl`)。
* 选中你的 **物理以太网适配器** (连接真实网络的网卡)。
* 右键 -> 属性 -> 共享。
* 勾选 “允许其他网络用户通过此计算机的 Internet 连接来连接”。
* 在“家庭网络连接”下拉框中,选择 **`Siemens PLCSIM Virtual Ethernet Adapter`**。
* 点击“确定”。这会启用 ICS (Internet 连接共享),在物理网卡和虚拟网卡之间建立路由。**注意:** 启用 ICS 可能会短暂断开你的物理网络连接,并可能改变物理网卡的 IP 地址(通常会变成 `192.168.137.1`)。虚拟网卡会获得一个该网段的地址(如 `192.168.137.x`)。此时你需要:* 在 S7-PLCSIM Advanced 中,可能需要重新启动虚拟 PLC 或重新设置其 IP 地址,使其位于新的共享网络网段内(如 `192.168.137.10`)。* 在 TIA Portal HMI 连接配置和 PG/PC 接口设置中,相应地更新为虚拟 PLC 在这个新网段中的 IP 地址,并确保 `S7ONLINE` 访问点仍然指向虚拟适配器。
* **此方法较复杂且可能引入其他网络问题,仅在常规方法无效时尝试。**
📌 总结关键步骤
- IP 一致: 虚拟 PLC IP (PLCSIM Adv) = HMI 连接目标 IP (TIA 项目)。
- HMI 仿真 IP: 在网段内,不冲突。
- PG/PC 接口:
S7ONLINE
访问点 必须 指向PLCSIM Virtual Ethernet Adapter
(关键!)。 - 防火墙: 放行 WinCC RT Adv 程序和 TCP 102 端口。
- PLCSIM Adv 状态: 服务运行、适配器启用、版本兼容、授权有效。
- 项目更新: 修改连接/IP 后,务必重新编译下载 HMI 程序到仿真。
- 重启: 修改访问点或防火墙后,重启 TIA Portal 和 PLCSIM Adv。
📣 测试建议
- 完成上述关键步骤(尤其是访问点设置和防火墙检查)后。
- 先启动 S7-PLCSIM Advanced 并下载 PLC 程序到虚拟 PLC,确认 PLC 处于 RUN 模式。
- 在 TIA Portal 中,右键点击 HMI 设备,选择“启动仿真” (Start simulation)。
- 在打开的 WinCC Runtime Advanced 仿真界面中,观察连接状态。如果配置正确,应该能看到连接建立(不再是“连接中断”),并且可以操作和监视变量了。
按照这些步骤仔细排查,特别是访问点设置和防火墙,通常能解决绝大多数 S7-PLCSIM Advanced 与 WinCC Runtime Advanced 仿真通信中断的问题。如果问题依然存在,请检查 TIA Portal 和 PLCSIM Advanced 的安装日志、Windows 系统日志,看是否有更具体的错误信息。💪