发布于 2014-06-15 20:14:04
1楼
VAR_INPUT
输入起始地址:INT ;
字节数:INT;
END_VAR
VAR_OUTPUT
crc_value:WORD;
END_VAR
VAR_TEMP
flag:WORD
i, j:INT;
END_VAR
BEGIN
#j:=0 ;
FOR #j:=0 TO (#字节数-1) BY 1 DO
#crc_value:=PEEK(area:=b#16#84, dbNumber:=#输入起始地址, byteOffset:=#j) ;
#crc_value:= #crc_value XOR 16#ffff ;
FOR #i:= 0 TO 7 BY 1DO
#flag := #crc_value AND 16#0001 ;
#crc_value:=SHR(IN:=#crc_value, N:=1);
IF #flag=0 THEN
#crc_value:= #crc_value XOR 16#00;
ELSIF #flag=1 THEN
#crc_value:= #crc_value XOR 16#a001;
END_IF;
END_FOR;
END_FOR;
END_FUNCTION