当使用三菱FX-PLC (FX-1S,FX-1N,FX-2N,FX-3G)
与第三方设备进行MODBUS通信时,因这几款PLC不支持CRC校验指令,这时就需要我们自已编写CRC校验程序,下面我们以FX-1S-PLC为例来看下CRC运算的步骤及程序编写。
CRC运算步骤:
1:定义一个CRC暂存器,并装载HFFFF(16位二进制的1)
2:将通信要发送的第一个字节与CRC暂存器进行异或(WXOR)运算,结果存CRC暂存器
3:将CRC暂存器里的二进制位右移1位,高位(bit15)填0
4:判断移出位,如果为0,重复步骤3
如果为1,CRC暂存器与HA001进行运算,结果存CRC暂存器
重复步骤3
5:步骤3,步骤4执行8次后,一个字节运算完成,然后运算下一个字节,重复步骤2,3,4,直至所有要发送的字节运算完成
6:取出CRC暂存器的低8位,取出CRC暂存器高8位,MODBUS通信时CRC发送的顺序是先发低字字,再发高字节。
下面我们看程序示例: