FR 2596539 A1 19871002 FR 8604815 A 19860401 PRO CODE D'AUTOMATISATION D'UN PROCESSUS DIRECTEMENT A PARTIR DE SON GRAFCET ET PROCEDE DE SIMULATION DE L'EVOLUTION D'UN GRAFCET La présente invention a pour objet un procédé d'automatisation d'un processus directement à partir de son Grafcet et un procédé de simulation de l'évolution d'un Grafcet. Le Grafcet (Graphe de Commande Etape/Transition) est un outil graphique utilisé en automatique pour définir clairement les différentes étapes d'un cycle d'automatisation et à partir duquel est écrit le programme de commande du processus automatique. A la différence d'un organigramme, qui permet une description générale d'un automatisme bien adaptée à la programmation, mais qui est néanmoins pauvre dans un domaine séquentiel et ne met pas en évidence les fonctionnements simultanés, le Grafcet est un modèle graphique représentant les spécifications fonctionnelles d'un automatisme logique, qui décrit tous les comportements de l'automatisme de commande face aux événements issus du processus en imposant une démarche rigoureuse, éventuellement hiérarchisée, évitant ainsi les incohérences, les blocages ou les conflits dans le fonctionnement. Le dessin montre à la figure 1 un exemple de Grafcet associé au cycle d'automatisation d'une presse de compression des poudres, cet exemple de Grafcet est tiré du projet de norme NF 103-190 du 27 octobre 1980 établi par l'Union Technique de l'Electricité. Dans cette figure 1, la position des différents organes de la presse à chaque étape du cycle est indiquée en regard de l'étape correspondante du Grafcet. Une telle presse comprend essentiellement un poinçon inférieur fixe (3), un poinçon supérieur (1) et une matrice (2) mobiles, ainsi qu'un système d'évacuation de la pièce comprimée non représenté sur le dessin. Le cycle de travail d'une telle presse est le suivant La matrice (2) et le poinçon supérieur (1) étant en position haute, la matière est introduite dans le poinçon inférieur (3). Une fois la matière en place, le poinçon supérieur (1) descend, comprime la matière en pénètrant dans la matrice puis remonte en position haute. La matrice (2) descend alors sur le poinçon inférieur afin de libérer la pièce (4) qui vient d'être comprimée et celle-ci est ensuite évacuée. Le Crafcet correspondant à ce cycle est montré schématiquement à gauche sur la figure I ; il comprend six étapes - Etape 1: mise en place de la matière - Etape 2 : descente du poinçon - Etape 3 : remontée du poinçon - Etape 4 : descente de la matrice - Etape 5 : évacuation de la pièce comprimée - Etape 6 : remontée de la matrice. Deux étapes successives sont séparées par une transition (T12, T23, T34, T45, T56, T61). A chaque transition sont associées certaines conditions, constituant la "réceptivité" de la transition, L'étape suivante ne pouvant être déclenchée que si les conditions de la transition associée sont réalisées, c'est-à-dire que si sa réceptivité est vraie. Dans cet exemple, les réceptivités des transitions entre chaque étape seront les suivantes - Transition 1-2 (Tl2): matière en place et départ cycle - Transition 2-3 (T23): fin de compression - Transition 3-4 (T34): poinçon en haut - Transition 4-5 (T45): matrice en bas - Transition 5-6 (T56): pièce évacuée - Transition 6-1 (T61): matrice en haut. Ainsi, par exemple, l'étape 2 ne pourra être déclenchée que si la matière est en place et si le départ du cycle a été déclenché, ces deux conditions constituant la réceptivité de la transition 1-2. Une étape peut être active ou inactive. Lorsque l'étape est active, l'action associée à celle-ci doit être effectuée, ainsi par exemple lorsque l'étape 3 est active, le poinçon supérieur (1) doit remonter. Le but essentiel d'un Grafcet est de définir de façon claire et non ambigüe les spécifications fonctionnelles auxquelles doit répondre un automatisme de commande. Cependant la réalisation d'un programme de commande à partir d'un Grafcet devient délicate et hasardeuse dès que le processus à automatiser devient trop compliqué et important. Le but de la présente invention est donc de prévoir un procédé permettant de passer directement du Grafcet d'un processus à la commande de celui-ci, de façon à éviter toute intervention humaine entre la représentation graphique de celui-ci et sa matérialisation technologique. Ce but est atteint à l'aide du procédé selon l'invention qui cor- siste à - figer les informations (ou entrées) émanant du processus à automatiser, le figeage de chaque information ou entrée n'étant effectué qu'au moment de l'utilisation de cette information au cours du cycle - déterminer à partir de ces informations et suivant la loi de commande prévue, l'évolution effective du Grafcet du système; - communiquer au processus les nouvelles consignes établies. Le figeage des informations (entrées) n'est donc pas une opération spécifique en soi, mais s'intègre au processus de détermination des conditions d'évolution (réceptivités). L'acquisition d'une grandeur d'entrée n'est effectuée que lors d'un calcul de réceptivité où cette grandeur intervient. Toutefois, dans le but d'assurer l'unicité de l'acquisition, un marquage approprié est mis en place. Cette partie du procédé consiste donc à éclater l'opération fonctionnelle de figeage des entrées sur toute la durée d'un cycle. Ce procédé rejoint le modèle théorique lorsque le temps de cycle tend vers zéro. Par rapport à un procédé classique (figeage systématique des Entrées, évolution et mise à jour systématique des Sorties), le procédé selon l'invention est d'autant plus performant que le nombre d'entrées/ sorties devient important. Cette phase permet de mémoriser l'état de la partie opérative pour toute la durée du cycle et donc de se prémunir contre d'éventuels aléas d'évolution qui pourraient être générés par un changement, en cours de cycle, d'une ou plusieurs grandeur(s) d'entrée. L'évolution du Grafcet conduit à provoquer des changements d'états des grandeurs de sortie, grandeurs qui peuvent elles-mêmes servir d'entrées pour d'autres parties de la loi de commande. Afin de ne pas provoquer de changement des valeurs d'entrée, tant que la loi de commande est en cours d'évolution, les modifications des grandeurs de sortie, qui servent de nouvelles grandeurs d'entrée ou consignes, ne sont donc réalisées qu'une fois l'évolution de la loi de commande terminée au cours du même cycle. Avantageusement, dans ce procédé, I'évolution -du Grafcet du système est effectuée cycle après cycle, un cycle correspondant au fran chissement de toutes les transitions franchissables à un instant donné. Cette méthode permet ainsi d'évaluer tous les cas présentés et de déter miner la prochaine situation du système. Avantageusement aussi, la phase de mise à jour des sorties, qui deviennent les nouvelles entrées pour le cycle suivant, est limitée à la mise à jour des seules sorties qui ont évolué au cours du cycle, ce qui permet de réduire la dorée de cette phase de mise à jour. Pour prévoir l'évolution du Grafcet, il a été nécessaire de rechercher un procédé de simulation pouvant être mis en oeuvre sans nécessiter des temps de traitement trop importants ni la mise en oeuvre d'un trop grand nombre d'indicateurs. En effet, un procédé de simulation du Grafcet qui vient immédiatement à l'esprit consiste à déterminer l'évolution du Grafcet à partir de toutes les étapes existantes. Cependant, un tel procédé n'est pas du tout optimisé, notamment lorsqu'il s'agit de traiter des Grafcet importants, car il entraîne l'examen de situations qui ne peuvent évoluer et donc une perte de temps trop importante. Une seconde méthode consiste à s'intéresser à l'examen des étapes actives de façon à déterminer les étapes activables ou désactivables du système. Cependant, la mise en oeuvre d'une telle méthode est très lourde et complexe et nécessite un trop grand nombre d'indicateurs. Le procédé de simulation de l'évolution du Grafcet selon l'invention permet d'éviter ces inconvénients, du fait qu'il est basé sur l'étude des transitions validées. En effet, I'examen des transitions validées donne également des indications sur les étapes actives ou non actives du fait qu'une transition n'est validée que lorsque les étapes immédiatement précédentes sont actives. Ce procédé consiste à: - A) déterminer parmi les transitions validées celles qui devier- nen1? franchissables et à garder les autres transitions validées pour un examen ultérieur ; - B) activer les étapes non actives si tuées en aval des transitions franchissables et à transformer les transitions en aval de ces étapes en transitions validables - C) désactiver les étapes en amont des transitions franchissables ; - D) examiner les étapes situées en amont des transitions validées non franchissables déterminées à l'étape A, afin de déterminer celles qui seront validées lors du prochain cycle d'évolution. A l'issue de ce procédé, on obtient donc les étapes activées et désactivées du cycle examiné, ce qui permet de déterminer les nou veaux états de sortie du système et de mettre à jour l'état des sorties. Avantageusement, la détermination parmi les transitions validées de celles qui deviennent franchissables est réalisée en calculant la réceptivité associée à chaque transition validée à partir des valeurs d'entrée lues au début de chaque cycle, une transition validée devenant franchissable lorsque sa réceptivité est vraie. Le calcul des réceptivités associées à chaque transition franchissable à l'étape A permet également de déterminer les transitions qui sont susceptibles de rester validées au cours du prochain cycle d'évolution, ces transitions ayant une réceptivité fausse. Ces transitions susceptibles de rester validées sont classées dans un ensemble particulier des transitions à réexaminer à l'étape A et seront examinées à nouveau lors de la dernière étape D du procédé de simulation. A l'étape A du procédé, on réalise donc une partition de l'ensemble des transitions validées en un ensemble de transitions franchissables et en un ensemble de transitions devant être examinées à nouveau. Les transitions franchissables ayant été déterminées, les étapes B et C du procédé permettent d'activer les étapes situées en aval de ces transitions et de désactiver les étapes situées en amont de ces transitions, c'est-à-dire de poursuivre le cycle automatisé. La dernière étape D du procédé consiste à réexaminer les transitions susceptibles de rester validées qui ont été déterminées à l'étape A, en effet ces transitions ont pu être modifiées par la désactivation des étapes situées en amont des transitions franchissables et ne plus être validées, de sorte qu'il est nécessaire de les examiner à nouveau, afin de déterminer celles qui seront validées lors du prochain cycle d'évolution. Dans le cas d'un processus à automatiser particulièrement complexe, (plusieurs événements et états distincts), on obtient un Grafcet de commande complexe et difficile à représenter graphiquement, et on est, en général, amené à représenter ce processus par plusieurs grafcets "hiérarchisés", c'est-à-dire à subdiviser la loi de commande en plusieurs grafcets élémentaires, interagissant les uns avec les autres et capables d'exercer aussi bien des actions sur la partie opérative que des actions sur les grafcets de niveaux fonctionnels inférieurs. Cette découpe de la loi de commande peut se faire sur les critè res les plus variés : les différentes parties mécaniques, les différents modes de marche ou d'arrêt envisagés (Cf. Le "GEMMA, Guide d'Etude des Modes de Marche et d'Arrêt" publié par l'ADEPA), les éventuelles parties commande déportées sur d'autres machines (automates...), les flux de communication, etc... Or, la structure multigrafcet peut conduire à des ordres et des contre-ordres simultanés. Par exemple, si l'on considère les deux grafcets G1, G2 représentés partiellement aux figures 2 et 3 - le grafcet G1 est chargé de la surveillance des conditions de sécurité d'une machine-outil, telle qu'une fraiseuse et comporte notamment les étapes Il et 12 montrées à la figure 2. Ainsi que le montre cette figure 2, l'étape 11 est quelconque, tandis que l'étape 12 consiste à arrêter la broche et à arrêter l'avance de la machine, lorsque la ou les conditions d'arrêt d'urgence (transition entre les étapes 11 et 12) sont réalisées. - le grafcet G2 est, au contraire, chargé de la commande "normale" en marche de production de la machine et comporte notamment les étapes 21, 22, l'étape 22 consistant à démarrer la broche et à commander l'avance rapide de la machine et étant activée lorsque la condition marche automatique est réalisée. On voit donc que si, en l'absence de toute précaution adéquate, les conditions "Arrêt d'urgence" et "Marche Auto" se produisent simultanément au cours du même cycle, il y a génération de deux ordres contradictoires. Or, pour éviter ce type de conflit, il faut que le programmeur prenne des précautions qui deviennent rapidement trop lourdes avec l'augmentation des grandeurs de sécurité et des autres conditions externes au problème initial à traiter. Un autre problème posé par la structure multigrafcet est celui des actions conditionnelles. L'action conditionnelle est une action continue, dont l'exécution est soumise à une condition logique supplémentaire. Très souvent, les actions conditionnelles sont des actions temporisées, le temps intervenant comme condition logique. La figure 4 illustre deux actions conditionnelles A et B, dont une partie du grafcet est schématisée à la figure 5. Le grafcet montré à la figure 5 définit les deux actions A et B à l'étape 17 ; ces deux étapes sont les suivantes A, si la condition non (t/17/5s) est remplie, c'est-à-dire si la proposition "5 secondes écoulées depuis l'activation de l'étape 17" est fausse et, B, si la condition (t/17/5s), c'est-à-dire "5 secondes écoulées depuis l'activation de l'étape 17" est vraie. Par conséquent, et ainsi que le montre la figure 4, L'action A sera réalisée penant les cinq premières secondes suivant l'activation de l'étape 17, tandis qu'au contraire B ne sera réalisée qu'à partir de la sixième seconde à dater de l'activation de l'étape 17. Ces actions conditionnelles présentent un caractère "mixte" dans la mesure où elles ont deux composantes distinctes: - une composante condition qui a un caractère "Entrée" et doit être calculée avant d'effectuer une seule action, c'est-à-dire avant la mise à jour de toute "sortie" et, - une composante action, qui a un caractère "sortie", du fait que cette action ne peut être effectuée qu'après que l'évolution de la commande ait été complètement déterminée. Un autre but de l'invention est donc de prévoir, dans le cas d'un grafcet multiple, un procédé permettant de passer directement de ce grafcet à la commande du processus correspondant, en permettant la coexistence au sein de ce grafcet de plusieurs grafcets, en évitant entre les différents grafcets des conflits pouvant résulter d'ordres contradictoires et en résolvant le problème posé par les actions conditionnelles. Ce but est atteint en ce que le procédé selon l'invention, qui contient les étapes A à D décrites précédemment, consiste à classer les actions (12,22) par priorités et à traiter ces actions (12,22) par ordre de priorité décroissante et à verrouiller les "grandeurs-actions", après mise à jour, ce verrouillage étant réalisé par invalidation des variables utilisées, en fin d'action. Les priorités sont attribuées en fonction de l'importance relative des grafcets, ainsi, par exemple, dans le cas décrit aux figures 2 et 3, le grafcet G1 serait plus prioritaire que le grafcet G2, et les actions du premier seraient donc exécutées avant celles du second. Ce procédé permet donc de prendre en compte, de façon sûre, les conditions de sécurité dans les automatismes, ce qui est souvent difficile à réaliser dans d'autres systèmes de commande. En ce qui concerne les actions conditionnelles, le procédé selon l'invention, consiste à évaluer les conditions de ces actions conditionnelles après avoir déterminé les étapes actives du cycle et à choisir l'action à effectuer suivant le résultat du test, les actions retenues étant effectuées en respectant l'ordre de priorité. Cette façon de procéder permet de garantir qu'aucune action dépendant du cycle en cours ne viendra influencer l'évaluation d'une condition, puisque les conditions ne sont évaluées qu'après détermination des étapes actives et que les actions conditionnelles seront traitées comme des actions normales en respectant les priorités et les verrouillages. Afin de permettre la coexistence de plusieurs grafcets au sein d'une même loi de commande complexe, le procédé selon l'invention définit quatre types d'interactions entre les grafcets - lancement de l'exécution d'un grafcet à partir d'un autre grafcet (lancer) ; - arrêt complet de l'exécution d'un grafcet à partir d'un autre grafcet (tuer) ; - commande depuis un grafcet de la suspension de l'exécution d'un grafcet, celui-ci restant néanmoins dans le contexte de la loi de commande et pouvant repartir sur demande programmée de l'utilisateur, ses étapes actives restant actives pendant la suspension de l'exécution (figer) ; - commande depuis un grafcet de la reprise de l'exécution d'un grafcet précédemment figé (relancer). Le procédé de simulation selon l'invention consiste alors - à l'étape A, à ne calculer la réceptivité que des transitions validées dont le grafcet n'est pas figé ou tué ,à placer la transition dans l'ensemble des transitions devant être réexaminées, si le grafcet est figé ,et à perdre la transition si le grafcet est tué et comprend, en outre, les étapes consistant à: E- déterminer les étapes comportant des actions conditionnelles et actives au cycle précédent qui restent actives en fin du cycle d'évolué tion en cours F- déterminer les actions conditionnelles qu'il faut effectivement effectuer, compte tenu des conditions relatives aux étapes actives du cycle en cours, et en tenant compte des priorités. G- exécuter par ordre de priorité décroissante les actions à effectuer, de façon à mettre à jour les sorties, ces actions n'étant exécutées que si le grafcet associé est non figé et actif. Les actions tuer, figer, lancer sont intégrées par le biais d'indicateurs d'activité de façon connue en soi. REVENDICATIONS 1- Procédé d'automatisation d'un processus directement à partir de son Grafcet, caractérisé en ce qu'il consiste a - figer les informations ou entrées émanant du processus à automatiser, le figeage de chaque information ou entrée n'étant effectué qu'au moment de l'utilisation de cette entrée au cours du cycle ; - déterminer à partir de ces informations l'évolution effective du Grafcet du système - communiquer au processus les nouvelles consignes établies, c'està-dire mettre à jour les sorties. 2- Procédé d'automatisation selon la revendication 1, caractérisé en ce que l'évolution du Grafcet du système est effectuée cycle après cycle, un cycle correspondant au franchissement de toutes les transitions franchissables à un instant donné. > Procédé d'automatisation selon l'une des revendications 1 ou 2, caractérisé en ce que la phase de figeage des informations est limitée à l'acquisition des seules entrées nécessaires à l'évaluation d'une expression d'entrée ou de sortie. 4- Procédé d'automatisation selon l'une des revendications 1 à 3 , caractérisé en ce que les informations figées ne sont acquises qu'une fois et une seule au cours d'un même cycle. 5- Procédé d'automatisation selon l'une quelconque des revendications 1 à 4, caractérisé en ce que la phase de mise à jour des sorties, qui deviennent les nouvelles entrées pour le cycle suivant, est limitée à la mise à jour des seules sorties qui ont évolué au cours du cycle. S Procédé d'automatisation selon la revendication 5, caractérisé en ce que la mise à jour d'une sortie n'est effectuée qu'une fois au plus au cours d'un même cycle. 7- Procédé d'automatisation selon l'une des revendications 1 à 6, caractérisé en ce que l'évolution du Grafcet est simulée à l'aide d'un procédé basé sur l'étude des transitions validées. S Procédé de simulation de l'évolution du Grafcet selon la revendication 7, caractérisé en ce qu'il consiste à A- déterminer parmi les transitions validées celles qui deviennent franchissables ; B- activer les étapes non actives situées en aval des transitions franchissables et à transformer les transitions en aval de ces étapes en transitions validables; C- désactiver les étapes en amont des transitions franchissables; D- examiner les étapes situées en amont des transitions validées non franchissables déterminées à l'étape A, afin de determiner celles qui seront validées lors du prochain cycle d'évolution. 9- Procédé de simulation selon l'une des revendications 7 ou 8, caractérisé en ce que la détermination, à l'étape A, parmi les transitions validées de celles qui deviennent franchissables est réalisée en calculant la réceptivité associée à chaque transition validée à partir des valeurs d'entrée lues au début de chaque cycle, une transition validée devenant franchissable lorsque sa réceptivité est vraie. 10- Procédé de simulation selon l'une quelconque des revendications 7 à 9, caractérisé en ce que l'étape A consiste- à réaliser une partition de l'ensemble des transitions validées en un ensemble de transitions franchissables et en un ensemble de transitions susceptibles de rester validées et devant être examinées à nouveau. I K Procédé de simulation selon l'une quelconque des revendications 8 à 10, caractérisé en ce que dans le cas d'un Grafcet multiple, il consiste à classer les actions (12, 22) par priorités et à traiter ces actions (12, 22) par ordre de priorité décroissante et à verrouiller les "grandeurs-actions" après mise à jour, ce verrouillage étant réalisé par invalidation des variables utilisées, enfin d'action. 12- Procédé de simulation selon la revendication 11, caractérisé en ce qu'il consiste à évaluer les conditions des actions conditionnelles après avoir déterminé les étapes actives du cycle est à choisir l'action à effectuer suivant le résultat du test, les actions retenues étant effectuées en respectant l'ordre de priorité. 1S Procédé de simulation selon l'une des revendications 11 ou 12, caractérisé en ce qu'il consiste à définir quatre types d'interactions entre les Grafcets : - lancement de l'exécution d'un Grafcet à partir d'un autre Grafcet (lancer) - arrêt complet de l'exécution d'un Grafcet à partir d'un autre Grafcet (tuer) - commande depuis un Grafcet de la suspension de l'exécution d'un Grafcet, celui-ci restant néanmoins dans le contextede la loi de commande et pouvant repartir sur demande programmée de l'utilisateur, ses étapes actives restant actives pendant la suspension de l'exécution, (figer) - commande depuis un Grafcet de la reprise de l'exécution d'un Grafcet précédemment figé (relancer). 14- Procédé de simulation selon la revendication 13, caractérisé en ce qu'il consiste - à l'étape A, à ne calculer la réceptivité que des transitions validées dont le Grafcet n'est pas figé ou tué, à placer la transition dans l'ensemble des transitions devant être examinées si le Grafcet est figé, et à perdre la transition si le Grafcet est tué, et en ce qu'il comprend en outre les étapes consistant à: : E - déterminer les étapes comportant les actions conditionnelles et actives au cycle précédent qui restent actives en fin du cycle d'évolution en cours, F - déterminer les actions conditionnelles qu'il faut effectivement effectuer compte tenu des conditions relatives aux étapes actives du cycle en cours, et en tenant compte des priorités, G - exécution par ordre de priorité décroissante les actions à effectuer de façon à mettre à jour les sorties, ces actions n'étant exécutées que si le Grafcet associé est non figé et actif.