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