Skip to main content

Element: Zusammengesetzter Zustand

Mit diesem Element können Sie mehrere Zustände zu einer Gruppe zusammenfassen.

. Ein zusammengesetzter Zustand kann ein orthogonaler oder ein nichtorthogonaler Zustand sein.
  • Orthogonaler Zustand: Zusammengesetzter Zustand mit zwei oder mehr Regionen. Bei einem orthogonalen Zustande werden die innere Zustände in Regionen gruppiert und die Regionen mit Prioritäten versehen. Sie regeln zur Laufzeit die Abarbeitungsreihenfolge. Die Zustände der Regionen werden pseudo-parallel entsprechend ihrer internen Sequenzialisierung durchlaufen.

  • Nichtorthogonaler Zustand: Zusammengesetzter Zustand mit genau einer Region. Bei einem nichtorthogonalen Zustand werden die inneren Zustände zur Laufzeit sequenziell durchlaufen. Dabei kann ein innerer Zustand wieder ein zusammengesetzter Zustand sein. Die Verschachtelung von nichtorthogonalen Zuständen kann beliebig tief sein, wobei keiner der Zustände mehrere Regionen haben darf, außer der innerste Zustand.

Orthogonale und nichtorthogonale Zustände können zusätzlich jeweils eine ENTRY-, DO- und EXIT-Aktion aufrufen. Wenn eine Ausnahmetransition aktiv wird, wird die Exit-Aktion jedes aktiven Zustands jeder Region des orthogonalen Zustands ausgeführt.

_uml_img_orthogonal_state.png

Der Name des zusammengesetzten Zustands steht in der linken oberen Ecke des Rechtecks. Regionen sind durch eine gestrichelte Linie abgeteilt. Die Priorität der Region wird in der rechten oberen Ecke der Region angezeigt.

Regeln

. Regeln
  • Eine Transition zwischen Zuständen, die in unterschiedlichen Regionen liegen, ist nicht erlaubt.

  • Ein zusammengesetzter Zustand kann eine oder mehrere abgehende Ausnahmetransitionen haben. Sie können über eine Ausnahmetransition beispielsweise eine Fehlerbehandlung implementieren.

  • Ein zusammengesetzter Zustand hat höchstens 1 abgehende Abschlusstransition. Jede Region enthält dann einen Startzustand und einen Endzustand. Der zusammengesetzte Zustand erreicht seinen Endzustand, wenn alle Regionen ihren Endzustand erreicht haben. Wenn ein zusammengesetzter Zustand keine abgehende Abschlusstransition hat, können die Regionen ohne Startzustand und Endzustand sein.

  • Eine Transition zu einem Zustand innerhalb eines orthogonalen Zustand ist nur von einer Gabelung ausgehend erlaubt und immer unbedingt.

  • Ein nichtorthogonaler Zustand kann einen anderen zusammengesetzten Zustand enthalten. Die Zustände sind dann verschachtelt.

  • Ein nichtorthogonaler zusammengesetzter Zustand kann eine ENTRY- und/oder DO- und/oder EXIT-Aktion zugewiesen haben.

Eigenschaften

Eigenschaft

Beschreibung

Bezeichner

Name des zusammengesetzten Zustands

Beispiel: DoorAutomaton

Farbe

Farbe des Elements. Über einen Farbauswahldialog ändern Sie die Farbe. Standard: gelb

ENTRY / DO / EXIT Aktionen erlauben

Voraussetzung: Der selektierte zusammengesetzte Zustand hat genau eine Region.

Auch in folgenden Anwendungsfällen können ENTRY-/DO-/EXIT-Aktionen zugewiesen werden:

  • Verschachtelte zusammengesetzte Zustände

  • Zustände ohne innere Start- oder Endzustände

  • Zustände ohne innere abgehende Abschluss- oder Ausnahmetransitionen

_cds_icon_checked.png: Sie können dem Zustand je eine ENTRY-, DO- oder EXIT- Aktion zuweisen.

DO-Aktionen auch ausführen, wenn die inneren zusammengesetzten Zustände aktiv sind

Die Option ist nur beim äußersten zusammengesetzten Zustand verfügbar und wird an die inneren vererbt.

_cds_icon_checked.png: Zur Laufzeit wird die DO-Aktion ständig ausgeführt, auch wenn dabei einer der inneren zusammengesetzten Zustände gleichzeitig aktiv ist. Im Editor erscheint neben der DO-Aktion der Hinweis {wird auch für innere zusammengesetzte Zustände ausgeführt}, um auf dieses Verhalten der Aktion hinzuweisen.

_cds_icon_option_deactivated.png: Sobald einer der inneren zusammengesetzten Zustände aktiv ist, pausiert die DO-Aktion des äußeren Zustands.

Benutzereingaben

Aktion

Beschreibung

  1. Selektieren Sie einen leeren zusammengesetzten Zustand.

  2. Klicken Sie auf das Symbol _uml_icon_transition_completion.png.

    Eine abgehende Abschlusstransition wird erzeugt.

  3. 3. Klick Sie auf ein bestehendes Element vom Typ Zustand, zusammengesetzter Zustand, Gabelung/Verbindung oder Auswahl.

    Eine Abschlusstransition ist zwischen den beiden Elementen eingefügt.

Hinweis: Wenn Sie nicht auf ein bestehendes Element klicken sondern auf einen freien Bereich, wird ein neuer Zustand erzeugt.

Sie fügen eine Ausnahmetransition _uml_icon_transition_exception.png in der gleichen Weise hinzu.

  1. Bewegen Sie den Mauszeiger auf einen leeren zusammengesetzten Zustand.

  2. Klicken Sie auf das Symbol _uml_icon_sc_area_add.png.

    Der Zustand wird unterteilt und eine weitere Region hinzugefügt.

    _uml_state_orthogonal.png

Die Priorität wird innerhalb der Region rechts angezeigt. Regionen mit niederer Priorität werden zuerst durchlaufen. Sie können die Priorität ändern. CODESYS passt die Prioritäten der anderen Regionen automatisch an.

  1. Selektieren Sie einen zusammengesetzten Zustand mit mehreren Regionen.

  2. Verschieben Sie die Trennlinie mit gedrückter Maustaste.

  3. Selektieren Sie die Trennlinie mit einem Doppelklick.

    Die Linie wird blau gezeichnet.

  4. Drücken Sie Entf.

    Die Linie wird gelöscht.

Nach dem Löschen einer Trennlinie werden die 2 (von der Tennlinie getrennten) Regionen zu einer Region.

  1. Selektieren Sie einen zusammengesetzten Zustand mit mehreren Regionen

  2. Klicken Sie zweimal auf die Priorität in einer Region.

Die Priorität kann nun verändert werden.

Bei einer Änderung der Priorität werden die anderen Prioritäten automatisch angepasst.

  1. Bewegen Sie die Maus auf einen leeren zusammengesetzten Zustand.

    –> Die Aktionen des Zustands werden angezeigt.

    _uml_img_composite_state_with_acitvated_actions.png

  2. 2. Klicken Sie auf eines der drei Symbole _uml_icon_actions_vertical.png.

  3. Klicken Sie auf das Symbol _uml_icon_sc_action_do.png.

    Der Zustand wird um eine DO-Aktion/Methode erweitert.

  4. Bewegen Sie die Maus über einen Zustand mit zugewiesener DO-Aktion.

  5. Klicken Sie auf das Symbol _uml_icon_sc_action_add.png.

    Der Dialog Neues Aktionsobjekt öffnet sich.

  6. Wählen Sie das Objekt Aktion.

  7. Geben Sie einen Namen und eine Implementierungssprache ein.

    –> Eine neue Aktion wird unterhalb der POU des Zustanddiagramms eingefügt.

  8. Klicken Sie auf das Symbol _uml_icon_sc_action_open.png.

    Der Editor der zugehörigen Aktion oder Methode öffnet sich.

Voraussetzung: Die Eigenschaft ENTRY / DO / EXIT-Aktionen erlauben ist aktiviert.

Das Aktionsobjekt kann eine Aktion oder Methode sein. Wenn die Aktion eine Methode ist, muss im Dialog Neues Aktionsobjekt zusätzlich der Rückgabetyp und der Zugriffs definiert werden. Die Zuordnung zum Aktionsobjekt kann in den Eigenschaften des Elements geändert werden.

Ein Zustand kann eine ENTRY-, eine DO- und eine EXIT- Aktion haben:

  • Eine ENTRY-Aktion/Methode kann den Zustand initialisieren. Sie wird einmal ausgeführt, wenn alle eingehenden Transitionen auf TRUE gesetzt sind.

  • Die DO-Aktion/Methode wird solange ausgeführt, wie der Zustand aktiv ist. Die Aktion kann in jeder beliebigen Implementierungssprache programmiert werden. Wenn Sie Zustandsdiagramm verwenden, entsteht eine hierarchische Struktur.

  • Die EXIT-Aktion/Methode soll sicherstellen, dass der Zustand in einem gültigen Zustand verlassen wird. Die EXIT-Aktion wird einmal ausgeführt, wenn alle abgehenden Transitionen des Zustands TRUE sind.

Tipp

Sie können die Aktionen oder Methoden auch in den Eigenschaften des Elements hinzufügen oder ändern.

Beispiele

Beispiel 22. Zusammengesetzter Zustand mit Ausnahmetransition und Abschlusstransition
_uml_img_composite_state_example.png


Beispiel 23. Zusammengesetzter Zustand ohne Abschlusstransition
_uml_img_composite_state_without_completion.png


Beispiel 24. Verschachtelte zusammengesetzte Zustände
_uml_img_nested_composite_states.png


Beispiel 25. Orthogonaler Zustand mit Gabelung
_uml_img_fork_join_example.png


Beispiel Lift

Beispiel 26. Orthogonaler Zustand mit Abschlusstransition und Ausnahmetransition
_uml_img_orthogonal_state_lift.png