Contenuto principale

every

Eseguire il grafico a intervalli regolari

Descrizione

every(n,E) restituisce true ad ogni n-esima occorrenza dell'evento E da quando lo stato associato è diventato attivo. Altrimenti, l'operatore restituisce false.

esempio

every(n,tick) restituisce true ogni n-esima volta che il grafico si attiva 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

every(n,sec) restituisce true ogni n-esimi 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. Per le iterazioni successive, timer viene reimpostato quando il grafico termina l'esecuzione delle azioni during 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 regola il ritardo temporale solo quando l'oggetto timer viene reimpostato.

  • 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. Una volta completato il passo attuale, il grafico elabora l'evento e reimposta l'oggetto timer per l'iterazione successiva.

  • 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. Nei grafici nei modelli di Simulink, utilizzare invece una transizione auto-loop esterna con l'operatore after. Per ulteriori informazioni, vedere Do Not Use every for Absolute-Time Temporal Logic in Charts in Simulink Models.

esempio

Esempi

espandi tutto

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

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

Stateflow chart that uses the every operator in a state.

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

every(5,E)

Stateflow chart that uses the every operator in a transition.

Transizione dallo stato associato ogni settimo evento tick da quando lo stato è diventato attivo, ma solo nel caso in cui la variabile temp è maggiore di 98,6.

every(7,tick)[temp > 98.6]

Stateflow chart that uses the every operator in a transition.

Incrementare la variabile temp di 5 ogni 12,3 secondi in cui lo stato è attivo.

Nei grafici autonomi in MATLAB, inserire:

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

Stateflow chart that uses the every 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, every(5,'tick') equivale a every(5,tick).

  • Il grafico Stateflow azzera il contatore utilizzato dall'operatore every 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