S7-1200的自由口通信作业.pptxVIP

  • 18
  • 0
  • 约小于1千字
  • 约 4页
  • 2021-09-17 发布于河北
  • 举报
博途1200课程--第15讲;一、创建一个数组,类型为byte,长度为0..100 二、编写一个用于实现CRC16校验的FC或者FB程序 要求:1、该程序可在多处调用,可对多个数组进行处理 2、程序输入包括数组名、数组起始校验字节和需要校验字节长度 3、程序输出为校验结果;CRC16校验方法: CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或(异或:二进制运算 相同为0,不同为1;0^0=0;0^1=1;1^0=1;1^1=0), 之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB,移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码进行异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。 1.设置CRC寄存器,并给其赋值FFFF(hex)。 2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。 3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。 4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。 5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。 6.重复第2至第5步直到所有数据全部处理完成。 7.最终CRC寄存器的内容即为CRC值。;谢谢

文档评论(0)

1亿VIP精品文档

相关文档