首页
搜索
历史搜索
首页 > 新闻中心 > 新闻动态

RTU通信协议

2022-01-10 14:21:55| 来源:网络| | 0

        一、通讯模式

        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码的步骤如下:

        预置一个16位的寄存器为全1(即十六进制FFFFH),称此寄存器为CRC寄存器;

        把第一个8位数据与CRC寄存器的低8位相异或,结果放回CRC寄存器;

        把16位CRC寄存器右移一位,用0添补最高位,检测移出位:

        如果移出位为0,则重复第3步骤(再次移出);如果移出位为1,则CRC寄存器

        与多项式A001H相异或,结果放回CRC寄存器;

        重复第3、4步骤,直至移出8位;

        将下一个8位数据与CRC寄存器低8位相异或,结果放回CRC寄存器,重复第2、3、4、5步骤;最后得到的CRC寄存器内容即为产生的CRC校验码。

        二、功能说明

        1.读取单个或多个仪表寄存器内容(功能码为03):

        此功能允许用户从仪表中读取测量值、记录资料及系统所设定的参数。

发送格式仪表地址功能码启始地址高位启始地址低位数据个数高位数据个数低位CRC校验低位CRC校验高位
举例01H03H00H02H00H01HCRCCRC

        仪表回传的数据中包含了仪表地址、功能码、数据长度、和CRC校验码。

        2.写单个数据到仪表某一寄存器(功能码为06):

        此功能允许用户修改仪表中任何许可的单一寄存器内容;但其变更的资料必须是在被接收的范围内。

发送格式仪表地址功能码寄存器地址高位寄存器地址低位写入数据高位写入数据低位CRC校验低位CRC校验高位
举例01H06H00H10H00H01HCRCCRC

        仪表回送信息为:

回送格式仪表地址功能码返回正确代码CRC校验低位CRC校验高位
举例01H10H00HCRCCRC

        3.写连续数据到仪表寄存器(功能码为10H):

        此功能允许用户变更任何许可的连续寄存器内容;但其变更的资料必须是在被接收的范围内。

        4.错误产生时的回应:

回送
格式
仪表
地址
功能码出错
代码
CRC校验低位CRC校验高位
举例01H83H01HCRCCRC

        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.寄存器地址寄存器内容状态备         注
10000H1号报警器限值读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
20001H2号报警器限值读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
30002H设定值读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
40003H指示灯类型读/写双字节整数(可设置范围:十进制      1---3),与小数位无关
50004H保留

60005H1号报警器类型读/写双字节整数(可设置范围:十进制    00---14),与小数位无关
70006H1号报警器回差读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
80007H2号报警器类型读/写双字节整数(可设置范围:十进制    00---14),与小数位无关
90008H2号报警器回差读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
100009H小数位读/写双字节整数(可设置范围:十进制      0---3),与小数位无关
11000AH显示最大值读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
12000BH显示最小值读/写双字节整数(可设置范围:十进制-999---9999),与小数位相关
13000CH输入最大值读/写双字节整数(可设置范围:十进制 0---100.0)固定小数位为1
14000DH输入最小值读/写双字节整数(可设置范围:十进制 0---100.0)固定小数位为1
15000EH仪表类型读/写双字节整数(可设置范围:十进制  001---016),与小数位无关
16000FH输出类型读/写双字节整数(可设置范围:十进制    0---  2),与小数位无关
170010H本机地址只读双字节整数(可设置范围:十进制    0---255)与小数位无关
180011H通讯设置只读双字节整数(可设置范围:十进制  000---025),与小数位无关
190060H仪表测量值只读双字节整数显示值+双字节整数小数位

        提示说明:

        每次数据读/写的最大长度为16字节,即八个寄存器的数据内容(一个寄存器地址对应两个字节数据);当读/写的数据长度大于16字节时,将返回错误代码。数据长度必须和所需读/写的寄存器数量相对应,否则将返回错误代码。对于只读寄存器不能进行写操作,否则将返回错误代码。在对接收的数据处理过程中,如果奇偶校验与CRC校验同时发现错误,则优先返回奇偶校验错误代码。仪表处于参数设置状态时,将暂不响应主机发出的命令,只有处于正常测量状态下时,才正确响应主机。

        测量值为故障状态时读出的数据为无效数据4E20H(十进制20000,表示输入信号过大),D8F0H(十进制-10000,表示输入信号过小)。