西门子博图编程:使用S7-1500冗余PLC 建立ModbusTCP通信
使用S7-1500冗余PLC 建立ModbusTCP通信
- 1.1 網絡結構
- 1.2 系統 IP 介紹
- 1.3 Modbus TCP 通訊編程
- 1.3.1 CPU 做服務器
- 1.3.2 CPU 做客戶端
1.1 網絡結構
以 CPU151 7H 為例, 網絡結構示意如下圖所示:
CPU 1517H 冗余 PLC 有 PROFINET X1 接口和 X2 接口, Modbus TCP 通訊可以將設備(例如 Standard PLC)通過交換機接入到任何網絡接口中。如果接入 X1 接口,需要通過交換機接入到 MRP 環網中,但是并不需要支持 H-sync 轉發。如果接入 X2 接口,只需要使用交換機將設備(例如 Standard PLC)接入就可以, 不需要組成 MRP 環網,同時交換機也不需要選擇支持MRP 和 H-sync 轉發。
1.2 系統 IP 介紹
對于 S7-1500R/H 冗余系統除了各 CPU 的設備 IP 地址之外, S7-1500R/H 冗余系統還可以分配以下系統 IP 地址:
- 兩個 CPU 上 PROFINET 接口 X1 的系統 IP 地址
- 兩個 CPU 上 PROFINET 接口 X2 的系統 IP 地址
通過系統 IP 地址,可與其它設備(如, HMI 設備、 CPU、 PG/PC)進行通信。 這些設備通常通過系統 IP 地址與冗余系統的主 CPU 進行數據通信。這樣,可確保在冗余操作中原來的主CPU 發生故障后,通信伙伴可在 RUN-Solo 系統狀態下與新的主 CPU(之前的備用 CPU) 進行數據通信。每個系統 IP 地址都有一個虛擬 MAC 地址, 用戶可在 STEP 7 中啟用該系統 IP 地址。
與設備 IP 地址相比,系統 IP 地址的優勢:
- 通信伙伴專與主 CPU 進行通信。
- 即使主 CPU 故障,仍可通過系統 IP 地址與 S7-1500R/H 冗余系統進行數據通信。
以下介紹 Modbus TCP 通訊的連接的建立與編程。
1.3 Modbus TCP 通訊編程
1.3.1 CPU 做服務器
本節以 CPU 1517H 作為服務器端與 ModScan32 進行 Modbus TCP 通訊組態步驟如下:
| <1.項目中添加CPU1517H | |
| 2.打開設備視圖可以看到所組態的CPU1517H | |
| 3.設置 PLC IP地址 。說明: X1 接口的系統 IP 是兩個冗余 PLC 的X1 接口的公共設置,當通信時通過系統 IP始終訪問的是主 PLC。示例中:PLC1 X1 IP:192.168.0.1 1PLC2 X1 IP:192.168.0.12X1 系統 IP:192.168.0.10PLC1 X2 IP:192.168.1.11PLC2 X2 IP:192.168.1.12X2 系統 IP:192.168.1.10 | X1 接口:①:PLC 的 X1 接口 IP 地址 ②:冗余 PLC 的 X1 接口系統 IP 地址。 同樣 X2 接口也可設置獨立的 PLC 接口 IP 以及冗余 PLC 的系統 IP 地址,注意:設置虛擬 MAC 地址時, 需確保以太網廣播域中存儲的所有 MAC 地址唯一。 特別是在包含由 VRRP 組成的第三方設備以及由多個 STEP 7 項目所組態的冗余系統組成的系統中。 |
| 4.冗余 PLCMRP 設置:冗余 PLC 的MRP 默認設置為:管理員(自動),不需要修改。 | |
| 5.打開冗余PLC_1 的ProgramBlocks 文件夾, 雙擊 Main塊, 進行 TCP編程。 對于冗余系統程序只在 PLC_1 中進行編程,當同步時會將程序自動同步到PLC_2 中。 | |
| 6.打開右側指令中通訊的欄,在 Others->Modbus TCP文件夾中拖出程序塊MB_SERVER,到 Main 程序。 | |
| 7.建立 Connect參數 DB | |
| 8.建立寄存器區域的 DB,分別給服務器和客戶端建立 100個字的空間 | |
| 9.填寫服務器塊的其它引腳 |
設定 ModScan32 步驟
| 1.在 ModScan32 中在 Connection 菜單中, 選擇Connect 設置連接的參數 | |
| 2.在 Connect 中選擇 RemoteTCP/IP Server,IP Address 填寫冗余 PLC 的系統IP:1 92.168.0.10, Service 中填寫冗余 PLC 開放的端口號: 502,設置完成后點擊 OK 按鈕, 此時ModScan32 會去主動連接冗余PLC。 | |
| 3.此時可以看到連接計數已經開始計數了,可以判斷Modbus TCP 的鏈接已經建立。 |
同時可以在 TIA Portal 中的網絡視圖(圖 1 ) 中也可看到鏈接已經建立完成, ID 為 1 的 OUC連接的狀態已經變成綠色了。
下面可以通過 ModScan32 向寄存器中寫入數據進行測試,從圖 2 中可以看到向 40001 中寫入數據 55, 然后在 PLC 側的 DB 塊中可以看到第一個數據變成了 55?;蛘邔?PLC 側Sever_Data[9]的數值修改成 1 05,同時可以看到 ModScan32 這側的 40010 的數值變成了 1 05。
1.3.2 CPU 做客戶端
本節以 CPU 1517H 作為客戶端與 Modbus TCP Client Tester 軟件進行 Modbus TCP 通訊。
組態步驟如下:
| 1.打開右側指令中通訊的欄,在 Others->Modbus TCP文件夾中拖出程序塊MB_CLIENT,到 Main 程序。 | |
| 2.建立 Connect參數 DB | 同樣對于 InterfaceID 的硬件標志符填寫名稱為 HsystemIPRef_1 系統 IP 的硬件標識符。 ID 填寫在 OUC 組態中沒有使用過的 ID 號, ConnectionType 使用默認值就是 TCP 連接, 由于通訊作為客戶端, 所以 ActiveEstabed 為 True, 同時將服務器的 IP 地址和端口號填入 RemoteAddress 和 RemotePort 的參數。 |
未編輯完,待續….
總結
以上是生活随笔為你收集整理的西门子博图编程:使用S7-1500冗余PLC 建立ModbusTCP通信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Val编程-val系列编程思想
- 下一篇: Val3语言介绍