FB_ModeManager

Übersicht

Typ

Funktionsbaustein

Verfügbar ab

V1.0.1.0

Funktionsbeschreibung

Der Funktionsbaustein FB_ModeManager kann für die Verwaltung von Requests zum Betriebsartwechsel in einer Maschinenanwendung auf der Grundlage des PackML-Zustandsmodells eingesetzt werden. In Übereinstimmung mit der Betriebsartendefinition für eine Machineneinheit überprüft der Funktionsbaustein, ob der angeforderte Betriebsartwechsel möglich ist oder nicht.

Die Betriebsartendefinition umfasst eine Definition der möglichen Zustände für jeden verfügbaren Steuerungsmodus sowie die Angabe, von welchen Zuständen aus ein Betriebsartwechsel zulässig ist. Zur Ausführung der Betriebsartendefinition können die Hilfsfunktionen FC_InitStateModelStateChange und FC_InitStateModelExistingStates herangezogen werden.

Darüber hinaus muss die Betriebsartendefinition in einem Array des Typs ST_UnitModeDefinition bereitgestellt werden. Die Indizes des Arrays entsprechen dem numerischen Wert der verfügbaren Steuerungsmodi (siehe ET_Modes).

Die Betriebsartendefinition muss beim Start (Initialisierungsphase) einer Anwendung vor dem ersten Aufruf der Instanz des Funktionsbausteins FB_ModeManager mit i_xEnable = TRUE vorgenommen werden.

Bei steigender Flanke am Eingang i_xEnable wird die Initialisierungsphase des Funktionsbausteins FB_ModeManager ausgeführt. Während dieser Phase werden die Betriebsartendefinitionen für jeden verfügbaren Steuerungsmodus überprüft und es wird bestimmt, ob ein PackML-konformes Zustandsmodell erstellt werden kann. Nach erfolgreichem Abschluss der Initialisierung ist der Funktionsbaustein einsatzbereit, was vom Ausgang q_xReady signalisiert wird.

Während der Initialisierung werden folgende Bedingungen geprüft:

  • Die maximale Anzahl an Zuständen beträgt 17.

  • Die Zustände Execute (Ausführung) und Stopped (Gestoppt) sind obligatorische Zustände für jeden Steuerungsmodus.

  • Für den ZustandCompleting (Abschluss) ist ebenfalls der Zustand Complete (Abgeschlossen) erforderlich.

  • Für die Zustände Holding (Halten) und Unholding (Aufhebung des Haltemodus) ist ebenfalls der Zustand Held (Gehalten) erforderlich.

  • Für die Zustände Suspending (Unterbrechung) und UnSuspending (Aufhebung der Unterbrechung) ist ebenfalls der Zustand Suspended (Unterbrochen) erforderlich.

  • Für die Zustände Aborting (Abbruch) und Clearing (Löschen) ist ebenfalls der Zustand Aborted (Abgebrochen) erforderlich.

  • Die Zustände Resetting (Reset) und Idle (Ruhemodus) können nur gemeinsam verwendet werden.

Im Normalbetrieb überprüft der Funktionsbaustein den von den Eingängen i_diUnitMode und i_xUnitModeChange ausgewiesenen Request zum Betriebsartwechsel mit Bezug auf den aktuellen Steuerungsmodus (iq_diUnitModeCurrent) und den vorliegenden Zustand (i_diStateCurrent). Nur eine steigende Flanke an i_sUnitModeChange löst die Ausführung des Funktionsbausteins aus. Das Ergebnis wird von den Ausgängen q_diEnterMode und q_xModeChangeRequestRejected angegeben. Wenn der Betriebsartwechsel zulässig ist, weist der Ausgang q_xModeChangeRequestRejected den Wert FALSE auf und der Ausgang q_diEnterMode wird mit dem Wert der angeforderten Betriebsart aktualisiert. In diesem Fall die für die jeweilige Anwendung erforderlichen Schritte zum Wechsel des Steuerungsmodus ausgeführt werden. Im Anschluss daran muss der Hinweis, dass der Betriebsartwechsel ausgeführt wurde, über den Eingang i_xModeChangeDone an den Funktionsbaustein übergeben werden. Wenn dieser Eingang den Wert TRUE aufweist, wird die mit dem Ein-/Ausgang iq_diUnitModeCurrent verknüpfte Variable mit dem zuvor angeforderten Steuerungsmodus aktualisiert.

Schnittstelle

Eingang

Datentyp

Beschreibung

i_xEnable

BOOL

Aktivierung und Initialisierung des Funktionsbausteins

i_diNumberOfModes

DINT

Anzahl der Betriebsarten

Bei einer Änderung des Wert muss der Funktionsbaustein neu initialisiert werden.

i_diUnitMode

DINT

Angeforderte Betriebsart

Der PackTag Command.UnitMode sollte auf den Eingang angewendet werden.

i_xUnitModeChangeRequest

BOOL

Bei einer steigenden Flanke prüft der Funktionsbaustein, ob ein Wechsel der Betriebsart möglich ist.

Der PackTag Command.UnitModeChangeRequest sollte auf den Eingang angewendet werden.

i_diStateCurrent

DINT

Ist-Zustand der Maschine

Der PackTag Status.StateCurrent sollte auf den Eingang angewendet werden.

i_xModeChangeDone

BOOL

Rückmeldung der Anwendung, dass der angeforderte Betriebsartwechsel durchgeführt wurde. Bei einer steigenden Flanke wird die mit iq_diUnitModeCurrent verknüpfte Variable entsprechend aktualisiert.

i_pstInitMode

POINTER TO ST_UnitModeDefinition

Über diesen Eingang wird die Adresse des Zeigers für die Betriebsartendefinitionen an den Funktionsbaustein übergeben.*

* Die Betriebsartendefinition enthält eine Zustandsdefinition für jede verfügbare Betriebsart und muss in einem Array des Typs ST_UnitModeDefinition bereitgestellt werden. Die Indizes des Arrays entsprechen dem numerischen Wert der verfügbaren Steuerungsmodi (siehe ET_Modes). Aus diesem Grund muss der Zeiger auf den Index verweisen, der dem Steuerungsmodus Producing, d. h. dem ersten Modus, zugeordnet ist.

Eingang/Ausgang

Datentyp

Beschreibung

iq_diUnitModeCurrent

DINT

Über die diesem Ein-/Ausgang zugeordnete Variable erfährt der Funktionsbaustein die derzeitige Betriebsart bei einem Request zum Betriebsartwechsel. Nach der Durchführung des Betriebsartwechsels schreibt der Funktionsbaustein dann die neue Betriebsart.

Der PackTag Status.UnitModeCurrent sollte auf den Ein-/Ausgang angewendet werden.

Ausgang

Datentyp

Beschreibung

q_xActive

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein aktiv ist.

q_xError

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, wurde ein Fehler identifiziert. Siehe ET_Result.

q_xReady

BOOL

Wenn dieser Ausgang auf TRUE gesetzt wird, bedeutet das, dass der Funktionsbaustein einsatzbereit ist.

q_etResult

ET_Result

Enumeration mit dem Ergebnis.

q_sResultMsg

STRING[80]

Zusätzliche Ergebnismeldung.

q_xUnitModeRequested

BOOL

Entspricht Eingang i_xUnitModeChangeRequest.

Der PackTag Status.UnitModeRequested sollte auf diesen Ausgang angewendet werden.

q_diEnterMode

DINT

Verweist auf die Betriebsart, zu der gewechselt werden soll. Wenn der Funktionsbaustein deaktiviert wird, wird dieser Ausgang auf 0 gesetzt.

q_xModeChangeRequestRejected

BOOL

Solange der Ausgang den Wert TRUE aufweist, wird von diesem Funktionsbaustein kein Betriebsartwechsel-Request genehmigt und es sollte kein Wechsel durchgeführt werden.