您当前的位置:五五电子网电子知识电器控制PLC工业控制s7-300 modbus RTU CRC校验程序如何编写 正文
s7-300 modbus RTU CRC校验程序如何编写

s7-300 modbus RTU CRC校验程序如何编写

点击数:7857 次   录入时间:03-04 12:00:56   整理:http://www.55dianzi.com   PLC工业控制
VAR_INPUT
   DB_NO : INT ; 
   DBB_Start : INT ; 
   DBB_Counts : INT ; 
 END_VAR
 VAR_OUTPUT
   CRC_H : BYTE ; 
   CRC_L : BYTE ; 
 END_VAR
 VAR_TEMP
   CRC_REG : WORD ; 
   DB_NO_TEMP : INT ; 
   BytesChecked : INT ; 
   BitsChecked : INT ; 
 END_VAR
 BEGIN
 NETWORK
 TITLE =
 
       L     W#16#FFFF; 
       T     #CRC_REG; //预置CRC寄存器
       L     #DB_NO; 
       T     #DB_NO_TEMP; 
       OPN   DB [#DB_NO_TEMP]; 
       L     #DBB_Start; //读入校验起始字节
       SLD   3; 
       LAR1  ; 
 
       L     #DBB_Counts; //读入校验字节数量
 _A:   T     #BytesChecked; //字节处理循环
       L     DBB [AR1,P#0.0]; 
       L     LB     1; 
       XOW   ; 
       T     LB     1; 
 
       L     8; 
 _B:   T     #BitsChecked; //位处理循环
       L     #CRC_REG; 
       SRW   1; 
       T     #CRC_REG; 
       JZ    _C; //检验移出位是否为1
       L     #CRC_REG; 
       L     W#16#A001; 
       XOW   ; 
       T     #CRC_REG; 
 
 _C:   L     #BitsChecked; //校验下个位
       LOOP  _B; 
 
       +AR1  P#1.0; //校验下个字节
       L     #BytesChecked; 
       LOOP  _A; 
 
       L     LB     1; //输出校验码
       T     #CRC_H; 
       L     LB     0; 
       T     #CRC_L; 
 END_FUNCTION

本文关键字:如何  程序  PLC工业控制电器控制 - PLC工业控制