LGF_CalcCRC8Advanced (FC / V3.0.1)


Autor: Siemens Industry Support

Kurzbeschreibung

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_CalcCRC8Advanced verwendet als Generatorpolynom (Maske) 8 Bit sowie die Parameter finalXorValue, reflectInput und reflectResult.

Baustein Schnittstelle

LGF_CalcCRC8Advanced (FC)
Byte  initValue Ret_Val  Byte
    
Byte  mask   
    
Byte  finalXorValue   
    
Bool  reflectInput   
    
Bool  reflectResult   
    
Array[*] of Byte  array  Array[*] of Byte
       
   

Input Parameter

BezeichnerDatentypBeschreibung
initValueByteStartwert, mit dem die Berechnung durchgeführt wird.
Wenn keinen Startwert notwendig ist - 16#00 zuweisen.
maskByteGeneratorpolynom, mit dem die Berechnung durchgeführt wird.
(Maske / CRC Polynom)
finalXorValueByteWert, mit dem am Ende eine weitere XOR-Operation durchgeführt wird
reflectInputBoolTRUE: wird die Reihenfolge der Bits innerhalb des Eingangsbytes gespiegelt. Aus der Reihenfolge 0…7 wird 7…0.
reflectResultBoolTRUE: wird die Reihenfolge der Bits innerhalb des Ergebnisses gespiegelt. Aus der Reihenfolge 0…7 wird 7…0.

Output Parameter

BezeichnerDatentypBeschreibung
Ret_ValByteBerechneter CRC-Wert (Rückgabewert der Funktion).

In/Out Parameter

BezeichnerDatentypBeschreibung
arrayArray[*] of ByteDatenstrom, für den der CRC-Wert berechnet werden soll.

Funktionsbeschreibung

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.

Hinweis
Für die Berechnung der CRC-Werte stehen verschiedene Online-Tools zur Verfügung. Die Funktion des Bausteins wurde mit folgendem Online-Tool getestet, da es die Eingangsparameter mask (Polynom) und initValue (Initial Value) unterstützt:
http://www.sunshine2k.de/coding/javascript/crc/crc_js.html

Änderungshistorie

Version & DatumÄnderungsbeschreibung
01.00.00Simatic Systems Support
16.12.2019first release, copied from "LGF_CalcCRC32Advanced"
03.00.00Simatic Systems Support
23.04.2020Set version to V3.0.0, harmonize the version of the whole library
03.00.01Simatic Systems Support
12.11.2020Insert documentation
Assign default start values to optional inputs - `initValue`, `mask`, `finalXorValue`, `reflectInput`, `reflectResult`