Macchina per il caffè
Il seguente esempio applicativo illustra il diagramma di stato di una macchina da caffè. Descrive completamente il flusso del processo, determinando il comportamento della macchina in fase di esecuzione.
Guarda il progetto di esempio UML_SC_CoffeeMachine.project
nella sottodirectory di installazione Projects
.
Creazione di un'applicazione con un diagramma di stato
Nel CODESYS , crea un nuovo progetto con il Progetto standard modello. Per PLC_PRG in, seleziona il Carta di stato UML linguaggio di attuazione.
Il progetto è creato.
Nella struttura dei dispositivi, fare clic sul programma
PLC_PRG
.L'editor è composto da una finestra per la dichiarazione e da una finestra per l'implementazione grafica. Nel Cassetta degli attrezzi view, vengono elencati gli elementi che puoi utilizzare per creare un diagramma di stato.
Rinominare
PLC_PRG
comeCoffeeMachine
.
Dichiarazione di variabili per condizioni di guardia
L'input dell'utente è mappato su variabili booleane che di solito sono impostate esternamente da un utente tramite un'interfaccia utente. Quando si assegna la variabile come condizione di guardia nel diagramma di stato, la logica di flusso diventa commutabile. Le variabili agiscono come variabili di controllo. Una visualizzazione come interfaccia utente non è descritta qui.
PROGRAM CoffeeMachine VAR bMakeCoffee : BOOL := FALSE; bShutDown : BOOL := FALSE; bPowerUp : BOOL := FALSE; END_VAR
Implementazione della logica di flusso come diagramma di stato
Finché non viene preparato il caffè, la macchina del caffè è nello stato Idle
. La richiesta di fare il caffè fa uscire la macchina dallo stato di riposo. La produzione del caffè attraversa gli stati Grind
, Boil
, Heat
, Foam
(latte) quasi parallelo nello stato ortogonale CreateCoffee
. Quindi la bevanda calda viene preparata e servita (Pour
). Quindi la macchina torna allo stato di riposo.
Lo stato di riposo viene raggiunto dopo l'accensione e la fase di inizializzazione Init
. La macchina è spenta dallo stato di riposo (Shutdown
).

Lo stato CreateCoffee
è uno stato ortogonale che comprende più regioni ortogonali. In fase di esecuzione, le regioni vengono eseguite in modo quasi parallelo in base alla loro priorità. La carta di stato illustra il termine "stato ortogonale".
Nella struttura dei dispositivi, fare doppio clic sul programma CoffeeMachine
per aprire l'editor e creare il diagramma sopra illustrato.
Aggiunta di metodi e azioni
Quando hai implementato la logica di flusso come diagramma di stato, aggiungi funzionalità agli stati e alle transizioni. Così facendo, aggiungi ENTRY
, DO
, e EXIT
azioni o metodi per gli Stati. Puoi anche aggiungere un'azione o un metodo a una transizione, che viene quindi chiamata una volta alla transizione di stato.
Di seguito vengono visualizzate le azioni che devono essere inserite sotto il blocco funzione diagramma di stato (programma Macchina per il caffè) per la macchina da caffè nell'albero dei dispositivi. Il codice qui elencato è solo codice segnaposto che verrà esteso in seguito per valutare gli I/O mappati nelle variabili, ad esempio.
ActGrind
nGrind := nGrind + 10;
ActFoam
nFoam := nFoam + 5;;
ActFoam
nFoam := nFoam + 5;;
ActHeat
nFoam := nFoam + 5;;
ActShutdown
bShutDown := FALSE; bPowerUp := FALSE;
CoffeeReady
bMakeCoffee := FALSE; iGrind := 0; iHeat := 20; iFoam := 0;
Quindi assegnare le azioni agli stati e alle transizioni come segue.

Per aggiungere un'azione a uno stato, fare clic su uno dei ,
, o
simboli. Per aggiungere un'azione a una transizione, fare clic su
simbolo.