La norME S88.02 : un Langage pour le controle des procedes batch Jean Vieille Consultant 4, rue des Ecrivains BP46 - 67061 Strasbourg cedex LIENHYPERTEXTE "mailto:jean-vieille@usa.net" jean-vieille@usa.net http://www.jvieille.homepage.com Resume Dans la foulee de la norme S88.01 traitant du controle des procedes discontinus, le projet de norme S88.02 propose un modele de donnees pour interfacer les applications et echanger les recettes et un langage de description de la Recette, le PFC (pour " Procedure Function Charts ") qui repose sur le modele de donnees. Ce langage vise la reduction de la courbe d'apprentissage des nouveaux systemes et l'amelioration de la communication entre l'Homme et le Systeme. Cette presentation presente un apercu du developpement et des regles d'utilisation du PFC ainsi que les benefices attendus par leur adoption dans l'industrie. La specificite des procedes discontinus Par opposition aux procedes de type Discret (manufacturier) et continus (energie, petrochimie...), on distingue les procedes de type Discontinu ou Batch par les caracteristiques suivantes : Ils operent selon un cycle au cours duquel des quantites determinees de matiere sont transformees en produit fini, La taille des equipements determine directement la production du cycle, Le produit fabrique depend de la Procedure executee par le cycle appuye par les fonctions elementaires de chaque equipement. Il s'agit souvent d'ateliers " flexibles " ou multi-produits. La chimie, l'agroalimentaire et la pharmacie representent l'essentiel de ces procedes. La derniere contrainte de flexibilite ajoutee a la complexite relative du controle de base des equipements a amene le developpement d'une reflexion particuliere sur la strategie de controle de ces ateliers : la norme S88.01 La norme S88.01 La norme IEC 61131-3 definit des langages de programmation adaptes au controle de base des equipements du procede. Essentiellement conceptuelle, la norme ANSI/ISA S88.01 / IEC 61512-1 (que nous appellerons " S88 " dans la suite de l'expose) apporte un niveau superieur au controle de procede : la flexibilite de l'allocation des ressources et de la strategie de controle. Elle decouple les domaines et les responsabilites du controle de base des equipements vis-a-vis de la specification du procede de fabrication et de l'allocation des ressources (la Recette). Elle peut egalement s'appliquer a d'autres types de procedes (voir les travaux EBF WG3). Equipements et Recette La norme S88.01 separe le controle en deux domaines de responsabilite : Le controle des equipements La Recette Le premier domaine est celui de l'Automatique. Le controle de l'equipement est par definition independant du produit a fabriquer. Il fournit les ressources fonctionnelles de base pour construire la strategie de fabrication (transformations, transferts d'energie et de matieres). Le second domaine est celui du Procede. Il utilise les ressources fonctionnelles des equipements pour accomplir la strategie de fabrication du produit. La frontiere entre ces domaines definit directement le degre de flexibilite de l'atelier et attribue les responsabilites correspondantes a l'Automaticien d'un cote, au gestionnaire et a l'ingenieur procede de l'autre. La Recette est composee de 5 elements : Entete Procedure Formule (Parametres, Entrees et Sorties Procede) Exigences Equipements Autres Informations Hierarchie de la Procedure Le controle procedural de la norme S88.01 repose sur 4 niveaux hierarchiques : Procedure Procedure Unite Operation Phase Une Procedure est composee de Procedures Unite elles-memes composees d'Operations... Des niveaux peuvent etre omis, des niveaux complementaires peuvent etre ajoutes. Ces elements proceduraux sont appeles de facon generique : Element Procedural Recette ou RPE pour la strategie de fabrication Element Procedural Equipement ou EPE pour le controle des equipements On pourra definir des Procedures Recette, Procedure Equipement, Procedures Unite Recette, Procedures Unite Equipement, Operations Recette, Operations Equipement, Phases Recette et Phases Equipement. La separation entre le domaine de la Recette et le domaine de l'Equipement est du ressort de l'implementation. Toutefois, la plupart des systemes de pilotage de Recettes imposent un couplage au niveau de la Phase. ( RENV _Ref462561655 \h Figure 1 ) Figure SEQ Figure \* ARABE 1 - Distribution du controle procedural entre Recette et Equipement (ISA S88.01 1995) Types de Recettes La norme S88.01 propose 3 types de Recettes selon le niveau de detail et l'utilisation : Recette Generale Recette Site Recette Maitre Seule la derniere peut donner naissance a une Recette executable, la Recette Controle. Les autres Recettes ont d'autres objectifs lies a la creation des produits et a la planification. Le rapport ISA TR88.0.03 preconisait le developpement d'un langage adapte aux trois types de Recettes, mais cet objectif a ete abandonne entre temps. La situation au niveau des Recettes de niveau superieur est loin d'etre claire, et ce probleme est place dans les priorites d'action du groupe SP88 pour les prochains projets de norme. Contexte general La norme S88.01 definit le terme Procedure comme " la strategie pour executer un procede ", mais les regles pour specifier cette Procedure ne sont pas definies. C'est une lacune importante de la premiere partie de la norme : elle etait intentionnelle du fait des opinions variees au sein du comite a cette epoque. Le comite SP88 reconnaissait qu'il s'agissait d'un probleme important et adopta les 2 resolutions suivantes : Etablissement d'un rapport sur les formats possibles de representation des Procedures, Definition d'une methode pour la description de la Recette dans la seconde partie de la norme. Le rapport technique ISA-TR88.0.03 fut publie en 1997. Le travail sur la seconde partie se poursuivit apres la publication de ce rapport, et une methode normalisee pour decrire la logique procedurale des Recettes est exposee dans la section 6 du projet de norme S88.02[1] " Procedure Function Charts ". La notation PFC a ete developpee en utilisant des elements des trois formats discutes dans le rapport technique : Liste, Gantt et SFC (Sequencial Function Charts). A premiere vue, la notation PFC est proche du SFC, mais plusieurs amenagements ont ete developpes pour tenir compte des specificites d'execution et de documentation du controle procedural vis-a-vis du controle sequentiel. La methode choisie pour la description de la Recette ne prend en compte que la Procedure : L'en-tete, les Exigences Equipements, la formule et les autres informations ne sont pas traites. Par definition, la Procedure supporte la structure de la Recette a laquelle se rattachent obligatoirement les autres categories d'information. Ces informations ne sont pas normalisees au-dela de la necessite d' " indiquer clairement et de facon consistante pour une application donnee leur relation avec la Procedure " RENVOINOTE _Ref462717260 \h [1] . Les benefices attendus d'une methode normalisee de description de la Procedure sont : Permettre l'echange des Recettes entre systemes (en validant les structures de donnees proposees dans la norme S88.02) Reduire la courbe d'apprentissage des utilisateurs d'un systeme a l'autre Fournir une base commune de dialogue entre les utilisateurs et les fournisseurs L'aspect normatif de la notation PFC n'impose pas son utilisation exclusive. Il est reconnu que des methodes alternatives pourront etre preferees en fonction des caracteristiques de la Procedure (taille, complexite, exigences particulieres de l'utilisateur...). Les objectifs Un langage est un ensemble de symboles et de regles utilises pour communiquer. Dans le cas des systemes d'information, ils permettent a l'homme de dialoguer avec la machine pour decrire la tache que la machine doit executer et en controler son execution. La definition precise des objectifs et des contraintes est essentielle pour guider le developpement. La liste suivante est partiellement mentionnee en annexe du projet ISA-dS88.02 RENVOINOTE _Ref462717260 \h [1] : Simple a suivre : il s'agit d'un langage de specification destine a etre utilise par des non-informaticiens et non-automaticiens Facile a construire : peu d'exigences de syntaxe et de symboles a apprendre Limites clairement definies : symboles graphiques normalises de Debut et de Fin Description de l'ordre d'execution non ambigue : sequence, parallelisme, selection, convergence... Expression des relations de coordination : transfert de matieres et synchronisations Support des Niveaux hierarchiques : symboles uniques, mais differencies pour tous les niveaux de la Procedure Support multi-niveaux : mise en evidence de la decomposition possible d'un element de Procedure Applicable aux Recettes Maitre et Controle. Le traitement des Recettes de haut niveau n'est pas retenu pour le PFC. Independant du media : utilisable aussi bien pour une implementation " papier-crayon " qu'avec un ordinateur capable d'animations graphiques colorees. Le langage doit permettre de fournir tous les details necessaires pour decrire de facon non ambigue la strategie de fabrication. A ce titre, il doit donc supporter le modele d'echange de donnees defini dans les sections 4 et 5 de la norme S88.02. La capacite d'extension est induite par l'exigence d'une description non ambigue. Dans les cas les plus simples, la Procedure peut ne comporter qu'un seul Element Procedural Recette (RPE) ou une simple liste executee sequentiellement. Dans les cas complexes, des logiques conditionnelles et des contraintes de temps peuvent intervenir. Comparaison des methodes existantes et proposees Sur la base des objectifs et contraintes ci-dessus, le comite reconnu que le rapport technique fournissait une analyse precise des options possibles, incluant la plupart des methodes utilisees par les systemes de controle batch du marche. Ces methodes sont les suivantes : Liste d'instruction C'est la forme la plus simple pour la representation d'une sequence lineaire ( RENV _Ref462627042 \h Figure 2 ). La liste presente l'avantage d'etre facile a visualiser. N? Phase Parametres de Phase Parametre Valeur Type 1 Remplir Eau 1000 kg Entree 2 Ajouter Sel 50 kg Entree 3 Chauffer Vapeur 50 (C Process 4 Ajouter Sucre 30 kg Entree Figure SEQ Figure \* ARABE 2 - Liste d'instruction Historiquement, la plupart des Procedures Recettes ont ete decrites de cette facon. Ces Recettes presentaient a l'operateur une liste numerotee d'etapes a executer. S'il est convenable pour des situations simples, ce format n'est pas utilisable dans des cas plus complexes : les parallelismes et sequences complexes avec logique conditionnelle sont tres difficiles a decrire clairement avec ce format. L'exemple de la RENV _Ref462626849 \h Figure 3 montre a quoi pourrait ressembler une approche textuelle. Il s'agit d'une proposition de langage d'echange " BxL " pour l'echange de donnees de Recette (non retenu a ce jour). Cette forme evoluee bien adaptee pour la communication entre ordinateurs n'est a l'evidence pas utilisable pour un dialogue efficace avec un etre humain... [2] Figure SEQ Figure \* ARABE 3 - Langage Litteral Diagramme de Gantt (modifie) Figure SEQ Figure \* ARABE 4 - Diagramme de Gantt modifie Les diagrammes de Gantt sont tres utiles pour decrire la progression des activites dans le temps. Ils peuvent egalement montrer de niveaux multiples d'activites. Outils de base de la planification, ils sont relativement bien adaptes pour la description de Procedures Recettes qui consistent en une ou plusieurs Procedures Unite operent de facon plus ou moins independante avec des points de coordination. Le diagramme de la RENV _Ref462626880 \h Figure 4 presente quelques particularites : Le deroulement vertical qui se prete mieux a un nombre d'activites successives plus important que les activites paralleles et qui suit la logique du format liste ou du SFC Les liens de coordination entre Procedures Unite Le decoupage des Procedures Unite en Operations Une base de temps relative et non absolue du fait que l'instant de lancement des activites et leur duree ne sont pas connus de maniere deterministe avant leur execution Toutefois, lorsqu'une logique conditionnelle complexe doit etre introduite, le diagramme de Gantt perd son efficacite. Les systemes de planification utilisent alors les diagrammes de Pert pour traiter ce type d'information et gerer les situations complexes avec des predecesseurs et des successeurs multiples. Si les diagrammes de Pert sont efficaces pour les systemes de planification sophistiques, ils ne sont guere adaptes a la conduite d'une unite de fabrication. SFC La troisieme methode discutee dans le rapport technique est le Sequential Function Chart (SFC) defini par la norme IEC 61131-3 et base sur la norme IEC 60848 (GRAFCET). C'est un langage largement repandu et bien accepte. Il offre des moyens puissants pour specifier la logique conditionnelle, ce qui manque aux precedentes methodes de type Liste ou Gantt. On note que la plupart des systemes batch actuels utilisent le SFC pour decrire les Procedures. La RENV _Ref462627007 \h Figure 5 montre l'exemple d'une Operation qui active des Phases. Figure SEQ Figure \* ARABE 5 - Representation SFC d'une Operation Le graphe SFC decrit bien la logique conditionnelle souvent necessaire au niveau de l'Operation. Au niveau superieur de la Procedure toutefois, cette capacite a peu d'interet. La RENV _Ref462627160 \h Figure 6 montre deux Procedures Unite actives simultanement. Dans ce cas, on ne dispose pas d'information concernant les flux matieres, la synchronisation entre les Procedures Unite et leur deroulement general relatif dans le temps. Par exemple, la Procedure Unite Reaction n'est pas supposee demarrer avant que la Procedure Unite Preparation n'ait atteint une certaine situation. Le graphe ne montre pas cela parce qu'il doit placer toutes les Procedures Unite dans la meme structure sequentielle parallele. Figure SEQ Figure \* ARABE 6 - Representation SFC d'une Procedure Unite En conclusion Chaque approche presente des avantages et des inconvenients, et le rapport ne conclut pas sur une recommandation. Deux autres problemes n'ont pas ete mentionnes par le rapport, bien qu'ils soient critiques pour la description de la Recette : l'utilisation de niveaux multiples dans la hierarchie et la separation entre les Elements Proceduraux Equipement et Recette. Autres apports Chaque constructeur de systeme ou editeur de solutions pour le controle batch a developpe son propre langage. Cette diversite des approches qui provoque la confusion des utilisateurs a ete un element moteur pour le developpement du PFC. Les acteurs majeurs ont participe a l'elaboration de ce langage. Chacun s'est battu pour conserver les atouts de sa propre solution dans la norme. Pendant cette evaluation, d'autres travaux ont ete etudies. On doit signaler par exemple les travaux remarquables de Karl-Erik Arzen et Charlotta Johnsson sur le " High Level Grafchart ". Ils proposent une evolution sans compromis du Grafcet vers une forme objet et demontrent son application dans le controle discontinu [3] [4] [5] [6]. Les travaux de revision de la norme IEC 60848-1988 pour permettre de specifier de multiples niveaux de graphe offraient egalement un champ de reflexion interessant [7] [8] [9] La notation resultante du Procedure Function Chart s'est inspiree du High-Level Grafchart et des modifications proposees pour la norme IEC 60848. Developpement des " Procedure Function Charts " Cette evaluation concluait donc qu'aucune methode existante ne convenait pour repondre a tous les objectifs et contraintes enonces a tous les niveaux et pour tous les degres de complexite des Procedures. Par contre, il etait reconnu que chacune des methodes discutees dans le rapport technique avait des caracteristiques interessantes qui, combinees entre elles, pouvaient contribuer a definir une nouvelle methode efficace. Il etait egalement reconnu qu'une methode similaire a celle proposee par la revision des macro-etapes de la norme IEC60848 permettrait de supporter les niveaux multiples dans la Recette. La notation PFC a ete developpee et revisee sur une periode de 4 annees marquees par des faux departs et des marches arrieres. Chaque fois que de nouveaux membres se joignaient au comite, de nouvelles discussions et de nouvelles alternatives surgissaient. Il s'avera impossible de developper une methode satisfaisante dans l'esprit de chacun. Compromis et concessions ont ete le terrain du consensus sur la methode de description retenue. En guise de parcours simplifie du processus de developpement de la notation PFC, il peut etre utile de considerer quelques elements qui ont guide sa genese : L'influence du format Liste est visible dans le principe des Transitions Implicites (discutees plus loin) qui permet de decrire une simple liste d'Elements Proceduraux. La capacite du diagramme de Gantt a representer la notion de duree et la synchronisation apparait dans la possibilite de dessiner des elements proceduraux de longueur fonction de leur duree relative. L'influence du SFC est evidente : Utilisation de selections de sequences et de sequences simultanees, alternance Transition - Etape - Transition. Bien que le terme ``Macro Etape'' ne soit pas utilise, le concept mis en avant par le projet de revision de la norme IEC60848 est reflete dans la notation PFC. La separation entre la logique de la Recette et celle de l'Equipement a conduit a definir une specification particuliere pour l'activation et l'evaluation des Transitions. Il existe une difference fondamentale entre la logique procedurale de la Recette et la logique sequentielle de l'entite d'equipement. La logique d'equipement, quel que soit le langage, doit toujours etre responsable de la conclusion de son traitement. La decision de l'entite d'equipement peut etre basee sur des signaux externes sans filtrage interne, par contre, la capacite de la logique d'equipement a traiter ses taches menageres ou d'autres activites lors d'une demande de fin d'execution est critique. C'est la ligne de raisonnement qui a conduit a definir un comportement different de la relation RPE-Transition du PFC de la relation Etape-Transition du SFC. Les specificites Process telles que l'allocation des ressources, les transferts de matieres, la synchronisation et les activites asynchrones sont prises en compte par la notation PFC. La Procedure Recette doit montrer l'orchestration de Procedures Unite relativement independantes meme lorsqu'elles se decomposent en elements de niveau inferieur (Operations, Phase). Notation du " Procedure Function Chart " La notation presentee ici est definie dans le projet de norme ISA-dS88.02 RENVOINOTE _Ref462717260 \h [1] dans son etat au moment ou ce papier est redige. Il est possible que cette notation soit modifiee avant que ce projet ne soit confirme comme norme ANSI/ISA et IEC a l'issue du processus d'approbation actuellement en cours. Les indications fournies devront donc etre confrontees a la publication officielle en cas de reference future. L'objectif de cette presentation n'est pas de proposer une reference complete du langage PFC qui devrait fait l'objet de publications ulterieures. Il s'agit d'une breve vue d'ensemble de la notation au travers de quelques exemples. Les symboles utilises dans la notation PFC sont les suivants : Ligne de synchronisation avec transfert de matiere Figure SEQ Figure \* ARABE 7 - Symboles PFC PFC " Procedure Operation " Le plus bas niveau hierarchique de la Procedure Recette est la Procedure Operation qui decrit les enchainements des Phases Recette, elle-meme couplees (au besoin) aux Phases Equipement. Ce cas limite ou la Recette determine les enchainements proceduraux au plus bas niveau de la hierarchie S88 correspond au niveau de couplage exclusif de la plupart des moteurs d'execution batch. La RENV _Ref462716484 \h Figure 8 montre comment decrire une Operation simple de 2 Phases en utilisant les symboles PFC. Les symboles de Debut et Fin indiquent ou commence et ou se termine l'execution du PFC. Le diagramme est developpe verticalement du debut a la fin. Les liens directs connectent les differents symboles et determinent l'ordre d'execution du diagramme. Figure SEQ Figure \* ARABE 8 - Procedure Operation PFC Les Phases Recette correspondent a des Phases Equipement qui peuvent etre implementees en logique programmee dans un controleur de procede (processeur SNCC ou Automate). Ces 2 Phases sont representees differemment pour mettre en evidence l'utilisation des Transitions Implicites et Explicites. Transition Implicite La Phase Remplir utilise une Transition Implicite. Elle est programmee de telle sorte qu'elle passe a l'etat " Termine " lorsqu'elle atteint son objectif (dans ce cas : atteindre le niveau de 4 metres). Cet objectif a ete defini en utilisant un parametre transmis a la Phase au lieu d'une condition de Transition. La Phase suivante Purger doit demarrer des que la Phase Remplir atteint son objectif. On considere dans ce cas qu'il n'est pas necessaire de representer une Transition entre ces 2 Phases : les Phases s'enchainent naturellement par le seul jeu de leur execution. Lorsqu'une Transition n'est pas decrite parce qu'elle correspond a la fin de l'element procedural precedent sans aucune autre condition, elle est appelee Transition Implicite. La notion de Transition est maintenue dans le but de respecter la regle Etape-Transition-Etape de la norme IEC 61131-3. Figure SEQ Figure \* ARABE 9 -Transition Implicite La RENV _Ref462716550 \h Figure 9 developpe le concept de Transition Implicite. Par definition, la Transition Implicite est une convention qui autorise a ne pas representer dans le PFC la condition " Element Procedural Equipement Termine ". Dans la plupart des applications batch, les Elements Proceduraux Equipement sont programmes par l'automaticien pour etre lances par la Procedure Recette et poursuivent leur execution en utilisant les parametres de formule appropries charges avant l'execution. Ceci est un probleme critique du controle batch : l'Element Procedural Equipement controle toujours lui-meme sa fin d'execution, meme si une Transition Explicite du PFC la requiert. Ce mecanisme est naturel pour l'auteur de la Recette. Il s'agit d'une difference majeure avec le SFC : lorsqu'une Transition est evaluee vraie, les etapes precedentes sont immediatement terminees, et il n'existe aucune opportunite pour poursuivre les " taches menageres ". Une interruption soudaine des Elements Proceduraux Equipement n'est pas adaptee aux applications batch, et on remarquera que beaucoup de systemes utilisent une forme alteree du SFC pour contourner ce probleme. Transition Explicite Dans le cas de l'exemple precedent, on aurait pu representer une condition " Vraie " ou " Niveau atteint " ou " Phase de remplissage terminee ". Si une telle information est ressentie comme necessaire, elle pourra etre decrite a l'aide d'une Transition Explicite. Figure SEQ Figure \* ARABE 10 -Transition Explicite Une Transition Explicite suit la Phase Recette Purger. Cette Phase est programmee dans l'equipement pour vider le reacteur. Apres que cette Phase ait ete lancee, la logique de la Phase Equipement ne fermera la vanne de purge que lorsque l'ordre lui en aura ete donne par l'execution du PFC lorsque la Transition " Niveau <= 1 metre " sera devenue vraie. La Phase ferme la vanne, effectue les actions necessaires et passe a l'etat " Termine ". Le PFC franchit alors la Transition, atteint le symbole Fin, et conclut l'execution de l'Operation On voit que dans ce cas (enchainement simple entre 2 elements proceduraux) l'utilisateur a le choix d'utiliser une Transition Explicite ou Implicite avec les memes effets. La possibilite de choisir le type de Transitions implique une coordination entre l'automaticien qui developpe la logique des Elements Proceduraux Equipement et l'ingenieur qui decrit le procede de fabrication. La description des conditions attachees aux Transitions Explicites n'est pas imposee par la norme. Les applications peuvent utiliser des notations particulieres ou faire reference a la norme IEC 61131-3. Regles de representation et parametres La norme n'impose pas de couleurs pour le diagramme ni de facon de representer les parametres. Ils doivent simplement etre accessibles a partir de l'element procedural correspondant. Debut et fin Les premiers projets imposaient l'utilisation d'un seul symbole de depart et d'arrivee par graphe. L'utilisation de graphes a entrees et sorties multiples est desormais permise pour decrire des Procedures paralleles asynchrones avec evolutions multiples. C'est une nouvelle difference importante avec le SFC. A la difference du SFC, il n'y a pas d'etape initiale. Celle-ci est unique dans le cas du SFC, alors que la notation PFC autorise l'execution simultanee de plusieurs elements proceduraux au lancement de la Procedure. Ceci est possible grace au symbole de Debut. Ces symboles ne sont pas executes et ne supportent pas d'informations. Ils representent seulement des positions. PFC " Procedure Unite " La RENV _Ref462562704 \h Figure 11 represente une Procedure Unite qui determine les enchainements des Operations. A ce niveau, l'element procedural peut contenir un PFC de niveau inferieur (Operation Recette manipulant des Phases ) ou referencer directement une Operation Equipement. Figure SEQ Figure \* ARABE 11 - Procedure Unite PFC Le signe " + " place dans le coin superieur droit de l'element procedural indique l'encapsulation d'un PFC de niveau inferieur. Par exemple, l'Operation Initialise reference une Operation Equipement, il ne contient donc pas de Phases Recette. Toutes les autres Operations encapsulent des PFCs, et donc des Phases. L'utilisation de Transitions Implicites apres les Operations Initialise et Charge permet une representation concise : la premiere partie du graphe se lit comme une liste. Les Transitions Explicites sous le symbole de selection (barre horizontale) sont evidement obligatoires. PFC " Procedure Recette " Les besoins de descriptions de la Procedure Unite et de la Procedure Operation ne sont pas tres differents. Par contre, la representation de la Procedure Recette differe sensiblement des 2 precedentes. La Procedure Recette orchestre l'execution d'activites asynchrones (par exemple les Procedures Unite) qui ont des points de synchronisation, des transferts de matieres et des Exigences Equipements. En tant que plus haut niveau de la Procedure, il est necessaire de fournir le maximum d'information au plus au niveau d'abstraction possible. La RENV _Ref462562573 \h Figure 12 presente un exemple d'une Procedure Recette simple. Figure SEQ Figure \* ARABE 12 - Procedure Recette PFC Allocation des ressources Le symbole d'allocation de ressources represente un element procedural qui contient les Exigences Equipements (et autres ressources telles que personnel, matieres, energie) pour la Procedure Unite qui le suit. Il s'agit des regles d'allocation constituees par exemple d'une liste des equipements utilisables pour l'execution de cette Procedure Unite. L'execution de l'element doit entrainer l'allocation des ressources necessaires (en particulier les Modules Equipement) par un arbitrage manuel ou calcule par un systeme d'ordonnancement. La forme du symbole et son objectif sont normalises, par contre le contenu est laisse a l'appreciation de l'implementation. Lorsqu'une Transition Explicite suit le symbole d'allocation, elle represente les conditions de lancement de la Procedure Unite. Dans notre exemple, la Procedure Unite Preparation demarre des que l'element d'allocation est execute, tandis que la Procedure Unite Reaction exige un acquittement de l'operateur pour demarrer. Lorsque les 2 Procedures Unite sont terminees, le symbole de fin de sequences simultanees (convergence ET) permet au graphe d'atteindre le symbole Fin et l'execution de la Recette se termine. Une representation incomplete La RENV _Ref462562573 \h Figure 12 semble indiquer que les 2 Procedures Unite fonctionnent simultanement. Cette representation est incomplete : en generalisant, toutes les Procedures Unite devraient etre placees dans le meme jeu de sequences paralleles. De plus, les points de synchronisation et les mouvements de matieres ne sont pas representes. La premiere solution qui vient a l'esprit pour tenter de resoudre ce probleme serait de decrire les Procedures Unites en serie comme dans une liste ( RENV _Ref462563145 \h Figure 13 ). Cette methode ne convient pas, car elle impose des points de synchronisation tels que la premiere Procedure Unite soit terminee avant que la seconde puisse demarrer. Elle ne resout pas non plus le probleme de la description des transferts de matieres. Figure SEQ Figure \* ARABE 13 - Procedure Recette ``Serie'' Duree relative et Synchronisations Le defi consistait donc a trouver une methode capable de representer une large structure de sequences simultanees. L'application des diagrammes de Gantt sur un axe vertical avec une echelle de temps relative le permettait. On a tout simplement allonge les elements proceduraux comme sur un diagramme de Gantt. La RENV _Ref462614340 \h \* FUSIONFORMAT Figure 14 montre la meme Procedure Recette " etiree " pour montrer les relations et points de synchronisation. On peut noter que ni l'instant absolu de l'execution d'un element procedural ni sa duree ne sont connus dans la Recette (des informations statistiques de duree pour la planification et les calculs de cout previsionnels pourraient eventuellement etre recuperees). La longueur de l'element procedural est donc purement relative et n'a pas de role fonctionnel. La taille des 2 Procedures Unite est telle qu'elle permet de montrer que la Procedure Unite Preparation est d'abord lancee et qu'a un moment donne de son execution, le processus d'allocation de la Procedure Unite Reaction est execute. Ensuite, lorsque l'operateur a valide les conditions de demarrage, la Procedure Unite Reaction est demarree. Plus tard, un peu avant la fin de la Preparation et un peu apres le demarrage de la Reaction, un transfert matieres s'effectue entre la cuve et le reacteur respectivement alloues a la Preparation et a la Reaction. Le transfert se poursuit pendant quelque temps et la Reaction se poursuit. Lorsque les 2 Procedures sont terminees, la Recette se termine. Figure SEQ Figure \* ARABE 14 - Extension des Elements Proceduraux et synchronisation Une representation multi-niveaux plus precise Bien que relativement vague sur les evenements, la RENV _Ref462614340 \h Figure 14 fournit plus d'information que la RENV _Ref462562573 \h Figure 12 . On peut aller plus loin en montrant plusieurs niveaux sur le meme PFC comme sur la RENV _Ref462617854 \h Figure 15 . Les symboles des Procedures Unite ont ete dilates et les PFC qu'elles encapsulent sont representees a l'interieur. On voit a present que les 2 Procedures Unite Preparation et Reaction ont chacune 4 Operations. On peut observer que le point de synchronisation S1 concerne le prelevement d'echantillon dans la cuve de preparation tandis que le transfert de matiere T1 est effectue par les Operations Transfert du Reacteur (Procedure Unite Preparation) et Transfert de Preparation (Procedure Unite Reaction) Figure SEQ Figure \* ARABE 15 - Detail de l'encapsulation Autres regles du PFC La notation PFC a pour objet de favoriser l'echange des donnees de Recette entre systemes et de rendre plus facile l'apprentissage d'un nouveau systeme batch. Toutefois, il est reconnu qu'aucun paradigme n'est definitif et que l'evolution et l'innovation se poursuivront. Par consequent, la norme permet d'etendre la notation PFC. La seule exigence est que les extensions soient clairement definies. La Procedure est le ciment qui unit les differentes categories d'information de la Recette au sein de chaque element procedural. La norme n'impose pas la representation de ces informations. Les exemples ont montre une representation possible des parametres de la formule et des conditions des transitions. La description de l'en-tete de Recette et des " Autres Informations " peuvent faire l'objet de larges divergences dans l'implementation. En resume La notation Procedure Function Chart propose une methode normalisee et independante du fournisseur pour la description de la Procedure de la Recette. Cette independance est assuree par le fait que la methode a ete developpee sur la base de multiples methodes et normes connues ou utilisees et en differe suffisamment de telle sorte qu'aucun fournisseur n'est avantage. Un panel large et diversifie de fournisseurs et d'utilisateurs a conduit son developpement et cette notation represente un consensus accepte par toutes les parties. Il est attendu de la notation PFC qu'elle Supporte une methode normalisee pour les echanges de donnees entre systemes Permette une communication efficace entre les acteurs pendant toutes les phases des projets Raccourcisse la courbe d'apprentissage des auteurs de Recettes, et des operateurs lorsqu'ils ont a mettre en ?uvre differents systemes Cette presentation a ete realisee a partir de larges extraits d'une presentation de David Emerson[10]. [1] ISA-dS88.02 September 1999, Draft 15, Revision 1 [2] WG4 - dSP88.02 " A Proposal For Batch Control Systems Recipe, Schedule, and Journal Exchange " Languages Mai 1996 [3] Object-oriented SFC and ISA-S88.01 recipes, Karl-Erik Arzen and Charlotta Johnsson, Department of Automatic Control, Lund Institute of Technology, Lund, Sweden, at the 1996 World Batch Forum Conference. [4] Recipe-Based Batch Control Using High-Level Grafchart, Licentiate Thesis by Charlotta Johnsson, Department of Automatic Control, Lund Institute of Technology, Lund, Sweden, June 1997. [5] Grafchart and Batch Recipe Structures, Charlotta Johnsson, Department of Automatic Control, Lund Institute of Technology, Lund, Sweden, at the 1998 World Batch Forum Conference. [6] A Graphical Language for Batch Control Charlotta Jonhsson, Department of Automatic Control, Lund Institute of Technology, Lund, Sweden, 1999 [7] IEC 3B/256/CD, Projet de revision IEC 60848 Ed.2: Specification Language GRAFCET for sequential function charts. [8] IEC 60848: 1988, Preparation of function charts for control systems. [9] IEC 611131-3, Programmable controllers - Part 3: Programming languages [10] ``What Does a Procedure Look Like? The ISA S88.02 Recipe Representation Format, by David Emerson, Yokogawa Corporation of America at the 1999 World Batch Forum Conference. Fill with 1000 kg Water Manually add 50 kg Salt Heat with steam to 50 (C Manually add 30 kg sugar 1 Remplir 2 Chauffer 3 Agiter 4 Ajouter Active Phase Parametres associes Active Phase Parametres associes Active Phase Parametres associes Active Phase Parametres associes Phase terminee Phase terminee Phase terminee + Preparation et Reaction terminees (Rien) Phases Recette " Remplir " et " Purger " Active Operation Parametres associes Active Operation Parametres associes Active Operation Parametres associes Transition explicite 3 React. 2 Prepar. 1 (Vide) Condition Transition Phase Recette Phase Equipt Phase Recette Phase Equipt La transition vers l'element procedural suivant a lieu lorsque la phase d'equipement a termine ET que la condition est vraie Lorsque la condition est vraie, une demande de fin d'execution est envoyee a l'Element Procedural Equipement La transition vers l'element procedural suivant a lieu lorsque la phase d'equipement a termine son execution. + + Transition implicite Niveau <= 1 metre Symbole " Fin " Niveau = 4 metres Symbole " Debut " Purger Remplir Initialise Charge + Reaction + Transfert Stockage + Transfert Expedit. + Variable Transfert = " Expedit. " Variable Transfert = " Stockage " Transfert termine Transfert termine RPE initial. Pas de ``+'' : L'operation reference une Operation Equipement. Ne contient pas de Procedure Transitions implicites : la procedure se lit comme une liste Transitions explicites requises pour la selection de sequence " + " : L'operation contient une procedure Transition explicite facultative La transition implicite lance la procedure des que le symbole d'allocation est execute Reaction. Lancement simultane des 2 sequences La PU " Reaction " a une condition de demarrage Entree Operateur = OK pour lancement Entree Operateur = OK pour lancement La transition explicite permet de definir des conditions de lancement de la Procedure Unite Entree Operateur = OK pour lancement Preparation Reaction. + Preparation + + Reacteur 1 ou 2 Cuve A, B ou C Exigences Equipement pour la Procedure Unite suivante RPE ``Master Recipe'' SugarCookies IS HEADER Author ``J. Smith'' Version ``dSP88.02-WG4.A'' END HEADER FORMULA Water IS 40 ``Gallons'' WITHIN 38..42 Sugar IS 10 ``Lbs'' WITHIN 9..11 Flour IS 10 ``Lbs'' WITHIN 9.9..10.1 END FORMULA EQUIPMENT REQUIREMENTS END OTHER INFORMATION END DEFINE RPE ``Procedure'' DEFINE RPE ``Operation'' FILL USES EPE waterFill (lbs) USES EPE flourFill (lbs) USES EPE sugarFill (lbs) DEFINE RPL waterFull AS waterFill.done END DEFINE RPL flourFull AS flourFill.done END DEFINE RPL sugarFull AS sugarFill.done END FROM INITIAL TO waterFill (Water) FROM waterFill TO waterFull FROM waterFull TO flourFill (Flour) FROM flourFill TO flourFull FROM flourFull TO sugarFill (Sugar) END USES EPE ``Operation'' Mix DEFINE RPE ``Operation'' HEART . . . END TRANSITION FROM INITIAL TO Fill ON TRUE END TRANSITION FROM Fill TO Mix ON waterFill.done AND lourFill.done AND sugarfill.done END TRANSITION FROM Mix TO HEAT ON . . .END END Reacteur 1 ou 2 Cuve A, B ou C La Procedure Unite " Preparation " doit etre terminee avant l'allocation du reacteur et l'evaluation des conditions de lancement de la Procedure Unite " Reaction " Bien que seduisante, la description serie des Procedures Unites n'est pas convenable si elles doivent concourir (par exemple pour des transferts de matieres). Une telle specification impose que les Operations et Phases ne peuvent etre actives que dans une seule Procedure Unite a la fois + Reaction. + Preparation + Reacteur 1 ou 2 Cuve A, B ou C La synchronisation S1 indique que le reacteur n'est pas alloue avant la moitie de la procedure Preparation S1 + T1 T1 S1 Les symboles PU sont allonges pour montrer la relation temporelle La ligne de synchronisation flechee indique qu'un qu'elle concerne un transfert de matiere Les transitions implicites indiquent que les 2 sequences simultanees convergent pour atteindre le symbole Fin et terminer la recette apres execution des 2 PU + Transfert De Prep. T1 S1 T1 S1 Initialise Entree Operateur = OK pour lancement Reaction. + + Transfert -> React. Reacteur 1 ou 2 Cuve A, B ou C Reaction + Transfert -> Stock + Echantillonnage + Charge Initialise T1 Preparation. + Echant. OK Le PFC encapsule dans la Procedure Unite est decrit pour une information plus detaillee Les operations concernees par la synchronisation sont maintenant visibles Parametre Phase Unit Procedure A Unit Procedure B Unit Procedure C Unit Procedure D Operation A1 Operation A2 Operation A3 Operation A4 Operation A5 Operation A6 Operation C1 Operation C2 Operation C3