▼
Scroll to page 2
of
115
PC 3000 ngages HA 174 517 - Indice 1 = pagar lana 5 Га 50150 mm EE EE gaOooamanumn oogiccunc Дате 3GAGOBOO00OO0OOOE oooooooooon OOo0001117010AANO0O00OOOOOOOEIEE 15000 ЗЕ 1 a an E 11" EEC OONODA ooooooo a ag dogggo Ee ahs ns ia TOO AN E00E0oE00 oammoooooooo ВОЛ О 20 Е ОО ООС ECONO FEECEE CREE EEC OOOOoNon == = ee! al al ag NOISE EE AAA OnE a opm pola = Is = ads ada Eales mona Ea ad Нан. ICCONGEOGEGUEEES 0G S00 dn das Tf] OOOO OE OE 0000000 0000000000000 00001 00000000! 10000000000 000000 0800000000000IOO0000O ONO OOOO ENONOO OOO NONAA ANCONS OO AE TR AECCCCCECOOCONAOANA YAA AOS C= SE2 AA EEE DELL ca OUIFE! “MEE = GGSGGAG Gal [ее в [ее] г | ее ре |] = | OO0OOOROGOREEEES ala E 2oo0000000000020000227-0A0CC0000000027010 O000000000000000080000@NLCOGCO0000000010C00 DO000 0000000000000 0000000000008 RE A I EAC oan East ooo A YA ONE == co Eo deu 06000000 do Tastes He Ir I] aa O0000000008061 02067000000 008008 O00000000 0007006 OOO JE ВОО OOOO: coooooo ooooonnand-c ECcecccesgozge Ea=:eeecCeP=C00e00 pEgnnns зв A El Bac 0008009901 Eon: Ema noc oos00-000 Ooogaeunuon OOOO ONG NC Em is E Ps E Es 106000660 106060066600 IQ Ее |= |= [= [ее] Ди в а ре 100Qooooooooooasl Chapitre 1 INTRODUCTION Edition 1 Sommaire PRESENTATION .. nanuananpacanranieenmermener va rene ener eeceanao 1-7 GUIDES UTILISATEUR PC3000.. a nnanaoann non onnanaanna 171 Volume 1 - Programmation PC3000 . E Volume 2 - Langage PC3000 .............e.enevmcconninanerneroo 11 Volume 3 - Applications PC3000 ...........emmeneneneneroreves 12 BASE DU PC3000... нее. …. 1-2 Manuel du système d' d'exploitation temps réel PC3000 1-2 Manuel d'instalation PC3000 ..........ee 2er 1-2 Manuel des fonctions PC3000.........eee=eeemeemene 1-2 Manuel des blocs fonctions PC3000 .......... eva 1-3 INFORMATIONS RELATIVES A CE GUIDE .................... 13 TERMINOLOGIE ET ABREVIATIONS are 1-4 Guide utilisateur PC3000 Sommaire 1-1 Introduction PRESENTATION Le PC3000 est la tête de série d'une nouvelle génération de régulateurs programmables qui peuvent servir à traiter à la fois les processus de production et les processus prototypes. Pour permettre le développement de programmes de regulation pour le PC3000, Eurotherm Automation offre deux stations de programmation évoluées : la station de programmation DOS qui est décrite de manière détaillée dans le présent quide utilisateur et la station de programmation Microcell qui autorise une programmation graphique ainsi que des écrans de simulation et une gestion des recettes intégrés. Les deux stations de programmation offrent un ensemble complet de fonctions accessibles par menus et par écrans conviviaux. Elles fournissent au concepteur une station de travail congue spécialement pour faciliter le développement de programmes de régulation et ce pour toutes les phases, de la conception initiale à l'exploitation en ligne en passant par le développement et la mise en service. Chaque système offre aussi des informations d'aide intégrées permettant l'accès aux descriptions de nombreuses fonctions et de nombreux éditeurs directement depuis l'écran. Afin de vous permettre d'exploiter à fond les multiples fonctions du PC3000, vous trouverez des informations supplémentaires dans une série de quides utilisateur et de manuels de référence. GUIDES UTILISATEUR PC3000 Pour vous aider à utiliser la station de programmation PC3000, les guides utilisateur sont présentés sous la forme de quatre volumes. Chacun d'entre eux contient Un ou plusieurs manuels et est structuré de manière à répondre à des questions élémentaires bien précises : Volume 1 - Programmation de PC3000 “Comment utiliser je PC3000 ?" Le manuel 1 indique la manière d'utiliser toutes les fonctions de la station de programmation pour développer et mettre en route les programmes de régulation. Guide utilisateur PC3006 1-1 Introduction Volume 2 - Langages PC3000 "Quels sont les utilitaires offerts par le PC3000 7" Ce guide utilisateur présente les langages de programmation et les concepts utilisés par le PC3000, || donne également quelques exemples simples de langages. Volume 3 - Applications PC3000 "Pourquoi dispose-t-on de certains utilitaires et comment les utiliss-t-on ?" Ce volume contient un certain nombre de présentations portant sur des sujets précis, en particulier : Présentation des communications PC3000 - présente les utilitaires et les blocs fonctions spéciaux qui permettent au PC3000 d'échanger des informations de régulation et des données en temps réel avec d'autres PC3000 et d'autres matériels de marque comme des régulateurs programmables, les SCADA et les systèmes de supervision. Présentation de la régulation PC3000 - décrit une partie des méthodes et techniques standard utilisées pour la régulation de process à l'aide des blocs fonctions PC3000 intégrés et programmables par l'utilisateur, en particulier avec les PID. BASE DU PC3000 Outre les guides utilisateur, if existe un certain nombre de manuels de reference qui donnent des informations détaillées sur une large gamme de sujets. Ces manuels ne sont pas destinés à être lus dans leur intégralité mais sont structurés de manière à permettre de localiser rapidement des informations bien précises. Les manuels de référence PC3000 comprennent : Manuel du système d'exploitation temps réel PC3000 : - donne une description détaillée du système d'exploitation temps réel PC3000 et des sujets qui y sont liés commé les multi-tâches, les performances, l'implantation mémoire et la détection des défauts. 1-2 Guide utilisateur PC3900 Introduction Manuel d'Installation PC3000 - fournit des informations détaillées sur l'ensemble des modules matériels PC3000, en particulier des détails sur l'étalonnage, le câblage et la configuration physique. Manuel des fonctions PC3000 - décrit toutes les fonctions qui peuvent être appelées dans le langage Texte structuré (ST). Manuel des blocs fonctions PC3000 - décrit les multiples biocs fonctions disponibles incorporables dans votre programme de régulation pour la régulation PID, les rampes, les compteurs, les filtres, les timers, etc. N.B. : en raison de notre politique d'amélioration permanente de nos produits et de l'information à leur sujet, la liste et la description des manuels concernant votre système peuvent différer légèrement des indications fournies. INFORMATIONS RELATIVES À CE GUIDE Nous vous invitons à lire ce quide avant de développer un programme de régulation PC3000. Il est possible d'optimiser les performances du PC3000 et de garantir l'intégrité du programme en respectant queiques principes simples. Ce guide est destiné à compléter le Volume À du Guide utilisateur du PC3000 {Programmation}. Vous pouvez avoir besoin de vous reporter aux deux guides utilisateur lorsque vous développerez des programmes pour la premiére fois. Le chapitre 2 fournit une présentation des langages et des concepts du PC3000 et est utile lorsqu'on souhaite comprendre rapidement la manière dont on peut programmer le PC3000 pour résoudre les problèmes de régulation. Un exemple de programme simple est fourni et décrit une bonne partie de ces concepts. Le chapitre 3 donne une description détaillée du langage Texte structuré avec des exemples. Le chapitre 4 décrit la manière d'utiliser Les GRAFCET PC3000 pour programmer tous les besoins de séquencement des systèmes de régulation simples et des systèmes de régulation complexes. Le chapitre 5 est particulièrement important. Nous vous conseillons de lire les parties suivantes de ce chapitre : Considérations sur ia conception des programmes et Phases de développement des programmes avant de vous lancer dans un projet de programmation important. Guide utilisataur PC3000 1-3 Introduction TERMINOLOGIE ET ABREVIATIONS Les abréviations suivantes sont employées dans ce guide utilisateur : Actions Instructions en Texte structuré, y compris les affectations qui sont évaluées lorsqu'un pas donné est actif. Affectation Instruction en Texte structuré qui produit une valeur écrite dans un paramètre de bloc fonction spécifié. Expression boolénne Expression en Texte structuré qui produit un résultat "vrai" ou “faux”, GRAFCET Un GRAFCET est un ensemble de pas et de transitions reliés graphiquement {cablés) qui forment une ou plusieurs séquence(s). ll posséde toujours un pas a début unique. Expression Element en Texte structuré qui produit une valeur possédant un type de données spécifique. Déclaration de bioc fonction Bloc fonction qui à été créé pour être d'un type particulier et qui possède un nom unique. Déclaration Opération de création de blocs fonctions d'un type donné. PID Algorithme préportionnel, intégral et dérivé. SFC Désigne le langage et la construction des GRAFCET IEC. ST Désigne le langage évolué Texte structuré IEC instruction Une instruction en langage Texte structuré est un ensemble de mots-clés, d'opérateurs et de fonctions de langage qui effectue une opération spécifique et se termine par un point virgule. Pas Pas dans le GRAFCET qui définit un état ou une phase d'ur: process particulier et qui est représenté par un encadré rectangulaire. Transition Ligne horizontale courte qui représente le point où se produit un changement (c'est-à-dire une transition} d'un ou plusieurs pas a un ou plusieurs autres pas. Représente un point de decision A un certain stade du process. Si la condition est remplie, la régulation passe du(des) pas actuel(s) au{x) pas survant(s). Condition de transition Condition qui, lorsqu'elle est "vraie”, provoque là transition entre les pas actifs. Dans le cas de l'utilisation de la Station de programmation PC3000, est définie comme une expression booléenne en Texte structuré. Lorsque la condition de transition est remplie, le traitement passe de l'ensemble de pas actuel à un nouvel ensemble de pas. Guide utilisateur PC3000 Concepts de programmation Chapitre 2 CONCEPTS DE PROGRAMMATION Edition 1 Sommaire PRESENTATION ................_.ccecaceesnenaoancceuareenenneacnarinacare OST Eléments de base ............e....eessemsnneer ene rec anecena recaen E Norme IEC 1131-3 PLG ...........———eemenen enema nene ene 272 Fonctionnement déterministe ..............-.c.mn maana. 20 BLOCS FONCTIONS .................... meme nea enana cena 2-5 Exemple de bloc fonction ....... e mm e... 2-7 Blocs fonctions d'E/S nene. e. 2-8 PRINCIPES D'EXECUTION DES PROGRAMMES... … 2-9 GRAFCET .. cenas enaneanarnacennerenaa ne anne rmeNe 2 Q PRESENTATION DU LOGICIEL .. preeraneenaa encerrar 2-11 EXEMPLE DE PROGRAMME... ‚2-12 Régulation continue es eee eee eee ‚2-12 SÉéQuencement ..........—————— een enero 2714 Logique numérique … зан ...2-15 CONSIDERATIONS SUR LES PERFORMANCES DU CABLAGE PAR SOFT .. enema: .2-17 | o Sa 2 E Rs ao X ee ao © Oo 2 or Guide utilisateur PC3000 Sommaire 2-1 Concepts de programmation PRESENTATION Les concepts suivants de programmation du PC3000 sont décrits dans ce chapitre. 1. Conception des langages de programmation PC3000 et manière dont ils sont réalisés à partir de normes internationales. 2. Manmiére dont des programmes de pilotage complexes peuvent être réalisés par interconnexion d'instruments logiciels” ou de biocs fonctions au moyen du logiciel. 3. But des blocs fonctions PC3000 et manière dont ils sont décrits. 4. Avantages présentés par l'utilisation du système multi-tâches du PC3000 qui permet a différentes parties du programme de pilotage de tourner & des fréquences de scrutation différentes, 5. Possibilités d'utiliser ies blocs fonctions et les GRAFCET (SFC) pour qu'its fonctionnent ensemble lors de la création d'un programme de régulation. Eléments de base Le PC3000 est un régulateur programmable de nouvelle génération, facile a configurer, qui convient à l'automatisation d'une vaste gamme de process industriels. Etant donné que le PC3000 est facile à configurer car | possède à la fois un matériel et un logiciel modulaires, À peut être appliqué aux process de production prototypes et principaux. Les langages de programmation du PC3000 ont été conçus de manière à répondre à la norme IEG 1131-3 applicable aux régulateurs programmabies. Ces langages conviennent pour programmer la large gamme d'applications PC3000. Ils vont de la régulation de fours pour le traitement thermique, la fabrication des câbles, le traitement des eaux et la fermentation jusqu'à des applications évoluées de "haute technologie” comme les presses de formage des super-plastiques pour les aubes de turbines d'avions et les systèmes épitaxiaux à rayons moléculaires. En outre, ces langages conviennent parfaitement pour créer des programmes de régulation avec des petites stations de programmation de type PC. Un système type de régulation de process de production doit traiter toute une gamme de problèmes de pliotage différents qui comprennent : Des verrouillages qui contrôlent les conditions dans lesquelles certaines activités ou certains process peuvent fonctionner. Par exemple, une soupape à vapeur ne peut pas être activée si des capteurs n'indiquent pas que la pression de vapeur est supérieure а оп minimum donné et que le process nécessite de la vapeur. Des alarmes qui sont déclenchées lorsque certaines conditions limites sont dépassées. Par exemple, un signal d'alarme est déclenché lorsque la température d'une cuve de process est supérieure a la température normale de service, = Le 2 E QE Ow = = 5° OS e Guide utilisateur PC3000 2-1 Concepts de programmation Une régulation en boucle fermée garantissant que les process tournent dans les conditions optimales. Par exemple, les boucles de PID peuvent servir à garantir le maintien de la température d'un four dans une bande acceptable, c'est-à-dire dans des limites haute et basse données au cours du chargement du four. Un séquencement pour faciliter le démarrage et la fin des phases déterminantes d'un process dans des conditions bien définies, Par exemple, il faut retirer un lingot d'un four de traitement thermique lorsque le four a atteint ou dépassé une température fixée pendant une durée donnée. Une régulation en boucle longue ol les conditions à long terme sont suivies et des mesures sont prisés pour optimiser le rendement du process. Par exemple, le rendement d'une pompe peut se dégrader progressivement à cause de l'usure de la roue, ce qui peut être détecté par la surveillance à long terme de la consommation moyenne de courant de la pompe avec des techniques de contrôle statistique. Le débit de la pompe peut être ansuite ajusté pour compenser l'usure. Les langages adoptés pour le PC3000 vous permettent de décrire la totalité de ces aspects du programme de régulation d'une manière homogène et naturelle. Ces langages sont faciles à lire et à retenir et ont une forme compréhensible par des personnes ayant des degrés divers de connaissances informatiques. NORME IEC 1131-3 PLC La figure 2-1 décrit les composants principaux d'un programme PC3000. La Commission Electrotechnique Internationale {IEC) a élaboré un ensemble de normes pour les réquiateurs programmables, dénommé IEC 1131. La partie 3 de cette norme, appelée IEG 1131-3, traîte des langages des régulateurs programmables et de la manière dont ces derniers font tourner les programmes de régulation. Bon nombre des concepts de cette norme sont utilisés à |a fois dans le PC3000 et dans d'autres produits d'Évrotherm Automation, dont le "cell controller” du gestionnaire de production. || est possibie de programmer le PC3000 à l'aide des langages suivants : Texte structuré (ST) - langage évolué qui peut servir à rédiger des expressions analogiques et numériques complexes. Ce langage comprend une prise en charge des opérations artithmétiques complexes, des calcuis portant sur des dates et des heures et des expressions conditionnelles utilisant des éléments comme Sl, ALORS et OÙ (exciusif). Il existe aussi une bibliothèque complète qui offre des fonctions comme SORT(), SINQ, MAX() Guide utilisateur PC3000 Concepts de programmation GRAFCET ou SFC - langage graphique qui offre une représentation schématique des séquences présentées sous forme d'une série de pas enchaînés et de transitions, Le GRAFCET répond à la norme, désormais bien acceptée, Graicet mais avec quelques fonctions supplémentaires. ll offre une méthode tras claire de définition et, en cours de fonctionnement, d'analyse du comportement du système de pilotage en montrant les états actifs du système dans ie contexts de toutes les séquences possibles de remplacement et parallèles. Diagramme de bloc fonction ou FBD - langage graphique qui permet l'interconnexion d'éléments de programme, appelés blocs fonctions, par simple traçage de traits sur l'écran, c'est-à-dire sous une forme analogue à la conception d'un schéma de circuits à l'écran à l'aide d'un système de CAO. Le bee SE o Cc > a © O? ce Guide utilisateur PC3000 2-3 Concepts de programmation NB. : la programmation FED est uniquement possible sur la station de programmation Microcell. Multi-taches Coniormément à IEC 1131-3, le PC3000 permet "organisation du programme de régulation en taches qui fonctionnent à des fréquences d'exécution différentes. Normalement, le PC3000 possède deux taches qui fonctionnent toutes les 10ms et toutes les 100ms mais il est possible de créer des táches supplémentaires ou de modifier les fréguences d'exécution des tâches pour s'adapter aux exigences du process considéré. Une tâche est une partie d'un programme qui s'exécute périodiquement. De nombreux régulateurs programmables possèdent une stratégie très simple dans laquelle tous les programmes de l'automate (normaiement des expressions de schémas contacts) sont scrutés, c'est-à-dire exécutés, à une fréquence de scrutation fixe. Toutefois, avec le PC3000, un programme peut utiliser plus efficacement les ressources de régulation si différentes parties du programme s'exécutent à des fréquences de scrutation différentes, selon ce qui est dicté par les capacités de réponse de l'installation associée. Par exemple, i! peut être nécessaire de scruter très rapidement certaines entrées numériques liées à des verrouillages mécaniques très rapides alors que d'autres entrées numériques liées à des capteurs de température, par exemple, peuvent être scrutées à des fréquences inférieures. Normalement, les entrées analogiques sont scrutées plus lentement que les entrées numériques. Certaines partiés de l'application peuvent également être nécessaires pour analyser ies tendances à long terme. Dans ces cas, les tâches peuvent être confiqurées pour s'exécuter à des fréquences bien inférieures (toutes les 5 minutes ou plus, par exemple). Fonctionnement déterministé Contrairement à de nombreux régulateurs programmables, le PC3000 offre des tâches à fréquences de scrutation fixes. Par exemple, à condition d'observer certaines caractéristiques de fonctionnement, il est possible de construire un système de régulation dans lequel les blocs fonctions prévus pour tourner dans une tâche 100 ms s'exécutent toutes les 100 ms. Le fonctionnement déterministe &st important pour que le comportement du système de régulation soit stable et prévisible. 24 Guide utilisateur PC3000 Concepts de programmation Si un trop grand nombre de blocs fonctions sont affectés à une tâche, le PC3000 peut être débordé, c'est-à-dire que la durée de scrutation de la tâche doit être augmentée pour garantir le bon achèvement de la tâche. Gela est considéré comme une situation exceptionnelle qui nécessite la modification des affectations de tâches des blocs fonctions. La Base du système d'expioitation temps réel PC3000 fournit des informations supplémentaires sur l'utilisation des tâches. BLOCS FONCTIONS En règle générale, les systèmes de régulation étaient formés par le câblage physique d'un certain nombre d'instruments discrets comme des régulateurs de température, des timers, des afficheurs, etc. Toutefois, les systèmes de ce type sont d'une installation coûteuse et d'une très grande rigidité. Par opposition, le PC3000 permet de construire des programmes de régulation a partir d""instruments logiciels" appelés blocs fonctions. Ce concept puissant, formalisé par la norme ЕС 1131-3, permet de relier entre eux des composants logiciels éprouvés possédant des fonctions identiques à celles d'instruments réels pour former des systèmes de régulation complexes appelés "câblage par soft”. Un bloc fonction contient un programme ou un algorithme "encapsulé” qui est accessible et pilotable extérieurement par Un ensemble de paramètres. Il est "encapsuié” de telle manière que le concepteur n'a pas besoin de connaître la constitution interne du bloc fonction. En fait, le seul accès au bloc fonction peut s'effectuer par un ensemble de paramètres formels fournis par le concepteur initial. Normalement, un bloc fonction possède un ensemble de paramètres d'entrée qui peuvent servir à le connecter (ou le câbler par soft) à d'autres blocs fonctions. Les paramètres d'entrée peuvent être régulés á partir de signaux de régulation réels émanant de l'usine ou peuvent se faire affecter des valeurs par des périphériques extérieurs comme des stations opérateur où des systèmes de supervision. Les paramètres d'entrée peuvent servir à modifier le comportement du bloc fonction. À chaque fois qu'un bloc fonction s'exécute, ce qui dépend de la tâche à laquelle il est associé, i est activé à l'aide des paramètres d'entrée en cours et d'autres données emmagasinées dans la mémoire interne. L'algorithme interne met ensuite à jour les paramètres de sortie. La © © pe ju D > = © - programmation Guide utilisateur PC3000 25 Concepts de programmation Les blocs fonctions sont utilisés dans la régulation sous une certaine forme depuis des années. Par exemple, les algorithmes PID qui font tourner des instruments discrats comme les EPC 818 et 900 d'Eurotherm Automation se comportent comme des blocs fonctions. Le PC3000 possède une importante bibliothèque de blocs fonctions à partir de laquelle le concepteur peut élaborer des applications complexes. Cette bibliothèque comprend des blocs fonctions PID et Positionneurs de vannes avec reglage automatique ou adaptatif, des timers, des compteurs, des filtres et des bistables, Il existe aussi des blocs réservés à des applications spécifiques, par exemple pour construire des systèmes de gestion de recettes, pour communiquer avec d'autres périphériques de marqués comme les automates programmables et pour le contrôle statistique en temps réel (SPC). Les blocs fonctions offrent également des possibilités d'utilisation immédiate et de développement de solutions inédites à des problèmes de process. 2-6 Guide utilisateur PC3000 Concepts de pregrammation Exemple de bloc fonction La figure 2-2 montre un exemple de bloc fonction Rampe utilisable toutes les fois qu'il faut produire une valeur qui augmente à vitesse constante. Le bloc fonction Rampe amène le paramètre de sortis (appelé Sortie) à la valeur du paramètre d'entrée Point de consigne à une vitesse déterminée par le paramètre d'entrée Vitesse. Type de bloc fonction a Entré E ntrées i + EEE OO, Sorties Lu a _ en _ = E ENUM = Mode Output | REAL О a == | REAL = Il Setpoint Ramp End = BCOL 5 o REAL — | Rate Ramp_ Act [|__| 2001 a REAL == Reset Cutput HB Active + 2001 EM —| | HB Mode - REAL — 1 HB Deviation REAL — Process Val | ENUM — Rate Units = — Types de \_ Types de données données paramètres paramètres Figure 2-2 Exemple de bloc fonction Le bloc fonction prend aussi en charge un maintien sur écart par lequel la Sortie peut suivre la valeur de process, c'est-à-dire le paramètre Process Val, dans un écart donné. Cela peut par exemple étre utile lorsque la température d'un four suit Une rampe, quand la différence entre le point de consigne de la température du four et la température réelle doit se maintenir dans des limites données. Chaque paramètre de bloc fonction est associé à un type de données particulier qui définit le type et la plage de valeurs que ce paramètre peut mémoriser. Une large gamme de types de données est utilisable, dont les paramètres REAL utilisés pour les valeurs décimales (à virgule flottante) comme 12,54, 0,0541, - 1220,1, les paramêtres BOOL qui ont deux états comme MARCHE/ÆARRET, VRAVFAUX, HAUT/BAS, les paramètres ENUM qui peuvent avoir un certain nombre d'états dénommés ou énumérés, par exemple le paramètre Mode du bloc fonction Rampe possède les états Reset, Fun et Hoid. D'autres types de données sont fournis pour conserver les comptes, les messages et les dates et heures. Guide utilisateur PC3000 2-7 Concepts de programmation Le chapitre 3 donne des details complets sur les types de données. Dans le PC3000, il est possible de créer de nombreuses copies du méme type de bloc fonction. Far exemple, vous pouvez souhaiter trois blocs fonctions Rampe pour réguler trois variables de régulation différentes comme débit de là pornpe, température et pression. Les copies pauvent recevoir des noms uniques, par exemple RampPump, RampTemp, HampPres . Les copies d'un type de bloc fonction donné sont appelées Déciarations. Lors de la création d'une copie nouvelle d'un bloc fonction, tous les paramètres d'entrée reçoivent un ensemble standard de valeurs par défaut, Dans de nombreux cas, ces valeurs peuvent rester inchangées lorsque les valeurs par défaut conviennent pour l'application ou si une certaine caractéristique du bloc fonction n'est pas nécessaire. Toutes les valeurs affectées comme constantes aux paramèêtres d'entrée, par exemple l'attribution de la vaieur 6,0 % à un paramètre PID Prop_Band, servent à remettre le bioc fonction à zéro lorsqu'il est initialisé, c'est-à-dire utilisé pour les valeurs Démarrage à froid. Lorsque le PC3000 tourne, chaque copie ou déclaration de bloc fonction tourne de façon totalement indépendante de toute autre déclaration. Par exemple, HampPump peut être dans l'état Hold alors que RampTemp et RampPres sont en rampe vers des points de consigne différents. Lors de l'exécution d'un bloc fonction, les valeurs changent, dans de nombreux cas, pour chaque exécution, même lorsque la vaieur de tous les paramètres d'entrée du bloc fonction reste inchangée. Cela est du au fait que le bloc fonction possède des variables mémorisées en interne qui servent à accumuler des valeurs pour les compteurs, les valeurs intégrées, etc. Par exemple, lorsque le bloc fonction Rampe est en mode Run, la Sortie augmente à chaque exécution ultérieure du bloc fonction, jusqu'à ce que le point de consigne de la rampe soit atteint bien que tous les paramètres d'entrée restent inchangés. Blocs fonctions d'ES Pour des raisons d'homogénéité, la collecte des valeurs d'entrée provenant des capteurs et l'envoi des signaux de sortie aux actionneurs, radiateurs, etc. sont gérés par des blocs fonctions d'É/S (E/5). Par exemple, le bloc fonciton d'entrée analogique Analog In offre une gamme de paramètres d'entrée qui configurent le type de capteur et changent l'échelle de la valeur d'entrée pour qu'elle traite une large gamme de types de capteurs d'entrée incluant la plupart des types de thermocouples. La valeur du capteur d'entrée est fournie par le paramètre de sortie Process Val du bioc fonction en unités de process comme les degrés Celsius, les milltbars, etc. Il est à noter que ce bloc fonction offre également un utilitaire de test pour remplacer la valeur d'entrée actuelle par une valeur de test. Chaque bloc fonction d'E/S est associé à un canal matériel d'E/S donné défini par un paramètre d'entrée appelé IO_Address. Ce paramètre définit l'emplacement physique du canal d'É/S par numéro de rack, numéro dé module et canal. 2-8 Guide utilisateur PC2000 Concepts de programmation Par exemple, un bloc fonction de canal d'E/S pour le deuxiéme canal d'un module matériel à l'emplacement 3 du rack 1 possède l'adresse d'E/S suivante : 1:03:02 Les adresses d'E/S sont automatiquement attribuées par la station de programmation PC3000 lorsqu'un canal est affecté. |! est impossible de modifier directement ia valeur du paramèêtre de l'adresse d'E/5 mais le bloc fonction du canai d'E/S peut être transféré vers un module matériel different. Pour avoir des informations supplémentaires sur les blocs fonctions Rampe et Anatog_In, consulter le Manuel des blocs fonctions du PC3000. | ча ред ВИЗ SE za л» ei a © E jm PRINCIPES D'EXECUTION DES PROGRAMMES Le programme utilisateur PC3000 pour une application de régulation donnée est composé d'un certain nombre de blocs fonctions interconnectés fournissant les possibilités de régulation continue du système et un où plusieurs GHAFCET (SF CG) pour définir les possibilités séquentielles, Les GRAFCET contiennent des actions qui peuvent modifier les valaurs des paramètres d'entrées des biocs fonctions en réponse à certains événements. Les GRAFCET peuvent par conséquent modifier le comportement du système en fonction de variations bien définies de conditions de process particulières comme le fait d'atteindre la température de service où la vidange d'une cuve de réacteur. Les blocs fonctions sont découpés en tâches qui s'exécutent à des fréquences de scrutation fixes. La configuration par défaut des tâches qui convient pour un grand nombre d'applications PC3000 possède deux taches appeiées Task | et Task 2, qui s'exécutent respectivement toutes les 10 ms et 100 ms. La plupart des blocs fonctions associés à une E/S analogique et à une régulation analogique sont activés toutes les 100 ms (blocs fonctions PID en particulier). Les autres, c'est-à-dire les blocs fonctions associés à des signaux numériques et nécessitant par conséquent uné réponse système pius rapide, sont actives toutes les 10 ms. Les GRAFCET (SFC) par détaut sont activés dans la tâche la plus lente de 100 ms . Guide utilisateur PC3000 2-9 Concepts de programmation ms Nom de la Scrutation de But tache la tache Task 2 toutes les 100 | Tous les blocs fonctions ms analogiques La plupart des blocs fonctions analogiques d'E/S Tous les GRAFCET Task _1 toutes les 10 | Tous les blocs fonctions numériques Tous les blocs fonctions numériques d'E/S Les blocs fonctions analogiques rapides d'E/S Table 2-1 Configuration par défaut des tâches Toutefois, il est possible de modifier la configuration par défaut des tâches si le probième de régulation est assorti d'exigences spéciales. || est possible d'affecter à tous les blocs fonctions, y compris ceux pour I'E/S, un fonctionnement à une autre fréquence de scrutation en modifiant les fréquences de scrutation des tâches ou en créant des tâches supplémentaires. Cela peut par exemple être nécessaire lorsqu'il faut augmenter la rapidité de réaction de certaines entrées en diminuant les fréquences de scrutation des tâches ou lorsqu'il est nécessaire de réduire les temps système en augmentant la fréquence de scrutation de certains blocs fonctions. Attention : 1 faut prendre des précautions lorsqu'on modifie les paramètres de configuration des tâches ou ies affectations des tâches car cela peut avoir des répercussions sur la rapidité de réaction du système ou entraîner des effets secondaires imprévus. La station de programmation PC3000 affecte automatiquement les blocs fonctions aux deux tâches par défaut. Par conséquent, la modification de la configuration des tâches n'est normalement pas nécessaire. Se reporter à la Base du système d'exploitation temps réel PC3000, chapitre Programmateur de tâches temps réel, pour avoir des détails sur la configuration des taches. GRAFCET Les GRAFCET (SFC) sont composés de deux éléments, les pas et les transitions, décrits sur la figure 2.3. 2-10 Guide utilisateur PC3000 Concepts de programmation Un pas définit un ensemble d'actions effectuées lorsque le programme de régulation est L- 4 Transition dans un état donné. Un pas reste | actif jusqu'à ce qu'une transition — Step_B | suivante devienne vraie. Une transition est définie par une + condition de test qui doit donner un résultat vrai ou faux (exemple: uns entrée numérique donnée provenant d'un microrupteur est sur “marche”). Pas — Figure 2-3 Eléments des GRAFCET Sur la figure 2-3 , si Step_À est actif, Step_B deviendra actif et Step_A inactif lorsque la condition pour la Transition de Step À à Step_B deviendra vraie. Lorsque les GRAFCET sont évalués (normalement toutes les 100 ms par déiaut), seules les conditions des transitions suivant les pas actifs sont testées, Dans un programme bien conçu, seul un petit nombre de pas sont simultanément actifs à tout moment. Par conséquent, le PC3000 peut exécuter des programmes complexes avec des GRAFCET possédant un grand nombre de pas et de transitions, sans que le temps système soit exagérément long. Les actions dans les pas peuvent être définies en Texte structuré (ST) ou en termes de GRAFCET supplémentaires. Nous donnons ci-dessous des exemples d'instructions en texte structuré servant à définir des actions dans les pas : с Le 9e TE E {= = a > o 9 a loopl. Setpoint := 400.0; tempRamp.Mode := 1 (* Run *); vacpump.Process Val := vacpump.Process Val + 12.50 ; Chaque transition est définie par une condition exprimée en Texte structuré, comme par exempie : pumpswt .Process Val = 1 (* On *) AND O2valve.Process Val = 1 (* Open *); Guide utilisateur PC3000 2-11 Concepts de programmaton Dans cet exemple, deux entrées numériques pumpswt et O2valve fournissent l'état de deux variables process numériques. Ainsi, la condition de transition peut se lire de là manière suivante : “interrupteur de la pompe en position marche et vañne d'oxygène ouverte“. Pour avoir des détails supplémentaires, cf. le chapitre 3 Texte structuré et le chapitre 4 Programmation des GRAFCET. NB. : sur la station de programmation Microcell, on dispose de méthodes de programmation graphique de remplacement, en particulier des tableurs et des diagrammes de blocs fonctions. PRESENTATION DU LOGICIEL Un programme d'application pour PC3000 est composé de deux parties principales : 1) les blocs fonctions et leur câblage associé pour fournir les fonctions continues logiques et de régulation et 2) les GRAFCET pour traiter le séquencement. La figure 2.1 montre la manière dont ces parties de programme interagissent avec le matériel du PC3000 qui fournit les interfaces avec les capteurs et actionneurs d'E/S et les communications avec les périphériques externes. Cette figure montre quelques exemples des multipies variétés de types de blocs fonctions fournis avec le PC3000. Les interfaces avec I/O sont assurées par les blocs fonctions d'E/S comme Digitai_in et Analog_Out. Le bus d'E/5 PC3000 offre un échange d'informations bidirectionnel entre ces biocs fonctions dans le programme d'application PC3000 et les canaux d'E/S des modules matériels d'E/S. La station de programmation PC3000 (ainsi que MicroCell } à accès à tous les paramètres de blocs fonctions lorsque le PC3000 tourne avec le protecole de communications Eurotherm Bisyne, Cet utilitaire est appelé "communications par défaut” et est disponible en permanence pour les besoins de diagnostic et de développement de programmes. Les communications avec les autres périphériques externes sont assurées par des blocs fonctions de drivers de communications comme Bisync M et Euro_ Panel, Sur la figure 2-1, le bloc fonction Bisyne_M est associé a un port de communications relié à un certain nombre d'instruments a liaisons multipoints ; dans ce cas, c'est le protocole Eurotherm Bisyne quí est utilisé. Cette figure montre aussi une console opérateur reliée à l'aide du bioc fonction Afficheur Eurotherm. On dispose également d'une vaste gamme de blocs fonctions pour d'autres protocoles comme JBus/Modbus. On peut ainsi relier au PC3000 un grand nombre de différents types de périphériques en communication. Consulter le document Présentation des communications FC3000 pour avoir des informations supplémentaires sur les communications avec des périphériques extérieurs. 2-12 Guide utilisateur PC3000 Concepts de programmation EXEMPLE DE PROGRAMME La figure 2.4 montre un exemple simple de programme qui présente de nombreux concepts de programmation du PC3000. Ce programme utilise une boucle de régulation simple PID pour piloter un process thermique et modifie le point de consigne destiné a la boucle de régulation & l'aide d'un petit programme séquentiel, Ce programme sert à présenter les techniques de programmation du PC3000 et est par conséquent délibérément simpliste mais il fonctionne. Régulation continue La boucle de régulation à canal unique est construite par "câblage par soft” d'un Dloc fonction de canal d'entrée analogique (Temp1} à un bloc PID (Laop1) qui envoie un signal de sortie à un bloc fonction de canal de sortie analogique (Heat1). Les paramètres de configuration nécessaires pour personnaliser les Diocs de canaux d'entrée et de sortie afin qu’ils coincident avec les caractéristiques des capteurs at des actionneurs et les paramètres de réglage du PID ne sont pas présentés sur la figure 2.4 pour plus de clarté. Pour construire la partis "pilotage continu” du programme, il faut effectuer les principales actions suivantes : 1. Affecter les modules et canaux matériels pour l'entrée et la sortie analogiques à l'aide de l'écran de configuration matérielle (par exemple à l'aide des modules comme Ald at AD4). Dans cet exemple, l'entrée analogique est pilotée par le canal 1 du module 2 et la sortie pilote le canal 2 du module 4, tous les deux étant situés dans le rack 1. 2 Attribuer des valeurs aux parameétres de configuration pour personnaliser l'entrée et la sortie, Le canal d'entrée analogique a normalement besoin de valeurs pour les paramètres suivants : Input type, par exemple Range 3. Vérdier sur la fiche technique la plage acceptée par un module matériel donné. Dans le cas présent, Range_3 sélectionne le fonctionnement -10 à 50mV. Lin_Type pour fixer le type de linéarisation, par exemple J pour un thermocouple de type J. CJC_Type pour fixer le type de Compensation de soudure froide, par exempis intern pour interne. Pre Scaler, Pre Offset , Post _Scaler, Post Offset pour configurer les coefficients de telle manière qu'ils changent l'échelle du signal d'entrée et le décaient avant et après linéarisation. Ces paramétres sont utilisés en liaison avec PV_Max et PV_Min pour donner les unités physiques nécessaires (c'est-à-dire D à 100 degrés Celsius). Les valeurs 1,0 et 0,0 pour les coefficients et les décalages devraient convenir pour cet exemple. Par exemple, des valeurs de 9/5 pour Post Scaler et 32 pour Post Offset donneraient une valeur en degrés Fahrenheit. Des valeurs de 1 pour Post _Scaler et 0 pour Post Offset donnent une valeur en degrés Celsius. a Cw NE = Pr {= A = = O2 a Guide utilisateur PC3000 2-13 Concepts de programmation Е Task? 100m (Analog_In) {PID) ‘Analog Cut f Temm \ f Coop ' f Fost \ ; Proceas val Process Val 1: 04: 02 IC _Address : 02:01 e ISO Address Chl Output Proceas Val —dSétpoint = la A 1 J “ J: Cablage par soft” : Task2 100ms Graîcet Setup : Loopl.Serpointis 20.0; PHM NY a Ая, hr NY aaa —— AB5_ REAL (Templ.Process Val - Locpl.Setpoint) < 2.0 | Heatup Loopt.Setoointr= 60.0; —— Templ,. Process Val>56.0 AND Heatup.Time»s TH90 | Cool : Loop-Setpoint:= 20.0; —jr=e Templ, Process Val<24,0 | Finish : Figure 2-4 Exemple de programme simple PY Max, PY Min permettent de définir la plage de valeurs acceptables pour l'entrée, par exemple 0 a 100. N.B. : si PV_Max est maintenu égal à 0, l'état de l'entrée analogique Act Status peut être fixé sur NOGO parce que la valeur d'entrée est hors plage. Le bloc fonction du canal de sortie anaïogique a besoin d'une valeur pour Output type pour définir la plage de l'actionneur ou de l'entraînement de sortie, par exemple mA4 20 pour 4 à 20 mA. 3. Le bloc fonction PID a également besoin des paramètres de configuration suivants : Span_High, Span_low : configurer ces paramètres pour qu'ils coincident avec la plage de l'entrée analogique. 2-14 Guide utilisateur PC3000 Concepts de programmation Qutput_High,Output Low : veiller á ce que ces paramètres soient positionnés sur 100 et 0 pour cent. $i Output Low est sur -100 pour cent, le PID fonctionne en mode canal double (chaufiage/refroidissement). Prop Band, Integral et Derivative : configurer ces paramétres conformément à ce qu'exige le process regulé. Manual ; positionner ce paramétre sur Auto pour faire passer le PID an mode automatique. Heatt. Process Val := Loop1.Ch1_ Output; Lors de l'utilisation de la station de programmation PC3000, ces instructions sont reliées au paramètre d'entrée du bloc fonction pour recevoir la valeur (dans le cas présent, Loop1 ef Heatl). NB. : les instructions de câblage sont créées dans le paramètre DESTINATION. On trouvera des détails supplémentaires sur la configuration matérielle dans le Manuel du matériel PC3000, La partie "régulation continue” de cet exemple simple est maintenant terminée et, si l‘on compile, construit et télécharge ce programme dans le PC3000, les trois biocs fonctions vont se comporter comme un simple régulateur à boucle unique. || est possible de fixer le point de consigne de la boucle en modifiant le paramètre d'entrée du PID Loop1.Setpoint . Séquencement La boucle de régulation est séquencée par un petit GRAFCÇET comportant les pas Setup, Heatup, Cool et Finish. Le texte structuré pour chaque pas et chaque transition est représenté à côté du GRAFCET sur la figure 2-4. Le pas Setup établit Un point de consigne initial de 20,0 et attend que la valeur de process se stabilise. Au cours du pas Heatup, le process est améné à un point dé consigne supérieur de 60,0. Le pas Heatup continue jusqu'à ce que [a valeur de process ait atteint une valeur seuil de 56,0 et ait été active pendant plus de 30 minutes. Le pas Cool est ensuite activé, ce qui ramène le point de consigne à 20,0. Lorsque la valeur de process est revenue à moins de 24,6, ls GRAF CET prend fin en passant au pas Finish. Pour programmer le GRAFCET à l'aide de la station de programmation, il faut effectuer les actions suivantes : 1. Utiliser l'éditeur de GRAFCET pour créer un GRAFCET à quatre pas dans le graphique principal. Le premier pas doit être défini comme un pas "début" et doit recevoir le nom Setup. Donner aussi les noms Heatup, Cool et Finish aux autres pas. Le pas Finish doit être défini comme un pas "fin", = 4, Construire le "cablage par soft” pour relier les trois blocs fonctions, o c'est-à-dire : 3 = Loopi.Process Val := Temp1.Process Val; ne Ta = et db o a = = cD O? a Guide utilisateur PC3000 2-15 Concepts de programmation 2. Les trois pas doivent étre définis comme des "pas dont les actions sont exécutées une fois”, ce qui implique qu'ils s'exécuteront une seule fois lorsqu'ils seront entrés pour la première fois. 3, Saisir le texte structuré pour chaque pas et chaque transition comme le montre la figure 2-4. Hl faut noter que la transition entre Start et Heat utilise la fonction ABS_REAL qui sert à calculer la valeur absolue du paramètre d'erreur FID. La condition pour la deuxième transition utilise l'opérateur ET pour vérifier que : a) la valeur dé process est supérieure à 56,0 et b} le pas Heatup a été actif pendant plus de 30 minutes. La durée de n'importe quel pas actif est fournie par le paramètre de sortie Time (abrégé en .T ) du pas. Pour tester le programme, le compiler, le construire et le télécharger dans le PC3000. Avec le PC3000 commuté en mode RUNNING, le programme est exécuté par défilement séquentiel des pas du début à la fin qui fixe le point de consigne du PID. || faut noter que, lorsque le pas Finish est atteint, le GRAFCET prend fin sans pas actif supplémentaire. Toutefois, l'exécution des blocs fonctions de la boucle de régulation se poursuit. Avec cet exemple simple, il est nécessaire de REINITIALISER le PC3000 puis de le ramener en mode RUNNING (MARCHE) pour relancer le GRAF CET. ll est possible de construire ie GRAFCET de manière à ce qu'il redémarre en permanence, ce qui est traité dans le chapitre 4 Programmation des GRAFCET. Le mode PC3000 est affiché sur le menu principal de la station de programmation PC3060 lorsqu'il est en mode en ligne. Utiliser la commande RUN (MARCHE) pour faire passer le PC3000 en mode RUNNING. Tous les blocs fonctions de cet exemple sont associés à la régulation analogique et s'exécutent dans Task2 qui, par défaut, est scrutée toutes les 100 ms. Le GRAFCET s'exécute aussi dans la mème tâche mais il ne faut pas oublier que seul ls pas actif et ses conditions de transition sont évalués toutes les 100 ms. Pour avoir des détails système supplémentaires sur la synchronisation et l'exécution des GRAFCET et des blocs fonctions, se reporter au Manuel du système d'exploitation temps réel PC3000. Logique numérique Pour compléter cet exemple, la figure 2-5 montre la manière dont une condition d'alarme simple peut être ajoutée par l'utilisation des blocs fonctions numériques, Ces blocs sont interconnectés par câblage par soft de la même manière que les blocs analogiques. L'exemple suppose qu'un signal d'alarme est nécessaire pour couper l'alimentation électrique du process lorsqu'une des deux portes (Doort et Door2) est ouverte et lorsque la température du process est supérieure à 50,0. 2-16 Guide utilisateur PC3000 Concepts de programmation Les blocs fonctions des canaux d'entrée pour les entrées numériques Door! et Door2 déterminent l'état des portes, par exemple, en reliant les entrées matérielles numériques aux microrupteurs. Le signal d'alarme de sortie est piloté par un bloc fonction de sortie numérique, Alarm. Le paramètre d'entrée Process Val d'Alarm est "câblé par soît" à l'aide d'une expression en texte structuré qui implique à la fois la valeur de process du bloc fonction d'entrée numérique et le bloc fonction Tempt. Le câblage par soft peut soit fournir des kaisons directes point à point utilisées pour construire la boucle de régulation soit comporter des expressions complexes avec des paramètres de blocs fonctions aussi bien numériques qu'analogiques. Tazski tôms = = = a = Е < Th 5) o Lu a Templ.Process_val ail (Digital Out) - É Alarm “ 1:05:31 =—{ IQ Address {Digital Im : Fo Door à Process Val Lo 1:03:01 = 10 Address : — Process Val he A he A "Cablage par soft (Digital In) Alarm,Process val:= (Doorl,Process Val OR F Door Y Doorz.Process Val] AND Process Val fe Templ,Precess Val>50,0; 10302 — 10 Address Figure 2-5 Exemple de logique numérique Guide vélisateur PC3000 2-17 Concepts de programmation Pour créer ces blocs fonctions et le câblage par soft, il faut effectuer les actions suivantes : 1. Créer deux blocs fonctions de canaux d'entrée numérique d'E/S appelés Door1 et Door? à l'aide d'un module matériel comme DH 4_ CON. Aucun paramètre de configuration de canal n'est à configurer. S'assurer que le paramètre Test_Enable de chaque bloc est sur Off (valeur par aut). 2. Créer un bloc fonction de canal de sortie numérique appelé Alarm à l'aide d'un module matériel comme DO12_RLY. S'assurer que le paramètre Test _Enable est sur Off (valeur par défaut). 3. Sélectionner le paramètre Alarm.Process Val et lui annexer l'instruction en texte structuré de câblage par soft, comme l'indique la figure 2-5. Les blocs fonctions numériques sont affectés à Task 1 qui est scrutée toutes les 10 ms. Le câblage par soft relié à [a valeur de process du bloc fonction de sortie Alarm est lui aussi évalué toutes ies 10 ms, c'est-à-dire comme le bloc fonction Alarm. L'exemple de programme est maintenant complet et peut être compilé, construit et téléchargé dans le PC3000. La boucle de régulation et la logique numérique d'alarme sont exécutées en continu lorsque le PC3000 ast en mode RUNNING (MARCHE). Le séguencement défile les quatre pas en commengant par Setup. Le tableau 2-2 montre l'ordre d'exécution qui est créé automatiquement par la station de programmation pour faire exécuter le programme. Dans la plupart des cas, il n'est pas nécessaire de connaître l'ordre d'exécution dans le détail. [Toutes les 10 millisecondes - | Lecture des canaux matériels d'entrée numérique Door1 et Door2 Exécution des blocs fonctions des canaux d'E/S et du cablage par soft de la logique numérique de l'alarme. Ecriture de la valeur de sortie d'Alarm vers le canal matériel numérique, [Toutes les 100 millisecondes - | Lecture du canal matériel d'entrée analogique Tempi Éxécution des blocs fonctions Ternp1, Loop! et Heat1 et du câblage par soft formant la boucle de régulation. Exécution des pas acits des GRAFCET et évaluation des conditions de transition suivant ies pas actifs. Ecriture de la valeur de sortie vers le canal matériel analogique. Table 2-2 Ordre d'exécution de l'exemple de programme 2-18 Guide utilisateur PC3000 Concepts de programmation Remarques sur les performances du cáblage par soft Lors de la conception de gros programmes PC3000, il faut voir qu'un grand nombre d'instructions de câblage par soft peut provoquer une augmentation significative du temps système. N.B. : chaque instruction en texte structuré de câblage par soft est exécutée à la même fréquence et dans la mame tâche que le bloc fonction qui reçoit la valeur produite par le câblage par soft. li faut par conséquent prendre soin de minimiser le nombre et la complexité des instructions de câblage par soit affectées aux blocs fonctions possédant une fréquence de scrutation élevée, en particulier les blocs fonctions numériques. Le câblage par soft qui contient un grand nombre d'opérations comportant des valeurs à virgule flottante, comme la comparaison de Temp1.Process val avec 50,0 utilisée dans l'exemple de programme précédent, entraîne une augmentation importante du temps système. Lorsque les programmes sont bien conçus, il est possible de diminuer le nombre de calculs avec virquie flottante. Par contraste, un grand nombre d'opérations comportant des paramètres numériques, comme l'OR de door1.Process val et door2.Process val dans cet exemple, peuvent être exécutés sans augmentation significative du temps système. Le chapitre 5 Développement des programmes donne des indications supplémentaires sur la conception des programmes. L'annexe C de la base du système d'exploitation temps réel PC3000 donne également des informations détaillées sur les performances. с 5 Ks o£ io U pe ha o > Oo © = Guide utilisateur PCZ000 2-19 Chapitre 3 TEXTE STRUCTURE Edition 1 Sommaire PRESENTATION .. LERRRRR O CeCRR PNAN rene an seen ce cc seance een SN Introduction au texte structuré E N Gommentaires ........— wee nena anna rien anar naaa SE TYPES DE DONNEES . meee Seen ak De ENDROITS OU IL FAUT U UTILISER LE TEXTE STRUCTURE .. arasasensueer A AFFECTATIONS .. N | EXpressions ........... e... .necenscceuccie ace nrene acera snnrnsesnes 9 10 Expressions complexes ..........w.—.————— 3-11 INSTRUCTIONS ........iemeeennnana—= enana ena pee nena enero naneoanao 3-12 instructions conditionnelles ............... e e ee. reseca 3-12 OPERATEURS ...........enerrmnemonenrecarvarereeeenee over 314 Opération arithmétique ................—.———- weee A Opérateurs de comparaison ..............-——.. 3-16 Opérateurs boolégns ......... —.= em mee 9717 Priorité des opérateurs .........e.m.ece eminem 3-18 EXPRESSIONS BOOLEENNES. ..............cccco 3-19 FONCTIONS … Prananoeaanenmaanenarnacarmreananernacer teme reraarere 3-20 SELECTION DES VALEURS . N A Fonctions de sélection .......——— 9-01 Séjection des valeurs a l'aide de l'élément IF (SI) ..... 3-23 REGLES D'ECRITURE CORRECTE EN TEXTE STRUCTURE .. passnsau see ea 3-24 Lo [=] - mica a = |= р © Guide utilisateur PC3000 Sommaire 3-1 Texte structure PRESENTATION Ce chapitre traite les points suivants : * Fonctions du langage Texte structuré * Endroits où il est possible d'utiliser le Texte structuré dans les programmes PC3000 * Maniere dont il est possible de traiter des données de types différents en Texte structuré + Manière d'utiliser les fonctions en Texte structuré * Style de programmation adapté au Texte structuré Introduction au texte structuré Le Texte structuré ( abrégé en ST } est un langage texte évolué qui a été formalise par la norme IEC 1131-3 PLC relative aux langages de programmation et qui est destiné à être utilisé dans les régulateurs programmables pour les process de fabrication industrielle. Le Texte structuré offre une vaste gamme de fonctions qui le rendent particulièrement bien adapté à la programmation de la régulation des process industriels : D pee a ij о - E ai a * Toutes les variables utilisées dans ce langage peuvent recevoir des noms ayant une signification, comme : pumpRate. Setpoint heat1.Output Type * Il est possible d'exprimer de manière clairs des expressions simples ou compiexes pour les calcuis mathématiques, comme par exemple : FlowRate.Val := FanSpeed_Process_Val* 3.5; Guide utilisateur PC3000 3-1 Texte structure * Los expressions conditionnelles, c'est-ádire pour les valeurs quí sont dérivées des tests sous une forme ou une autre, sont bien acceptées, Par exemple, pour faire face à des impératifs comme "La vitesse du moteur est de 200 tr/Min lorsque la pièce est à moins de 5 mètres de la téte de l'outil, dans le cas contraire, la vitesse est de 20 tr/min” peut s'exprimer de ia manière suivante : IF Position. Val < 5.0 THEN Motor.Process Val := 200; ELSE Motor.Process Val = 20.0, END IF; * [F est possible d'utiliser une vaste gamme de difiérents types de données, dont les valeurs à virgule flottante et les valeurs numériques, les durées, la date et l'heure. || existe aussi des possibilités de traîter les messages texte. * ll est possible d'avoir des expressions comportant des types différents de données, comme par exemple : gas.Process_ Val := Zone1.Frocess Vai > 310.4 * l{ existe une vaste gamme d'opérateurs intégrés standard : +,-,",>,< AND_OR,NOT * Le langage possède des sécurités intégrées pour erpacher les opérations logiques entre des types de données différents. Par exernple, il est Impossible d'utiliser les opérations mathématiques avec les valeurs d'enirée numériques ou les opérateurs logiques comme ET avec les valeurs analogiques. * Les fonctions peuvent servir à simplifier des expressions de programmes compiexes comme par exemple : position. Val = SQRT{X.Val*X.Val + Y.Val*Y.Val}; position. Val = SQRT{X.Val*X.Val + Y.Val*Y.Val); En règle généraie, les instructions relativement simples en Texte structuré conviennent pour programmer la majorité des applications de réguiation PC3000. Toutefois, la station de programmation PC3000 ne permet pas la création de blocs voiumineux et complexes en Texte structuré. La taille maximale d'un bloc iscié de Texte structuré est limitée mais cette taille est suffisamment élévée pour que cetté restriction n'ait aucune signification pratique. 3-2 Guide utlisateur PC3000 Texte structuré Pour la programmation du PC3000, le Texte structuré sert à décrire : a) le "cáblage par soft” qui assure l'interconnexion des blocs fonctions b) les actions dans les pas des GRAFCET c) les conditions des transitions des GRAFCET. Certaines restrictions s'appliquent au Texte structuré lorsqu'il est destiné à des utilisations différentes ; ces restrictions sont traitées plus en détail dans la suite de ce chapitre. Commentaires Pour faciliter la lecture, il est possible d'ajouter des commentaires à volonté aux instructions en Texte structuré en plaçant le texte entre étoiles (* et”). Exemples : (* Ce pas provoque le démarrage du réacteur 2 *) (* Modifié pour optimiser l'utilisation de l'énergie *} TYPES DE DONNEES Le FC3000 prend en charge toute Une série de types de données dans le Texte structuré qui couvrent la plupart des besoins de traitement pour la régulation de process de production. L'écriture d'expressions en Texte structuré qui utilisent ces différents types de données est traitée dans des parties utérieures de ce chapitre. qu Hr = a о | LS ra e М.В. : dans tout ce guide utilisateur, où une description d'un type de données quelconque est fournie, le nom du type de données normalisé IEC est parfois indiqué entre parenthèses. Virqule flottante (REAL) Plage Taille en bits But +1 o+38 32 Type de données universel pour toutes les valeurs a virgule flottante (décimales) Ce type de données sert à mémoriser toutes les valeurs analogiques à virgule flottante, à la fois négatives et positives, et les valeurs fractionnelles très grandes ou très petites, par exemple 100,56, 100245 21, -0,000233 Guide utilisateur PC3000 3-3 Texte structuré Entier (DINT) Plage Taille en bits But -2147483648 à 32 Type de données universel pour +9147483647 stocker les valeurs entières, par exemple pour les compteurs. Sert à stocker les valeurs entières, c'est-à-dire les nombres entiers, et est utilisé pour les comptages, les numéros de lots, etc. Il est possible de stocker une gamme étendue de valeurs positives et négatives, par exemple 12, 1235687, - 100040. Entier énuméré (DINT) Plage Taille en bits But -214/483648 à 32 Type de données universel pour 12147483647 mémoriser les valeurs entiéres qui possèdent un ensemble défini de valeurs ayant un nom, par exemple pour les modes ou Fétat. Le type de données (parfois abrégé en ENUM) utilise [a même taille mémoire que l'entier (UINT) mais avec des noms associés à un ensemble défini de valeurs. Ces noms sont affichés sur la station de programmation PC3000 et sont fournis pour faciiiter la lecture. Par exempie, !e bloc fonction PesSTATE qui définit l'état actuel du système de regulation PC3000 posséde un paramètre de sortie Battary_Cond (état de la batterie) qui est un entier énuméré. Ce dernier possède des états qui portent UN nom : Bon (0) Faible (1) Défectueux (2) Le nom qui convient est affiché sur la station de programmation PC3600 en méme temps que la valeur du paramètre. Les entiers énumérés peuvent être utilisés à volonté avec les entiers normaux dans les expressions en Texte structuré. 34 Guide utifisateur PC3000 Texte structuré Booléen (BOOL) Plage Taille en bits But 0 où 1 1 Type de données universel pour stocker les valeurs booléennes, C'est-à-dire O ou 1. Ce type de données sert à mémoriser les valeurs booléennes du genre de celles qui sont associées aux entrées numériques pour les manocontacts, qui peuvent avoir deux états : 0 ou 1. En règie générale, À est associé à "Off" (arrêt) ou "False” (faux) et 1 est associé à "On" (marche) ou "True" (vrai). Toutefois, la station de programmation PC3000 permet l'attribution de noms ayant un sens différent si besoin est. Les noms ayant un sens servent à améliorer la lisibilité du programme. Exemples : Down (bas) (0) © Up (haut) (1) E = In (intérieur) (0) ии Out (extérieur) (1) и Durée (TIME) Plage Taille en bits But Jusqu'à 49 jours 32 Utilisé spécifiquement pour mémoriser les durées temporelles comme la durée des tâches ou les constantes temporelles PID Ce type de données sert à mémoriser des durées temporelles avec une précision de l'ordre de la milliseconde, l est possible de stocker n'importe quelie durée jusqu'à 49 jours. L'affichage des durées sur la station de programmation se fait dans la présentation EG. Exemples : T#2d_01h 30m (* 2 jours, 1 heure, 30 minutes *) T#3s200ms (* 3 secondes et 200 millisecondes *) L'emploi du préfixe T# en Texte structuré indique qu'il s'agit de constantes de type TIME (DUREE). Ce préfixe est automatiquement inséré par la station de programmation. Guide utilisateur PC3000 45 Texte structure Heure (TIME_OF DAY) Plage Taille en bits But 00:00:00 à 32 Utilisé spécifiquement pour 23:59:59 mémoriser les valeurs heure du jour (sur 24 heures). Ce type de données est utilisé toutes les fois qu'il faut mémoriser l'heure, par exemple pour définir l'heure du jour pour démarrer une tâche donnée. Les valeurs sont mémorisées avec une précision de l'ordré de la seconde et affichées sur la station de programmation sous la forme "24 heures”. Exemples : TOD09:30 (* 9:30 du matin *) TOD#13:45 (* 1.45 de l'apres-midi *) L'utilisation du préfixe TOD# dans le texte structuré indique qu'il s'agit de constantes TIME_OF DAY. Ce préfixe est automatiquement inséré par la station dé programmation. Date calendaire (DATE) Plage Taille en bits But 01-jan-1970 au 32 Utilisé spéciiiquement pour 01-jan-2136 mémoriser les valeurs pour les dates calendaires. Ce type de données sert à mémoriser les dates calendaires. Une large plage de dates est acceptée. Exemples : D#28-Jul-1992 D#01-Jan-1993 L'utilisation du préfixe Dä# dans le texte structuré indique qu'il s'agit de constantes de date. Ce préfixe est automatiquement inséré par la station de programmation. Guide utiisateur FC3000 Texte struciuré Date calendaire et heure du jour {DATE AND TIME) Plage Taille en bits But 01 -jan-1970- 32 Utilisé spécifiquement pour 00:00:00 au mémoriser les valeurs de dates 01-jan-2136- calendaires combinées à l'heure 23:59:59 du jour. Ce type de données sert à mémoriser les dates calendaires avec l'heure du jour ; on l'utilise généralement pour mémoriser les "horodatages" des événements clés comme le moment du démarrage des tâches, du déclanchement des alarmes, des changements de service des opérateurs, etc. Exemples : DT#02-Sep-1892-20:30:00 DT#25-Jan-1991-23:00:30 L'utilisation du préfixe DT# dans le texte structuré indique qu'il s'agit de constantes de date DATE _AND_TIME. Ce préfixe est automatiquement inséré par ja station de programmation. Chaînes texte (STRING) Plage Taille But Chaque caractère | La longueur d'une | Type de données universel! utilisé peut contenir chaîne texte est pour mémoriser les informations n'importe quel variable - cf. la texte composées d'une chaîne de caractère du jeu | description caractères. de codes ASCIE Les codes autres qu'ASCII (valeurs hexadécimales $80 a $FF) sont également pris en charge. 2 р. ad че 5 = [= a Kn Guide utilisateur PC3000 3-7 Texte structuré Ce type de données sert à contenir les informations texte comme les messages opérateur, las messages de rapports d'imprimante, les adresses de communication, les descriptions de lots, etc. La longueur de la chaîne, c'est-à-dire le nombre maximal de lettres at de chiffres (caractères), qui peut etre memorisée dépend de l'utilisation. Par exemple, le bloc fonction String User Variable peut mémoriser des chaînes texte d'une longueur maximale de 80 caractéres, alors que le bloc fonction Long String User Variable est utilisable pour les chaînes d'une longueur maximale de 255 caractères. 38 Guide utilisateur PC3000 Texte structure Pour avoir des informations supplómentaires sur les blocs fonctions Variables utilisateur, se reporter au Manuel des blogs fonctions PC3000. Exemples de chaines texte : 'Batch 723XA" (* Current Batch Identity *) 'QAO1 PV" (* Address Port OA, instrument 1 PV *) 'ADD REAGENT X1' (* Operator Message *) Les chaînes en Texte structuré figurent entre apostrophes. Ces caractères sont insérés automatiquement par la station de programmation lorsqu'une constante chaîne est créée. Il est possible d'insérer Un caractère non imprimable dans une chaîne en tapant un signe dollar ($}) suivi du code ASCII en hexadécimal ; par exemple, pour insérer le caractère d'appel qui produira un son sur certaines stations opérateur, taper $07. Le code ASCH compiet est donne dans le Manuel des blocs fonctions PC3000. Des caractéres non imprimables peuvent être nécessaires pour structurer les messages texte afin qu'ils puissent être sortis sur imprimante. Types de données entières supplémentaires La majorité des entiers utilisés dans les biocs fonctions et fonctions PC3000 sont de type DINT. Toutefois, dans quelques rares cas, il est possible de définir les paramètres à l'aide des types de données entières énumérées dans le tableau 3-1. Type de Description Taille en bits Plage données IEC SINT Entier court avec 8 -128 a 127 signe USINT Entier court sans 8 0 à 255 signe | INT Entier avec signe 16 327/68 a 32767 UDINT Entier double 32 ба sans signe 42944967296 Tableau 3-1 Types de données entières supplémentaires pour les paramètres des blocs fonctions Dans le tabieau 3-1, les types de données décrits comme "sans signe" impliquent qu'il est uniquement possible de mémoriser des valeurs positives. wh E = CL o = Lu aj Le Guide utilisateur PC3000 39 Texte structuré Attention H faut prendre des précautions lorsqu'on affecte des valeurs entières créées par des expressions en Texte stucturé à des paramètres entiers qui ne sont pas du type normal DINT. La plage de la valeur entière créée par le Texte structuré doit se situer dans la plage du type de données du paramètre qui doit recevoir la valeur. Si cette valeur est hors plage, une valeur incorrecte risque d'être affectée, par exemple le fait d'affecter la valeur DINT 300 à un USINT échouera car la valeur maximale pour USINT est 255. N.B. : ces types de données entières supplémentaires ne sont utilisés dans aucun des blocs fonctions et fonctions standard PC3000, à l'exception des fonctions de chaîne LEN, LEFT, RIGHT,MID, INSERT, DELETE, REPLACE, FIND, JUSTIFY LEFT, JUSTIFY RIGHT, JUSTIFY CENTRE qui possédent certains paramétres antiers USINT, La description des fonctions at des blocs fonctions dans les Manuels des fonctions et blocs fonctions PC3000 inclut le type de données de chaque paramètre. Adresse d'E/S Le type de données Adresse d'E/S sert à mémoriser la position physique d'un bloc fonction de canal d'E/. l! s'agit d'un type de données PC3000 spécial qui n'est pas défini par la norme IEC. Il est impossible de manipuler les paramêtres de ce type en Texte structuré car cela n'aurait aucun intérêt pratique. М.В. : 125 blocs fonctions de canaux d'E/5 peuvent être affectés à différentes adresses physiques à l'aide des utilitaires offerts par la station de programmation sur l'écran Définition matérielle. Les paramètres d'adresses d'E/S font l'objet d'une discussion dans le chapitre 2, Concepts de programmation PG3000. Conversion de types de données I! existe Une vaste gamme de fonctions qui permettent de convertir les différents types de données entre eux ; cf. le Manuel! des fonctions du PC3000, chapitre Fonctions de conversion des types, pour avoir ia liste complète. +10 Guide utlisateur PC3000 Texte structure Par exemple, un comptage mémorisé sous la forme d'un entier peut étre nacessaire dans une expression pour le calcul de la valeur d'une sortie analogique. Dans ce cas, il est possible d'utiliser la fonction DINT_TO_REAL pour convertir la valeur entière en valeur à virgule flottante (RÉAL), c'est-à-dire height.Process val ‘= DINT_TO REAL(count) " 100.5; ENDROITS OU IL FAUT UTILISER LE TEXTE STRUCTURE il est possible d'utiliser le Texte structuré pour trois emplois différents dans un programme PC3000 mais, dans chaque cas, la structure de base du langage est identique. Emploi But Eléments de langage = Cablage par soft Interconnexion des blocs | Affectations © fonctions Expressions > Actions de pas Affectation de valeurs Affectations Г do os iones | Expression Instructions Instructions conditionnelles Conditions de | Définition d'une condition | Expressions transition qui, lorsqu'elle est "vraie”, provoque l'activation d'un ou plusieurs pas nouveau(x) Table 3-2 Utlisation du texte structuré Le Texte structuré offre quelques éléments simples et faciles à retenir (affectations, instructions, expressions et instructions conditionnelles) qui, lorsqu'ils sont utiïisés ensemble, donnent un langage souple et expressif. Pour réaliser des programmes FC3000 efficaces, vous avez intérêt à vous familiariser avec les éléments de langage suivants. Guide utilisateur PC3000 3-11 Texte structuré AFFECTATIONS Les affectations en Texte structuré permettent l'écriture de nouvelles valeurs dans les paramètres d'entrée des biocs fonctions. Ces valeurs peuvent être dés constantes ou fa valeur d'autres paramètres ou bien peuvent être dérivées d'autres paramètres à l'aide d'expressions. Les affectations servent à interconnecter les blocs fonctions, c'est-à-dire à les cäbler par soft, et à définir de nouvelles valeurs de paramètres dans les pas des GRAFCET. Exemples : loop! .Setpoint := 30.5; count1.Process Val := 300; pulse3.Prog Time = T#1s; heati.Process Val := loop1.Qutput; speed.Process_ Val := rate.Process_ Val” 20; Une affectation commence toujours par le nom du paramètre d'entrée du bloc fonction à gauche suivi du symbole ":=". La valeur a droite (c'est-à-dire située après le symbole “:=") doit donner une valeur péssédant le même type de données que le paramèêtre d'entrée du bloc fonction. Le texte de l'affectation se termine toujours par un point- virgule ";". Lors de la création d'affectations par "câblage par soft”, la station de programmation insère automatiquement les symboles "==" et ";". N.B. : la station de programmation indique “Erreur Texte structuré incorrect" si l'on effectue une affectation à Un paramètre de sortie de bloc fonction. Les affectations aux paramètres d'entrée/sortie sont autorisées. Lorsqu'on utilise une affectation pour inter-connecter ou “cäbler par soft” des blocs fonctions comme élément de la stratégie de régulation continue, | faut penser que l'affectation sera évaluée en continu, c'est-à-dire à la fréquence de scrutation de tâches du bloc fonction auquel l'affectation est effectuée. Expressions Il est possible de créer une vaste gamme d'expressions à l'aide des opérateurs Texte structuré standard, afin que les valeurs dérivées puissent être calculées à partir des parametres des differents types de données ST. Les expressions sont utilisées a droite des affectations et dans les expressions conditionnelles. Une expression simple type comporte un cu deux paramètres ou constantes et un opérateur. 3-12 Guide utilisateur PC3000 Texte structuré Exemples d'expressions simples : 123 + 34.6 10000 * count.Process_Val - loop1.Setpoint NOT switch.Process_Val Exemples d'expressions simples dans les affectations : (* Add 120.0 degrees to the current soak temperature *) soak Temp. Setpoint := soakTemp. Setpoint + 120.0; (* The line rate is 2 M/S plus 50% the conveyor speed *) ineRate.Process Val := 2.0 + conveyor.Process Val” 0.5; ("Маме 15 ОМ if O2 supply is OFF and H2 is ON”) valve.Process Val := NOT Q2 Process Val AND H2.Process Val; A == por ra > = Hh PE A Expressions complexes Dans certains cas, il peut être nécessaire de construire des expressions complexes comportant de nombreux paramêtres et opérateurs. Une expression complexe est composée de nombreuses sous-expressions qui peuvent elles-mêmes être composées d'autres SOUS-&xpressions ou d'expressions simples. Pour clarifier l'ordre d'exécution des expressions complexes, il ast possible d'utiliser des parenthèses "(”, ")" pour identifier las sous-expressions. Exemples : {{ airPress.Val* 13.54) + ( gasPress.Val * 34.32 ) - ( vapPress.Val * 0.5 Y (switch.Process_Val AND dig3.Process_Val) OR (overpress.Process_Val AND NOT Alarm.Val) Guide uflisateur PC3C00 2-13 Texte structuré INSTRUCTIONS Une section de Texte structuré est composée d'un certain nombre d'instructions. Une affectation est un exemple d'instruction simple en Texte structuré. Les instructions conditionnelies sont plus complexes et permatient l'exécution sélective d'ensembles d'instructions en Texte structuré, de la manière décrite dans la section suivante. Dans un pas de GRAFCET, il est possible d'utiliser une grande variété d'instructions pour configurer les valeurs des paramètres d'entrée des blocs fonctions selon les besoins de la phase ou de l’état du process considéré. Exemple : BEGIN heater1.Process_ Val := 123.0; heater2.Process_Val := 130.0; fan.Process_Val := 1 (* ON”); END N.B. : ies mots-clés BEGIN et END sont ajoutés automatiquement par là station de programmation lors de la création de Texte structuré pour un pas. lls indiquent que le Texte structuré définit tes actions des pas. Instructions conditionnelles H est possible d'évaluer un ensemble d'instructions de manière conditionnelle en utilisant une structure d'instructions condttionnelles. Le Texte structuré PC3000 fournit iles mots-clés IF, THEN, ELSIF, ELSE et END_IF pour permettre la séléction conditionnelle des instructions en fonction de certains critères de régulation. Dans la forme la plus simple, il est possible d'utiliser IF, THEN et END_IF pour sélectionner un ensemble d'instructions de manière conditionnelle. Exemple: IF switch.Process Val = 1 (* COOL ”) THEN fan.Process Val := 1 (* ON”); fanSpeed.Process_Val := 230.0; END IF; l'expression entre les mots-clés IF et THEN peut être soit simple soit complexe mais doit donner un résultat booléen (BOOL), c'est-à-dire que l'expression doit donner un résultat qui ne peut être que “vrai” (1) ou "faux" (0). Cette expression est appelée expression bocléenne. 3-14 Guide utilisateur FC3000 Texte structuré Dans l'exemple, les affectations à fan.Process Val et fanSpeed.Process_V'al ne peuvent être effectuées que lorsque switch. Process_Val a la valeur 1, dans le cas contraire les affectations ne sont pas prises en compte. Tout le Texts structuré entre IF et END_IF est appelé instruction conditionnelle IF et, comme les autres instructions, il doit se terminer par un point-virgule ";". ll est possible d'évaluer des instructions de remplacement à l'aide du mot- clé ELSE. Exemple: IF switch.Process Val THEN gasFlow.Process Val := 100.0; almEnable.Val := 1 (* ON *; ELSE gasFow.Process Val := 30.0; almEnable.Val := 0 (* OFF *); od report. Val := 'STANDBY": = END_IF; > Dans cet exemple, les affectations à gasFlow.Process_Val, almEnable. Val pr et report. Val sont uniquement évaluées si switch.Process Val est sur off (arrêt). Etant donné que switch.Process Val produit une valeur booléenne, elle peut être utilisée comme expression conditionnelle dans l'élément IF...THEN. L'élément ELSIF ... THEN peut servir à sélectionner un ou plusieurs autres ensembles d'instructions de remplacement. Exemple: IF count = 0 THEN speed.Process Val := 20.0; door1.Process Val := 0 (* SHUT *); ELSIF count < 10 THEN speed.Process Val = 40.0; door2.Process_Val := 0 (* SHUT *); ELSE speed.Process Val := 60.0; door3.Process Val := 0 (* SHUT *); END IF; Guide utilisateur PC3000 315 Texte structuré Dans ce cas, si ie comptage est égal à zéro, lé premier ensemble d'affectations est effectué, si le comptage est inférieur à 10 mais n'est pas nul, le deuxième ensemble d'affectations est effectué. Dans le cas contraire, le dernier ensemble d'affectations est appliqué. Lorsqu'un élément Е... THEN est suivi d'éléments ELSIF … THEN multiples, seul l'ensemble d'instructions associé à la première expression conditionnelle vraie est évalué. NB. : il est bon de s'assurer que las éléments ELSIF multiples ont des conditions qui s'excluent mutuellement pour faciliter la lecture des programmes. Il est possible d'utiliser d'autres instructions conditionnelles dans n'importe quel ensembie d'instructions d'une instruction conditionnelle. En d'autres termes, les instructions utilisant les éléments IF peuvent être utilisées dans d'autres éléments IF. Cela permet de construire des instructions extrûmement complexes. Chaque instruction IF "emboitée” doit se terminer par "END IF ;" Exemple: IF zone1.Process_Val > 300 THEN timer.Prog_ Time := T44s; cool.Output.High := 90.0; IF zonet Process _Val> 310 THEN boost.Process_Val := 400.0; ELSE boost.Process_Val := 350.0; END IF; END IF; 3-16 Guide utilisateur PG2000 Texte structure OPERATEURS Les opérateurs indiqués dans les tableaux 3-3, 3-4 at 3-5 peuvent être utilisés dans les expressions en Texte structuré PC3000. Opération arithmétique Opération Symbole Types de données Addition + Virgule flottante(REAL), Entier(DINT) Soustraction — Virgule flottante(REAL), Entier(DINT} Remarque 1 Multiplication x Vigule flottante(REAL), Entier(DINT} Division / Virgule flottante(REAL) Entier(DINT) at Remarque 2 3 Modulo MOD Entier(DINT} = Remarque 3 y Tableau 3-3 Opérateurs arithmétiques en Texte structuré Remarque 1. Le symbole ”-" est aussi utilisable pour la négation, c'est-à-dire pour convertir une valeur er lui donnant le signe contraire. Exemple : loop.Setpoint := - SPlow.Val; Remarque 2. L'opérateur de division peut être utilisé avec deux paramètres ou constantes de type entier. Le résultat est toujours un entier et toute partie décimale du résultat est rejetée. Exempie : 12/5 (* This will yield 2 as the integer result.”) Remarque 3. L'opérateur modulo donne le reste d'une division entière. || peut uniquement être utilisé avec des données de type "entier" et est normalement utilisé pour compter selon un certain modulo. Guide utilisateur FC3000 | 3-17 Texte structuré Exemples : 12 MOD 4 (* Result is 0 * 14 MOD 4 (* Result is 2”) -4 MOD 3 (* Result is -1 *) gearPos.Val := (gearPos.Val + puises. val MOD 7; (* The value of gearPos.Val is aways between 0 and 6 for any value of pulses.Val *) 3-18 Guide utilicateur PC3000 Texte structuré Opérateurs de comparaison Opération Symbole Types de données Supérieur a > Virgule flottante(REAL), Entier(DINT), Tous les types de données date et heure Inférieur à < Virgule flottante(REAL), Entier(DINT), Tous les types de données date et heure Egal — Virquie flottante(REAL) Remarque 1, Entier(DINT), Tous les types de données date et heure Différent de <> Virgule flottante(REAL) Remarque 1, Entier(DINT), Tous les types de données date et heure © Supérieur ou >= Virgule ftottante( REAL) > égal à Entier(DINT), o Tous les types de données date et heure — inférieur ou égal <= Viraule flottante(REAL) и а Entier(DINT), Tous les types de données date et heure Tableau 3-4 Opérateurs de comparaison en texte structuré Remarque 1. Il est normalement déconseillé de tester l'égalité des valeurs à virguie fiottante car de petites erreurs d'approximation peuvent provoquer un êchec imprévisible du test, par exemple { 3.43212 * 2 = 6.86424 ) pourrait étre faux. Ces opérateurs peuvent servir à comparer les valeurs des données de type à virquie flottante, entier et date et heure, c'est-à-dire les données de type IEC REAL, DINT, TIME, TIME_OF_DAY, DATE, DATE_AND_TIME. Les deux valeurs comparées doivent avoir le méme type de données. Ces opérateurs restituent toujours un résultat de type booléen (BOOL) et servent normalement à définir les conditions limites des process. Guide utilisateur PC3000 +19 Texte structuré Exemples: purge. Time >= T#4m (* Purge step duration greater than or equal to 4 minutes ? ") kbop1.Setpoint > 300.0 (* Loop Setpoint Opérateurs booléens over 300.0 ? ”) inverse ou contraire. Opération Symbole Types de données ET booléen AND Booléen (BOOL) OÙ booléen OR Booléen (BOOL) OU exclusif bocléen XOR Booléen (BOOL) Remarque 1 Sens booléen NOT Booléen (BOOL) Remarque 2 Tableau 3-5 Opérateurs booléens en Texte structuré Remarque 1. L'opérateur OÙ exciusit (XOR) est utile lorsqu'il est nécéssaire d'évaluer si, sur deux paramètres, un seul est “actif” ou "vrai" mais pas les deux. Cet opérateur donne un résultat faux si les deux paramètres sont vrais. Remarque 2. L'opérateur NOT (NON) est utilisé avec une valeur ou expression booléenne unique pour nier is sens booléen. Cet opérateur peut être utilisé après et en liaison avec d'autres opérateurs booléens (cf. les exemples antérieurs d'opéraäteur bocoléen). Ces opérateurs servent à créer des expressions comportant des données de type booléen (BOOL). Bien qu’ils soient essentiellement utilisés avec les entrées et sorties numériques, ls sont également utiles lorsqu'iis sont utilisés avec des opérateurs de comparaison pour créer des expressions qui décrivent des conditions complexes. Exemples: vent.Process Val := switch1.Process_Val AND heatFlag.Val OR overPres.Val; alarm.Val := NOT pressure. Val AND NOT airvalve.Process Val AND ( zone1.Process_ Val > 500.0) ; 3-20 Guide utifisateur FC3000 Texte structuré Exemple : outi.Process Val := ({(in1.Val XOR in2.Val) AND NOT in3.Val } OR in3.Val; (* out1.Process_ Val is set to 1 "ON" when only one of the parameters in1.Val, in2.Val or in3.Val are 1 "ON" *) Priorité des opérateurs Les opérateurs ont des priorités différentes pour garantir que, lorsqu'il y à des expressions complexes portant sur de nombreux opérateurs, l'ordre d'évaluation est cohérent. Exempie: total. Val := a.Val™ 10 + b.Val * 20; Lorsque cette expression est évaluée, a.Val est multiplié par 10, b.Val par 20 et les deux valeurs sont ajoutées. En d'autres termes, la multiplication a lieu en premier et a priorité sur l'opérateur d'addition. Les opérateurs de priorité identique sont évalués de la gauche vers la droite. i1 est possible de modifier la priorité en insérant des parenthèses "(°°)" autour des expressions qui doivent être évaluées en premier lieu. Exemple total.Val := a.Val ” ( 10 + b.Val * 20); Dans ce cas, b.Val est multiplié par 20, 10 est ensuite ajouté et le résultat est muttiplé par a.Val. En cas de doute sur l'ordre d'évaluation, insérer des parenthèses autour das expressions qui doivent âtre évaluées ensemble. 'D [5 = = A = |) ra e Guide utilisateur PC3000 3-21 Texte structuré Opérateur Symbole Priorité Mise entre parenthèses (...} MAXIMALE Nagation - Complément NOT Multiplication * Division / Modulo MOD Addition + Soustraction - Comparaison <> 0m 5e Egalité = Inégalîté <> ET booléen AND OU exclusif booléen XOR OU booiéen CR MINIMALE Tableau 3-6 Priorité des opérateurs Texte structuré 3-22 Guide utilisateur PC30G0 Texte structuré EXPRESSIONS BOOLEENNES Les expressions bocoléennes produisent toujours un résultat booléen (BOOL), c'est-à-dire que la valeur est soit 1 pour “vrai” soit À pour "faux". Ce type d'expression peut servir à décrire les conditions limites d'un process ou des événements dans des instructions conditionnelles ou des transitions de GRAFCET. Une expression boolénne peut inéluré n'importe quels opérateurs at forictions en Texte structuré mais doit donner une valeur finale booléenne, Exemples gasFlow.Process Val >= (valvePos.Process val + 300.0 } * flow Val digini.Process Val AND (heat1.Process Val<250.0} AND ( soak. Time>== T#40m) valve.Process Val > SQRT ( IN = DD L =} LJ 2 = E jt a loadSize.Process_val * 1.234 ) Guide utilisateur PC3000 des Texte structuré FONCTIONS Le PC3000 offre une vaste gamme de fonctions standard qui peuvent être utilisées dans les expressions en Texte structuré pour simplifier les opérations complexes. Il est conseillé de se familiariser avec les types de fonctions disponibles ; ne pas oublier que les fonctions peuvent souvent simplifier et minimiser le Texte structuré nécessaire pour résoudre un problème donné. Une fonction possède un ou plusieurs paramètres et restitue toujours un résultat unique ayant des données d'un type particulier. Les catégories sont énumérées dans les tableaux 3-7 et 3-8. Catégorie But Exemples Numérique Offre une vaste gamme | ABS REAL, SORT, LOG, de fonctions EXP, SIN, ACOS mathématiques courantes, dont les fonctions trigonométriques et logarithmiques Sélection Sert à sélectionner des SEL _BOOL, SEL_REAL, valeurs en fonction d'une | SEL DATE, MAX REAL condition Chaine Ensemble complet de EQUAL, LEFT, CONCAT, fonctions pour manipuler | REPLACE, les chaînes texte, dont la | JUSTIFY RIGHT fusion de chaînes et l'insertion de texte Tableau 3-7 Catégories de fonctions en Texte structuré 3-24 Guide utilisateur PC3000 Texte structuré | Catégorie But Exemples Conversion de Conversion entre les DINT_TO_ REAL, type types de données REAL TO TIME, TIME_TO_UDINT Conversion de Conversion de valeurs STRING_TO_DINT, le compactage de valeurs multiples vers et en provenance de chaines longues pour les communications serie. chaine dont les données sont STRING_TO REAL, de types différents vers | DINT_TO STRING, et en provenance du UATE TO US STRING format de chaine texte Arithmétique Sert à ajouter et à ADD DATE AND TIME T, temporelle soustraire les durees, les | SUB_DATE AND TIME T, dates et les dates et ADD TOD TIME heures | Compact Les fonctions permettent | EXT REAL FROM STR, REP REAL IN_STR, EXT_TIME_FROM_STR, REP TIME 1IN_STR Tableau 3-8 Catégories de fonctions en Texte structuré (suite) De nombreuses fonctions mathématiques comportent une arithmétique complexe avec virgules flottantes ; par conséquent, pour minimiser l'allongement du temps système, il ne faut utiliser ces fonctions qu'avec parcimonie dans le "câblage par soft" associé à ces blocs fonctions qui tournent à des fréquences de scrutation élevées, par exernple dans le "câblage par soft" des blocs fonctions numériques. Le Manuel des fonctions du PC3000 donne une liste complète des fonctions. Le e = рн: a = I ый LTH Guide utilisateur PC3000 3-25 Texte structuré Exemples de texte structuré utilisant des fonctions : light.Process_Val = EXPT { BASE := 2.0, POWER := rate.Val ); (* light is given by raising two to the power of "rate" *) upTime.Val := UDINT_TO TIME ( IN := pulses.Val * spaces.Val); (* pulses scaled by spaces gives milliseconds upTime *) Les noms des paramètres de fonctions sont insérés automatiquement par la station de programmation lors de l'insertion d'une fonction. Les valeurs fournies aux paramètres de fonctions peuvent comporter des expressions complexes en Texte structuré à condition que le résultat de l'expression ait le même type de données que le paramètre de fonction considéré. La station de programmation vérifie que les expressions produisent le bon type de données pour les paramètres de fonctions. SELECTION DE VALEURS Deux méthodes permettent de sélectionner des valeurs de remplacement dans les affectations et expressions en Texte structuré. Fonctions de sélection Ce type de fonction permet fa sélection d'une valeur de remplacement parmi deux, INO et INT, en fonction de la valeur d'une entrée booléenne (BOOL) G. Le résultat est la vaieur d'INO si la valeur de G est 0 “fausse”, dans le cas contraire, le résuliat est la valeur d'IN1 si la valeur de G est 1 "vraie”, Des fonctions de sélection sont prévues pour tous les types de données PC3000. L'entree de sélection G peut prendre une valeur dérivée de n'importe quelle expression booléenne. 3-26 Guide utilisateur PC3000 Texte structuré ВОТ — — EFAL REAL | | i REAL == | \. Figure 3-1 Exemple de fonction de sélection Exemples: qi speed.Val := SEL_REAL( G:= sensor.Val, 3 ING := -20.0 , o INT := 30.0 ); = in (* H sensor.Val is true value is 30.0, otherwise the value it is -20.0 ©) puise .Prog_ Time := SEL_TIME(G := rate.Vai>100.0, INO := TH55 ‚, IN1 := T#2s500ms); (* pulse is 2.5 seconds for rate greater than 100.0 otherwise pulse is 5 seconds *) Les fonctions de sélection sont définies dans la norme IEC 1131-3 et sont particulièrement utiles dans le "câblage par soft" où il est nécessaire de changer la valeur affectée en fonction d'une condition spéciale. Guide utlisateur PC3000 327 Texte structure Exemple: loop1.Process_Val := SEL_REAL(G:= input 1.Status, INO:= input?.Process_ Val , INT:= input 1.Process Val); Dans cet exemple, hbop1 du PID est relié à input! analogique alors que l'état d'input1 est 1, c'est-a-dire "MARCHE”. Toutefois, si input1 subit un incident comme une rupture de capteur, l'état passe à 0, c'est-à-dire "NOGO" et loop1 continue avec la valeur de process d'input2. Sélection de valeurs à l'aide de l'élément IF (SI) Une deuxième méthode, qui ne répond pas à la norme IEC 1131-3, offre la possibilité de sélectionner des valeurs à l'aide de l'élément IF... THEN (SI... ALORS) pour faciliter la lecture des programmes. L'utilisation de cet élément est déconseillée si une partie quelconque du programme doit être par la sufte utilisée sur un système répondant entièrement à la norme ЕС 1131-3. L'exempie précédent peut être exprimé de la manière suivante : loop1.Process_Val := IF input1.Status THEN inputt .Process_ Val ELSE input2.Process Val END IF; IF... THEN nécessite une expression bociéenne qui, lorsqu'elle est égale a 1, c'est-à-dire “vraie”, provoque l'affectation de la première valeur au paramètre situé à gauche de l'affectation et qui, dans le cas contraire, provoque l'affectation de la deuxième valeur à ce parametre. Comme pour la fonction de sélection, l'expression booléenne peut être complexe. Les valeurs de remplacement peuvent être fournies par des expressions complexes à condition qu'elles donnent uné vaieur qui possède lé même type de données que le paramètre affecté. N.B. En Texte structuré, la valeur affectée lorsque l'expression booléenne est 1 "vraie” vient après la valeur affectée lorsque l'expression booléenne est D “fausse”, lorsqu'on utilise la fonction de sélection, mais cet ordre est inversé lorsqu'on utilise l'élément IF... THEN. 3-28 Guide utilisateur PC3000 Texte structuré REGLES D'ECRITURE CORRECTE EN TEXTE STRUCTURE La station de programmation vérifie que l'ensemble des instructions en Texte structuré ont la structure (c'est-à-dire une syntaxe) correcte et, dans certains cas, que les types de données utilisés dans les expressions sont cohérents. Toutefois, il est Don de toujours écrire un Texte structuré possédant une structure correcte et d'utiliser les opérateurs possédant des types de données corrects. Les principaux points à prendre en considération sont les suivants : 1. S'assurer que chaque instruction se termine par un point-virgule, même chaque instruction conditionnelle. 2 Vérifier que les éléments comme IF … THEN sont correctement structurés at se terminent par END 1F. 3, Les expressions doivent traiter des types de données homogènes. 4. Les opérateurs doivent être utilisés correctement. Par exemple, tous les opérateurs sauf "-” et "NOT" doivent être situés entre deux paramètres, constantes ou expressions. Exemples d'expressions interdites : switch.Val := a.Val AND OR b.Val ; X heat.Val =" 100.0 / O2flow. Val ; 5. Utiliser des opérateurs avec des types de données apparés. Cela peut nécessiter l'utilisation des fonctions TYPE_CONVERSION pour garantir que les paramètres ou les expressions sont convertis dans le type de données qui convient. D o - ij о = es ij © Guide utilisateur PC3000 3-29 Chapitre 4 GRAFCET Edition 1 Sommaire PRESENTATION DA envenena 4-1 introduction aux Grafeet ................. PT SELECTION DE SEQUENCES A ALTERNATIVES .. .. 4-3 SEQUENCES PARALLELES -.................e2neneamamaarimancccarcs. 4-6 ETAPES MACROS ET MACROS ..en.iiemeeeemceciarerianareacre 4-5 Etapes macros interruptibles ..........—- er... 4-6 Désactivation des étapes … eraarenas ..4-6 EXECUTION DES ACTIONS EXECUTEES UNE FOIS . 4-7 Pas dont les actions sont exécutéas une ois ............. 4-7 Pas continu. a a $7 SYNCHRONISATION DE L'EXECUTION D DES PAS........ 4-8 Actions de synchronisation dans les pas continus ...... 4-9 INTERACTION ENTRE LES GRAFCET ET LES BLOCS Tr FONCTIONS .. panrenananas enanaonan reune nracennera STO © ATTRIBUTS DES PAS saannneanenaesanesras eee nasenasa men ta nana n saura 4-11 = BLOCS FONCTIONS PASETMACROS ...................... 412 o REGLES DE PROGRAMMATION DES GRAFCET ....... 4-12 Regles d'utitisation des Graîcet serieuse 4-12 Régles d'utilisation des pas .......... me... ..eserevererenaee 4-13 Règles d'utilisation des transitions..,..........——..——.—. 4-13 MAUVAISE CONCEPTION DES GRAFCET .................. 4-13 Guide utilisateur PC3000 Sommaire 4-1 PRESENTATION Ce chapitre décrit ce qui suit : « Motifs de l'utilisation des GRAFCET {SFC) « Principaux concepts des GRAFCET + Utilisation du Texte structuré pour définir les pas et les transitions des GRAFCET « Relation entre l'exécution des GRAF CET et l'exécution des blocs fonctions pour la régulation continue + Conception sûre ou dangereuse des GRAFCET. Introduction aux GRAFCET Le GRAFCET (abrégé en SFC) est un langage de programmation graphique formalise par la norme IEC 1131-3 et qui sert à décrire les aspects séquentiels d'un programme de régulation en termes de pas et de transitions discrets. Pour construire une séquence, on relie graphiquement deux éléments de base d'un programme, les pes et les transitions, comme le montre la figure 4-i. Les liaisons graphiques sont analogues au "câblage par soit” utilisé pour connecter les blocs fonctions . Start Pas —t— -b)— Transition ces > End ; -- LJ = a ot а o Figure 4-1 Eléments de base des GRAFCET Un pas, qui est décrit comme un cadre autour d'un nom de pas, définit un ensemble d'actions qui sont effectuées lorsque l'installation ou la machine régulée est dans un état défini. Le pas reste actif jusqu'à ce que la condition associée a une transition suivante, décrite par une courte ligne horizontale, devienne “vraie”. Guide utlisateur PC3000 4-1 Grafcet Par exemple, dans le cas de la régulation d'un four, Un pas pourrait établir des températures de points de consigne pour lès boucles de régulation PID et la transition suivante pourrait avoir une condition qui attendrait que les boucles de réquiation soient stables. Une série de pas et de transitions est raliée par des lignes, comme le montre la figure 1, pour former une séquence. Lors de l'exécution d'une séquences, le premier pas (dans le cas présent, le pas "Start”) est activé. H reste actif jusqu'à ce que la condition pour la transition suivante soit vraie, c'est-à-dire la transition a). Lorsque la condition pour la transition a) est vraie, le pas suivant "Step A" est active et le pas "Start" est désactivé. De la même manière, la séquence défile tous les pas reliés. Dans cet exemple, un seul pas à la fois est actif. Normalement, Un pas contient des actions qui changent les valeurs des paramètres d'entrée des biocs fonctions pour modifier le comportement de la partie "régulation continue” du programme. Un pas défini habituellement les actions en Texte structuré mais peut représenter un autre GRAFCET en utilisant le concept "étape macro” traité dans la suite de ce chapitre. La condition associée à une transition est définie à l'aide d'une expression boc:éenne écrite en langage Texte structuré (cf. chapitre 3 Texte structuré). Une condition peut définir n'importe quel événement temporel ou condition limite. La figuré 4.2 présente un exemple dé séquence simple et ses actions et transitions de pas associées définies à l'aide du Texte structuré ; cet exemple est tiré de l'exemple de programme présenté dans le chapitre =. Setup Loop1 Setpoirt:=20.0; — ABS REAL (Temp\ Process Va-HLoop1 Setpoint) < 2.0 Heatup Lospi.Setpont:=60.0; —— Temp!.Process Vab 55.0 AND Heatup. T mez>= T#30s Cool | Loop1.Setpont=20.0: mt Templ.Process Va=24.0 | Finish Figure 4-2 Exemple de sequence en Texte structure 4-2 Guide utilisateur PC3000 Grafcet Sur la figure 4-2, si l'on suppose que is pas Setup est actif, le pas Heatup est activé lorsque la condition de transition "ABS REAL (Templ.Process Val - Loopl.Setpoint) < 2.0" devient vraie, c'est-a-dire lorsque la valeur absciue de l'érreur de la boucle de régulation du PID est inférieure á 2,0. Des que Heatup est activé, le pas Setup est désactivé et sa transition associée n'est plus évaluée. N.B. : il suffit que la condition d'une transition suivant un pas actif soit évaluée une fois comme étant "vrale” pour provoquer l'activation du pas suivant. SELECTION DE SEQUENCES ALTERNATIVES Il ast possible de sélectionner les parties alternatives d'une séquence avec des transitions multiples en provenance d'un pas, comme le montre l'exemple a) de la figure 4-3. A partir du pas "Load", il existe trois pas alternatifs qui péuvent être activés. La sélection effectuée dépend de la transition qui est "vraie” la première lorsque "Load” est actif. Cas où les séquences alternatives sont utiles : * Lorsque les phases du process doivent varier en fonction du type de produit en cours de fabrication, comme le montre la figure 4-3. * Lorsqu'un ensemble spécial d'actions est nécessaire à la suite d'une défaillance du process, c'est-à-diré une reprise après défaut. « Lorsqu'il est nécessaire de répéter un ensembie de pas un certain nombre de fois puis de saisir une séquence alternative une fois que la condition finale a été atteinte. Le système d'exploitation PC3000 évalue les transitions de la gauche vers la droite. Dans cet exemple, si les trois conditions de transition sont “vraies”, seul le pas "Heat" sera sélectionné N.B. : lorsqu'il y a des transitions alternatives, un seul des pas successifs est activé, même si plusieurs conditions de transition sont “vraies”. pu a о Ш. «< + Oo Guide utilisateur PC3900 4-3 Grafcet SE | Settle Thaw | —+— ©) | Unicad | Figure 4-3 Sélection de séquences alternatives Les séquences alternatives peuvent rejoidre d'autres séquences en reliant la transition du demier pas à Un pas d'une séquence différente, cf. les figures 4-3b) et c). SEQUENCES PARALLELES Il est possible de définir des sequences qui doivent tourner en paralléle en les reliant par un trait horizontal double suivant une transition simple (cf. figure 4-4 a). | Start — а) Ne | Purge Load f Pres_Chk | Heat | HoldLoad | Shut OH | Stir | Unload | Drain | —= | Finish | Figure 4-4 Séquentes parallèles 4-4 Guide utilisateur PC3000 Grafcet Sur la figure 4-4, lorsque le pas "Start" est actif et que la condition de transition en a) est "vraie”, les pas "Purge", "Load" et "Pres Chk"” sont activés simultanément, ce qui fait tourner les trois séquences en parallèle. Des séquences parallèles peuvent être nécessaires lorsqu'un certain nombre d'opérations de process peuvent toumer indépendamment les unes des autres. La figure 4-4 montre trois séquences de régulation d'une cuve de réacteur, d'un mécanisme de chargement de tâches et de régulateurs de pression. La station de programmation permet de lancer un maximum de 12 séquences parallèles à partir d'une seule transition. D'autres transitions peuvent lancer des séquences parallèles supplémentaires sur le même grafcet si besoin est. Dans de nombreuses applications de régulation, il est souvent nécessaire d'attendre qu'un certain nombre de séquences parallèles se termine avant de passer à la partie suivante de la séquence principale. On peut y parvenir en utilisant une séquence parallèle rendez-vous représentée sur la figure 4-4b) par un trait horizontal double joignant un certain nombre de séquences parailèles. Un rendez-vous est toujours suivi d'une transition simple. NB. : la condition pour la transition rendez-vous est uniquement évaluée lorsque tous les pas précédents connectés sont actifs. Lorsqu'elle est "vraie”, tous les pas précédents sont désactivés et le ou les pas suivant(s) est(sont) activé(s). Un rendez-vous peut être nécessaire lorsque plusieurs séquences doivent être finies avant qu'il soit possible de continuer. Par exemple, vous pouvez avoir besoin d'être sûr qu'une cuve de réacteur est vidangée, que le produit a été déchargé et que les régulateurs de pression ont été fermés avant d'ouvrir une porte de la cuve. ETAPES MACROS ET MACROS La station de programmation permet de construire des séquences complexes à partir d'une hiérarchie de GRAFCET. Le graphique supérieur est affiché lorsque l'éditeur de GRAFCET apparaît pour la première fois sur la station de programmation et il est appelé graphique principal. || её! possible de créer une étape comme étape macro en lui affectant l'attribut “Macro”. Ceia implique que l'étape représente une macro de niveau inférieur. -- LL = La ot Œ =) Guide utlisateur PC3000 45 Chaque macro doit avoir une seule étape identifiée comme l'étape de départ. Lorsqu'une étape macro est activée, elis provoque l'activation de l'étape de départ de l'étape macro de niveau inférieur. Marco chart Load nn В Pump M Process Anneal FT | Unload > = Depress Figure 4-5 Appel d'une macro à partir d'une étape macro La figure 4-5 montre un exemple simple d'étape macro "Process" qui représente une macro de niveau élémentaire. Là séquence est transiérée de l'étape "Load" sur le graphique de niveau supérieur à l'étape de départ “Pump” sur la macro lorsque la transition de "Load" à "Process" devient “vraie”. La transition de “Process” a "Unload" est uniquement évaluée lorsque l'étape finale de là macro “Depress” est atteinte. Lorsque cette transition est “vraie” et l'étape "Depress” est active, la séquence revient au graphique de niveau supérieur, à l'étape "Unload”. Les macros peuvent appeler des macros supplémentaires sur un maximum de 20 niveaux, ce qui permet de créer des hiérarchies complexes de séquences. N.B. : il est bon de s'assurer que le graphique principal décrit uniquement les étapes de process primaires. Normalement, les étapes primaires sont des étapes macros qui représentent dés graphiques de niveau élémentaire. Etapes macros interruptibles Une étape macro interruptible offre un mécanisme permettant de désactiver toutes les étapes dans les macros de niveau inférieur. Lorsqu'une étape macro interruptible est active, la macro de niveau inférieur est activée 4 partir de l'étape de départ (c'est-à-dire comme pour une étape macro normale). Toutefois, dans ce cas, la transition suivant l'étape matro est évaluée en continu. Si la condition de transition devient “vraie”, toutes les étapes de la macro de niveau inférieur (y compris celles des macros situées á un niveau encore inférieur et qui proviennent d'étapes macros) sont désactivées. 46 Guide utilisateur PC3000 Grafcet Cela peut être utile lorsqu'une séquence compiexe doit être rapidement supprimée, par exemple pour arrêter une séquence de chargement automatique lorsqu'on appuie sur un interrupteur manuel. М асиз chart y Pump Process | E Anneal | + y + Depress {=> < i Figure 4-6 Utilisation d'une étape macro interruptible Sur la figure 4-6, "Process” est une étape macro interruptible. Lorsque "Process" est activé, on entre dans la macro à partir de l'étape de départ "Pump" . Là condition de la transition à partir de "Process" est évalués en continu pendant que la séquence de la macro est active. La ligne en pointillés montre le cas où l'étape "Anneal" est interrompue parce que la transition provenant de "Process" est devenue “vraie”. La séquence de la Macro de niveau supérieur continue à partir de l'étape "Unload” qui suit "Process". ll est possible de faire d'une étape finale une macro interruptible. Dans ce cas, c'est la(les) transitionís) de l'étape de la macro de niveau Immédiatement supérieur qui est(sont) testée(s) et qui, lorsqu'elle(s) est(sont) vraie(s), met{mettent) fin A la Macro dé niveau inférieur. Désactivation des étapes Lorsque des étapes sont désactivées à la suite de l'interruption d'une macro, les actions d'une étape sont toujours exécutées en totalité. Cela signifie qu'il n'est jamais possible qu'une étape soit désactivée alors que des actions sont en cours d'exécution. Une étape dont les actions sont exécutées une fois sst désactivée apres que toutes les actions ont été exécutées une fois. Une étape continue est désactivée après que toutes les actions ont été exécutées au moins une fois, Les actions sont exécutées encore une fois après la désactivation de l'étape. Au cours de cette dernière exécution de l'étape continue, le paramètre Executing de l'étape est faux. Le texte ci- après donne une description plus détaillée à ce sujet. pe Li) = Lu < oc o Guide utilisateur PC3000 4-7 Grafcet EXECUTION DES ACTIONS DE PAS Les actions de tout pas décrit en Texte structuré peuvent être exécutées dans deux modes : pas à pas ou continu. Pas dont les actions sont exécutées une fois Il s'agit du mode d'exécution normal par défaut dans -lequel toutes les actions du pas sont exécutées une fois lorsque le pas est activé pour la première fois. | Heatup Loop1.Setpoint :=60.0; Loop?. Setpoint :=70.0; + Temp1.Frocess Val-56.0 AND Heatup.Time>= Т#305; Figure 4-7 Pas dont les actions sont exécutées une fois La fiqure 4-7 décrit Un pas dont les actions sont exécutées une fois "Heatup”. Les affectations à Loop\.Setpoint st Loop2 Setpoint se produisent uniquement lorsque le pas est activé pour la première fois. La condition de transition attend que le pas soit actif pendant au minimum 30 secondes, loutetois, bien que le pas reste actif, les affectations ne sont effectuées qu'au début et n'ont aucun effet pendant le reste de cette période. Ce mode d'exécution convient à la majorité des pas où il est nécessaire de simplement configurer les paramètres des blocs fonctions pour un état ou une opération de process donné(e). N.B. : ce mode est équivalent au qualificateur d'action Pulse défini dans la norme IEC 1131-3, Pas continu Ce mode d'exécution qui peut être fixé par l'attribut pas continu provoque l'exécution répétée des actions d'un pas tant que ce pas est actif. Cela peut être par exemple nécessairs lorsqu'il faut suivre les valeurs d'entrée pendant une période donnée ou modifier en continu les valeurs de sortie. En fait, UN pas continu se comporte comme un élément de “câblage par soft” temporaire. ; IFinput.Process Val-High.ValTHEN | HighScan £E High.Val :=nput. Process Val, E END Е; + HighScan Time >= T#30m Figure 4-8 Pas continu 4-8 Guide utilisateur PG3000 Grafcet Sur la figure 4.8, un pas continu sert à surveiller une entrée analogique pendant une période de 30 minutes et à enregistrer la valeur maximale atteinte dans le paramètre High. Val. NB. : les actions d'un pas continu sont exécutées encore une fois après que la transition suivante du pas est devenue "vrale”, ce qui fait l'objet de la discussion dans la section suivante. SYNCHRONISATION DE L'EXECUTION DES PAS Tous les graphiques sont scrutés de manière répétitive à la fréquence de scrutation fixée par la tâche affectée au GRAFCET. Tous les pas actifs sont évalués et les actions de pas associées sont exécutées en fonction du mode d'exécution de chaque pas. Exécution du Grafcet Pas actif (drapeau X} Etat de transition Actions à pas continus exécutées Actions pas à pas exécutées -- LL с LL <T i Oo Figure 4-9 Syncrhonisation de l'exécution des pas Guide utilisateur PC-3000 . 45 Grafcet La figure 4-9 est un diagramme de synchronisation qui montre les différences entre l'exécution des actions pas à pas et l'exécution des actions à pas continus. Un pas est actif jusqu'à ce qu'une transition suivante devienne “vraie” ; il est ensuite désactivé. Le paramètre Executing (exécution) reste "vrai" pendant que le pas est actif (cf. également la saction Blocs fonctions de pas et macros). Les actions d'un pas unique sont exécutées une fois lorsque le premier pas devient actif. Par opposition, les actions d'un pas continu actif sont exécutées à chaque scrutation du GRAFCET. Il faut toutefois noter que les actions sont également exécutées une fois encore après que le pas a été désactivé, cf. figure 4-10. Cette possibilité est offerte afin que les pas continus puissent avoir des fonctions leur permettant de fermer certaines fonctions lors de la sortie. IF Fumping.Executino=1{"CN"THEN , Pump.Process Val :=mput.Process Val; c| Pumping ELSE Pump.Process_ Val :=100.0; END IF Pumping. Time>=T#1h ; Figure 4-19 Exécution des actions á pas continus lors de la sortie La figure 4-10 montre un exemple de pas continu dans lequel une affectation est effectuée lorsque le pas est désactivé. Lorsque le pas "Pumping" est actif, Pump .Process Val est mis à jour en continu à partir de input .Process Val. Toutefois, lorsque le pas est désactivé, Pump.Process_val est remis à 100,0. Le paramètre de pas Executing (abrégé en X) sert à sélectionner les actions qui doivent se produire lorsque le pas est actif et celles qui ont lieu une fois lorsque le pas est désactivé, c'est-à-dire lorsqu'il est sur off (cf. également les blocs fonctions de pas et macros). Actions de synchronisation dans les pas continus Le paramètre Time d'un pas continu est mis à jour en continu lorsque ce pas continu est actif. Cette caractéristique peut être utilisée pour provoquer la réalisation de certaines actions à des moments différents après le démarrage du pas. 4-10 Guide utilisateur PC3000 Grafcet Exemple : IF shutdown. Time < T41m THEN pump1.Process_Val := 30; ELSE pump1.Process Val := 0; END IF; Valve1.Process_Val := (shutdown. Time > T#2m):; Dans cet exemple, nous supposons que l'arrêt est un pas continu actif pendant 4 minutes, par exemple, synchronisé par la transition suivante du pas. Les instructions en Texte structuré des actions du pas garantissent que la valeur de process de pump1 est positionnée sur 30 au cours de la première minute puis sur 0. Valvel process val est "vraie", c'est-à- dire que la vanne est positionnée sur "ON" (marche) après deux minutes. - Ш o LL. <I С 5 Guide utilisateur PC3000 4-11 Grafcet INTERACTION ENTRE LES GRAFCET ET LES BLOCS FONCTIONS || faut prendré des précautions particulières dans les cas où les valeurs des parametres des blocs fonctions sont confiqurées dans un pas qui est suivi immédiatement d'une transition qui effectue un test pour savoir si le bloc fonction a terminé une opération. Ne pas oublier qu'un bloc fonction donné peut ne pas avoir le temps suffisant pour s'exécuter entre le paramétrage des valeurs du pas et le test du résuitat dans la transition. rampSP.Setpoint :=300: Xx SiRamp E ESP Mode :=1 ("RUN": rampSP.Ramp_End=1{"True") rarmpSF Setpoirt -=300; StriRamp rampSP Mode :=1 ("RUN"); J ranpSP Ramp_End-1(*True*) AND SttRamp.Frme=T #1C0ms Figure 4-11 Interaction entre les GRAFCET et les blocs fonctions La figure 4-11 montre un problème qui se produit couramment. Les actions du pas canfigurent un bloc fonction "rampSP" pour qu'il aille "en rampe” jusqu'à un point dé consigne donné. La transition doit attendre que la rampe soit terminée. Dans le premier exemple, la transition peut ne pas détecter la fin de la rampe car la transition peut être "vraie" immédiatement après que le pas est devenu actif. Cela est Où au fait que le paramètre rampSP.Ramp_End * reste "vrai" à la suite d'une exécution précédente du bloc fonction rampSP. Dans le deuxième cas, la condition de transition à été modifiée pour garantir que rampSP s'exécute au moins une fois avant de tester le paramètre Ramp_End. Cet exemple suppose que le bloc fonction rampSP est dans une tâche 100 ms. N.B. : toujours s'assurer qu'il y a suffisamment de temps pour l'exécution des blocs fonctions après la configuration des paramètres d'entrée puis le test des valeurs des paramètres de sortie des blocs fonctions. 412 ‘Guide utilisateur PC3000 Grafcet ATTRIBUTS DES ETAPES Démarrage Spécifie que l'étape sera rendue active lorsque la macro qui la contient deviendra activé. Fin Normalement la derniere étape d'une étape macro. La condition de la transition quí suit une étape macro sera testée lorsque l'étape Fin de la macro associée deviendra active. Si la condition de la transition est "vraie”, l'étape Fin devient inactive et la macro qui la contient termine son exécution. Toutefois, l'étape Fin du graphique PRINCIPAL est un cas spécial qui, lorsqu'elle est active, s'exécute une fois et le GRAFCET tout entier est alors termine. Une macro normale {qui ne peut pas étre interrompue) doit contenir une etape finale. Une macro interruptible peut contenir une où zéro étape finale. (Valeur par défaut normale} Attribut par défaut qui n'est pas explicitement défini sur la station de programmation, implique que l'étape n'est ni une étape initiale ni une étape finale, Table 4-1 Attributs des étapes Macro Spécifie que l'étape active Une macro qui ne peut être interrompue. La(les) transition(s) qui suit{suivent) une étape macro sera{seront) uniquement testée(s) lorsque la macro associée aura atteint l'étape finale. Macro interruptible Spécifie que l'étape active une macro interruptible. La(les) transition(s) qui suit(suvent) une étape macro interruptible est(sont) testée(s) en continu pendant que la macro est active. Si une des transitions a une condition “vraie”, la macro tout entière est désactivée. Pas à pas (par défaut) Spécifie que les actions de l'étape sont uniquement exécutées une fois lorsque l'étape est activée pour la première fois. Continu Spécifie que les actions de l'étape sont exécutées en continu pendant que l'étape est active. Les actions sont exécutées encore Une fois après que l'étape a été désactivée. Table 4-2 Attributs des étapes Lors de la configuration des attributs des étapes, une étape peut posséder un attribut du tableau 4-1 et un attribut du tableau 4-2. Guide utilisateur PC3000 4-13 > DJ O НЕ < oc O Grafcet Exemples : Démarrage + exécution une seule fois Normal + Continu Normal+ Macro interruptible Fin + Macro BLOCS FONCTIONS PAS ET MACROS Chaque pas, chaque macro et chaque étape macro interruptible sont représentés dans le systéme PC3000 sous la forme d'un bloc fonction. Cala permet d'utiliser les paramétres qui donnent l'état et [a durée de l'étape dans le Texte structuré, c'est-à-dire dans le "cablage par soft”, les actions des étapes et les conditions de transition. step v Executing | | Macro Executing | |J—500L TIME Time | Finished | = z00r \. Figure 4-12 Blocs fonctions étapes et macros Le bloc fonction macro est utilisé pour les étapes macros normales et les étapes macros interruptibles. Ces deux types de blocs possèdent des paramètres Executing et Time. Le paramêtre Executing (abrégé en .X} est mis a 1 toutes les fois que l'étape ou la macro est active. Le paramètre Time (abrégé en .T) donne la durée de l'étape ou de la macro. La valeur de ce paramètre est remise à zéro lorsque l'étape est activée pour là première fois puis augmente pendant que l'étape est active. Lorsque l'étape est désactivée, la valeur est bloquée. Ce paramètre peut servir à mesurer ia durée d'une étape. || constitue également une précieuse aide au diagnostic car il enregistre la durée pendant laquelle un programme s'est trouvé dans une étape donnée lors de sa dernière exécution. Le paramètre Finisheéd (abrégé en .F) fourni avec ie bloc fonction macro est configuré lorsque la macro atteint l'étape finale. il est toujours supprimé lorsque l'étape macro n'est pas active, || peut être utilisé dans les conditions de transition pour tester si Une macro donnée est terminée. 4-14 Guide utilisateur FC3000 Gralco! REGLES DE PROGRAMMATION DES GRAFCET Règles d'utilisation des graphiques Les points suivants s'appliquent toujours aux graphiques : 1, Le graphique supérieur appelé MAIN donne la vué d'ensemble du niveau supérieur du programme séquentiel tout entier. 2. Un graphique de niveau inférieur est associé à une étape macro normale ou a une étape macro interruptible dans le graphique de niveau immédiatement supérieur. 3. Un graphique peut contenir un certain nombre de pas et de transitions reliés par câblage (c'est-à-dire par des lignes graphiques} qui définissent le flux de régulation d'un ensemble d'étapés actives et des transitions qui leur sont associées à l'ensemble suivant. 4 Un graphique doit avoir précisément une étape de démarrage. Un graphique doit avoir une où zéro étape finale. E, Un graphique actif est Un graphique qui contient une ou plusieurs étape(s) active(s). n Règles d'utilisation des pas Les points suivants s'appliquent toujours aux pas : 1. Un pas peut être Une macro qui représente un autre GRAFCET ou il peut être défini comme un ensemble d'actions utilisant le langage Texte structuré. 2. Un pas est normaiement suivi d'une où plusieurs transitions sauf : a) les pas finaux qui ne sont jamais suivis d'une transition et b) Un pas peut en option ne pas être suivi par des transitions s'il doit toujours rester actif une fois qu'il à été atteint. | Un pas continu qui n'est suivi par aucune transition reste actif. 3. Un pas ne peut pas être suivi immédiatement d'un autre pas sans transition, 4. Un pas peut posséder un attribut qui définit ia maniére dont il est exécuté. Règles d'utilisation des transitions Les points suivants s'appliquent toujours aux transitions : 1. Chaque transition doit toujours être précédée et suivie d'un ou plusieurs pas. 2 Une transition ne peut jamais être reliée à Une autre transition. Guide utilisateur PC2000 4-15 pu LJ O 15 <I CC < Grafcet 3. Une transition représente une condition qui doit être remplie avant que le ou les pas précédent(s) qui lui estésont} associé(s) soit(soient) désactivé(s). 4, Une condition de transition est décrite par une expression booléenne en Texte structuré. MAUVAISE CONCEPTION DES GRAFCET La station de programmation vérifie chaque graphique et s'assure que la construction de base de chaque GRAFCET est correcte avant de permettre la construction d'un programme (par exemple, chaque graphique doit avoir un pas de démarrage). Toutefois, il est possible de construire un graphique dont le comportement est incorrect pour deux principales raisons : 1. |[ peut y avoir certains pas qui ne peuvent jamais être activés. 2 Des pas ou des séquences peuvent rester actiis par Inadvertence. Cela peut se produire lors d'une nouvelle entrée dans une séquence, en particulier si elle comporte des séquences parallèles qui ne se terminent pas correctement à Un rendez-vous. Sm | X Кой ReSt art 6} | Purge | Pres Chk | a) IT T — | Cool Heat | Shut Off | | Unload | Stir | E Finish Figure 4-13 Mauvaise construction de GRAFCET 4-16 Guide unlisateur PC3000 Grafeet La figure 4-13 montre un GRAFCET mal construit car, si la séquence a) est sélectionnée, il est possible que les pas "Pres Chk” ou "Shut off” restent actifs lors de la réactivation du pas "ReStart”. ° Int ReStart TT | — + b} —1 9 UnLoad Finish L B 0 $ = 9 | m | Shut Off | “J d) Figure 4-14 Rendez-vous impossible à atteindre La figure 4-14 donne un autre exemple de GRAFCET erroné ; supposons que ce GRAFCET ait été appelé par une étape macro, Le rendez-vous en d) ne peut jamais être atteint si l'on sélectionne la séquence en b) ou le pas final c). Etant donné que le pas "Position" n'est pas activaté, le pas "Stir" ne peut jamais être atteint. Il est également possible que le pas final "Finish" soit atteint alors que d'autres pas sont encore actifs (pas "Purge" ou "Heat”). Cela peut entrainer le retour à l'étape macro dans le graphique de niveau supérieur alors que des pas sont encore actifs. -- НВ) oO LL <I Œ La Guide utilisateur PC3000 4-17 Grafcet N.B. : sur les macros, toujours s'assurer que toutes les séquences parallèles parviennent à un rendez-vous avant d'atteindre le pas final. Unsag spc [| me | X ReStart | [Hom Ге [ен Е Finish Figure 4-15a Rendez-vous incomplet 4-18 Guide utilisateur PC3000 Grafcet Stir E Finish Figure 4-15b Rendez-vous complet La figure 4-15a montre un GRAFCET erroné et la figure 4-15b montre un GRAF CET correct équivalent. Dans le GRAFCET erroné, la transition rendez-vous avant le pas "Stir" ne peut jamais être évaluée car elle attend que tous les pas "Heat", “Position” et "Réverse” deviennent actifs. Cela ne peut jamais se produire car les pas "Position" et "Reverse" sont des pas alternatifs. -- Ш = LL <T oc O Guide utilisateur PC3000 4-19 Chapitre 5 DEVELOPPEMENT DES PROGRAMMES Edition 1 Sommaire PRESENTATION .. — renee 5-1 CONSIDERATIONS RELATIVES A A LA CONCEPTION DES PROGRAMMES ..........necemmecnmcoonnrornanernecaranenneonnen . 5-1 Optimisation des performances par le SÓQUENCEMENt ..........——.—.——. rm .ererrraorrecorerecane en vereve.a ‚ 5-2 PHASES DE DEVELOPPEMENT DES PROGRAMMES . creuse меннее 5-2 Sélection et configuration des c canaux x d'E/S Зенон 5-3 Configuration de la régulation analogique continue 5-3 Configuration de la régulation numérique continu ... 5-4 Création d'une stratégie de réguiation de SÉQUENCEMEONT ....….……….icarissarrrennnacannessananeraanmr sa nan eees 5-5 Création de transitions et d'actions de pas............... 5-6 CONCEPTION DU GRAFCET PRINCIPAL .................. 5-6 RETROACTION DANS LE CABLAGE PAR SOFT DES BLOCS FONCTIÓNS ...........———..———.enmeriacicanooaan cara aza rain 5-7 MODIFICATION DE LA CONFIGURATION DES TACHES . неее Khan ana … 5-9 TYPES DE BLOCS FONCTIONS. Perenne 5-9 — a Affectation des blocs fonctions a aux x taches nena ree. . 5-12 5 = CONSTRUCTION D'UN PROGRAMMATEUR DE 5 3 PALIERS ET DE RAMPES .. неее u... 5-12 o D STYLE DE PROGRAMMATION cae. . 5-16 Le, 9 MISE EN SERVICE DES PROGRAMMES ................. 5-17 = a Blocage de séquence .…...…...…........…....…cocreccaccaesss De17 = > Ecrans Utilisateurs ..........————e——e e ———— 7 Simulation d'installation ..............-————- em. 17 Test de SOrtié .......... e... .recearnacenecanerrenerancenanecnenoencena 5-18 Guide utilisateur PC3000 Sommaire 5-1 Développement des programmes PRESENTATION Ce chapitre décrit les aspects suivants du développement des programmes pour le PC3000 : * Manière de structurer un programme FC3000 en analysant les différents besoins d'un système de régulation * Méthodes correctes de programmation * Manière d'utiliser efficacement le système de régulation PC3000 * Manière de développer des programmes faciles à lire et à entretenir * Manière de mettre en service les programmes PC3000 * Manière d'utiliser les blocs fonctions avec les GRAFCET pour résoudre les problèmes de régulation CONSIDERATIONS RELATIVES À LA CONCEPTION DES PROGRAMMES Un programme PC3000, comme tout élément logiciel, doit être conçu avec soin pour garantir son bon fonctionnement et une utilisation optimale des ressources et performances du PC3ZO00. Si le programme est utilisé pour réeguler un process de production, il est également important que le programme soit facile à lire et à comprendre par les techniciens chargés de la mise en service et de la maintenance. Bien que le PC3000 soit Un système de régulation souple qui permet de construire des programmes par étapes, il est conseillé de connaître et de prendre en compte tous les aspects de l'application du système de régulation avant de commencer le développement du programme. Il est conseilié de suivre les procedures ci-dessous : 1. Produire un inventaire complet de l'ensemble des entrées et sorties nécessaires au système. ll est conseillé d'ajouter quelques entrées et sorties supplémentaires en cas de besoin et pour les extensions futures. 2 Analyser toutes les entrées et sorties analogiques et identifier celles qui sont associées aux boucles de réguiation PID. Identifier les sorties numériques à utiliser pour les sorties proportionnelles au temps. 3. Identifier les temps de réponse, la plage et la précision de toutes les entrées et sorties analogiques . = @ БЕ ЕЕ d (1 = = a © o 2 To — OD all 4. Identifier les temps de réponse nécessaires pour les entrées et sorties numériques. Guide utilisateur PCZ000 5-1 Développement des programmes 5. Identifier les aspects de la stratégie de régulation qui s'appliquent en permanence et font par conséquent partie de la stratégie de régulation continue, par exemple les boucles de régulation PID, les verrouillages, le suivi des alarmes. 6. Identifier les principales phases de régulation séquentielles : initialisation de process, étalonnage, arrêt, attente sont des exemples de phases de régulation bien distinctes. 7. Identifier les phases de régulation qui peuvent fonctionner parallèlement et n'exercent pas d'interaction directe les unes sur les autres. Par exemple, la manipulation d'un affichage opérateur et la mise en rampe des points de consigne d'une boucle de régulation peuvent être pilotées par des séquences qui tournent en paralièle. 8. Identifier tous les besoins de communication avec des appareillages externes comme les systèmes SCGADA, d'autres PC3000, les régulateurs programmables et les instruments et unités discrets Eurotherm. 9. Identifier les valeurs des paramètres clés du système de régulation qui peuvent nécessiter une modification lors de la mise en service du système de régulation. Optimisation des performances par le séquencement Jt est important de prendre en compte tous les aspects de séquencement du programme de régulation, || faut éviter tout "câblage par soft” superflu dans la stratégie de régulation continue car ceia peut entraîner un allongement significatif du temps système. Far opposition, la stratégie de regulation assurée par les actions dans tes pas des GRAFCET ne provoque un aliongement du temps systéme que lorsque certains pas sont actifs. N.B. : contrairement à la programmation en échelle des régulateurs programmables où le défilement séquentiel et la régulation continue sont combinés, le PC3000 permet la séparation entre le séquencement et la régulation continue. Cela diminue les exigences en matière de performances et facilite le développement, la mise en service et la maintenance du programme de régulation. 5-2 Guide utilisateur PC3000 Développement des programmes PHASES DE DEVELOPPEMENT DES PROGRAMMES I! est conseillé de développer un programmé PC3000 dans un certain nombre dé phases claires. Toutefois, il ne faut pas oublier que ces phases sont seulement données à titre indicatif et que vous êtes libre de développer n'importe quelle partie du programme à n'importe quel moment. L'exemple de programme donné dans le chapitre 2 répond à ces directives. Les phases recommandées pour développer un programme PC3000 à l'aide de la Station de programmation PC3000 sont récapitulées ci- dessous: Phase 1: sélection et configuration des canaux d'E/S Blocs fonctions de canal d'entrée Blocs fonctions de canal de sortie Analog_In Zonal Digital In swilch1 Les principales actions nécessaires sont les suivantes : 1. À l'aide de la station de programmation PC3000, sélectionner les modules matériels nécessaires en fonction de l'inventaire d'E/S. Si plusieurs racks sont nécessaires, il est possible d'optimiser la capacité de traitement des É/S en séparant les racks des entrées numériques et les racks des sorties numériques. De même, lorsque cela est possible, éviter que les modules numériques soient dans le même rack que les modules analogiques. 2. Attribuer des noms à tous les canaux d'E/S. Utiliser des noms qui ont une signification at non pas des noms arbitraires. L'idéal consiste à utiliser les noms qui apparaissent Sur les diagrammes de câblage ou de régulation . | 3. Configurer les plages des canaux, les décalages et le changement d'échelle. Dans certains cas, cela peut attendre la mise en service du système. — © = QO EE ar oy = a 9 oa 9 5 & 30 a Guide utilisateur FC3000 5-3 Développement des programmes 4. Ne pas oublier que les modules spécialisés comme MEM et TAIOS ne peuvent être installés que dans les 5 premiers emplacements du premier rack, il faut donc laisser ces emplacements vides si l'un de ces modules doit être ajouté ultérieurement. Phase 2 : configuration de la régulation analogique continue Blocs fonctions de canal d'entrée Biocs fonctions de canal de sortie — Analog In LL PIO I —_— nang Out DO < zone loop heat = Actionneurs Capteurs Les principales actions nécessaires sont les suivantes : 1. Création de blocs fonctions PID pour traiter chaque boucle de régulation. 2. Configuration de mode d'exploitation pour chaque PID, par exemple canal double (chauffage/refroidissement), positionneur de vanné, auto- réglage. 3. Utiliser le “câblage par soft" du Texte structuré pour relier [a valeur de process des canaux de sortie analogiques (ou des canaux de sortie numériques proportionnels au temps) á la sortie des blocs fonctions PID. Blocs fonctions de canal d'entrée Blocs fonctions de canal de sortie = 927 9» = / loop1.Process Val :=zone1.Process Val heatt.Process_Val :=loop1 Output Actionneurs Capteurs 54 Guide utilisateur PC3000 Développement des programmes 4, "Cábler aussi par soft" la valeur de process de chaque bloc fonction PID avec la valeur de process d'entrée analogique qui convient. 5. Créer d'autres blocs fonctions et utiliser le "câblage par soft” pour créer d'autres aspects de la régulation analogique continue. Phase 3 : configuration de la régulation numérique continue Digital In switch | 1 AND igital_Out DG € vahal Capteurs valvet Process Val =switch1.Process_ Val AND switch2.Process Val; Les principales actions sont les suivantes : 1. Utiliser le "câblage par soft" pour créer la stratégie de régulation numérique continue, c'est-à-dire la logique numérique. à Eviter dans la mesure du possible d'utiliser le Texte structuré qui comporte de nombreuses expressions ou fonctions à virgule flottante (REAL) dans le "câblage par soft” vers les blocs fonctions numériques. Cela permettra ainsi de diminuer l'alongement du temps système dans le "câblage par soft” numérique qui tourne normalement dans la tâche qui a la fréquence de scrutation la plus élevée. - © S£ EE oO ca re + о oo rR" J @ Ф o Guide utiisateur PC3000 5-5 Développement des programmes Phase 4 : creation d'une stratégie de régulation de séquencement | Les principales actions sont ies suivantes ; 1. Créer le GRAFCET principal {de niveau supérieur}. Chaque pas doit représenter Une phase primaire du process. Normalement, les étapes du graphique principal sant définies comme étant des étapes macro. Ainsi, les phases importantes du process sont bien visibles : cela est particulièrement utile lors de la mise en service. г. Décomposer chaque étape macro en macros de niveau inférieur et enfin en étapes pour terminer le programme séquentiel. 5-6 Guide utilisateur FC300C0 Développement des programmes Phase 5 : création de transitions et d'actions de pas | BEGIN | Heat Loop! .Seipoint :=200.0; Vahve3.Process_Vai:=1 OPENS; END li —— !:=Heat Time=T#5305 AND ProdType Val=1 ("Sentle") | Stir | Settle Les principales actions sont les suivantes : 1. Création du Texte structuré pour les conditions de transition. N.B. : les transitions qui ne sont pas définies prennent par défaut la valeur 1, c'est-à-dire vrai” ou “marche”. 2. Création des actions de pas. N.B. : pour des raisons de synchronisation, il est possible d'avoir des pas sans actions en Texte structuré. Par exemple, un pas nul peut servir d'attente", H est suivi d'une condition de transition qui attend que le pas soit actif pendant une durée donnés. Guide utilisateur PC3000 5-7 er с v = CH |+ В CL к © - QO o 7 Ф = = = Зы D) © Mn o © < Développement des programmes CONCEPTION DU GRAFCET PRINCIPAL Il est bon d'adopter des principes de conception du "haut vers le bas”, Cela implique que le GRAFCET principal doit représenter les phases principales du process ou les séquences primaires de régulation. Ё ReStart A VesselA A YesselB | A PanalCon | — bi ReStart Goto —mums to ReStart Figure 5-1 Exemple de GRAFCET principal La figure 5-1 est un exemple de GRAFCET principal (de niveau supérieur) pour un programme de régulation qui agit sur deux cuves de réacteur. Chacune de ces cuves est régulée indépendamment par deux étapes macros interruptibles "VesselA" et "VesselB". Une troisième étape macro interruptible "PanetCon” régule un tableau opérateur qui fournit un affichage en temps réel des paramètres de régulation sélectionnés pour les deux cuves. Ces étapes tournent en parallèle et n'ont aucune interaction directe. Le programme de régulation est initialisé par l'étape macro "ReStart” qui configure les points de consigne de la boucle de régulation, etc. La transition a) attend que l'opérateur acquitte la possibilité de redémarrage du process en tapant une commande sur le panneau opérateur. 58 Guide utillisateur PC3000 Developpement des programmes La condition de la transition en b) teste une entrée numérique qui est reliée à une clé d'arrêt manuel. Lorsqu'elle détecte que la clé est “activée”, cette transition provoque l'arrêt des trois étapes parallèles. La séquence revient ensuite à l'étape de départ "Restart" par l'intermédiaire d'un "goto™. RETROACTION DANS LE CÂBLAGE PAR SOFT DES BLOCS FONCTIONS Normalement, l'ordre d'exécution des blocs fonctions dans une scrutation quelconque est tel que les blocs fonctions associés aux paramètres dans les affectations de "câblage par soft” s'exécutent toujours avant le bloc fonction qui doit recevoir la valeur de “câblage par soft”. I existe certaines situations, comme celle décrite sur la figure 5-2, où il est nécessaire de "cabler par soft" les blocs fonctions entre eux pour former une boucle de rétroaction. Dans ces cas, il est possible de modifier l'ordre d'exécution des blocs fonctions en identifiant Une des expressions de câblage par soft formant la boucle comme étant le "câblage par soft de rétroaction”. L'éditeur de câblage de la station de programmation offre une touche marquage de rétroaction qui permet dé marquer n'importe quelles affectation de câblage en Texte structuré en insérant la “rétroaction” comme commentaire. Lorsque le programme est compilé et construit, cela provoque l'exécution du bioc fonction auquel est affecté le "cáblage par soft" de rétroaction avant les blocs fonctions référencés à droite de l'affectation du “cablage par soft”. N.B. - un bloc fonction qui reçoit une vaieur provenant d'une affectation de câblage par soit marquée comme "rétroaction” s'exécute toujours avant les blocs fonctions dont les paramétres sont référancés sur la partie droite de l'affectation. - SE EE d © o ea, © о 9 =. > O dv Guide utilisateur PC3000 59 Développement des programmes Load! Input :=<Loco1.Ouput; ` + (PID) (PID_Loas) i Loop AM Load Process Val Output станы Eut Main PY 2) 4) 1 Loopi.Process_Val :=Load1.Main_PY (*Feedbacic) Figure 5-2 Rétroaction dans le câblage par soft des blocs fonctions La figure 5-2 montre un exemple où une boucle de régulation de PID (Loop1} est reliée à PID_Load (Load1) qui simule différentes charges de régulation d'une installation. Pour terminer la simulation, la valeur de {Main_PV} provenant de Load1 est rétroactivée comme valeur de process {Process Val} au bloc Loop! PID à l'aide du câbiage par soft marqué comme "rétroaction”. Cela provoque la création de l'ordre d'exécution suivant lors de la construction du programme : 1. Exécuter le câblage par soft pour créer une nouvelle valeur de Loop] .Process Val à l'aide de la valeur de Load1.Main PV provenant de la dernière serutation. = Exécuter le bloc de régulation Loop! PID et mettre à jour Loop1.Output. 3. Exécuter le câblage par soft pour créer une nouvelle valeur pour Loadl1 .Input à partir de Loop! .Cutput créé dans la scrutation en cours. 4. Exécuter le bloc Load1 et mettre à jour le paramètre Main_PV. =10 Guide utilisateur PC3000 Développement des programmes Toute affectation de cablage par soft en Texte structuré qui est marquée comme "rétroaction” alors qu'elle ne fait pas vraiment partie d'une boucle de rétroaction provoquera l'émission d'un message d'arreur "Marque de rétroaction redondante" par la station de programmation lors de la compilation du programme. Le positionnement de la marque de rétroaction dans le câblage par soit n'a normalement aucun effet significatif lors de la construction de boucles de régulation analogiques, en particulier dans les cas de régulation où les constantes de temps sont significativement plus longues que les durées de scrutation des tâches. Toutefois, avec ia logique numérique, il faut prendre des précautions lors du positionnement du câblage par soft de rétroaction car cela peut parfois avoir un effet significatif. MODIFICATION DE LA CONFIGURATION DES TACHES Pour la majorité des programmes PC3000, la configuration par défaut des tâches convient. Elle offre deux taches : Task _1 qui tourne a une vitesse de scrutation de 10ms pour les blocs fonctions numérigues et Task 2 qui tourne & une vitesse de scrutation de 100ms pour les blocs fonctions analogiques et l'exécution des GHAFCET. Les taches par défaut offrent des temps de réponse entre las entrées et jes sorties numériques (latence du débit) compris entre 15 ms et 25 ms. II est possible de configurer un maximum de 32 boucles de régulation de PID, chacune tournant à une vitesse de scrutation de 100 ms et pouvant réguler des charges avec des constantes de ternps primaires supérieurés а 10 secondes. l| faut envisager une autre configuration des táches dans les cas suivants : a) un temps de réponse entre les entrées et les sorties numériques Inférieur à 25 ms est impératif, В) nécessité de faire tourner plus de 32 boucles de régulation PID, c) nécessité de faire tourner des boucles de régulation PID pour les charges dont les constantes primaires de temps sont inférieures à 10 secondes, - D = SE pue ie So co Q = rr > 0 ao Guide utilisateur PC3000 511 Développement des programmes d) ie séquencement doit répondre à une cadence inférieure à une fois par 100 ms, e) le programme nécessite un grand nombre de blocs fonctions ou possède un "câblage par soft” complexe qui provoque un débordement d'une des tâches. Cela signifie qu'une tâche ne peut pas terminer l'exécution de tous les blocs fonctions et le "câblage par soft” au cours de la période de scrutation de la tâche. ll est conseillé de se reporter au chapitre Programmateur de tâches temps réel et à l'annexe D Exemples de configurations de tâches dans la Base du système d'exploitation temps réel PC3000 pour avoir des détails supplémentaires sur la configuration des tâches. Attention Une mauvaise configuration des tâches peut avoir un effet préjudiciable sur les performances et l'intégrité du système de régulation PC3000. TYPES DE BLOCS FONCTIONS l| est possible de déclarer et d'interconnecter une vaste gamme de types de blocs fonctions différents pour résoudre les problèmes de régulation simples ou complexes. Dans de nombreux cas, on peut ainsi développer des stratégies de régulation entièrement nouvelles. Pour avoir une description complète des blocs fonctions standard fournis par la station de programmation, sé reporter au Manuel des blocs fonctions PC3000. Les types de blocs fonctions sont organisés en différentes classes pour faciliter la sélection dans le tableau suivant : 512 Guide utilisateur PC3000 Développement des programmes Classe But Exemples SYSTEM Fournit les blocs fonctions qui PesSTATE, Task, assurant l'interface avec le RT Clock système d'exploitation temps réel PC3000, dont l'horloge temps réel et la gestion des táches COMMS Fournit les blocs fonctions du El Bisync M, driver de communications pour | El Bisync $, les protocoles, dont JBus, JBus M, JBus S, El _Bisync et Euro_Panel Euro Panel MODULES Biccs fonctions destinés à la PPM, PIM2 prise an charge des modules matériels intelligents INPUTS Blocs fonctions qui représentent | Digital In, Anatog_In les canaux d'entrée. Remarque 1 OUTPUTS Blocs fonctions qui représentent i Digital Out, les canaux de sortie. Analog _Out Remarque 1 CONTROL Blocs fonctions de boucle de PID, VP, PID Auto, régulation, dont le PID et le VP_Auto positionneur de vanne et les versions avec réglage automatique TIMERS Fournit des blocs fonctions pour | Pulse Timer, différents objectifs de On_Delay, synchronisation, dont la Off_Delay, génération d'impulsions, la Stopwatch temporisation et le chronométre Guide utilisateur PC3000 513 mm L QD Е v +В ol к а к d oO а ® = = ar e D) = [ 5 о D Le Développement des programmes Ciasse But Exemples USER VAR Des blocs fonctions Variables utilisateur sont fournis pour contenir les valeurs internes : tous les types de données, y compris les virgules flottantes, les entiers, 1es durées et les chaînes, sont disponibles. Boolean, Real, Integer, Time, String le fitrage de fréquences des signaux analogiques. REMOTE _VARS | Les variables déportées Remote Bool, permettent la lecture de Remote Real, différents types de données a Ramote_Str partir d'équipements externes utilisant des drivers de communications spécifiques. | SLAVE _VARS Les variables esclaves offrant Slave Boo, des valeurs qui sont adressables | Slave Real, par des protocoles de Slave Int, communications spécifiques, Slave Real 8 c'est-a-dire par des équipements externes. RECIPE Les blocs fonctions Recettes RecipeMan, fournissent des utilitaires de StageMan, stockage et de sélection des Name_1x128, recettes. Real_16x128 STEPS Les blocs fonctions STEP sont Macro, Step créés automatiquement lorsqu'un GRAFCET est développé. Ils sont de deux types : étapes et macros COUNTERS Fournit des blocs fonctions pour 1 Up Counter, compter vers le haut, vers le bas | Dn_Counter, et à la fois vers le haut et le bas | Up Dn, Count SELECT Les blocs fonctions Select Select Real, permettent la sélection d'un Select_Int, ensemble de valeurs par l'entrée | Select Time, d'un seul entier. Une grande Select Bool, variété de types de données est | Select Sir fournis. FILTERS Fournit des blocs fonctions pour | Lagi 5-14 Guide utilisateur PC3000 Développement des programmes Classe But Exempies LOADS Ces blocs fonctions fournissent PID_Load, VP_Load des simulations de différents types de charges de régulation. Utilisés avec les blocs PID pour simuler les boucles de régulation. OTHERS Offre une grande variété de Shift_16, Rate Limit, blocs fonctions différents, dont le | Ramp, Shift_Real, registre à décalage, la rampe, je | Alarm_Cntrl, pilotage d'alarmes, le bistable Bistable_ SD Table 3-1 Classes de types de blocs fonctions Remarque 1 : les blocs fonctions d'entrée et de sortie de canaux sont créés à l'aide des écrans de configuration matériels. - a = qd 4 D 2 5 © O x v = 50 - И Guide utilisateur PC3000 5-15 Développement des programmes Affectation des blocs fonctions aux tiches Bistable RD Le tableau 5-2 énumère les blocs fonctions Bistable SD standard affectés par défaut 4 Task 1. Le reste = des blocs fonctions dans la bibliothèque standard Boolean est affecté à Task _2. Par défaut, Task 1 est Debounce In scruté toutes les 10ms, Task _2 toutes les 100ms. Digital т Ne pas modifier ces affectations de táches sans Digit ГО E comprendre les répercussions que cela a sur les grau performances. Dn_Counter Avant de modifier la configuration des táches, il El Bisync M est bon de se reporter au chapitre El Bisync S Programmateur de táches temps réel et a — = l'annexe D Exemple de configurations de tâches JBus M dans le système d'exploitation temps réel JBus S PC3000. Off Delay Il est toujours possible de voir la tâche à laquelle o D | est affecté un bloc fonction en visualisant le n_Leldy menu Liste des déclarations de blocs fonctions Pulse timer sur la station de programmation. Select Bool Shift_16 Siemens M_S Stopwatch Toshiba_M Up Counter Up _Dn Count Table 3-2 Affectation par défaut des blocs fonctions à Task _1 CONSTRUCTION D'UN PROGRAMMATEUR DE RAMPES ET DE PALIERS Cette section décrit la maniére de construire un programmateur de rampes et de paliers a partir de blocs fonctions standard et de le réguler par quelques pas dans un GRAFCET, L'exemple montre un programmateur de rampes et de paliers qui peut comporter un maximum de 16 segments. Chaque segment peut être soit Une rampe soit un palier et il est possible de fixer le nombre de segments du programme entre 1 et 16. Au cours d'un segment en rampe, un bloc fonction Rampe sert à incrémenter une sortie jusqu'à la vateur d'un point de consigne avec une vitesse prescrite. 5-16 Guide utilisateur PC3000 Développement des programmes Un segment en palier contient la sortis actuelle du bloc fonction Rampe pour une durée prescrite. Les pas d'un GRAFCET utilisent des valeurs produites par des blocs fonctions "select" pour configurer le bloc fonction Rampe de manière à ce qu'il crée les fonctions de rampe et de palier, La sortie de la Rampe (dans l'exemple, le paramètre ramp1.Output } fournit la valeur rampe/palier qui peut servir à piloter les sorties physiques ou les points de consigne des PID, etc. Par exemple, en "cablant par soft” un certain nombre de points de consigne PID différents avec ce paramètre, il est possible de construire un programmateur mulii-zones. Les techniques décrites peuvent être étendues pour fournir d'autres fonctions comme un plus grand nombre de segments, des paramètres de segments supplémentaires, etc. La figure 5-3 décrit les blocs fonctions et le "câblage par soft” nécessaires pour créer le programmateur de rampes et de paliers. Certains des paramètres qui n'ont pas d'importance pour cet exemple ne sont pas indiqués pour des raisons de lisibilité. Nom de la Type But déclaration setpoint Select Real Fournit un point de consigne pour chaque segment. rate Select Real Fournit une vitesse pour chaque segment. dwell Select Time Fournit la durée du palier pour un segment en palier. segno Integer Mémorise le numéro de segment actuel. segmax Integer Mémorise le nombre maximal de segments utilisés. ramp1 Ramp rournit la fonction "rampea” en mode RUN. Table 5-3 Blocs fonctions du programmateur de rampes et de paliers Guide utilisateur PC3000 5-17 a. = & = D 1 © © © > D jan en nn = = < Tes e) о o > D oT Développement des programmes = [Select Real | Integer sstporil se gno Index Output fr 100.0 — Input 1 0.0 —: Input 2 2000 — Input 3 A000 = Input 4 0.01 Input 5 0.0=— Input 6 O0— Input 7 0.0— Input 8 seg me L 3 = [Select Real | — rata index Output E 1.1 — Input 1 0.0 = Input 2 25 — Input 3 22 mo Input 4 Où = Input 5 00 — Input 6 0.0 — Ineut 7 0.0 — Input 5 fupicinpu 16 JD Samet Time Choral Inda x Output be Troooma =——| Input 1 Has — Input 2 TAO mE | It TECOOms — Input 4 Rooms — Input 5 THOM — Input 6 RCOms — Input 7 TACOS mE =— Input 8 (вр © int 16 = > Figure 5-3 Diagramme des blocs fonctions du programmateur de rampes et de paliers Les affectations de "câblage par soft" en Texte structuré nécessaire sont les suivantes : setpoint.Index := segno. Val; rate.Index := segno. Val; dwell.Index := segno. Val; 518 Guide utilisateur FC3000 Développement des programmes Le paramètre index des fonctions "select" est toujours piloté par la variable utilisateur entière "sagno”, Si l'on met à 1 UN numéro de segment donné dans "segno”, les sorties des blocs select fournissent le point de consigne, la vitesse de la rampe at le palier pour un segment donné. Un segment an palier est caractérisé par le bloc fonction de "vitesse" Select_Real qui produit une sortie de 0,0, c'est-à-dire une rampe nulle. Sur la figure 5-3, les blocs fonctions select sont configurés pour avoir 4 segments : Segment 1 - Rampe jusqu'a 100 a 1,1 unité/seconde Segment 2 - Paiter pendant 20 secondes Segment 3 - Rampe jusqu'à 200 à 2,5 unités/seconde Segment 4 - Rampe jusqu'à 300 à 3,2 unités/seconde BEGIN segro.Val:=D; Setup rampt.Mode =0(*Heset*; rate-Cutput>0.0 AND END (NextSeg.Time=Task2.Interval) —— Setup. Time> Task? Interval BEGIN BEGIN ramp1.Setpoint :=setport.Cutput; | Naxt5eg segno.Val :=segno +1; гатр1 Rate >= rate.Output; END ramp1.Mode :=1 {* RUN"); END LL rate Outout<= 20 AND — Segno.Val>segmax Val — — — (NexSeg.Tme>Task2.Interval BEGIN | Finish | | Ramping 2 | Dwelling | rampi.Mode :=2 (*Hokd); END ramp1.Setpoint=ramp1 Quiput wre = welling. Time>=dwel LCL tput NextSeg > Laan Figure 5-4 GRAFCET de programmateur de rampes el de paliers La figure 5-4 montre les pas et les transitions nécessaires pour réguier le programmateur de rampes et de paliers et doit être considéré comme faisant partie d'un GRAFCET de plus grande taille. Le pas "Setup" ramène le numéro de segment à zéro et place le bloc fonction "ramp1" en mode RESET (réinitialisation). À ce stade, le compteur du bloc fonction "ramp1" sera ramené à la valeur du paramètre Reset Output qui, dans cet exemple, a la valeur 20,0. „ ® EE pH — d a = x. о © n & > LP - © Guide utilisateur PC3000 5-19 Développement des programmes La transition issue du pas "Setup" attend que le pas soit actif pendant une scrutation de la tache pour étre sûre que les blocs fonctions ont été exécutés avant de continuer. Dans cet exemple, on suppose que le GHAFCET est exécuté dans Task _2 (valeur par défaut normale). Dans ce cas, le pas doit attendre pendant la durée d'une scrutation de Task _2. La durée de scrutation de la tâche est fournie par le paramètre Task _2.Interval. - Dans le pas "NextSeg”, le numéro de segment contenu dans la variable utilisateur "segno" est incrementé. Apres "NextSeg”, il y a des transitions vers trois pas alternatifs. Ne pas oublier que les transitions sont évaluées de ia gauche vers la droite. La transition située la plus à gauche vérifie si le segment final à été atteint en comparant le numéro de segment à la variable utilisateur "segmax". Les deux autres transitions attendent que le pas "Nextseg" soit actif pendant là durée de scrutation d'une tâche avant de permettre l'exécution des blocs fonctions select pour qu'ils produisent les sorties correctes pour le segment actuel. La transition médiane vérifie ensuite si le segment sélectionné actueliement possède une vitesse différente de zéro afin de sélectionner le pas “montée en rampe”. La transition située la plus à droite vérifie si la vitesse est différente de zéro afin de sélectionner le pas “palier”. Le pas "montée en rampe" configure le bide fonction "ramp1” pour incrémenter sa sortie au point de consigne et à la vitesse produits par les blocs fonctions select. Le bloc fonction "ramp1” est ensuite commuté en mode RUN (marche). La transition issue du pas "Rampina” attend simplement qué la sortie du bloc fonction rampe atteigne la valeur du point de consigne puis revienne à "NextSeg" pour le segment suivant. Le pas "palier” commute le bloc fonction "ramp1" en mode HOLD pour que la sortie reste inchangée. La transition issue de ce pas attend que le pas "palier ait Une durée égale à la période au cours de laquelle ie segment est en palier puis revienne à "NoxtSeg”. STYLE DE PROGRAMMATION CORRECT Lors du développement des programmes, il faut prendre en considération les points suivants pour améliorer la lisibilité des programmes et faciliter par conséquent la mise en service et la maintenance du programme : 1. Dans la mesure du possible, utiliser des noms ayant une signification pour les blocs fonctions et les pas. 520 Guide utilisateur PC3000 Développement des programmes 2. Utiliser des noms ayant une signification pour les valeurs numériques, par sxemple "HAUT"/"BAS", "OUVERT/FERME". Cela est particulièrament important si une entrée ou une sortie numérique possède une fogique inversée comme par exemple 1 pour "OFF". 3. Insèrer des commentaires pour décrire des éléments complexes de Texte structuré. 4 Utiliser une méthode "du haut vers le bas" pour la structure des GHAFCET, le graphique principal décrivant les états primaires du process. 5. Lorsque cela est possible, utiliser des séquences au lieu de machines indiquant l'état à partir de la logique en "câblage par soft” continu. Par exemple, Utiliser un pas au lieu de configurer une variable utilisateur booléenne pour définir qu’une machine ou un process se trouve dans un état donné. 6. Eviter d'avoir des constantes en Texte structuré qui peuvent nécessiter une modification lors de la mise en service du système. Utiliser à la place des blocs fonctions Variable utilisateur pour contenir les valeurs constantes. |! sera alors possible de modifier les valeurs à la mise en service du système. 7. Se familiariser avec le potentiel des différents types de blocs fonctions et de fonctions. Dans de nombreux cas, il est possible de résoudre des problèmes complexes avec les capacités existantes. MISE EN SERVICE DES PROGRAMMES La station de programmation PC3000 offre un accès en ligne à tous les paramètres des blocs fonctions. Cela permet de contrôler le programme de régulation du PC3000 puisqu'il fonctionne en temps réel, || est possible de visualiser les différents GRAFCET pour identifier les pas actifs et les étapes macros. On a ainsi une bonne indication de l'état du process ou de la machine. Suspension de séquence Si une séquence est suspendue à un pas donné, visualiser le Texte structuré qui définit la condition de chaque transition qui suit le pas. Cela permet de localiser rapidement le motif de la suspension. Identifier l'expression bocléenne en Texte structuré qui est censée être "vrais”. Sur la station de programmation PC3000, la valeur réelle de chaque paramètre de bicc fonction utilisé dans l'expression est affichée sur la ligne inférieure de l'écran en Texte structuré Transition. = © DE ЕЕ EL ry = ea © В Do > = Guide uiilisatetur PC3000 5-21 Développement das programmes Si la séguence est suspendue par une étape macro, visualiser la macro de niveau inférieur jusqu'à ce que l'étape incriminée soit localisée. S'il s'agit également d'une étape macro, continuer à descendre dans la hiérarchie du graphique jusqu'à ce que le pas suspendu soit localisé, puis vérifier chacune de ses conditions de transition. Si une transition de rendez-vous ne provoque pas l'activation de son pas suivant, vérifier que chaque pas qui conduit au rendez-vous, c'est-à-dire qui entre dans les lignes horizontales doubles, est actif. Ecrans utilisateur Il est possible de créer des écrans utilisateur sur [a station de programmation, lorsque le PC3000 est en marche, pour visualiser les paramètres sélectionnés. Gala permet de visualiser simultanément les paramètres déterminants à des fins de diagnostic et de misa en service. Les écrans utilisateur peuvent également servir à fournir une interface opérateur pour les applications où une interface homme-machine simple convient. Simulation d'installation Lors de la mise en service du système, il est peu vraisemblable que toutes les E/5 de l'installation soient disponibles pour le test des programmes. Dans certains cas, il peut être peu pratique, voire dangereux, de piloter les sorties physiques. Le PC3000 offre des fonctions permettant de tester les programmes sans qu'ils soient directement reliés à l'installation ou à la machine régulee, La plupart des canaux d'entrée PC3000 ont un mode test qui permet de remplacer la valeur de l'entrée physique par une valeur de test. | est également possible de remplacer l'état du canal par un état de test. Par conséquent, il est possible de tester le comportement du programme en simulant différentes valeurs d'entrée de l'instailation et les conditions de défaut comme les mesures à l'aide de capteurs de dépassement de gamme. Une partie du programme séquentiel (tournant normalement comme une autre séquence paralièle) peut servir à fournir des valeurs de test multiples aux canaux d'E/S pour former un banc d'essai de simulation de l'installation pour faire fonctionner le programme de régulation. Cette partie du programme peut être éliminée lors de la mise en service définitive du programme. 5-22 Guide utilisateur PC3000 Développement das programmes Test des sorties En plagant les biocs fonctions de canaux de sortie en mode test, il est possible de fournir directement des valeurs de test aux sorties physiques, quel que soit l’état du programme normal de régulation PC3000. Cela peut être utile pour tester le câblage physique et la liaison entre les canaux matériels et les actionneurs physiques. Lorsque les canaux de sortie sont en mode test, les valeurs écrites par le programme dans les blocs fonctions de canaux ne sont pas écrites dans les sorties physiques, Attention S'assurer que la totalité des paramètres d'activation de l'ensemble des blocs fonctions de canaux de sortie sont sur "ОЙ" (désactivés) dans les programmes PC3000 qui font tourner des process de production. J SE E E У a о © © O = Lv 2 50 óv Guide utilisateur PC3000 5-23 Développement des programmes 24 Guide utilisateur PC3000 Index INDEX Actions étapes 3-2 terminologie 1- 4 Actions 4- 2 Addition 3- 15 Adresse d'E/S 3- 8 Affectation terminologie 1- 4 Affectation 3- 9, 10 AIO8 5-3 Alarme état 2- 15 surveillance 5- 1 signal 2- 15 Alarmes 2- 1 ALORS 3-12 Applications 2- 1 Blocs fonctions bibliotheque 2- 7 déclaration 1- 4 diagramme 2- 2 diagrammes 2- 11 étape 4- 12 étape macro 4- 12 exemples 2- 7 interaction des GRAFCETS 4- 10 ordre d'exécution 5- 7 principe 2- 7 rampe 2- 7 rampe 5- 12 reference 1-3 type 5- 11 variable utilisateur chaîne de caractères 3- 7 Bloc fonction 2- 5 Blocs fonctions canal d'entrée 2- 16 Guide utilisateur PC3000 Index-1 Index E/S 2- 8 fonctions 5- 16 presentation logicielle 2-11 Blocs fonetions 2- 1 Blocs fonctions d'E/S 2- 8, 11 bloc fonction PID paramétres de configuration 2- 14 blocs fonctions PID 5- 3 Bloc fonction rampe 2- 7 Booléen (BOOL) 3-4 expression 1-4 expressions 3- 19 boucle de régulation PID exemple 2- 12 boucle de régulation PID 2-12 Cáblage par soft étape continue 4- 7 multi-zones 5- 13 performances 2- 17 principe 2- 6 régulation continue 2- 12 rétroaction 3- 7 ST 3-2 ST 4-12 Cáblage par soft 2- 14 Cáblage par soft 3-9, 10, 21,22 Cáblage par soft 4-1 Cáblage par soft 5- 2, 3, 16 programmateur 5- 13 Calculs mathématiques 3-1 Canal de sortie analogique 2- 14 Index-2 Guide utilisatenr PC3000 Index Caractere non-imprimable 3- 7 Chaînes texte (STRING) 3-7 Classe CHARGES 5-11 COMMANDE 5- 9 COMMS 5-9 COMPTEURS 5- 11 DIVERS 5-11 ENTREES 5-9 ETAPES 5- 11 FILTRES 5-11 HORLOGES 5-9 MODULES 5-9 SELECTION 5- 11 SORTIES 5-9 SYSTEME 5-9 RECETTE 5-11 VARIABLES DEPORTEES 5-9 VARIABLES ESCLAVES 5-9 VARIABLE UTILISATEUR 5-9 Commande statistique de procédé 2- 2, / Commentaires 3- 2 Communications par défaut 2- 11 Compteurs 1- 3 Conception hiérarchique 5-6 Conditions 3- 2 Construction des programmes 2- 15 Construction risquée des GRAFCETS 4-13 Contróleur programmable 2- 1 Contróleurs programmables Guide ntilisateur PC 3000 In dex-3 Index process 1-1 Contróleurs programmables 1-2 Création de déclarations 1-4 Crochets 3- 18 Date calendaire (DATE) 3-6 Date calendaire et heure du jour (DATE_AND_TIME) 3-6 Décalages 5-3 Division 3- 15 Données type 3-3, 9 types 3- 2, 7 Durée (TEMPS) 3-5 Ecrans utilisateur 5- 17 Elément SI 3- 23 ELSE 3- 12 ELSIF 3- 12, 13 END_IF 3-12 Entier (DINT) 3- 3 Entier énuméré (DINT) 3-3 Entier sans signe double 3- 8 court 3- 8 Entrée analogique 2- 12 Entrées numériques 2- 15 logique 2- 15 E/S canaux 5- 2,3 Etape actions 3- 9 actions 4- 7 actions 5- 6 attributs 4- 10, 11 continu 4- 7, 8, 11, 13 Index-4 Guide utilisateur PC3000 Index désactivation 4- 6 durée d'exécution 4- 8 Etape 1-4 Fin 4- 11, 13 fin 2-15 GRAFCETS 2- 10 macro 4-2, 11 macro 5- 11 macro interruptible 4- 6 macro interruptible 5- 6 programme de régulation 4- 1 regles 4- 13 unique 4- 11 uniques 2- 15 uniques 4- 6, 7, 8 Etape macro 4-2 Etapes continues 4- 9 Expression terminologie 1- 4 Expression booléenne 4- 2 Expressions complexes 3- 12 sous- 3- 12 Expressions 3- 10, 21 Expressions conditionnelles 3-1 FED 2-2 Filtres 1- 3 Fonction DINT_TO_REAL 3- 9 Fonctionnement déterministe 2- 5 Fonctions arithmétique temporelle 3- 20 catégories chaîne de caractères 3- 20 compactes 3- 20 Guide utilisateur PC 3000 Index-5 Index conversion de chaine de caractères 3- 20 conversion de type 3- 20 mathématiques 3- 21 numériques 3- 20 sélection 3- 20, 21 Fonctions 3- 2 Fonctions 5- 16 Fonctions logiques 2- 11 Fréquence de balayage 2-17 Fréquences de balayage exécution 2- 5 Gestion des recettes 2- 7 GRAFCETS 2-8 GRAFCETS étape 2- 10 IEC 1131-3 4-1 transition 2- 10 GRAFCETS 2-1 GRAFCETS 4- 1 Grafcet principal 4- 5 Grafcet principal 5- 5, 16 Graphique PRINCIPAL 4-11 terminologie 1- 4 Heure du jour (TIME_OF DAY) 3- 5 ICM 5-3 Grafcet 2- 2 GRAFCET 2-2 [EC 1131-3 GRAFCET 1-4 multi-táches 2- 5 GRAFCET 2-2 PLC Standard 2- 2 GRAFCET 4- 1 standard 3- 22 Index Guide utilisateur FC3000 Index systeme 3- 23 texte structure 3- 1 IEC 1131-3 2-1 Implications des performances 3- 12 Impulsion du qualificateur d'actions IEC 1131-3 4-7 Instructions conditionnelles 3- 12, 13 Instructions 3- 9, 12 Instruments discrets 2- 5 Instruments discrets 5- 2 INT 3-8 Intégrité 5- 9 Interfaces avec les E/S 2-11 JBus 2-11 Lecteurs 5-2 Lecteurs externes 2- 7 Macro étape interruptible 4- 6 étapes graphiques 4- 5 étapes 5- 5 interruptible 4- 11 Marques temporelles 3- 6 Messages texte 3- 1 Mise à l'échelle 5- 3 Mise en service 5- 1, 17 Modbus 2-11 Mode PC3000 2- 15 Station de programmation PC3000 2-14 Mode de fonctionnement 2- 15, 17 Guide utilisateur PC3000 Index-7 Index Modules matériels 1- 2 Modules matériels 2- 12 Modulo 3- 15 Modulos 3- 16 Multiplication 3- 15 Multi-táches 2- 5 Noms de sens 5- 16 Opérateur 19 booléen comparaison complément 3- 19 différent de 3- 16 division 3- 19 égal 3-16 ET 3-17 inférieur à 3- 16 inférieur ou égal à 3- 16 interface 5- 17 Inverse 3- 17 modulo 3- 19 multiplication 3- 19 négation 3- 19 NON 3-17 OU 3-17 OU EXCLUSIF 3-17 OU exclusif 3-17 priorité 3- 18 stations 2- 7 supérieur a 3- 16 supérieur ou égal à 3- 16 virgule flottante 3- 17 Opérateur 3- 1, 10 Opérateurs 3- 15 Ordre d'exécution 2- 17 Paramètre exécution 4- 9 Exécution 4- 12 Index-8 Guide utilisateur PU 3000 Index Fini 4- 12 Heure 4- 12 Parametres de configuration 2- 12 Paramétre d'exécution 4-7, 8 PC3000 langages 1- 1 Paramétre temps 2- 15 Paramètre Test_Enable 2-16 Performances 2- 5 Performances 5-1, 9 Présentation des communications 1- 2 programmation 1- 1 Périphériques externes 2-11 Phases principales de process 5- 6 GRAFCET 5-6 PID boucles de régulation 5- 9 PID 1- 2, 3, 4 РЕ 2- 1,7 PID 3- 23 PID 5-9 PID_AUTO 5- 9 PLC 2-5 PID_AUTO 5-9 PLC 2-5 PLC 5-2 PLC 5-2 Présentation du logiciel 2-11 PRINCIPAL 4- 12 programmation en échelle PLC 5-2 Programmateur rampes 5- 15 Guide utilisateur PC 3000 Index -9 Index Programmes développement 5-1 pratique 5- 1 lisibilité 5- 16 Protocole de communications Eurotherm Bisync 2- 11 Rampes 1-3 Récupération des défauts 4- 2 Référence PC3000 bloc fonctions 1- 2 fonctions 1-2 manuels 1- 2 matériel 1- 2 système d'exploitation temps réel 1- 2 Règles Programmation des GRAFCETS 4- 12 Texte structuré 3- 24 utilisation des étapes 4- 13 utilisation des transitions 4- 13 Régulation boucles PID phases 5- 1 process statistique 2- 2, 7 stratégie 5- 1 stratégie de séquencement 5- 5 stratégies 5- 9 continue 2- 11 continue numérique 5- 5 en boucle fermée 2- | en boucle longue 2-2 vue générale 1-2 Régulation analogique 2-15 Index-10 Guide utilisatenr PC3000 Index Régulation a boucle longue 2- 2 Régulation analogique continue 5- 3 Régulation en boucle fermée 2- 1 Regulation continue 2- 11 Rendez-vous 4- 13 Rendez-vous impossible a atteindre 4- 15 Rendez-vous incomplet 4-17 Rétroaction câblage par soft 5- 8 Rétroaction 5- 7 Risqué Construction des GRAFCETS 4- 14 GRAFCET 4- 15 GRAFCET 4-17 SCADA 1-2 Sélection des valeurs 3- 23 Séquence retenue 5- 17 Séguencement 2- 1, 14 Séguences parallèles 4- 4 Séquences de remplacement 4- 2 S1 3-12 SI..ALORS 3-23 Simulation charge 5- 8 SINT 3-8 instruments logiciels 2- 1,5 Sorties proportionnelles au temps 5- 1 Soustraction 3- 15 ST1-4 Guide ulilisatcur PC3000 Index-11 Index ST 2-2 ST 3-1,2 Station de programmation affectation 2- 9 constantes de temps 3- 6 construction de programme 2- 17 création des GRAFCETS 4- 4 définition matérielle 3- 8 sélection des modules matériels 5- 3 Station de programmation 1-1 Station de programmation 3- 5, 21 Station de programmation 5- 17 Station de programmation Microcell 1-1 Station de programmation Microcell 2- 11 Structure des GRAFCETS 5-16 Syntaxe du texte structuré 3- opérateurs 3- 24 Instruction 1- 4 Systemes SCADA 5-2 Systèmes multi-táches 2- 1 Systèmes de supervision 1-2 Systèmes de supervision 2- 7 Tâche temps de balayage 5- 15 Index-12 Guide utilisateur PC3000 Táches affectations 5- 12 configuration 5- 9 programmateur en temps réel 5- 9 valeur par défaut 5- 9 configuration incorrecte 5-9 Tâches 2-5 Temps de réponse 5- 9 Test câblage physique 5- 17 état 5- 17 mode 5- 17 sortie 5- 17 valeur 5- 17 Texte structuré règles 3- 24 Texte structuré 2- 2, 10 Texte structuré 3- 2 Index Timers 1-3 Touche de fonction rétroaction principale 5- 7 Transition état 1-4 rendez-vous 4- 5 rendez-vous 5- 17 terminologie 1- 4 Transition 2- 10 Transition 4- 13 Transitions de remplacement 4- 3 états 3- 9 états 5- 6 création 5- 6 Transitions 3- 2 Transitions 4- 2 Transitions de remplacement 4- 3 Guide utilisateur PC3000 Index-13 EUROTHERM AUTOMATION SERVICE REGIONAL SIEGE SOCIAL ET USINE 6 chemin des Joncs BP 55 69572 Dardilly Cedex Tél. : 04 78 66 45 00 Fax : 04 7835 24 90 AGENCES Aix-en-Provence Tél.: 04 42 39 70 31 Colmar Tel: 03389235220 Lille Tel.: 03 20 96 96 39 Lyon Tél,: 04 78 66 45 10 04 78 66 45 12 Nantes Tél.: 02 40 30 31 33 Paris Tél: 01 69 18 50 60 Toulouse Tél.: 05 61 71 49 33 BUREAUX Bordeaux Clermont-Ferrand Dijon Grenoble Metz Normandie Orléans