LES VERTUS DE L’AUTOMATE GRAFCET.

Cet exposé a pour référence "Formalisation du Grafcet". Le graphisme fait appel à la norme CEI 60848 mais action est à remplacer par ordre.

Je n’ai aucune expérience en matière d’automates à vocation industrielle mais ayant conçu un programme automate pour simuler les grafcets je fais part des questions à traiter pour mener une telle réalisation.

J’appelle automate Grafcet (A.G.) un moyen capable de lire un grafcet basique dans le cadre d’un système automatisé à vocation industrielle. Il doit s'accorder parfaitement avec les axiomes afin que les corollaires, explicités pour détailler et illustrer la formalisation, soient alors implicites.

Pour éviter de sortir du concret, les explications suivantes sont à associer à un dispositif matériel qui serait composé d’un ordinateur classique connecté à des bornes d’entrées (cf. capteurs) et des bornes de sorties (cf. actionneurs) par des interfaces appropriées. En clair, l’A.G. est ici à voir comme un programme automate au sens informatique dont l’exécution est transparente pour l’utilisateur. Sa faculté d’exploiter les données décrivant un grafcet basique changeable à souhait le définit comme automate programmable.

Les moyens faisant appel à des composants logiques (PLA par exemple) où il faut matériellement autant d’automates que de grafcets ne seront pas abordés (sujet en rapport avec définition technologique de la partie commande).

Toute la stratégie de l’A.G. est dictée par l’axiome F ( la règle 4) qui oblige l’inventaire des transitions des transitions franchissables et donc implique que la lecture d’un grafcet soit une opération synchrone. Ainsi le grafcet doit être observé cycliquement en vue d’assurer une succession correcte des franchissements. Cette procédure est traditionnellement mise en exergue avec l’organigramme présentant l’algorithme dit sans recherche de stabilité.

Rien de bien original me direz vous! C’est ce que tout automate doit savoir faire. Mais semblerait-il, tout n’est aussi clair en ce qui concerne l’axiome G, c’est à dire l’affectation de valeurs idoines aux sorties!


A- La lecture des grafcets par l’A.G.

Ce chapitre peu agréable à lire met en exergue les finesses du Grafcet dans le cadre de l’exécution des grafcets.

Regardons le grafcet de description ci après. Il est à associer au classique algorithme dit sans recherche de stabilité. Commentons chacune de ses étapes en insistant sur les points à respecter pour que l’A.G. lise correctement les grafcets et précisant ce qu’il ne doit surtout pas faire.

Nous aurons à définir des suites en tant que familles d’éléments indexées par l’ensemble des entiers naturels (définition mathématique rapportée, en particulier, par le Petit Larousse 1995).


Etape 01:

L’A.G. doit inventorier les valeurs booléennes courantes des variables.

Il les range dans un certain ordre défini par une suite-variables.

Ces valeurs sont celles:

Cet inventaire se fait pas à pas (obligation physique inhérente aux systèmes monoprocesseurs). La suite-variables établie, il faut sans délai passer à l’étape 02.

Sans précaution, il ne faudrait pas, par le biais d’une analyse cyclique, attendre que la suite-variables change pour aller plus en avant. Nous verrons pourquoi plus loin.

Il est clair, que la suite-variables peut être fausse si au cours de sa création, des variables déjà lues changent de valeur. La remarque RF3 (cf. Axiome F) peut donc être prise en défaut. Pour éviter d’éventuelles conséquences de ce désagrément, il faut que la suite-variables soit créée dans un laps de temps suffisamment court (mais, disons hélas, pas aussi court que l’on veut). Comparons avec une photographie numérique pas nécessairement désagréable en dépit de ses pixels âgés différemment. Cette remarque valable pour l’établissement ultérieur de suites de même genre ne sera pas rappelée.


Etape 02:

L’A.G. doit détecter les transitions franchissables pour lister les étapes à désactiver et à activer. Il doit donc posséder un calculateur d’expressions logiques pour apprécier la valeur des réceptivités ou plus exactement des conditions de franchissement (intersection de la réceptivité et des activités des étapes prédécesseurs à la transition). Ce calculateur puise ses données dans la suite-variables (pour les entrées et les prédicats) et dans la suite-situation (pour les activités) définie plus loin.

Il ne faudrait pas qu’il lise les entrées directement aux bornes d’acquisition relatives aux capteurs. En effet, deux réceptivités ayant une variable commune qui changerait de valeur entre le calcul de chacune d’elles ne sauraient être … bienvenues.


Etape 03:

L’A.G. doit préparer l’actualisation de la situation. Une suite-franchissement est créée; ses composantes sont relatives aux étapes (notation générique: ET) rangées dans un ordre déterminé. Elle est d’abord mise à jour avec la liste des étapes à désactiver (composantes notées XET surlignées) et ensuite avec la liste des étapes à activer (composantes notées XET). Les composantes vides sont relatives aux étapes non concernées par le franchissement.

Il ne faudrait pas effectuer le franchissement transition par transition car toute étape prédécesseur de plusieurs transitions simultanément franchissables serait désactivée par la première désactivation partielle et les autres transitions perdraient leur validation. Qui plus est, le résultat obtenu dépendrait de l’ordre des désactivations partielles (ce genre de désagrément, appelé conflit, se rencontre avec les réseaux de Petri, qu’il faut habiller de priorités pour éviter des indéterminismes).


Etape 04:

Une étape peut être associée à quatre statuts: front montant d’activité, activité assurément vraie, front descendant d’activité, inactivité. Un statut est donc synonyme de la valeur précise de la variable d’étape en fonction du temps.

Les composantes d’une suite-situation relative aux étapes rangées comme dans la suite-franchissement indiquent précisément le statut d’activité de chaque étape.

L’A.G. doit comparer chaque composante de la suite-franchissement avec son homologue de la suite-situation pour mettre cette dernière à jour.

Le tableau ci-dessous résume ce que l’A.G. doit faire à l’issue de chacune de ces comparaisons. La composante de la suite-situation (autrement dit le statut de l’étape observée en début de franchissement) fait l’objet des entêtes des quatre colonnes. La composante de la suite-franchissement (autrement dit l’activité ou non définie par le franchissement) fait l’objet des entêtes des trois lignes. Les cases intersections donnent le nouveau statut qui remplace l’ancien dans la suite-situation.

La case 00 (front montant) prélude le plus souvent à la case 21 qui confirme l’activation. La case 12 (front descendant) prélude le plus souvent à la case 23 qui confirme la désactivation. Les cases 01 et 02 expriment la règle 5. La case 11 exprime la fugacité. Les cases 20 et 22 concernent les statu quo. Les cases 10 et 13 sont sans signification. Quant à la case 03, elle ne saurait s’expliciter qu’avec des grafcets subtils ou exotiques.

La suite-franchissement perd son intérêt après l’actualisation de la situation, elle sera reconstruite lors du franchissement suivant.

Une succession rapide de franchissements s’impose pour garantir la signification éphémère attendue des fronts même si les variables d’entrée ne changent pas (cf. cases 21 et 23). Cela explique pourquoi le genre d’analyse cyclique citée au § Etape 01 n’est pas acceptable ici.

Cependant il serait possible de faire perdurer la dite analyse tant que toute variable ne changerait pas (l’analyse incluant alors l’observation des statuts des activités). Il s’agit là de questions dites de stabilité ou d’instabilité concernant les théories qui considèrent le temps comme élément du Grafcet.


Etape 05:

Il s’agit d’actualiser les valeurs des ordres. Une suite-ordres s’impose dont la mise à jour est à faire conformément à l’axiome G en considérant le statut des étapes.

Il ne faudrait pas mener ce travail au fur et à mesure de l’actualisation des activités sous peine de générer des aléas lorsque la règle 5 s’explicite.

Etape 00:

Elle correspond au début de lecture du grafcet en faisant donc appel a une suite-situation initiale pour expliciter les éventuelles étapes initiales.


B- Création des grafcets basiques:

Un grafcet basique, nourriture du programme automate, comprend des sous graphes de service (SGS) qui concrétisent les représentations condensées exprimées par le concepteur humain.

En utilisant un programme informatique nommé éditeur de grafcets l’humain dessine (clavier, souris, écran) ses grafcets réticulés. En fait, il génère des objets informatiques bijectifs avec les éléments de dessin visibles à l’écran. Appelons grafcet source l’ensemble des dits objets.

En utilisant un programme informatique nommé compilateur de grafcets, le grafcet source est analysé pour créer des objets valables pour le programme automate (cf. grafcet basique); plus particulièrement la suite-situation initiale et les SGS sont automatiquement créés.

L’exemple ci dessous donne une idée du travail accompli par le compilateur pour constituer les SGS. Ce qui est à gauche est clair pour l’être humain. A droite, ce n’est pas une sinécure de comprendre la signification de cet ensemble d’éléments chacun fort simples.

Aparté: en première étude, j’avais pensé l’axiome H inutile car il est possible de considérer une étape initiale en tant que représentation condensée et de lui définir un SGS (non partiel) avec une étape puits comme montré ci après.

Si ce procédé n’implique pas de suite-situation initiale, il ne permet pas d’interdire l’exécution d’un ordre mémorisé à l’initialisation (cf. corollaire CH). J’opte pour le maintien de cette possibilité. Il reste possible de dessiner un grafcet réticulé semblable au SGS pour permettre l’exécution d’un ordre mémorisé à l’initialisation.


C- La lecture des SGS:

Les SGS totalement invisibles pour l’automaticien utilisateur de l’A.G., sont à considérer de façons particulières par le concepteur de l’A.G. . Comme d’habitude, pour faciliter les explications, ils sont présentés sous forme de grafcets partiels réticulés.


C1 -Ordre conditionnel:

Avec un grafcet réticulé ce type d’ordre fait traditionnellement appel à la notion de sensibilité pour expliciter l’invariance de situation spécifique à ce cas;

Si la condition est vraie pour le front montant de l’étape 43, ORDC n’est émis que lorsque l’activité de 57 est confirmée (cf. case 21 du tableau ci-dessus). Pour éviter ce retard (a priori, sans conséquence pratique) d’une durée de scrutation du grafcet, il serait possible de lire prématurément le SGS pour que ORDC soit accordé avec l’étape 43. On aurait alors une équivalence avec "ORDC = X43.cond" (comme selon la norme) mais en générant un aléa (pic de ORDC) si la condition est fugace.

En conclusion, il convient que l’A.G. lise ce SGS exactement comme tout graphe partiel du grafcet.


C2 -Ordre mémorisé à l’activation ou à la désactivation:

Si le SGS est lu normalement (comme un grafcet partiel ordinaire), on remarque que ordm devient vrai seulement un temps de scrutation après l’activation de Ea ou de Ec. Ce manque de précision pouvant choquer les esprits chagrins (cf. moi même en particulier), l’A.G. doit éluder le front montant de l’étape OM. Ceci ne doit pas être considéré comme une entorse à la procédure d’évolution du grafcet étant donné que les SGS ne sont représentés que pour des raisons de compréhension relatives à des finesses de fonctionnement de l’A.G. non apparentes pour l’automaticien.

Rien n’empêche, à l’édition, de dessiner un grafcet partiel réticulé ayant l’allure du SGS, mais ce sera un grafcet partiel normal lu sans filtrer le front montant de l’étape OM.


C3 -Ordre mémorisé au franchissement:

ordm est modifié sans retard même si le grafcet réticulé fait appel à la deuxième représentation (cf. §C2).


C4 - Front:

expl indique une expression logique qui la plupart du temps se limitera à une variable.


C5 -Ordre sur événement:

evenE et evenF sont des pseudos expressions logiques dont chaque intersection doit posséder des variables avec un front (il est évidemment sage de se limiter à un seul front par intersection: un bon éditeur peut l'imposer).

C6 -Compteurs:

Ces dispositifs optionnels, peuvent être propres à l’A.G. (ce qui ne veut pas dire propres au grafcet qui les sollicite et les exploite). Donc si le grafcet en fait état, le compilateur doit les générer.

Un compteur de ce genre est à associer:

il s’agit donc d’un objet particulier car il n’est pas concerné par les bus d’entrée et de sortie de l’automate. De ce fait, il est souhaitable de labelliser les compteurs (par exemple, en commençant leur nom par "&") pour donner de la clarté aux grafcets réticulés et pour faciliter la programmation du compilateur.


C7 - Temporisations:

Ces dispositifs optionnels, peuvent être propres à l’A.G. (ce qui ne veut pas dire propres au grafcet qui les sollicite et les exploite). Donc si le grafcet en fait état, le compilateur doit les génèrer. En faisant appel à une horloge qui égraine et totalise des unités de temps (les ordinateurs déposent généralement de ce dispositif: temps depuis mise en route et/ou temps officiel), il est suggéré un moyen de créer autant de temporisations que l’on veut:

tc est le temps courant donné par l’horloge.

Bien entendu, le compilateur décompose le présent SGF en SGFs vraiment basiques.


D- Remarque importante:

Au lieu de commenter un algorithme d’interprétation, j’ai présenté une machine informatique monoprocesseur avec l’espoir d’être compris grâce au fonctionnement élémentairement simple d’un tel appareil.

Bien noter que la notion de suites ouvre la porte aux dispositifs multiprocesseurs et logiques (portes) qui seraient capables d’actualiser simultanément toutes les variables des dites suites et ainsi de diminuer considérablement la durée des cycles. Ainsi, je pense respecter mon adage "valable pour toute technologie".


E- Conclusion:

Je rappelle que cet exposé a pour but de montrer comment doit fonctionner l’A.G., ce qui est différent de la programmation de l’A.G. c’est à dire la fourniture du grafcet à exécuter. Pour l’automaticien, il suffit de rédiger (éditeur) le grafcet réticulé et de le confier au compilateur.

Si cet exposé a l’allure d’un cahier des charges à l’intention de programmeurs informatiques chargés de construire des automates capables de grafcets, il pourrait aider les utilisateurs de ces genres d’automates pour éventuellement en mieux analyser leurs imperfections. A ce sujet, je ne saurais donner grand avis. Je rappelle encore mon ignorance vis à vis des automates industriels mais beaucoup de témoignages me sont parvenus laissant penser que grafcet est parfois utilisé comme mot générique pour désigner les représentations d'automatismes séquentiels. Plus précisément, j’ai lu une publicité de "programme grafcet" annonçant des propriétés totalement étrangères à tout ce a pu être dit sur le Grafcet.

Je pense que ma démarche est valable pour réduire la distance entre les grafcets et leur implantation. Sans grandes difficultés intellectuelles, j’ai réalisé, en ce sens, mon éditeur et simulateur (et évidemment le compilateur associé) de grafcets.


Fait à Charmoy 89400 en mars 2009 par Yves FOUSSARD.