GrafcetMaker Ouvrir l’éditeur

Le GRAFCET : cours complet sur la norme IEC 60848

Mis à jour le

Le GRAFCET est un langage graphique qui décrit le comportement d'un système de commande séquentiel : une machine, une ligne de production, un feu tricolore. Un grafcet est une suite d'étapes (ce que fait le système) reliées par des transitions (les conditions pour passer à la suite). Il est normalisé au niveau international sous la référence IEC 60848 (en France NF EN 60848) et il est à l'origine du langage SFC des automates programmables.

Ce cours présente tous les éléments et toutes les règles de la norme, avec des schémas et des exemples. Tous les schémas ont été dessinés avec GrafcetMaker, un éditeur et simulateur de GRAFCET gratuit qui fonctionne dans le navigateur : ouvrez les exemples et regardez-les évoluer pas à pas.

Que signifie GRAFCET ?

GRAFCET signifie GRAphe Fonctionnel de Commande Étape-Transition. Il a été proposé en 1977 par un groupe de travail de l'AFCET (Association française pour la cybernétique économique et technique) avec l'ADEPA (Agence nationale pour le développement de la production automatisée). Inspiré des réseaux de Petri, il devait permettre d'écrire clairement, indépendamment de la technologie, ce qu'un système de commande doit faire, avant d'écrire la moindre ligne de programme.

  • 1982 : norme française NF C03-190.
  • 1988 : norme internationale IEC 848, Établissement des diagrammes fonctionnels pour systèmes de commande.
  • 2002 : IEC 60848 deuxième édition, Langage de spécification GRAFCET pour diagrammes fonctionnels en séquence.
  • 2013 : IEC 60848 troisième édition, l'édition en vigueur, reprise en Europe sous la référence EN 60848.

Le GRAFCET est enseigné au lycée technique (STI2D, bac pro MELEC et MSPC), en BTS (CRSA, CIRA, Électrotechnique), en IUT et en école d'ingénieurs, ainsi que dans de nombreux pays francophones, germanophones, hispanophones et lusophones. Par convention, le GRAFCET est le langage et un grafcet est un diagramme écrit dans ce langage.

Les éléments d'un grafcet

Les éléments d'un grafcet étape initiale transition + réceptivité étape et son action retour (flèche vers le haut) dcy arret 0 1 Moteur
Les éléments d'un grafcet
  • Une étape est un carré numéroté. Elle représente une situation stable du système : attente, remplissage, perçage. À chaque instant, une étape est active ou inactive ; l'ensemble des étapes actives forme la situation du grafcet. La variable d'étape X1 est vraie tant que l'étape 1 est active.
  • Une étape initiale, dessinée par un double carré, est active au démarrage. Tout grafcet en possède au moins une.
  • Une transition est un petit trait horizontal qui coupe une liaison. Elle se trouve toujours entre des étapes : deux étapes ne sont jamais reliées directement, deux transitions non plus.
  • La réceptivité est la condition écrite à côté d'une transition, par exemple dcy ou pression > 6. La réceptivité 1 est toujours vraie.
  • Les liaisons orientées relient étapes et transitions. Elles se lisent de haut en bas ; une liaison qui remonte porte une flèche.
  • Les actions sont des rectangles à droite d'une étape : ce que fait le système tant que l'étape est active, par exemple faire tourner le moteur.

Les cinq règles d'évolution

La norme IEC 60848 définit précisément l'évolution d'un grafcet par cinq règles.

  1. Situation initiale : au démarrage, les étapes initiales sont actives et toutes les autres inactives.
  2. Franchissement d'une transition : une transition est validée lorsque toutes les étapes immédiatement en amont sont actives. Elle est franchie lorsqu'elle est validée et que sa réceptivité est vraie.
  3. Évolution des étapes actives : le franchissement d'une transition active toutes les étapes immédiatement en aval et désactive toutes les étapes immédiatement en amont.
  4. Évolutions simultanées : toutes les transitions franchissables au même instant sont franchies simultanément.
  5. Activation et désactivation simultanées : une étape à la fois activée et désactivée reste active.

Lorsqu'une entrée change, les règles sont appliquées de nouveau, avec les mêmes entrées, jusqu'à ce qu'aucune transition ne soit plus franchissable : c'est la recherche de stabilité. Une étape activée puis désactivée au cours de cette recherche est une étape instable (évolution fugace) : ses actions continues ne sont pas exécutées, mais ses actions mémorisées le sont. Par exemple, si les réceptivités sous les étapes 1 et 2 sont déjà vraies quand l'étape 1 s'active, le grafcet traverse l'étape 2 jusqu'à l'étape 3 et les sorties de l'étape 2 ne s'allument jamais.

Les réceptivités : conditions, fronts et temporisations

Une réceptivité est une expression logique sur les entrées, les variables internes, les variables d'étape et le temps. Notation usuelle et saisie dans GrafcetMaker :

NotationSignificationSaisie dans GrafcetMaker
a · ba ET ba * b
a + ba OU ba + b
a surlignéNON a (complément)/a
↑afront montant : vrai à l'instant où a devient vrai↑a ou RE a
↓afront descendant : vrai à l'instant où a devient faux↓a ou FE a
X3l'étape 3 est activeX3
5 s/X2vrai 5 s après l'activation de l'étape 25s/X2
t1/a/t2vrai t1 après que a devient vrai, faux t2 après que a devient faux2s/a/1s
[niveau > 80]comparaison d'une valeur numériqueniveau > 80
= 1toujours vrai1
Une temporisation : le chauffage fonctionne pendant 5 secondes ↑dcy 5s/X1 0 1 Chauffage
Une temporisation : le chauffage fonctionne pendant 5 secondes

Les fronts sont utiles lorsqu'un signal reste vrai : avec ↑dcy, le cycle démarre une fois par appui sur le bouton et pas une seconde fois tant qu'il reste enfoncé. La syntaxe complète de l'éditeur est décrite dans l'aide Writing receptivities (en anglais).

Les actions

Actions continue, conditionnelle et mémorisées sur l'étape 4 4 Lampe Klaxon alarme C := C + 1 C := 0 ↑raz
Actions continue, conditionnelle et mémorisées sur l'étape 4
  • Une action continue est vraie tant que son étape est active : Lampe est allumée tant que l'étape 4 est active.
  • Une action conditionnelle est une action continue avec une condition d'assignation écrite au-dessus de son rectangle : Klaxon sonne seulement si l'étape 4 est active et que alarme est vraie.
  • Les actions retardées et limitées dans le temps sont des actions conditionnelles dont la condition contient une temporisation : avec 3s/X4, la sortie s'active 3 s après l'activation de l'étape 4 ; avec /(3s/X4), elle n'est active que pendant les 3 premières secondes.
  • Une action mémorisée affecte une valeur une seule fois, et la valeur reste jusqu'à ce qu'une autre action la modifie. Elle s'exécute à l'activation de l'étape (flèche vers le haut), à sa désactivation (flèche vers le bas) ou sur événement pendant que l'étape est active (un fanion avec l'événement, ici ↑raz). Les compteurs comme C := C + 1 sont des actions mémorisées typiques.

Une sortie pilotée par des actions continues suit les étapes automatiquement. Une sortie mise à 1 par une action mémorisée le reste jusqu'à ce qu'une autre action mémorisée la remette à 0 : prévoyez où cela se produit.

Séquences, aiguillages et parallélisme

Choisir un chemin : la divergence en OU

Lorsqu'une étape est suivie de plusieurs transitions, le grafcet prend le chemin dont la réceptivité est vraie : c'est un aiguillage ou sélection de séquence, dessiné avec un simple trait horizontal (divergence en OU). Les chemins se rejoignent sur un simple trait (convergence en OU).

Divergence et convergence en OU : une branche ou l'autre a a·b c d 0 1 Gauche 2 Droite 3
Divergence et convergence en OU : une branche ou l'autre

Rendez les réceptivités exclusives, c'est-à-dire jamais vraies en même temps, comme a et /a * b ici. Sinon, les deux transitions sont franchies ensemble (règle 4) et les deux branches deviennent actives. GrafcetMaker vous avertit lorsqu'il ne peut pas prouver que des réceptivités en OU sont exclusives.

Faire plusieurs choses en même temps : la divergence en ET

Lorsqu'une transition est suivie de plusieurs étapes, elles sont toutes activées ensemble : ce sont des séquences simultanées (parallélisme), dessinées avec un double trait (divergence en ET). Les branches se terminent aussi sur un double trait (convergence en ET) : la transition située dessous n'est validée que lorsque la dernière étape de chaque branche est active. Elle attend donc la fin de toutes les branches : c'est la synchronisation.

Divergence et convergence en ET : percer et serrer en même temps dcy fin1·fin2 0 1 Percer 2 Serrer 3
Divergence et convergence en ET : percer et serrer en même temps

Reprises, sauts, transitions source et puits

  • Une reprise de séquence (boucle) revient à une étape précédente par une liaison qui remonte, avec une flèche : c'est la façon habituelle de répéter un cycle.
  • Un saut d'étapes est une divergence en OU dont une branche mène directement à une étape plus loin, par exemple pour sauter une opération facultative.
  • Une transition source n'a pas d'étape en amont. Elle est toujours validée et donc franchie chaque fois que sa réceptivité est vraie ; utilisez un front comme ↑a.
  • Une transition puits n'a pas d'étape en aval : son franchissement désactive seulement les étapes en amont.

Structurer une application

Les machines réelles sont décrites par plusieurs grafcets qui fonctionnent ensemble.

  • Les grafcets partiels décrivent chacun une partie du système, par exemple le cycle de production, les modes de marche et d'arrêt (GEMMA) et la sécurité. Ils évoluent en même temps et voient les étapes des autres grâce aux variables d'étape Xn. Ensemble, ils forment le grafcet global.
  • Une macro-étape représente une séquence détaillée dessinée à part, son expansion. L'expansion possède une étape d'entrée E et une étape de sortie S. Le franchissement de la transition au-dessus de la macro-étape active l'étape E ; la transition sous la macro-étape est validée lorsque l'étape S est active.
  • Une étape encapsulante contient un ou plusieurs grafcets complets qui n'existent que tant qu'elle est active. À son activation, les étapes encapsulées marquées d'un astérisque deviennent actives ; à sa désactivation, toutes les étapes encapsulées sont désactivées.
  • Un ordre de forçage, dessiné dans un rectangle d'action à double cadre, impose une situation à un autre grafcet : G2{8} force G2 avec la seule étape 8 active, G2{*} fige G2 dans sa situation courante et G2{} désactive toutes ses étapes. Un grafcet forcé ne peut pas évoluer de lui-même. Le forçage est la manière normalisée de décrire l'arrêt d'urgence et l'initialisation.
Une macro-étape : deux traits horizontaux dans le carré macro-étape : son expansion est dessinée à part dcy fin 0 10
Une macro-étape : deux traits horizontaux dans le carré

GRAFCET et SFC

Le langage SFC (Sequential Function Chart) de la norme IEC 61131-3 est dérivé du GRAFCET et lui ressemble beaucoup, mais les deux n'ont pas le même rôle.

GRAFCET (IEC 60848)SFC (IEC 61131-3)
RôleSpécification : le comportement attendu, indépendamment de la technologieLangage de programmation exécuté par l'automate
ÉvolutionToutes les transitions franchissables à la fois, puis recherche de stabilitéEn général une évolution par cycle automate, selon le modèle
ActionsContinues, conditionnelles, retardées, limitées dans le temps, mémoriséesQualificatifs N, S, R, P, P0, P1, L, D, SD, DS et SL
HiérarchieGrafcets partiels, macro-étapes, étapes encapsulantes, ordres de forçagePar la structure du programme

En pratique, on écrit et on vérifie d'abord le GRAFCET, puis on le traduit en SFC, en ladder (LD) ou en texte structuré (ST). GrafcetMaker génère du texte structuré et du PLCopen TC6 XML à partir d'un grafcet, comme point de départ ; relisez toujours le code généré avant de l'utiliser.

Exemples

Feu tricolore avec bouton piéton

Feu tricolore : temporisations et demande mémorisée 10s/X0 30s/X1 + Req·10s/X1 3s/X2 0 Pedestrians cross Red Walk Req := 0 1 Cars drive Green Req := 1 ↑request 2 Cars slow down Yellow
Feu tricolore : temporisations et demande mémorisée Ouvrir cet exemple dans l’éditeur

L'étape 0 donne le vert aux piétons pendant 10 s (10s/X0), puis l'étape 1 laisse passer les voitures. Elles gardent le vert pendant 30 s, mais un appui sur le bouton piéton réduit ce temps à 10 s : l'appui est mémorisé par une action sur l'événement ↑request et oublié quand l'étape 0 redevient active. L'étape 2 allume l'orange pendant 3 s. (Les variables de l'exemple sont en anglais.)

Poste de perçage avec compteur de pièces

Poste de perçage : cycle d'usinage et maintenance toutes les 100 pièces ↑start·part clamped low high released·(Count < 100) released·(Count ≥ 100) ↑ack 0 Waiting 1 Clamping Clamp := 1 2 Drilling Spin Down 3 Retracting Spin Up 4 Unclamping Clamp := 0 Count := Count + 1 5 Maintenance Service Count := 0
Poste de perçage : cycle d'usinage et maintenance toutes les 100 pièces Ouvrir cet exemple dans l’éditeur

Un cycle d'usinage : serrer la pièce, descendre le foret, remonter, desserrer. Le serrage est mis à 1 et à 0 par des actions mémorisées, et l'étape 4 compte les pièces. Après l'étape 4, une divergence en OU aux réceptivités exclusives revient au départ, ou passe en maintenance toutes les 100 pièces.

L'éditeur propose deux autres exemples, un remplissage de cuve avec des entrées numériques et un convoyeur en parallèle avec un grafcet de sécurité qui force la ligne : ouvrez-les depuis l'écran d'accueil de GrafcetMaker.

Dessiner et simuler un GRAFCET en ligne

GrafcetMaker est un éditeur de GRAFCET gratuit et open source, conçu pour les automaticiens, les enseignants et les élèves. Il fonctionne entièrement dans le navigateur, hors ligne et sans compte ; vos grafcets restent sur votre ordinateur.

  • Dessinez étapes, transitions, actions et branches à la souris ou au clavier, avec une mise en page automatique.
  • Écrivez les réceptivités avec l'autocomplétion et une table des variables, et obtenez des erreurs claires avec des corrections rapides.
  • Simulez selon les règles de l'IEC 60848 : étapes actives, temporisations, fronts, étapes instables, forçage et chronogramme de toutes les variables.
  • Structurez vos projets avec des grafcets partiels, des macro-étapes, des étapes encapsulantes et des ordres de forçage.
  • Exportez en PDF avec cartouche, en SVG et PNG, ou en texte structuré et PLCopen TC6 XML, et partagez un projet complet par un simple lien.

L'interface de l'éditeur est en anglais ; les grafcets, eux, s'écrivent dans votre langue.

Ouvrir l'éditeur de GRAFCET gratuit

Questions fréquentes

À quoi sert le GRAFCET ?

À spécifier le comportement des systèmes automatisés séquentiels : machines, lignes d'assemblage, conditionnement, procédés par lots, ascenseurs, feux de circulation. Le grafcet est la référence commune de ceux qui conçoivent la machine, programment l'automate et la mettent en service.

Le GRAFCET et le SFC, est-ce la même chose ?

Non. Le SFC (IEC 61131-3) est dérivé du GRAFCET et utilise les mêmes symboles, mais le GRAFCET est un langage de spécification aux règles d'évolution précises, alors que le SFC est un langage de programmation dont l'exécution dépend de l'automate. Voir GRAFCET et SFC.

Quelle est la différence entre une étape et une transition ?

Une étape est une situation qui dure (le système remplit la cuve) ; une transition est l'instant où le système passe d'une situation à la suivante, quand sa réceptivité devient vraie (la cuve est pleine).

Que signifie X1 ?

X1 est la variable d'étape de l'étape 1 : elle est vraie tant que l'étape 1 est active. On l'utilise dans les réceptivités, dans les conditions d'actions et dans les autres grafcets, par exemple 5s/X1 ou X1 * /X5.

Qu'est-ce qu'une étape instable ?

Une étape activée puis désactivée au cours d'une même recherche de stabilité, parce que la réceptivité située dessous était déjà vraie. Ses actions continues ne sont pas exécutées ; ses actions mémorisées le sont.

Comment traduire un GRAFCET en programme automate ?

Chaque étape devient un bit mémoire, chaque transition une condition qui active les étapes en aval et désactive les étapes en amont, et les sorties sont écrites à partir des bits d'étape. Vous pouvez le faire à la main en ladder ou en texte structuré, utiliser le langage SFC de votre automate, ou laisser GrafcetMaker générer du texte structuré ou du PLCopen XML comme point de départ.

Existe-t-il un logiciel GRAFCET gratuit ?

Oui : GrafcetMaker est gratuit et open source (licence MIT). Il fonctionne dans tout navigateur récent sous Windows, macOS, Linux, sur tablette et sur téléphone, et les entreprises peuvent l'héberger sur leur propre réseau.