Kaffeeautomat
Im Folgenden wird als Anwendungsbeispiel das Zustandsdiagramm eines Kaffeeautomaten erstellt. Es beschreibt vollständig dessen Prozessablauf, legt also fest, wie sich der Automat zur Laufzeit verhält.
Sehen Sie dazu im Installationsunterverzeichnis Projects
das Beispielprojekt UML_SC_CoffeeMachine.project
.
Applikation mit Zustandsdiagramm anlegen
Legen Sie in CODESYS ein neues Projekt mit Vorlage Standardprojekt und wählen Sie für PLC_PRG in.die Implementierungssprache UML-Zustandsdiagramm.
Das Projekt wird erstellt.
Klicken Sie im Gerätebaum auf das Programm
PLC_PRG
.Der Editor besteht aus einem Fenster für die Deklaration und einem Fenster für die grafische Implementierung. In der Ansicht Werkzeuge sind die Elemente aufgelistet, aus denen Sie ein Zustandsdiagramm erstellen können.
Bennen Sie
PLC_PRG
nachCoffeeMachine
um.
Variablen für die Wächterbedingungen deklarieren
Die Benutzereingaben werden in booleschen Variablen abgebildet, die üblicherweise von außen von einem Benutzer über eine Benutzerschnittstelle gesetzt werden. Wenn Sie die Variable im Zustandsdiagramm als Wächterbedingung zuweisen, wird die Ablauflogik schaltbar. Die Variablen fungieren als Steuervariablen. Eine Visualisierung als Benutzerschnittstelle wird hier nicht beschrieben.
PROGRAM CoffeeMachine VAR bMakeCoffee : BOOL := FALSE; bShutDown : BOOL := FALSE; bPowerUp : BOOL := FALSE; END_VAR
Ablauflogik als Zustandsdiagramm implementieren
Solange kein Kaffee gekocht wird, befindet sich der Kaffeautomat im Wartezustand Idle
. Die Aufforderung zum Kaffeekochen holt den Automaten aus dem Wartezustand heraus. Das Kaffeekochen durchläuft die Zustände Mahlen Grind
, Wasserkochen Boil
, Erhitzen Heat
und Aufschäumen der Milch (Foam
) quasiparallel im orthogonalen Zustand CreateCoffee
. Dann wird das Heißgetränk aufgebrüht und eingeschenkt (Pour
). Dann kehrt der Automat in den Wartezustand zurück.
Der Wartezustand wird nach dem Einschalten und der Initialisierungsphase Init
eingenommen. Vom Wartezustand aus wird der Automat ausgeschaltet (Shutdown
).

Der Zustand CreateCoffee
ist ein orthogonaler Zustand, der mehrerer orthogonale Regionen zusammenfasst. Zur Laufzeit werden die Regionen entsprechend Ihrer Priorität quasiparallel ausgeführt. Das Zustandsdiagramm veranschaulicht den Begriff „orthogonaler Zustand“.
Öffnen Sie mit Doppelklick auf das Programm CoffeeMachine
im Gerätebaum den Editor und erstellen Sie das oben abgebildete Diagramm.
Methoden und Aktionen hinzufügen
Wenn Sie die Ablauflogik als Zustandsdiagramm implementiert haben, fügen Sie den Zuständen und Transitionen Funktionalität hinzu. Sie fügen also bei den Zuständen ENTRY
-, DO
- oder EXIT
- Aktionen oder Methoden hinzu. Sie können auch eine Transition um eine Aktion oder Methode erweitern, die beim Zustandsübergang dann einmal aufgerufen wird.
Sehen Sie im Folgenden die Aktionen, die für den Kaffeemaschinenautomat im Gerätebaum unterhalb des Zustandsdiagramm-Funktionsbausteins, also unterhalb des Programms CoffeeMachine einhängen müssen. Der hier aufgelistete Code ist nur ein Platzhaltercode, der später erweitert wird, um beispielsweise in Variablen abgebildete E/As auszuwerten.
ActGrind
nGrind := nGrind + 10;
ActFoam
nFoam := nFoam + 5;;
ActFoam
nFoam := nFoam + 5;;
ActHeat
nFoam := nFoam + 5;;
ActShutdown
bShutDown := FALSE; bPowerUp := FALSE;
CoffeeReady
bMakeCoffee := FALSE; iGrind := 0; iHeat := 20; iFoam := 0;
Ordnen Sie dann die Aktionen den Zuständen und Transitionen folgendermaßen zu.

Um einem Zustand eine Aktion hinzuzufügen, klicken Sie auf eines der Symbole ,
oder
. Um einer Transition eine Aktion hinzuzufügen klicken Sie auf das Symbol
.