您的位置:首页 > 其它

关于modbus rtu协议的CRC(循环冗余校验)在线计算

2017-06-21 20:29 387 查看
       上位机须按照MODBUS协议的命令格式发送数据(包括计算的CRC值),从机才能正确辨识数据。若无CRC值,从机将返回含有错误号的应答包,不会得到正确结果。标准的做法发送前计算CRC值并一起发送,接收后也计算CRC值并与接收的校验码对比是否相等,以辨别数据是否准确。计算CRC有相应的方法和代码,我觉得很繁琐,倒不如用现成的计算器算算,在线的比较好用,不错。在线计算网址一http://www.ip33.com/crc.html比如要发送的命令是:15 03 00 31 00 01这里使用的参数模型是:CRC 16/modbus,点击计算得到CRC值:D1D6 H注意:当放置 CRC 值于命令时,高低字节必须交换 ,所以,报文中CRC低字节:0xD6 高字节0xD1        在线计算网址二https://www.lammertbies.nl/comm/info/crc-calculation.html 
发送的命令是:15 03 00 31 00 01
计算得到CRC 16/modbus的值:D1D6 H
同样需要注意:当放置 CRC 值于命令时,高低字节必须交换 ,所以报文中CRC低字节:0xD6  高字节0xD1
在线计算网址三:http://cht.nahua.com.tw/index.php?url=http://cht.nahua.com.tw/software/crc16/&key=Modbus,%20RTU,%20CRC16&title=計算%20Modbus%20RTU%20CRC16
计算得到校验码:D6D1 H
注意:当放置 CRC 值于命令时,高低字节必须交换 ,这里计算后已经有交换,所以我们在报文中直接用就可以了,所以低字节:0xD6  高字节0xD1

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: