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

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 西门子PLC > 逻辑运算指令在PLC校验程序中的应用

逻辑运算指令在PLC校验程序中的应用

肖菲 发布于2024-01-10 18:06 179 2 标签:PLC入门,西门子PLC

PLC控制项目中,经常会用到PLC和其他设备通讯发送接收数据信息等,通讯必然会用到校验,比如求和校验、LRC校验、CRC校验等,一般来说MODBUS ASCII通讯方式会采用LRC校验,MODBUS RTU通讯方式会采用CRC校验,其实这些校验程序中会利用到一些逻辑运算指令,那么这些校验程序应该怎么编写呢,下面小编就给大家介绍一下逻辑运算指令在PLC校验程序中的应用吧。(更多PLC课程免费看)

案例1、逻辑运算指令在求和校验中的应用。

求和校验算法:将参与校验的数据求和,取其低8位为校验码。

校验数据为D0~D7共8个,先用CCD D0 D100 K8进行求和运算(指令中的K8就代表D0开始的8个寄存器,即D0~D7),求和结果存在D100中,再用WAND H0FF D100 D100进行逻辑与运算,根据逻辑与运算指令有0出0的特点,取出D100的低8位数据,再存放回D100中,所得出来的即为求和校验码。

案例2逻辑运算指令在LRC校验中的应用。

LRC校验算法:将参与校验的数据求和,并将和的补码(低8位)作为校验码。

校验数据为D10~D19共10个,先用CCD D10 D110 K10进行求和运算,求和结果存在D110中,根据算法还要求出其补码,用NEG指令即可求出补码,最后再用WAND H0FF D110 D110进行逻辑与运算,根据逻辑与运算指令有0出0的特点,取出D110的低8位数据,再存放回D110中,所得出来的即为求和校验码。

除了用NEG指令求补码,还可以采用求反再加1的方法,程序如下图,CCD求和之后,用SUB H0FFFF D120 D120进行减法运算,即为求反功能,再用INC D120加1,同样可以求出其补码出来。

案例3逻辑运算指令在CRC校验中的应用。CRC校验算法:

1、设置CRC存储器为HFFFF;

2、把第一个参与校验的8位二进制数与CRC低8位进行异或运算,结果仍存于CRC存储器。

3、把CRC存储器右移一位,最高位补0,检查最低位b0位;

4、若b0=0,CRC存储器不变,若b0=1,CRC存储器与HA001(1010 0000 0000 0001)进行异或运算,结果仍存于CRC存储器;

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

6、重复2~5步,处理第二个8位二进制数。

7、如此处理,直到所有参与校验的8位二进制数全部处理完毕,结果CRC寄存器所存的就是CRC校验码。

如果是将CRC校验程序做成子程序,需要先在主程序中用CALL P0指令进行调用,子程序的结尾需用SRET作为子程序的结束。


首先做之后需要用到的变址寄存器Z10进行清零,同时用WXOR H0FFFF K0 D10指令,将HFFFF存到D10中,设置CRC存储器为HFFFF。根据算法第2步到第5步之间是需要循环的,同时用FOR D0设置循环次数,循环多少次是取决于校验数据个数D0的。

然后把第一个参与校验的8位二进制数与CRC低8位进行异或运算,结果仍存于CRC存储器。WAND H0FF D100Z10 D11取出第一个校验数据的低8位,并用WXOR D10 D11 D10CRC低8位进行异或运算,结果存回D10中,同时对Z10进行加1,这是为了让下次运算时是把下一个参与校验的数据D101进行处理。因为后面的第3步到第4步之间是需要循环8次的,也要用FOR K8、NEXT指令进行循环,后面将第3步和第4步的程序编写在FOR NEXT指令之间。

根据算法的第3、4步,CRC存储器右移一位,最高位补0,检查最低位b0位,用RCR D10 K1循环右移指令即可完成,b0=0,CRC存储器不变,若b0=1,即进位标志SM8022为ON,CRC存储器D10HA001(1010 0000 0000 0001)进行异或运算,结果仍存于CRC存储器D10中,直到右移8次,这样第一个8位数据全部进行了处理


直到所有参与校验的8位二进制数全部处理完毕,CRC寄存器所存的就是CRC校验码,最后再用WAND指令取出CRC校验值的低8位和高8位,再用SWAP指令进行高低字节交换即可

以上就是PLC通讯程序中常用的求和、LRC和CRC校验程序,你看明白了吗?记得收藏起来备用哦~

若有收获,就点个赞吧!

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

微信扫一扫分享

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

PLC入门 西门子PLC

相关推荐

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