一、Modbus Tcp
以下指令均为16进制数。
1.读多个地址。
0000 0000 0006 01 03 0001 0010
0000:事务标识符(2字节) ,没有特别定义;
0000:协议标识符(2字节) ,MODBUS协议的场合为0000H;
0006:长度(2字节),后面所跟的字节长度;
01 :单元标识符(1字节),站号,或者说机器地址;
03:功能(1字节) ,请指定功能代码;(功能代码补充:03读多个地址,06写单个地址,10写多个地址)
0001:起始数据地址;
0010:读个数。
2.写单个地址。
0000 0000 0006 01 06 00FF 000A
0000:事务标识符(2字节) ,没有特别定义;
0000:协议标识符(2字节) ,MODBUS协议的场合为0000H;
0006:长度(2字节),后面所跟的字节长度;
01 :单元标识符(1字节),站号,或者说机器地址;
06:功能(1字节) ,请指定功能代码;(功能代码补充:03读多个地址,06写单个地址,10写多个地址)
00FF:写入地址;
000A:写入数据。
3.写多个地址。
0000 0000 000B 01 10 0001 0002 04 000A 000B
0000:事务标识符(2字节) ,没有特别定义;
0000:协议标识符(2字节) ,MODBUS协议的场合为0000H;
展开全文
000B:长度(2字节),后面所跟的字节长度;
01 :单元标识符(1字节),站号,或者说机器地址;
10:功能(1字节) ,请指定功能代码;(功能代码补充:03读多个地址,06写单个地址,10写多个地址)
0001:起始数据地址;
0002:写个数;
04:字节数,写个数*2;
000A:写入数据1;
000B:写入数据2。
二、Modbus RTU
以下指令均为16进制数。
1.读多个地址。
01 03 0001 0010 15C6
01 :机器地址;
03:功能代码;(功能代码补充:03读多个地址,06写单个地址,10写多个地址)
0001:起始数据地址;
0010:读个数;
15C6:校验代码(CRC)。
2.写单个地址。
01 06 00FF 000A 39FD
01 :机器地址;
06:功能代码;(功能代码补充:03读多个地址,06写单个地址,10写多个地址)
00FF:写入地址;
000A:写入数据;
39FD:校验代码(CRC)。
3.写多个地址。
01 10 0001 0002 04 000A 000B 53A6
01 :单元标识符(1字节),站号,或者说机器地址;
10:功能(1字节) ,请指定功能代码;(功能代码补充:03读多个地址,06写单个地址,10写多个地址)
0001:起始数据地址;
0002:写个数;
04:字节数,写个数*2;
000A:写入数据1;
000B:写入数据2;
53A6:校验代码(CRC)。
CRC校验可以通过http://www.ip33.com/crc.html计算获得,使用实例如下图: