Skip to main content

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

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

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

  3. Bennen Sie PLC_PRG nach CoffeeMachine um.

    _uml_img_sc_coffee_maker_create_app.png

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

_uml_img_sc_coffee_maker_design.png

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.

_uml_img_sc_coffee_maker.png

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