首页 » PHP教程 » phpcrc校验技巧_高级工程师教你若何进行RS485中的crc效验又能学一招

phpcrc校验技巧_高级工程师教你若何进行RS485中的crc效验又能学一招

duote123 2024-11-27 0

扫一扫用手机浏览

文章目录 [+]

1 .什么是校验

要搞懂校验的全体过程我们先来看看到底什么是校验,可能在我之前的文章中大家也创造了我所写过的程序没有一个和校验有关系,站点与站点之间数据的通报都是直接进行收发,而且也没有涌现过任何问题,既然不写校验程序也能正常运行,那校验在我们的全体通讯过程中到底起着什么样的浸染呢?

phpcrc校验技巧_高级工程师教你若何进行RS485中的crc效验又能学一招

实在这里可能大家忽略了一个问题,我之前文章中所写的程序都是在实验环境中运行的,电脑与PLC之间的间隔不超过2米,周围也没有会产生电磁滋扰的用电设备,在这样空想的环境中,数据在传输过程中肯定不会发生任何变革,以是写不写校验程序都无所谓,但是在我们的工业现场环境就非常繁芜乃至恶劣了,数据在传输过程中很可能由于外部繁芜的环境发生变革,乃至是丢失,那么吸收到的数据就不是对方发出的数据了,报文的内容就发生了变革,如果变革后的报文没有任何指令含义还好说,一旦变革后的报文的含义发生转变,比如本来主站发出的报文是掌握A设备的,但是由于现场的滋扰报文变成了掌握B设备,那么就会在掌握过程中涌现误操作,这种情形虽然概率极低但是非常危险。
因此我们须要对所有传输的数据进行校验以判断吸收到的数据是否和对方发送的数据是同等的。

phpcrc校验技巧_高级工程师教你若何进行RS485中的crc效验又能学一招
(图片来自网络侵删)

2. crc校验

下面我就向大家先容一种工业掌握中非常常用的一种校验算法crc校验,首先我用笔墨向大家描述一下crc校验算法的全体流程。

1) 向一个16位寄存器A装载16个1也便是16#FFFF

2) 取被校验串的第一个字节与16位寄存器A的高位字节进行“异或”运算,运算结果存回寄存器A。

3) 把寄存器A内的数据向右移动一位。

4) 若A寄存器中被移出的数是1,则用1010 0000 0000 0001(16#A001)和寄存器A进行”异或运算”,若寄存器中被移出的数是0则返回步骤3)

5) 重复步骤3)和4),直到移出8位数据为止。

6) 取被校验串的下一个字节

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打算出的结果没有任何缺点,当然大家也可以自己去实验更多的数值来对本程序进行验证。

往期精良文章回顾:

一场星三角降压故障引起的风波!
讲述本电工的真实经历...

相关文章

山东省代码探秘探寻数字背后的地域魅力

在我国,每个省份都有其独特的代码,这些代码如同身份证号码一般,承载着丰富的地域信息。今天,让我们一同走进山东省,揭开其代码背后的故...

PHP教程 2025-02-18 阅读0 评论0

工商执照代码解码企业身份的密钥

工商执照是企业合法经营的通行证,而工商执照代码则是企业身份的密钥。在我国,企业办理工商登记后,将获得一个独一无二的工商执照代码,该...

PHP教程 2025-02-18 阅读0 评论0

宝钢可交换债金融创新与风险管理并重

可交换债作为一种新型的金融工具,逐渐受到市场的关注。宝钢可交换债作为其中的佼佼者,以其独特的优势吸引了众多投资者的目光。本文将从宝...

PHP教程 2025-02-18 阅读0 评论0

完美世界女wx探索虚拟社交的无限可能

我国虚拟社交领域呈现出一片繁荣景象。一款名为“完美世界女wx”的社交软件在我国市场上崭露头角,吸引了大量用户。本文将从以下几个方面...

PHP教程 2025-02-18 阅读0 评论0