FORMALISATION DU GRAFCET.

 

Présentation.

Yves Foussard, l'auteur de cet exposé, est ingénieur mécanicien diplômé de l'Ecole de l'Air. Durant plus de 25 ans, il a participé, à titre personnel, aux travaux du "Groupe systèmes logiques" de l'AFCET et a fréquenté d'autres organismes savants en la matière.

Sa pensée se réfère particulièrement à:

Il considère le Grafcet en tant qu'outil qui doit être "valable pour toutes les technologies" c'est à dire tributaires des lois incontournables de la Physique. Il y a là une nuance avec "indépendance de toutes technologies" qui autorise des modèles théoriques, certes utiles pour dégrossir certaines questions de fond ou pour faciliter des comparaisons avec d'autres outils mais pas toujours pragmatiques pour des réalisations.

Pourquoi formaliser le Grafcet.

A l'origine le Grafcet a été défini par ses cinq règles qui, associées à quelques compléments, sont suffisantes pour appréhender le fonctionnement d'un système automatisé à vocation industrielle. Avec grande sagesse, les pionniers du Grafcet ont insisté sur la nécessité de d'abord bien comprendre la demande de l'utilisateur (cahier des charges appelé niveau 1) pour ensuite définir le comportement de la partie commande (niveau 2).

Mis à part l'ouvrage de Michel Blanchard "Comprendre, maîtriser et appliquer le Grafcet" qui présente le Grafcet avec un pragmatisme non dénué de rigueur, la plupart des ouvrages négligent le bien fondé du niveau 1 et expriment d'emblée le niveau 2 (de ce fait, la notion de niveau a fini par totalement disparaître). Cette absence de synthèse progressive force les auteurs à traiter des questions défiant la logique et le simple bon sens. Plus grave, abusant du succès du Grafcet, certains ont utilisé ce vocable pour vanter des réalisations non conformes à cet outil. De plus, des directives universitaires auraient imposé un "Grafcet" non recevable, a priori, pour des applications industrielles.

Ces embarrassants constats, que nous affinerons par la suite, nous ont conduit à penser qu'une formalisation sévère du Grafcet pourrait être intéressante. C'est l'objet de cet exposé. Une bonne formalisation consiste à émettre un minimum de définitions basiques (axiomes) permettant de déduire des lois incontournables. Poser des axiomes est un travail délicat au sens où des évidences ne sont évidemment pas précisées. Malheureusement, l'évidence est traîtresse car perçue selon la culture de chacun. Espérons donc la suite ne contiendra que des évidences universell

Cet exposé a rapport aux grafcets exécutables (disons niveau 3 pour ne pas snober les inventeurs du Grafcet) c'est à dire capables d'être lus par un automate commandant une ou des POs. Il s'adresse aux personnes qui connaissent le Grafcet au travers des enseignements courants ainsi que l'organisation générale d'un système automatisé (PO, PC, capteurs, actionneurs). Son but est d'appeler leur attention sur certaines subtilités et de leur proposer des éclaircissements sur des points ambigus objets de remarques chroniques. Une présentation axiomatique n'est pas spécialement agréable à consulter, mais c'est à ce prix que la précision peut être assurée. Pour limiter le rébarbatif, il est fait appel, le plus possible, au langage courant, celui des dictionnaires français.

Les explications relatives à ces axiomes (par nature intrinsèques) seront explicitées en faisant appel à la représentation normalisée du grafcet supposée connue.

Cette démarche ne vise pas à réformer le Grafcet, mais bien au contraire à le valider dans son aspect d'outil utilisable. La norme, dans la mesure où elle est compréhensible, n'est pas remise en cause.

 Les axiomes du Grafcet.

Les inférences (règles et compléments du Grafcet) des axiomes sont notées en italique et soulignées.

 Axiome A: Le Grafcet est un 1-graphe biparti orienté avec une classe de sommets appelés "étapes" et une classe de sommets appelés"transitions" ; les arcs sont appelés "liaisons orientées".

Pour comprendre cette définition, il faut se référer au vocabulaire de la théorie des graphes (cf. Claude Berge) qui précise:

Remarque RA-1: la définition générale des graphes bipartis est valable pour toutes les descriptions de systèmes séquentiels; intrinsèque elle est indépendante de toute représentation.

Remarque RA- 2: les définitions de sommets sources, de sommets puits, de graphes partiels ne souffrant d'aucune ambiguïté sont supposées connues.

Corollaire CA: cette définition générale implique "l'alternance étape-transition" habituellement relatée en complément des règles du Grafcet.

 Axiome B: Une grandeur binaire appelée "activité" est associée à chaque étape.

Ayant nommé les étapes, cette grandeur est explicité par "X" suivi du nom de l'étape. Ainsi une étape nommée "truc" est active si "Xtruc" est vraie; elle n'est pas active si "Xtruc" est fausse.

L'ensemble des étapes actives est la situation du grafcet.

Axiome C: Un prédicat appelé "réceptivité" est associé à chaque transition.

Prédicat est à considérer au sens large: expression contenant une ou plusieurs variables qui est susceptible d'être vraie ou fausse selon les valeurs attribuées à ces variables (cf. Larousse 1995). Tel est le cas de toute expression logique booléenne.

Les variables sont des grandeurs tout ou rien:

  • fournies par les capteurs de la PO;
  • issues d'un calcul de valeur de prédicats (comparaison de valeurs de variables analogiques );
  • définies par les activités d'étapes.

Nota: volontairement, les vocables "interne" et "externe" ne sont pas utilisés ici afin d'éviter toute confusion d'appartenance (PC, automate, grafcet).

Axiome D: Un prédicat appelé "validation" est associé à chaque transition. Ce prédicat est vrai lorsque le nombre de prédécesseurs (étapes) de la transition est égal aux nombres des prédécesseurs actifs de cette transition.

Corollaire CD: une transition source est toujours validée. En effet, si e est le nombre d'étapes prédécesseurs et a le nombre d'étapes prédécesseurs actives, la transition est validée lorsque le prédicat [a = e] est vrai; lorsque e vaut 0 (transition source), a vaut nécessairement 0 et le prédicat [0 = 0] est vrai. Pour l'enseignement de base, il moins alambiqué de dire que "transition source toujours validée" est tout simplement un complément des règles du Grafcet, mais pour un lecteur de grafcet (automate), il est intéressant de considérer les transitions sources comme ordinaires (économie de programmation et éventuellement exécution plus rapide).

Axiome E: Une transition est définie "franchissable" lorsque sa réceptivité et sa validation sont simultanément vraies.

C'est la règle 2 du Grafcet.

Axiome F: Le Grafcet évolue normalement par des opérations obligatoires dites de "franchissement". Le franchissement consiste d'abord à désactiver les éventuels prédécesseurs des transitions franchissables et ensuite d'activer tous les éventuels successeurs de ces mêmes transitions.

Remarque RF1: bien noter "le Grafcet évolue normalement" (la notion de forçage étant à considérer spécialement)

Remarque RF2: bien noter opérations obligatoires ce point d'importance majeure est toujours rappelé dans la littérature Grafcet (sauf dans la norme).

Remarque RF3: cela suppose qu'avant tout franchissement, les réceptivités soient exprimées avec la valeur courante des variables (déterminisme oblige) -voir stabilité-

Remarque RF4: noter "éventuels" simplement pour être précis vis à vis des transitions sources et puits.

Corollaire CF1: Cette définition n'est pas incompatible avec celle de la règle 3 du Grafcet qui se limite au franchissement d'une transition.

Corollaire CF2: toutes les transitions simultanément franchissables sont simultanément franchies. C'est la règle 4 du Grafcet.

Corollaire CF3: Une étape à la fois successeur d'une transition franchissable et prédécesseur d'une transition franchissable (éventuellement la même que l'autre) se retrouve active après le franchissement. Cela n'est pas incompatible avec la règle 5 du Grafcet.

Corollaire CF4: La durée de franchissement d'une transition ne peut être nulle (en effet, "d'abord désactiver et ensuite activer" demande nécessairement du temps) . Cette précision est traditionnellement citée en complément des règles du Grafcet.

Complément à l'axiome B: il y a lieu de distinguer:

  • "front montant d'activité": défini par l'activité d'une étape remarquée en fin de franchissement alors qu'elle était inactive en début de franchissement;
  • "front descendant d'activité": défini par l'inactivité d'une étape remarquée en fin de franchissement alors qu'elle était active en début de franchissement.

Axiome G: Des ordres peuvent être associés aux activités d'étapes. Un ordre est reconnu vrai que si l'activité associée est assurément vraie; il est faux pour les fronts d'activité et pour les inactivités. La valeur d'un ordre n'est pas modifiée durant une opération de franchissement.

Corollaire CG: un front montant suivi d'un front descendant (ce qui implique deux franchissements successifs) définit une "activité fugace" pour laquelle aucun ordre associé à l'étape concernée ne peut être vrai.

Remarque RG1: cette définition concrète devrait couper court les ambiguës explications de la norme qui parle d'activités virtuelles en précisant qu'appliquer les règles du Grafcet est un artifice.

Remarque RG2: durant un franchissement lorsque la règle 5 est concernée, des étapes se trouveraient momentanément inactives (cf. axiome F) et à ce moment là, il serait malvenu de faire suivre la valeur des ordres associés à ces étapes (aléas).

Axiome H: La présentation d'un grafcet en vue de sa première lecture est appelée "situation initiale" qui éventuellement comporte des "étapes initiales". L'activité des étapes initiales est vraie en début de lecture.

C'est la règle 1 du Grafcet.

Remarque RH1: lire un grafcet consiste à le faire évoluer en appliquant, à la lettre les axiomes (donc les règles) du grafcet.

Remarque RH2: l'absence d'étapes initiales implique l'emploi de transitions sources et infirme toute définition de situation initiale par activité d'étapes initiales.

Corollaire CH: un "ordre mémorisé à l'activation " associé à une étape initiale n'est pas exécutable en début de lecture. En effet, dans le cadre de la situation initiale, l'activation n'étant pas provoquée par franchissement, le front montant d'activité n'a pas de sens (cf. compléments à l'axiome B énoncés suite à l'axiome F) mais dès que la lecture est commencée, les étapes initiales deviennent normales.

Tout grafcet est réalisable avec ces 8 axiomes; dans ce cas il est dit "basique" (ce qualificatif est proposé par l'auteur de l'exposé). Tel quel il est facilement exploitable par un automate. Pour l'être humain, il est difficilement appréhensible, c'est pourquoi il faut visualiser son équivalent en faisant appel à des représentations condensées (voir ci après).

Bien noter que ces axiomes ne font pas appel au temps. Ils disent comment des faits doivent s'enchaîner, ce qui permet en prenant "tout son temps" d'analyser les grafcets (cette réflexion peut paraître puérile mais est-elle toujours perçue avec perspicacité?). Le temps ne se fabrique pas, ne se compresse pas, il est universel. Le temps intervient au niveau des automates qui se doivent de lire les grafcets avec une vitesse suffisante pour en obtenir les services attendus.

 

La représentation des grafcets.

Le grafcet basique est indépendant de toute représentation. Pour raisonner avec facilité, il faut faire appel au graphisme traditionnel et normalisé pour dessiner des grafcets que nous qualifierons "réticulés". Pour beaucoup cette représentation est synonyme de grafcet.

Un grafcet réticulé, met en exergue, par des représentations condensées, certains dits concepts (fronts, d'ordres conditionnels et mémorisés). Claires pour l'être humain, il leur faut une équivalence pour être conformes aux axiomes du Grafcet. Cette équivalence est obtenue par des grafcets partiels basiques que nous appellerons "sous graphes de service" (SGS).

Si ces représentations condensées sont très précises pour exprimer des buts à atteindre, elles ne permettent pas d'analyser le déroulement d'un grafcet en utilisant la notion de situation car ce genre de simplification élude des étapes.

Voici l'inventaire de ces SGS présentés sous forme réticulée dans un but de compréhension.

Fronts:

De manière générale les fronts caractérisent les changements d'état d'une expression logique. N'étant pas de nature binaire donc normalement non fournis directement par des dispositifs physiques (s'ils le sont, comment les saisir?), il faut les générer. Voici un procédé, a priori le plus simple et le meilleur, relatif à une expression logique nommée "explog" qui évidemment peut se limiter à une seule variable booléenne .

 

Un front objet de répétition fait appel à un unique SGS.

Ordres conditionnels:

 

L'expression "cond" est purement booléenne c'est à dire sans fronts. Elle est dite "condition d'assignation" dans la norme.

Il faut autant de SGS que d'étapes concernées par l'ordre et sa condition.

Ordres mémorisés:

 

Les expressions "evenE" et evenF" sont d'allure booléenne avec obligatoirement des fronts dans chaque intersection. Elles sont dites "évènements" dans la norme.

Le SGS ici présenté n'est vraiment basique que si les SGS de fronts sont explicités (au détriment de l'évidence).

Bien remarquer que pour les activités fugaces du grafcet réticulé les ordres à l'activation ou à la désactivation sont "émis" mais pas pour les ordres sur évènement.

Le SGS stockant l'ordre doit être unique pour limiter le risque de conflits suite à ordres contradictoires.

Ordres au franchissement:

 

Le SGS est à compléter pour développer l'ordre à l'activation.

Nota: cette représentation condensée est d'un intérêt pratiquement nul, elle économise seulement le dessin d'une étape et d'une transition (ce que le normalisateur n'a pas saisi: voir ses commentaires). Elle permet la réalisation de grafcets réticulés sans étapes lesquels mettent tout commentateur en situation d'aporie pour, en particulier, parler de situation.

 Les options du Grafcet.

 Ce sont des accessoires non fondamentaux qui peuvent être utiles mais qui méritent quelques attentions pour les employer correctement.

Macro-étape: 

La notion de macro-étape est purement relative au graphisme. Ce n'est qu'un témoin d'une partie de grafcet dessinée à part (expansion). Elle n'a donc rien de fondamental et de ce fait elle n'entre pas dans le cadre d'une formalisation.

La définition de sa représentation est mal précise. Après facile correction des lapsus calami de la norme (confusion macro-étape avec expansion), quelques questions se posent:

De tels cas doivent être traités en ajoutant des étapes et des transitions pour respecter les notations édictées par la norme (étapes d'entrée et de sortie nommées à l'aide de E et S).

Par ailleurs, que penser d’une activité nulle d'une macro-étape dont l’expansion se trouve sans étapes actives mais est cependant opérante (cf. ordres mémorisés)?

Enfin, comme certains le font remarquer, il est peu difficile, voire avantageux de réaliser des grafcets partiels jouant le même rôle que les expansions avec la possibilité de les utiliser en tant que sous-programmes (pour éventuellement éviter des duplications).

Forçage:

De manière générale le forçage consiste à faire évoluer un grafcet autrement que par ses règles. Nous pensons que son emploi doit se limiter à la gestion de mode de fonctionnement dégradés, donc de procédures de secours. L'abus de ce procédé difficilement analysable ne peut qu'être dangereux

En plus du forçage traditionnel (hiérarchisation de grafcets partiels) la norme fait état d'encapsulage (hiérarchisation d'encapsulations). L'ennui est que la hiérarchisation est mal définie. En effet, il n'est pas suffisant, de l'associer à des absences de liaisons orientées car il n'est pas impossible qu'un graphe forçant possédant des variables d'étapes appartenant aux graphes forcés puisse en retour être perturbé. Caricaturons: soit une étape associée à un ordre de forçage suivie d'une transition avec la réceptivité X18; que penser si l'ordre de forçage désactive l'étape 18 du graphe forcé? Erreur de conception bien sûr, mais est elle inévitable (évidemment de manière plus subtile que celle de la caricature) avec des grafcets volumineux qui, plus est, pourraient être modifiés longtemps après leur création par de tierces personnes?

En plus, il y a les forçages multiples et simultanés, question abordée par Jean-Jacques Lesage et Jean-Marc Roussel lors du colloque GRAFCET'92.

Compte tenu de l'imprécision de cette notion, il est impossible de l'entrer dans le cadre d'une formalisation. Il faudrait s'imposer pour l'habiller de règles précises (pas nécessairement recevables par tous) mais nous l'avons dit, notre démarche n'est pas de modifier le Grafcet mais de le valider afin d'harmoniser les points de vue.

Aperçu d'éditeur- simulateur de grafcets:

En utilisant les précédents axiomes l'auteur a réalisé un éditeur associé à un simulateur de grafcets dont voici les grandes lignes.

Le but est pédagogique. A la simulation, le grafcet réticulé apparaît conjointement à une représentation de PO sur un écran d'ordinateur. La situation générale du grafcet (activités, variables, ordres) est mise en exergue par des changements de couleur. La PO est animée en accord avec le grafcet. Il est clair que les réalisations ne peuvent qu'être quantitativement modestes (maximum d'environ 100 sommets).

L'automate inclus dans le simulateur comprend un lecteur de grafcet basique, un calculateur de réceptivité, un calculateur de prédicat, un lecteur de variables tout ou rien, un lecteur de variables analogiques, un lecteur de compteurs propres, un lecteur d'opérateurs à retard, un émetteur d'ordre . Il actualise le grafcet réticulé et la PO vus sur l'écran.

L'édition (grafcet réticulé au graphisme conforme à la norme) est exécutée quasiment comme on le ferait à la main avec une feuille de papier, un crayon, une gomme, une règle et une équerre. Les erreurs dites de syntaxes sont détectées in-situ avec obligation de rectification immédiate; certaines sont impossibles (non respect de l'alternance étape-transition, en particulier). Un grafcet terminé ou non terminé peut être modifié ou complété plus tard. Toute portion d’écran peut être "photographiée" pour recueillir une image à des fins d'illustration de documents. Bien sûr, pour être exécutable (simulation), il faut qu'une PO soit définie (ce qui n'est pas très simple); quelques unes sont en bibliothèque. Cette même bibliothèque reçoit, au gré du dessinateur, les grafcets ébauchés ou terminés.

Un compilateur entièrement automatique transforme les grafcets réticulés ainsi créés en grafcets basiques pour alimenter le simulateur. Plus particulièrement, il élabore les SGS. Plus exactement, le compilateur crée des conditions de franchissement c'est à dire des expressions logiques où les réceptivités sont associées aux étapes capables de valider leur transition.

Cet ensemble de programmes informatiques est exécutable avec Windows XP. Il est, sur demande, à la disposition de toute personne.

Conclusion

Cet exposé n'est qu'une recherche de définitions précises applicables à des systèmes physiques. La réalisation d'un grafcet réticulé reste une question de savoir-faire où l'intuition est reine. Un tel pragmatisme est évidemment propre à induire des erreurs. Leur parfaite détection, sujet de logique pure n'est pas une mince affaire a mettre en oeuvre (cf. les ouvrages cités en présentation) . A ce sujet, les grafcets basiques, qui présentent des situations toujours significatives et dénués de fronts implicites sont peut être intéressants à des fins d'analyse et de validation.

Par ailleurs, les conditions de franchissement ont quelques vertus de langage pivot. Elles sont souvent identiques pour des éléments de grafcets réticulés d'allure différente; par exemple, elles expriment de la même façon un parallélisme structural ou interprété.

Il est de notre intention d'étudier ces questions de plus près.


Toute notre reconnaissance ira aux personnes, qui sans complaisance, nous feront part de leurs critiques.

Fait en octobre 2007.

 Yves Foussard 3 rue du Pont 89400 CHARMOY.