Auswertung von AS-Elementen
Neuron Power Engineer prüft in jedem Zyklus (für die Ausführung der Anwendung), ob die AS-Elemente eines →AS-Netzwerks auswertbar sind – und zwar in der Reihenfolge, wie diese AS-Elemente textuell im ST-Editor definiert bzw. grafisch im FBS-Editor angeordnet sind (und wie diese im FBS-Editor bei eingeblendeter Abarbeitungsreihenfolge visualisiert wird).
Ob das AS-Element aber tatsächlich ausgewertet wird, ergibt sich erst aufgrund von Ablaufregeln. Hier sind diese Ablaufregeln:
-
Der Ablauf des AS-Netzwerks folgt den Verbindungen vom Initial-→Schritt über eine/mehrere →Transitionen zu den Nachfolgerschritten über weitere Transitionen zu den anschließenden Nachfolgerschritten usw.
-
Der Ablauf des AS-Netzwerks ist zusätzlich so geregelt:
1.
Am Anfang jedes Zyklus werden jene Transitionen geschaltet, die freigegeben sind und deren Transitionsbedingung erfüllt ist (siehe unter 3.). Durch das Schalten einer Transition werden sofort alle direkt nachfolgende Schritte dieser Transition aktiv.
Beachten Sie: Im ersten Zyklus nach einem →Kaltstart werden keine Transitionen geschaltet. In diesem Fall ist der Initial-Schritt des AS-Netzwerks aktiv.2.
Für jede →Aktion, die einem aktiven Schritt zugeordnet ist, setzt Neuron Power Engineereine interne Eingangsvariable
action_ACB.action-qualifier
auf den WertTRUE
. Der Name der Eingangsvariable ist von der Aktion und dem verwendeten Aktionsbestimmungszeichen abhängig.
Falls ein Aktionsbestimmungszeichen mit einem Zeitdauer-Literal verwendet wird, wird außerdem die interne Eingangsvariableaction_ACB.T
auf den Wert des Zeitdauer-Literals gesetzt.3.
Abhängig vom Verhalten des Aktionsbestimmungszeichens wird eine interne
action_ACB.Q
auf den WertTRUE
gesetzt. Nur falls diese interne Ausgangsvariableaction_ACB.Q
auf den WertTRUE
gesetzt ist, werden die Anweisungen der Aktion ausgewertet.Falls die Anweisungen von mehreren Aktionen zur gleichen Zeit auswertbar sind, werden diese in der Reihenfolge ausgewertet, wie die Aktionen textuell definiert oder grafisch angeordnet sind.
Für den ST- und FBS-Editor bedeutet das, dass die Aktionen von oben nach unten gereiht werden – siehe nachfolgendes Beispiel 1.
Sind im FBS-Editor mehrere auswertbare Aktionsblöcke auf gleicher Höhe angeordnet, werden diese Aktionsblöcke von links nach rechts gereiht.
Im FBS-Editor können Sie die Abarbeitungsreihenfolge einblenden, um die Reihenfolge der Elemente zu sehen.4.
Am Ende des Zyklus bestimmt Neuron Power Engineer die schaltenden Transitionen. Für eine schaltende Transition werden sofort alle direkt vorhergehende Schritte deaktiviert.
Für jede Aktion, die diesen Vorgängerschritten zugeordnet sind, setzt Neuron Power Engineerdie interne Eingangsvariableaction_ACB.action-qualifier
nun auf den WertFALSE
. Abhängig vom Verhalten des Aktionsbestimmungszeichens wird eine interneaction_ACB.Q
auf den WertFALSE
gesetzt. Falls diese interne Ausgangsvariableaction_ACB.Q
auf den WertFALSE
gesetzt ist, werden die Anweisungen der Aktion nicht mehr ausgewertet.Die Bestimmung der zu schaltenden Transitionen erfolgt in der Reihenfolge, in der die Transitionen textuell definiert oder grafisch angeordnet sind.
Für den ST- und FBS-Editor bedeutet das, dass die Elemente von oben nach unten gereiht werden – siehe nachfolgendes Beispiel 2.
Sind im FBS-Editor mehrere zu schaltenden Transitionen auf gleicher Höhe angeordnet, werden diese Elemente von links nach rechts gereiht.Im FBS-Editor können Sie die Abarbeitungsreihenfolge einblenden, um die Reihenfolge der Elemente zu sehen.
Welche Bedingungen müssen für eine schaltende Transition erfüllt sein?
-
Die Transition muss freigegeben sein.
Eine Transition ist freigegeben, falls alle Vorgängerschritte der Transition aktiv sind. -
Die Transitionsbedingung der Transition muss erfüllt sein, d.h., sie muss mit dem Wert
TRUE
(oder einer Entsprechung) ausgewertet werden.
-
Beachten Sie die folgende Sonderfälle:
-
Falls die Instanz der POE, in der das AS-Netzwerk vorhanden ist, als →gepuffert deklariert ist (mit Schlüsselwort
RETAIN
), bleiben die Zustände für die Schritte und Transitionen erhalten. So ist es möglich, dass Transitionen am Anfang des Zyklus nach einem →Warmstart geschalten werden, da Neuron Power Engineer am Ende des Zyklus (aus der vorhergehenden Ausführung) die schaltenden Transitionen bestimmt und diese Information für den Warmstart anwendet. -
Falls mehrere AS-Netzwerke im Editor vorhanden sind, werden die obigen Regeln pro AS-Netzwerk angewendet. Diese AS-Netzwerke werden so gereiht:
-
Im ST-Editor gilt die Reihenfolge, in der die AS-Netzwerke definiert sind, d.h. oben nach unten.
-
Im FBS-Editor bestimmt Neuron Power Engineer ein Netzwerk, das auszuwerten ist. Siehe "Reihenfolge der Netzwerke in FBS".
-
Daraus ergeben sich die folgenden Folgerungen für die Auswertung von AS-Elementen:
-
Jeder aktivierter Schritt ist zumindest einen Zyklus lang aktiv.
-
Falls einem Schritt keine Aktion zur Ausführung zugeordnet ist, wartet dieser Schritt, bis die Transitionsbedingung der nachfolgenden Transition erfüllt ist.
-
Falls eine Transitionsbedingung für eine freigegebene Transition im Zyklus erfüllt ist, schaltet die zugehörige Transition erst im darauffolgenden Zyklus.
-
Ein AS-Netzwerk wird nicht notwendigerweise vollständig ausgewertet, bevor mit der Auswertung des nächsten AS-Netzwerk im Editor begonnen wird.
Der ST-Code der folgenden Beispiele zeigt keine vollständige AS-Netzwerke. Das AS-Netzwerk ist nur in dem Ausmass erstellt, in dem es zur Erläuterung der obigen Regeln benötigt wird.
Beispiel 1: Bestimmung der aktiven Schritte bei simultaner Verzweigung
Bei einer simultane Verzweigung werden durch das Schalten einer Transition mehrere Schritten zur gleichen Zeit aktiviert.
ST-Code |
|
|
FBS-Logik |
|
Erläuterung zur Auswertung:
-
Falls der Schritt
S0
aktiv ist, ist die Transitiont0
freigegeben. In der FBS-Logik ist die Abarbeitungsreihenfolge2
für diese Transition eingeblendet. -
Am Ende des Zyklus bestimmt Neuron Power Engineer die schaltenden Transitionen. Falls
condition_0
erfüllt ist, wirdt0
als zu schaltende Transition bestimmt undS0
wird deaktiviert. -
Im nächsten Zyklus wird
t0
geschaltet und somit sind sowohlS2
als auchS1
aktiv. Die Auswertung der Aktionen, dieS1
oderS2
zugeordnet werden, ist abhängig vom Aktionsbestimmungszeichen. Aufgrund des AktionsbestimmungszeichenN
haben die internen Eingangsvariablenact1_ACB.N
undact2_ACB.N
den WertTRUE
und in Folge haben auch die internenact1_ACB.Q
undact2_ACB.Q
den WertTRUE
. Das bedeutet, dass sowohlact1
als auchact2
zur gleichen Zeit auswertbar sind. Nun ergibt sich sowohl im ST-Editor als auch FBS-Editor die gleiche Reihenfolge durch die Regel "von oben nach unten".-
Im ST-Code ist
ACTION act2: ... END_ACTION
oberhalb vonACTION act1: ... END_ACTION
definiert. -
In der FBS-Logik ist
act2
weiter oben alsact1
positioniert.
-
Beispiel 2: Bestimmung der schaltenden Transitionen bei Verzweigung
Bei einer Verzweigung folgen einem Schritt mehrere Transitionen nach. Die Bestimmung der schaltenden Transitionen erfolgt laut der Reihenfolge im ST-Code bzw. in der FBS-Logik.
ST-Code |
|
|
FBS-Logik |
|
Erläuterung zur Auswertung:
-
Falls der Schritt
S0
aktiv ist, sind die Transitionent0
undt1
freigegeben. In der FBS-Logik ist die Abarbeitungsreihenfolge2
für die Transitiont0
eingeblendet, die Abarbeitungsreihenfolge3
für die Transitiont1
. -
Am Ende des Zyklus bestimmt Neuron Power Engineer die schaltenden Transitionen.
t0
hat dabei Vorrang vort1
. Grund: Im ST-Code istTRANSITION t0 ... END_TRANSITION
oberhalb vonTRANSITION t1 ... END_TRANSITION
definiert. In der FBS-Logik sind die Transitionen auf gleicher Höhe angeordnet, daher gilt die Regel "von links nach rechts".-
Falls
t0
erfüllt ist, wirdS0
als zu schaltende Transition bestimmt undcondition_0
wird deaktiviert. In Folge wirdcondition_1
fürt1
nicht mehr geprüft, daS0
bereits deaktiviert ist und dadurcht1
nicht mehr freigegeben ist.
Im nächsten Zyklus wirdt0
geschaltet und somit istS1
aktiv. -
Nur falls
condition_0
nicht erfüllt ist undcondition_1
erfüllt ist, wirdt1
als zu schaltende Transition bestimmt undS0
wird deaktiviert. Im nächsten Zyklus wirdt1
geschaltet und somit istS2
aktiv.
-