Dessiner un diagramme d'états d'automate (PLC) — Mettre les états de la machine sur une seule page et compléter dans un tableau les combinaisons non dessinées
Dernière mise à jour: 2026-09-24 / Catégorie: Programmation d'automate, conception de la logique de commande
Un diagramme d'états montre sur une seule page dans quel état se trouve la machine entière, et quel bouton ou quel défaut la fait passer où. Ce guide s'adresse au concepteur de commande d'automate (PLC) qui ne veut pas que les combinaisons absentes de la spécification soient décidées par celui qui écrit le ladder.
On a rappuyé sur démarrage pendant que la machine tournait en automatique, et le flag de la première étape s'est levé une deuxième fois. La combinaison n'est pas dans le flux normal de l'organigramme, donc celui qui a écrit le ladder l'a décidée sur place. Un diagramme ne montre que les flèches auxquelles on a pensé. Les combinaisons non dessinées se remplissent, case par case, dans un tableau état × événement.
1. Le diagramme d'états ne contient que les états de la machine entière ; les étapes vont dans l'organigramme
Le diagramme montre les états de la machine entière. L'exemple en a 7 et ne montre pas « attente de pièce → transfert → bridage → prise », les étapes exécutées en marche. Les étapes vont dans l'Dessiner un organigramme de commande d'automate sous forme de numéros d'étape (10, 20, 30…) avec la condition pour passer à la suite. Mettez les étapes ici, et chaque événement possible de partout, comme un défaut ou une pause, réclame une flèche par étape.
Les deux pages sont reliées par le numéro d'étape. Un démarrage depuis En pause reprend l'étape interrompue ; après la prise d'origine, on commence à la première étape. Après le reset d'un défaut qui permet la reprise, on commence au début de l'étape interrompue.
Ce que Dessiner un organigramme de commande d'automate appelait « étape (état) » correspond à une étape dans cet article. Dès que les états se multiplient comme dans cet exemple, Attente de démarrage et Arrêt sur défaut passent dans ce diagramme ; la sortie défaut de l'organigramme n'a plus qu'à dire « vers Arrêt sur défaut ». Sur une machine où l'opérateur pose une pièce et appuie sur démarrage à chaque fois, supprimez la condition du flag d'arrêt de cycle et revenez à Attente de démarrage à la fin de chaque étape.
2. Les états sont ce qui dure ; les flèches sont ce qui arrive
- Nommez les états comme ce qui dure et les flèches comme ce qui arrive Les noms d'états sont des situations qui durent un moment : « en marche », « attente de ». Les noms de flèches sont des instants : « démarrage (appuyé) », « défaut (temps écoulé) ». Un état appelé « Démarrage » ne dit pas s'il désigne l'instant de l'appui ou la durée du mouvement.
- Séparez les états qui font quelque chose des états qui attendent Prise d'origine en cours (gris) passe de lui-même à Attente de démarrage quand son travail est fini. Attente de démarrage (blanc) attend qu'une personne appuie sur démarrage. La prise d'origine se termine quand la procédure atteint sa dernière étape (dans l'Organigramme de prise d'origine (exemple), celle qui met bHomeDone à ON).
- Tracez une flèche « de n'importe quel état » une seule fois, depuis un cadre Un défaut peut survenir depuis n'importe lequel des 5 états. Au lieu de 5 flèches, tracez-en une depuis un cadre entourant les 5 états autres qu'Arrêt sur défaut et Arrêt d'urgence vers Arrêt sur défaut. Dans un diagramme où toutes les flèches sont tracées, personne ne remarque qu'il en manque une.
- Dessinez par une flèche où la machine démarre à la mise sous tension Dans l'exemple, la flèche part du point noir de mise sous tension vers Origine non prise. Après une coupure de courant, des pièces restent en cours de cycle et la position des axes est incertaine. Mettez la variable d'état en mémoire rémanente, et une machine qui a perdu l'alimentation en marche redémarre sans que personne ait appuyé sur démarrage.
- Quand un même événement a deux flèches, rendez les conditions exclusives Le reset depuis Arrêt sur défaut a deux destinations : Attente de démarrage quand la reprise est permise (E01 et E02 de la Rédiger une spécification de commande), sinon Origine non prise. Si les deux conditions peuvent être vraies en même temps, la destination est décidée en silence par l'ordre d'écriture du programme.
- Gardez les modes sur un axe séparé et décidez, état par état, où mène un changement de mode L'exemple montre les états du mode automatique. Au passage en manuel, Origine non prise et Arrêt sur défaut permettent le mouvement manuel tels quels, tandis qu'Attente de démarrage passe à Origine non prise. Personne ne sait ce qui a été déplacé pendant le réglage, donc une prise d'origine revérifie tout avant le retour en automatique.
3. Remplissez dans un tableau état × événement les combinaisons non dessinées
Le diagramme a 14 flèches en plus de la mise sous tension. En tableau, cela fait 7 états × 10 événements, 70 cases, et recopier les flèches n'en remplit que 25. Les 45 autres n'apparaissent jamais dans le diagramme. Démarrage appuyé en Origine non prise, démarrage rappuyé En marche : chacune se décide case par case.
Une case contient l'une des cinq choses suivantes, et « refusé » n'est pas « impossible ». Une case refusée se vérifie à la réception en appuyant sur le bouton et en constatant qu'il ne se passe rien. Une case impossible ne se teste pas en appuyant ; si elle se produit, c'est une erreur de programme et la machine passe en Arrêt sur défaut.
- → nom d'état — Passer à cet état. Si cela dépend d'une condition, lister « condition → destination »
- Texte seul — Rester dans l'état et ne faire que ce qui est écrit (lever un flag, ajouter à l'historique, afficher un message)
- / — Refusé. Il ne se passe rien
- × — Impossible
- Vide — Pas encore décidé. Aucune ne doit rester à l'expédition
| Événement \ État | Origine non prise | Prise d'origine en cours | Attente de démarrage | En marche | En pause | Arrêt sur défaut | Arrêt d'urgence |
|---|---|---|---|---|---|---|---|
| Prise d'origine (bouton) | → Prise d'origine en cours | / | → Prise d'origine en cours | / | / | / | / |
| Prise d'origine terminée | × | → Attente de démarrage | × | × | × | × | × |
| Démarrage | Afficher « Prise d'origine non faite » | / | En position de reprise → En marche Pas en position → afficher « Pas en position de reprise » | / | → En marche (reprise de l'étape interrompue) | / | / |
| Pause | / | → Origine non prise (abandon de la prise d'origine) | / | → En pause | / | / | / |
| Arrêt de cycle | / | / | / | Lever le flag | Lever le flag | / | / |
| Fin d'une étape | × | × | × | Flag levé → Attente de démarrage Pas de flag → continuer d'attendre la pièce suivante | × | × | × |
| Défaut | → Arrêt sur défaut | → Arrêt sur défaut | → Arrêt sur défaut | → Arrêt sur défaut | → Arrêt sur défaut | Ajouter à l'historique un nouveau défaut d'un autre numéro (la reprise n'est plus permise) | Ajouter le nouveau défaut à l'historique |
| Reset | / | / | / | / | / | Cause encore présente → / Reprise permise → Attente de démarrage Sinon → Origine non prise | Avant réarmement → / Réarmé et puissance rétablie → Origine non prise Pas de puissance 3 s après réarmement → afficher « Puissance absente » |
| Arrêt d'urgence | → Arrêt d'urgence | → Arrêt d'urgence | → Arrêt d'urgence | → Arrêt d'urgence | → Arrêt d'urgence | → Arrêt d'urgence | / |
| Passage en manuel | Mouvement manuel permis | → Arrêt sur défaut | → Origine non prise | → Arrêt sur défaut | → Arrêt sur défaut | Mouvement manuel permis | Changer seulement le mode |
« Fin d'une étape » est une condition qui n'existe qu'En marche, pendant que la première étape (attente de pièce) attend la pièce suivante. Le démarrage depuis Attente de démarrage n'est accepté qu'en position d'origine pour la première étape, ou, en reprise, quand les conditions du début de l'étape interrompue sont réunies. Le flag d'arrêt de cycle est effacé à l'entrée en Attente de démarrage, Arrêt sur défaut ou Arrêt d'urgence. La ligne Défaut couvre E01 à E04 de la liste des défauts ; l'arrêt d'urgence (E05) a sa propre ligne.
Les cases sur lesquelles on hésite sont celles-ci.
- Démarrage En marche : / — Tenez l'état dans une seule variable et n'acceptez le démarrage qu'en Attente de démarrage ou En pause. Dans un ladder qui enchaîne des flags par étape avec SET / RST, le démarrage passe pendant que la machine bouge et l'on obtient le double démarrage du début. Décidée dans le tableau, la condition vit en un seul endroit : le circuit de démarrage
- Démarrage en Origine non prise : refusé avec un message — S'il ne se passe rien, l'opérateur rappuie sans arrêt et appelle la maintenance. Le démarrage en Arrêt sur défaut reste / : le défaut est déjà affiché et l'écran explique pourquoi rien ne bouge
- Reset tant que la cause est présente : / — Le signal de défaut revient tant que la cause dure. Refuser le reset garde le défaut à l'écran et dit à l'opérateur quoi corriger
- Pause pendant la prise d'origine : retour à Origine non prise — Décidez qu'une prise d'origine interrompue recommence depuis le début, et il n'y a rien à mémoriser. Reprendre une prise d'origine à mi-chemin oblige à se souvenir jusqu'où chaque axe est revenu
Faites le tableau dans Excel, donnez-lui un numéro de version et mettez-le dans la spécification. Une liste de validation des données « /,× » avec le message d'erreur désactivé permet quand même de taper « → Attente de démarrage ». Colorez en rouge les cases vides avec la mise en forme conditionnelle =ISBLANK(B2). Ajoutez un événement, et si vous n'ajoutez pas une ligne en remplissant ses 7 cases, le diagramme, le tableau et le ladder divergent.
4. Relevez les états et les événements, tracez les flèches normales, puis remplissez le tableau
- Listez les états Prenez-les dans les situations de marche que vous voulez sur les voyants du pupitre et à l'écran. Un état est quelque chose où l'on entre et d'où l'on sort par une action distincte : un bouton de l'opérateur, un défaut, la fin de la prise d'origine. Le transfert et le bridage, qui avancent sur des conditions de capteurs, sont des étapes et vont dans l'organigramme même si l'écran affiche « en transfert ».
- Relevez les événements Dans les boutons et commutateurs du pupitre, les fins de traitement, les conditions surveillées seulement En marche, et les défauts. Les défauts de la liste des défauts partagent une ligne ; seul l'arrêt d'urgence a la sienne. Les commandes qui font la même chose dans tous les états, comme l'arrêt du buzzer, restent hors du tableau.
- Tracez les flèches normales, et encadrez ce qui peut arriver de partout D'abord de la mise sous tension jusqu'à En marche, puis le chemin du retour après un arrêt. Défaut et arrêt d'urgence : une flèche chacun, depuis un cadre.
- Faites le tableau et remplissez les vides Recopiez les flèches du diagramme, puis remplissez les cases restantes avec /, × ou du texte. Laissez vides les cases que vous ne pouvez pas décider et notez à côté qui le peut (client, conception mécanique, sécurité).
5. Dans l'automate, tenez l'état dans une seule variable et changez-le au plus une fois par cycle
- Tenez l'état sous forme de numéro dans une seule variable Mettez le numéro d'état dans un seul entier. Avec un flag par état, rien dans la conception n'empêche que deux soient levés en même temps. Une variable non rémanente vaut 0 à la mise sous tension : donnez le numéro 0 à Origine non prise.
- Évaluez les transitions sur l'état du début de cycle, et changez-le au plus une fois par cycle Évaluez sur une copie de l'état prise en début de cycle. Écrit de haut en bas comme « si Attente de démarrage et démarrage alors En marche », un réseau plus bas voit l'En marche tout juste écrit et avance encore. Écrivez l'état suivant une seule fois, à la fin ; dans un CASE en ST, une seule branche s'exécute par cycle.
- Écrivez les transitions « de partout » après celles de chaque état Ordre : transitions par état → défaut → arrêt d'urgence. La dernière affectation l'emporte, donc si démarrage et arrêt d'urgence coïncident dans un même cycle, l'arrêt d'urgence gagne. Chaque flèche de cadre du diagramme est aussi un seul endroit dans le programme.
- Séparez les actions d'entrée des sorties continues Les actions d'entrée ne s'exécutent que dans le cycle où le numéro a changé. Enregistrez le numéro de défaut à l'entrée en Arrêt sur défaut à chaque cycle, et l'historique grossit d'une entrée par cycle. Les sorties qui ne dépendent que de l'état, comme les voyants et les affichages, sont une expression par sortie : « rouge = Arrêt sur défaut ou Arrêt d'urgence ».
- Un numéro impossible mène à Arrêt sur défaut Dans la branche ELSE, passez en Arrêt sur défaut et affichez le numéro à l'écran. Un ELSE vide, ou qui renvoie à Attente de démarrage, cache une écriture venue d'un autre circuit ou une faute de frappe. Même chose quand une case × du tableau se produit.
- Les boutons sont des événements à l'instant de l'appui ; l'arrêt d'urgence et les défauts se surveillent tant qu'ils durent Regardez les boutons pendant le seul cycle du front montant. Acceptez-les pendant tout le ON, et la machine démarre à l'instant où une pièce est posée avec démarrage maintenu. L'arrêt d'urgence et les défauts, c'est l'inverse : surveillez-les à chaque cycle tant qu'ils durent, pour qu'une mise sous tension bouton enfoncé passe quand même en Arrêt d'urgence.
6. Où l'on trébuche : le retour d'information de l'arrêt de cycle, le décompte de l'attente de pièce, le rôle de l'arrêt d'urgence
- Rien à l'écran après un appui sur arrêt de cycle — Tant que le flag est levé, affichez « Arrêt de cycle accepté ». Si l'on se contente de lever un flag et de rester En marche jusqu'à la fin de l'étape, l'opérateur ne sait pas si la machine est en train de s'arrêter ou si l'appui a été manqué
- Ne pas décider si l'attente de pièce compte comme marche — Convenez par écrit avec le client, avant la réception, des états qui comptent comme marche. Dans les usines qui calculent la disponibilité à partir des temps d'état, le chiffre change selon où va l'attente de pièce. L'exemple la compte En marche ; PackML distingue Held (raisons propres à la machine) et Suspended (raisons amont ou aval)
- Croire que l'Arrêt d'urgence est un état où c'est l'automate qui arrête — C'est le circuit de sécurité qui coupe la puissance ; l'automate ne fait que recevoir cette information. Essayez d'arrêter par la machine d'états de l'automate, et rien ne s'arrête quand l'automate lui-même s'arrête. Le travail de l'automate est de couper ses sorties de mouvement et ses automaintiens et de faire respecter l'ordre de reprise (Organigramme de reprise après arrêt d'urgence (exemple))
7. Les 58 cases qui ne sont pas × sont les points de l'essai de réception
Les 58 cases qui ne sont pas × sont les points d'essai. Pour une case →, vérifiez l'état de destination et l'action d'entrée ; pour une case /, appuyez sur le bouton et vérifiez qu'il ne se passe rien. Provoquez les défauts et les arrêts d'urgence depuis tous les états du cadre, pas seulement En marche. Un time-out pendant la prise d'origine et un arrêt d'urgence En pause sont les combinaisons le plus souvent oubliées.
Après les cases une à une, testez des enchaînements de deux commandes. Appuyez sur arrêt de cycle, puis pause, puis démarrage : le flag est-il toujours levé, et la machine s'arrête-t-elle en Attente de démarrage à la fin de l'étape ? Coupez et remettez l'alimentation En marche : démarre-t-elle en Origine non prise sans que rien ne bouge (ou en Arrêt d'urgence, si le relais de sécurité demande un réarmement manuel) ? Vérifier le tableau case par case ne trouve pas ces erreurs d'ordre.
L'éditeur pour l'organigramme des étapes
- Flowchart Editor — Dessine les étapes exécutées En marche (attente de pièce, transfert, bridage, prise) sous forme de numéros d'étape avec la condition pour passer à la suite. Il ne dessine pas le diagramme d'états lui-même.
Ni installation ni inscription : il fonctionne dans le navigateur.
Articles connexes
- Dessiner un organigramme de commande d'automate
- Rédiger une spécification de commande
- Dessiner un chronogramme
- Organigramme de reprise après arrêt d'urgence (exemple)
- Organigramme de prise d'origine (exemple)
- Structure des données JSON — Le format que lisent et écrivent les quatre éditeurs, avec schéma, validation et exemples
yk.builds