Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Eintreten in Diagramme oder Zustände

Der Eintritt in ein Diagramm oder Zustand erfolgt, wenn:

  • Ein Diagramm zum ersten Mal aktiviert wird. Dies wird als Diagramm-Initialisierung bezeichnet.

  • Ein gültiger Übergang zu einem Zustand existiert. Siehe Evaluate Transitions.

Workflow zum Eintreten in Diagramme oder Zustände

Dieses Flussdiagramm zeigt die Abfolge der Ereignisse, die Stateflow® bei dem Eintreten in ein Diagramm oder einen Zustand durchläuft. 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 entering a chart or state.

Eintritt in das Diagramm

Wenn das Stateflow-Diagramm zum ersten Mal aktiv wird, wird dies als Initialisierung bezeichnet. Bei der Initialisierung des Diagramms wird das Diagramm aufgerufen und Stateflow führt Standardübergänge für exklusive (OR) Zustände aus. Wenn die Zustände auf oberster Ebene des Diagramms parallel (AND) sind, werden sie auf Basis ihrer Reihenfolgen-Nummer aktiviert.

Wenn das Diagramm vor dem Zeitpunkt t = 0 Standardübergänge akzeptieren soll, aktivieren Sie im Dialogfeld "Chart Properties" das Kontrollkästchen Execute (enter) chart at initialization. Durch diese Option wird das Stateflow-Diagramm zur selben Zeit wie die Simulink®-Initialisierung initialisiert. Die Standard-Ausführungsphasen des Diagramms werden daraufhin während der Modell-Initialisierungsphase ausgeführt.

Eintritt in einen Zustand

Ist ein Zustand zum Eintreten markiert, werden die Eintrittsaktionen für den Zustand ausgeführt. Wenn Ihr Diagramm aktiv ist und die Initialisierung durchlaufen hat, wird der Zustand auf oberster Ebene aktiv. Ein Zustand wird auf eine der folgenden Arten zum Eintreten markiert:

  • Ein eingehender Übergang überquert Zustandsgrenzen.

  • Ein eingehender Übergang endet bei der Zustandsgrenze.

  • Der Zustand ist ein paralleler untergeordneter Zustand eines aktiven Zustands.

„Entry“-Aktionen

Aktionen vom Typ „Entry“ wird das Präfix entry oder kurz en vorangestellt, gefolgt von einem erforderlichen Doppelpunkt (:) und von einer oder mehreren Aktionen. Trennen Sie mehrere Aktionen mit einem Zeilenumbruch, einem Semikolon (;) oder einem Komma (,). Wenn Sie den Zustandsaktions-Typ eines Ausdrucks nicht explizit festlegen, behandelt das Diagramm den Ausdruck als entry-, during-Aktion.

Eintreten in ein Stateflow-Diagramm

In diesem Beispiel wird die Diagramm-Initialisierung ausgeführt, sobald das Diagramm zum ersten Mal aktiv wird.

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 zum Eintreten in Diagramme oder Zustände befolgt wird, bis das Diagramm in den Ruhezustand übergeht, laufen die Schritte zur Diagramm-Initialisierung in folgender Reihenfolge ab:

  1. Die Standardübergangsaktionen werden ausgeführt und x = 0, y = 0 und z = 0.

  2. StateA wird zum Eintreten markiert.

  3. StateA ist kein Unterzustand eines inaktiven übergeordneten Zustands. Die entry-Aktionen für StateA werden ausgeführt. Jetzt gilt: x = 1.

  4. StateA ist der Zustand, der anfänglich zum Eintreten markiert war.

  5. StateA umfasst keine Verlaufsverbindungen.

  6. Es liegt ein Standardübergang zum Unterzustand StateA1 vor. Das Flussdiagramm „Evaluate Transitions“ wird aufgerufen.

  7. Das Flussdiagramm „Evaluate Transitions“ wird befolgt und StateA1 für entry markiert. Das Flussdiagramm „Exit Actions“ wird aufgerufen.

  8. Der aktuelle Zustand StateA ist ein Superzustand des Zielzustands StateA1. Das Flussdiagramm „Entry Actions“ wird aufgerufen.

  9. StateA1 ist kein Unterzustand eines inaktiven übergeordneten Zustands. Die entry-Aktionen für StateA1 werden durchgeführt. Jetzt gilt: x = 3.

  10. StateA1 ist der Zustand, der anfänglich zum Eintreten markiert war.

  11. StateA1 umfasst keine Verlaufsverbindungen.

  12. StateA1 umfasst keine Standardübergänge.

  13. StateA1 umfasst keine einzelnen Unterzustände.

  14. Das Diagramm geht in den Ruhezustand über.

Die Schritte 1 bis 14 finden während des ersten Zeitschritts statt. Hierdurch wird der Diagramm-Initialisierungsprozess abgeschlossen.

Eintreten in einen Zustand mithilfe von Verlaufsverbindungen

Wenn Ihr Stateflow-Diagramm sich an einen zuvor aktiven Unterzustand „erinnern“ und zu diesem zurückkehren soll, unabhängig von einem Standardübergang, verwenden Sie eine Verlaufsverbindung. Wird eine Verlaufsverbindung in einem Zustand platziert, wird der Standardübergang zu exklusiven (OR) Unterzuständen überschrieben. Haben Sie eine Verlaufsverbindung in einem Zustand platziert, erinnert sich Ihr Stateflow-Diagramm nach dem Eintreten an den zuvor aktiven Unterzustand und tritt in diesen ein. Die Verlaufsverbindung gilt nur für die Hierarchieebene, auf der sie dargestellt wird.

In diesem Beispiel kann ein Licht ein- oder ausgeschaltet sein. Diese Optionen werden durch die Zustände Power_on und Power_off angegeben. Die Optionen werden von den Eingangsereignissen switch_on und switch_off gesteuert. Ist das Licht eingeschaltet, kann es trübe oder hell sein. Diese Optionen werden durch die Zustände Low und High angegeben und werden durch die Eingangsereignisse switch_low und switch_high gesteuert.

Anfänglich ist das Diagramm im Ruhezustand. Der Zustand Power_off ist aktiv. Das letzte Mal, als der Zustand Power_on aktiv war, war High der zuvor aktive Unterzustand. Das Ereignis switch_on tritt auf und der Zustand Power_on wird zum Eintreten markiert. Zu diesem Zeitpunkt gilt p = 0.

Stateflow chart with top-level states called Power_off and Power_on. Power_on has a history junction and substates Low and High.

Indem Workflow zum Eintreten in Diagramme oder Zustände befolgt wird, bis das Diagramm in den Ruhezustand eintritt, laufen die Ausführungsschritte zum Eintreten in den Zustand Power_on in dieser Reihenfolge ab:

  1. Power_on ist nicht das untergeordnete Element eines inaktiven übergeordneten Elements.

  2. Es gibt keine „Entry“-Aktionen für Power_on.

  3. Power_on ist der Zustand, der anfänglich zum Eintreten markiert war.

  4. Es gibt Verlaufsverbindungen in Power_on.

  5. Der zuvor aktive Unterzustand war High. Jetzt gilt: p = 2.

  6. High umfasst keine Verlaufsverbindungen.

  7. High umfasst keine Standardübergänge.

  8. High umfasst keine einzelnen Unterzustände.

  9. Das Diagramm geht in den Ruhezustand über.

Dies schließt die entry-Aktionen für Power_on und High ab.

Eintreten in einen Zustand 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 unterschiedlichen Unterdiagrammen auf selber Ebene oder verschiedenen Ebenen eines Diagramms erfolgen. Sie können übergreifende Übergänge erstellen, die sich über eine beliebige Anzahl von Ebenen in Ihrem Diagramm erstrecken.

Wenn durch einen übergreifenden Übergang in einen Zustand eingetreten wird, bevor die „Entry“-Aktionen für das endgültige Ziel ausgeführt wurden, müssen dessen Superzustände als aktiv markiert und deren „Entry“-Aktionen ausgeführt werden. In diesem Beispiel wurde StateB1 von StateA2 für das Eintreten markiert. Zu diesem Zeitpunkt gilt: x = 5, y = 5 und z = 1.

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

Indem Workflow zum Eintreten in Diagramme oder Zustände befolgt wird, bis das Diagramm in den Ruhezustand eintritt, laufen die Ausführungsschritte zum Eintreten in den Zustand StateB1 in dieser Reihenfolge ab:

  1. StateB1 ist der Unterzustand eines inaktiven übergeordneten Zustands (StateB).

  2. StateB ist als aktiv markiert.

  3. StateB ist nicht der Unterzustand eines inaktiven übergeordneten Zustands.

  4. Die „Entry“-Aktionen für StateB werden ausgeführt. Jetzt gilt: x = 4.

  5. StateB ist nicht der Zustand, der anfänglich zum Eintreten markiert war.

  6. Die „Entry“-Aktionen für StateB1 werden ausgeführt. Jetzt gilt: x = 3.

  7. StateB1 ist der Zustand, der anfänglich zum Eintreten markiert war.

  8. StateB1 weist keine Verlaufsverbindungen auf.

  9. StateB1 umfasst keine Standardübergänge.

  10. StateB1 umfasst keine einzelnen Unterzustände.

  11. Das Diagramm geht in den Ruhezustand über.

Dies schließt die entry-Aktionen für StateB und StateB1 ab.

Siehe auch

Themen