Skip to main content

Elemento: stato composito

Puoi usare questo elemento per raggruppare più stati insieme.

. Uno stato composito può essere ortogonale o non ortogonale.
  • Stato ortogonale: stato composito con due o più regioni. In uno stato ortogonale, gli stati interni sono raggruppati in regioni e le regioni hanno la priorità. Controllano l'ordine di elaborazione in fase di esecuzione. Gli stati delle regioni sono gestiti in pseudoparallelo secondo la loro sequenza interna.

  • Stato non ortogonale: stato composito con esattamente una regione. In uno stato non ortogonale, gli stati interni vengono eseguiti in sequenza in fase di esecuzione. Uno stato interno può anche essere uno stato composito. L'annidamento di stati non ortogonali può avere qualsiasi profondità, per cui nessuno degli stati può avere più regioni, ad eccezione dello stato più interno.

Gli stati ortogonali e non ortogonali possono anche chiamare an ISCRIZIONE azione, A FARE azione, e un USCITA azione. Quando è attiva una transizione di eccezione, il USCITA viene eseguita l'azione di ogni stato attivo di ciascuna regione dello stato ortogonale.

_uml_img_orthogonal_state.png

Il nome dello stato composto viene visualizzato nell'angolo superiore sinistro del rettangolo. Le regioni sono divise da una linea tratteggiata. La priorità della regione viene visualizzata nell'angolo superiore destro della regione.

Regole

. Regole
  • Non è consentita una transizione tra stati in regioni diverse.

  • Uno stato composito può avere una o più transizioni di eccezione in uscita. È possibile implementare la gestione degli errori in modo efficiente, ad esempio con una transizione di eccezione.

  • Uno stato composito ha al massimo una transizione di completamento. Pertanto ogni regione include uno stato iniziale e uno stato finale. Lo stato composito raggiunge il suo stato finale quando tutte le regioni hanno raggiunto il proprio stato finale. Se uno stato composito non ha una transizione di completamento in uscita, le regioni potrebbero non avere uno stato iniziale o uno stato finale.

  • Una transizione a uno stato all'interno di uno stato ortogonale è consentita solo da un fork ed è sempre incondizionata.

  • Uno stato non ortogonale può contenere un altro stato composito. In questo caso, gli stati sono annidati.

  • Uno stato composito non ortogonale può avere un assegnato ISCRIZIONE azione e/o FARE azione e/o USCITA azione.

Proprietà

Proprietà

Descrizione

Identificatore

Nome dello stato composto

Esempio: DoorAutomaton

Colore

Colore dell'elemento. È possibile modificare il colore utilizzando una finestra di dialogo di selezione del colore. Predefinito: giallo

Consenti azioni ENTRY / DO / EXIT

Requisito: lo stato composito selezionato ha esattamente uno regione.

Le azioni ENTRY, DO ed EXIT possono essere assegnate anche per i seguenti casi d'uso:

  • Stati compositi nidificati

  • Stati senza stati interni di inizio o fine

  • Stati senza completamento interno in uscita o transizioni di eccezione

_cds_icon_checked.png: Puoi assegnarne uno a ciascuno ENTRY, DO, e EXIT azioni allo Stato.

Eseguire azioni DO anche se gli stati compositi interni sono attivi

L'opzione è disponibile solo per lo stato composito più esterno ed è ereditata da quelli interni.

_cds_icon_checked.png: L'azione DO viene eseguita continuamente in runtime, anche se uno degli stati compositi interni è attivo contemporaneamente. Il {eseguito anche per compositi interni} note viene visualizzato nell'editor accanto all'azione DO per evidenziare questo comportamento dell'azione.

_cds_icon_option_deactivated.png: Non appena uno degli stati compositi interni è attivo, l'azione DO dello stato esterno si interrompe.

Input dell'utente

Azione

Descrizione

  1. Seleziona uno stato composito vuoto.

  2. Clicca il _uml_icon_transition_completion.png simbolo.

    Viene generata una transizione di completamento in uscita.

  3. 3. Fare clic su un elemento esistente (digitare: Stato, Stato composito, Forcella/Unisciti, o Scelta).

    Tra i due elementi viene inserita una transizione di completamento.

Nota: se non si fa clic su un elemento esistente, ma in un'area vuota, viene creato un nuovo stato.

Aggiungi un _uml_icon_transition_exception.png transizione di eccezione allo stesso modo.

  1. Sposta il puntatore del mouse su uno stato composito vuoto.

  2. Clicca il _uml_icon_sc_area_add.png simbolo.

    Lo stato viene suddiviso e viene aggiunta un'altra regione.

    _uml_state_orthogonal.png

La priorità è visualizzata a destra nella regione. Le regioni con una priorità più bassa vengono elaborate per prime. Puoi cambiare la priorità. CODESYS adatta automaticamente le priorità delle altre regioni.

  1. Seleziona uno stato composito con più regioni.

  2. Sposta la linea di separazione.

  3. Selezionare la linea di separazione facendo doppio clic su di essa.

    La linea viene visualizzata in blu.

  4. premi il Del chiave.

    La riga viene eliminata.

Dopo che la linea di separazione è stata eliminata, le due regioni (separate dal bordo) si uniscono in un'unica regione.

  1. Seleziona uno stato composito con più regioni.

  2. Fare clic sulla priorità in una regione due volte.

Ora è possibile modificare la priorità.

Quando la priorità viene modificata, le altre priorità vengono adattate automaticamente.

  1. Sposta il puntatore del mouse su uno stato composito vuoto.

    Vengono visualizzate le azioni dello stato.

    _uml_img_composite_state_with_acitvated_actions.png

  2. 2. 2. Fare clic su uno dei tre _uml_icon_actions_vertical.png simboli.

  3. Clicca il _uml_icon_sc_action_do.png simbolo.

    Lo stato è esteso da un'azione/metodo DO.

  4. Passa il cursore su uno stato con un'azione DO assegnata.

  5. Clicca il _uml_icon_sc_action_add.png simbolo.

    Il Nuovo oggetto azione si apre la finestra di dialogo.

  6. Seleziona il Azione oggetto.

  7. Specificare un nome e una lingua di implementazione.

    Viene inserita una nuova azione sotto la POU della carta di stato.

  8. Clicca il _uml_icon_sc_action_open.png simbolo.

    Si apre l'editor dell'azione o del metodo corrispondente.

Requisito: il Consenti azioni ENTRY / DO / EXIT la proprietà è selezionata.

L'oggetto azione può essere un'azione o un metodo. Se l'azione è un metodo, devi anche definire il tipo restituito e il tipo di accesso nel file Nuovo oggetto azione dialogo. L'assegnazione all'oggetto azione può essere modificata nelle proprietà dell'elemento.

Uno stato può avere un'azione ENTRY, un'azione DO e un'azione EXIT:

  • Un'azione/metodo ENTRY può inizializzare lo stato. Viene eseguito una volta quando tutte le transizioni in entrata sono impostate su TRUE.

  • L'azione/il metodo DO viene eseguito finché lo stato è attivo. L'azione può essere programmata in qualsiasi linguaggio di attuazione. Quando usi Carta di stato, viene creata una struttura gerarchica.

  • L'azione/metodo EXIT dovrebbe assicurarsi che lo stato sia terminato in uno stato valido. L'azione EXIT viene eseguita una volta quando lo sono tutte le transizioni in uscita dello stato TRUE.

Suggerimento

Puoi anche aggiungere o modificare le azioni oi metodi nelle proprietà dell'elemento.

Esempi

Esempio 22. Stato composito con transizione di eccezione e transizione di completamento
_uml_img_composite_state_example.png


Esempio 23. Stato composito senza transizione di completamento
_uml_img_composite_state_without_completion.png


Esempio 24. Stati compositi nidificati
_uml_img_nested_composite_states.png


Esempio 25. Stato ortogonale con forcella
_uml_img_fork_join_example.png


Esempio: ascensore ascensore

Esempio 26. Stato ortogonale con transizione di completamento e transizione di eccezione
_uml_img_orthogonal_state_lift.png