一說到Modbus通信大家肯定第一時(shí)間會(huì)想到Modbus RTU通信就是串口485通信,那么不知Modbus通信還有以太網(wǎng)TCP通信功能,Modbus TCP比Modbus RTU方便的多,以太網(wǎng)通訊肯定要比串口方便的多,好,話不對(duì)說,下面就為大家來解析Modbus TCP通信。
一、準(zhǔn)備工具
1. 一臺(tái)ST40 CPU
2. 一臺(tái)ST20 CPU
3. 一臺(tái)交換機(jī)
4. 若干網(wǎng)線
5. 一臺(tái)電腦(筆記本、臺(tái)式都可以)
二、硬件配置
第一步:(用交換機(jī)把ST40與ST20PLC相連接)
三、組態(tài)Modbus TCP客戶端
第一步:(在桌面打開STEP 7-MicroWIN SMART編程軟件)
第二步:(在左側(cè)項(xiàng)目樹庫(kù)指令從庫(kù)文件夾下找到Modbus TCP客戶端指令 MBUS_CLIENT,把它拖拽出來到程序段中)
第三步:(配置MBUS_CLIENT指令)
MBUS_CLIENT客戶端指令各引腳填寫如下:
概念:EN:使能端,給EN使能來接通MBUS_CLIENT客戶端指令。
填寫:使用SM0.0一直為1接通。
概念:Req:Req 參數(shù)允許程序向服務(wù)器發(fā)送 Modbus 請(qǐng)求。
填寫:使用SM0.0一直為1接通,一直向服務(wù)器發(fā)送請(qǐng)求。
概念:Connect:Connect 參數(shù)允許程序連接到 Modbus 服務(wù)器設(shè)備或斷開與此設(shè)備的連接。
填寫:使用SM0.0一直為1接通,一直允許連接。
概念:IPAddr1—IPAddr4是服務(wù)器IP地址,對(duì)方PLC通信的IP地址
填寫:IPAddr1:192 IPAddr2:168 IPAddr3:0 IPAddr4:20 IPAddr1—IPAddr4:192.168.0.20。
概念:IP_Port:客戶端嘗試連接、且隨后使用 Modbus TCP 進(jìn)行通信的服務(wù)器的端口號(hào),默認(rèn)值:502
填寫:這里填寫默認(rèn)值502即可。
概念:RW:分配請(qǐng)求類型(讀取或?qū)懭耄渲?0 = 讀取,1 = 寫入
填寫:0讀取,如果是寫就填寫1,這里呢?只讀所以填寫0。
概念:Addr:Modbus 起始地址:分配要通過 MBUS_CLIENT 進(jìn)行訪問的數(shù)據(jù)的起始地址。
填寫:這里填寫40001寄存器起始地址,不知道的可以參考Modbus 功能表參數(shù)。
概念:Count:要進(jìn)行讀寫的參數(shù)數(shù)據(jù)長(zhǎng)度,就是數(shù)據(jù)地址個(gè)數(shù)。
填寫:4個(gè),讀四個(gè)地址。
概念:DataPtr:數(shù)據(jù)寄存器地址指針,指向本地用于讀/寫操作的數(shù)據(jù)地址區(qū)域的首地址。
填寫:&VB10,地址前面一定要加指針符號(hào)(&),否則無效哦!
概念:Done:完成位,程序塊指令執(zhí)行完畢會(huì)輸出完成位,這里的完成位還可以使用它做輪詢哦!
填寫:只能填寫位地址,這里填寫V0.3。
概念:Error:錯(cuò)誤位,當(dāng)程序塊或通信出錯(cuò)錯(cuò)誤時(shí),Error會(huì)輸出錯(cuò)誤代碼,可以根據(jù)這個(gè)錯(cuò)誤代碼來查找具體的錯(cuò)誤信息,以便解除故障。
填寫:只能填寫位地址,這里填寫MB2。
MBUS_CLIENT客戶端指令各引腳填寫數(shù)據(jù)類型如下:
四、組態(tài)Modbus TCP服務(wù)器
第一步:(在桌面打開STEP 7-MicroWIN SMART編程軟件)
第二步:(在左側(cè)項(xiàng)目樹庫(kù)指令從庫(kù)文件夾下找Modbus TCP服務(wù)器指令MBUS_SERVER,把它拖拽出來到程序段中)
第三步:(配置MBUS_SERVER指令)
MBUS_SERVER服務(wù)器指令各引腳填寫如下:
概念:EN:使能端,給EN使能來接通MBUS_SERVER服務(wù)器指令。
填寫:使用SM0.0一直為1來接通它。
概念:Connect:1:服務(wù)器接受來自客戶端的請(qǐng)求;=0:服務(wù)器可以斷開已經(jīng)建立的連接
填寫:使用SM0.0一直為1。
概念:IP_Port:服務(wù)器本地端口號(hào)
填寫:這里和客戶端一致,填寫502。
概念:MaxIQ:對(duì)應(yīng)數(shù)字量輸入/輸出點(diǎn)對(duì)應(yīng)Modbus 地址參數(shù),可設(shè)置范圍:0-256,0表示禁用對(duì)輸入和輸出的所有讀取和寫入,建議將 MaxIQ 值設(shè)置為 256。
填寫:256建議范圍。
概念:MaxAI:對(duì)應(yīng)模擬量輸入?yún)?shù)對(duì)應(yīng)Modbus 地址參數(shù),可設(shè)置范圍:0-56,0表示禁用對(duì)模擬量輸入的讀取,對(duì)于 CPU CR40 和 CR60,為 0
對(duì)于所有其它 CPU 型號(hào),為56。
填寫:56所以型號(hào)都可以。
概念:MaxHold:用于 Modbus 地址V 存儲(chǔ)器中的字保持寄存器數(shù),例如,如果要允許 Modbus 客戶端訪問 2000 字節(jié)的 V 存儲(chǔ)器,則將 MaxHold 的值設(shè)置為 1000 字(保持寄存器)。
填寫:這里只需要訪問4個(gè)字節(jié)就可以,所以填寫4。
概念:HoldStart:指向 V 存儲(chǔ)器中保持寄存器起始位置的指針,簡(jiǎn)單理解是服務(wù)器寫入到客戶端的地址。
填寫:&VB0地址前面一定要加指針符號(hào)(&),否則無效哦!
概念:Done:完成位,程序塊指令執(zhí)行完畢會(huì)輸出完成位,這里的完成位還可以使用它做輪詢哦!
填寫:只能填寫位地址,這里填寫M2.0。
概念:Error:錯(cuò)誤位,當(dāng)程序塊或通信出錯(cuò)錯(cuò)誤時(shí),Error會(huì)輸出錯(cuò)誤代碼,可以根據(jù)這個(gè)錯(cuò)誤代碼來查找具體的錯(cuò)誤信息,以便解除故障。
填寫:只能填寫位地址,這里填寫MB9。
MBUS_SERVER客戶端指令各引腳填寫數(shù)據(jù)類型如下:
五、下載程序
第一步:(下載ST40客戶端)
第二步:(下載ST20服務(wù)器)
六、監(jiān)視并讀取數(shù)據(jù)
第一步:(同時(shí)監(jiān)視ST40客戶端與ST20服務(wù)器)
第二步:(服務(wù)器寫數(shù)據(jù),客戶端讀取數(shù)據(jù))
ST40 (客戶端)讀ST20(服務(wù)器)數(shù)據(jù)
ST40(VW10)= ST20(VW0) ST40(VW12)= ST20(VW2)
ST40(VW14)= ST20(VW4) ST40(VW16)= ST20(VW6)
ST20寫 :VW0 VW2 VW4 VW6寫四個(gè)地址,分別為:VW0:(4) VW2:(6) VW4:(12) VW6:(48)。
ST40讀:VW10 VW12 VW14 VW16讀四個(gè)地址,分別為:VW10:(4) VW12:(6)VW14:(12) VW16:(48)
那么此時(shí)此刻兩臺(tái)S7-200SMART PLC Modbus TCP(客戶端、服務(wù)器)互相通信就已經(jīng)完成了,不知各位大佬學(xué)會(huì)了木有!
以上知識(shí)點(diǎn)大家都理解并且掌握了嘛?如果你還百思不得其解的?可以在上述文章找答案!