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_generic
WORD
function returns generalized CRC16 of “MemoryBlock”
Input
pMemoryBlock
POINTER TO BYTE
address of memory Block
uiLength
UINT
length of MemoryBlock in byte
wCRCInit
WORD
initial value for CRC value
wPoly
WORD
polynom value for CRC algorithm
xReflectInput
BOOL
reflect input data bytes
xReflectOutput
BOOL
reflect CRC before final XOR
wXORout
WORD
final XOR value before output