用户登陆
免费注册
找回密码
站内短信
论坛搜索
工控下载
用户名
密码
输入验证码:
编程
综合讨论
资料互助
程序样例
三菱工控
西门子区
欧姆龙区
触摸屏区
工控人家园
三菱工控论坛
关于MODBUS 校验问题CRC16
上一主题
下一主题
liwen8966
工控世界让我们认识,更让我们相识!
级别: 探索解密
发送短信
加为好友
QQ联系
精华主题:
0
发帖数量:
31 个
工控威望:
192 点
下载积分:
601 分
在线时间: 33(小时)
注册时间:
2008-09-23
最后登录:
2024-01-09
查看liwen8966的
主题
/
回贴
楼主
发表于: 2012-05-25 10:48
全看
|
小
中
大
求助,最近在做MODBUS协议通信,主要问题是校验问题CRC16不知道怎么去运算,不知道三菱有没有这样的功能自动计算,或者有运算公式也可以!谢谢大家
分享
litung
臺灣-李同在
级别: VIP会员
发送短信
加为好友
QQ联系
精华主题:
2 篇
发帖数量:
577 个
工控威望:
3224 点
下载积分:
14494 分
在线时间: 405(小时)
注册时间:
2009-06-06
最后登录:
2024-12-27
查看litung的
主题
/
回贴
1楼
发表于: 2012-06-07 01:08
全看
|
小
中
大
CRC-16碼由兩個字節構成,在開始時CRC暫存器的每一位都預置為1,然後把CRC暫存器與8-bit的資料進行異或,之後對CRC暫存器從高到低進 行移位,在最高位(MSB)的位置補零,而最低位(LSB,移位後已經被移出CRC暫存器)如果為1,則把暫存器與預定義的多項式碼進行異或,否則如果 LSB為零,則無需進行異或。重複上述的由高至低的移位8次,第一個8-bit資料處理完畢,用此時CRC暫存器的值與下一個8-bit資料異或並進行如 前一個資料似的8次移位。所有的字元處理完成後CRC暫存器內的值即為最終的CRC值。
下面為CRC的計算過程:
1.設置CRC暫存器,並給其賦值FFFF(hex)。
2.將資料的第一個8-bit字元與16位CRC暫存器的低8位進行異或,並把結果存入CRC暫存器。
3.CRC暫存器向右移一位,MSB補零,移出並檢查LSB。
4.如果LSB為0,重複第三步;若LSB為1,CRC暫存器與多項式碼(0xA001)相異或(XOR)。
5.重複第3與第4步直到8次移位全部完成。此時一個8-bit資料處理完畢。
6.重複第2至第5步直到所有資料全部處理完成。
7.最終CRC暫存器的內容即為CRC值。
本帖最近评分记录:
下载积分:+5(550374389) 优秀文章
下载积分:+1(陈大围) 热心助人
簡單的心,是真正有福
單純的心,是真正的快樂
T480 i5-8250U,32GB,SSD:2TB+256G
分享
litung
臺灣-李同在
级别: VIP会员
发送短信
加为好友
QQ联系
精华主题:
2 篇
发帖数量:
577 个
工控威望:
3224 点
下载积分:
14494 分
在线时间: 405(小时)
注册时间:
2009-06-06
最后登录:
2024-12-27
查看litung的
主题
/
回贴
2楼
发表于: 2012-06-11 00:01
全看
|
小
中
大
若你的PLC是FX3U的話
不用去管公式
只要一個指令,就會自動幫你把結果算出來了。
若不是的話,程式就要自己寫了
簡單的心,是真正有福
單純的心,是真正的快樂
T480 i5-8250U,32GB,SSD:2TB+256G
分享
上一主题
下一主题
工控人家园
三菱工控论坛
关于MODBUS 校验问题CRC16
http://www.ymmfa.com
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问