AS-Parameter, Betriebsarten und Datentypen
Diese Thema enthält folgende Beschreibungen:
AS-Parameter und Betriebsarten als IEC 61131-3-Erweiterungen
PLCnext Engineer erweitert die IEC 61131-3 durch die Implementierung von AS-Betriebsarten. Mit Hilfe dieser Betriebsarten kann die Ausführung des Codes gesteuert werden. Jeder AS-Funktionsbaustein wird standardmäßig mit speziellen Parametern in den Code eingefügt (z.B. per Drag & Drop aus den KOMPONENTEN).
Wenn der AS-Baustein mit dem Befehl 'AS-Funktionsbaustein hinzufügen' (aus dem Kontextmenü des Ordners 'Funktionen & Funktionsbausteine in den KOMPONENTEN) erzeugt wurde, sind diese Parameter als Eingangs- und Ausgangsformalparameter am FB-Symbol verfügbar.
Wurde der AS-Baustein mit dem Befehl 'Kompakten AS-Funktionsbaustein hinzufügen' angelegt, dann sind die meisten Parameter in einem STRUCT-Datentyp zusammengefasst, der dann an einen InOut-Formalparameter angeschlossen werden muss. Nur die dynamisch generierten 'STEP_STATES' und 'STRUCTURE' sind als Formalparameter ausgeführt.
Der einzige Unterschied zwischen dem normalen und dem kompakten AS-FB ist die Art des POE-Aufrufs. Der enthaltene AS-Code sowie der Funktionsumfang sind identisch.
Beim Debuggen von AS-Code im Online-Modus können mit den Debug-Befehlen in der Symbolleiste des Editors die Formalparameter des AS-Funktionsbausteins unabhängig vom Wert an den FB-Eingängen gesetzt werden. So kann bspw. die Betriebsart umgeschaltet oder ein Fehler quittiert werden usw. Lesen Sie hierzu auch das Thema "AS-Code debuggen".
AS-Betriebsarten
Folgende Betriebsarten stehen zur Verfügung: Sie sind als Elemente der Enumeration SFC_OPERATING_MODE verfügbar. Über diese ENUM kann am Eingang PRESET_OPERATING_MODE eine Betriebsart eingestellt werden, die dann am Ausgang ACTIVE_OPERATING_MODE angezeigt wird.
Betriebsart | Beschreibung |
---|---|
Automatikbetrieb SFC_OPERATING_MODE_AUTO in Enum | Diese Betriebsart ist nach einem Kalt- bzw. Warmstart aktiv. Im Automatikbetrieb wird das AS-Netzwerk normal abgearbeitet. D.h. die Schritte werden nach Auswertung der Transitionsbedingungen aktiv/inaktiv geschaltet und die zugeordneten Aktionen entsprechend ihrer Bestimmungszeichen nach Auswertung der Transitionen und abhängig vom Zustand eventuell vorhandener Verriegelungen ausgeführt. |
Schrittmodus SFC_OPERATING_MODE_STEP in Enum | Im Schrittmodus wird der Nachfolgeschritt im AS-Programm nur dann ausgeführt, wenn die Transitionsbedingung erfüllt ist und eine steigende Flanke am Eingang 'STEP' der FB-Instanz erkannt wird. |
Erzwungener (unbedingter) Modus SFC_OPERATING_MODE_STEP_FORCED in Enum | In dieser Betriebsart wird der Nachfolgeschritt in der AS-Schrittkette dann ausgeführt, wenn eine steigende Flanke am Eingang 'PROCEED' der FB-Instanz erkannt wird. Die erfolgt unabhängig vom Wert der Transition. |
Halt-Modus SFC_OPERATING_MODE_HALT in Enum | In der Betriebsart Halt-Modus schalten die Transitionen nicht zum Nachfolgeschritt, d.h. die Transitionen wirken sich nicht auf den Status des AS-Netzwerks aus. Die momentan aktiven Schritte und die zugehörigen Aktionen werden nicht ausgeführt. Der Halt-Modus wird bei einem AS-Fehler aktiviert.Im Halt-Modus kann ein Schritt über den Eingang STEP_ID aktiviert/deaktiviert werden (siehe unten). |
Eingangs-(Formal)parameter
Hinweis
Bei kompakten AS-Funktionsbausteinen sind diese Eingänge in derselben Reihenfolge in der Struktur SFC_PARAMETERS zusammengefasst. Deklarieren Sie eine Variable dieses Datentyps und schließen Sie diese an den InOut-Formalparameter PARAMETERS des kompakten AS-Funktionsbausteins an oder verbinden Sie den Formalparameter mit einem passenden anderen FB. |
Hinweis
Die Formalparameter müssen in der aufrufenden POE nicht zwingend angeschlossen sein bzw. verwendet werden. Für nicht verbundene Eingänge wird der Standard-Anfangswert (siehe folgende Tabelle) verwendet. Im Fall der Standardwerte erfolgt die Verarbeitung des AS-Codes gemäß IEC 61131-3. |
Parameter | Datentyp | Bedeutung | |
---|---|---|---|
PRESET_OPERATING_MODE | SFC_OPERATING_MODE (ENUM) | Stellt die Betriebsart ein.Anfangswert: SFC_OPERATING_MODE_AUTODie verfügbaren Betriebsarten sind oben beschrieben. | |
FINAL_SCAN | BOOL | Aktiviert/deaktiviert die Funktion Final Scan.Der Final-Scan führt alle Aktionen des aktiven Schritts ein weiteres Mal aus, nachdem der Schritt inaktiv wurde und bevor der nachfolgende Schritt aktiv geschaltet wird.Anfangswert: FALSEGemäß IEC 61131-3 sind beide Einstellungen (mit oder ohne Final-Scan) erlaubt.
|
|
EVALUATE_ALL_TRANSITIONS | BOOL | Der Wert TRUE bewirkt, dass während jedes Scans der Schrittkette immer alle Transitionen ausgewertet werden (obwohl nur die Transition an der aktuellen Ausführungsposition relevant ist). So kann bestimmt werden, welche Transitionen den Wert TRUE annehmen und damit den nachfolgenden Schritt aktivieren würden, wenn der jeweils vorhergehende Schritt momentan der aktive wäre. Die Verbindungslinien an den betreffenden Transitionen werden im Code hervorgehoben.Anfangswert: FALSE | |
PROCEED | BOOL | Dieser Eingang wird nur ausgewertet, wenn eine der Betriebsarten SFC_OPERATING_MODE_STEP oder SFC_OPERATING_MODE_STEP_FORCED aktiv ist.Anfangswert: FALSEFlankengesteuerter Eingang zur Ausführung des Nachfolgeschritts im AS-Programm.
|
|
STEP_ID | DINT | Während die AS-Schrittkette im Halt-Modus ist (SFC_OPERATING_MODE_HALT), kann dieser Eingang zur Aktivierung/Deaktivierung eines bestimmten Schritts verwendet werden.Um einen bestimmten Schritt zu aktivieren, legen Sie seine Kennung (stepId) an diesen Eingang an und steuern dann Eingang ACTIVATE_STEP auf TRUE. Um einen bestimmten Schritt zu deaktivieren , legen Sie seine Kennung (stepId) an diesen Eingang an und steuern dann Eingang DEACTIVATE_STEP auf TRUE.Nach der erfolgreichen Aktivierung/Deaktivierung wird der Eingang STEP_ID automatisch auf den Wert -1 gesetzt. Andernfalls liegt weiterhin die Schrittkennung an.
|
|
ACTIVATE_STEP | BOOL | Während die AS-Schrittkette im Halt-Modus ist (SFC_OPERATING_MODE_HALT), aktiviert der Wert TRUE an diesem Eingang den Schritt, dessen Schrittkennung (stepId) am Eingang STEP_ID anliegt (siehe vorige Tabellenzeile). Nach der erfolgreichen Aktivierung wird der Eingang automatisch auf FALSE rückgesetzt. |
|
DEACTIVATE_STEP | BOOL | Während die AS-Schrittkette im Halt-Modus ist (SFC_OPERATING_MODE_HALT), deaktiviert der Wert TRUE an diesem Eingang den Schritt, dessen Schrittkennung (stepId) am Eingang STEP_ID anliegt (siehe vorige Tabellenzeile). Nach der erfolgreichen Deaktivierung wird der Eingang automatisch auf FALSE rückgesetzt. |
|
ACKNOWLEDGE_ERROR | BOOL | Flankengesteuerter Eingang zum Quittieren und damit Rücksetzen eines Fehlers, der während der Ausführung des AS-Programms aufgetreten ist (z.B. maximale Schrittzeit überschritten oder Schrittzeit kürzer als minimale Schrittzeit).Im Fehlerfall wird der AS-Funktionsbaustein in den Halt-Modus geschaltet. Die momentan aktiven Schritte und die zugehörigen Aktionen werden nicht ausgeführt.Bei einer steigenden Flanke am Eingang beendet der Funktionsbaustein den Halt-Modus und schaltet in die zuvor aktive Betriebsart.Anfangswert: FALSE |
Ausgangs-(Formal)parameter
Hinweis
Bei kompakten AS-Funktionsbausteinen sind diese Ausgänge mit Ausnahme von STRUCTURE und STEP_STATES in derselben Reihenfolge in der Struktur SFC_PARAMETERS zusammengefasst. Deklarieren Sie eine Variable dieses Datentyps und schließen Sie diese an den InOut-Formalparameter PARAMETERS des kompakten AS-Funktionsbausteins an oder verbinden Sie den Formalparameter mit einem passenden anderen FB. |
Hinweis
Die Formalparameter müssen in der aufrufenden POE nicht zwingend angeschlossen sein bzw. verwendet werden. Für nicht verbundene Eingänge wird der Standard-Anfangswert (siehe folgende Tabelle) verwendet. Im Fall der Standardwerte erfolgt die Verarbeitung des AS-Codes gemäß IEC 61131-3. |
Parameter | Datentyp | Bedeutung |
---|---|---|
STRUCTURE | Der Datentyp hängt von der eingestellten Compiler-Option ab.SFC_GRAPH_STRUCTURE, wenn in den Compiler-Optionen statische Arrays eingestellt sind. FBTypeName_SFC_GRAPH_STRUCTURE, wenn dynamische Arrays verwendet werden. (STRUCT) | Gibt die Typinformation des AS-Funktionsbausteins als STRUCT-Datentyp aus. Eine detaillierte Beschreibung der Struktur finden Sie im unten stehenden Abschnitt "AS-Datentypen".Wenn die Compiler-Option 'Dynamische Arrays für SFC Info verwenden' aktiviert ist (unter 'Extras > Optionen | Compiler | IEC-Compiler-Einstellungen'), dann ist die Länge des Arrays ObjectTypeInfo dynamisch (abhängig von der Anzahl der enthaltenen AS-Objekte) und damit typspezifisch. Weitere Informationen finden Sie im Abschnitt "Dynamische Array-Größe".Deklarieren Sie eine Variable dieses Datentyps und schließen Sie diese an den STRUCTURE-Ausgang des AS-Funktionsbausteins an. |
STEP_STATES | Der Datentyp hängt von der eingestellten Compiler-Option ab.SFC_STEP_STATES, wenn in den Compiler-Optionen statische Arrays eingestellt sind. FBTypeName_SFC_STEP_STATES, wenn dynamische Arrays verwendet werden. (STRUCT) | Gibt den Status des AS-Funktionsbausteins als STRUCT-Datentyp aus. Eine detaillierte Beschreibung der Struktur finden Sie im unten stehenden Abschnitt "AS-Datentypen".Wenn die Compiler-Option 'Dynamische Arrays für SFC Info verwenden' aktiviert ist (unter 'Extras > Optionen | Compiler | IEC-Compiler-Einstellungen'), dann ist die Länge des Arrays ObjectStateInfo dynamisch und damit typspezifisch. Weitere Informationen finden Sie im Abschnitt "Dynamische Array-Größe".Deklarieren Sie eine Variable dieses Datentyps und schließen Sie diese an den STEP_STATES-Ausgang des AS-Funktionsbausteins an. |
ACTIVE_OPERATING_MODE | SFC_OPERATING_MODE (ENUM) | Zeigt die momentan aktive Betriebsart der FB-Instanz an. Die möglichen Betriebsarten (Elemente einer Enumeration) sind oben beschrieben. |
ERROR | BOOL |
|
ERROR_CODE | INT | Gibt die Fehlernummer als INT-Wert aus. |
INTERLOCK_FAULT | BOOL |
|
AS-Datentypen
Struktur SFC_STEP_STATES, verwendet am Ausgang STEP_STATES.
Dynamische Array-Größen in AS-Info-Strukturen
Die Größe der in den STRUCTs an den Ausgängen STRUCTURE und STEP_STATES enthaltenen Arrays kann statisch oder dynamisch sein, je nach eingestellter Compiler-Option. Wählen Sie 'Extras > Optionen' und dann die Kategorie 'Compiler | IEC-Compiler-Einstellungen'. Dort finden Sie die Option 'Dynamische Array-Größen in AS-Info-Strukturen'.