我们先说下具体的校验码怎么计算,然后说三菱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码就可以了。以下面梯形图进行说明:
|