modbus協議資料格式

2022-07-28 12:48:25 字數 2871 閱讀 7075

說明:

modbus協議一般適用於乙個主裝置訪問多個從裝置的硬體開發環境,類似於zigbee網路中的乙個路由器多個協調器的一對多模型。

modbus常用的暫存器型別為 3x 輸入暫存器和 4x保持暫存器

從機3x 輸入暫存器對主機來說是可讀不可寫狀態,從機4x 保持暫存器對主機來說是可讀可寫狀態

功能碼含義

04:讀取輸入暫存器(3x)

03:讀取保持暫存器(4x)

06:寫入單個保持暫存器(4x)

16:寫入多個保持暫存器(4x)

常用的資料格式:

主機讀取從機輸入暫存器資料格式:

資料例項:03

0405

6100

0161

3a分解:

0304

0561

modbus位址 功能碼 暫存器位址高 暫存器位址低

0001

613a

暫存器數量高 暫存器數量低 crc校驗碼低位 crc校驗碼高位

解釋:主機讀取modbus位址為03的從機輸入暫存器,從0x0561(十進位制為1377)位址開始讀取乙個暫存器。

讀取讀取從機輸入暫存器返回資料格式:

03         04    02   00 02   41   31
modbus位址 功能碼 位元組數 資料... crc低 crc高

-------

主機讀取從機保持暫存器資料格式:

資料例項:03

0315 1a 00

01 a0 23

分解:03

0315

1a

modbus位址 功能碼 暫存器位址高 暫存器位址低

0001 a0 23

暫存器數量高 暫存器數量低 crc低 crc高

解釋:主機讀取modbus位址為03的從機保持暫存器,從0x151a(十進位制為5402)位址開始讀取乙個暫存器。

讀取讀取從機保持暫存器返回資料格式:

03         03    02   00 02   40   45

modbus位址 功能碼 位元組數 資料... crc低 crc高

主機寫入單個保持暫存器資料格式:

資料例項:03

0615 1a 00

32 2c 36

分解:03

0615

1a modbus位址 功能碼 暫存器位址高 暫存器位址低

0032 2c 36

資料高 資料低 crc低 crc高

解釋:主機寫入modbus位址為03從機乙個保持暫存器資料,從0x151a(十進位制為5402)位址開始寫入乙個暫存器,寫入資料為0x0032。

寫入單個保持暫存器返回資料格式:

如果寫入成功,返回資料和寫入資料相同

主機寫入多個保持暫存器資料格式:

資料例項:03

1014

5600

0204

0000

0050

823d

分解:03

1014

56modbus位址 功能碼 暫存器位址高 暫存器位址低

0002

0400

0000

50暫存器數量高 暫存器數量低 位元組數 資料 (從高到低依次)

823d

crc低 crc高

解釋:主機寫入modbus位址為03從機兩個保持暫存器資料,從0x1456(十進位制為5206)位址開始寫入兩個暫存器,寫入資料為0x0000、0x0050。

寫入多個保持暫存器返回資料格式:

03

1014

56modbus位址 功能碼 暫存器位址高 暫存器位址低

0002

a5 ca

暫存器資料高 暫存器數量低 crc低 crc高

常用功能碼:

資料型別

功能描述

功能碼功能碼(hex)

異常功能碼(hex)

輸入暫存器

讀暫存器

040x04

0x84

保持暫存器

讀暫存器    

030x03

0x83

寫暫存器

060x06

0x86

寫暫存器

160x10

0x90

這個是我自己使用c**模擬的modbus資料協議打包格式

常用介面有:

//讀取輸入暫存器

int read_input_registers;

//讀取保持暫存器

int read_hold_registers;

//寫單個保持暫存器

int write_hold_register;

//寫多個保持暫存器

int write_hold_registers;

Modbus通訊資料格式

功能碼 名稱 作用 1 讀取線圈狀態 取得一組邏輯線圈的當前狀態 on off 2 讀取輸入狀態 取得一組開關輸入的當前狀態 on off 3 讀取保持暫存器 在乙個或多個保持暫存器中取得當前的二進位制值 4 讀取輸入暫存器 在乙個或多個輸入暫存器中取得當前的二進位制值 5 強置單線圈 強置乙個邏輯...

USB 協議資料格式

前面已經轉了一篇類似的文章,這篇和那篇其實很相似,只是按我的習慣編寫而成。內容和圖表基本 於www.usb.org。lsb bit first 1.域 fields sync 所有包開始都必須有的,1位元組在 low full speed,4 位元組在high speed pid packet id...

TCP協議資料格式

tcp協議間交換的資料單元稱為 tcp段 包括兩部分 首部和資料。標準首部長20位元組,帶有選項的首部會更長。1.源埠和目的埠 各佔2位元組,埠號加上ip位址,共同構成socket。互相通訊的程序使用一對socket,包括協議 源ip 源埠 目的ip 目的埠,這五個元素唯一確定乙個tcp連線。2.序...