Die CRC-Berechnung wird für die Fehlererkennung bei der Datenübertragung verwendet. Das Ergebnis einer Berechnung liefert einen CRC-Wert über die gesendeten Daten. Der Empfänger erkennt eine fehlerhafte Übertragung aufgrund des ungleichen CRC-Werts. Die Funktion LGF_CalcCRC16Advanced
verwendet als Generatorpolynom (Maske) 16 Bit sowie die Parameter finalXorValue
, reflectInput
und reflectResult
.
LGF_CalcCRC16Advanced (FC) | ||||||||
---|---|---|---|---|---|---|---|---|
Word | initValue | Ret_Val | Word | |||||
Word | mask | |||||||
Word | finalXorValue | |||||||
Bool | reflectInput | |||||||
Bool | reflectResult | |||||||
Array[*] of Byte | array | Array[*] of Byte | ||||||
Bezeichner | Datentyp | Beschreibung |
---|---|---|
initValue | Word | Startwert, mit dem die Berechnung durchgeführt wird. Wenn keinen Startwert notwendig ist - 16#00 zuweisen. |
mask | Word | Generatorpolynom, mit dem die Berechnung durchgeführt wird. (Maske / CRC Polynom) |
finalXorValue | Word | Wert, mit dem am Ende eine weitere XOR-Operation durchgeführt wird |
reflectInput | Bool | TRUE: wird die Reihenfolge der Bits innerhalb des Eingangsbytes gespiegelt. Aus der Reihenfolge 0…7 wird 7…0. |
reflectResult | Bool | TRUE: wird die Reihenfolge der Bits innerhalb des Ergebnisses gespiegelt. Aus der Reihenfolge 0…7 wird 7…0. |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
Ret_Val | Word | Berechneter CRC-Wert (Rückgabewert der Funktion). |
Bezeichner | Datentyp | Beschreibung |
---|---|---|
array | Array[*] of Byte | Datenstrom, für den der CRC-Wert berechnet werden soll. |
Die Funktion berechnet aus einem beliebig großen Datenstrom den CRC-Wert. Der Datenstrom setzt sich aus den einzelnen Elementen des Arrays am Ein- / Ausgangsparameter array
zusammen. Der Startwert initValue
und das Generatorpolynom mask
sind frei wählbar.
Über die booleschen Eingangsparameter reflectInput
und reflectResult
können Sie optional die Bits der Eingangsdaten bzw. des CRC-Werts spiegeln. Außerdem wird mit dem CRC-Wert am Ende und dem Wert finalXorValue
eine XOR-Operation durchgeführt.
mask
(Polynom) und initValue
(Initial Value) unterstützt:Version & Datum | Änderungsbeschreibung | |
---|---|---|
01.00.00 | Simatic Systems Support | |
16.12.2019 | first release, copied from "LGF_CalcCRC32Advanced" | |
03.00.00 | Simatic Systems Support | |
23.04.2020 | Set version to V3.0.0, harmonize the version of the whole library | |
03.00.01 | Simatic Systems Support | |
12.11.2020 | Insert documentation Assign default start values to optional inputs - `initValue`, `mask`, `finalXorValue`, `reflectInput`, `reflectResult` |