Sie können nur einen Zustandsautomaten in einer "Graphical Programming"-Gruppe definieren. Der Hauptzustandsautomat kann eine beliebige Anzahl untergeordneter Zustandsautomaten enthalten. Die Verschachtelungstiefe ist nicht begrenzt.

In PAgraph sind die untergeordneten Zustandsautomaten als Gruppierung von Zuständen und nicht als reelle Unterautomaten realisiert. Der Vorteil besteht darin, dass alle untergeordneten Zustandsautomaten auch auf alle im Hauptzustandsautomaten definierten lokalen und globalen Variablen zugreifen können.

Erstellen eines Zustandsautomaten

Sie können einen Zustandsautomaten mit einer der folgenden Methoden erstellen:

  • Ziehen Sie das state machine-Element aus der Toolbox in den Diagrammbereich.
  • Öffnen Sie im leeren Diagrammbereich das Kontextmenü und wählen Sie New Element » State machine aus.
  • Ziehen Sie einen neuen Übergang in den Diagrammbereich und wählen Sie aus dem Kontextmenü die Option State machine aus.
  • Wählen Sie aus dem Kontextmenü für mehrere ausgewählte Zustände die Option Create state machine from selection aus.
    Abbildung 48. Kontextmenü für mehrere ausgewählte Zustände im Diagrammbereich
    Kontextmenü für mehrere ausgewählte Zustände, das Optionen wie Kopieren, Ausschneiden, Löschen und Erstellen eines Zustandsautomaten aus einer Auswahl anzeigt.
  • Wählen Sie aus dem Kontextmenü die Option Create state machine from selection aus.

Für jeden neu erstellten Zustandsautomaten wird eine neue Registerkarte mit dem Titel State machine <number> (<number>) angezeigt. Wenn Sie den Zustandsautomaten aus einer Auswahl erstellen, werden die ausgewählten Zustände im neuen Diagramm angezeigt. Ausgewählte Zustände umfassen alle Übergänge zwischen diesen Zuständen. Wenn Sie einen Zustandsautomaten als neues leeres Element erstellen, enthält er ein Startelement plus den Startzustand.

Abbildung 49. Neuer Zustandsautomat aus Auswahl erstellt
Diagramm eines Zustandsautomaten, der aus einer Auswahl erstellt wurde.

Löschen von Zustandsautomaten

Sie können einen Zustandsautomaten mit einer der folgenden Methoden löschen:

  • Wählen Sie im Explorer den Zustandsautomaten aus, öffnen Sie das Kontextmenü und klicken Sie auf Delete.
  • Wählen Sie in der Diagrammansicht den Zustandsautomaten aus, öffnen Sie das Kontextmenü und klicken Sie auf Delete.

Ausgehende Übergänge: Out

Es ist nicht zulässig, direkt im untergeordneten Zustandsautomaten einen Übergang zu erstellen, der aus einem enthaltenen Zustandsautomaten herausführt.

Wenn Sie einen Zustandsautomaten verlassen möchten, müssen Sie ein Out-Element in diesem Zustandsautomaten erstellen.

Abbildung 50. Zustandsautomat mit zwei Out-Elementen
Diagramm eines Zustandsautomaten mit zwei Out-Elementen.

In allen Zustandsautomaten, die diesen Zustandsautomaten aufrufen, wird jedes Out-Element als Pfeil dargestellt. Von jedem dieser Pfeile aus können Sie Übergänge in Folgezustände ziehen.

Abbildung 51. Verwenden des Zustandsautomaten mit zwei Out-Elementen
Diagramm eines Zustandsautomaten mit zwei Out-Elementen, die zu unterschiedlichen Zuständen führen.

Anordnen von Out-Pfeilen

Per Standardeinstellung werden die Out-Pfeile am unteren Rand der Elemente des Zustandsautomaten angezeigt. Dies ist jedoch unerwünscht, wenn der Nachfolgezustand eines Zustandsautomaten oberhalb oder seitlich des Zustandsautomaten positioniert werden soll.

Abbildung 52. Out-Pfeile unterhalb des Zustandsautomaten
Diagramm, das Out-Pfeile unterhalb eines Zustandsautomaten anzeigt.

Verschieben von Pfeilen auf gegenüberliegende Seite

Wenn Sie die Out-Pfeile auf der gegenüberliegenden Seite des Zustandsautomaten positionieren möchten, öffnen Sie das Kontextmenü des Dreiecks, das das Out-Element darstellt, und wählen Sie Switch side aus. Dies muss für jeden Out-Pfeil einzeln durchgeführt werden.

Sie können Switch side auswählen, um die Pfeile wieder an die vorherige Position zu verschieben.

Abbildung 53. Out-Pfeile oberhalb des Zustandsautomaten
Diagramm, das einen Zustandsautomaten mit Out-Pfeilen oberhalb des Zustandsautomaten anzeigt.

Verschieben von Pfeilen auf benachbarte Seite

Wenn sich die Out-Pfeile vertikal ober- und unterhalb des Zustandsautomaten befinden, können Sie auch alle Pfeile horizontal ausrichten. Um die Pfeile horizontal auszurichten, öffnen Sie das Kontextmenü des Zustandsautomaten, nicht des Out-Pfeils, und wählen Sie Switch Out orientation aus.

Sie können Switch Out orientation auswählen, um die Pfeile wieder an die vorherige Position zu verschieben.

Abbildung 54. Kontextmenü des Zustandsautomaten
Diagramm, das einen Zustandsautomaten mit geöffnetem Kontextmenü und Optionen wie &quot;Switch Out orientation&quot; anzeigt.
Abbildung 55. Vertikale Ausrichtung von Out-Pfeilen
Diagramm, das einen Zustandsautomaten mit vertikalen Out-Pfeilen zu Zuständen darstellt.
Hinweis Wenn Sie die Ausrichtung ändern, werden alle Out-Pfeile immer auf die benachbarte Seite verschoben. Vertikal und horizontal ausgerichtete Pfeile können nicht gleichzeitig angeordnet werden.

Ändern der Pfeilreihenfolge

Öffnen Sie zum Ändern der Reihenfolge der Out-Pfeile das Kontextmenü und wählen Sie Move to right, Move to left, Move to down oder Move to up aus.

In der folgenden Tabelle werden alle Startpositionen und die neuen Positionen für alle Kontextmenübefehle zusammengefasst.

Position des Out-Pfeils Menübefehl Neue Position
Unterhalb Switch side Oberhalb
Move to left Unterhalb, aber eine Position weiter links
Move to right Unterhalb, aber eine Position weiter rechts
Oberhalb Switch side Unterhalb
Move to left Oberhalb, aber eine Position weiter links
Move to right Oberhalb, aber eine Position weiter rechts