欢迎来到海蓝智能科技有限公司!

全国服务热线

18018737509

用心创造品质,服务赢得价值
您当前的位置 :首页 > 行业资讯 > 三菱plc编程中LRC校验码程序编写

热门关键词

联系我们

深圳市海蓝智能科技有限公司


电 话:18018737509

电 话:13823726967

邮 箱:

网 址:https://www.szhlplc.com

地 址:深圳市龙华区观湖街道观城社区环观南路105-13号201-203

在线咨询

三菱plc编程中LRC校验码程序编写

2021-07-23
229次

  三菱plc中的LRC校验码程序的编写,在PLC与设备进行通讯时采用MODBUS协议时,一般会有两种数据模式,1是RTU模式,2是ASCII码模式。RTU的数据传输采用CRC校验,而ASCII码则采用LRC校验值。LRC值校验涵盖从从机地址到数据的信息部分,校验和等于所有参与校验数据的字符和的补码。


  我们先说下具体的校验码怎么计算,然后说三菱plc的LRC校验码程序的编写。


  例子1


  采用ASCII码模式控制变频器指令:01 03 21 00 00 01,这条指令中01一般是站号,03是读取命令,2100是参数地址(例如运行频率),00 01代表数据的个数。那么它的LRC校验码怎么计算:指令的数据是16进制的,和为:0x01+0x03+0x21+0x01=0x26,对0x25取2的补码就是DA,具体计算就是取反加1,如:0x26=B0010,0110,取反后得到B1101,1001,加1得到B11011010=0xDA,那么LRC校验码就是DA。


  例子2


  同样的控制变频器指令:03 06 00 03 27 10, 和为0x43,取反加1为0xBD,LRC校验值就是BD。


  明白了它的计算过程接下来我们在PLC编写它的算法,我们知道在PLC的运算中都是十进制的,为了方便转换和计算,可采取另外一种方法(原理一样),我们知道ASCII码是2位的16进制数,取反过程可看做0xFF减去检验总和如上述的0x26、0x43,加1就变成0x100减去检验总和,转换成10进制的就是256(D)-和(D),再经过ASCI指令转换成ACIIS码就可以了。以下面梯形图进行说明:


  使用RS指令向变频器发送命令,01 03 33 03 00 01,转换成16进制01 03 21 03 00 01这是一个读取频率的指令,LRC校验码的运算梯形图:


  使用一个变址寄存器Z0对数据D201到D206进行累加求和D40,最后用K256减去41就是LRC校验码215,通过ASCI指令转换成ASCII码,通过查看扩展ASCII码表:


  215的16进制为D7,与01+03 +21+ 03+ 00 +01=0x29=B00101001,取反加1得到11010111=0x(D7),结果一致。


海蓝智能拥有一批理论与实践经验丰富的工程技术人员;长期承接自动化工程项目、技术开发、安装调试和咨询培训,为向用户提供全面的技术支持和高效、快捷的售后服务。现公司开设多个技术交流群,里面有众多技术大牛经验分享,解答疑问。有需要的朋友可以咨询在线客服或者留下你的联系方式。


标签

公众号二维码

电话号码:18018737509

传真:0755-2101 7659

邮箱:

深圳市龙华区观湖街道观城社区环观南路105-13号201-203

18018737509

服务热线

深圳市海蓝智能科技有限公司 版权所有备案号:粤ICP备20051893号, 欢迎来电咨询!
cache
Processed in 0.007392 Second.