34 API Chap2

of 26 /26
ISIM GabèS API et Supervision industrielle a.U. 2011/2012 LaSCMI3 S. MARAOUI Page 1 Chapitre 2 Programmation des API 1. Introduction Les langages de programmation utilisée pour les API ont évolué depuis l’introduction des automates à la fin des années 60. Actuellement la norme CEI 61131-3 (la partie 3 sur 8 de la norme noté précédemment 1131, apparu en 1993 et en deuxième édition en 2003 et spécifiant les langages de programmation), spécifie 5 langages qui sont : langages graphiques : o langage LADDER (à relais), LD o Boîtes fonctionnelle, ou Functional Block Diagram (FBD). Langages textuel : o Texte structuré (ST) o Liste d’instructions(IL) Diagramme de fonctions séquentielles (Sequential Chart function, SFC) : o Version graphique (proche du grafcet) o Version textuelle. Le cycle de fonctionnement d’un automate peut être simplifié comme suit : Lecture des entrées et sauvegarde en mémoire Lecture des entrées de la mémoire, exécution des instructions du programme et mémorisations des sorties Mise à jour des sorties

Embed Size (px)

description

cours

Transcript of 34 API Chap2

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 1

    Chapitre 2

    Programmation des API

    1. Introduction Les langages de programmation utilise pour les API ont volu depuis lintroduction des automates la fin des annes 60. Actuellement la norme CEI 61131-3 (la partie 3 sur 8 de la norme not prcdemment 1131, apparu en 1993 et en deuxime dition en 2003 et spcifiant les langages de programmation), spcifie 5 langages qui sont :

    langages graphiques : o langage LADDER ( relais), LD o Botes fonctionnelle, ou Functional Block Diagram (FBD).

    Langages textuel : o Texte structur (ST) o Liste dinstructions(IL)

    Diagramme de fonctions squentielles (Sequential Chart function, SFC) : o Version graphique (proche du grafcet) o Version textuelle.

    Le cycle de fonctionnement dun automate peut tre simplifi comme suit :

    Lecture des entres et sauvegarde en mmoire

    Lecture des entres de la mmoire, excution des

    instructions du programme et

    mmorisations des sorties

    Mise jour des sorties

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 2

    Le temps dun cycle dpend de la taille du programme excut et la vitesse du processeur avec une moyenne de 2-5ms/K de programme. Le scan du programme limite les vitesses (frquences) des signaux auxquels un api peut ragir. La figure suivante illustre le cas o lautomate compte le nombre dimpulsions dun signal : le premier est moins rapide que la vitesse de scan du programme, le comptage est correct. Le deuxime signal est plus rapide et lautomate peut rater quelques impulsions. Le troisime est encore plus rapide et lautomate peut rater plusieurs impulsions. Pour que la lecture des entres se fait correctement, thoriquement il faut que le temps dune impulsion en entre dure plus que 1/(2*priode de scan). Par exemple si le temps de scan est de 20ms, lautomate peut lire des impulsions dune largeur de 1/(2*0.01)=0.02s soit une frquence de 50Hz. En pratique, dautres facteurs, tel que le filtrage sur les entres, ont un effet considrable sur la vitesse de lecture et doivent tre pris en compte.

    Un autre problme moins vident peut apparaitre lorsque le changement dune entre parvient juste aprs sa lecture, ce qui va retarder lactivation (ou dsactivation) de la sortie concerne un cycle (voir figure)

    Entre processus

    Sortie processus

    Scan du programme

    Lecture de lentre

    Mise jour de la sortie

    Entre processus

    Sortie processus

    Scan du programme

    Lecture de lentre

    Mise jour de la sortie

    Scan du programme

    Par exemple considrant un processus ou la matire douvre est dplace avec la vitesse de 15m/s (par exemple barre de fer de construction), et qui doit tre dcoup sous la commande dun api avec un temps de scan de 30ms, aprs un signal dune photocellule. La marge derreur est donc de 15000*0.03=450mm.

    Les constructeurs peuvent proposer des cartes spciales (avec leur propre *P) pour traiter ces signaux rapides.

    Signal 1

    Signal 2

    Signal 3

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 3

    2. Identification des entres/sorties et bit dadresses :

    2.1. Rangs, cartes et signaux Le programme dAPI concerne les connections avec le processus et les modules des entres et sorties doivent tre identifi dans le programme. Les constructeurs ont diffrentes faon didentifier ces E/S (voir exemple figure ci-dessous)

    Notation: (a) Mitsubishi, (b) Siemens, (c) Allen-Bradley, and (d) Tlmecanique.

    Gnralement les apis contiennent des rangs (racks) locales ou loign. Chacune contient des cartes (ou modules) dentres sorties avec 8, 16 ou 32 connections. Lide est dadresser ces E/s en utilisant la notion de rack/module/bit.

    Exemple 1 Allen Bradley PLC-5: LAllen Bradley PLC-5 peut avoir jusqu 8 racks dans sa version 5/25. Le rack 0 contient automatiquement le processeur, et lutilisateur peut attribuer des adresses dans les autres racks (de 1 7) en positionnant des switchers. Ses racks (outre le n0) se connectent au processeur via un cble de communication srie des E/S lointaines. Il y a trois faons avec laquelle un rack peut tre configur pour ce constructeur mais seule la plus simple est prsente.

    Chaque rack contient une carte 16 voie dentres et une carte 16 voie de sortie, ou bien deux cartes de 8 voies gnralement (mais pas ncessairement du mme type. Dans la figure suivante par exemple le slot 1 contient une carte dentre 16 voies et une carte de sortie 16 voies. Le slot 2 contient 2 cartes de sorties de 8 voies chacune.

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 4

    Ladressage des entres est comme suit : I : Rack Slot/bit, o bit est sur deux digits.

    Allen Bradley utilise un systme dadressage octal pour les bits, donc les nombres autoriss sont0-7 et 10-17. Par exemple ladresse I :27/14 dsigne lentre 14 sur le slot 7 dans le rack 2. Les sorties sont adresses de manire analogue : O:Rack Slot/Bit. Donc ladresse O:35/06 est la sortie 6 sur le slot 5 du rack 2.

    Exemple 2 Siemens SIMATIC S5 : Les E/s numrique des API de Siemens sont organis en groupes de 8 bits (appel Byte).un signal est identifi utilisant son numro de bit (0-7)et son numro de byte (0-127). Les entres ont not I., et les sorties Q., exemple lentre I9.4 et la sortie Q52.7.

    Comme pour lAllen Bradley, siemens utilise des slots pour les cartes dans un ou plusieurs racks. Les cartes sont disponibles en 16 bits (2-ytes) ou 32 bits (4-bytes). Un systme peut tre construit partir de racks locaux connect via un cble de bus parallle, des racks loigns avec une connexion srie. Les racks locaux sont plus rapides et peuvent rsoudre quelques problmes lis aux processus rapides et aux connections sries, mais ne peuvent pas tre qu quelques mtres de distance du processeur.

    La forme la plus simple dadressage est les slots fixes (figure ci-dessous). Quatre bytes sont attribus squentiellement chaque slot (0-3 pour le premier slot, 4-7 pour le deuxime,). Lentre I2.4 est donc le bit dentre numro 4 du premier byte de la carte dans le slot 3 du premier rack.

    Lutilisateur a la possibilit daffecter ladressage par byte (appel adressage de slots variable). Le numro du premier byte et le nombre de bytes (2 pour les cartes 16 bites et 4 pour les cartes 32 bites) peuvent tre fix pour chaque slot indpendamment avec des switchers dans le module adaptateur pour chaque rack. Nimporte quelle combinaison est possible, toutefois il est recommand dutiliser une numrotation squentielle (figure suivante).

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 5

    A noter finalement que siemens utilise diffrentes notation dans diffrents pays avec des terminaux de programmation multilingues (par exemple E pour lentre et a pour la sortie en Allemagne).

    2.2. Bits de sauvegarde internes. Comme pour les entres et sorties, lautomate ncessite de sauvegarder des signaux internes de donnes concernant par exemple le bon fonctionnement du systme, mise en attente, dfaillance dtect,

    Lautomate permet dallou des bits internes pour ces signaux. Ces bits ont des appellations qui varient dun constructeur un autre, par exemple relais auxiliaires pour Mitsubishi, drapeaux (flags) pour Siemens, bit de sauvegarde pour Allen Bradley, de mme la notation varie, Mitsubishi utilise Mnnn, avec nnn est un nombre dans une zone prdfinie de M100 M377 (octal), Siemens utilise la notation FByte.bit (e.g. F27.06), pour le PLC-5 de Allen Bradley, le bit de sauvegarde (bit storage) est not B3/n o n est le numro du signal (e.g. B3/100). Dans cette notation B est pour Bit storage, 3 vient du fait que le PLC-5 maintient les donne en fichiers (fichier 3 pour ces bits, fichier 4 pour les timers (T4), fichier 5 pour les compteurs (C5), ).

    3. Programmation en langage Ladder : Le langage Ladder (LD) est issu du domaine des relais lectromcaniques et dcrit le flux dnergie travers un rseau dune unit organis du programme, de gauche droite. Initialement ce langage est destin commander des signaux boolens. Ces rseaux sont organis du haut vers le bas sauf spcification de lutilisateur.

    En LD lvaluation du rseau dpend de sa forme graphique (noms des variables et types de connections). Les lments sont connect soit en srie soit e parallle.

    3.1. Elments de base dun rseau Ladder Un rseau LD consiste en les lments suivants :

    - Connections - Contacts et bobines. - Elments graphiques pour contrler lexcution de la squence (sauts) - Elments graphiques pour appels des fonctions blocs (FB) - Connecteurs.

    Le tableau suivant donne les principaux lments (contacts et bobines) dun rseau LD :

    Objet graphique nom -| |- Contact normalement ouvert -|/|- Contact normalement ferm -|P|- Contact ferm au front montant -|N|- Contact ferm au front descendant -( )- Bobine normalement ouverte

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 6

    -( / )- Bobine normalement ferme -( S )- (ou ( L)- Bobine Latch (maintenu 1 une fois actionn

    -( R )- (ou ( U )- Bobine Reset (remise 0 de la bobine latch) -( P )- Bobine active au front montant de son entre -( N )- Bobine active au front descendant de son entre

    |- Retour unconditionnel (vers le sous-programme appelant) |-cond- Retour conditionnel

    |->>Label Saut inconditionnel |-cond->>Label Saut conditionnel

    3.2. Appelle de fonctions ou blocs fonctionnels (FB): Les fonctions et les FB, reprsents par des rectangles, peuvent avoir plusieurs paramtres et variables dentres et de sorties. Les fonctions peuvent avoir un ou plusieurs paramtres retourner. Les noms formels des paramtres dentres et de sortie doivent apparatre lintrieur du bloc. Le paramtre appropri actuel (variables, constantes sont crit en dehors du bloc, sur le fils adjacent au paramtre formel, il est aussi possible de connect les entres/sorties dun bloc avec celle dun autre bloc.

    Les paramtres dune (FB) peuvent tre des donne de nimporte quel type, mais au moins une seule entre et une seule sortie doivent tre de type boolen et doivent avoir des connections direct ou indirect aux lignes de puissance gauche et droite. Une FB standard une sortie Q pour rpondre cette exigence.

    Les fonctions doivent avoir un paramtre dentre et un de sortie spciales appel EN et ENO respectivement, qui contrlent lexcution de la fonction. Si EN est valu faux (= 0), la fonction nest pas excute et ENO est aussi mis 0. Il est possible dutiliser ENO comme un paramtre derreur. Les autres tats pour lesquelles ENO est 0, sont dtermins par le constructeur et doivent tre documents.

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 7

    3.3. Variables en boucle de retour (feedback) Si une variable est utilis pour sauvegarder une valeur (sortie) dans un cycle et lue comme une entre dans le cycle suivant dans le mme rseau, elle est appele variable en feedback

    Seules les connections implicites en feedback (en rptant le nom de la variable) sont possible en LD et donc pas de connexion explicite (de droite vers la gauche) ne sont autorises.

    Si un FB et une variable en feedback font partie du mme rseau, ceci peut conduire des comportements diffrents selon les systmes dAPI.

    Considrant par exemple le rseau donn par la figure suivante :

    Dans cette exemple il nest pas claire si le contact var2 sera attribu la valeur du paramtre FBname O2 du cycle dautomate en cours ou celle du cycle prcdent. La norme 61131-3 ne discute pas en dtails cette ambigut. Pour rsoudre ce problme le FB doit tre considr comme un rseau LD part. Sil y a besoin dutiliser des parties du rseau pour prdfinir un paramtre dentre, ou dutiliser un paramtre de sortie dans le mme rseau, alors cette variable ne doit pas tre affecte un contact ou une bobine dans le mme rseau.

    4. Programmation en liste dinstruction (IL)

    4.1. Syntaxe Le langage IL est un langage simple, semblable au langage assembleur, largement utilis pour la programmation de lapi et souvent comme langage intermdiaire vers lequel les programmes crits en autres langages sont traduits.

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 8

    Un programme en IL se prsente comme une srie dinstructions avec une instruction par ligne. Chaque instruction consiste en un oprateur suivit par un ou plusieurs oprandes. Dune faon gnrale, une instruction en IL a la syntaxe suivante

    Label : Oprateur/Fonction Oprande (list) (*Commentaire*)

    par exemple :

    LD A

    Qui indique que loprande A est charger, ou bien : OUT Q

    Les oprandes utilise un code mnmonique qui varie de constructeur un autre, bien que la norme indique les instructions utiliser (et qui sont largement adopt), le tableau suivant donne quelques instructions selon cette norme et son quivalent pour certain constructeurs :

    CEI 61131-3 Mitsubishi Omron Siemens Description LD LD LD A Charger loprande

    dans le registre rsultat

    LDN LDI LD NOT AN Charger le complment de

    loprande AND AND AND A ET logique

    ANDN ANI AND NOT AN ET logique avec le complment de

    loprande OR OR OR O OU logique

    ORN ORI OR NOT ON Ou logique avec le complment de

    loprande ST OUT OUT = Sauvegarder le

    registre de rsultat dans loprande

    Exemple 1 : programmation de lquation .Q A B= utilisant la notation de Siemens :

    A A (* charger A*) AN B (*Charger le complment de B*) = Q (*sauvegarderle rsultat en Q*) Exemple 2:

    A( A I0.0 AN I1.1 O( AN I0.0 A I0.1 ) = Q2.0

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 9

    4.2. Accumulateur universel (Rsultat courant) Les langages assembleurs standards se basent sur une architecture matrielle dans laquelle un accumulateur est utilis pour sauvegarder les rsultats des diffrentes oprations effectues par le processeur. Le langage IL offre cette possibilit daccumulateur appel rsultat courant (Current Result, CR). Toutefois le CR na pas un nombre de bits fixes comme pour un accumulateur, le compilateur IL assure quun accumulateur virtuel (incluant une pile accumulateur) est toujours disponible pour nimporte quelle largeur de mmoire. Le nombre de bits dpond de type de donne de loprande, et elle varie dinstruction autre pour sadapter linstruction la plus rcente.

    Les types de donnes dans le CR peuvent tre :

    - lmentaires - Composes (structure, array, ) - Fonction bloc.

    Exemple :

    VAR_INPUT FirstOperand: INT;

    END_VAR VAR SecondOperand, ThirdOperand: INT := 10; WordVar: WORD; END_VAR LD 1 (* 1 {INT} *) ADD FirstOperand (* 11 {INT} *) ST SecondOperand (* 11 {INT} *) LT ThirdOperand (* Faux {BOOL} *) AND WordVar (* Erreur: WordVar est de type WORD, pas BOOL comme CR *)

    (* type de donne non compatible *) ST Exam43

    4.3. Utilisation des fonctions ou blocs fonctionnels (FB):

    Appelle dune fonction Une fonction est appele en IL en crivant son nom. Les paramtres de cette fonction suivent spar par des virgules. Les paramtres formels peuvent tre aussi prendre les valeurs actuelles en ligne par ligne utilisant le signe := . le premier paramtre de la fonction est le CR, il faut donc quil soit charger just avant lappel de la fonction. Le premier oprande dans lappelle de la fonction est le deuxime paramtre, ainsi de sutie.

    Exemple : soit la fonction LIMIT ayant trois paramtres dappel, MN, MX et IN, lappel de cette fonction peut se faire comme suit :

    Utilisant les paramtres actuels Utilisant les paramtres formels Utilisant les paramtres formels LD 1 Limit 2,3

    LIMIT( MN :=1 MX :=2 IN :=3 )

    LIMIT( MX :=2 MX :=1 IN :=3 )

    Une fonction doit retourner au moins une sortie, dont le type est spcifi dans la dclaration de la fonction, et qui sera sauvegarder dans CR.

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 10

    Exemple dappel et de dclaration de fonction :

    Dans cet exemple on fait deux appels UserFun. Dans le premierappel Funpar1 est gale 10, dans le deuxime il est gale) 60. A la fin des deux appels la valeur 110 est sauvegarde dans la variable Sum.

    Appelle dun bloc fonction (FB) Un FB peut tre activ par loprateur CAL (ou CALC pour lappel conditionnel, ou CALCN pour lappel conditionnel avec ngation). La norme 61131-3 dcrit trois mthodes pour passer les paramtres un FB en langage IL :

    1- Utilisant un appel incluant la liste des instances actuelles des paramtres dentre et sortie entre parenthses.

    2- Charger et sauvegarder les paramtres dentre avant lappel de la FB 3- Appeler implicitement e utilisant les paramtres dentre comme oprateur. Cette mthode nest

    valable que pour les FB standard et non pour celle dfinies par lutilisateur, etelle est rarement utilise en pratique.

    Exemple : considrant le bloc suivant (temporisation) qui sera appel par les trois mthodes :

    (*Declarations des variables*) VAR Rel, Out: BOOL := 0; (* Release - Input; Output *) Time1: TON; (* FB TON standard a les paramtres formels *)

    (* IN, PT (entres) et Q, ET (sorties *) Value TIME; (* entre mise 1 *) END_VAR

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 11

    (*methode 1*) (*donner les paramtres*)

    (* Appel: *) CAL Time1 ( IN:=Rel, PT:= t#500ms, Q=>Out, (* Output p. 1 *) ET=>VALUE (* Output p. 2 *) )

    (*methode 2*) LD t#500ms ST Time1.PT LD Rel ST Time1.IN

    CAL Time1 (*Utilisation des paramtres de sortie*) LD Time1.Q ST Out LD Time1.ET ST Value

    (*methode 3*) LD t#500ms PT Time1 LD Rel

    IN time1

    5. Programmation en FBD (Logigramme) Un programme (ou partie de programme) crit en langage FBD (Function Block Diagram) comporte trois parties : dpart en fin du programme, partie dclaration et partie code.

    La partie dclaration peut tre textuelle ou graphique. La partie code est divis en rseaux. Un rseau est constitu de :

    - Label du rseau - Commantaire - Graphique du rseau

    Dans ce langage on utilise des fonctions logique comme ET, OU, NAND, NOR, XOR ou des combinaisons de ces fonctions. Lutilisateur peut aussi dfinir ses propres fonctions o FB, comme pour le langage LD.

    Exemple :

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 12

    6. Programmation en texte structur (ST) Comme le IL, le langage ST est un langage textuel. Il est dit de haut niveau. Il offre un ensemble dinstructions abstraites dcrivant des fonctions plus ou moins complexes dune faon condense. Les avantages du langage ST par rapport celui de lIL sont nombreuses, parmi lesquelles :

    - Formulation trs condense des fonctions raliser. - Construction claire du programme en blocs fonctionnels. - Possibilit pousse de commande de processus.

    Les inconvnients de ce langage sont lis principalement leur compilation, puisque gnralement les programmes compils sont plus longs et plus lents lexcution.

    Expressions en ST Un programme crit en ST est form par un ensemble dexpressions, spar par un ; (le retour la ligne est interprt comme un simple espace). Les commentaires sont de la forme (*Commentaire*) et peuvent tre dans lexpression mme comme : A := B (* elongation *) + C (* temperature *);

    Les expressions du langage sont rsum dans le tableau suivant :

    Mot cl Description exemple := Affectation D :=10 ; Appel de fonction FBName(

    Par1:=10, Par2:=20, Par3:=>Res);

    Return Retour Return ; If Slection IF d < e THEN f:=1;

    ELSIF d=e THEN f:=2; ELSE f:= 3; END_IF;

    Case Choix multiple CASE f OF 1: g:=11; 2: g:=12; ELSE g:=FunName(); END_CASE;

    For Itration

    FOR h:=1 TO 10 BY 2 DO f[h/2] := h; END_FOR;

    While WHILE m > 1 DO n := n / 2; END_WHILE;

    Repeat REPEAT i := i*j; UNTIL i < 10000 END_REPEAT;

    Exit Fin de boucle exit;

    N.B : diffrents oprateurs sont utilis pour effectuer les oprations logiques et arithmtiques (&,and, or, , parenthses,) , comme par exemple pour le langage C, lordre de priorit est aussi semblable.

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 13

    7. Programmation SFC (Grafcet) Le langage SFC (Sequentiel Function Chart) de la norme CEI 61131-3 a t dfini pour pouvoir diviser un problme complexe en des units plus petites et plus manipulable, et aussi pour dcrire le flux de commande entre ces units. La squence dexcution de ces units dpond de conditions statiques dfinies par le programme et des conditions dynamiques dfinies par les E/S. Les units peuvent elles mme tre programmes utilisant les autres langages de programmations des API.

    Le premier langage largement adopt dcrivant un processus par un ensemble dtats et de conditions transitoires est le Grafcet, qui est par la suite largement intgr dans le langage SFC.

    Les processus pouvant tre dcris par un comportement squentiels caractris par des tapes, sont particulirement adapts pour que leurs fonctionnement soit dcrit avec ce langage.

    7.1. Rappel sur le grafcet : Le GRAFCET (GRAphe Fonctionnel de Commande par Etape Transition) est un outil graphique qui permet la description du fonctionnement du systme automatis au cours du temps d'une faon claire et sans ambigut.

    Un grafcet est un ensemble des tapes, des transitions et des liaisons orientes.

    Etape : Une tape correspond une phase durant laquelle on effectue une action pendant une certaine dure (mme faible mais jamais nulle). L'action doit tre stable, c'est dire que l'on fait la mme chose pendant toute la dure de l'tape.

    A chaque tape on associe une ou plusieurs actions.

    Une tape peut tre active on effectue l'action qui lui est associe,

    ou dsactive.

    Les actions peuvent :

    Commander des actions extrieures : Dplacement dun chariot, mise en marche dun moteur, allumage dun voyant

    Effectuer des relations intrieures : lancer une temporisation, activer un autre cycle

    Transition : Une transition est une condition de passage d'une tape une autre. Elle dfinit la fin de ltape qui la prcde. A chaque transition on associe une condition logique appele rceptivit qui dfinit la condition de passage d'une tape la suivante.

    Les liaisons orientes

    Les liaisons orientes indiquent les voies dvolution du grafcet. Elles sont horizontales ou verticales. Le sens gnral dvolution du grafcet est du haut vers le bas. Des flches doivent tre utilises dans le cas contraire ou lorsquune meilleure comprhension pourra en rsulter.

    La figure suivante illustre les diffrentes composantes dun grafcet :

    3*

    3

    Etape active

    Etape inactive

    2 Marche avant

    Monte

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 14

    Rgles dvolution dun GRAFCET La modification de l'tat de l'automatisme est appele volution, et est rgie par 5 rgles : Rgle 1 : Situation initiale : Un grafcet doit contenir au moins une tape qui soit active au dbut du fonctionnement du systme et partir du quelle le grafcet va voluer. Cette tape est appele tape initiale.

    Rgle 2 : Franchissement d'une transition : Une transition est franchissable si toutes les tapes immdiatement prcdentes sont actives et la rceptivit associe cette transition est vraie. Si une transition est franchissable, elle est forcment franchie.

    Rgle 3 : Activation et dsactivation d'une tape :Le franchissement d'une transition entrane l'activation de toutes les tapes immdiatement suivantes et la dsactivation de toutes les tapes immdiatement prcdentes.

    Rgle 4 : Plusieurs transitions simultanment franchissables sont simultanment franchies.

    Rgle 5 : Si au cours du fonctionnement dune mme tape doit tre active et dsactive simultanment, alors elle reste active.

    Diffrentes structures d'un grafcet Un cycle dautomatisme peut tre linaire, ou ramifi. Les cycles simples ne comportent quune seule squence, cest dire un ensemble dtapes les unes la suite des autres.

    Les cycles ramifis comportent plusieurs squences, le rle des aiguillages dans un GRAFCET est soit de slectionner une squence : Aiguillage en OU (on parle dans ce cas de cycle plusieurs branches avec slection de squence), soit dexcuter simultanment plusieurs squences : Aiguillage en ET (on parle dans ce cas de cycle plusieurs squence squences simultanes).

    Gracet squence unique : Cest un grafcet constitu dune suite dtapes et transitions sans ramifications. Le cycle de poinonnage trait prcdemment en est un exemple.

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 15

    Aiguillage en OU : Dans ce cas, le grafcet possde une structure plusieurs branches excution exclusive c'est--dire une seule squence (branche) est excut la fois lors dun cycle.

    Dautres structures daiguillage en OU sont aussi possibles comme le saut dtapes ou la reprise de squence:

    Aiguillage en Et (squences simultanes) : Cest grafcet qui possde plusieurs squences (branches) qui vont se droules simultanment (en parallle).

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 16

    7.2. Identification des tapes et transissions en SFC En SFC, une tape peut tre identifie graphiquement par un rectangle et un nom dtape (ou double rectangle pour ltape initiale) ou textuellement via une dclaration :

    Ou : Step Identifiant (* Corps de ltape pour dcrire les actions *)

    End_step

    Une rceptivit associ une transition peut tre crite en lun des langages ST, LD ou FBD, mais pas e,IL dans la version graphique du SFC.

    Langage LD Langage ST Langage FBD

    On peut aussi utiliser des connecteurs pour lier une rceptivit une transition.

    dans ce cas les langages ST et IL ne sont pas autoriss.

    Identifiant

    Initiale Initial_step identifiant ; (*Corps de ltape *) End_step

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 17

    Une troisime mthode consiste utiliser le nom de la rceptivit associ la transition, crite indpendamment du diagramme SFC, les langages textuels peuvent tre utiliss dans ce cas. Cette mthode lavantage de pouvoir utiliser le nom de la rceptivit pour diffrentes transitions auxquelles sont associ la mme condition logique.

    Exemple : Dclaration de la rceptivit :

    7.3. Description des actions : Une action est utilise pour dcrire les instructions excut en association avec une tape active. Ces instructions peuvent tre une action boolenne ou une squence dinstructions programme en LD, IL, FBD, ST ou un sous-programme en SFC.

    Un bloc action est constitu dune action avec une condition dexcution (appele qualificateur daction) et un indicateur boolen variable (optionnel). Un bloc daction peut tre dfinit en version graphique ou textuelle.

    Qualificateur daction Nom daction Indicateur boolen variable Instruction en LD, IL, ST ou SFC

    Appel de la transition :

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 18

    Exemples :

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 19

    8. Types de donnes et dclaration des variables

    8.1. Types de donnes

    Types de donnes lmentaires : Les types de donnes lmentaires spcifis par la norme 61131-3, sont donns par le tableau suivant :

    Boolenne/string Entiers signs Entiers non signs Rels (FP) Temps, dure et date

    BOOL BYTE WORD DWORD LWORD

    INT SINT DINT LINT

    UINT USINT UDINT ULINT

    REAL LREAL

    TIME DATE TIME_OF_DAY DATE_AND_TIME STRING

    Avec : D= double, L= long, S = Short et U = unsigned.

    Ces types ont caractris par leurs largeurs (nombres de bits) ainsi que par leur tendus (ou intervalles de valeurs). Ceci ne sapplique pas aux types de temps et dates qui ont leurs propres spcifications.

    Ces grandeurs sont rsumes dans les tableaux suivants pour les diffrents types lmentaires.

    Type de variable Bits Intervalle Initiale BOOL 1 [0,1] 0 BYTE 8 [0,,16#FF] 0 WORD 16 [0,,16#FFFF] 0 DWORD 32 [0,,16#FFFF FFFF] 0 LWORD 64 [0,,16#FFFF FFFF FFFF FFFF] 0 SINT 8 [-127,,128] 0 INT 16 [-32768,,32767] 0 DINT 32 [-231,,231-1] 0 LINT 64 [-263,,263-1] 0 USINT 8 [0 255] 0 UINT 16 [0 65535] 0 UDINT 32 [0 231-1] 0 ULINT 64 [0 264-1] 0 REAL 32 Spcifi par la norme IEEE 754-2008 0.0 LREAL 64 0.0

    Type dtae Description Initiale DATE Date (seulement) D#0001-01-01 TOD Temps durant la journe Tod#00 :00 :00 DT Temps et date Dt#0001-01-01-00 :00 :00 Time Dure t#0s

    Types de donnes drives (ou dfinition de type) Lutilisateur peut dfinir ses propres types de donnes partir des types lmentaires. Ceci est appel drivation ou dfinition de type. Ceci permet lutilisateur de dfinir les types les plus appropris ses

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 20

    besoins. Ses dfinitions sont globales pour un projet api. La dfinition de type de variables utilise les mots cls Type END_TYPE.

    Exemple : TYPE

    LongFloatNum : LREAL; (*derivation depuis le norme *) FloatingPoint : LongFloatNum; (* derivation depuis un type dfinit par lutilisateur *) InitFloatNum : LREAL := 1.0; (* derivation avec une nouvelle valeur initiale *) tControl : BOOL := TRUE; (* derivation avec nouvelle valeur initiale *)

    END_TYPE

    On peut aussi dclarer des type de donnes de type array (vecteur) ou structure.

    Un array est une suite dlments de mme type conscutifs en la mmoire et peuvent tre accd via un index, alors que la structure est forme de sous-lments qui peuvent tre de type lmentaire ou drivs.

    Exemples: 1) TYPE

    Colour : (red, yellow, green); (* enumeration *) Sensor : INT (-56..128); (* range *) Measure : ARRAY [1..45] OF Sensor; (* array *) TestBench : (* structure *) STRUCT Place : UINT; (* elementary data type *)

    Light : Colour:= red; (* enumerated data type with initial value *) Meas1 : Measure; (* array type *) Meas2 : Measure; (* array type *) Meas3 : Measure; (* array type *) END_STRUCT;

    END_TYPE

    2) dfinition de structure relative au fonctionnement dun moteur TYPE

    LimitedRevol : UINT (0..230); TypLevel : (Idling, SpeedUp1, SpeedUp2, MaxPower); MotorState : STRUCT

    Revolutions : LimitedRevol; (* limites *) Level : TypLevel; (*type enumeration*) MaxReached : BOOL; (*type elementaire *) Failure : BOOL; (*type elementaire *) Brake : BYTE; (*type elementaire *)

    END_STRUCT; END_TYPE

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 21

    8.2. Dclaration de variable :

    Forme gnrale de dclaration : Les variables sont dclares avec le type de donne et des proprits. Ces proprits peuvent tre dfinies dans la dclaration utilisant :

    - Les proprits du type de donnes spcifiques. - Informations (optionnelles) sur les valeurs initiales - Informations (optionnelles) sur les valeurs limites - type de variable du bloc de dclaration dans lequel la variable a t dclare (avec

    qualificateur/attribue)

    Exemple :

    VAR_OUTPUT RETAIN

    Var1 : Byte := 10;

    END_VAR

    Attribues de types de variables : La norme CEI 61131-3 dfinie des attribues (ou qualificateurs) avec lesquelles de proprits supplmentaires peuvent tre ajoutes aux variables :

    - RETAIN : variable retenu (peut tre rcuprer aprs coupure de courant grce la batterie). - NON_RETAIN : non rcuprable. - CONSTANT : variable constante, ne peut pas tre modifie - R_EDGE : front montant - F_EDGE : front descendant - READY_ONLY : protger en criture - READ_WRITE : peut-tre accde pour lcriture et la lecture

    Type de variable

    Nom de variable

    Type de donne

    Valeur initiale

    Fin du type de variable

    Attribue

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 22

    9. Fonctions standards Les fonctions standards ont des variables dentre (paramtres formels) ainsi que la valeur retourn par la fonction.

    9.1. Fonctions de conversions de types: Ces fonctions standards convertie la variable dentre en le type de donne retourne par la fonction. Ces fonctions sont rsumes par la figure suivante :

    9.2. Fonctions numriques : Permettent de raliser des fonctions mathmatiques de base (abs, sqrt, Ln, Log, sin, cos, tan, asin,)

    9.3. Fonctions arithmtiques : Permettent de raliser des oprations arithmtiques (add, sub, mult, div)

    Addition et multiplication :

    Soustraction et division :

    MOD :

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 23

    9.4. Oprations sur les bits : Permettent de manipuler des bit (shift droite/gauche, rotation droite/gauche : SHR,SHL, ROR et ROL)

    9.5. Oprations bit bit Permettent de raliser des oprations de type fonctions logique de base (not, and, or, xor)

    9.6. Fonction slection Les fonctions MAX, MIN et LIMIT permettent de faire une slection selon la valeur de lentre

    Pour Max ou Min :

    Pour limit :

    Pour cette fonction : F :=MIN(MAX(IN,MN),MX) ;

    9.7. Fonctions SEL et Mux : Sel : slection binaire.

    F := IN0 si G=1 sinon F :=IN1

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 24

    Mux : multiplexeur.

    F :=INi, si K=i avec K=0n-1

    9.8. Fonctions pour variable de type date :

    Dans ces figure (***)= ADD ou SUB

    (***)=Mul ou Div

    Conversion :

    10. Fonctions blocs standard :

    Bascules : Bascule set dominant Bascule reset dominant

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 25

    Dtection de front : Dtection front montant Dtection front descendant

    Compteurs : Trois types de compteurs : incrmentation (CTU), dcrmentation (CTD) et incrmentation-dcrmentation (CTUD)

    CTU CTD CTUD

    FUNCTION_BLOCK CTU (* up counter *) VAR_INPUT CU : BOOL R_EDGE; (* CU front montant*)

    R : BOOL; PV : INT;

    END_VAR VAR_OUTPUT

    Q : BOOL; CV : INT;

    END_VAR IF R THEN (* reset compteur *)

    CV := 0; ELSIF CU AND ( CV < PV) THEN

    CV := CV + 1; (* count up *) ENDIF; Q := (CV >= PV); (* limite attainte*) END_FUNCTION_BLOCK

    FUNCTION_BLOCK CTD (* down counter*) VAR_INPUT

    CD : BOOL R_EDGE; LD : BOOL; PV : INT;

    END_VAR VAR_OUTPUT

    Q : BOOL; CV : INT;

    END_VAR IF LD THEN (* reset compteur*)

    CV := PV; ELSIF CD AND ( CV > 0) THEN

    CV := CV - 1; (* count down *) ENDIF; Q := (CV 0) THEN

    CV := CV - 1; (* count down *) ENDIF; ENDIF; ENDIF; QU := (CV >= PV); (* limit reached *) QD := (CV

  • ISIM GabS API et Supervision industrielle a.U. 2011/2012 LaSCMI3

    S. MARAOUI Page 26

    Temporisation impulsions TP Le diagramme ci-aprs montre le comportement des sortie ET et Q selon les valeurs des entres IN et PT

    La fonction bloc standard TP fonctionne comme gnrateur dimpulsions, qui fournit une impulsion de largeur fixe (TP) la sortie Q lorsquun front montant est dtect sur lentre IN. Le temps qui sest pass peut tre lu sur ET (Elapsed Time). Anoter que limpulsion ne peut pas rinitialiser avant sa fin (voir intervalle entre t2 et t2+PT).

    Temporisation TON (On delay timer) Le timer TON fournit la valeur de lentre IN la sortie Q avec un dlai lors quun front montant est dtect sur IN. Si in est 0 un pour une dur2e plus courte que PT ? LE TIMER N4EST PAS D2MARRER.

    TEMPORISATION TOF Son fonctionnement est le contraire de celui de TON

    Chapitre 2Programmation des API1. Introduction2. Identification des entres/sorties et bit dadresses :2.1. Rangs, cartes et signauxExemple 1 Allen Bradley PLC-5:Exemple 2 Siemens SIMATIC S5 :

    2.2. Bits de sauvegarde internes.

    3. Programmation en langage Ladder :3.1. Elments de base dun rseau Ladder3.2. Appelle de fonctions ou blocs fonctionnels (FB):3.3. Variables en boucle de retour (feedback)

    4. Programmation en liste dinstruction (IL)4.1. Syntaxe4.2. Accumulateur universel (Rsultat courant)4.3. Utilisation des fonctions ou blocs fonctionnels (FB): Appelle dune fonction Appelle dun bloc fonction (FB)

    5. Programmation en FBD (Logigramme)6. Programmation en texte structur (ST)Expressions en ST

    7. Programmation SFC (Grafcet)7.1. Rappel sur le grafcet :Rgles dvolution dun GRAFCETDiffrentes structures d'un grafcet

    7.2. Identification des tapes et transissions en SFCExemple :

    7.3. Description des actions :Exemples :

    8. Types de donnes et dclaration des variables8.1. Types de donnesTypes de donnes lmentaires :Types de donnes drives (ou dfinition de type)Exemple :Exemples:

    8.2. Dclaration de variable :Forme gnrale de dclaration :Attribues de types de variables :

    9. Fonctions standards9.1. Fonctions de conversions de types:9.2. Fonctions numriques :9.3. Fonctions arithmtiques :9.4. Oprations sur les bits :9.5. Oprations bit bit9.6. Fonction slection9.7. Fonctions SEL et Mux :9.8. Fonctions pour variable de type date :

    10. Fonctions blocs standard :Bascules :Dtection de front :Compteurs :Temporisation :Temporisation impulsions TPTemporisation TON (On delay timer)TEMPORISATION TOF