ILSLib hinzugefügt
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
FUNCTION "FC_Ean8_CheckDigit" : Void
|
||||
{ S7_Optimized_Access := 'TRUE' }
|
||||
VERSION : 0.1
|
||||
VAR_INPUT
|
||||
sInDigits : String; // Barcode String (muss 7-stellig sein)
|
||||
END_VAR
|
||||
|
||||
VAR_OUTPUT
|
||||
sOutBarcode : String; // 8-stelliges Resultat als String
|
||||
nOutBarcode : DInt; // 8-stelliges Resultat als DINT
|
||||
END_VAR
|
||||
|
||||
VAR_TEMP
|
||||
sBarcode : String; // Resultat als String
|
||||
nLengthString : Int; // Ermittelte Länge des Eingangsstrings
|
||||
nSum : Int; // Zwischensumme der berechneten Prüfziffer
|
||||
nCheckDigit : Int; // berechnete Prüfziffer
|
||||
END_VAR
|
||||
|
||||
|
||||
BEGIN
|
||||
(*
|
||||
Prüft ob String siebenstellig ist.
|
||||
Falls nein, dann RETURN.
|
||||
Falls ja, dann errechne die Prüfziffer nach EAN8 und gebe Barcode als DINT sowie String aus.
|
||||
*)
|
||||
#nLengthString := LEN(#sInDigits);
|
||||
IF #nLengthString <> 7 THEN
|
||||
RETURN;
|
||||
END_IF;
|
||||
#nSum := STRING_TO_INT(#sInDigits[7]) * 3 + STRING_TO_INT(#sInDigits[6]) + STRING_TO_INT(#sInDigits[5]) * 3 + STRING_TO_INT(#sInDigits[4]) + STRING_TO_INT(#sInDigits[3]) * 3 + STRING_TO_INT(#sInDigits[2]) + STRING_TO_INT(#sInDigits[1]) * 3 ;
|
||||
#nCheckDigit := 10 - (#nSum MOD 10);
|
||||
IF #nCheckDigit = 10 THEN
|
||||
#nCheckDigit := 0;
|
||||
END_IF;
|
||||
#sOutBarcode := #sBarcode := CONCAT(IN1 := #sInDigits, IN2 := DELETE(IN:=INT_TO_STRING(#nCheckDigit), L:=1, P:=1));
|
||||
#nOutBarcode := STRING_TO_DINT(#sBarcode);
|
||||
|
||||
END_FUNCTION
|
||||
|
||||
Reference in New Issue
Block a user