Main Content

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.

Flow chart that shows the steps for executing a chart or state.

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.

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

Il grafico esegue questi passaggi:

  1. Il grafico ha uno stato secondario attivo, StateA.

  2. StateA presenta una transizione esterna su StateB. Il grafico determina che la transizione è valida.

  3. Il grafico contrassegna StateB per l'entrata e StateA viene contrassegnato per l'uscita.

  4. Per uscire da StateA, il grafico segue i passaggi mostrati in Workflow for Exiting a State.

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

Stateflow chart with top-level states called StateA and StateB. StateA has substates StateA1 and StateA2. StateB has substates StateB1 and StateB2.

Il grafico esegue questi passaggi:

  1. Il grafico ha uno stato secondario attivo, StateA.

  2. StateA presenta una transizione esterna su StateB. Il grafico determina che la transizione non è valida.

  3. Il grafico esegue le azioni during per StateA. Ora y = 1.

  4. StateA non presenta transizioni interne.

  5. Lo stato secondario attivo di StateA è StateA1.

  6. StateA1 presenta una transizione esterna su StateA2. Il grafico determina che la transizione non è valida.

  7. Il grafico esegue le azioni during per StateA1. Ora x = 4.

  8. StateA1 non presenta stati secondari attivi.

  9. Il grafico entra in modalità sleep.

Argomenti complementari