CRC16_generic (FUN)¶
FUNCTION CRC16_generic : WORD
Function calculates the checksum CRC16 of the “MemoryBlock” in a generalized manner.
Typical input parameter:
CRC16 standard :
wCRCInit := 16#0000
wPoly := 16#8005
xReflectInput := TRUE
xReflectOutput := TRUE
wXORout := 16#0000
CRC16-CCITT :
wCRCInit := 16#FFFF
wPoly := 16#1021
xReflectInput := FALSE
xReflectOutput := FALSE
wXORout := 16#0000
CRC16-Modbus :
wCRCInit := 16#FFFF
wPoly := 16#8005
xReflectInput := TRUE
xReflectOutput := TRUE
wXORout := 16#0000
Example:
sTest : STRING(10) := '123456789' ;
->
MEM.CRC16_generic(ADR(sTest),9,16#1021, FALSE, FALSE, 16#0000) = 16#29B1
- InOut:
Scope
Name
Type
Comment
Return
CRC16_genericWORDfunction returns generalized CRC16 of “MemoryBlock”
Input
pMemoryBlockPOINTER TO BYTE
address of memory Block
uiLengthUINTlength of MemoryBlock in byte
wCRCInitWORDinitial value for CRC value
wPolyWORDpolynom value for CRC algorithm
xReflectInputBOOLreflect input data bytes
xReflectOutputBOOLreflect CRC before final XOR
wXORoutWORDfinal XOR value before output