Mithilfe einer Simultanverzweigung können Sie eine parallele (simultane) Auswertung logischer Elemente implementieren. Hierzu wird eine als Kurzschlussauswertung oder bedingte Auswertung (engl. Short-Circuit Evaluation (SCE)) beschriebene Methodik verwendet. SCE ermöglicht es Ihnen, die Ausführung eines Funktionsbausteins mit einem booleschen Ausgang zu umgehen, wenn die Auswertung bestimmter paralleler Bedingungen TRUE ergibt. Die Bedingung kann im LD-Editor (KOP) durch eine Simultanverzweigung zur Funktionsbausteinverzweigung dargestellt werden. Die SCE-Bedingung wird durch 1 oder mehrere Kontakte innerhalb dieser Verzweigung definiert, die parallel oder in Reihe geschaltet sind.
Die vertikalen Verbindungen der parallel ausgeführten SCE-Verzweigungen werden durch eine Doppellinie dargestellt, um sie von den OR-Kontrukten zu unterschieden, die durch eine Einfachlinie dargestellt werden (siehe die Abbildung Simultanverzweigung für SCE in einem LD-Netzwerk).
HINWEIS: Der Begriff „Verzweigung“ wird auch für ein anderes Element verwendet, das einen Signalfluss trennt. Diese Verzweigung hat im Gegensatz zu einer Simultanverzweigung keine Summationsstelle.
Die Simultanverzweigung funktioniert folgendermaßen: Zuerst wird sie für die Verzweigungen geparsed, die keinen Funktionsbaustein enthalten. Wenn die Auswertung einer dieser Verzweigungen TRUE ergibt, wird der Funktionsbaustein in der Simultanverzweigung nicht aufgerufen, und der Wert am Eingang der Funktionsbausteinverzweigung wird an den Ausgang übergeben. Wenn die Auswertung der SCE-Bedingung FALSE ergibt, wird der Funktionsbaustein aufgerufen, und das boolesche Ergebnis der Funktionsbausteinausführung wird übergeben.
Wenn alle Verzweigungen Funktionsbausteine enthalten, werden sie von oben nach unten ausgewertet, und die Ausgaben werden mit logischen OR-Operationen verbunden. Wenn keine Verzweigungen mit einem Funktionsbausteinaufruf vorhanden sind, wird die normale OR-Operation ausgeführt.
Um eine Simultanverzweigung mit SCE-Funktion einzufügen, wählen Sie den Funktionsbaustein aus, und führen Sie den Befehl Kontakt parallel einfügen (oberhalb) oder Kontakt parallel einfügen (unterhalb) aus. Dies ist nur möglich, wenn der erste Eingang und der Hauptausgang des Funktionsbausteins den Typ BOOL aufweisen.
Nachfolgend ist ein Beispiel des generierten Sprachmodells für das vorgegebene Netzwerk abgebildet.
Die Funktionsbausteininstanz x1 (TON) hat einen booleschen Eingang und einen booleschen Ausgang. Ihre Ausführung kann übersprungen werden, wenn die Auswertung der Bedingung in der Simultanverzweigung TRUE ergibt. Dieser Bedingungswert ergibt sich aus den OR- und AND-Operationen, die die Kontakte cond1, cond2 und cond3 verbinden.
Simultanverzweigung für SCE in einem LD-Netzwerk
1 Die doppelten, vertikalen Verbindungslinien kennzeichnen ein Konstrukt, das einer Kurzschlussauswertung (SCE) unterworfen ist.
2 Die einfache, vertikale Verbindungslinie verweist auf ein OR-Konstrukt.
Die Verarbeitung erfolgt wie nachfolgend dargestellt, wobei P_IN und P_OUT den booleschen Wert am Eingang (Trennpunkt) bzw. Ausgang (Summationsstelle) der Simultanverzweigung darstellen.
P_IN := b1 AND b2;
IF ((P_IN AND cond1) AND (cond2 OR cond3)) THEN
P_OUT := P_IN;
ELSE
x1(IN := P_IN, PT := {p 10}t#2s);
tElapsed := x1.ET;
P_OUT := x1.Q;
END_IF
bRes := P_OUT AND b3;
Die folgenden Abbildungen zeigen den Datenfluss (blau) für die folgenden beiden Szenarien: Der Funktionsbaustein wird ausgeführt (Bedingung resultierend aus cond1, cond2 und cond3 ist FALSE) bzw. umgangen (Bedingung ist TRUE).
Bedingung=FALSE, Funktionsbaustein wird ausgeführt:
Bedingung=TRUE, Funktionsbaustein wird umgangen: