何工控学
励志竭精
级别: 家园常客
精华主题: 0
发帖数量: 609 个
工控威望: 905 点
下载积分: 13667 分
在线时间: 501(小时)
注册时间: 2012-10-26
最后登录: 2024-11-01
查看何工控学的 主题 / 回贴
楼主  发表于: 2015-06-24 11:53
各位大师们好:请问PLC与变频器通信时,CRC校验是怎样计算的呀,有没有公式可以用,还是只接把数据相加再取低8位,
instanttw
级别: 探索解密
精华主题: 0
发帖数量: 26 个
工控威望: 155 点
下载积分: 2292 分
在线时间: 39(小时)
注册时间: 2013-04-25
最后登录: 2021-11-04
查看instanttw的 主题 / 回贴
1楼  发表于: 2015-07-21 12:33
不必了解它的为何,仅须了解它的如何。

根据安川变频A1000手册 SIEP C710616 21D 第523页有提到计算方式,以三菱ST九行即可完成。

函数名称:FYaskawa_GetCRC
类型:
FYaskawa_GetCRC    Word[Unsigned]/Bit String[16-bit]

VAR_INPUT    Value    Word[Unsigned]/Bit String[16-bit]
VAR        val    Word[Unsigned]/Bit String[16-bit]
VAR        index    Word[Signed]

程序:
val := Value;
FOR index := 1 TO 8 DO
    IF (val AND 1) <> 0 THEN
        val := SHR(val, 1) XOR 16#A001;
    ELSE
        val := SHR(val, 1);
    END_IF;
END_FOR;
FYaskawa_GetCRC := val;
instanttw
级别: 探索解密
精华主题: 0
发帖数量: 26 个
工控威望: 155 点
下载积分: 2292 分
在线时间: 39(小时)
注册时间: 2013-04-25
最后登录: 2021-11-04
查看instanttw的 主题 / 回贴
2楼  发表于: 2015-07-22 09:32
那就要祈求未来的路上碰不到 3G 了。