|
|
--串行鏈路和TCP/IP上的MODBUS標(biāo)準(zhǔn)介紹
該標(biāo)準(zhǔn)包括兩個(gè)通信規(guī)程中使用的 MODBUS應(yīng)用層協(xié)議和服務(wù)規(guī)范:
·串行鏈路上的MODBUS
MODBUS串行鏈路取決于 TIA/EIA 標(biāo)準(zhǔn):232-F和 485-A。
·TCP/IP 上的 MODBUS
MODBUS TCP/IP 取決于 IETF 標(biāo)準(zhǔn):RFC793 和 RFC791有關(guān)。
串行鏈路和 TCP/IP 上的 MODBUS 是根據(jù)相應(yīng) ISO 層模型說明的兩個(gè)通信規(guī)程。
下圖強(qiáng)調(diào)指出了該標(biāo)準(zhǔn)的主要部分。綠色方框表示規(guī)范。灰色方框表示已有的國際標(biāo)準(zhǔn)(TIA/EIA 和 IETF標(biāo)準(zhǔn)) 。
0.png (52.73 KB, 下載次數(shù): 36)
下載附件
2018-11-9 00:32 上傳
MODBUS 標(biāo)準(zhǔn)分為三部分。第一部分( “Modbus 協(xié)議規(guī)范” )描述了 MODBUS 事物處理。第二部分( “MODBUS 報(bào)文傳輸在TCP/IP 上的實(shí)現(xiàn)指南” )提供了一個(gè)有助于開發(fā)者實(shí)現(xiàn) TCP/IP 上的 MODBUS 應(yīng)用層的參考信息。第三部分( “MODBUS 報(bào)文傳輸在串行鏈路上的實(shí)現(xiàn)指南” )提供了一個(gè)有助于開發(fā)者實(shí)現(xiàn)串行鏈路上的 MODBUS應(yīng)用層的參考信息。
1.1 范圍
MODBUS 是 OSI 模型第 7 層上的應(yīng)用層報(bào)文傳輸協(xié)議, 它在連接至不同類型總線或網(wǎng)絡(luò)的設(shè)備之間提供客戶機(jī)/服務(wù)器通信。
自從1979 年出現(xiàn)工業(yè)串行鏈路的事實(shí)標(biāo)準(zhǔn)以來, MODBUS 使成千上萬的自動(dòng)化設(shè)備能夠通信。
目前,繼續(xù)增加對簡單而雅觀的 MODBUS 結(jié)構(gòu)支持。互聯(lián)網(wǎng)組織能夠使 TCP/IP 棧上的保留系統(tǒng)端口 502訪問 MODBUS。
MODBUS 是一個(gè)請求/應(yīng)答協(xié)議,并且提供功能碼規(guī)定的服務(wù)。MODBUS 功能碼是 MODBUS請求/應(yīng)答 PDU 的元素。本文件的作用是描述 MODBUS 事務(wù)處理框架內(nèi)使用的功能碼。
1.2 規(guī)范性引用文件
1.RFC791,互聯(lián)網(wǎng)協(xié)議,Sep81 DARPA
2.MODBUS 協(xié)議參考指南 Rev J,MODICON,1996年 6 月,doc#PI_MBUS_300
MODBUS 是一項(xiàng)應(yīng)用層報(bào)文傳輸協(xié)議, 用于在通過不同類型的總線或網(wǎng)絡(luò)連接的設(shè)備之間的客戶機(jī)/服務(wù)器通信。
目前,使用下列情況實(shí)現(xiàn) MODBUS:
以太網(wǎng)上的 TCP/IP。
各種媒體(有線:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A;光纖、無線等等)上的異步串行傳輸。
MODBUS PLUS,一種高速令牌傳遞網(wǎng)絡(luò)。
0.png (28.56 KB, 下載次數(shù): 19)
下載附件
2018-11-9 00:33 上傳
2 縮略語
ADU 應(yīng)用數(shù)據(jù)單元
HDLC 高級數(shù)據(jù)鏈路控制
HMI 人機(jī)界面
IETF 因特網(wǎng)工程工作組
I/O 輸入/輸出設(shè)備
IP 互連網(wǎng)協(xié)議
MAC 介質(zhì)訪問控制
MB MODBUS 協(xié)議
MBAP MODBUS 協(xié)議
PDU 協(xié)議數(shù)據(jù)單元
PLC 可編程邏輯控制器
TCP 傳輸控制協(xié)議
3 背景概要
MODBUS 協(xié)議允許在各種網(wǎng)絡(luò)體系結(jié)構(gòu)內(nèi)進(jìn)行簡單通信。
0.png (59.19 KB, 下載次數(shù): 30)
下載附件
2018-11-9 00:34 上傳
每種設(shè)備(PLC、HMI、控制面板、驅(qū)動(dòng)程序、動(dòng)作控制、輸入/輸出設(shè)備)都能使用 MODBUS協(xié)議來啟動(dòng)遠(yuǎn)程操作。
在基于串行鏈路和以太 TCP/IP 網(wǎng)絡(luò)的 MODBUS 上可以進(jìn)行相同通信。
一些網(wǎng)關(guān)允許在幾種使用 MODBUS 協(xié)議的總線或網(wǎng)絡(luò)之間進(jìn)行通信。
4 總體描述
4.1 協(xié)議描述
MODBUS 協(xié)議定義了一個(gè)與基礎(chǔ)通信層無關(guān)的簡單協(xié)議數(shù)據(jù)單元(PDU) 。特定總線或網(wǎng)絡(luò)上的 MODBUS 協(xié)議映射能夠在應(yīng)用數(shù)據(jù)單元(ADU)上引入一些附加域。
0.png (16.19 KB, 下載次數(shù): 29)
下載附件
2018-11-9 00:34 上傳
啟動(dòng)MODBUS 事務(wù)處理的客戶機(jī)創(chuàng)建 MODBUS 應(yīng)用數(shù)據(jù)單元。 功能碼向服務(wù)器指示將執(zhí)行哪種操作。
MODBUS 協(xié)議建立了客戶機(jī)啟動(dòng)的請求格式。
用一個(gè)字節(jié)編碼 MODBUS 數(shù)據(jù)單元的功能碼域。有效的碼字范圍是十進(jìn)制 1-255(128-255 為異常響應(yīng)保留) 。當(dāng)從客戶機(jī)向服務(wù)器設(shè)備發(fā)送報(bào)文時(shí),功能碼域通知服務(wù)器執(zhí)行哪種操作。向一些功能碼加入子功能碼來定義多項(xiàng)操作。
從客戶機(jī)向服務(wù)器設(shè)備發(fā)送的報(bào)文數(shù)據(jù)域包括附加信息,服務(wù)器使用這個(gè)信息執(zhí)行功能碼定義的操作。這個(gè)域還包括離散項(xiàng)目和寄存器地址、處理的項(xiàng)目數(shù)量以及域中的實(shí)際數(shù)據(jù)字節(jié)數(shù)。
在某種請求中,數(shù)據(jù)域可以是不存在的(0長度) ,在此情況下服務(wù)器不需要任何附加信息。功能碼僅說明操作。
如果在一個(gè)正確接收的 MODBUS ADU 中,不出現(xiàn)與請求 MODBUS 功能有關(guān)的差錯(cuò),那么服務(wù)器至客戶機(jī)的響應(yīng)數(shù)據(jù)域包括請求數(shù)據(jù)。如果出現(xiàn)與請求 MODBUS 功能有關(guān)的差錯(cuò),那么域包括一個(gè)異常碼,服務(wù)器應(yīng)用能夠使用這個(gè)域確定下一個(gè)執(zhí)行的操作。
例如,客戶機(jī)能夠讀一組離散量輸出或輸入的開/關(guān)狀態(tài),或者客戶機(jī)能夠讀/寫一組寄存器的數(shù)據(jù)內(nèi)容。
當(dāng)服務(wù)器對客戶機(jī)響應(yīng)時(shí),它使用功能碼域來指示正常(無差錯(cuò))響應(yīng)或者出現(xiàn)某種差錯(cuò)(稱為異常響應(yīng)) 。對于一個(gè)正常響應(yīng)來說,服務(wù)器僅對原始功能碼響應(yīng)。
0.png (32.7 KB, 下載次數(shù): 24)
下載附件
2018-11-9 00:36 上傳
對于異常響應(yīng),服務(wù)器返回一個(gè)與原始功能碼等同的碼,設(shè)置該原始功能碼的最高有效位為邏輯 1。
0.png (36.36 KB, 下載次數(shù): 25)
下載附件
2018-11-9 00:36 上傳
注釋:需要管理超時(shí),以便明確地等待可能不會(huì)出現(xiàn)的應(yīng)答。
串行鏈路上第一個(gè)MODBUS執(zhí)行的長度約束限制了MODBUS PDU大小 (最大RS485ADU=256字節(jié)) 。
因此,對串行鏈路通信來說,MODBUS PDU=256-服務(wù)器地址(1 字節(jié))-CRC(2 字節(jié))=253字節(jié)。
從而:
RS232 / RS485 ADU = 253字節(jié)+服務(wù)器地址(1 byte) + CRC (2 字節(jié)) = 256字節(jié)。
TCP MODBUS ADU = 249字節(jié)+ MBAP (7 字節(jié)) = 256字節(jié)。
MODBUS 協(xié)議定義了三種 PDU。它們是:
MODBUS 請求 PDU,mb_req_pdu
MODBUS 響應(yīng) PDU,mb_rsp_pdu
MODBUS 異常響應(yīng) PDU,mb_excep_rsp_pdu
定義 mb_req_pdu 為:
mb_req_pdu = { function_code, request_data},其中
function_code - [1 個(gè)字節(jié)] MODBUS 功能碼
request_data - [n 個(gè)字節(jié)],這個(gè)域與功能碼有關(guān),并且通常包括諸如可變參考、變量、數(shù)據(jù)偏移量、子功能碼等信息。
定義 mb_rsp_pdu 為:
mb_rsp_pdu = { function_code, response_ data},其中
function_code - [1 個(gè)字節(jié)] MODBUS 功能碼
response_data - [n 個(gè)字節(jié)],這個(gè)域與功能碼有關(guān),并且通常包括諸如可變參考、變量、數(shù)據(jù)偏移量、子功能碼等信息。
定義 mb_excep_rsp_pdu 為:
mb_excep_rsp_pdu = { function_code, request_data},其中
function_code - [1 個(gè)字節(jié)] MODBUS 功能碼 + 0x80
exception_code - [1 個(gè)字節(jié)],在下表中定義了 MODBUS 異常碼。
4.2 數(shù)據(jù)編碼
MODBUS 使用一個(gè)‘big-Endian’ 表示地址和數(shù)據(jù)項(xiàng)。這意味著當(dāng)發(fā)射多個(gè)字節(jié)時(shí),首先發(fā)送最高有效位。
完整的pdf格式文檔51黑下載地址(共131頁):
Modbus協(xié)議規(guī)范(中文詳細(xì)).pdf
(4.51 MB, 下載次數(shù): 61)
2018-11-5 17:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|