Einfacher Zustandsautomat
Ein einfacher Zustandsautomat besteht aus Zuständen, Transitionen, die den Zustandsübergang steuern, und Aktionen oder Methoden. Damit können Sie das Verhalten von endlichen Automaten entwerfen und implementieren.
Applikation mit Zustandsdiagramm anlegen
Legen Sie ein neues Projekt mit Vorlage Standardprojekt und wählen Sie für PLC_PRG in die Implementierungssprache UML-Zustandsdiagramm.
Das Projekt wird erstellt.
Selektieren Sie die Applikation im Gerätebaum und wählen Sie den Befehl
.Erstellen Sie einen Funktionsbaustein mit dem Namen
FB_Simple_Machine
in der Implementierungssprache UML-Zustandsdiagramm (Statechart SC).Instanziieren Sie den Funktionsbaustein im Programm
PLC_PRG
und implementieren Sie den Aufruf der Funktionsbaustein-Instanz.PROGRAM PLC_PRG VAR fb_Simple_Machine_A : FB_Simple_Machine; END_VAR fb_Simple_Machine_A();
Speichern Sie das Projekt unter dem Namen
SimpleMachine.project
.
Ablauflogik als Zustandsdiagramm entwerfen
Beispiel für Anforderungen an den Automaten:
Der Automat befindet sich nach der Initialisierungsphase im Wartezustand
Idle
.Wenn Ereignisse eintreten, wird in den Zustand
DoIt
geschaltet.Wenn alle Aktionen und Methoden abgearbeitet sind, wird das Beendigungsereignis ausgelöst und der Automat kehrt in den Wartezustand zurück.
Vom Wartezustand kann der Automat in den Ausschaltzustand
Exit
und dann in den Endzustand geschaltet werden.
In diesem Fall ergibt sich folgender Entwurf des Automaten.

Der Entwurf enthält noch keine Wächterbedingungen, die die Ablauflogik steuern. Außerdem werden noch keine Aktionen oder Methoden aufgerufen, so dass der Automat noch funktionslos ist.
Öffnen Sie mit Doppelklick auf den Funktionsbaustein FB_Simple_Machine
im Gerätebaum den Editor und erstellen Sie das oben abgebildete Diagramm.
Variablen für die Wächterbedingungen deklarieren
PROGRAM FB_Simple_Machine VAR bInitDone : BOOL := FALSE; bShutDown : BOOL := FALSE; bDoSomething : BOOL := FALSE; bDoFinished : BOOL := FALSE; END_VAR
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.

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 erweitern also die Zustände mit ENTRY
-, DO
- oder EXIT
- Aktionen oder Methoden. Sie können auch eine Transition um eine Aktion oder Methode erweitern, die beim Zustandsübergang dann einmal aufgerufen wird.
Sie können einem Zustand Aktionen hinzufügen, indem Sie eines der Symbole ,
oder
wählen. Einer Transition können Sie Aktionen hinzufügen, indem Sie das Symbol
wählen.

Sie können eine ähnliche Logik designen, die sich nur geringfügig im Zeitverhalten unterscheidet, wenn Sie den Transitionen eine Aktion zuordnen.

In der Ansicht Geräte können Sie die Zuordnung der Aktionen und Methoden nachvollziehen. Die Aktionen und Methoden wurden in der Implementierungssprache ST erstellt.
