浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
广东SIEMENS西门子电源代理商

广东SIEMENS西门子电源代理商广东SIEMENS西门子电源代理商

广东西门子CPU模块一级代理商、西门子交换机模块,北京西门子电源模块代理商,杭州西门子逻辑控制模块。深圳西门子伺服电机模块代理商,广州西门子DP电缆代理商,西门子变频器代理商,荆门西门子PLC模块授权一级代理商,湖北西门子电线电缆授权代理商,上海西门子S7-200CPU系列代理商,

CRC效验程序如何编写

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

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

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

3、 把CRC右移一位,Zui高位补0,检查Zui低位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执行移位操作

微信截图_20230218170033.png

(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效验计算小助手计算(与程序中计算相符)

浙江西门子S7-200,S7-300,S7-1500,S7-1200系列代理商,

广州西门子电机代理商,湖北西门子电缆代理商,武汉西门子通讯电缆代理商,上海西门子模块代理商。西门子授权一级代理商

深圳西门子授权总代理商,浔之漫智控技术(上海)有限公司,西门子CN模块授权代理商,西门子电缆授权一级代理商,欢迎致电浔之漫智控技术上海有限公司采购

西门子电缆代理商西门子变频器代理商西门子CPU模块代理商西门子低压继电器模块代理商西门子电源模块代理商西门子PLC模块代理商北京西门子模块代理商上海西门子PLC模块代理商西门子变频器

展开全文
优质商家推荐 拨打电话