Beispiel: OMAC PackML-Zustandsmaschine
Produkt: CODESYS Development System
Die Bibliothek enthält eine Zustandsmaschine für Steuerungen der Verpackungsindustrie auf Basis des OMACPackML-Standards.
Beschreibung
PackML steht für Packaging Machine Language und definiert einen allgemeinen Ansatz bzw. eine Maschinensprache für automatisierte Maschinen in der Verpackungsindustrie. Die primären Ziele von PackML sind die Vereinheitlichung der Bedienung und die Umsetzung von industriellen Inovatationen. Die im Package enthaltene Bibliothek OMAC_PackML_State_Machine
enthält eine Implementierung der OMAC PackML State Machine. Das Beispielprojekt veranschaulicht die Verwendung der Bibliothek. Weitere Informationen zu OMAC und PackML finden Sie unter www.omac.org/.
Weitere Informationen
Die PackML-Zustandsmaschine definiert Maschinenzustände und die dazugehörenden Zustandsübergänge. Eine Abfolge von Maschinenzuständen wird als "Unit Mode" zusammengefasst. Ein "Unit Mode" kann maximal 17 Maschinenzustände enthalten. Die folgende Grafik zeigt sämtliche Maschinenzustände mit den entsprechenden Zustandsübergängen.
![]() |
Es gibt drei Arten von Maschinenzuständen:
Acting States
(grün): Aktive Prozesszustände wieABORTING
oderHOLDING
Wait States
(olivgrün): Zustände, die nach Abarbeitung von aktiven Prozesszuständen erreicht werden und auf ein Ereignis warten. Beispiel:ABORTED
oderHELD
.Dual States
(blau): Maschinenzustände die vom TypActing State
undWait State
sind. In PackML ist nur ein Zustand dieses Typs definiert:EXECUTE
.
Ein Zustandsübergang wird durch eine Aktion, wie beispielsweise Start
oder Stop
, angestoßen.
PackML erlaubt zusätzlich die Definition von eigenen "Unit Modes". So können beispielsweise eigene "Unit Modes" für Wartung oder Inbetriebnahme erstellt werden. Die enthaltenen Maschinenzustände sind dabei eine Teilmenge der maximalen Ausprägung.
Es kann immer nur ein "Unit Mode" aktiv sein, ein Wechsel zwischen "Unit Modes" ist erlaubt. Diese Aufgabe übernimmt der "Unit Mode Manager". Der "Unit Mode Manager" berücksichtigt, ob das Verlassen des aktuellen Zustandes erlaubt ist und ob in den Zielzustand gewechselt werden darf.
![]() |
Bibliothek OMAC_PackML_State_Machine
Die im Package enthaltene Bibliothek OMAC_PackML_State_Machine
enthält alle erforderlichen Komponenten inklusive einer Visualisierung zum Aufbau einer Zustandsmaschine nach PackML.
Mit dem Funktionsbaustein UnitMode
können eigene "Unit Modes" mit den entsprechenden Maschinenzuständen definiert werden (Eingang dwSupportedStates
). Über die beiden Eingänge dwAllowsLeavingFromStates
und dwAllowsEnteringIntoStates
kann für jeden Maschinenzustand festgelegt werden, ob ein Wechsel des "Unit Modes" erlaubt ist. Ein Maschinenzustandswechsel kann über die Methoden im Ordner Commands
angestoßen werden (Start
, Stop
, Abort
usw.).
Über den Funktionsbaustein UnitModeManager
kann zwischen den einzelnen Unit Modes unter Berücksichtigung des aktuellen Maschinenzustandes gewechselt werden. Die Abfrage des aktuellen Zustandes erfolgt über diesen Funktionsbaustein.
Beispielprojekt PackML_Example
Das Beispielprojekt PackML_Example
enthält zwei Applikationen zur Veranschaulichung der Verwendung der Bibliothek.
Applikation ‚PackMLUnitModeManager‘:
In der Applikation PackMLUnitModeManager
werden drei "Unit Modes" (Production
, Semi Auto
und Setup
) definiert und beim Funktionsbaustein UnitModeManager
registriert. Eine Visualisierung stellt den aktuellen Zustand des entsprechenden "Unit Modes" dar und ermöglicht das Ausführen von Kommandos, sowie das Umschalten des "Unit Modes".
![]() |
Applikation ‚PackMLAxisControl‘:
In dem Beispiel werden die Zustände einer virtuellen SoftMotion-Achse über die PackML Zustandsmaschine abgebildet und gesteuert. Die Definition des Unit Mode und die Zuordnung der Zustände erfolgt im Funktionsbaustein AxisControl
.
![]() |
Systemvoraussetzungen und Einschränkungen
Programmiersystem | CODESYS Development System Version 3.5.10.0 oder höher |
Laufzeitsystem | CODESYS Control Win Version 3.5.10.0 |
Zusatzkomponenten | - |
Hinweis
DOWNLOAD Projekt
Nach der Installation des Package OMAC PackML State Machine
finden Sie das Beispielprojekt im Verzeichnis C:\Users\<user>\CODESYS Examples\OMAC PackML State Machine
.