夜城直播_夜城直播app官方正版下载_夜城直播高品质美女在线视频互动社区

通過一段報文來解讀工業(yè)以太網(wǎng)Modbus TCP/IP協(xié)議

2022/9/26 2:05:52 人評論 次瀏覽 分類:技術方案  文章地址:http://prosperiteweb.com/tech/4476.html

文章通過對一段報文逐段逐句的解讀,讓大家了解工業(yè)以太網(wǎng)Modbus TCP/IP協(xié)議

Modbus TCP/IP直觀上看它還是Modbus協(xié)議,這個沒錯,Modbus TCP/IP是Modbus協(xié)議的變體,將Modbus協(xié)議運行在了TCP/IP網(wǎng)絡上,連接端口是502,不需要校驗和計算,因為數(shù)據(jù)校驗在低層進行了;
還有幾種協(xié)議Modbus over TCP,Modbus over TCP/IP還有Modbus RTU/IP,這三種也是Modbus的變體,但是和Modbus TCP/IP協(xié)議最大的區(qū)別就是帶有了Modbus RTU的檢驗和。

目前也有很多人在研究Modbus UDP/IP,這和Modbus TCP/IP最大的區(qū)別在于可以提高實時性和通信效率。因為UDP是無連接協(xié)議,比TCP節(jié)約了大量網(wǎng)絡時間,但是可靠性和安全性不能保證。

Modbus

下面昌暉儀表通過一段報文來解讀Modbus TCP/IP,從OSI七層模型物理層到應用層。


Modbus TCP/IP協(xié)議報文

上圖我們可以清晰看到Modbus TCP/IP使用了OSI的物理層,數(shù)據(jù)鏈路層,網(wǎng)絡層,傳輸層以及應用層。


1、物理層

Frame物理層的數(shù)據(jù)幀概況,線路307個字節(jié),實際捕獲307個字節(jié)

Frame物理層的數(shù)據(jù)幀

◆物理介質(zhì):以太網(wǎng)卡

◆傳輸介質(zhì):雙絞線,同軸電纜,光纖
◆封裝類型:Ethernet(1)
◆物理接口:RJ45
◆幀編號:1176
◆幀長度:307字節(jié)

2、數(shù)據(jù)鏈路層

Ethernet II協(xié)議,以太網(wǎng)幀頭信息(14個字節(jié))

Ethernet II協(xié)議,以太網(wǎng)幀頭信息

網(wǎng)卡MAC地址:

◆目的MAC:00:15:5d:07:b4:0a
◆源MAC:a8:74:1d:c7:16:5d
◆類型:IPv4

3、網(wǎng)絡層

IP協(xié)議IP包頭信息(20個字節(jié))

IP協(xié)議IP包頭信息

◆版本:IPv4

◆協(xié)議類型:TCP
◆源IP地址:172.18.32.32
◆目的IP地址:172.18.31.72

4、傳輸層:

TCP協(xié)議數(shù)據(jù)段的頭信息(20個字節(jié))

TCP協(xié)議數(shù)據(jù)段的頭信息

◆源端口:502

◆目的端口:57298
◆序列號:4197
◆確認號:241
◆PDU長度:253

5、應用層

MBAP,Modbus應用層的信息(253個字節(jié))

MBAP,Modbus應用層的信息

◆MBAP:(7個字節(jié))

◆MABP 由四部分構成:
◆事務識別號:9522
◆協(xié)議識別號:0
◆長度:247
◆設備識別號:255

詳細說明如下:

MBAP,Modbus應用層說明

關于設備識別號,對于Modbus TCP/IP協(xié)議該項默認255,但是如果該協(xié)議為Modbus Plus或者Modbus RTU等串口協(xié)議,通過串口服務器等轉換設備轉換后變?yōu)榱薓odbus RTU over TCP,則該項為Modbus串口從站的設備地址。


Modbus:(246個字節(jié))


在應用層Modbus的響應報文:

◆第一個字節(jié):功能碼
◆第二個字節(jié):后面的長度
◆第三個字節(jié):請求數(shù)據(jù)的第一個寄存器的值。上圖即顯示的40001-40024的值;由上圖也能看出40003的當前值為38.86

綜上內(nèi)容一條完整modbus TCP/IP報文的構成如下:



①以太網(wǎng)頭(14字節(jié))

◆目的MAC地址(6字節(jié))
◆源MAC地址(6字節(jié))
類型(2字節(jié))0x0800為IPv4

②IP包頭(20字節(jié))



③數(shù)據(jù)段(20字節(jié))


后面即為Modbus TCP/IP部分信息;


④Modbus TCP/IP數(shù)據(jù)結構

Modbus TCP/IP為CS架構,Client不斷的像Server發(fā)出請求,Server端被動響應提供數(shù)據(jù)或者被寫入。讀寫的數(shù)據(jù)結構和Modbus RTU是一樣的,常見的如下四種:

Modbus TCP/IP數(shù)據(jù)結構

根據(jù)以上四種數(shù)據(jù)類型,可以引申出常見的8個功能碼:

FC1:讀取線圈的狀態(tài)
FC5:單個寫入線圈
FC2:讀取開關量輸入的狀態(tài)
FC15:連續(xù)寫入一組線圈
FC3:讀取保持寄存器的值
FC6:單個寫保持寄存器
FC4:讀取模擬量輸入寄存器的值
FC16:連續(xù)寫保持寄存器

但是實際上Modbus協(xié)議的功能碼遠不止如下8個;比如FC20和FC21就是對文件記錄的操作,其中FC20是讀取文件記錄,F(xiàn)C21是對文件進行寫操作。


6、Modbus TCP/IP Client/Server模型



Modbus TCP/IP工作過程

①客戶端在網(wǎng)絡上發(fā)出消息請求,將任務進行初始化
②請求信息被服務端接收到
③服務端發(fā)送一個響應消息
④客戶端確認收到服務端的響應信息

7、Modbus TCP/IP和Modbus RTU ADU的區(qū)別

Modbus RTU ADU:


Modbus TCP/IP ADU:



其中兩點區(qū)別:

①Modbus TCP/IP ADU沒有了CRC校驗
②Modbus TCP/IP ADU從站地址(1個字節(jié))變?yōu)榱薓BAP Header(七個字節(jié))

最后給大家附上Modbus錯誤代碼

錯誤代碼【01】

說明:非法功能。對于服務器(或從站)來說,詢問中接收到的功能碼是不可允許的操作,可能是因為功能碼僅適用于新設備而被選單元中不可實現(xiàn)同時,還指出服務器(或從站)在錯誤狀態(tài)中處理這種請求,例如:它是未配置的,且要求返回寄存器值。

錯誤代碼【02】

說明:非法數(shù)據(jù)地址。對于服務器(或從站)來說,詢問中接收的數(shù)據(jù)地址是不可允許的地址,特別是參考號和傳輸長度的組合是無效的。對于帶有100個寄存器的控制器來說,偏移量96和長度4的請求會成功,而偏移量96和長度5的請求將產(chǎn)生異常碼02。

錯誤代碼【03】

說明:非法數(shù)據(jù)值。對于服務器(或從站)來說,詢問中包括的值是不可允許的值。該值指示了組合請求剩余結構中的故障。例如:隱含長度是不正確的。modbus協(xié)議不知道任何特殊寄存器的任何特殊值的重要意義,寄存器中被提交存儲的數(shù)據(jù)項有一個應用程序期望之外的值。

錯誤代碼【04】

說明:從站設備故障。當服務器(或從站)正在設法執(zhí)行請求的操作時,產(chǎn)生不可重新獲得的差錯。

錯誤代碼【05】

說明:確認。與編程命令一起使用,服務器(或從站)已經(jīng)接受請求,并且正在處理這個請求,但是需要長持續(xù)時間進行這些操作,返回這個響應防止在客戶機(或主站)中發(fā)生超時錯誤,客戶機(或主機)可以繼續(xù)發(fā)送輪詢程序完成報文來確認是否完成處理。

錯誤代碼【06】

說明:從屬設備忙。與編程命令一起使用。服務器(或從站)正在處理長持續(xù)時間的程序命令。張服務器(或從站)空閑時,用戶(或主站)應該稍后重新傳輸報文。

錯誤代碼【08】

說明:存儲奇偶差錯。與功能碼20和21以及參考類型6一起使用,指示擴展文件區(qū)不能通過一致性校驗。服務器(或從站)設法讀取記錄文件,但是在存儲器中發(fā)現(xiàn)一個奇偶校驗錯誤??蛻魴C(或主方)可以重新發(fā)送請求,但可以在服務器(或從站)設備上要求服務。

錯誤代碼【10】

說明:不可用網(wǎng)關路徑。與網(wǎng)關一起使用,指示網(wǎng)關不能為處理請求分配輸入端口至輸出端口的內(nèi)部通信路徑。通常意味著網(wǎng)關是錯誤配置的或過載的。

錯誤代碼【11】

說明:網(wǎng)關目標設備響應失敗。與網(wǎng)關一起使用,指示沒有從目標設備中獲得響應。通常意味著設備未在網(wǎng)絡中。
作者:曹俊義

相關閱讀

深入了解Modbus TCP協(xié)議
走進工業(yè)以太網(wǎng)協(xié)議Modbus TCP

共有訪客發(fā)表了評論 網(wǎng)友評論

  客戶姓名:
郵箱或QQ:
驗證碼: 看不清楚?