- 36
- 0
- 约2.29千字
- 约 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命令对应的保持寄存器地址表,一共有34个参数。
寄存器
地址
(DEC)
参 数 名 称
数据格式
类型
备注
00
第一路信号类型
Char
读写
01
第二路信号类型
Char
读写
02
第三路信号类型
Char
读写
03
第一路测量值(温度)
Float
只读
浮点型,占用两个寄存器地址,下同
05
第二路测量值(压力)
Float
只读
07
第三路测量值(流量)
Float
只读
09
第一路量程上限
Float
读写
量程范围-9999.9~999999,以下所有浮点参数类似。
11
第一路量程下限
Float
读写
13
第二路量程上限
Float
读写
15
第二路量程下限
Float
读写
17
第三路量程上限
Float
读写
19
第三路量程下限
Float
读写
21
第一报警状态
Char
只读
22
第二报警状态
Char
只读
23
第一路报警值
Float
读写
25
第二路报警值
Float
读写
27
流量模型
Char
读写
28
大气压力
Float
读写
30
补偿系数K0
Float
读写
32
补偿系数K1
Float
读写
34
补偿系数
原创力文档

文档评论(0)