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

  • 12
  • 0
  • 约小于1千字
  • 约 4页
  • 2021-09-17 发布于河北
  • 举报
博途1200课程--第15讲 S7-1200的自由口通信作业 一、创建一个数组,类型为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精品文档

相关文档