当前位置:首页 > 技术分析 > 正文内容

西门子200SMART PLC CRC校验程序的编写

ruisui883个月前 (03-26)技术分析26

关注"PLC发烧友",一起涨知识吧!


导读:在工作现场,经常会用到通讯与其它设备交互信息,而通讯必然会需要校验。而初学者学习MODBUS RTU的时候往往会纠结这个CRC校验程序如何编写?CRC校验程序相对来说比较繁琐,但是大家可以收藏好这个程序(使用200SMART PLC),加以理解,需要的时候调用此程序即可。


那首先我们来看CRC校验的步骤,严格按照步骤来写程序即可:

1、设置CRC存储器为16#FFFF。

2、把第一个参与校验的8位数与CRC的低八位进行异或运算结果仍存与CRC。

3、把CRC右移一位,最高位补0,检查最低位b0位。

4、若b0=0,CRC不变,若b0=1, CRC与16#A001进行异或运算,结果仍存与CRC。

5、重复3、4两步,直到右移8次,这样第一个八位数就进行处理了结果仍然存于CRC。

6、重复2-5步,处理第二个八位数。


【程序结构描述】

西门子S7-200SMART系列PLC的程序结构分为主程序、子程序、中断程序。此程序用“MAIN”程序调用“CRC校验程序”子程序

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



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



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



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



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




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



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


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


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


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


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


来源:PLC发烧友,作者:技成培训-郭彪。转载请注明出处!评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3045.html

标签: java crc校验
分享给朋友:

“西门子200SMART PLC CRC校验程序的编写” 的相关文章

Ubuntu 24.10发行版登场:Linux 6.11内核、GNOME 47桌面环境

IT之家 10 月 11 日消息,Canonical 昨日发布新闻稿,正式推出代号为 Oracular Oriole 的 Ubuntu 24.10 发行版。新版在内核方面升级到最新 6.11 版本,并采用 GNOME 47 桌面环境。Ubuntu 24.10 发行版调整了内核策略,开始选择最新的上游...

代码管理-9-gitlab的使用和设置

gitlab使用1、外观设置完成后保存,返回登录页面查看关于注册,有些公司是不允许打开的,,有些人数非常多的公司就需要打开注册的功能,让人员自己注册,我们来给他特定的权限就可以,毕竟人非常多的时候还由我们来给她们注册就非常不现实了,工作量会很大2、自动注册3、组&用户&项目创建组设置组名称、描述等创...

gitlab简单搭建与应用

一、gitlab1、简介GitLab是利用Ruby on Rails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。与Github类似,GitLab能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历...

Gitlab之间进行同步备份

目前,我们公司有两个研发团队,分别在北京和武汉,考虑到访问速度的问题,原有武汉的研发环境在近端部署。也就是北京和武汉分别有两套独立的研发管理环境,虽然这解决了近端访问速度的问题,但是管理上较为分散,比如研发环境备份和恢复就是最重要的问题之一。最近,处于对安全性和合规性的考虑,希望将北京和武汉的源代码...

thinkphp8+vue3微信小程序商城,发布公众号App+SAAS+多商户

项目介绍三勾小程序商城基于thinkphp8+vue3+element-ui+uniapp打造的面向开发的小程序商城,方便二次开发或直接使用,可发布到多端,包括微信小程序、微信公众号、QQ小程序、支付宝小程序、字节跳动小程序、百度小程序、android端、ios端。支持主题色+自定义头部导航+自定义...

千智云低代码平台 v2.0.6发布「平台升级」

【平台简介】千智云低代码应用平台是一款低代码开发+低代码PaaS+SaaS应用中台为一体的应用平台。平台提供了多种应用场景功能及应用组件,满足各种应用的基本实现,可以使用低代码开发的方式,定制化的开发软件项目,并使用平台提供的各种功能,提供了大多数业务场景的支持。也可以将开发的应用发布到平台,成为S...