在S7-200中
我自己写了一个CRC校验码程序。其中有些问题不是很明白。
1、CRC校验码计算方法中提到把16位寄存器都置为1,然后使用CRC寄存器的低8位进行异或运算,我直接用AC0作为CRC寄存器,这样我就直接用AC0与8位数据进行异或运算了,我可以这样用吗?如果不可以我怎样取得CRC寄存器的低8位?(通过移位得到CRC寄存器吗?如果是这样,那么CRC原有的高8位的数据不就丢失了吗)我仔细的看了一下CRC校验的算法,其中没有提到对CRC寄存器高8位的操作,这样是不是我就不用管它的高8位或者直接将CRC寄存器的高8位置为0得了,可以这样认为吗?
2、我发送给仪表的信息帧格式为: 地址(占1个字节)、命令吗(占1个字节)、数据长度(占0个字节,也就是我不给仪表写数据)、数据域(0个字节)、校验码(占2个字节),这样我向仪表发送指令时计算校验码时是不是就只对地址、命令码进行计算得出校验码就可以了?
3、我接收的仪表返回来的信息帧为:地址(占1个字节)、命令吗(占1个字节)、数据长度(占1个字节),数据域(8个字节)、校验码(占2个字节),这样我要是计算校验码,我就要对,地址、命令吗、数据长度、数据域这些进行计算得到校验码吗?
4、如有高手能帮我算一下这组数据的校验码数据为010301010001。我拿来验证一下我的程序。