- introduction

Le Grafcet est un outil graphique de définition pour l'automatisme séquentiel, en tout ou rien. Mais il est également utilisé dans beaucoup de cas combinatoires, dans le cas où il y a une séquence à respecter mais où l'état des capteurs suffirait pour résoudre le problème en combinatoire. Il utilise une représentation graphique. C'est un langage clair, strict mais sans ambiguïté, permettant par exemple au réalisateur de montrer au donneur d'ordre comment il a compris le cahier des charges. Langage universel, indépendant (dans un premier temps) de la réalisation pratique (peut se "câbler" par séquenceurs, être programmé sur automate voire sur ordinateur).

Ce document précise le langage Grafcet. Vous n'y trouverez pas d'exemples simples (qui font pourtant partie de la majorité des applications réelles), il y en a un tas à l'université de BREST.

Voici d'autres liens importants sur le Grafcet :

  • site de Ilian Bonev, de l'Ecole de technologie supérieure de Montréal (voir ses notes de cours)
  • un serveur Québecois extraordinaire : DSC
  • le serveur "officiel" du Grafcet (AFCET, au LURPA à Cachan)
  • un autre cours, par Emmanuel Geveaux

Remarque : le Grafcet est un langage d'origine française, et certains pays pensent que ce qu'ils n'ont pas inventé ne peut pas être de haut niveau. Regardez ce très bon site expliquant comment on programme un automate sans Grafcet.

2 - définitions

Un Grafcet est composé d'étapes, de transitions et de liaisons.
Une LIAISON est un arc orienté (ne peut être parcouru que dans un sens). A une extrémité d'une liaison il y a UNE (et une seule) étape, à l'autre UNE transition. On la représente par un trait plein rectiligne, vertical ou horizontal. Une verticale est parcourue de haut en bas, sinon il faut le préciser par une flèche. Une horizontale est parcourue de gauche à droite, sinon le préciser par une flèche.


liaisons orientées


Une ETAPE correspond à une phase durant laquelle on effectue une ACTION pendant une certaine DUREE (même faible mais jamais nulle). L'action doit être stable, c'est à dire que l'on fait la même chose pendant toute la durée de l'étape, mais la notion d'action est assez large, en particulier composition de plusieurs actions, ou à l'opposé l'inaction (étape dite d'attente).
On représente chaque étape par un carré, l'action est représentée dans un rectangle à gauche, l'entrée se fait par le haut et la sortie par le bas. On numérote chaque étape par un entier positif, mais pas nécessairement croissant par pas de 1, il faut simplement que jamais deux étapes différentes n'aient le même numéro.


étape


Si plusieurs liaisons arrivent sur une étape, pour plus de clarté on les fait arriver sur une barre horizontale, de même pour plusieurs liaisons partant de l'étape. Cette barre horizontale n'est pas une nouvelle entité du Grafcet, elle fait partie de l'étape, et ne représente qu'un "agrandissement" de la face supérieure (ou inférieure) de l'étape. On accepte de remplacer cette barre par un point si cela ne crée aucune ambiguïté.


ou


Une étape est dite active lorsqu'elle correspond à une phase "en fonctionnement", c'est à dire qu'elle effectue l'action qui lui est associée. On représente quelquefois une étape active à un instant donné en dessinant un point à l'intérieur.
Une TRANSITION est une condition de passage d'une étape à une autre. Elle n'est que logique (dans son sens Vrai ou Faux), sans notion de durée. La condition est définie par une RECEPTIVITE qui est généralement une expression booléenne (c.à.d avec des ET et des OU) de l'état des CAPTEURS.
On représente une transition par un petit trait horizontal sur une liaison verticale. On note à droite la réceptivité, on peut noter à gauche un numéro de transition (entier positif, indépendant des numéros d'étapes). Dans le cas de plusieurs liaisons arrivant sur une transition, on les fait converger sur une grande double barre horizontale, qui n'est qu'une représentation du dessus de la transition. De même pour plusieurs liaisons partant sous une transition.


transition

 

3 - exemple simple

Supposons un chariot pouvant avancer (A) ou reculer (R) sur un rail limité par deux capteurs G et D, Un cahier des charges pourrait être : Quand on appuie sur le bouton DEPART, on avance jusqu'en D, puis on revient. Ce C.d.C. est incomplet et imprécis. La réalisation du Grafcet permet de remarquer : Que fait-on avant l'appui de DEPART, jusqu'où revient-on, quelles sont les conditions initiales ? On réécrit le C.d.C. en 3 phases : Attendre jusqu'à l'appui de DEPART, avancer jusqu'en D, reculer jusqu'en G, attendre à nouveau DEPART et recommencer. On suppose le chariot initialement en G (sinon faire un cycle l'amenant en G).


Grafcet

4 - règles d'évolution

La modification de l'état de l'automatisme est appelée évolution, et est régie par 5 règles :


R1 : Les étapes INITIALES sont celles qui sont actives au début du fonctionnement. On les représente en doublant les côtés des symboles. On appelle début du fonctionnement le moment où le système n'a pas besoin de se souvenir de ce qui c'est passé auparavant (allumage du système, bouton "reset",...). Les étapes initiales sont souvent des étapes d'attente pour ne pas effectuer une action dangereuse par exemple à la fin d'une panne de secteur.


R2 : Une TRANSITION est soit validée, soit non validée (et pas à moitié validée). Elle est validée lorsque toutes les étapes immédiatement précédentes sont actives (toutes celles reliées directement à la double barre supérieure de la transition). Elle ne peut être FRANCHIE que lorsqu'elle est validée et que sa réceptivité est vraie. Elle est alors obligatoirement franchie.


R3 : Le FRANCHISSEMENT d'une transition entraîne l'activation de TOUTES les étapes immédiatement suivante et la désactivation de TOUTES les étapes immédiatement précédentes (TOUTES se limitant à 1 s'il n'y a pas de double barre).


R4 : Plusieurs transitions SIMULTANEMENT franchissables sont simultanément franchies (ou du moins toutes franchies dans un laps de temps négligeable pour le fonctionnement). La durée limite dépend du "temps de réponse" nécessaire à l'application (très différent entre un système de poursuite de missile et une ouverture de serre quand le soleil est suffisant).


R5 : Si une étape doit être à la fois activée et désactivée, elle RESTE active. Une temporisation ou un compteur actionnés par cette étape ne seraient pas réinitialisés. Cette règle est prévue pour lever toute ambiguïté dans certains cas particuliers qui pourraient arriver dans certains cas :


simultanéité


La partie COURS s'arrête ici. Toute autre règle que vous auriez pu entendre autre part ne fait pas partie du Grafcet. Il faudra TOUJOURS que votre Grafcet vérifie ce qui a été dit ci dessus (sinon ce n'est pas du Grafcet). Je tiens à préciser que le Grafcet devra être mis en oeuvre (câblé ou programmé) et donc une traduction de ce Grafcet en un schéma ou une suite d'instructions sera nécessaire. Le résultat de cette traduction, même s'il ressemble quelquefois à un Grafcet, ne peut pas imposer de nouvelles règles au Grafcet (qui dirait par exemple que le cas proposé après la règle 5 est interdit en Grafcet)

 

5 - configurations courantes

divergence en OU :
divergence en ou
si 1 active et si a seul, alors désactivation de 1 et activation de 2, 3 inchangé.
si a et b puis 1 active alors désactivation 1, activation 2 et 3 quel que soit leur état précédent. (règle 4)

Convergence en OU :
convergence en ou
Si 1 active et a sans b, alors activation de 3 et désactivation de 1, 2 reste inchangé
Si 1 et 2 et a et b alors 3 seule active

On appelle BARRE DE OU la barre symbolisant les entrées / sorties multiples d'étapes.


Divergence en ET :
divergence en ET
si 1 active et si a, alors désactivation de 1 et activation de 2 et 3.

Convergence en ET :
convergence en ET
Si 1 active seule et a alors aucun changement. Si 1 et 2 et a, alors activation de 3 et désactivation de 1 et 2.

On appelle couramment BARRE DE ET la double barre, mais attention ce n'est pas une entité à part mais une partie d'une transition.
Détaillons également le saut avant (si a alors ...) et les boucles (répéter ... jusqu'à c). Ce sont les deux seules possibilités avec des OU: il ne peut y avoir de divergence en ou après une transition


sauts


Passons maintenant à quelques problèmes plus complexes (tirés de "Comprendre et maîtriser le Grafcet, Blanchard, ed. Capadues"):


1- soient 4 étapes 1 à 4 et deux transitions de réceptivité t1 et t2. Construire la portion de Grafcet réalisant : Quand 1 ET 2 actifs alors
si t1 passer en 3 (et désactiver 1 et 2),
si t2 passer en 4 (et désactiver 1 et 2),
sinon rester en 1 et 2


La solution ci-dessous est accompagnée d'une représentation de type "réseau de Petri" pour bien montrer où doivent se placer les convergences et divergences (à quoi doit être reliée 1?, à quoi doit être reliée t1? ...). En fait on trouve la solution facilement en analysant les cas d'évolution (quand franchit t'on t1 ?). Il faut souligner que l'ajout d'une étape intermédiaire n'est pas une bonne solution car tout passage d'une étape dure un laps de temps (donc discontinuité sur les sorties = aléa technologique)..


cas 1


2 - Problème du même ordre : Quand (étape 1 et t1) OU (étape 2 et t2) alors passer en 3 ET 4:


cas 2


3 - si {étape 1 et [étape 2 ou (étapes 3 et 4)]} et récéptivité r alors activer l'étape 5 (et désactiver les autres).


cas 3

6 Cas génériques


Nous traitons ici des exemples génériques, c'est à dire que les problèmes évoqués ici se posent assez souvent, et la méthode utilisée pour les résoudre pourra être réutilisée.

6.1 - priorité

Soit un chariot se déplaçant sur deux rails (action D vers la droite, G vers la gauche). Il comporte une pince pouvant prendre une pièce (PP, fin quand fpp) s'il se trouve sur le tapis A (capteur y) et qu'une pièce est présente (capteur a) (idem en z si b). Puis il retourne en x, pose la pièce (action DP, fin quand fdp) sur le plateaux supposé en position haute (fv+). Celui-ci descend (V-, jusqu'à fv-), un second vérin pousse la pièce (P+, fin quand fp+), puis le pousseur recule en fp-, le plateau remonte en fv+ Le tapis de sortie C est supposé toujours en mouvement. Les tapis A et B sont commandés par des systèmes non traités ici.


schéma du dispositif


Effectuer d'abord un Grafcet linéaire comprenant une seule voie d'arrivée A. Puis l'améliorer en prévoyant les retours des actionneurs en temps masqué (attention toutefois de ne pas endommager le pousseur). Puis prévoir deux tapis d'alimentation A et B (en cas de pièces en a ET b, prendre celle en a). Puis prévoir une priorité tournante (en cas de conflit, prendre la voie qui n'a pas été servie la fois précédente) attention, si plusieurs pièces arrivent sur la même voie et aucune sur l'autre, ne pas bloquer le système. Puis modifier la règle de priorité en donnant en cas de conflit la priorité à celui qui n'en a pas profité lors du dernier conflit.


Grafcet
priorité voie A, retour V masqué

Pour gérer la priorité tournante, remplacer la réceptivité de la deuxième transition (notée *) par :
réceptivité

qui signifie : arrivé en y avec une pièce en a et soit pas de pièce en b, soit priorité. sinon on continue et quoi qu'il arrive on s'arrête en z (le chariot n'a pas de parachute), en rajoutant un second Grafcet définissant quelle voie est prioritaire :


grafcet



Rq : Le front montant est là pour des problèmes de simultaneïté, souvent je préfère prendre deux étapes qui représentent bien si l'on prend à droite ou à gauche.

Chaque fois qu'une condition séquentielle (dépendant de ce qui s'est passé auparavant) intervient dans une réceptivité, il vaut mieux ne pas compliquer le Grafcet, mais "calculer" cette condition par un petit Grafcet annexe.
Améliorations :


a) permettre au chariot de rechercher une pièce dès qu'il a posé la précédente : séparer le problème en deux : chariot et partie basse.Prévoir deux Grafcet différents, pouvant évoluer simultanément, mais synchronisés pour le dépose de la pièce (par des Xi ou une ressource)


b) faire attendre le chariot en y plutôt qu'en x (pour améliorer le temps de réponse). Pour la partie basse, l'attente se fait plateau en haut, mais ce ne peut pas être l'état initial (il risque de descendre pendant la nuit). Prendre celà en compte :


grafcet
Les deux étapes initiales ne testent que leurs conditions initiales respectives (partie haute ou partie basse).

6.2 - travail à la chaîne

Soit une chaîne de remplissage de bidons d'huile. Un tapis roulant se déplaçant par saccades (cadencé par un système supposé externe à notre Grafcet, s'arrêtant à chaque nouvel appui de la came sur le capteur av) est alimenté manuellement (de temps en temps il manque des bidons). Trois postes sont prévus : remplissage (R), bouchage (B) et enfoncement (E).


schéma du dispositif


Un seul capteur détecte la présence d'un bidon en début de chaîne : pp. On désire faire les 3 opérations simultanément, sauf s'il n'y a pas de bidon sous le poste. S'il vous semble obligatoire de rajouter des capteurs, vous n'avez RIEN compris au Grafcet puisqu'il vous faut un système combinatoire (il vaut mieux alors câbler en combinatoire chaque poste : avance tapis ET présence bidon => effectuer l'action). On suppose que le tapis est vide lors de l'initialisation.


Grafcet

L'étape 1 est constamment active. La dernière transition est appelée "transition puits", mais il était possible de la relier à l'étape 1. En fonctionnement normal, toutes les étapes du Grafcet sont actives. Du point de vue commande, chaque opération comportera plusieurs étapes (R = descendre l'entonnoir, ouvrir le robinet,...) dont une seule sera active à la fois). Chaque activation représente un bidon dans le circuit.

Cette méthode utilise au mieux le séquencement du Grafcet, on peut maintenant rajouter des capteurs, mais qui n'auront pour fonction que de vérifier le bon fonctionnement du système. Dans tous les cas similaires, on utilisera cette démarche : faire le Grafcet pour une pièce seule, puis le modifier pour gérer l'ensemble des pièces, en vérifiant bien que jamais une même étape ne corresponde à 2 pièces, on décompose donc le système en tronçons et on ne laisse entrer dans un tronçon que s'il est libre. Exemples : atelier flexible (on suit la pièce pour chaque opération jusqu'au produit fini), montage (monter 2 pièces ensemble correspond à une convergence en ET : de 2 étapes actives on arrive à 1), chariots filo-guidés (si un tronçon est occupé, essayer de le contourner par une voie libre)...

6.3 - ressource (ou sémaphore)

schéma du dispositif


Au fond du puits de mine n°i, un mineur remplit un chariot Xi. Quand il est plein (le chariot), il (le mineur) appuie sur un bouton di. Immédiatement, le chariot se déplace dans la direction Bi jusqu'au poste de déchargement, composé d'un tapis roulant en mouvement continu, et d'un vérin V qui retourne la benne. Si le poste de déchargement est libre, le chariot avance jusqu'au capteur c, est déchargé puis s'en retourne en ai. Si le poste est occupé, il attend son tour en bi. Le poste de déchargement, commun à plusieurs voies, n'est utilisable que par une voie à la fois. On l'appelle une "ressource physique". Traiter le cas de 2 voies (pas nécessairement de la même longueur).


Grafcet


Supposer que la ressource est occupée en utilisant le capteur c est IDIOT : et s'il est entre bi et c ? Et si le temps de freinage l'a arrêté juste à côté de c ? Il faut utiliser les facilités séquentielles du Grafcet autant que possible (ne tester un capteur que quand c'est nécessaire). Un capteur ne doit servir que comme condition de passage d'une étape à une autre, mais pas pour vérifier un état du système qui découle du séquencement effectué (par exemple, une transition vérifie la présence d'une pièce, aucune action ne déplace la pièce puis on re-vérifie la présence : Ce n'est sensé que si l'on prévoit dans le Grafcet ce qu'il faut faire si la pièce a disparu). Ici, on utilise donc une étape (la ressource), qui est active quand la ressource physique est disponible. Dès utilisation, on la désactive, pour la réactiver quand on libère la ressource physique.
On pouvait également résoudre le problème par des Grafcets séparés (un pour chaque chariot, un pour le déchargement) synchronisés par des Xi. La seule différence est que n'ayant plus de divergence sous l'étape 3, on risque d'oublier de traiter le cas d'arrivée simultanée en b1 et b2, cas arrivant assez rarement pour que l'on ne détecte pas le problème en phase d'essais, mais se produira de temps en temps en fonctionnement réel sans que l'on puisse reproduire le problème lorsqu'un spécialiste sera présent (seule solution : graphe des états accessibles).
Ilian Bonev, de l'ETS Montréal, vous propose une autre solution (allez au second exercice).

 

cours par Patrick TRAU

http://www-ipst.u-strasbg.fr/pat/autom/grafcet.htm