modbusrtu3-16号通信协议解释

modbusrtu3-16号通信协议解释

ID:35233917

大小:84.00 KB

页数:6页

时间:2019-03-22

modbusrtu3-16号通信协议解释_第1页
modbusrtu3-16号通信协议解释_第2页
modbusrtu3-16号通信协议解释_第3页
modbusrtu3-16号通信协议解释_第4页
modbusrtu3-16号通信协议解释_第5页
资源描述:

《modbusrtu3-16号通信协议解释》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ModbusRtu通信协议(3,16号命令) 1、读取保持寄存器(单个和多个,以字为最小单位)发送命令帧:设备地址功能码地址H地址L数据量H数据量LCRCHCRCLAddr03HHoldStartDataNumCRC高位CRC低位帧长度:8个字节设备地址:1~247功能码:3H数据地址:0~65535具体范围与相关设备有关数量:1~65535具体范围与相关设备有关校验码:CRC16校验 返回命令帧:设备地址功能码数据量数据1数据NCRCHCRCLAddr13H返回数据的字节数NData(1~N)CRC高位CRC低位帧长度:5+N个字节设备地址:1~247功能码:3H数据量:实际的读

2、取数据数量数据:返回数据的意义a=HoldStartn=DataNum-1VWa(VBa)VWa(VBa+1)…VWa+n(VBa+n)VWa+n(VBa+n+1)Data(1)Data(2)…Data(N-1)Data(N)校验码:CRC16校验命令有误:1)       没有任何返回2)       返回异议帧设备地址功能码错误信息CRCHCRCLAddr183H一个字节的错误信息CRC高位CRC低位2、设置保持寄存器(多个,以字为最小单位)发送命令帧: 设备地址功能码地址H地址L数据量H数据量L数据字节数具体数据CRCHCRCLAddr010HHoldStartDataNum

3、bytN1~bytNCRC高位CRC低位帧长度:9+bytN个字节设备地址:1~247功能码:10H数据地址:0~65535具体范围与相关设备有关数量:1~122具体范围与相关设备有关字节数:设置的字节个数bytN=DataNum×2数据:具体的字节数据校验码:CRC16校验 返回命令帧:设备地址功能码地址H地址L数据量H数据量LCRCHCRCLAddr110HHoldStartDataNumCRC高位CRC低位帧长度:8个字节设备地址:1~247功能码:10H数据地址:0~65535具体范围与相关设备有关数量:1~122具体范围与相关设备有关校验码:CRC16校验 命令有误:1)

4、   没有任何返回2)     返回异议帧地址功能码错误信息CRCHCRCLAddr190H一个字节的错误信息CRC高位CRC低位设置单个寄存器(06H)发送命令帧: 设备地址功能码地址H地址L数据H数据LCRCHCRCLAddr006HHoldStartDataCRC高位CRC低位返回命令帧:设备地址功能码地址H地址L数据H数据LCRCHCRCLAddr106HHoldStartDataCRC高位CRC低位CRC-16(循环冗余错误校验)CRC-16错误校验程序如下:报文(此处只涉及数据位,不指起始位、停止位和任选的奇偶校验位)被看作是一个连续的二进制,其最高有效位(MSB)首选

5、发送。报文先与X^16相乘(左移16位),然后看X^16+X^15+X^2+1除,X^16+X^15+X^2+1可以表示为二进制数11000000000000101。整数商位忽略不记,16位余数加入该报文(MSB先发送),成为2个CRC校验字节。余数中的1全部初始化,以免所有的零成为一条报文被接收。经上述处理而含有CRC字节的报文,若无错误,到接收设备后再被同一多项式(X^16+X^15+X^2+1)除,会得到一个零余数(接收设备核验这个CRC字节,并将其与被传送的CRC比较)。全部运算以2为模(无进位)。习惯于成串发送数据的设备会首选送出字符的最右位(LSB-最低有效位)。而在生

6、成CRC情况下,发送首位应是被除数的最高有效位MSB。由于在运算中不用进位,为便于操作起见,计算CRC时设MSB在最右位。生成多项式的位序也必须反过来,以保持一致。多项式的MSB略去不记,因其只对商有影响而不影响余数。生成CRC-16校验字节的步骤如下:①装如一个16位寄存器,所有数位均为1。②该16位寄存器的高位字节与开始8位字节进行“异或”运算。运算结果放入这个16位寄存器。③把这个16寄存器向右移一位。④若向右(标记位)移出的数位是1,则生成多项式1010000000000001和这个寄存器进行“异或”运算;若向右移出的数位是0,则返回③。⑤重复③和④,直至移出8位。⑥另外8

7、位与该十六位寄存器进行“异或”运算。⑦重复③~⑥,直至该报文所有字节均与16位寄存器进行“异或”运算,并移位8次。⑧这个16位寄存器的内容即2字节CRC错误校验,被加到报文的最高有效位。另外,在某些非ModBus通信协议中也经常使用CRC16作为校验手段,而且产生了一些CRC16的变种,他们是使用CRC16多项式X↑16+X↑15+X↑2+1,单首次装入的16位寄存器为0000;使用CRC16的反序X↑16+X↑14+X↑1+1,首次装入寄存器值为0000或FFFFH

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。