Hauptinhalt

before

Ausführung des Diagramms vor der Übertragung des Ereignisses oder zu einem bestimmten Zeitpunkt

Beschreibung

before(n,E) gibt true zurück, wenn das Ereignis E weniger als n Mal eingetreten ist, seit der zugehörige Zustand aktiv wurde. Anderenfalls gibt der Operator false zurück.

Beispiel

before(n,tick) gibt true zurück, wenn das Diagramm weniger als n Mal aktiviert wurde, seit der zugehörige Zustand aktiv 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.

Beispiel

before(n,time_unit) gibt true zurück, wenn seit dem Aktivieren des zugehörigen Zustands weniger als n Zeiteinheiten vergangen sind. Anderenfalls gibt der Operator false zurück.

Legen Sie time_unit als Sekunden (sec), Millisekunden (msec) oder Mikrosekunden (usec) fest. 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.

Beispiel

Hinweis

Der zeitliche Logikoperator before wird nur in Stateflow-Diagrammen in Simulink-Modellen unterstützt.

Beispiele

alle erweitern

Zeigt Sie eine Statusmeldung an, wenn das Diagramm die erste und zweite Übertragung des Ereignisses E verarbeitet, nachdem der Zustand aktiv wurde.

on before(3,E):
   disp("ON");

Stateflow chart that uses the before operator in a state.

Übergang aus dem assoziierten Zustand, wenn das Diagramm eine Übertragung des Ereignisses E verarbeitet, aber nur, wenn der Zustand für weniger als fünf Übertragungen von E aktiv war.

before(5,E)

Stateflow chart that uses the before operator in a transition.

Übergang aus dem assoziierten Zustand, wenn der Zustand für weniger als fünf Übertragungen des Ereignisses E aktiv war.

[before(5,E)]

Stateflow chart that uses the before operator in a transition.

Übergang aus dem assoziierten Zustand, wenn das Diagramm aktiviert wird, aber nur, wenn die Variable temp größer als 98,6 ist und das Diagramm seit Aktivierung des Zustands weniger als sieben Mal aktiviert wurde.

before(7,tick)[temp > 98.6]

Stateflow chart that uses the before operator in a transition.

Setzen Sie die Variable temp jedes Mal, wenn das Diagramm aktiviert wird, auf MED, aber nur, wenn der zugehörige Zustand weniger als 12,3 Sekunden lang aktiv war.

on before(12.3,sec):
   temp = MED;

Stateflow chart that uses the before operator in a state.

Tipps

  • Sie können Anführungszeichen für die Schlüsselwörter 'tick', 'sec', 'msec' und 'usec' verwenden. Zum Beispiel ist before(5,'tick') äquivalent zu before(5,tick).

  • Das Stateflow-Diagramm setzt den vom Operator before verwendeten Zähler immer dann zurück, wenn der zugeordnete Zustand erneut aktiviert wird.

Versionsverlauf

Eingeführt in R2014b