找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3972|回复: 16

看看PLC大神是怎么编CRC校验程序的

 火... [复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:29
  • 打卡月天数:1
  • 打卡总奖励:7791
  • 最近打卡:2025-12-13 17:25:16

2540

主题

1355

回帖

2万

积分

管理员

积分
21304
发表于 2021-6-19 19:58:15 | 显示全部楼层 |阅读模式


【程序结构描述】

西门子S7-200SMART系列PLC的程序结构分为主程序、子程序、中断程序。此程序用“MAIN”程序调用“CRC校验程序”子程序
定义子程序变量表:如图1-0


子程序变量表定义图1-0

(1)“CRC校验程序”子程序,初始化存储器,并把16#FFFF装载到CRC寄存器中(定义AC0为CRC寄存器)。并利用FOR语句循环,循环的次数由LW4决定。程序如图1-1所示


图1-1初始化存储器

(2)取第一个地址与CRC寄存器做异或运算。并利用FOR语句循环,循环的次数为8,因为一个字节的数据是8个位。程序如图1-2所示


图1-2异或运算

(3)执行移位操作,并判断移出为的状态,若移出位为1,则在与16#A001做异或运算。程序如图1-3所示


图1-3执行移位操作

(4)利用指针,指针加1,指向下一个地址,取出下一个地址之后再进行重复以上步骤效验,直到数据都效验完,程序退出FOR循环。程序如图1-4所示


图1-4指针加1

(5)对计算结果进行高低字节交换,把结果输出。程序如图1-5所示


图1-5高低字节交换

(6)在“MAIN”程序中通过按钮的触发调用“CRC校验程序”子程序。


验证一:写入数据到VB0至VB5中,CRC效验值存储在VW100中


CRC效验计算小助手(与程序中计算相符):


验证二:写入数据到VB0至VB5中,CRC效验值存储在VW100中


CRC效验计算小助手计算(与程序中计算相符):


循环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。

循环冗余校验码(cyclic redundancy check)简称CRC(循环码),是一种能力相当强的检错、纠错码,并且实现编码和检码的电路比较简单,常用于串行传送(二进制位串沿一条信号线逐位传送)的辅助存储器与主机的数据通信和计算机网络中。

循环码是指通过某种数学运算实现有效信息与校验位之间的循环校验(而海明码是一种多重校验)。

这种编码基本思想是将要传送的信息M(X)表示为一个多项式L,用L除以一个预先确定的多项式G(X),得到的余式就是所需的循环冗余校验码。

这种校验又称多项式校验。

理论上可以证明循环冗余校验码的检错能力有以下特点:①可检测出所有奇数位错;②可检测出所有双比特的错;③可检测出所有小于、等于校验位长度的突发错。

工控课堂 www.gkket.com

0

主题

99

回帖

453

积分

注册会员

积分
453
发表于 2021-6-20 02:25:27 | 显示全部楼层
感谢分享,佩服佩服!
工控课堂 www.gkket.com

0

主题

98

回帖

200

积分

注册会员

积分
200
发表于 2021-6-20 02:26:51 | 显示全部楼层
看到这帖子真是高兴!
工控课堂 www.gkket.com

0

主题

10

回帖

28

积分

新手上路

积分
28
发表于 2021-6-21 19:08:11 | 显示全部楼层
取第一个地址与CRC寄存器做异或运算英国乐透。并利用FOR语句循环澳洲幸运20,循环的次数为8,因为一个字节的数据是8个位幸运飞艇。程序如图1-2所示
工控课堂 www.gkket.com

0

主题

37

回帖

448

积分

中级会员

积分
448
发表于 2023-5-14 20:00:42 | 显示全部楼层
真是难得给力的帖子啊。
工控课堂 www.gkket.com
  • 打卡等级:偶尔看看
  • 打卡总天数:14
  • 打卡月天数:0
  • 打卡总奖励:192
  • 最近打卡:2025-05-12 20:06:56

0

主题

86

回帖

1281

积分

中级会员

积分
1281
发表于 2023-6-26 20:47:06 | 显示全部楼层
学习了
工控课堂 www.gkket.com
回复

使用道具 举报

0

主题

110

回帖

354

积分

注册会员

积分
354
发表于 2025-11-12 09:57:51 | 显示全部楼层
占个楼慢慢看,先马克一下
楼主辛苦啦,期待下一篇分享
工控课堂 www.gkket.com

0

主题

154

回帖

526

积分

中级会员

积分
526
发表于 2025-11-22 19:54:53 | 显示全部楼层
学到了学到了,这波分享太实用啦!
工控课堂 www.gkket.com

0

主题

94

回帖

138

积分

新手上路

积分
138
发表于 2025-11-22 20:03:30 | 显示全部楼层
我先占个楼,等下再慢慢看~
工控课堂 www.gkket.com

0

主题

100

回帖

142

积分

新手上路

积分
142
发表于 2025-11-22 20:03:40 | 显示全部楼层
楼主辛苦啦,期待下一篇分享
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 19:34 , Processed in 0.124497 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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