Skip to main content

Carta di stato

Un diagramma di stato è un formalismo grafico con il quale è possibile programmare graficamente una macchina a stati finiti. Una macchina a stati è un sistema che si trova continuamente in uno di un numero finito di stati in fase di esecuzione. Le azioni possono essere eseguite in ogni stato. Quando si verifica un evento, avviene una transizione allo stato successivo. Le azioni possono essere eseguite anche durante la transizione.

Nel CODESYS, un diagramma di stato è una POU creata nel Carta di stato linguaggio di attuazione. Questo tipo di POU è identificato dal _uml_icon_statechart.png simbolo nel POU visualizzare o Dispositivi Visualizza. È possibile creare programmi, blocchi funzione, funzioni, metodi, azioni o proprietà come diagrammi di stato. L'editor fornisce elementi per stati, pseudostati e transizioni.

Gli stati così come le transizioni possono chiamare metodi o azioni. Gli pseudo stati sono elementi di controllo utilizzati per controllare il processo, ma non chiamano azioni o metodi.

. Stati:
  • _uml_icon_sc_state.png: Stato

  • _uml_icon_fast_state.png: Stato veloce

  • _uml_icon_composite_state.png: Stato composito

. Pseudo afferma:
  • _uml_icon_start_state.png: Stato iniziale

  • _uml_icon_end_state.png: Stato finale

  • _uml_icon_fork_join.png: Fork/Unisciti

  • _uml_icon_choice.png: Scelta

. Transizioni:
  • _uml_icon_tool_transition.png: Transizione

  • _uml_icon_tool_transition_completion.png: Completamento della transizione

  • _uml_icon_tool_transition_exception.png: Transizione d'eccezione

Un diagramma di stato ha almeno due stati e due transizioni per passare all'altro stato.

La condizione di guardia di una transizione che risponde a un evento è un'espressione booleana o una variabile booleana. Viene visualizzato in caratteri normali e tra parentesi quadre accanto alla linea di transizione. Esempio sotto: [bPowerOn], [bPowerOff], [bDoIt], [bReady].

Un'azione di transazione è un'azione da eseguire non appena si verifica la condizione di guardia della transizione TRUE. Il nome dell'azione viene visualizzato in grassetto con // prima della linea di transizione.

Esempio sotto: //PowerUp //PowerDown TODO

Le transizioni hanno priorità che si applicano quando le condizioni di guardia di più transizioni in uscita dello stato attivo si applicano contemporaneamente. In questo caso, le priorità sono rappresentate nel diagramma da un simbolo numerico all'inizio della linea di transizione. Vedi l'esempio sotto allo stato Idle: (1) e (2).

Gli Stati possono avere un totale di tre tipi di azioni: ENTRY, DO, e EXIT. Per i dettagli su queste azioni, vedere la pagina della guida per il Stato elemento.

Esempio 1. Esempio

L'esempio mostra il diagramma di stato per una macchina semplice con i soliti tre stati: PowerOff, Idle, e DoIt. Quando si verifica un evento, il che significa che la condizione di guardia creata è soddisfatta, il sistema passa allo stato successivo. Ad esempio, la macchina passa allo stato di lavoro DoIt non appena la condizione di guardia bDoIt ottiene il valore TRUE.

Al termine di tutte le azioni, la macchina torna allo stato Idle ad aspettare il prossimo evento. La macchina può anche essere spenta (//PowerDown azione) ed è quindi nel PowerOff stato.

_uml_img_sc_simple.png