使用方式請參見這一期文章
-
創建兩個PLC,一個為Client,客戶端。一個為Server,服務器。如圖一。
圖一
此處為了方便記憶,取1511的IP地址為192.168.0.11。取1513的IP地址為192.168.0.13
-
打開PLCSIM Advanced,創建兩個PLC。如圖二。
圖二
-
Client端程序編寫
3.1_首先回到Client PLC中,在OB1中,拖入兩個Modbus_TCP的塊,并創建實例,分別用于讀和寫。如圖三。
圖三
3.2_創建一個DB塊,分別用于讀寫指令的管腳處填寫對應的參數,如圖四。圖四
3.3_參數詳細說明InterfaceId:硬件標識符,在系統常數中可以看到。
ID:引用該連接的唯一ID。
ConnectionType:連接類型,對于TCP,選擇11,不可以使用其他類型
ActiveEstablished:建立連接的方式所對應的 ID,對于主動連接建立,應選擇 TRUE。
RemoteAddress:連接伙伴(Modbus 服務器)的 IP 地址。
RemotePort:遠程連接伙伴的端口號。
LocalPort:本地連接伙伴的端口號,可不填。
詳細可以參考F1幫助。
3.4_引腳參數關聯。將REQ等參數分配到引腳上,寫好Modbus的讀寫寄存器的地址區。如圖五。
圖五
至此,Client已經完成,把程序下載到Client的PLC。
-
Server端程序編寫
4.1_將Modbus_TCP的Server指令拖入程序段并創建實例,如圖六。
圖六
4.2_創建一個DB塊,將Server指令所需的參數創建在DB塊中。如圖七。圖七
4.3_參數詳細說明
參見3.3,大部分都相同,唯一需要注意的就是ActiveEstablished為False,因為他是被動連接的、其次就是LocalPort,對于Client來說,他是遠程端口,對于Server來說,他是本地端口,所以他的本地端口需要為333。如圖七。
其余參數詳見F1幫助
4.4_引腳參數關聯,如圖八。
圖八
至此,Server已經完成,把程序下載到Server的PLC。
-
仿真測試_Client寫數據到Server
將Write的REQ置1,此時Client的數據發送到Server,如圖九_1-3。
圖九_1
圖九_2
圖九_3
可以看到已經將數據從Client端發送到Server端。
-
仿真測試_Client從Server讀取數據
將Read的REQ置1,將數據從Server讀取到Client,,如圖十_1-3。
圖十_1
圖十_2
圖十_3
可以看到已經將數據從Server端讀取到Client端
-
數據區域問題
Client的MB_DATA_ADDR的數據,一個是40001,一個是40011,分別讀取和寫入5個數據,那么服務器對應的MB_HOLD_REG的第一個就為40001,第十一個就為40011,所以是分別往這兩個地方去讀取和寫入的。
-
總結
注意點1:客戶端的“RemotePort”
注意點2:服務器的“LocalPort”
注意點3:MB_HOLD_REG地址
注意點4:ActiveEstablished,客戶端為1,因為客戶端主動連接。服務器為0,因為服務器被動接受
-
也可以使用Modbus_POLL或者Modbus_Slave等軟件測試。
-
MODBUS
+關注
關注
28文章
1820瀏覽量
77310 -
仿真
+關注
關注
50文章
4124瀏覽量
133991 -
TCP
+關注
關注
8文章
1378瀏覽量
79301
發布評論請先 登錄
相關推薦
Modbus TCP通信報文解析
![<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>通信報文解析](https://file1.elecfans.com/web2/M00/A3/F2/wKgZomUKpTCAFVJAAAChpV4M-y0151.jpg)
Modbus TCP轉Modbus RTU的實現
有沒有哪位道友在RTThread內核上移植modbus_tcp成功的啊
Modbus/TCP通訊配置
![<b class='flag-5'>Modbus</b>/<b class='flag-5'>TCP</b>通訊配置](https://file.elecfans.com/web2/M00/49/ED/pYYBAGKhvHeAUu3FAAARFXa3Kv8073.jpg)
Modbus RTU和Modbus TCP的區別
ModBus RTU 與 ModBus TCP
Modbus TCP通訊概述
Modbus tcp轉ETHERCAT網關modbus tcp和profinet區別
![<b class='flag-5'>Modbus</b> <b class='flag-5'>tcp</b>轉ETHERCAT網關<b class='flag-5'>modbus</b> <b class='flag-5'>tcp</b>和profinet區別](https://file1.elecfans.com//web2/M00/8C/B3/wKgaomSwBz6AbgCIAAAzYtxR_sk360.png)
Modbus tcp轉ETHERCAT網關modbus tcp和modbusRTU的區別
![<b class='flag-5'>Modbus</b> <b class='flag-5'>tcp</b>轉ETHERCAT網關<b class='flag-5'>modbus</b> <b class='flag-5'>tcp</b>和modbusRTU的區別](https://file1.elecfans.com//web2/M00/8E/63/wKgaomTFKSCAfDxWAABEs8JtlZo952.jpg)
EtherCAT轉Modbus TCP協議網關(JM-ECT-TCP)
![EtherCAT轉<b class='flag-5'>Modbus</b> <b class='flag-5'>TCP</b>協議網關(JM-ECT-<b class='flag-5'>TCP</b>)](https://file1.elecfans.com//web2/M00/06/95/wKgaombcF0eAWT_5AACzT-rtvJE451.jpg)
MODBUS TCP 轉 CANOpen
![<b class='flag-5'>MODBUS</b> <b class='flag-5'>TCP</b> 轉 CANOpen](https://file1.elecfans.com/web2/M00/08/97/wKgaombyRnmAZrAyAAGHzRG0j8s875.png)
評論