Verzweigungen in AWL programmieren mit (

Wie in der Mathematik, wird mit der Klammer "(" in der AWL-Programmierung festgelegt, in welcher Reihenfolge das Programm abgearbeitet wird. Durch die Verwendung der Klammer wird dargestellt, das die ODER-Verknüpfungen wie im folgenden Beispiel zu sehen ist, vor der UND-Verknüpfung abgearbeitet werden sollen.

Programm in AWL:

U(
O E 0.1
O E 0.2
)
U(
O E 0.5
O E 0.6
)
U E 2.0
U E 2.5
= A 2.3

Programm in FUP:

Verzweigung in FUP
Darstellung des Programms in FUP

Würde man die Klammern weglassen, würde das eine ganz andere Reihenfolge der Abarbeitung des Programms bedeuten. Die "Anweisungsliste ohne Klammern" sähe aus wie im nächsten Beispiel gezeigt und daraus ergäbe sich dann ein ganz anderer Funktionsplan.

U
O E 0.1
O E 0.2
U
O E 0.5
O E 0.6
U E 2.0
U E 2.5
= A 2.3

Der Funktionsplan würde aufgrund des Fehlers nicht in FUP dargestellt werden. Von der Logik würde das Programm wie folgt aussehen:

Programm ohne Klammer in FUP

Bei der Programmierung einer Verzweigung in der Form:

U(
O(
X(
UN(
ON(
XN(

werden das Bit VKE und das Bit OR des Statuswortes gespeichert. Ebenso wird eine Operationskennung im Klammerstack gespeichert. Im Klammerstack können maximal 7 Einträge gespeichert werden.

Aufbau des Statusworts

Aufbau des Statusworts

Mit der Klammer ")" wird die Verzweigung wieder geschlossen. Dabei wird der mit der vorausgehenden Klammer "(" in den Klammerstack geschriebene Eintrag gelöscht und das Bit OR wird wieder hergestellt.

Das VKE, das sich im Stackeintrag befindet, wird mit dem aktuellen VKE unter Berücksichtigung der Operationskennung verknüpft. Das Ergebnis dieser Verknüpfung wird dem VKE zugewiesen. Außerdem wird das OR-Bit berücksichtigt, wenn es sich bei der Operationskennung um die Operation U (UND) oder um die Operation UN (UND NICHT) handelt.