




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、GB/T 前言-串行鏈路和 TCP/IP 上的 MODBUS MODBUS MODBUS TIA/EIA 標準:232-F 485-ATCP/IP MODBUSGB/T 前言-串行鏈路和 TCP/IP 上的 MODBUS MODBUS MODBUS TIA/EIA 標準:232-F 485-ATCP/IP MODBUS TCP/IP IETF 標準:RFC793 和RFC791 TCP/IP MODBUS ISO 層模型說明的兩個通信規程。(TIA/EIA IETF 標準協議45MODBUS 傳輸在TCP/IP上的實現指南 49 頁MODBUS 報文 45 頁標準分為三部分。第一部分Modbu
2、s MODBUS “MODBUS TCP/IP MODBUS 應用層的參考信息。第三部分“MODBUS 的 的實現指南”)0TIA/EIA-232-TIA/EIA-485- IEEE 802.2IETFRFCIETFRFC在TCP/IPMODBUS GB/T 第一部分:GB/T 第一部分:Modbus1GB/T 引1.1 自從1979年出現工業串行鏈路的事實標準以來,MOBUS使成千上萬的自動化設備能夠通信。GB/T 引1.1 自從1979年出現工業串行鏈路的事實標準以來,MOBUS使成千上萬的自動化設備能夠通信。BST/IPMODBUS 是一個請求/應答協議,并且提供功能碼規定的服務。MOD
3、BUS 功能碼是 請求/應答 PDU 的元素。本文件的作用是描述 MODBUS 事務處理框架內使用的1.2 RFC791,互聯網協議,Sep81 各(有線:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A;光纖、無線等等)上的異步PLUS,一種高速令牌傳遞網絡。圖 1:MODBUS 應用2主站/ 物理基于TCP 的MODBUSGB/T 協議可編程邏輯控制器協議允許在各種網絡體系結構內進行簡單通信。MODBUS MODBUS ON網網網ON MB+驅動驅動驅動圖 2:MODBUS 網絡體系結構的實例每種設備I、控制GB/T 協議可編程邏輯控制器協議允許在各種網絡體系結構內進
4、行簡單通信。MODBUS MODBUS ON網網網ON MB+驅動驅動驅動圖 2:MODBUS 網絡體系結構的實例每種設備I、控制面板、驅動程序、動作控制、輸入/輸出設備)都能使用 協議操作。在基于串行鏈路和以太TCP/IP網絡的MODBUS上可以進行相同通信。 4.1 協議定義了一個與基礎通信層無關的簡單協議數據單元( PDU 。特定總線或協能夠在應用數據單元(ADU)上引入一些附3MODBUSON MODBUSON 驅動GB/T 3:通MODBUS啟動MODBUS 事務處理的客戶機創建 MODBUS 應用數據單元。功能碼向GB/T 3:通MODBUS啟動MODBUS 事務處理的客戶機創建
5、MODBUS 應用數據單元。功能碼向服務器指示將執行哪協議建立了客戶機啟動的請求用一個字節編碼 MODBUS 數據單元的功能碼域。有效的碼字范圍是十進制 1-255(128-255 為一些功能碼加入子功能碼來定義多項操作從客戶機向服務器設備發送的報文數據域包括附加信息,服務器使用這個信息執行功能碼定義的操作。這個域還包括離散項目和寄存器地址、處理的項目數量以及域中的實際數據字節數在某種請求中,數據域可以是不存在的(0 長度),在此情況下服務器不需要任何附加信息。功能 例如,客戶機能夠讀一組離散量輸出或輸入的開/關狀態,或者客戶機能夠讀/寫一組寄存器的數據內容。當服務器對客戶機響應時,它使用功能
6、碼域來指示正常(無差錯)響應或者出現某種差錯(為異常響應。對于一個正常響應來說,服務器僅對原始功能碼響應。圖 4:MODBUS 事務處理(無差錯對于異常響應,服務器返回一個與原始功能碼等同的碼,設置該原始功能碼的最高有效位為邏輯1。4數據響GB/T 客戶5 MODBUS事務處理(異常響應注釋串行第一個MODBUS GB/T 客戶5 MODBUS事務處理(異常響應注釋串行第一個MODBUS 執行的長度約束限制了MODBUS PDU 大小(最大字節因此,對串行鏈路通信來說,MODBUS PDU=256-服務器地址(1 字節)-CRC(2 字節字節從而RS232RS485ADU253字節+服務器地址
7、(1byteCRC(2字節256字節TCPMODBUSADU249字節MBAP(7字節256字節MODBUS 協議定義了三種 PDU。它們MODBUS PDU,mb_rsp_pduMODBUS 異常響應 定義mb_req_pdumb_req_pdufunction_coderequest_data,其中 function_code - 1 個字節 MODBUS 功能碼request_data - n 個字節,這個域與功能碼有關,并且通常包括諸如可變參考、變量、數據偏移量、子功能碼等信息。定義mb_rsp_pdumb_rsp_pdufunction_coderesponse_data,其中 fu
8、nction_code - 1 個字節 MODBUS 功能碼定義mb_excep_rsp_pdu 為mb_excep_rsp_pdu = function_code, request_data,其中 function_code - 1 個字節 MODBUS 功能碼 + 0 x80 exception_code1個字節,在下表中定義了MODBUS異常碼。4.2 MODBUS 使用一個big-表示地址和數據項。這意味著當發射多個字節時,首先送最高有效位。例如:寄存值5差錯接收功能數據啟動GB/T 16 發送的第一注釋:更詳細的信息參見14.3 MODBUS以一系列具有不同特征表格上的數據模型為基礎
9、。四個基本表格為:GB/T 16 發送的第一注釋:更詳細的信息參見14.3 MODBUS以一系列具有不同特征表格上的數據模型為基礎。四個基本表格為:輸入與輸出之間以及比特尋址的和字尋址的數據項之間的區別并沒有暗示任何應用操作。如這是對可疑部分最自然的解釋,那么這種區別是可完全接受的,而且很普通,以便認為四表格全部覆蓋了另外一個表格對于基本表格中任何一項,協議都允許單個地選擇 65536 個數據項,而且設計那些項的讀寫操作可以越過多個連續數據項直到數據大小規格限這個數據大小規格限制與事務處理功能碼有關。 。MODBUS 功能碼中使用的 MODBUS 邏輯參考數字是以 0 開始的無符號整MODBU
10、S 模型實現的實例下例實例示出了兩種在設備中構造數據的方法。可能有不同的結構,這個文件中沒有全部描述出來。每個設備根據其應用都有它自己的數據結構。下例實例示出了設備中的數據結構,這個設備含有數字量和模擬量、輸入量和輸出量。由于不同塊中的數據不相關,每個塊是相互獨立。按不同 MODBUS 功能每個塊。6基本表類內離散量輸單個比只I/O 系統提供這種類型數線單個比讀通過應用程序改變這種類型數輸入寄存16-比特只I/O 系統提供這種類型數保持寄存16-比特讀通過應用程序改變這種類型數GB/T MODBUS圖 6:帶有獨立塊的 MODBUS 數據2116或1比特MODBUS7:僅帶有1個塊的MODBU
11、SGB/T MODBUS圖 6:帶有獨立塊的 MODBUS 數據2116或1比特MODBUS7:僅帶有1個塊的MODBUS數據4.4 MODBUS下列狀態圖描述了在服務器側 MODBUS 事務處理的一般處理7設備應輸入離散RW線輸入寄存保存寄存MODBUS 服務器設備應MODBUS 輸入離散線GB/T 等MB 指發送 圖 8:MODBUS 事務處理的一旦服務器處理請求,使用合適的 MODBUS 服GB/T 等MB 指發送 圖 8:MODBUS 事務處理的一旦服務器處理請求,使用合適的 MODBUS 服務器事務建立 根據處理結果,可以建立兩種類型響應:響應一個正 MODBUS = 一個 MODB
12、US 異常響應(參見第 6.14 節響應功能碼 = 請求功能碼 + 0 x80;提供一個異常碼來指示差錯原因。5 功能有三類 MODBUS 功能碼。它MODBUS 組織可改變的,具有可用的一致性MBIETFRFC8異常碼異常碼異常碼異常碼接收MB指示無效的1有效的無效的2有效的確認數據無效的有效的執行MB 操有效的發送 響GB/T 包含已被定義的公共指配功能碼和未來使用的未指配保留供功能GB/T 包含已被定義的公共指配功能碼和未來使用的未指配保留供功能碼用戶定義功用戶沒有MODBUS不能保證被選功能碼的使用是RFC,以便將改如果用戶要重新設置功能作為一個公共功能碼,那么用戶必須公共分類中,并且
13、指配一個新的公共功能碼一些公司對傳統產品通常使用的功能碼,并且對公共使用是無效的功能碼。1圖 9:MODBUS 功能碼9公共功能用戶定義功能公共功能用戶定義功能公共功能GB/T 6.1 01 (0 x01)在一設備中,使用該功1 2000 連續狀態。PDU 詳細說明了起 第一個數據LSB(最低有效位)包括在詢問中尋址的輸出。其它線圈依次類推,一直到這字節端為止,并在后續字節中如果返回的輸出數量不是八的倍數,將用零填充最后數據字節中的剩余比特(一直到字節的高位端。字節數量域說明了數據的完整字節數。功能1個字字節1個字N 個字nNGB/T 6.1 01 (0 x01)在一設備中,使用該功1 200
14、0 連續狀態。PDU 詳細說明了起 第一個數據LSB(最低有效位)包括在詢問中尋址的輸出。其它線圈依次類推,一直到這字節端為止,并在后續字節中如果返回的輸出數量不是八的倍數,將用零填充最后數據字節中的剩余比特(一直到字節的高位端。字節數量域說明了數據的完整字節數。功能1個字字節1個字N 個字nN功能1個字起始2個字0 x0000 至線圈2個字1功能碼子(十六進制頁比讀輸物理線寫單寫多16 比特訪輸入讀輸器或物理輸出讀多寫單寫多讀/ 寫多個寄存文讀文寫文6封裝讀設GB/T *N輸出數量/8,如果余數0,那么 N = 錯這是一個請求讀離散量輸出 20-38 的實GB/T *N輸出數量/8,如果余數
15、0,那么 N = 錯這是一個請求讀離散量輸出 20-38 的實例 MSB,輸出20 是LSBMSB位于左側,LSB位于右側。第一字節的輸出從左至右2720。下一個字節的輸出從左到右為3528行發射比特時LSBMSB傳輸:20 27、28 . . . 35 等等。在最后的數據字節中,將輸出狀態 38-36 表示為十六進制字節值 05,或二進制 0000 0101 注:用零填充五個剩余比特(端請響(十六進制(十六進制功起始Hi起始Lo輸出Hi輸出數量 輸出狀態 27-輸出狀態 35-輸出狀態 38-功能1功能1010203GB/T 進支持起始地址和起始地址+輸出數量離散輸出退圖 6.2 02(0
16、x02) 。從零開始尋址輸入。因此尋址輸入GB/T 進支持起始地址和起始地址+輸出數量離散輸出退圖 6.2 02(0 x02) 。從零開始尋址輸入。因此尋址輸入 1-16 為 0-15了起始地址,即指定的第一個輸入地根據數據域的每個比特將響應報文中的離散量輸入分成為一個輸入。指示狀態為 1= ON 0= OFF。第一個數據字節的 LSB(最低有效位)包括在詢問中尋址的輸入。其它輸入依次類推,一這個字節端為止,并在后續字節中從低位的順序如果返回的輸入數量不是八的倍數,將用零填充最后數據字節中的剩余比特(一直到字節的高位端。字節數量域說明了數據的完器發送 器發送異常碼請求處異常碼異常碼0 x000
17、1輸出異常碼GB/T 請求響應*N輸出數量/8,如果余數不等0,那么 N =錯這是一個請離散量輸的實將離散量輸入狀態 204-197 表示為十六進制字節值 AC,或二進制GB/T 請求響應*N輸出數量/8,如果余數不等0,那么 N =錯這是一個請離散量輸的實將離散量輸入狀態 204-197 表示為十六進制字節值 AC,或二進制 1010 1100。輸入 204 是這個字節的 MSB,輸入 197 是這個字節的 LSB。將離散量輸入狀態 218-213 表示為十六進制字節值 35,或二進制 0011 0101。輸入 218 位于3213是LSB注:用零填充 2 個剩余比特(端請響(十六進制(十六
18、進制功起始地Hi起始地Lo輸出數Hi輸出數Lo輸入狀態 204-輸入狀態 212-輸入狀態 218-差錯1字異常1字010203 功能1個字字節1個字輸入N*1 功能1個字起始2個字0 x0000 至輸入2個字1GB/T 進器接0 x0001起始地址和起始地址+輸入數量退圖11:讀離散量輸入6.3 03(0 x03)在一設備中,使用該功保持寄存器連GB/T 進器接0 x0001起始地址和起始地址+輸入數量退圖11:讀離散量輸入6.3 03(0 x03)在一設備中,使用該功保持寄存器連續塊的內容。請求 PDU 說明了起始寄存地址和寄存器數量。從零開始尋址寄存器。因此,尋址寄存器 1-16 為 0
19、-15將響應報文中的寄存器數據分成每個寄存器有兩字節,在每個字節中直接地調整二進制內容對于每個寄存器,第一個字節位比特,并且第二個字節包括低位比特。請功能1個字起始2個字0 x0000 至2個字1異常碼請求異常碼異常碼異常碼GB/T 響*N寄存器錯這是一個請求讀寄108-110 的實例將寄存器 108 的內容表示為兩個十六進制字節值 02 2B,GB/T 響*N寄存器錯這是一個請求讀寄108-110 的實例將寄存器 108 的內容表示為兩個十六進制字節值 02 2B,或十進制 555。將寄存器 109-110 的請響(十六進制(十六進制功寄存器值 Hi(108)Lo(108)寄存器值 Hi(1
20、09)Lo(109)寄存器值 Hi(110)Lo(110)差錯1個字異常1個字010203 功能1個字字節1個字寄存器N*2 GB/T 進器接起始地址和起始地址+寄存器數量讀多個寄存器退圖12:讀保持寄存器6.4 04(0 x04)在一設備中,使用該功能GB/T 進器接起始地址和起始地址+寄存器數量讀多個寄存器退圖12:讀保持寄存器6.4 04(0 x04)在一設備中,使用該功能1 至大約 125 的連續輸入寄存器。請求 PDU 說明地址和寄存器數量。從零開始尋址寄存器。因此,尋址輸入寄存器 1-16 為 0-15將響應報文中的寄存器數據分成每個寄存器為兩字節,在每個字節中直接地調整二進制內容
21、對于每個寄存器,第一個字節位比特,并且第二個字節包括低位比特。請功能1個字起始2個字0 x0000 至輸入寄存器數2個字0 x0001 器發送異常碼請求異常碼異常碼異常碼GB/T 響*N輸入寄存器的數量錯這是一個請求讀輸9 的實例將輸入寄存器 的內容表示為兩個GB/T 響*N輸入寄存器的數量錯這是一個請求讀輸9 的實例將輸入寄存器 的內容表示為兩個十六進制字節值 00 0A,或十進制 10請響(十六進制(十六進制功起始地起始地輸入寄存器數量 輸入寄存器數量輸入9 輸入9 差錯1個字異常1個字010203 功能1個字字節1個字輸入寄存N*2 GB/T 進器接起始地址和起始地址+寄存器數量讀輸入寄
22、存器退圖13:讀輸入寄存器6.5 05 (0 x05)GB/T 進器接起始地址和起始地址+寄存器數量讀輸入寄存器退圖13:讀輸入寄存器6.5 05 (0 x05)在一設備上,使用該功能碼寫單個輸出為 ON 或OFF請求數據域中的常量說明請求的 ON/OFF 00 00 請求輸出為 OFF。其它所有值均是狀態。十六進制值 FF 00 請求輸出為 ON。十六進制請求 PDU 說明了強制的線圈地址。從零開始尋址線圈。因此,尋址線圈 1 為 0。線圈值域的量說明請求的 ON/OFF 狀態。十六進制值 0XFF00 請求線圈為 ON。十六進制值 0X0000 請求線圈正常響應是請求的應答,在寫入線圈狀態
23、之后返回這個正常響應。器發送異常碼請求異常碼異常碼異常碼GB/T 請響錯這是一個請求寫線圈 為ON 的實例請響(十六進制(十六進制功輸出值 Hi 輸出值 Lo功GB/T 請響錯這是一個請求寫線圈 為ON 的實例請響(十六進制(十六進制功輸出值 Hi 輸出值 Lo功輸出輸出地址F差錯1個字異常1個字010203 功能1個字輸出2個字0 x0000 至輸出2個字0 x0000 功能1個字輸出2個字0 x0000 至輸出2個字0 x0000 GB/T 進器接輸出值0 x0000 輸出地址寫單個輸出退圖 14:寫單個輸6.6 06(0 x06)在一設備中,使用該功能GB/T 進器接輸出值0 x0000
24、 輸出地址寫單個輸出退圖 14:寫單個輸6.6 06(0 x06)在一設備中,使用該功能碼寫單個保持寄存器。請求 PDU 說明了被寫入寄存器的地址。從零開始尋址寄存器。因此,尋址寄存正常響應是請求的應答,在寫入寄存器內容之后返回這個正常響應。1 0請功能1個字2個字0 x0000 至寄存2個字0 x0000 至器發送異常碼請求異常碼異常碼異常碼GB/T 響錯這是一個請求將十六進制 00 03 寫入寄存器 2 的實例請響(十六進制GB/T 響錯這是一個請求將十六進制 00 03 寫入寄存器 2 的實例請響(十六進制(十六進制功寄存器值 Hi 寄存器值 Lo功輸出Hi輸出值 Hi 輸出值 Lo差錯
25、1個字異常1個字010203 功能1個字2個字0 x0000 至寄存器2個字0 x0000 至GB/T 進器接0 x0000F寄存器地址寫單個寄存器退圖 15:寫單個寄存器6.7 15 GB/T 進器接0 x0000F寄存器地址寫單個寄存器退圖 15:寫單個寄存器6.7 15 請求數據域的內容說明了被請求的 狀態。域比特位置中的邏輯“1”請求ON。域比特位置中的邏輯“0”請求相應輸出為 OFF正常響應返回功能碼、起始地址和強制的線圈數量。器發送異常碼請求異常碼異常碼異常碼GB/T 請求*N輸出數量/8,如果余數0,那么 N = 響應錯這是一個請求從線圈 20 開始寫入 10 個線圈的二進制比G
26、B/T 請求*N輸出數量/8,如果余數0,那么 N = 響應錯這是一個請求從線圈 20 開始寫入 10 個線圈的二進制比特對應輸出。0 0 傳輸的第一字節(十六進制 CD)尋址為輸出 27-20,在這種設置中,最低有效比特尋址為最(20傳輸的下一字節(十六進制 01)尋址為輸出 29-28,在這種設置中,最低有效比特尋址為(28應該用零填充最后數據字節中的未使用比特。請響(十六進制(十六進制功起始地Hi起始地Lo輸出數Hi輸出數Lo輸出值功起始地HiLo輸出數Hi輸出Lo差錯1個字異常1個字010203 功能1個字起始2個字0 x0000 至輸出2個字0 x0001 功能1個字起始2個字0 x
27、0000 至輸出2個字0 x0001 字節1個字輸出N*1 個字GB/T 進器接不等于 0,那么 N=N+1字節數GB/T 進器接不等于 0,那么 N=N+1字節數寫多個輸出退圖 16:寫多個輸出的6.8 16 正常響應返回功能碼、起始地址和被寫入寄存器的數量器發送異常碼請求異常碼異常碼異常碼GB/T 請求*N寄存器響應錯 請響(十六進制(十六進制功起始地址 Hi 起始地址 Lo 寄存器GB/T 請求*N寄存器響應錯 請響(十六進制(十六進制功起始地址 Hi 起始地址 Lo 寄存器Hi寄存器Lo寄存器Hi寄存器Lo功起始Hi 起始Lo寄存器數量差錯1個字異常1個字010203 功能1個字起始2
28、個字0 x0000 至2個字1功能1個字起始2個字0 x0000 至2個字0 x0001 字節1個字寄存N*2 個字值GB/T 進器接字節數寄存器數初始地址+寄存器數量寫多個寄存器器發送退GB/T 進器接字節數寄存器數初始地址+寄存器數量寫多個寄存器器發送退圖 17:寫多個寄存器6.9 20(0 x14) 讀文使用該功能碼進行長度。根據字節數量提供所有請求數據長度,并且根據寄存器提供所的結構。每個文件包括 10000 ,尋址這為十進0000 9999 或十文件進制 0X0000 至 0X270F,例如尋12 12該功能可多個參考組。這些組可以是分散的(不連續的),但每組中的參考必須是連續的。7
29、 個字節的獨立“子請求”域定義每個組參考類型:1 個字節(必須規定為 異常碼請求異常碼異常碼異常碼GB/T 文件中的起號:2 被讀出長度:2 個字過 MODBUS 報文允許的長度:256 個字節,這個寄存器數被的寄存器數響應中的所有其它合字節數。另外,每個“子響應”都包括一個表示自身字節數的域。請求響應錯這是一個請設兩個參GB/T 文件中的起號:2 被讀出長度:2 個字過 MODBUS 報文允許的長度:256 個字節,這個寄存器數被的寄存器數響應中的所有其它合字節數。另外,每個“子響應”都包括一個表示自身字節數的域。請求響應錯這是一個請設兩個參請響(十六進制(十六進制1,參考類型子請1,文件H
30、i1,文件Lo子請1, 號 子請求 1,號 Lo 子請求 1,子請求長度子請2功子請求 1,文件響應長度子請求 1,參考類型 子請求 1,數據Hi子請求 1,數據Lo子請求 1,數據Hi子請求 1,數據Lo子請求 2子請2差錯1個字異常1個字01020304 功能1個字1個字0 x07 子請求 x1個字0 x07 子請x1個字6子請求 數N2 子請求功能1個字字節1個字0 x07 0 xF5 子請x1個字子請x,文件2個字0 x0000 至子請求2個字0 x0000 子請求 長2個字N子請求GB/T 進器接收 0 x07字節數起始地址和讀通用參考退圖 18:讀6.9.1 21(0 x15) 使
31、用該功能碼進GB/T 進器接收 0 x07字節數起始地址和讀通用參考退圖 18:讀6.9.1 21(0 x15) 使用該功能碼進行寫入。根據字節數量提供所有請求數據長度,并且根16 比特器發送異常碼請求異常碼異常碼異常碼子請求2,文件號Hi子請求2, 號 子請求2, 號 子請2, Hi子請求2, Lo子請2, 數據 子請2, 數據 子請子請GB/T 數量提供所長度的結構。每個文件包括 10000 ,尋址這為十進0000 9999 或十文件進制 0X0000 至 0X270F,例如尋12 12GB/T 數量提供所長度的結構。每個文件包括 10000 ,尋址這為十進0000 9999 或十文件進制
32、 0X0000 至 0X270F,例如尋12 127 個字節和數據的獨立“子請求”域定義每個組:參考類型:1 個字節(必須規定為 文件中的起號:2 個字被寫長度:2 被寫入的數據:每個寄存器2 字節中的所有其它域組合。正常響應是請求的應答過報文允許的長度個字節,這個寄存器數量與詢請求響應錯這是一個請求將一個參考組寫差錯1個字異常1個字01020304 功能1個字1個字子請x1個字子請x,文件2個字0 x0000 至子請求2個字0 x0000 至子請求 長2個字0 x0000 至F子請求 數N2 子請求功能1個字1個字0 x07 子請x1個字子請x,文件2個字0 x0000 至子請求2個字0 x
33、0000 子請求 長2字N子請求 數N2 子請求GB/T 組包4 3 個寄存器,以寄7 開始(地址 0007請響(十六進制(十六進制功1,參考類型子GB/T 組包4 3 個寄存器,以寄7 開始(地址 0007請響(十六進制(十六進制功1,參考類型子請1,文件Hi1,文件Lo子請1, 號 子請1, 號 子請求 1,長度 Hi子請求 1,長度Lo子請求 1,數據Hi子請求 1,數據Lo子請求 1,數據Hi子請求 1,數據Lo數據子請1,寄存器數據功1,參考類型子請1,文件Hi1,文件號Lo子請1, 號 子請1, 號 子請求 1,長度 Hi子請求 1,長度Lo子請求 1,數據Hi子請求 1,數據Lo
34、子請求 1,數據Hi子請求 1,數據Lo數據子請1,寄存器數GB/T 進 0 x07字節數起始地址和寫入通用參考退圖 19GB/T 進 0 x07字節數起始地址和寫入通用參考退圖 19:寫狀態圖6.10 22該功能碼用于通過利用 、以及寄存器內容的組合來修改特定保持寄容。使用這個功能設置或清除寄存器中的單個比特01-160-15。功能的算法為:結果= (當前AND And_Mask) OR (Or_Mask AND例如器發送異常碼請求異常碼異常碼異常碼GB/T 二進制000100100000當前內容 = And_Mask Or_Mask =結果0001注Or_Mask 值為零,那么結果是當前內
35、容和And_Mask AND(與And_Mask 值為零,結果等于 Or_Mask 值。可以使用讀保持寄存器功能(功能03)讀出寄存器的內容。于是,當控制器掃描它的用戶邏輯程序時隨后可以改變寄存器的內容正常的響應GB/T 二進制000100100000當前內容 = And_Mask Or_Mask =結果0001注Or_Mask 值為零,那么結果是當前內容和And_Mask AND(與And_Mask 值為零,結果等于 Or_Mask 值??梢允褂米x保持寄存器功能(功能03)讀出寄存器的內容。于是,當控制器掃描它的用戶邏輯程序時隨后可以改變寄存器的內容正常的響應是請求的應答。在已經寫入寄存器之
36、后,返回響應。請求響應錯設備中對寄存器 5 這是一個利用上值請響(十六進制(十六進制功參考地Hi參考地Lo Or_Mask Hi功參考地HiOr_Mask Hi差錯1個字異常1個字010203 功能1個字參考2個字0 x0000 至2個字0 x0000 至2個字0 x0000 至功能1個字參考2個字0 x0000 至2個字0 x0000 至2個字0 x0000 至GB/T 進器得參考地址和退圖寫保持寄存器6.11 23(0 x17讀/ GB/T 進器得參考地址和退圖寫保持寄存器6.11 23(0 x17讀/ 請求說明了起始地址、的保持寄存器號和起始地址、保持寄存器號以及被寫入的數據在寫數據域中
37、,字節數說明隨后的字節號正常響應包括被讀出的寄存器組的數據。在讀數據域中,字節數域說明隨后的字節數量請求功能1個字2個字0 x0000 至器發送異常碼請求異常碼異常碼異常碼GB/T *N寫的數響應*N讀的數錯這是一個請求從寄存器 開始讀六個寄存器并且從寄存器 開始讀三個寄存器請響(十六進制(十六進制功讀的數量 Hi 讀的數量 Lo GB/T *N寫的數響應*N讀的數錯這是一個請求從寄存器 開始讀六個寄存器并且從寄存器 開始讀三個寄存器請響(十六進制(十六進制功讀的數量 Hi 讀的數量 Lo 寫起始地址寫的數量 Hi 寫的數量 Lo 寫寄存器Hi寫寄Lo寫寄存器Hi寫寄Lo寫寄存器值寫寄存器值讀
38、寄存器Hi讀寄存Lo讀寄存器Hi讀寄存器值Lo讀寄存器Hi讀寄存Lo讀寄存器Hi讀寄存Lo讀寄存器Hi讀寄存器值 讀寄存器值 F差錯1個字異常1個字010203 功能1個字字節1個字讀寄存器N*2 個字讀的2個字0 x0001 至近似2個字0 x0000 至寫的2個字0 x0001 至近似寫字1個字寫寄存器N*2 個字GB/T 進0 x0001寫的數量和字節數寫的數讀起始地址GB/T 進0 x0001寫的數量和字節數寫的數讀起始地址+讀的數量和寫起始地址+寫的數量讀/寫多個寄存器退圖 21:讀/寫多個寄存器器發送器發送異常碼請求異常碼異常碼異常碼GB/T 6.12 43(0 x2B)這個功能碼
39、與設備的物理描述和功能描述相關的識別碼和附加報文。將讀設備識別碼接口模擬為一個地址空間,這個地址空間由一組可尋址數據元素組成。數據元素是被叫對象,并且對象Id 確定這個數據元素。接口由 3 種對基本設備識別碼。所有此種對象都是必備的:廠商名稱、產品代碼和修訂本號。正常設備識別碼。除基本數據對象以外,設備提供了附加的和可選擇的識別碼以及數據對象描述。按標準定義所有種類的對象,但是這種對象的執行是可選的。擴展設備識別碼。除正常數據對象以外,設備提供了附加的和可選的識GB/T 6.12 43(0 x2B)這個功能碼與設備的物理描述和功能描述相關的識別碼和附加報文。將讀設備識別碼接口模擬為一個地址空間
40、,這個地址空間由一組可尋址數據元素組成。數據元素是被叫對象,并且對象Id 確定這個數據元素。接口由 3 種對基本設備識別碼。所有此種對象都是必備的:廠商名稱、產品代碼和修訂本號。正常設備識別碼。除基本數據對象以外,設備提供了附加的和可選擇的識別碼以及數據對象描述。按標準定義所有種類的對象,但是這種對象的執行是可選的。擴展設備識別碼。除正常數據對象以外,設備提供了附加的和可選的識別碼描述。所有這些數據都是與設備有關的。數功能1個字MEI 類1個字 1個字1個字隨1個字下一個對象1個字對象1個字 1個字對象1個字對象1個字功能1個字MEI 類1個字 1個字1個字0 x00 對象名稱/類種ASCII
41、 強制基ASCII 強制主要修訂ASCII 強制ASCII 可選規ASCII 可選ASCII 可選用戶應用名ASCII 可選??蛇x可選擇地定對范圍0 x800 xFF與產品有相關可選擴GB/T 錯請求參數描述指配號為 14 的MODBUS 封裝接口識別讀識別碼請求。定義01:請求獲得基本設備識別碼(02:請求獲得正常設備識別碼(03:請求獲得擴展設備識別碼(04:請求獲得特定識別碼對象)在識別碼數據不適合單獨響應的情況下,可以需要幾個請求/響應事務處理。對象id字節給出了獲得的第一個對象識別碼。對于第一個事物處理來說,客戶機必須設置對象 idGB/T 錯請求參數描述指配號為 14 的MODBU
42、S 封裝接口識別讀識別碼請求。定義01:請求獲得基本設備識別碼(02:請求獲得正常設備識別碼(03:請求獲得擴展設備識別碼(04:請求獲得特定識別碼對象)在識別碼數據不適合單獨響應的情況下,可以需要幾個請求/響應事務處理。對象id字節給出了獲得的第一個對象識別碼。對于第一個事物處理來說,客戶機必須設置對象 id為 0,以便獲得設備識 如果對象 id 不符合任何已知對象,那么服務器象象 0 那樣響應(從頭開始在單的情況下:ReadDevId 代碼 04,請求中的對象 id 給出了獲得的對象識別碼如果對象 不符合任何已知對象,那么服務器返回一個異常碼數據地址)的異常響應響應參數描述功能碼MEIRe
43、adDevId碼:功能碼 43(十進制)0 x2B (十六進制ReadDevId碼相同:01、02、03)02:別碼()和單和單03:擴展識別碼(81:基本識別碼()82:別碼(83:擴展識別碼(隨:在ReadDevId01、0203如果識別碼數據不符合單個響應,那么需要幾個請求/響應事務00:對象不FF:其它識別碼對象是可利用的,并且MODBUS 事務ReadDevId04(單必須設置這個域為 00 (下一個對象對象(對于單,對象號碼= 第一個對象的字節長度Object0.功能1字FcMEI 類1字異常字GB/T Object0. ObjectN.第一個對象的值(對象 0.長度字節最后對象的
44、值(對象 N.長度字節“基本設備識別碼”的讀設備識別碼請求的實例:在這個實例中,一個響應報文。中發送所有的如果一個設備需要幾個事務處理發送響應,那么啟動下列事務處理。第一個事GB/T Object0. ObjectN.第一個對象的值(對象 0.長度字節最后對象的值(對象 N.長度字節“基本設備識別碼”的讀設備識別碼請求的實例:在這個實例中,一個響應報文。中發送所有的如果一個設備需要幾個事務處理發送響應,那么啟動下列事務處理。第一個事務請響值值功MEI類型 id功MEI類型 繼下一個對象id “公司識別碼請響值值功MEI類型 id功MEI類型 繼下一個對象id id id 對象“公司識別碼“產品
45、代碼GB/T 第二個事務請響值值功MEI類型 id功MEI類型 GB/T 第二個事務請響值值功MEI類型 id功MEI類型 繼下一個對象id 對象GB/T 進器接收對象器發送退圖 GB/T 進器接收對象器發送退圖 22:讀設備識別碼7 MODBUS當客戶機設備向服務器設備發送請求時,客戶機希望一個正常響應。從主站詢問中出現下列四隨請求異常碼異常碼GB/T 種可能事件如果服務器設備接收到無通信錯誤的請求,并且可以正常地處理詢問,那么服務器設備將返回一個正常響應。如果由于通信錯誤,服務器沒有接收到請求,那么不能返回響應??蛻魴C程序將最終處理請求的超時狀態。.GB/T 種可能事件如果服務器設備接收到
46、無通信錯誤的請求,并且可以正常地處理詢問,那么服務器設備將返回一個正常響應。如果由于通信錯誤,服務器沒有接收到請求,那么不能返回響應??蛻魴C程序將最終處理請求的超時狀態。.,如果服務器接收到無通信錯誤的請求,但不能處理這個請求(例如,如果請求讀一個不存在的輸出或寄存器),服務器將返回一個異常響應,通知用戶錯誤的本異常響應報文有兩個與正常響應不同功能碼域:在正常響應中,服務器利用響應功能碼域來應答最初請求的功能碼。所有功能碼的 通過設置功能碼的 MSB,客戶機的應用程序能夠識別異常響能夠檢測異常碼的數據域數據域:在正常響應中,服務器可以返回數據域中數據或統計表(請求中要求的任何報文。在異常響應中
47、,服務器返回數據域中的異常碼。這就定義了產生異常的服務器狀態??蛻魴C請求和服務器異常響應在這個實例中,客戶機對服務器設備尋址請求。功能碼(01)用于讀輸出狀態操作。它將請求地址 從下頁開始異常碼MODBUS 異常代名含功對于服務器(或從站)來說,詢問中接收到的功能碼是不可允許的操作。這也許是因為功能碼僅僅適用于新設備而在被選單元中是不可實現的。同時,還服務器(或從站)在錯誤狀態中處理這種請求,例如:因為它是未配置的,并要求返回寄存器值對于服務器(或從站)來說,詢問中接收到的數據地址是不可允許的地址。特別100 個寄存器的控制器來說,帶有偏移量96 和長度4 的請求會成功,帶有偏96 和長度5
48、的請求將產生異02請響(十六進制(十六進制功起始地Lo輸出數GB/T 數據對于服務器(或從站)來說,詢問中包括的值是不可允許的值。這個值指示了組合請求剩余結構中的故障,例如:隱含長度是不正確的。并不意味著,因為 MODBUS協議不知道任何特殊寄存器的任何特殊值的重要意義,寄存器中被提交 的GB/T 數據對于服務器(或從站)來說,詢問中包括的值是不可允許的值。這個值指示了組合請求剩余結構中的故障,例如:隱含長度是不正確的。并不意味著,因為 MODBUS協議不知道任何特殊寄存器的任何特殊值的重要意義,寄存器中被提交 的數據項有一個應用程序期望之外的當服務器(或從站)正在設法執行請求的操作時,產生不
49、可重新獲得的差錯確與編程命令一起使用。服務器(或從站)已經接受請求,并切正在處理這個請求,但是需要長的持續時間進行這些操作。返回這個響應防止在客戶機(或主站)中發生超時錯誤??蛻魴C(或主站)可以繼續發送輪詢程序完成報文來確定是否完成處從屬設備與編程命令一起使用。服務器(或從站)正在處理長持續時間的程序命令。張務器(或從站)空閑時,用戶(或主站)應該稍后重新傳輸報文奇偶性差2021 6 一起使用,指示擴展文件區不能通過一致性服務器(或從站)設文件,但是器中發現一個奇偶校驗錯誤客戶機(或主方)可以重新發送請求,但可以在服務器(或從站)設備上要不可用網關路與網關一起使用,指示網關不能為處理請求分配輸
50、入端口至輸出端口網關目標設備響應敗與網關一起使用,指示沒有從目標設備中獲得響應。通常意味著設備未在網中GB/T 第二部分:ModbusGB/T 第二部分:Modbus 協議在GB/T 1 1.1 GB/T 1 1.1 站之間交換Modbus 請求。Modbus 協議的系統設計者。的協議標準化,以便在一個主站和一個或多個協議。使用對象為在他們的產品實現串行鏈路本文件將增進使用 Modbus 協議的設備之間的互通性。本文件還是對“Modbus 協議規范”的補充。第5 章定義必須遵守的要求的串行鏈路”的實現等級。級別的規范是對一個設備能夠屬于某個級別ModbusOSI7 層規串行鏈路規(OSI12
51、層1.2 本文件描述 Modbus 串行鏈路協議Modbus 串行鏈路協議是一個主/從協議該協議位于 OSI一個主從類型的系統有一個向某個“子”節點發出顯式命令并處理響應的節點(主節點)。典型的子節點在沒有收到主節點的請求時并不主動發送數據,也不與其它子節點通信。在物理層,Modbus 串行鏈路系統可以使用不同的物理接口(RS485、RS232)。最常用的是 距離的點到點通信時,TIA/EIA-232-E 串行接口也可以使用。(參見有關“物理層”的章節下圖給出了 Modbus 串行通信棧對應于 7 OSI 模型的一般關系GB/T Modbus 客戶機/服務1 Modbus ISO/OSI位于O
52、SI 7 Modbus 的客戶機/Modbus 1.3 在GB/T Modbus 客戶機/服務1 Modbus ISO/OSI位于OSI 7 Modbus 的客戶機/Modbus 1.3 在本文件中下列詞匯用于定義每一種要求的重要程度求。這些詞語帶有下劃線” 現選項時的指南。在有合理的理由的特定條件下,可以忽略這但是,對其全部含義應該理并且基于情況做出選擇時應仔細斟酌這些詞語帶有下劃線詞語 “可以”,或形容詞 可選的,表示該項為真正意義的可選的。某個設計者可以選項(基于特定的市場需求或產品功能增強);而另一個可以選擇忽層ISO/OSI 模7應用6表示空5會話空4傳輸空3網絡空2數據鏈路Modb
53、us 串行鏈路1物理EIA/TIA-485EIA/TIA-Modbus 主站/從GB/T 1.4 如果某個實現不滿足實現級別中一個或多個必須的要求,則是不符合的如果某個實現滿足實現級別中所有的必須要求和所有的應該的建議,則稱為無條件GB/T 1.4 如果某個實現不滿足實現級別中一個或多個必須的要求,則是不符合的如果某個實現滿足實現級別中所有的必須要求和所有的應該的建議,則稱為無條件符合的如果某個實現滿足實現級別中所有的必須要求和不是所有的應該的建議,則稱為有條件符合的1.5 定義本文件中用到的特定詞匯、符號和縮略語在 “電氣接口” 在 “電氣接口” 在兩線制系統中使用四線制接口的特殊配置需要時
54、可參見SchneiderElectricMomentum 870USE10110連接單元接口 ent EIA/TIA 標準中的信號公共端 (Common)在兩線制或四線制RS485 Modbus 信號和可選的電源的公共端er Supply 公共公共, ircuitEquipment) 可編程序控制器適配器。也稱作數據通信設備(Data Communication Equipment)“Modbus 設備” : 參見其定義設驅動發生器,或發送Modbus設備。例如, 實現了RS232 數據終端設備編程終端或erminal 干纜側的物理總線接口 ( erface on Trunk Side)設備側
55、的物理總線接口 ( erface on Derivation Side)線路終端(Line Termination)設實現了 Modbus 串行鏈路并遵循技術規范的設備EIATIA232 標準EIATIA485 標準RS485 與該技術標準一致的兩線制或四線制網收發器。(a Transmitter and a )GB/T 2 Modbus 2.1 Modbus主站/(247 ) 連接于同一個串行總線。Modbus 有收到節點的請求時,從不會發送數據。子節點之間從不會互相通信。主節點在同GB/T 2 Modbus 2.1 Modbus主站/(247 ) 連接于同一個串行總線。Modbus 有收到
56、節點的請求時,從不會發送數據。子節點之間從不會互相通信。主節點在同一時刻會發起一個 Modbus 事務 點返回一個報文(一個 應答)。Modbus 2 某個子節點,子節點接到并處理完請求后,子節點向主 在廣播模式,主節點向所有的子節點發送請求。對于主節點廣播的請求沒有應答返回。廣播請求一般用于寫命令。所有設備必須接受播模式的寫功能。址0 是專用于示廣數據。單播和廣播模式的區別在一個多點的結構下(RS485)更加易請應單播模請 廣播模GB/T 2.2 ModbusModbus 256 0 保留為廣播地址。 所有的子節點必須Modbus 必須Modbus 一2.3 ModbusModbus 1 定
57、義了簡單的獨立于其下面通信層的協議數據單元(PDUPGB/T 2.2 ModbusModbus 256 0 保留為廣播地址。 所有的子節點必須Modbus 必須Modbus 一2.3 ModbusModbus 1 定義了簡單的獨立于其下面通信層的協議數據單元(PDUProtocolData MODBUS圖 5:Modbus 協議數在不同總線或網絡的Modbus 協議務處理的客戶端構造 Modbus PDU,然后添加附加的域以構造適當的通信 PDU。Modbus圖 6:串行Modbus 串行鏈路,地址域只含有子節點地址 主節點通過將子節點的地址放到報文的地址域對子節點尋址。當子節點返回址放到應答
58、報文的地址域以讓主節點知道哪個子節點在回答它將自己的冗余校驗的計算結果。根據不同的傳輸模式(RTUor 使用兩種不同的計算方法(2.5 兩種串行傳輸模式CRC(01 248廣播地子節點單獨地保GB/T 2.4 主站/Modbus 主/ RTU ASCII 模式下面的章節描述了主節點和子節點與傳輸模式無關的狀態圖GB/T 2.4 主站/Modbus 主/ RTU ASCII 模式下面的章節描述了主節點和子節點與傳輸模式無關的狀態圖 狀態圖詞法下面的狀態圖使用與 UML 標準標記法繪制。標記法要點如下觸發 臨界條件/ 狀態狀態當一個系統處于狀態_A時發生觸發事件,只有當2.4.1 臨界條件 為真時
59、狀態_B,下圖描述了主節點的狀態特:/ 啟動轉換延空/啟動響應超處理轉換延遲時間幀接收響應 期望的子節點/ 等待出錯接收響非期望的子節點應答超主節:對上面的狀態圖的空閑空閑狀態請求才能被發送。發送一個請求后,主節點離開空閑狀態, 而且不能同時發送第二個請求。 響應超時處于等待應答 應超時繼續計時;當檢測到幀錯時,可以執行一GB/T ” 請求。重試的最大次數取決于主節點 的設置。當廣播請求發送到串行總線上,沒有響應從子節點返回。然而主節點需要進行延遲以便使子節點在發送新的請求處理完當前請求。該延遲被稱作 轉換延遲。因此,主節點會在返回能夠發送另一個請求的“空閑”狀態之前,到 等待轉換延遲狀態。在
60、單播方式,響應超時必須設置到足夠的長度以使任何子節點都能處理完請求并返回響應。而廣播轉換延遲必須有足夠的長度以使任何子節點都能只處理完請求而可以接收新的請求。 9600 bpsGB/T ” 請求。重試的最大次數取決于主節點 的設置。當廣播請求發送到串行總線上,沒有響應從子節點返回。然而主節點需要進行延遲以便使子節點在發送新的請求處理完當前請求。該延遲被稱作 轉換延遲。因此,主節點會在返回能夠發送另一個請求的“空閑”狀態之前,到 等待轉換延遲狀態。在單播方式,響應超時必須設置到足夠的長度以使任何子節點都能處理完請求并返回響應。而廣播轉換延遲必須有足夠的長度以使任何子節點都能只處理完請求而可以接收
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 河北2025年河北省氣象部門招聘應屆畢業生(第三批)筆試歷年參考題庫附帶答案詳解
- 攀枝花2025年攀枝花市鹽邊縣事業單位新一輪引才17人筆試歷年參考題庫附帶答案詳解
- 南京中醫藥大學翰林學院《外國文學經典》2023-2024學年第二學期期末試卷
- 云南林業職業技術學院《社會政策》2023-2024學年第二學期期末試卷
- 廣州幼兒師范高等??茖W?!镀囋砼c構造》2023-2024學年第二學期期末試卷
- 綿陽飛行職業學院《中學生物學教學技能訓練》2023-2024學年第二學期期末試卷
- 宿州學院《農產品營銷與電子商務》2023-2024學年第二學期期末試卷
- 遼寧工業大學《數據分析導論》2023-2024學年第二學期期末試卷
- 湖北幼兒師范高等??茖W?!吨屑売⒄Z閱讀2》2023-2024學年第二學期期末試卷
- 東北大學《軟件體系結構原理與方法》2023-2024學年第二學期期末試卷
- 口腔頜面部損傷 口腔頜面部軟組織損傷
- 某石料廠年產10萬噸石灰巖開采建設項目可行性研究報告
- 2023年雅安市人力資源和社會保障局招考聘用編外工作人員模擬預測(共1000題)筆試備考題庫及答案解析
- 臺灣大學歐麗娟老師的中國文學史講義
- 國家開放大學《哲學基礎》形考任務1-3參考答案
- R老年人老年人如何保持適宜體重
- 胸腔鏡下肺癌根治的手術配合
- 監控設備安裝技術交底
- 精選河南省2023年普通高中學業水平考試生物
- 普通高中通用技術學生設計作品圖文匯報材料
- 消防通風施工組織方案
評論
0/150
提交評論