-

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.

BetriebsartBeschreibung
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.

ParameterDatentypBedeutung
PRESET_OPERATING_MODESFC_OPERATING_MODE
(ENUM)
Stellt die Betriebsart ein.

Anfangswert: SFC_OPERATING_MODE_AUTO

Die verfügbaren Betriebsarten sind oben beschrieben.
FINAL_SCANBOOLAktiviert/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: FALSE

Gemäß IEC 61131-3 sind beide Einstellungen (mit oder ohne Final-Scan) erlaubt.

  • TRUE: Final-Scan für AS-Programm aktiviert.
  • FALSE: Final-Scan für AS-Programm deaktiviert.
EVALUATE_ALL_TRANSITIONSBOOLDer 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
PROCEEDBOOLDieser Eingang wird nur ausgewertet, wenn eine der Betriebsarten SFC_OPERATING_MODE_STEP oder SFC_OPERATING_MODE_STEP_FORCED aktiv ist.

Anfangswert: FALSE

Flankengesteuerter Eingang zur Ausführung des Nachfolgeschritts im AS-Programm.
  • Im Schritt-Modus (Betriebsart SFC_OPERATING_MODE_STEP) wird bei einer steigenden Flanke an dem Eingang der Nachfolgeschritt ausgeführt (aktiv geschaltet), wenn die zugehörige Transitionsbedingung erfüllt ist.
  • In der Betriebsart SFC_OPERATING_MODE_STEP_FORCED wird bei einer steigenden Flanke an dem Eingang der Nachfolgeschritt unabhängig vom Wert der Transition ausgeführt (aktiv geschaltet). Diese Betriebsart kann auch als Schrittbetrieb ohne Bedingung (Unconditional Step Mode) betrachtet werden.
Im Debug-Modus kann der Nachfolgeschritt mit den entsprechenden Befehlen ausgeführt werden.
STEP_IDDINTWä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.

Hinweis
Alternativ dazu können Sie die Methoden ACTIVATE(DINT stepId) oder DEACTIVATE(DINT stepId) des AS-FB aufrufen.

ACTIVATE_STEPBOOLWä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_STEPBOOLWä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_ERRORBOOLFlankengesteuerter 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.

ParameterDatentypBedeutung
STRUCTUREDer 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_STATESDer 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_MODESFC_OPERATING_MODE
(ENUM)
Zeigt die momentan aktive Betriebsart der FB-Instanz an. Die möglichen Betriebsarten (Elemente einer Enumeration) sind oben beschrieben.
ERRORBOOL
  • FALSE: Kein Fehler aufgetreten. Normaler Betrieb in der mit PRESET_OPERATING_MODE eingestellten Betriebsart.
  • TRUE: Watchdog-Fehler für einen Schritt (minimaler oder maximaler Schrittzeitfehler). Während ein Fehler anliegt, läuft die Schrittkette im Halt-Modus (SFC_OPERATING_MODE_HALT),
    Nach dem Beseitigen der Fehlerursache muss der Fehler mit einer steigenden Flanke am Eingang ACKNOWLEDGE_ERROR oder mit dem entsprechenden Befehl in der Editorsymbolleiste bestätigt werden.
ERROR_CODEINTGibt die Fehlernummer als INT-Wert aus.
INTERLOCK_FAULTBOOL
  • FALSE: In der Kette ist keine Verriegelung aktiv.
  • TRUE: In der Kette ist eine Verriegelung aktiv.

AS-Datentypen

SFC_GRAPH_STRUCTURE mit allen enthaltenen Datentypen (STRUCTs und ENUMs), verwendet am Ausgang STRUCTURE

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'.

Compiler-Option
Dynamische Array-Größen in AS-Info
ist...
Bedeutung
aktiviertDie Größe ist dynamisch, d.h. abhängig von der AS-Kette im Funktionsbausteintyp. In der Folge hat die Status-/Typinfo für unterschiedliche AS-Funktionsbausteine verschiedene Längen.

Mit dynamischen Array-Größen wird weniger Speicher in der Steuerung belegt. Andererseits ist für jeden AS-Funktionsbaustein wegen der FB-spezifischen Array-Größe ein neuer Datentyp erforderlich. Aus diesem Grund enthält der Name des Datentyps, der an den Ausgängen erwartet wird, den Typnamen des AS-Funktionsbausteins
FBTypName_SFC_GRAPH_STRUCTURE
oder
FBTypName_SFC_STEP_STATES.

Beispiel: Datentyp des Ausgangs STRUCTURE des FB-Typs MyCompactSFCFunctionBlock.

nicht aktiviertDie Array-Größe ist statisch, d.h. hat unabhängig vom Typ des AS-Funktionsbausteins dieselbe Länge. Für kleine AS-Ketten wird dadurch möglicherweise mehr Speicherplatz belegt als nötig. Andererseits kann derselbe Datentyp an alle AS-Funktionsbausteine angeschlossen werden, da alle dieselbe Größe haben.

Wenn Sie in den Compiler-Optionen eine statische Array-Größe einstellen, erwartet jeder AS-FB am Ausgang STRUCTURE den Datentyp SFC_GRAPH_STRUCTURE und am Ausgang STEP_STATES den Datentyp SFC_STEP_STATES (keine Typabhängigkeit).