技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 新手入门 > CRC效验程序的编写

CRC效验程序的编写

饶等 发布于2021-04-14 11:55 5 2 标签:新手入门,案例分享,CRC效验程序

【免费下载】电工全套资料_电工仿真软件_电工学习手册_电工电子书

【免费学习PLC热门课程_PLC初级_PLC基础_PLC中高级_软件安装

【免费下载】 PLC软件下载_PLC软件安装教程_PLC手册下载_PLC案例下载

【免费学习】 变频器精品课程_西门子PLC精品教程_三菱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步,处理第二个八位数。


  【程序结构描述】

  1、 西门子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效验计算小助手计算(与程序中计算相符):

  


(技成培训网原创,作者:郭彪,未经授权不得转载,违者必究)


电工精品教程

立即扫码免费学习


电工题库宝典

立即扫码免费下载


超全PLC学习资料包

立即扫码免费下载

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

新手入门 案例分享 CRC效验程序

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签