一、串口通讯要素
8N1
9600
二、正文数据格式
1 读取表号
下行
45 53 4E 0D 0A
|
B0~B4 |
|---|
|
0x45534E0D0A |
|
5字节 |
|
固定 |
上行
36 30 39 36 33 30 36 30 37 33 48 57 0D 0A
|
B0~B9 |
B10~B13 |
|---|---|
|
0xXX |
0x45570D0A |
|
10字节 |
4字节 |
|
ASCII/大端 |
固定 |
2 配对
下行
FF 06 00 38 74 2A 00 00 00 00 C4 E5
|
B0~B3 |
B4~B5 |
B6~B9 |
B10~B11 |
|---|---|---|---|
|
0xFF060038 |
0xXX |
0x00000000 |
0xXX |
|
4字节 |
2字节 |
4字节 |
2字节 |
|
固定 |
表号B2~B9转明文转HEX,后面拼接月年,crc16校验 0x1021为多项式 0xE0A1为初始值,位序反转 |
固定 |
前所有字节的 CRC-Modbus/小端 |
上行
01 06 00 38 74 2A AE D8
|
B0~B3 |
B4~B5 |
B6~B7 |
|---|---|---|
|
0x01060038 |
0xXX |
0xXX |
|
4字节 |
2字节 |
2字节 |
|
固定 |
表号B2~B9转明文转HEX,后面拼接月年,crc16校验 0x1021为多项式 0xE0A1为初始值,位序反转 |
前所有字节的 CRC-Modbus/小端 |
例:
秘钥:25年8月 ,表号:36 30 39 36 33 30 36 30 37 33
1.B2~B9位转明文转HEX得到:96 30 60 73
2.拼接时间得到:96 30 60 73 08 25
3.CRC16校验结果:54 2E
4.位序反转结果:74 2A
3.修改水表数(先读表号、配对)
下行
FF 10 00 08 00 04 08 04 D7 00 00 00 00 00 00 8F 1B
|
B0~B6 |
B7~B10 |
B11~B14 |
B15~B16 |
|---|---|---|---|
|
0xFF100008000408 |
0xXX |
0x00000000 |
0xXX |
|
7字节 |
4字节 |
4字节 |
2字节 |
|
固定 |
HEX/2301顺序 |
固定 |
前所有字节的 CRC-Modbus/小端 |
上行
01 10 00 08 00 04 40 08
|
B0~B7 |
|---|
|
0x0110000800044008 |
|
8字节 |
|
固定 |