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