二、本仪表使用的功能码举例说明.doc
PAGE 1
PAGE 4
MODBUS-RTU通信协议
一、通讯模式:
1.通讯接口电气标准:
通讯接口符合RS--485国际标准。
2. 通讯协议:
采用MODBUS通讯协议RTU模式。
3.通讯格式约定:
(1)通信速率: 4800
(2)RTU数据格式。
(3)字符格式为11位:
一个起始位
八个数据位
两个停止位(无奇偶校验)。
每个字符或字节以如下方式发送(从左到右):
最低有效位...最高有效位;
4.RTU帧:
初始结构≥ 4字节时间
地址码 = 1字节
功能码 = 1字节
数据区 = n字节
错误校验= 16位CRC 码
结束结构≥ 4字节时间
地址码:地址码为通讯传送的第一个字节。在一个通讯网络中每个从机对应唯一的地址码,
可设置的范围为0255(十进制),按照MODBUS通信规约,可能的从设备地址
范围为1247(十进制)。主机发送的地址码表明将发送到的从机地址,从机发送
的地址码表明回送的从机地址。
功能玛:功能码为通讯传送的第二个字节。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校验码。
二、本仪表使用的功能码举例说明
读取开关量寄存器内容(功能码为01H)
发送格式仪表地址功能码启始地址高位启始地址低位数据个数高位数据个数低位CRC校验低位CRC校验高位举例01H01H00H40H00H10HCRCCRC 仪表返回数据:
发送格式仪表地址功能码字节总数8个开关量输入8个开关量输出CRC校验低位CRC校验高位举例01H01H02H60H0FHCRCCRC
2.读取单个或多个仪表寄存器内容(功能码为03H):
此功能允许用户从仪表中读取测量值、记录数据及系统所设定的参数。
发送格式仪表地址功能码启始地址高位启始地址低位数据个数高位数据个数低位CRC校验低位CRC校验高位举例01H03H00H60H00H10HCRCCRC仪表返回数据
回送格式仪表地址功能码数据字节总数数据1高位数据1低位……数据16高位数据16低位CRC校验低位CRC校验高位举例01H03H20H00H80H……00H80HCRCCRC3.强制开关量输出通断(功能码为0FH)
发送格式仪表地址功能码启始地址高位启始地址低位数据个数高位数据个数低位字节总数控制数据CRC校验低位CRC校验高位举例01H0FH00H41H00H08H01H00HCRCCRC 仪表返回数据:
发送格式仪表地址功能码启始地址高位启始地址低位数据个数高位数据个数低位CRC校验低位CRC校验高位举例01H0FH00H41H00H08HCRCCRC4.写连续数据到仪表寄存器(功能码为10H):
发送格式仪表地址功能码寄存器高位寄存器低位数据个数高位数据个数
原创力文档

文档评论(0)