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