MODBUS規約報文解析
報文格式,報文全部為(wei) 16進製,遙信狀態需要轉換為(wei) 二進製:
主站發送報文 |
地址 |
功能碼 |
寄存器起始地址 |
讀取數據長度 |
CRC校驗碼 | |||
01 |
03 |
01 |
00 |
00 |
02 |
C5 |
F7 | |
說明 |
設備地址 |
設備的規約或點表查看 |
從(cong) 設備的:0x0100H 寄存器讀取遙信狀態,可以在規約或寄存器點表中查看。 |
讀取:0x0100H、0x0101H 兩(liang) 個(ge) 寄存器數據,一共讀取32個(ge) 遙信位置。 |
可通過串口軟件自動計算出 |
主站接受報文 |
地址 |
功能碼 |
數據長度 |
寄存器1狀態0100H |
寄存器2狀態0101H |
CRC校驗碼 | |||
01 |
03 |
04 |
03 |
43 |
00 |
00 |
0B |
A3 | |
說明 |
設備地址 |
設備的規約或點表查看 |
表示收到4個(ge) 數據 |
高位狀態 |
低位狀態 |
高位 |
低位 |
設備自動計算出 |
MODBUS-RTU報文模型
設備地址 |
功能代碼 |
數據格式 |
CRC校驗L |
CRC校驗H |
8bit |
8bit |
N*8bit |
8bit |
8bit |
一個(ge) 報文就是一幀數據,一個(ge) 數據幀就一個(ge) 報文: 指的是一串完整的指令數據,就像上麵的一串數據。
主機對從(cong) 機讀數據操作
0x01 |
03 |
00 01 |
00 01 |
D5 CA |
從(cong) 機地址 |
功能號 |
數據地址 |
讀取數據個(ge) 數 |
CRC校驗 |
從機對主機返回內容
0x01 |
03 |
02 |
00 17 |
F8 4A |
從(cong) 機地址 |
功能號 |
數據字節個(ge) 數 |
兩(liang) 個(ge) 字節數據 |
CRC校驗 |
這樣MODBUS主機就完成了一次對從(cong) 機數據的讀操作,實現了通訊。
MODBUS-RTU常用功能碼
數據類型 |
讀功能碼 |
寫(xie) 功能碼 |
對象類型 |
離散量輸入 |
02 |
|
單個(ge) 位 |
線圈狀態 |
01 |
05,15 |
單個(ge) 位 |
輸入寄存器 |
04 |
|
16位字 |
保持寄存器 |
03 |
06,16 |
16位字 |
寄存器起始地址(起始數據地址)
數據類型 |
參數地址,寄存器編號 |
離散量輸入 |
00001~0FFFF |
線圈狀態 |
10001~1FFFF |
輸入寄存器 |
30001~3FFFF |
保持寄存器 |
40001~4FFFF |
報文實例
遙控點號:開關(guan) 操作=0300H 合操作
TX: 01 06 03 0000 02 08 4F //06表示遙控功能碼,02表示分操作;
RX: 01 06 03 0000 02 08 4F //06表示遙控功能碼,02表示分操作;
遙控點號:開關(guan) 操作=0300H 分操作
TX: 01 06 03 0000 01 48 4E //06表示遙控功能碼,01表示分操作;
RX: 01 06 03 0000 01 48 4E //06表示遙控功能碼,01表示分操作;
遙測報文:每個(ge) 遙測值占用2個(ge) 字節,即1個(ge) 寄存器,最大值為(wei) :0x0000H~0xFFFFH,即:0~65535。
發送數據:01 03 02 00 00 0D 85 B7 //16時27分02秒
接收數據:01 03 1A 00 00 00 00 00 00 1E AE 00 00 1EAD 1E AD 00 00 00 00 00 00 00 00 00 00 6A 96 77 67總召換的電度
共有4個(ge) 電度:
正向有功積分電度=0301H 10000.000(0x00989680),
正向無功積分電度=0302H 0.000 (0x0),
反向有功積分電度=0303H 0.000(0x0),
反向無功積分電度=0304H 0.000(0x0)。
TX:01 03 81 02 00 08 CD F0 //8102為(wei) 總召喚,00 08 為(wei) 數據長度
RX: 01 03 10 0098 96 80 00 00 00 00 00 00 00 00 00 00 00 00 15 64 //10為(wei) 報文數據長度。
電度:( 03命令碼) |
寄存器號 |
遙測報文值 |
轉換 10進製值 |
正向有功積分電度 |
0301H |
00 98 96 80 |
10000000 |
正向無功積分電度 |
0302H |
00 00 00 00 |
0 |
反向有功積分電度 |
0303H |
00 00 00 00 |
0 |
反向無功積分電度 |
0304H |
00 00 00 00 |
0 |