after
Ausführen des Diagramms nach der Übertragung eines Ereignisses oder nach einer bestimmten Zeit
Beschreibung
after(
gibt n
,E
)true
zurück, wenn das Ereignis E
seit der Aktivierung des zugeordneten Zustands mindestens n
-mal eingetreten ist. Anderenfalls gibt der Operator false
zurück.
after(
gibt n
,tick
)true
zurück, wenn das Diagramm seit der Aktivierung des zugeordneten Zustands mindestens n
-mal aufgerufen wurde. Anderenfalls gibt der Operator false
zurück.
Das implizite Ereignis tick
wird nicht unterstützt, wenn ein Stateflow®-Diagramm in einem Simulink®-Modell über Eingangsereignisse verfügt.
after(
gibt n
,time_unit
)true
zurück, wenn seit der Aktivierung des zugeordneten Zustands mindestens n
Zeiteinheiten verstrichen sind. Anderenfalls gibt der Operator false
zurück.
Geben Sie bei Diagrammen in einem Simulink-Modell time_unit
in Sekunden (sec
), Millisekunden (msec
) oder Mikrosekunden (usec
) an. Wenn Sie n
als Ausdruck angeben, passt das Diagramm die Zeitverzögerung an, während sich der Wert des Ausdrucks im Laufe der Simulation ändert.
Geben Sie bei eigenständigen Diagrammen in MATLAB® n
mit einem Wert größer als oder gleich 0.001
und time_unit
in Sekunden (sec
) an. Der Operator erzeugt ein MATLAB timer
-Objekt, das ein implizites Ereignis zum Aktivieren des Diagramms erzeugt. MATLAB timer
-Objekte sind auf eine Genauigkeit von 1 Millisekunde begrenzt. Weitere Informationen finden Sie unter Events in Standalone Charts.
Das
timer
-Objekt wird erzeugt, wenn das Diagramm die Aktionen vom Typentry
des zugeordneten Zustands und dessen untergeordneten Zuständen ausgeführt hat. Wenn Sien
als Ausdruck angeben, dessen Wert sich während der Ausführung des Diagramms ändert, passt das Diagramm nicht die Zeitverzögerung destimer
-Objekts an.Das
timer
-Objekt beginnt am Ende des Diagrammschritts mit der Ausführung, wenn der zugeordnete Zustand aktiv wird. Dieser Schritt kann die Ausführung weiterer paralleler Zustände im Diagramm umfassen.Wenn das Diagramm zum Zeitpunkt eines vom
timer
-Objekt ausgehenden impliziten Ereignisses gerade einen anderen Vorgang bearbeitet, wird das Ereignis in die Warteschlange gestellt. Nachdem der aktuelle Schritt abgeschlossen ist, verarbeitet das Diagramm das Ereignis.Wenn der mit dem zeitlichen Logikoperator verbundene Zustand inaktiv wird, bevor das Diagramm das implizite Ereignis verarbeitet, wird das Diagramm durch das Ereignis nicht aufgerufen.
Beispiele
Tipps
Sie können Anführungszeichen für die Schlüsselwörter
'tick'
,'sec'
,'msec'
und'usec'
verwenden. Zum Beispiel istafter(5,'tick')
äquivalent zuafter(5,tick)
.Das Stateflow-Diagramm setzt den vom Operator
after
verwendeten Zähler immer dann zurück, wenn der zugeordnete Zustand erneut aktiviert wird.Das Timing für temporale Logikoperatoren der Absolutzeit hängt vom Typ des Stateflow-Diagramms ab:
Diagramme in einem Simulink-Modell definieren die temporale Logik der Absolutzeit in Bezug auf die Simulationszeit.
Eigenständige Diagramme in MATLAB definieren die temporale Logik der Absolutzeit in Bezug auf die Istzeit, die auf eine Genauigkeit von 1 Millisekunde begrenzt ist.
Die Differenz im Timing kann das Verhalten eines Diagramms beeinflussen. Angenommen, dieses Diagramm führt beispielsweise die Aktion vom Typ
during
des ZustandsA
aus.In einem Simulink-Modell wird der Funktionsaufruf von
f
in einem einzigen Zeitschritt ausgeführt und hat keinen Einfluss auf die Simulationszeit. Der Übergang von ZustandA
zu ZustandB
erfolgt zum ersten Mal, wenn das Diagramm aufgerufen wird und ZustandA
mindesten 2 Sekunden lang aktiv ist. Der von der Aktion vom Typentry
in ZustandB
angezeigte Wert hängt ausschließlich von der vom Simulink-Solver verwendeten Schrittgröße ab.In einem eigenständigen Diagramm kann der Funktionsaufruf von
f
mehrere Sekunden Istzeit dauern. Sollte der Aufruf länger als zwei Sekunden dauern, stellt das Diagramm das mit dem Operatorafter
verbundene implizite Ereignis in die Warteschlange. Der Übergang von ZustandA
zu ZustandB
erfolgt, wenn die Funktionf
fertig ausgeführt ist. Der von der Aktion vom Typentry
in ZustandB
angezeigte Wert hängt von der Zeit ab, die der Funktionsaufruf vonf
benötigt.
Versionsverlauf
Eingeführt in R2014b