FUNCTION_BLOCK FB20
BEGIN
IF DB100.DBD2 = ´10´ then
Mehrweg := True
END_IF
END_FUNCTION_BLOCK
IF DB100.DBW2 = 16#31 THEN
...
Also wir scannen einen EAN13 Barcode mit einem Scanner ein und schreiben die ASCII-Zeichen in eine Datenbank.
Jetzt soll, wenn die ersten beiden Stellen 00, 10, 11, 20 oder 21 sind, Varablen (Mehrweg, Einweg, ...) auf TRUE gesetzt werden.
FUNCTION_BLOCK FB100
NAME : BARCODE
FAMILY : SPSFORUM
AUTHOR : KAI
VERSION : '1.0'
VAR_INPUT
BARCODE : STRING[10];
END_VAR
VAR_OUTPUT
MEHRWEG : BOOL;
EINWEG : BOOL;
END_VAR
VAR_TEMP
BARCODE_TEMP : STRING[2];
END_VAR
BEGIN
// Initialisierung von Zeichenketten
// Temporäre Variablen vom Datentyp STRING müssen vor
// ihrer erstmaligen Verwendung mit einer Stringkonstanten
// beschrieben werden. Hierdurch wird der korrekte
// Stringaufbau sichergestellt.
BARCODE_TEMP := ' ';
// LEFT-Funktion
// Die LEFT-Funktion liefert die ersten L Zeichen einer
// Zeichenkette.
BARCODE_TEMP := LEFT (IN := BARCODE, L := 2);
// Auswertung der ersten L Zeichen der Zeichenkette
IF BARCODE_TEMP = '10' THEN
MEHRWEG := 1;
ELSE
MEHRWEG := 0;
END_IF;
IF BARCODE_TEMP = '20' THEN
EINWEG := 1;
ELSE
EINWEG := 0;
END_IF;
END_FUNCTION_BLOCK
Hier ist einmal ein kurzes Programmbeispiel in S7-SCL:
....
[/code]Gruß Kai
ISt der Zugriff DB6.DBD denn eigentlich korrekt, müßte doch eigentlich DB6.DD heißen.
u e0.0
u e1.0
=A8.0
Es geht ja auch mit IF/THEN, kannst du ja mal als Übung damit umsetzen. Kleiner Tip: ELSEMerci! Habs erst mit IF ... probiert... Naja, war nicht so der Hit
IF WORD_TO_INT(mw3) > 5 THEN
a8.2 :=1;
END_IF;
IF WORD_TO_INT(mw3) > 5 THEN
a8.2 :=1;
ELSE
A8.2:=0;
END_IF;
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?