Hauptinhalt

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

every

Ausführen eines Diagramms in regelmäßigen Intervallen

Beschreibung

every(n,E) gibt bei jedem n-ten Auftreten des Ereignisses E, seit der assoziierte Zustand aktiv wurde, true aus. Anderenfalls gibt der Operator false zurück.

Beispiel

every(n,tick) gibt bei jedem n-ten Aufwecken des Diagramms, seit der assoziierte Zustand aktiv wurde, true aus. 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

every(n,sec) gibt alle n Sekunden, seit der assoziierte Zustand aktiv wurde, true aus. Anderenfalls gibt der Operator false zurück.

Geben Sie bei eigenständigen Diagrammen in MATLAB® für n einen Wert größer gleich 0.001 ein. 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 Typ entry des zugeordneten Zustands und dessen untergeordneten Zuständen ausgeführt hat. Bei weiteren Iterationen wird das timer-Objekt zurückgesetzt, wenn das Diagramm die Ausführung der during-Aktionen des assoziierten Zustands und dessen Unterzuständen beendet. Wenn Sie n als Ausdruck angeben, dessen Wert sich während der Ausführung des Diagramms verändert, passt das Diagramm die Zeitverzögerung nur an, wenn das timer-Objekt zurückgesetzt wird.

  • 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. Wurde der aktuelle Schritt abgeschlossen, verarbeitet das Diagramm das Ereignis und setzt das Timer-Objekt für die nächste Iteration zurück.

  • 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.

Hinweis

Diese Syntax wird in MATLAB nur für eigenständige Diagramme unterstützt. Verwenden Sie für Diagramme von Simulink-Modellen stattdessen einen äußeren Selbstschleifen-Übergang mit dem after-Operator. Weitere Informationen finden Sie unter Vermeiden der Verwendung von every für die absolute zeitliche Logik in Diagrammen in Simulink-Modellen.

Beispiel

Beispiele

alle erweitern

Zeigt eine Statusmeldung nach jeder dritten Verarbeitung einer Übertragung des Ereignisses E durch das Diagramm an, seit der Zustand aktiv wurde.

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

Stateflow chart that uses the every operator in a state.

Verlässt den assoziierten Zustand nach jeder fünften Verarbeitung einer Übertragung des Ereignisses E durch das Diagramm, seit der Zustand aktiv wurde.

every(5,E)

Stateflow chart that uses the every operator in a transition.

Verlässt den assoziierten Zustand nach jedem siebten tick-Ereignis, seit der Zustand aktiv wurde, jedoch nur, wenn die Variable temp größer als 98,6 ist.

every(7,tick)[temp > 98.6]

Stateflow chart that uses the every operator in a transition.

Inkrementiert die Variable temp alle 12,3 Sekunden, die der Zustand aktiv ist, um 5.

Geben Sie bei eigenständigen Diagrammen in MATLAB Folgendes ein:

on every(12.3,sec):
   temp = temp+5;

Stateflow chart that uses the every operator in a state.

Die Verwendung von every als Operator für Absolutzeit-basierte temporale Logik wird bei Diagrammen in Simulink-Modellen nicht unterstützt.

Tipps

  • Sie können die Schlüsselwörter 'tick' und 'sec' in Anführungszeichen setzen. Zum Beispiel ist every(5,'tick') äquivalent zu every(5,tick).

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

  • 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.

Versionsverlauf

Eingeführt in R2014b