Addieren
Diese Funktion addiert die Eingangsvariablen IN1 + IN2 +... (bis zu 28 Eingangskontakte) und schreibt das Ergebnis in die Ausgangsvariable.
Eingang
1. Eingang: Augend
2. Eingang: Summand
Ausgang
Ausgang wie Eingang: Summe
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;
summand_1: INT:=0;
summand_2: INT:=0;
sum: INT:=0;
END_VAR
In diesem Beispiel wurden die Eingangsvariablen (summand_1, summand_2 und enable) deklariert. Statt dessen können Sie Konstanten direkt an die Eingänge der Funktion schreiben (z.B. für Tests).
Wenn enable gesetzt ist (TRUE), wird summand_1 zu summand_2 addiert. Das Ergebnis wird in sum 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_ADD-2!,Instance,9,0,15,5,,?DEN?D?D?AENO?C);
B(B_VARIN,,summand_1,7,2,9,4,);
B(B_VARIN,,summand_2,7,3,9,5,);
B(B_VAROUT,,sum,15,2,17,4,);
B(B_CONTACT,,enable,4,1,6,3,);
L(1,2,4,2);
L(6,2,9,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
LD |
enable |
E_ADD |
summand_1, summand_2, sum |
Werden mehr als zwei Summanden benötigt, dann ist die AWL wie folgt zu erweitern:
LD |
summand_1 |
E_ADD |
summand_2, summand_3 |
ST |
sum |
sum muss immer an letzter Stelle stehen.