- 11
- 0
- 约2千字
- 约 3页
- 2022-03-12 发布于广东
- 举报
MODBUS RTU通信协议
本通信协议采用标准ModBus协议,采用RTU(十六进制数)传输模式。ModBus协议是一种主---从式协议。任何时刻只有一个设备能够在线路上进行发送。由主站管理信息交换,且只有主站能发起。主站会依次对从站进行轮流查询。只有当从站地址与轮询地址相匹配,从站才能回复消息。从站之间不能进行直接通信。协议桢中不包含任何消息报头及消息结束符,消息的开始和结束依靠间隔时间来识别,当间隔时间长于或等于3.5个字符时,即作为检测到桢结束。如果网络内没有与查询地址相一致的从站或从站接收时CRC校验出错,主站将不会接收到返回桢,这时主站根据超时设定判断是否超时,如超时,作出重发或弹出异常错误窗口动作。
协议桢定义如下:
从站地址
功能代码
数据区
CRC16
从站地址:地址必须在1---247之间。
在同个主站网络中每个从站地址必须唯一。
设定仪表二级参数DE。
功能代码:包含读、写多个寄存器。
数据: 以二进制代码传输。
CRC16: 循环冗余校验,校验从从站地址到数据区最后一个字节,计算多项式码为A001(hex)。
通讯口设置
通讯方式 异步串行通讯接口,如RS-485,RS-232,RS-422等
波特率 1200~9600bps(可由设定仪表二级参数自由更改,设定仪表二级参数BT,默认9600)见表10
字节数据格式 HEX
. 一位起始位
. 八位数据位
. 一位停止位
. 无校验
1
*
*
*
*
*
*
*
*
1
起始位 数据位(从低到高) 停止位
消息桢格式 (读、写功能是从主站角度定义的)
读寄存器桢
从站地址
功能代码
首寄存器地址
寄存器数N
CRC16
1字节
1字节
2字节
2字节
2字节
1---247
03H
AddrH, AddrL
NH, NL (1---24)
CrcL, CrcH
读寄存器返回桢
从站地址
功能代码
字节数
寄存器数据
CRC16
1字节
1字节
1字节
N*2字节
2字节
1---247
03H
N*2
DataH, DataL
CrcL, CrcH
写寄存器桢
从站地址
功能代码
首寄存器地址
寄存器数N
字节数
寄存器数据
CRC16
1字节
1字节
2字节
2字节
1字节
N*2字节
2字节
1---247
10H
AddrH, AddrL
NH, NL 1---24
N*2
DataH, DataL
CrcL, CrcH
写寄存器返回桢
从站地址
功能代码
首寄存器地址
寄存器数N
CRC16
1字节
1字节
2字节
2字节
2字节
1---247
10H
AddrH, AddrL
NH, NL 1---24
CrcL, CrcH
错误返回桢
从站地址
功能代码
错误代码
CRC16
1字节
1字节
1字节
2字节
1---247
查询功能代码+80H
见表2
CrcL, CrcH
功能代码表:1
功能代码
ModBus名
功能名
广播
一次连续的N的最大值
03H
Read Holding Registers
读N个寄存器值
No
24
10H
Write Multiple Registers
写N个寄存器值
No
24
错误代码表:2
错误代码
说明
1
寄存器长度超限
2
寄存器地址超限
3
从站密码保护
4
读或写不允许
单路显示仪表的保持寄存器
03,16命令对应的保持寄存器地址表,一共有17个参数。
序号
寄存器
地址
(DEC)
参 数 名 称
数据格式
类型
备注
1
00
测量通道信号类型
Char
读写
最多26种信号类型,0~25
2
01
测量通道小数点
Char
读写
0~3
3
02
测量通道量程下限
Float
读写
全量程
4
04
测量通道量程上限
Float
读写
全量程
5
06
测量通道测量值
Float
只读
6
08
第1路报警方式
Char
读写
0~2
7
09
第1路报警值
Float
读写
全量程
8
11
第1报警状态
Char
只读
0:无报警,1:有报警
9
12
第2路报警方式
Char
读写
0~2
10
13
第2路报警值
Float
读写
全量程
11
15
第2报警状态
Char
只读
0:无报警,1:有报警
12
16
第3路报警方式
Char
读写
0~2
13
17
第3路报警值
Float
读写
全量程
14
19
第3报警状态
Char
只读
0:无报警,1:有报警
15
20
第4路报警方式
Char
读写
0~3
16
21
第4路报警值
Float
读写
全量程
1
原创力文档

文档评论(0)