紫外工控论坛

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

搜索
查看: 5182|回复: 1

PLC通信中常用CRC码的计算方法,三菱为例

[复制链接]
冰糖 发表于 2010-7-11 10:30:51 | 显示全部楼层 |阅读模式
在网上流行的CRC码的计算方法如下:

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

2、 把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低 8位相异或,把结果放于CRC寄存器;

3、 把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查移出位;

4、 如果移出位为0:重复第3步(再次右移一位); 如果移出位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;

5、 重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;

6、 重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;

7、 将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器;

8、 最后得到的CRC寄存器的高、低字节进行交换即为:CRC码。

据此,给出一个H05的CRC-16演算过程,
H05的CRC码:
HFFFF:1111 1111 1111 1111
H05  :0000 0000 0000 0101
X0R  :1111 1111 1111 1010
--------------------------
N1-->  0111 1111 1111 1101
--------------------------
N2-->  0011 1111 1111 1110
HA001: 1010 0000 0000 0001
XOR : 1001 1111 1111 1111
--------------------------
N3-->  0100 1111 1111 1111
HA001: 1010 0000 0000 0001
XOR : 1110 1111 1111 1110
--------------------------
N4-->  0111 0111 1111 1111
--------------------------
N5-->  0011 1011 1111 1111
HA001: 1010 0000 0000 0001
XOR : 1001 1011 1111 1110
--------------------------
N6-->  0100 1101 1111 1111
--------------------------
N7-->  0010 0110 1111 1111
HA001: 1010 0000 0000 0001
XOR : 1000 0110 1111 1110
--------------------------
N8-->  0100 0011 0111 1111
||  H  4    3    7    F

大体就是这样进行8次移位,希望您没有晕。

所以最好是通过软件,让程序来做这样的麻烦事。
以三菱为例,你可以这样做:



本文来源:http://www.ymmfa.com/read.php?tid-69959.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
 楼主| 冰糖 发表于 2010-7-11 10:32:24 | 显示全部楼层
最后一句是MOV D0 D20,被水印盖了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


--------------------------------------------------------------------------------------------------------------------
本站是工控技术交流站点,论坛内容均为网络收集或会员所发表,并不代表本站立场,会员拥有该内容的所有权力及责任!
本站内容如有侵犯您的版权,请按下面方式联系本站管理员,我们将及时删除处理
管理员:冰糖 QQ:5483695(请直击主题), Mail:admin#ziwai.net(#改成@) 其它非本人.
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论!

QQ|Archiver|手机版|小黑屋|紫外工控论坛. ( 苏ICP备11032118号-1 )

GMT+8, 2024-5-4 00:48 , Processed in 0.546878 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表