Aktivieren von Stateflow-Diagrammen durch Absenden von Eingangsereignissen
Sie können ein Stateflow®-Diagramm erstellen, das nur aktiviert wird, wenn das Simulink®-Modell ein Eingangsereignis an das Diagramm sendet. Nachdem das Diagramm aktiviert wurde, führt es seine Aktionen aus.
Eingangsereignisse können von Simulink-Modellen, Simulink-Funktionen oder anderen Stateflow-Diagrammen generiert werden.
Definieren eines Eingangsereignisses
Um ein Eingangsereignis zu definieren:
Fügen Sie dem Stateflow-Diagramm ein Ereignis hinzu. Weitere Informationen finden Sie unter Definieren von Ereignissen in einem Diagramm.
Setzen Sie im Property Inspector, die Eigenschaft Scope des Ereignisses auf
Input from Simulink. Diese Einstellung erstellt einen Eingangsport auf dem Chart-Block.Um ein kantenausgelöstes Ereignis festzulegen, setzen Sie Trigger auf
Rising,FallingoderEither. Um einen Funktionsaufruf festzulegen, setzen Sie Trigger aufFunction call.
Sie können ein Steuersignal, auch bekannt als Kantenauslöser, oder einen Funktionsaufruf aus einem Simulink-Block verwenden. Sie können in einem Stateflow-Diagramm nicht sowohl kantenausgelöste Eingangsereignisse als auch Funktionsaufruf-Eingangsereignisse verwenden. Wenn Sie beide Eingangsereignisse zugleich verwenden, führt dies zu einem Kompilierfehler.
Aktivieren eines Stateflow-Diagramms mithilfe von Kantenauslösern
Kantenausgelöste Eingangsereignisse aktivieren das Stateflow-Diagramm, wenn das Steuersignal von positiv zu negativ, von negativ zu positiv oder zwischen negativ und positiv wechselt. Kantenausgelöste Ereignisse werden während des Zeitschritts ausgeführt, in dem sich das Steuersignal ändert. Die Einstellung der Eigenschaft Trigger bestimmt, wann das Diagramm aktiviert wird:
Einstellung der Eigenschaft „Trigger“ | Beschreibung |
|---|---|
| Das Diagramm wird aktiviert, wenn sich das Steuersignal entweder von null oder von einem negativen Wert in einen positiven Wert ändert. |
| Das Diagramm wird aktiviert, wenn sich das Steuersignal von einem positiven Wert entweder in null oder in einen negativen Wert ändert. |
| Das Diagramm wird aktiviert, wenn das Steuersignal bei der Änderung in eine der beiden Richtungen null durchläuft. |
Um das kantenausgelöste Ereignis zu aktivieren, muss der Wert des Steuersignals gleich oder größer null sein. Ein Signal, das sich von -1 zu 1 oder von 0 zu 2 ändert, ist beispielsweise ein gültiger Auslöser bei ansteigender Kante. Ein Signal, das sich von 1 zu 2 ändert, ist kein gültiger Auslöser bei ansteigender Kante.
Auslöser mit mehreren ansteigenden Kanten können nur auftreten, wenn das Steuersignal einen Unterschied von mehr als einem Zeitschritt zwischen zwei steigenden oder zwei fallenden Signalwerten aufweist. Mit anderen Worten: Ein Diagramm behandelt ein Signal von -1 zu 0 zu 1 in aufeinanderfolgenden Zeitschritten als einen einzigen Auslöser bei ansteigender Kante, nicht als zwei Auslöser bei ansteigender Kante. Weitere Informationen finden Sie unter Using Triggered Subsystems (Simulink).
Verwendungsszenarien für kantenausgelöste Eingangsereignisse
Mit einem kantenausgelösten Eingangsereignis können Sie ein Diagramm aktivieren, wenn Ihr Modell eine regelmäßige Diagrammausführung erfordert. In diesem Modell wird das Edge to Function-Diagramm beispielsweise durch ein kantenausgelöstes Eingangsereignis in regelmäßigen Abständen aktiviert.

Mehrere kantenausgelöste Eingangsereignisse
Sie können ein kantenausgelöstes Eingangsereignis verwenden, um ein Diagramm mehrmals im selben Zeitschritt zu aktivieren. Bei jedem Zeitschritt überprüft Stateflow die Eingangsereignisse in aufsteigender Reihenfolge der Portnummern. Das Diagramm wird daraufhin bei jedem gültigen Ereignis aufgeweckt. Wenn mehrere Kanten im selben Zeitschritt auftreten, wird das Diagramm mehr als einmal in diesem Zeitschritt aktiviert.
Aktivieren eines Stateflow-Diagramms mithilfe von Funktionsaufrufen
Ein Funktionsaufruf-Eingangsereignis führt dazu, dass ein Stateflow-Diagramm während dem aktuellen Zeitschritt der Simulation ausgeführt wird.
Verwendungsszenarien für Funktionsaufruf-Eingangsereignisse
Mit einem Funktionsaufruf-Eingangsereignis können Sie in Diagramm aktivieren, wenn Ihr Modell zum selben Zeitschritt wie der Funktionsaufruf Zugriff auf die Ausgangsdaten des Diagramms benötigt. In diesem Modell aktiviert beispielsweise ein Funktionsaufruf-Eingangsereignis das Diagramm Looping Scheduler.

Mehrere Funktionsaufruf-Eingangsereignisse
Bei Funktionsaufruf-Eingangsereignissen ist nur ein einziges Auslöserereignis vorhanden. Der Ereignis-Caller ruft das Diagramm explizit auf und führt es aus.
Unterstützte Datentypen für Eingangsereignisse
Wenn mehrere Eingangsereignisse für einen Auslöserport vorhanden sind, müssen alle Signale denselben Datentyp aufweisen. Wenn Sie Signale mit verschiedenen Datentypen als Eingangsereignisse verwenden, tritt während der Simulation ein Fehler auf. Sie können beispielsweise einen Mux-Block verwenden, um zwei Eingangssignale des Typs double zu kombinieren und dieses Signal zum Auslösen von Eingangsereignissen in einem Diagramm zu verwenden.

Sie können einen Mux-Block hingegen nicht verwenden, um zwei Eingangssignale mit unterschiedlichen Datentypen wie boolean und double zu kombinieren.
