Cafetière
L'exemple d'application suivant illustre l'organigramme d'une machine à café. Il décrit complètement son flux de processus, déterminant le comportement de la machine au moment de l'exécution.
Voir l'exemple de projet UML_SC_CoffeeMachine.project
dans le sous-répertoire d'installation Projects
.
Créer une application avec un statechart
Dans CODESYS , créez un nouveau projet avec le Projet standard modèle. Pour PLC_PRG dans, sélectionnez le Diagramme d'état UML langage d'implémentation.
Le projet est créé.
Dans l'arborescence des appareils, cliquez sur le programme
PLC_PRG
.L'éditeur se compose d'une fenêtre pour la déclaration et d'une fenêtre pour l'implémentation graphique. Dans le Boîte à outils vue, les éléments sont répertoriés que vous pouvez utiliser pour créer un diagramme d'états.
Renommer
PLC_PRG
commeCoffeeMachine
.
Déclaration de variables pour les conditions de garde
L'entrée utilisateur est mappée à des variables booléennes qui sont généralement définies en externe par un utilisateur via une interface utilisateur. Lorsque vous affectez la variable en tant que condition de garde dans l'organigramme, la logique de flux devient commutable. Les variables jouent le rôle de variables de contrôle. Une visualisation en tant qu'interface utilisateur n'est pas décrite ici.
PROGRAM CoffeeMachine VAR bMakeCoffee : BOOL := FALSE; bShutDown : BOOL := FALSE; bPowerUp : BOOL := FALSE; END_VAR
Implémentation de la logique de flux en tant qu'organigramme
Tant qu'aucun café n'est distribué, la machine à café est dans l'état Idle
. La demande de faire du café fait sortir la machine de l'état de repos. Le brassage du café traverse les États Grind
, Boil
, Heat
, Foam
(lait) quasi-parallèle à l'état orthogonal CreateCoffee
. Ensuite, la boisson chaude est infusée et servie (Pour
). Ensuite, la machine revient à l'état de repos.
L'état de repos est atteint après la mise sous tension et la phase d'initialisation Init
. La machine est éteinte à partir de l'état de repos (Shutdown
).

L'état CreateCoffee
est un état orthogonal qui comprend plusieurs régions orthogonales. A l'exécution, les régions sont exécutées quasi-parallèlement selon leur priorité. Le diagramme d'états illustre le terme "état orthogonal".
Dans l'arborescence des appareils, double-cliquez sur le programme CoffeeMachine
pour ouvrir l'éditeur et créer le diagramme illustré ci-dessus.
Ajouter des méthodes et des actions
Lorsque vous avez implémenté la logique de flux sous la forme d'un diagramme d'états, vous ajoutez des fonctionnalités aux états et aux transitions. Ce faisant, vous ajoutez ENTRY
, DO
, et EXIT
actions ou méthodes pour les États. Vous pouvez également ajouter une action ou une méthode à une transition, qui est ensuite appelée une fois lors de la transition d'état.
Ci-dessous, vous voyez les actions qui doivent être insérées sous le bloc de fonction d'états-transitions (programme Cafetière) pour la machine à café dans l'arborescence des appareils. Le code répertorié ici n'est qu'un code d'espace réservé qui sera étendu ultérieurement pour évaluer les E/S mappées dans des variables, par exemple.
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;
Affectez ensuite les actions aux états et aux transitions comme suit.

Pour ajouter une action à un état, cliquez sur l'un des ,
, ou
symboles. Pour ajouter une action à une transition, cliquez sur le
symbole.