Reihenfolge der Netzwerke in FBS
Falls mehrere →Netzwerke im FBS-Editor vorliegen, bestimmt logi.CAD 3 die Reihenfolge, in der die Netzwerke →auszuwerten sind.
Regeln für die Reihenfolge
- Zuerst prüft logi.CAD 3, ob Netzwerke vorliegen, die laut der →IEC-Norm auswertbar sind.
Netzwerke sind auswertbar, wenn keiner seiner Eingänge von einem noch nicht ausgewerteten Netzwerk abhängt. Beachten Sie: Nur falls Eingänge für ein Netzwerk von anderen Netzwerken als Ausgänge benutzt werden, so gilt das Netzwerk zunächst als nicht auswertbar.
Falls Eingänge des Netzwerks Teil einer →Rückkopplungsschleife innerhalb des Netzwerks sind, wird dieses Netzwerk für die Auswertung zurückgestellt, bis alle abarbeitbaren Netzwerk ausgewertet wurden (siehe Beispiel 3 unten).In den Worten der IEC-Norm- Kein Element eines Netzwerks darf ausgewertet werden, bevor die Zustände aller seiner Eingänge ausgewertet wurden.
- Die Auswertung eines Netzwerk-Elements darf nicht abgeschlossen sein, bevor die Zustände aller seiner Ausgänge ausgewertet wurden.
- Die Auswertung eines Netzwerks ist nicht abgeschlossen, bevor die Ausgänge aller seiner Elemente ausgewertet wurden, sogar falls das Netzwerk eines der Elemente für die Ausführungssteuerung enthält.
Beachten Sie: Falls eine Variable als Array-Index selbst oder im Array-Index verwendet wird, betrachtet logi.CAD 3 diese Variable ebenfalls als einen Eingang.
- Falls logi.CAD 3 feststellt, dass
- nur eines der Netzwerke auswertbar ist, werden die Anweisungen dieses Netzwerk ausgewertet.
- mehrere Netzwerke oder kein einziges der Netzwerke auswertbar sind, bestimmt logi.CAD 3 die grafische Position dieser Netzwerke zueinander. Dafür werden die Netzwerke von "oben links nach unten rechts" gereiht. logi.CAD 3 wertet die Anweisungen jenes Netzwerk aus, dessen Anweisung am weitesten oben/links steht (oben gilt vor links).
Beachten Sie: 2 Arten von Anweisungen sind möglich:
Aufrufsanweisungen (kurz: →Aufrufe): Aufrufe werden durch die Positionierung eines →Funktionsbausteins oder einer →Funktion erzeugt.
Hiere sehen Sie Aufrufe der
SUB
-Funktion, derAND
-Funktion bzw. desTON
-Funktionsbausteins:
Für Aufrufe ist die obere linke Ecke des Aufrufs ausschlaggebend (ohne einen evtl. angezeigten Instanznamen).AS-Elemente eines →AS-Netzwerks verhalten sich prinzipiell wie Aufrufe im Netzwerk. Beachten Sie jedoch, dass AS-Elemente laut vorgegebenen Ablaufregeln ausgewertet werden.
Zuweisungsanweisungen (kurz: →Zuweisungen): Zuweisungen werden durch die Positionierung eines Wertfelds und das Verbinden dessen Eingangs mit dem Ausgang eines anderen Wertfelds oder eines Aufrufs erzeugt.
Hier sehen Sie Zuweisungen zur Variable
var3
bzw.var5
:
Für Zuweisungen ist die Position des Eingangs des Wertfelds ausschlaggebend, auf das die Zuweisung erfolgt.
Nach der vollständigen Auswertung des Netzwerks werden die Regeln zur Auswertung des nächsten Netzwerks angewendet (beginnend mit dem 1. Schritt).
Beispiele für die Reihenfolge
Die Reihenfolge der Netzwerke kann aufgrund der Abarbeitungsreihenfolge (= angezeigte Nummer im roten Rechteck) abgeleitet werden, die in den Beispielen für die Anweisungen der Netzwerke eingeblendet ist.
Beispiel 1: Abhängige und mehrere auswertbare Netzwerke
Die Netzwerke werden mit dieser Reihenfolge ausgewertet:
NW3 – Grund: Die Netzwerke NW1 und NW2 sind nicht auswertbar, da die Variable
var3
vom Netzwerk NW3 abhängt. Hingegen ist bei NW3 und NW4 kein Eingang von einem der anderen Netzwerke abhängig. Da NW3 oberhalb von NW4 liegt (genauer: der Aufruf desAND
-Bausteins in NW3 liegt oberhalb jenes in NW4), wird NW3 als erstes Netzwerk ausgewertet.NW1 – Grund: Nach der Abarbeitung von NW3 ist
var3
ausgewertet, wodurch nun NW1, NW2 und NW4 auswertbar sind. Da NW1 oberhalb von NW4 und mehr links als NW2 liegt (genauer: der Aufruf desAND
-Bausteins in NW1 liegt oberhalb bzw. mehr links), wird NW1 als nächstes Netzwerk ausgewertet.NW2 – Grund: NW2 und NW4 sind auswertbar. Da NW2 oberhalb von NW4 liegt (genauer: der Aufruf des
AND
-Bausteins in NW2 liegt oberhalb), wird NW2 als nächstes Netzwerk ausgewertet.NW4 – Grund: Nur NW4 ist auswertbar.
Beispiel 2: Abhängige Netzwerke mit einer Variable als Array-Index
Die Netzwerke werden mit dieser Reihenfolge ausgewertet:
NW_3 – Grund: Die Netzwerke NW_1 und NW_2 sind nicht auswertbar, da die Variable
Index
, die in diesen Netzwerken als Array-Index verwendet wird, vom Netzwerk NW_3 abhängt. Somit ist nur NW_3 auswertbar.NW_1 – Grund: Nach der Abarbeitung von NW_1 ist
Index
ausgewertet, wodurch nun NW_1 und NW_2 auswertbar sind. Da NW_1 oberhalb von NW2 liegt (genauer: die Zuweisung aufbVar11
liegt oberhalb), wird NW_1 als nächstes Netzwerk ausgewertet.NW_2 – Grund: Nur NW_2 ist auswertbar.
Das folgende Beispiel unterscheidet sich vom obigen Beispiel nur durch die Wertfelder ArrVar3[Index+1]
in NW_A und NW_B:
Die Netzwerke werden mit dieser Reihenfolge ausgewertet:
NW_C – Grund: Weder das Netzwerk NW_A noch das Netzwerk NW_B sind auswertbar. NW_A ist nicht auswertbar, da
ArrVar3[Index+1]
vom Netzwerk NW_B abhängt (zusätzlich hängt die VariableIndex
, die in NW_A im Array-Index verwendet wird, vom Netzwerk NW_C ab). NW_B ist ebenfalls nicht auswertbar, da die VariableIndex
, die in NW_B im Array-Index verwendet wird, vom Netzwerk NW_C abhängt. Somit ist nur NW_C auswertbar.NW_B – Grund: Nur NW_B ist nach der Auswertung von
Index
auswertbar. Im Unterschied zum obigen Beispiel ist hier NW_A weiterhin nicht auswertbar, daArrVar3[Index+1]
weiterhin vom Netzwerk NW_B abhängt.NW_A – Grund: Nur NW_A ist auswertbar.
Beispiel 3: Netzwerke ohne und mit Rückkopplungsschleife
Die Netzwerke werden mit dieser Reihenfolge ausgewertet:
NW4 – Grund: Die Netzwerke NW1 und NW2 sind nicht auswertbar, da ihre Eingänge (= Variable
var4
bzw.var3
) von anderen Netzwerken abhängen. Hingegen ist bei NW3 und NW4 kein Eingang von einem der anderen Netzwerke abhängig. Da aber die Eingänge von NW3 Teil einer Rückkopplungsschleife innerhalb von NW3 sind, wird NW3 für die Abarbeitung zurückgestellt. In Folge bleibt nur mehr NW4 für Auswertung.- NW2 – Grund: Nach der Abarbeitung von NW4 ist
var3
ausgewertet, wodurch nun NW2 auswertbar ist. NW3 ist zwar ebenfalls auswertbar, wird aber wegen der Rückkopplungsschleife wieder zurückgestellt. - NW1 – Grund: Nach der Abarbeitung von NW2 ist
var4
ausgewertet, wodurch nun NW1 auswertbar ist. NW3 ist zwar ebenfalls auswertbar, wird aber wegen der Rückkopplungsschleife wieder zurückgestellt. NW3 – Grund: Nur NW3 ist auswertbar.