姬晓军 发表于 2013-5-7 17:07:56

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

魏冲 发表于 2013-5-7 17:08:21

VAR_INPUTDB_NO : INT ;   DBB_Start : INT ;   DBB_Counts : INT ;END_VAR VAR_OUTPUTCRC_H : BYTE ;   CRC_L : BYTE ;END_VAR VAR_TEMPCRC_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 ;       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;       +AR1P#1.0; //校验下个字节      L   #BytesChecked;       LOOP_A;       L   LB   1; //输出校验码      T   #CRC_H;       L   LB   0;       T   #CRC_L;END_FUNCTION
页: [1]
查看完整版本: s7-300 modbus RTU CRC校验程序如何编写?