0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

blackwatching 来源:玩转PLC工业机器人 2023-07-10 15:45 次阅读

导读:在工作现场,经常会用到通讯与其它设备交互信息,而通讯必然会需要校验。 而初学者学习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

fa68fdae-1ec3-11ee-962d-dac502259ad0.png

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

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

fa889920-1ec3-11ee-962d-dac502259ad0.png

图1-1初始化存储器

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

faabce9a-1ec3-11ee-962d-dac502259ad0.png

图1-2异或运算

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

fac2d284-1ec3-11ee-962d-dac502259ad0.png

图1-3执行移位操作

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

fad7984a-1ec3-11ee-962d-dac502259ad0.png

图1-4指针加1

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

faf3afda-1ec3-11ee-962d-dac502259ad0.png

图1-5高低字节交换

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

fb08c1a4-1ec3-11ee-962d-dac502259ad0.png

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

fb1d18ac-1ec3-11ee-962d-dac502259ad0.png

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

fb34369a-1ec3-11ee-962d-dac502259ad0.png

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

fb4685c0-1ec3-11ee-962d-dac502259ad0.png

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

fb56032e-1ec3-11ee-962d-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7452

    浏览量

    163594
  • 西门子
    +关注

    关注

    93

    文章

    3008

    浏览量

    115622
  • crc
    crc
    +关注

    关注

    0

    文章

    199

    浏览量

    29433

原文标题:西门子200SMART PLC CRC校验程序的编写

文章出处:【微信号:玩转PLC工业机器人,微信公众号:玩转PLC工业机器人】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    西门子SMART200 PLC的远程下载方法

    本文将向大家介绍如何远程下载西门子SMART200的方法。
    发表于 09-02 10:02 4084次阅读

    西门子plccrc校验程序

    西门子公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。RC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和
    发表于 12-04 09:41 1.3w次阅读

    西门子PLC S7-200smart程序下载错误分析

    在实际的工程项目中,客户越来越多地选择 S7-200 smart系列PLC,并且在各个工程项目现场S7-200 smart都有良好的表现。在
    发表于 07-23 15:27 4593次阅读

    西门子plc程序下载步骤

    今天我们主要学习西门子PLC程序下载步骤,下面以S7-200SMART为例进行说明.
    发表于 07-25 11:25 2.9w次阅读

    如何使用SMART编写CRC校验算法程序

    本文档的主要内容详细介绍的是如何使用SMART编写CRC校验算法程序
    发表于 10-24 08:00 4次下载
    如何使用<b class='flag-5'>SMART</b><b class='flag-5'>编写</b><b class='flag-5'>CRC</b>的<b class='flag-5'>校验</b>算法<b class='flag-5'>程序</b>

    PLC网关采集西门子S7-200SMART数据配置流程

    PLC网关采集西门子S7-200SMART数据配置流程
    发表于 11-04 11:37 3989次阅读
    <b class='flag-5'>PLC</b>网关采集<b class='flag-5'>西门子</b>S7-<b class='flag-5'>200SMART</b>数据配置流程

    西门子200smart PLC模拟量检测程序

    西门子200smart PLC读取0-10V模拟量,RS485标准modbus通讯
    发表于 11-24 09:45 4次下载

    西门子200Smart PLC的Socket通信技术

    西门子PLC对Socket通信的支持性是很不错的。如果你在使用西门子软件或者逛西门子论坛时,发现一个词叫做Open User Communication或开放式通信,没错,那其实就是我
    发表于 12-12 10:19 4193次阅读

    如何利用200SMART编程软件的间接寻址功能来读取不同配方号的数据呢

    西门子200SMART编程软件V2.7版,200SMART ST30 CPU一台,通信网线一条。
    的头像 发表于 12-30 09:52 6234次阅读

    快速了解西门子串口PPI、200200smart驱动协议如何使用

    快速学会西门子串口PPI、200200smart驱动协议如何使用
    的头像 发表于 03-06 16:22 1.7w次阅读

    西门子S7-200SMART系列PLC位相关指令分享

    本案例采用子程序的结构编程,并且结合循环指令、定时器指令等编写彩灯循环案例。希望大家能在此文章中汲取西门子200SMART PLC编程相关知
    发表于 04-04 11:28 5219次阅读

    西门子PLC S7-200 SMART PID控制功能分享

    西门子PLC S7-200 SMART是经济性好的一款西门子PLC产品,它的产品种类丰富,配件多
    的头像 发表于 04-06 14:46 9354次阅读

    西门子Smart200PLC如何实现Profinet通信

    现代高度智能化项目中,PLCPLC之间用到的通信协议很多,比如Modbus,canope,profinet等等,今天我们以西门子Smart200PLC来介绍如何让它们以Profine
    的头像 发表于 08-14 09:26 1.1w次阅读
    <b class='flag-5'>西门子</b><b class='flag-5'>Smart200PLC</b>如何实现Profinet通信

    西门子网口S7-COMM协议200smart驱动如何使用?

    1 驱动简介 西门子200smart (包括ST20、SR40等) 自带网口 ,外部设备可通过此口与PLC进行数据交互。网关使用__西门子200sm
    的头像 发表于 08-31 14:37 6167次阅读
    <b class='flag-5'>西门子</b>网口S7-COMM协议<b class='flag-5'>200smart</b>驱动如何使用?

    西门子S7-200 Smart PLC加密设置全面指南

    本文将详细介绍西门子S7-200 Smart PLC的加密设置方法,帮助用户更好地保护PLC程序
    发表于 03-27 10:14 9992次阅读
    <b class='flag-5'>西门子</b>S7-<b class='flag-5'>200</b> <b class='flag-5'>Smart</b> <b class='flag-5'>PLC</b>加密设置全面指南