【玩转485】15.crc效验1【连载15】

【玩转485】15.crc效验1【连载15】

ID:21720587

大小:113.00 KB

页数:5页

时间:2018-10-24

【玩转485】15.crc效验1【连载15】_第1页
【玩转485】15.crc效验1【连载15】_第2页
【玩转485】15.crc效验1【连载15】_第3页
【玩转485】15.crc效验1【连载15】_第4页
【玩转485】15.crc效验1【连载15】_第5页
资源描述:

《【玩转485】15.crc效验1【连载15】》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、【玩转485】15.crc效验1【连载15】  写了这么多了终于写到了校验可能大部分人都觉得校验是整个通讯过程中最复杂的一个环节。下面我就系统的给大家来介绍一下校验的整个过程。  1.什么是校验      要搞懂校验的整个过程我们先来看看到底什么是校验,可能在我之前的文章中大家也发现了我所写过的程序没有一个和校验有关系,站点与站点之间数据的传递都是直接进行收发,而且也没有出现过任何问题,既然不写校验程序也能正常运行,那校验在我们的整个通讯过程中到底起着什么样的作用呢?    其实这里可能大家忽略了一个问题,我之前文章中所写的程序都是在实验环境中运行的,电脑与PLC之间的距

2、离不超过2米,周围也没有会产生电磁干扰的用电设备,在这样理想的环境中,数据在传输过程中肯定不会发生任何变化,所以写不写校验程序都无所谓,但是在我们的工业现场环境就非常复杂甚至恶劣了,数据在传输过程中很可能由于外部复杂的环境发生变化,甚至是丢失,那么接收到的数据就不是对方发出的数据了,报文的内容就发生了变化,如果变化后的报文没有任何指令含义还好说,一旦变化后的报文的含义发生转变,比如本来主站发出的报文是控制A设备的,但是由于现场的干扰报文变成了控制B设备,那么就会在控制过程中出现误操作,这种情况虽然概率极低但是非常危险。因此我们需要对所有传输的数据进行校验以判断接收到的数据

3、是否和对方发送的数据是一致的。  2.crc校验  下面我就向大家介绍一种工业控制中非常常用的一种校验算法crc校验,首先我用文字向大家描述一下crc校验算法的整个流程。1)向一个16位寄存器A装载16个1也就是16#FFFF2)取被校验串的第一个字节与16位寄存器A的高位字节进行“异或”运算,运算结果存回寄存器A。3)把寄存器A内的数据向右移动一位。4)若A寄存器中被移出的数是1,则用1010000000000001(16#A001)和寄存器A进行”异或运算”,若寄存器中被移出的数是0则返回步骤3)5)重复步骤3)和4),直到移出8位数据为止。6)取被校验串的下一个字节

4、7)重复步骤3)至6)直至被校验串所有字节均与寄存器A进行“异或”运算,并移位8次。8)最终A寄存器中的数值就是crc校验结果。  3.程序编写      此处我先在S7-200PLC中给大家把上面的汉字版校验过程翻译成具体的程序,至于具体在整个通讯的过程中如何使用我们下一篇文章再具体讨论。  图3-1主程序图3-1  图3-2子程序接口与本地数据定义图3-2图3-3  4程序演示      这里我们可以将PLC的计算结果,与专门计算crc的软件算出的数值进行比较。  图4-1图4-2  由图4-1和图4-2我们可以看出PLC计算出的结果没有任何错误,当然大家也可以自己去

5、实验更多的数值来对本程序进行验证。    作者:马乐  版权为技成所有,未经同意,盗取必究!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。