Contenuto principale

at

Eseguire il grafico alla trasmissione dell'evento o ad un tempo specificato

Descrizione

at(n,E) restituisce true se l'evento E si è verificato esattamente n volte da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.

esempio

at(n,tick) restituisce true se il grafico si è attivato esattamente n volte da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.

L'evento implicito tick non è supportato quando un grafico Stateflow® in un modello di Simulink® presenta eventi di input.

esempio

at(n,sec) restituisce true se sono trascorsi esattamente n secondi da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.

Nei grafici autonomi in MATLAB®, specificare n con un valore maggiore o uguale a 0.001. L'operatore crea un oggetto MATLAB timer che genera un evento implicito per attivare il grafico. Gli oggetti MATLAB timer sono caratterizzati da una precisione limitata a 1 millisecondo. Per ulteriori informazioni, vedere Events in Standalone Charts.

  • L'oggetto timer viene creato quando il grafico termina l'esecuzione delle azioni entry dello stato associato e dei relativi stati secondari. Se si specifica n come un'espressione il cui valore cambia durante l'esecuzione del grafico, il grafico non regola il ritardo temporale dell'oggetto timer.

  • L'oggetto timer inizia l'esecuzione alla fine del passo del grafico quando lo stato associato diventa attivo. Tale passo può includere l'esecuzione di altri stati paralleli nel grafico.

  • Se il grafico sta elaborando un'altra operazione quando riceve l'evento implicito dall'oggetto timer, il grafico mette in coda l'evento. Il grafico elabora l'evento quando il passo corrente è completato.

  • Se lo stato associato all'operatore logico temporale diventa inattivo prima che il grafico elabori l'evento implicito, l'evento non attiva il grafico.

Nota

La sintassi è supportata solo nei grafici autonomi in MATLAB. Per i grafici nei modelli di Simulink, utilizzare invece l'operatore after. Per ulteriori informazioni, vedere Do Not Use at for Absolute-Time Temporal Logic in Charts in Simulink Models.

esempio

Esempi

espandi tutto

Visualizzazione di un messaggio di stato quando il grafico elabora la terza trasmissione dell'evento E dopo che lo stato è diventato attivo.

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

Stateflow chart that uses the at operator in a state.

Transizione dallo stato associato quando il grafico elabora la quinta trasmissione dell'evento E dopo che lo stato è diventato attivo.

at(5,E)

Stateflow chart that uses the at operator in a transition.

Transizione dallo stato associato se lo stato è rimasto attivo esattamente per cinque trasmissioni dell'evento E.

Nei grafici in un modello di Simulink, inserire:

[at(5,E)]

Stateflow chart that uses the at operator in a transition.

La notazione condizionale per gli operatori logici temporali non è supportata nei grafici autonomi in MATLAB.

Transizione dallo stato associato quando il grafico si attiva per sette volte da quando lo stato è diventato attivo ma solo nel caso in cui la variabile temp è maggiore di 98,6.

at(7,tick)[temp > 98.6]

Stateflow chart that uses the at operator in a transition.

Impostare la variabile temp su HIGH se lo stato è rimasto attivo esattamente per 12,3 secondi.

Nei grafici autonomi in MATLAB, inserire:

on at(12.3,sec):
   temp = HIGH;

Stateflow chart that uses the at operator in a state.

L'utilizzo di every come operatore logico temporale a tempo assoluto non è supportato nei grafici nei modelli di Simulink.

Suggerimenti

  • È possibile utilizzare le virgolette per racchiudere le parole chiave 'tick' e 'sec'. Ad esempio, at(5,'tick') equivale a at(5,tick).

  • Il grafico Stateflow azzera il contatore utilizzato dall'operatore at ogni volta che lo stato associato si riattiva.

  • I grafici autonomi in MATLAB definiscono la logica temporale a tempo assoluto in termini di wall time, la cui precisione è limitata a 1 millisecondo.

Cronologia versioni

Introdotto in R2014b