modbus—rtu通讯协议v1.1
1、 通讯口设置
通讯方式 : 异步串行通讯接口, rs-232/rs-485。
波特率 : 1200,2400,4800,9600bps可选
编码方式 : modbus rtu格式,十六进制传输,crc-16校验.
、 数据传输格式: 位起始位、8位数据位、1位停止位、无奇偶校验位。 、 仪表数据格式: 字节寄存器值=寄存器数高8位二进制数+寄存器低8位二进制数 、 仪表通讯帧格式: de: 设备地址 (1-254) 单字节,十六进制;
crc: 校验字节 采用crc-16循环冗余错误校验;
注:调试时,可用“aa,aa”校验码。
4.1 读寄存器命令命令(03):
1
2
3
4
5
6
7~8
de
3
起始寄存器高位
起始寄存器低位
寄存器数高位
寄存器数低位
crc
应答:
1
2
3
4~5
6~7
…
m*2+2~m*2+3
m*2+4~m*2+5
de
3
字节计数m*2
寄存器数据1
寄存器数据2
…
寄存器数据m
crc
写入的寄存器数≤30。
波特率较低,写入数据又较长时,上位机命令返回的等待时间要适当延长!
4.2 读输入寄存器命令(04):
1
2
3
4
5
6
7~8
de
4
起始寄存器高位
起始寄存器低位
寄存器数高位
寄存器数低位
crc
应答:
1
2
3
4~5
6~7
…
m*2+2~m*2+3
m*2+4~m*2+5
de
4
字节计数m*2
寄存器数据1
寄存器数据2
…
寄存器数据m
crc
读取的寄存器数≤60。
波特率较低,读取数据又较长时,上位机命令返回的等待时间要适当延长!
4.3 修改多个输入寄存器命令(10h),需设置密码确认
1
2
3
4
5
6
7
…
de
10
起始寄存器高位
起始寄存器低位
寄存器数高位
寄存器数低位
数据个数n
n个数据
crc
应答:
1
2
3
4
5
6
7~8
de
10
起始寄存器高位
起始寄存器低位
寄存器数高位
寄存器数低位
crc
4.4 修改单个输入寄存器命令(06),需设置密码确认:
1
2
3
4
5
6
7-8
de
06
寄存器高位
寄存器低位
数据高位
数据低位
crc
应答:
1
2
3
4
5
6
7~8
de
06
寄存器高位
寄存器低位
数据高位
数据低位
crc
参数地址:
40001-2: 累积总量百位以上;
40003-4: 累积总量百位以下;
40005-6: 预发料量;
40007-8: 实发料量;
40009-10: 瞬时流量;
40011-12: 温度 ;
40013-14: 密度;
40015-16: 频率;
40017-18: 差压;;
40019—20: 差压电流;
40021—22: 温度电流;
40023—24: 发料状态标志1,2
40025: 发料次数(两字节十六进制);
40026: 掉电次数(两字节十六进制);
40029-31: 时钟(年月-日时-分秒六字节bcd码);
