在这里直接体现源码,感兴趣的可以提出修改建议,以及自己的一些想法。
最后附 块生成源 的 免费(0积分) 文件下载链接,新人不易,望海量。
接口配置:
块:
测试结果:
源码:
#CRC寄存器 := 16#FFFF;
FOR #for_counter_4 := #起始字节 TO #起始字节+#字节数量 DO
#字节数组[#int_2] := PEEK(area := 16#84, dbNumber := #DB号, byteOffset := #for_counter_4);
#int_2 := #int_2 + 1;
END_FOR;
#int_2 := 0;
FOR #for_counter_1 := 0 TO #字节数量-1 DO
#CRC寄存器 :=#字节数组[#for_counter_1] XOR #CRC寄存器;
FOR #for_counter_2 := 1 TO 8 DO
#temp := SHR(IN := #CRC寄存器, N := 1);
IF #CRC寄存器.%X0 =1 THEN
#CRC寄存器 := #temp XOR 16#A001;
ELSE
#CRC寄存器 := #temp;
END_IF;
END_FOR;
END_FOR;
FOR #for_counter_3 := #校验后起始字节 TO #校验后起始字节+#字节数量 DO
POKE(area:=16#84,
dbNumber:= #校验后DB号,
byteOffset:=#for_counter_3,
value:=#字节数组[#int_1]);
#int_1:= #int_1 + 1;
END_FOR;
#int_1 := 0;
POKE(area := 16#84,
dbNumber := #校验后DB号,
byteOffset := #校验后起始字节 + #字节数量,
value := #CRC寄存器.%B1);
POKE(area := 16#84,
dbNumber := #校验后DB号,
byteOffset := #校验后起始字节+#字节数量 + 1,
value := #CRC寄存器.%B0);
下载链接:https://download.csdn.net/download/qq_43673223/87854712