Esecuzione di un grafico Stateflow
Quando un grafico Stateflow® si attiva, il grafico segue un workflow ed esegue delle azioni. Un grafico Stateflow si attiva:
A ciascun passo temporale
Quando il grafico Stateflow riceve un evento
Quando un grafico si attiva per la prima volta, il grafico viene inizializzato e diventa attivo, come descritto in Workflow for Entering a Chart or State. Nel momento in cui non sono più presenti azioni da eseguire, il grafico entra in modalità sleep finché un nuovo passo temporale o un nuovo evento non lo riattiva.
Workflow per l'esecuzione di un grafico Stateflow
Questo diagramma di flusso mostra la progressione degli eventi che Stateflow compie quando si esegue un grafico o uno stato. In questo diagramma di flusso, lo stato attuale si riferisce allo stato in cui avviene una decisione o un processo.
Transizioni predefinite
Una transizione predefinita è una transizione priva di sorgente. In un grafico Stateflow che non contiene stati, una transizione predefinita segna l'inizio di un diagramma di flusso. Per ulteriori informazioni, vedere Creazione di diagrammi di flusso in Stateflow.
Se un grafico Stateflow non contiene stati, il grafico valuta i percorsi della transizione predefinita ogni volta che si attiva. Dopo aver contrassegnato una transizione predefinita per la valutazione, il grafico segue i passaggi indicati in Workflow for Evaluating Transitions.
Nota
I grafici valutano i percorsi della transizione predefinita all'interno di uno stato solo durante l'entrata nello stato e non ogni volta che il grafico si attiva.
Transizione esterna
Una transizione esterna è una transizione che esce dallo stato sorgente. Un grafico Stateflow contrassegna le transizioni esterne per la valutazione come primo passaggio nell'esecuzione di uno stato. Dopo aver contrassegnato una transizione esterna per la valutazione, il grafico segue i passaggi indicati in Workflow for Evaluating Transitions.
Azioni during
Un'azione during
è un'azione definita nelle azioni di etichetta dello stato utilizzando il prefisso during
o du
. Per ulteriori informazioni, vedere Definizione delle azioni in uno stato.
Uno stato esegue azioni during
quando il grafico si attiva, lo stato è attivo e non sono presenti transizioni esterne valide.
Transizioni interne
Una transizione interna è una transizione che non esce dallo stato sorgente. Per ulteriori informazioni, vedere Control Chart Execution by Using Inner Transitions.
Un grafico Stateflow contrassegna la transizioni interne per la valutazione dopo che lo stato ha eseguito le azioni during
. Dopo aver contrassegnato una transizione interna per la valutazione, il grafico segue i passaggi indicati in Workflow for Evaluating Transitions.
Esecuzione del grafico con una transizione valida
In questo esempio, il grafico Stateflow è stato inizializzato e le azioni entry
sono state eseguite per StateA
e StateA1
. Si verifica quindi un nuovo passo temporale e il grafico si attiva.
In questo passo temporale, x = 5
, y = 2
e z = 0
.
Il grafico esegue questi passaggi:
Il grafico ha uno stato secondario attivo,
StateA
.StateA
presenta una transizione esterna suStateB
. Il grafico determina che la transizione è valida.Il grafico contrassegna
StateB
per l'entrata eStateA
viene contrassegnato per l'uscita.Per uscire da
StateA
, il grafico segue i passaggi mostrati in Workflow for Exiting a State.Per entrare in
StateB
, il grafico segue i passaggi mostrati in Workflow for Entering a Chart or State
Esecuzione del grafico senza una transizione valida
In questo esempio, il grafico Stateflow è stato inizializzato e le azioni entry
sono state eseguite per StateA
e StateA1
. Si verifica quindi un nuovo passo temporale e il grafico si attiva.
In questo passo temporale, x = 3
, y = 0
e z = 0
.
Il grafico esegue questi passaggi:
Il grafico ha uno stato secondario attivo,
StateA
.StateA
presenta una transizione esterna suStateB
. Il grafico determina che la transizione non è valida.Il grafico esegue le azioni
during
perStateA
. Oray = 1
.StateA
non presenta transizioni interne.Lo stato secondario attivo di
StateA
èStateA1
.StateA1
presenta una transizione esterna suStateA2
. Il grafico determina che la transizione non è valida.Il grafico esegue le azioni
during
perStateA1
. Orax = 4
.StateA1
non presenta stati secondari attivi.Il grafico entra in modalità sleep.