RTU通信协议

RTU通信协议
一、通讯模式
1.通讯接口电气标准: 通讯接口符合RS-232 RS–485国际标准。
2. 通讯协议: 采用MODBUS通讯协议RTU模式。
3.通讯格式约定:
(1)通信速率: 300 600 1200 2400 4800 9600可选
(2)RTU数据格式。
(3)字符格式为11位:
一个起始位 八个数据位 一个奇偶校验位(无校验则无)
一个停止位(有校验时),两个停止位(无校验时)。
每个字符或字节以如下方式发送(从左到右):
最低有效位…最高有效位;
4.RTU帧:
初始结构≥ 4字节时间 地址码 = 1字节 功能码 = 1字节
数据区 = n字节 错误校验= 16位CRC 码 结束结构≥ 4字节时间
地址码:地址码为通讯传送的第一个字节。在一个通讯网络中每个从机对应唯一的地址码,
可设置的范围为0—255(十进制),按照MODBUS通信规约,可能的从设备地址
范围为1—247(十进制)。主机发送的地址码表明将发送到的从机地址,从机发送
的地址码表明回送的从机地址。
功能玛:功能码为通讯传送的第二个字节。MODBUS通讯规约定义的功能号为1—127,本
表只利用了其中的一部分功能码。主机发送功能码是告诉从机器应该执行什么操作,
正常情况下,从机将执行该操作并作为响应回送该功能码,如果回送的功能码最高
位为1,则表明从机没有响应操作或发送出错误。
数据区:数据区的组织是根据不同的功能码而不同。数据区可以是实际的数值,也可以是仪
表寄存器的地址或者状态设置。
错误校验:CRC校验。将整个RTU帧看作是一个连续的二进制数据串,校验时只涉及数据位,
舍去起始位,停止位和任选的奇偶校验位。
产生CRC码的步骤如下:
1. 预置一个16位的寄存器为全1(即十六进制FFFFH),称此寄存器为CRC寄存器;
2. 把第一个8位数据与CRC寄存器的低8位相异或,结果放回CRC寄存器;
3. 把16位CRC寄存器右移一位,用0添补最高位,检测移出位:
4. 如果移出位为0,则重复第3步骤(再次移出);如果移出位为1,则CRC寄存器
与多项式A001H相异或,结果放回CRC寄存器;
5. 重复第3、4步骤,直至移出8位;
6. 将下一个8位数据与CRC寄存器低8位相异或,结果放回CRC寄存器,重复第2、3、4、5步骤;
7. 最后得到的CRC寄存器内容即为产生的CRC校验码。
二、功能说明
1.读取单个或多个仪表寄存器内容(功能码为03):
此功能允许用户从仪表中读取测量值、记录资料及系统所设定的参数。
发送格式 仪表地址 功能码 启始地址高位 启始地址低位 数据个数高位 数据个数低位 CRC校验低位 CRC校验高位
举例 01H 03H 00H 02H 00H 01H CRC CRC
RP_MJ_WRITE Length: 0008, Data: 04 03 00 60 00 02 C4 40
IRP_MJ_WRITE Length: 0008, Data: 04 03 00 64 00 02 85 81
仪表回传的数据中包含了仪表地址、功能码、数据长度、和CRC校验码。
回送格式 仪表地址 功能码 数据字节长度 数据高位 数据低位 CRC校验低位 CRC校验高位
举例 01H 03H 02H 00H 60H CRC CRC

2.写单个数据到仪表某一寄存器(功能码为06):
此功能允许用户修改仪表中任何许可的单一寄存器内容;但其变更的资料必须是在被接收的范围内。
发送格式 仪表地址 功能码 寄存器地址高位 寄存器地址低位 写入数据高位 写入数据低位 CRC校验低位 CRC校验高位
举例 01H 06H 00H 10H 00H 01H CRC CRC
仪表回送信息为:
回送格式 仪表地址 功能码 返回正确代码 CRC校验低位 CRC校验高位
举例 01H 06H 00H CRC CRC
3.写连续数据到仪表寄存器(功能码为10H):
此功能允许用户变更任何许可的连续寄存器内容;但其变更的资料必须是在被接收的范围内。
发送格式 仪表地址 功能码 起始地址高位 起始地址低位 寄存个数高位 寄存个数低位 数据字节个数 数据1高位 数据1低位 数据2高位 数据2低位 CRC校验低位 CRC校验高位
举例 01H 10H 00H 02H 00H 02H 04H 00H 64H 00H 00H CRC CRC
仪表回送信息为:
回送格式 仪表地址 功能码 返回正确代码 CRC校验低位 CRC校验高位
举例 01H 10H 00H CRC CRC
4.错误产生时的回应:
回送
格式 仪表
地址 功能码 出错
代码 CRC校验低位 CRC校验高位
举例 01H 83H 01H CRC CRC
5.代码响应:
00H = 正确响应主机操作,同时回送原功能代码;
01H = 非法的功能码,同时功能码最高位置1;
02H = 非法的寄存器,同时功能码最高位置1;
03H = 非法的数据,同时功能码最高位置1;
04H = CRC校验错误,同时功能码最高位置1。
05H = 奇偶校验错误,同时功能码最高位置1。
三.数值表示方法:
仪表回送的数据为双字节整数表示测量值或组态参数时,该双字节整数所表示的范围为-23767
–+32767(正数以原码表示,负数以补码表示)。当所读取的数据本身含有小数位时,应在读取数据
之前或之后,应对照仪表的寄存器参数表,读出小数位参数x,工程数据=该双字节整数/10x ; 与小数
位无关的数据,则x=0;而小数位固定数据,则x=常数值。向仪表写入数据时,数据的组成方式与读数
据时的解码方式逆向。
例:读取的测量值数据=03E8H(双字节十六进制)=1000(十进制)
此时读取的仪表小数位参数=0001H(双字节十六进制)=1(十进制),即x=1
则测量值的工程量=1000/101=100.0 其他数据同以上计算方法
四、通讯站址和方式参数说明
仪表附加通讯功能时,增加两个参数:通讯地址参数为Cd,方式参数为SCT(WT700系列为bt)。

SCT.0 = 5 、4、3、2、1、0时,波特率为9600、4800、2400、1200、600、300;
SCT.1 = 0、1、2时,为无校验、奇校验、偶校验;
SCT.2 = 0、1时,为2位停止位、1位停止位。

注:SCT.0为显示值最右侧数值。 SCT.2、 SCT.1为0时对应显示位不亮。
对应仪表的参数和测量值地址见“寄存器地址说明”
寄存器地址说明
No. 寄存器地址 寄存器内容 状态 备 注
1 0000H 1号报警器限值 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
2 0001H 2号报警器限值 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
3 0002H 设定值 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
4 0003H 指示灯类型 读/写 双字节整数(可设置范围:十进制 1—3),与小数位无关
5 0004H 保留
6 0005H 1号报警器类型 读/写 双字节整数(可设置范围:十进制 00—14),与小数位无关
7 0006H 1号报警器回差 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
8 0007H 2号报警器类型 读/写 双字节整数(可设置范围:十进制 00—14),与小数位无关
9 0008H 2号报警器回差 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
10 0009H 小数位 读/写 双字节整数(可设置范围:十进制 0—3),与小数位无关
11 000AH 显示最大值 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
12 000BH 显示最小值 读/写 双字节整数(可设置范围:十进制-999—9999),与小数位相关
13 000CH 输入最大值 读/写 双字节整数(可设置范围:十进制 0—100.0)固定小数位为1
14 000DH 输入最小值 读/写 双字节整数(可设置范围:十进制 0—100.0)固定小数位为1
15 000EH 仪表类型 读/写 双字节整数(可设置范围:十进制 001—016),与小数位无关
16 000FH 输出类型 读/写 双字节整数(可设置范围:十进制 0— 2),与小数位无关
17 0010H 本机地址 只读 双字节整数(可设置范围:十进制 0—255)与小数位无关
18 0011H 通讯设置 只读 双字节整数(可设置范围:十进制 000—025),与小数位无关
19 0060H 仪表测量值 只读 双字节整数显示值+双字节整数小数位
提示说明:
1. 每次数据读/写的最大长度为16字节,即八个寄存器的数据内容(一个寄存器地址对应两个字节数据);当读/写的数据长度大于16字节时,将返回错误代码。
2. 数据长度必须和所需读/写的寄存器数量相对应,否则将返回错误代码。
3. 对于只读寄存器不能进行写操作,否则将返回错误代码。
4. 在对接收的数据处理过程中,如果奇偶校验与CRC校验同时发现错误,则优先返回奇偶校验错误代码。
5. 仪表处于参数设置状态时,将暂不响应主机发出的命令,只有处于正常测量状态下时,才正确响应主机。
6. 测量值为故障状态时读出的数据为无效数据4E20H(十进制20000,表示输入信号过大),D8F0H(十进制-10000,表示输入信号过小)。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RS485 Modbus RTU通信协议是一种常用的串行通信协议,广泛应用于工业自动化领域。其主要特点是具有高速、可靠、简单等优点,被广泛应用于各种控制设备的通信和控制中。 Modbus RTU是一种基于ASCII码的协议,它采用8位数据位、1位起始位、1位停止位和无奇偶校验的通信方式。通信的数据格式为:起始位 + 数据位 + 停止位。其中,起始位和停止位均为逻辑0,数据位为0或1。数据的传输采用差分信号线路,可以有效地降低干扰和噪声的影响。 在RS485 Modbus RTU通信协议中,设备之间通过Modbus协议进行通信,其中包括读取、写入和控制等操作。Modbus协议包括三种不同的格式:ASCII格式、RTU格式和TCP/IP格式。其中,RTU格式是最常用的一种格式,它采用二进制码进行通信,具有通信速度快、数据压缩率高等优点。 在RS485 Modbus RTU通信协议中,设备之间必须具有相同的通信速率、数据格式和通信协议。通常情况下,设备之间通过串口进行连接,其中包括主站和从站两种设备。主站负责发送指令,从站则负责接收指令并返回响应数据。在通信过程中,主站需要先发送起始位和数据位,然后等待从站的响应。从站接收到指令后,进行相应的操作并将结果返回给主站。 总的来说,RS485 Modbus RTU通信协议是一种可靠、高速、简单的通信协议,被广泛应用于工业自动化领域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值