Gleich (Equal)
Der Inhalt des Akkumulators wird mit dem im Operandenbereich angegebenen Operanden auf Gleichheit geprüft. Wenn der Akkumulator und der Operand gleich sind, wird als Ergebnis im Akkumulator TRUE abgelegt, ansonsten FALSE.
Eingang
1. Eingang: Wert für Vergleich
2. Eingang: Referenzwert
Ausgang
Ergebnis, TRUE wenn der Wert für Vergleich gleich dem Referenzwert ist
Die Eingänge können jeden Datentyp aufweisen; alle Eingangsvariablen müssen jedoch vom selben Typ sein. Der Ausgang muss vom Typ BOOL sein.
Die Funktion ist auf max. 28 Eingangskontakte erweiterbar, siehe auch "Elemente bearbeiten".
Bei mehreren Eingängen wird der erste mit dem zweiten verglichen, der zweite mit dem dritten etc. Ist der erste Wert gleich dem zweiten Wert UND der zweite Wert gleich dem dritten Wert, wird TRUE als Ergebnis geschrieben, andernfalls FALSE.
Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden. Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.
VAR
enable: BOOL:=FALSE;
comparison_value: INT:=0;
reference_value: INT:=0;
result: BOOL:=FALSE;
END_VAR
In diesem Beispiel wurden die Eingangsvariablen (comparison_value, reference_value und enable) deklariert. Statt dessen können Sie Konstanten direkt an die Eingänge der Funktion schreiben (z.B. für Tests).
Wenn enable auf TRUE gesetzt ist, wird die Variable comparison_value mit reference_value verglichen. Wenn die Werte der beiden Variablen gleich sind, wird in result der Wert TRUE, sonst FALSE geschrieben.
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_F,E_EQ-2!,Instance,9,0,15,5,,?DEN?D?D?AENO?C);
B(B_VARIN,,comparison_value,7,2,9,4,);
B(B_VARIN,,reference_value,7,3,9,5,);
B(B_VAROUT,,result,15,2,17,4,);
B(B_CONTACT,,enable,3,1,5,3,);
L(1,0,1,5);
L(1,2,3,2);
L(5,2,9,2);
END_NETWORK_BODY
END_NET_WORK
END_BODY