Main Content

Verlassen eines Zustands

Wenn ein gültiger Übergang aus einem Zustand vorliegt, wird dieser Zustand zum Verlassen markiert. Ein Zustand wird auf eine der folgenden Arten zum Verlassen markiert:

  • Der Übergang nach außen hat seinen Ursprung an der Zustandsgrenze.

  • Der Übergang nach außen überschreitet die Zustandsgrenze.

  • Der Zielzustand ist ein paralleler untergeordneter Zustand eines aktivierten Zustands.

Workflow für das Verlassen eines Zustands

Dieses Flussdiagramm zeigt die Abfolge der Ereignisse in Stateflow® beim Verlassen eines Zustands. In diesem Flussdiagramm bezieht sich der aktuelle Zustand auf den Zustand, in dem eine Entscheidung oder ein Prozess stattfindet.

Flow chart that shows the steps for exiting a state.

„Exit“-Aktionen

Aktionen vom Typ Exit werden für einen Zustand ausgeführt, wenn der Zustand aktiv ist und ein gültiger Übergang vom Zustand vorhanden ist. Ein Zustand führt seine Aktionen vom Typ exit aus, bevor er inaktiv wird.

Aktionen vom Typ „Exit“ wird das Präfix exit oder ex vorangestellt, gefolgt von einem erforderlichen Doppelpunkt (:) und von einer oder mehreren Aktionen. Trennen Sie mehrere Aktionen mit einem Zeilenumbruch, einem Semikolon (;) oder einem Komma (,).

Beispiel für das Verlassen eines Zustands

In diesem Beispiel wird das Stateflow-Diagramm initialisiert und die Aktionen vom Typ entry werden für StateA und StateA1 ausgeführt. Bei diesem Diagramm sind die Aktionen vom Typ during für dieses Diagramm zweimal ausgeführt worden. Es erfolgt ein neuer Zeitschritt und anschließend wird das Diagramm aufgerufen.

Im Anschluss an Workflow für die Ausführung eines Stateflow-Diagramms und Workflow for Evaluating Transitions wurde StateB für den Eingang markiert. StateA ist die Quelle des Übergangs. Bei diesem Zeitschritt gilt: x = 5, y = 2 und z = 0.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

Wenn das Flussdiagramm für Aktionen zum Verlassen des Zustands befolgt wird, bis das Diagramm in den Ruhezustand übergeht, laufen die Ausführungsschritte für dieses Diagramm in folgender Reihenfolge ab:

  1. StateA ist kein übergeordneter Zustand von StateB.

  2. Die Aktionen vom Typ „Exit“ von StateA ausführen und StateA als inaktiv markieren. Jetzt gilt: z = 1.

  3. StateA verfügt über keinen übergeordneten Zustand.

  4. Weiter mit Entry Actions.

Mit diesen Schritten ist der exit-Workflow für StateA abgeschlossen. Das Diagramm ist jedoch noch nicht im Ruhezustand.

Führen Sie den Workflow for Entering a Chart or State für StateB aus, um den Zeitschritt abzuschließen.

Verlassen eines Zustands mithilfe von übergreifenden Übergängen

Ein übergreifender Übergang ist ein Übergang zwischen verschiedenen Ebenen in einem Diagramm. Ein übergreifender Übergang kann zwischen einem Zustand in einem Diagramm der obersten Ebene und einem Zustand in einem seiner untergeordneten Zustände oder zwischen Zuständen in verschiedenen untergeordneten Zuständen erfolgen. Sie können übergreifende Übergänge erstellen, die sich über eine beliebige Anzahl von Ebenen in Ihrem Diagramm erstrecken.

Wenn ein Zustand durch einen übergreifenden Übergang verlassen wird, nachdem die Ausgangsaktionen für die Quelle des Übergangs ausgeführt wurden, werden seine übergeordneten Zustände als inaktiv markiert und die Ausgangsaktionen der übergeordneten Zustände werden ausgeführt. In diesem Beispiel ist StateA2 für exit und StateB1 für entry markiert. Zu diesem Zeitpunkt gilt: x = 5, y = 5 und z = 0.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

Wenn der Workflow for Entering a Chart or State befolgt wird, bis das Diagramm in den Ruhezustand übergeht, laufen die Ausführungsschritte zum Verlassen des Zustands StateA2 in folgender Reihenfolge ab:

  1. StateA2 ist kein übergeordneter Zustand des Zielzustands (StateB1).

  2. Die Aktionen vom Typ exit für StateA2 ausführen und StateA2 als inaktiv markieren.

  3. StateA2 verfügt über einen übergeordneten Zustand, StateA.

  4. StateA ist kein übergeordneter Zustand des Zielzustands (StateB1).

  5. Die Aktionen vom Typ exit für StateA ausführen und StateA als inaktiv markieren.

  6. StateA verfügt über keinen übergeordneten Zustand.

Mit diesen Aktionen ist der exit-Workflow für StateA2 und StateA abgeschlossen. Das Diagramm ist jedoch noch nicht im Ruhezustand.

Führen Sie den Workflow for Entering a Chart or State für StateB und StateB1 aus, um den Zeitschritt abzuschließen.

Verwandte Themen