在博圖 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 系統日志,看是否有更具體的錯誤信息。💪