1、modbus協(xié)議設(shè)計思想
Modbus設(shè)備使用主從(客戶端-服務(wù)器)技術(shù)進行通信,其中只有一個設(shè)備(主設(shè)備/客戶端)可以啟動事務(wù)(稱為查詢)。其他設(shè)備(從設(shè)備/服務(wù)器)通過向主設(shè)備提供請求的數(shù)據(jù)或采取查詢中請求的操作進行響應(yīng)。從設(shè)備是任何外圍設(shè)備(I/O轉(zhuǎn)換器、閥門、網(wǎng)絡(luò)驅(qū)動器或其他測量設(shè)備),它處理信息并使用Modbus將其輸出發(fā)送到主設(shè)備。
主機可以尋址單個從機,也可以向所有從機發(fā)起廣播消息。從屬服務(wù)器會返回對單獨發(fā)送給它們的所有查詢的響應(yīng),但不會響應(yīng)廣播查詢。從屬服務(wù)器不會自己啟動消息,它們只響應(yīng)來自主服務(wù)器的查詢。
主查詢將包括一個從地址(或廣播地址)、一個定義所請求操作的功能代碼、任何所需數(shù)據(jù)和一個錯誤檢查字段。從機的響應(yīng)由確認所采取的操作、要返回的任何數(shù)據(jù)和錯誤檢查字段組成。
請注意,查詢和響應(yīng)都包括設(shè)備地址、功能代碼、適用數(shù)據(jù)和錯誤檢查字段。如果沒有發(fā)生錯誤,則從設(shè)備的響應(yīng)包含所請求的數(shù)據(jù)。如果收到的查詢中出現(xiàn)錯誤,或者從設(shè)備無法執(zhí)行請求的操作,則從設(shè)備將返回一條異常消息作為響應(yīng)。
從機消息幀的錯誤檢查字段允許主機確認消息的內(nèi)容是有效的。傳統(tǒng)的Modbus消息是串行傳輸?shù)模媾夹r炓矐?yīng)用于其數(shù)據(jù)幀中的每個傳輸字符。
在這一點上,重要的是要區(qū)分Modbus本身是一個應(yīng)用協(xié)議,因為它定義了組織和解釋數(shù)據(jù)的規(guī)則,但仍然只是一個消息傳遞結(jié)構(gòu),獨立于底層物理層。
2、modbusTCP
Modbus消息結(jié)構(gòu)是一種應(yīng)用協(xié)議,定義了獨立于數(shù)據(jù)傳輸介質(zhì)的數(shù)據(jù)組織和解釋規(guī)則。
TCP/IP是指傳輸控制協(xié)議和互聯(lián)網(wǎng)協(xié)議,為Modbus TCP/IP消息提供傳輸介質(zhì)。
注意:TCP的主要功能是確保所有數(shù)據(jù)包都被正確接收,TCP/IP只是一個傳輸協(xié)議,并沒有定義數(shù)據(jù)的含義或數(shù)據(jù)的解釋方式,這是應(yīng)用協(xié)議的工作)。
從本質(zhì)上講,Modbus TCP/IP消息只是封裝在以太網(wǎng)TCP/IP封裝器中的Modbus通信。Modbus-TCP將標(biāo)準Modbus數(shù)據(jù)幀嵌入到TCP幀中,沒有Modbus校驗和,如下圖所示。
你一定會奇怪相比串口版本的modbusRTU,為什么沒有沒有使用Modbus錯誤檢查字段校驗。
因為TCPIP是一種可靠傳輸,其使用標(biāo)準以太網(wǎng)TCP/IP鏈路層校驗和方法來保證數(shù)據(jù)的完整性。
3、報文介紹
還是把這張圖拿過來。從圖中可以看出,功能代碼和數(shù)據(jù)字段與原始形式一樣。
Modbus TCP/IP應(yīng)用數(shù)據(jù)單元(ADU)采用7字節(jié)報頭(事務(wù)標(biāo)識符+協(xié)議標(biāo)識符+長度字段+單元標(biāo)識符)和協(xié)議數(shù)據(jù)單元(功能代碼+數(shù)據(jù))的形式。
MBAP標(biāo)頭長7個字節(jié),包括以下字段:
事務(wù)/調(diào)用標(biāo)識符(2個字節(jié)):當(dāng)客戶端沿同一TCP連接發(fā)送多條消息而不等待先前響應(yīng)時,此標(biāo)識字段用于事務(wù)配對。
協(xié)議標(biāo)識符(2字節(jié)):此字段對于Modbus服務(wù)始終為0,其他值保留用于未來擴展。
長度(2字節(jié)):該字段是剩余字段的字節(jié)計數(shù),包括單元標(biāo)識符字節(jié)、功能代碼字節(jié)和數(shù)據(jù)字段。
單元標(biāo)識符(1字節(jié)):此字段用于標(biāo)識位于非TCP/IP網(wǎng)絡(luò)上的遠程服務(wù)器(用于串行橋接)。在典型的Modbus TCP/IP服務(wù)器應(yīng)用程序中,單元ID設(shè)置為00或FF,被服務(wù)器忽略,并在響應(yīng)中簡單地回顯。
完整的Modbus TCP/IP應(yīng)用數(shù)據(jù)單元嵌入到標(biāo)準TCP幀的數(shù)據(jù)字段中,并通過TCP發(fā)送到系統(tǒng)端口502,該端口專門為Modbus應(yīng)用保留。
Modbus TCP/IP客戶端和服務(wù)器通過端口502監(jiān)聽和接收Modbus數(shù)據(jù)。
我們可以看到,Modbus在以太網(wǎng)上的操作對Modbus寄存器/命令結(jié)構(gòu)幾乎是透明的。因此,如果您已經(jīng)熟悉傳統(tǒng)Modbus的操作,那么您已經(jīng)非常熟悉Modbus TCP/IP的操作。
審核編輯:湯梓紅
-
以太網(wǎng)
+關(guān)注
關(guān)注
40文章
5551瀏覽量
174293 -
互聯(lián)網(wǎng)
+關(guān)注
關(guān)注
54文章
11219瀏覽量
105203 -
MODBUS
+關(guān)注
關(guān)注
28文章
1952瀏覽量
78697 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9603瀏覽量
87020 -
TCP
+關(guān)注
關(guān)注
8文章
1395瀏覽量
80165
原文標(biāo)題:ModbusTCP協(xié)議及通信報文解讀
文章出處:【微信號:嵌入式情報局,微信公眾號:嵌入式情報局】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
圖文詳解ModbusTCP協(xié)議
ProfibusDP主站轉(zhuǎn)ModbusTCP協(xié)議轉(zhuǎn)換網(wǎng)關(guān)技術(shù)需求干貨講解
采用ModbusRTU或ModbusTCP通訊協(xié)議與下位機進行通信
ModbusTCP轉(zhuǎn)CanOpen網(wǎng)關(guān)助力工控行業(yè)
基于北斗短報文協(xié)議的可靠遠程通信系統(tǒng)

一文知道ModbusTCP協(xié)議和上位機編寫
ModbusTCP報文詳解
一文詳解ModbusTCP協(xié)議

港口跨運車通信系統(tǒng)的ModbusTCP轉(zhuǎn)CAN協(xié)議的連接案例
智能樓宇系統(tǒng)canopen協(xié)議與ModbusTCP協(xié)議進行通訊
智能樓宇系統(tǒng)canopen協(xié)議與ModbusTCP協(xié)議進行通訊

【實用篇】ModbusTCP協(xié)議詳解

ModbusTCP轉(zhuǎn)Profinet:工業(yè)通信的利器

評論