RTU协议给的CRC校验算法

时间:2023-03-20作者:佚名

老帖中发现的一个CRC校验,帖子说是正确的,可我感觉在第一个FOR循环,AC1在怎么加一,永远都是将&VB0的数据送给它啊,是我理解错误,还是程序有错误?怎么修改才好呢?
Network 1 // 网络标题
// 网络注释
LD SM0.1

MOVB 16#1, VB0

MOVB 16#1, VB1

MOVB 16#0, VB2

MOVB 16#20, VB3

MOVB 16#0, VB4

MOVB 16#20, VB5
Network 2
LD M0.1

FOR VW10, 1, 6
Network 3
LDW= VW10, 1

MOVW 16#FFFF, AC0

MOVD &VB0, AC1
Network 4
LD SM0.0

XORB *AC1, AC0
Network 5
LD SM0.0

FOR VW12, 1, 8

SRW AC0, 1

AENO

A SM1.1

XORW 16#A001, AC0
Network 6
NEXT
Network 7
LD SM0.0

INCD AC1
Network 8
NEXT
Network 9
LD M0.1

SWAP AC0

AENO

MOVW AC0, VW6

答:程序没问题,CRC本身的校验机制要清楚。请参考RTU协议给的CRC校验算法。
CRC开始时先把寄存器的16位全部置成“1”,然后把相邻2个8位字节的数据放入当前寄存器中,只有每个字符的8位数据用作产生CRC,起始位,停止位和奇偶校验位不加到CRC中。 产生CRC期间,每8位数据与寄存器中值进行异或运算,其结果向右移一位(向LSB方向),并用“0”填入MSB,检测LSB,若LSB为“1”则与预置的固定值异或,若LSB为“0”则不作异或运算。 重复上述处过程,直至移位8次,完成第8次移位后,下一个8位数据,与该寄存器的当前值异或,在所有信息处理完后,寄存器中的最终值为CRC值。
产生CRC的过程:
1. 把16位CRC寄存器置成FFFFH.
2. 第一个8位数据与CRC寄存器低8位进行异或运算,把结果放入CRC寄存器。
3. CRC寄存器向右移一位,MSB填零,检查LSB.
4. (若LSB为0):重复3,再右移一位。
(若LSB为1):CRC寄存器与Aool H 进行异或运算
5. 重复3和4直至完成8次移位,完成8位字节的处理。
6. 重复2至5步,处理下一个8位数据,直至全部字节处理完毕。
7. CRC寄存器的最终值为CRC值。
8. 把CRC值放入信息时,高8位和低8位应分开放置。
把CRC值放入信息中 ,发送信息中的16 位CRC值时,先送低8位,后送高8位。

相关阅读

PLC编程技巧以及在电机控制中的具体应用,简单例子清楚告诉你!

PLC编程是使用频率很高的工业控制设备,其智能化,自动化的控制十分方便,对于PLC而言,有效的编程语言是PLC运行的核心; 其实PLC编程是有一定技巧的,熟练掌握这些技巧能让你学习PLC事...
2024-08-12
PLC编程技巧以及在电机控制中的具体应用,简单例子清楚告诉你!

变压器继电保护

变压器的继电保护 是利用当变压器内外发生故障时,由于电流、电压、油温等随之发生变化,通过这些突然变化来发现、判断变压器故障性质和范围,继而作出相应的反应和处理。 动作...
2023-03-21

某国企电气试题150道,各位电气人来挑战吗?

篇幅较长,建议收藏 1、什么是电气设备的额定值? 答:任何一个电气设备,为了安全可靠的工作,都必须有一定的电流,电压和功率因数的限制和规定值,这种规定值就称为额定值。...
2023-06-11

断路器选型不踩坑!1P/1P+N/2P/3P/3P+N/4P硬核解析,一线电工速藏

干电工这行,断路器选型绝对是基本功,可不少师傅干了多年,还是分不清1P、1P+N、2P、3P、3P+N、4P的区别,选不对不仅现场返工麻烦,还会给电路埋下安全隐患,后续出问题更是头疼。今天...
2026-04-29

电工最常见的电路故障

学工控技术,拿10万年薪 马上注册,免费学习 超过100课时视频教程,免费下载海量学习资料 在生活中我们离不开电,电路如果出现了故障可是相当麻烦的。那么电工师傅在日常生活中...
2023-06-27
电工最常见的电路故障

热销商品

公牛开关插座面板全屋定制全屋配齐家装报价单官方正品付款链接Q9

公牛开关插座面板,为您的全屋定制家装提供一站式解决方案。我们提供全屋配齐的家装报价单,确保您的家装项目完美无缺。所有产品均为官方正品,品质保证,让您用得放心。...
¥ 1

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

定做定制各类密封条三元乙丙橡胶硅胶PVC防火阻燃EVA氯丁石墨丁晴

本公司专业定做各类定制密封条,涵盖三元乙丙橡胶(EPDM)、硅胶、PVC、EVA、氯丁橡胶、丁腈橡胶及石墨复合等多种材质,满足不同行业对密封、防水、隔音、隔热及防火阻燃...
¥ 1

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目