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.
„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
.
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:
StateA
ist kein übergeordneter Zustand vonStateB
.Die Aktionen vom Typ „Exit“ von
StateA
ausführen undStateA
als inaktiv markieren. Jetzt gilt:z = 1
.StateA
verfügt über keinen übergeordneten Zustand.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
.
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:
StateA2
ist kein übergeordneter Zustand des Zielzustands (StateB1
).Die Aktionen vom Typ
exit
fürStateA2
ausführen undStateA2
als inaktiv markieren.StateA2
verfügt über einen übergeordneten Zustand,StateA
.StateA
ist kein übergeordneter Zustand des Zielzustands (StateB1
).Die Aktionen vom Typ
exit
fürStateA
ausführen undStateA
als inaktiv markieren.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.