用S7-200的编程软件怎么写CRC校验程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用S7-200的编程软件怎么写CRC校验程序?相关的知识,希望对你有一定的参考价值。

1、首先在电脑中,找到并选择要查看CRC校验码的文件。

2、然后鼠标右击该文件,在弹出的选项中选择“添加到xx.rar”。

3、成功以后,会在选中的那个目录生成一个与选择文件同名的rar压缩文件,双击打开该压缩文件。

4、压缩文件打开后会发现个名为CRC32的项目,那下面的一串数字就是这个文件的CRC32校验码,这个是十六进制的。

5、如果需要查看很多文件的CRC32校验码,可以将这些文件一次性打包成rar,然后打开新生产的rar压缩包,这样在对应文件后面的CRC32列下面就会有相应的CRC32校验么。

参考技术A 整理一个CRC校验计算的子程序
TITLE=子程序注释
// CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB),移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码(16#A001)进行 异或,否则如果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寄存器与多项式码相异或。
// 5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。
// 6.重复第2至第5步直到所有数据全部处理完成。
// 7.最终CRC寄存器的内容即为CRC值。
//
// 输入参数:
// 待校验数据区指针,第一个字节为数据长度
// LD0 DataBuff IN DWORD
Network 1
LD SM0.0
MOVW 16#FFFF, AC0 //初始化CRC寄存器
BTI *LD0, LW4 //数据缓冲区第一个字节为数据长度
MOVD LD0, LD6
INCD LD6 //指针指向第一个待处理字节
Network 2
LD SM0.0
FOR AC2, +1, LW4 //开始循环处理每一个字节
Network 3
LD SM0.0
XORB *LD6, AC0 //字节首先与CRC寄存器低位进行异或
Network 4
LD SM0.0
FOR AC1, +1, +8 //移位处理循环,处理一个字节的8位
Network 5
LD SM0.0
SRW AC0, 1 //CRC寄存器右移一位
Network 6
LD SM1.1 //如果移出位为0,则进入下一次循环
XORW 16#A001, AC0 //如果移出位为1,CRC寄存器与多项式16#A001异或
Network 7
NEXT
Network 8
LD SM0.0
INCD LD6 //指针加1指向下一个字节
Network 9
NEXT
Network 10
LD SM0.0
SWAP AC0 //交换CRC寄存器高低字节
MOVW AC0, *LD6 //CRC校验值写入数据区结尾本回答被提问者采纳
参考技术B (3)用r+1位的生成多项式G(x)去除M(x)*xr 得到余数R(x)。(4)将M(x)*xr 与R(x)作模2加,得到CRC码。 读指令的CRC校验码为:要读,TsWsiZ 参考技术C 记得西门子网上有一个CRC校验的库的,可以直接出结果,你搜索下

CRC校验失败怎么办?

CRC即循环冗余校验码,CRC校验失败可能原因和解决方法如下:

1、可能是安装包有问题 从新下载个安装包就好了。

2、有错误文件。解决方法:试着在解压时勾选保留错误文件,如果不行的话看看杀毒软件里是不是把这个文件隔离了。

3、可能是硬件原因,比如内存不够。只能换硬件了

校验原理

系统内部预先设置根据校验方法所导出的校验公式编制成的校验程序,当带有校验码的代码输入系统时,系统利用校验程序对输入的本体码进行运算得出校验结果之后,再将校验结果与输入代码的校验码进行对比来检测输入的正确与否。

如果两者一致,则表明代码输入正确,系统允许进入,如果不一致,则表明代码输入有误,系统拒绝进入,并要求代码重新输入。

参考技术A crc校验失败,在保证算法没错的情况下,只说明一件事情,就是数据不对
由于crc只是校验,无法纠错,所以对于校验出错的数据只能抛弃
至于后续,如果是存储数据,那么需要做恢复初始化操作
如果是数据传输,那么根据数据重要性确定是不是要重传
参考技术B 回答

你好可能由于您长时间停留在该页没有刷新,或因输入不正确的验证码所导致。先“刷新”,然后及时输入验证码等信息,以便正常使用网上银行。若反复出现超时提示,请您尝试以下操作:(1)打开IE浏览器,选择“工具”菜单-->“Internet选项” 【高级】标签-->点击“还原默认设置”后确定退出。【常规】标签-->点击“Internet临时文件”中的“设置”-->“检查所存网页的较新版本”中选择“每次访问此页时检查”,点击 “删除文件”,在“删除所有脱机内容”前打勾后点击确定。(2)如果安装了3721上网助手,建议您将其完全卸载。

参考技术C CRC校验失败的可能原因和解决方法如下:

1.可能是安装包有问题。

解决方法:只需下载一个新的安装包。

2.有错误的文件。

解决方法:解压时尽量检查并保留错误的文件。

如果没有,请查看该文件是否在防病毒软件中被隔离。

3.可能是硬件原因,比如内存不足。

解决方法:只有硬件可以更改。解决内存问题。
参考技术D

如果有多个压缩包一起解压的那种,建议查看是否把全部压缩包都下载了,看看有没有全部选中一起解压

以上是关于用S7-200的编程软件怎么写CRC校验程序?的主要内容,如果未能解决你的问题,请参考以下文章

s7-200 cpu224cn通信时,双击刷新后出现一个黄色的问号和Unknow字样 你是怎么处理的啊 急急急求!!!!

西门子PLC S7-200软件及入门编程视频教程

P请问AB PLC LOGIX5000怎样才能实现与西门子s7-200modbus或者流量计算机通信?

西门子200用PPI通讯电缆和编程电缆一样吗?

西门子S7-200smart编程软件,可以安装在win8和win10系统中么?

S7-200模拟量输入后如何显示在触摸屏上。