Skip to main content

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

  1. 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éé.

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

  3. Renommer PLC_PRG comme CoffeeMachine.

    _uml_img_sc_coffee_maker_create_app.png

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

_uml_img_sc_coffee_maker_design.png

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.

_uml_img_sc_coffee_maker.png

Pour ajouter une action à un état, cliquez sur l'un des _uml_icon_sc_action_entry.png, _uml_icon_sc_action_do.png, ou _uml_icon_sc_action_exit.pngsymboles. Pour ajouter une action à une transition, cliquez sur le _uml_icon_sc_transition_action.png symbole.