45
LA PROGRAMMATION Lycée L.RASCOL 10, Rue de la République BP 218. 81012 ALBI CEDEX GJC LES AUTOMATISMES

La Programmation

Embed Size (px)

DESCRIPTION

pr

Citation preview

  • LA

    PROGRAMMATION

    Lyce L.RASCOL 10, Rue de la Rpublique BP 218. 81012 ALBI CEDEX GJC

    LES AUTOMATISMES

  • SOMMAIRE

    LA NORME CEI 1131

    I. La norme CEI 1131 II. Les langages de programmation III. Units dorganisation de programmes

    IV. Structure dun programme V. Travail sur bits

    LA PROGRAMMATION DU GRAFCET

    V1. Introduction VI. Langage SFC (CEI 1131) VII. Principes gnraux VIII. Mthode synchrone IX. Mthode asynchrone X. Programmation bistable XI. Implmentation du grafcet

  • Page 1

    LA NORME

    CEI 1131

  • TS CRSA Automatismes

    Page 2

    I.LA NORME CEI 1131

    La normalisation des langages en informatique est un fait acquis (Pascal, C, C++, etc). Cest un critre dachat, aujourdhui il nexiste plus sur le march des progiciels de ce type qui ne respecterais pas les normes. En automatismes, bien que la part des automates programmables dans les systmes automatiss soit trs importante, la diversit est de rgle. La part du logiciel devenant de plus en plus importante dans les applications, la ncessit de passer dune programmation quasi artisanale une certaine harmonisation sest petit petit imposer aux utilisateurs ainsi quaux constructeurs. Les besoins dune normalisation des langages pour API sexprime, pour les industriels, en termes de: faciliter la formation des ralisateurs de configurations dautomates programmables obtenir un bon niveau de portabilit des programmes favoriser la cration de bibliothques de blocs fonctionnels fiables faciliter les configurations en rseau dautomates amliorer la qualit des applications (sret de fonctionnement, maintenabilit, extensibilit) rutiliser les outils de configuration et de programmation produire des dossiers dapplications homognes faciliter la maintenance du logiciel dapplication

    Le CENELEC (Comit Europen de Normalisation Electrotechnique) a adopt en 1993 le texte (65B) de la CEI (Commission Electrotechnique Internationale) comme norme EN 61131 pour la commande des processus industriels. Cette norme traite des automates programmables en 5 parties : CEI 1131-1 dfinitions1 , informations gnrales. CEI 1131-2 spcifications et essais matriels CEI 1131-3 langages de programmations CEI 1131-4 documentations CEI 1131-5 communications Loriginalit des langages de programmation pour automates est quils sont gnralement imags par rapport lexpression de la commande des machines automatises. Ils sont souvent graphiques et depuis 20 ans des formes de langages se sont dgags et sont mise disposition par les constructeurs dAPI (liste dinstruction mnmonique, rseau contacts, GRAFCET). La norme commence tre utiliser, des associations dutilisateurs se sont cres en France et en Europe (EXERA, PLCopen) pour certifier des produits un niveau de conformit de base et un niveau de probabilit. Chez les constructeurs des langages de programmation proches sont annoncs (XTel et PL7Micro pour tlmcanique, SFCdAllen Bradley, Step5 et 7 de Siemens, etc) des test de conformit sont fait par le CETIM relatifs aux prescriptions et la syntaxe. Les nouveaux ateliers logiciels pour le Gnie automatique sont dvelopps pour fonctionner sur des PC avec des interfaces standard et des langages normaliss.

    1 Automate Programmable (AP) Systme lectronique fonctionnant de manire numrique, destin tre utilis dans un

    environnement industriel, qui utilise une mmoire programmable pour le stockage interne des instructions orientes utilisateur aux fins de mise en uvre de fonctions spcifiques, telles que des fonctions de logique, de mise en squence de temporisation, de comptage et de calcul numrique, pour commander au moyen dentres et de sorties tout ou rien ou analogiques divers types de machines ou processus. LAP et ses priphriques associs sont conus pour pouvoir facilement sintgrer un systme dautomatisme industriel et tre facilement utiliss dans toutes leurs fonctions prvues.

  • TS CRSA Automatismes

    Page 3

    L'tude de la norme nous permettra de constater des principes largement prouvs par le Gnie logiciel tels que la structuration et la modularit. De distinguer les modules logiciels des langages dans lesquels ils peuvent tre crits. De faire la diffrence entre le modle de spcification et le langage de programmation (code automate). La norme CEI 1131 sapplique aux automates programmables industriels et leurs priphriques. Les objectifs sont:

    donner les dfinitions et identifier les principales caractristiques permettant de slectionner et utiliser les automates programmables et leurs priphriques associs. dterminer les prescriptions minimales relatives aux caractristiques fonctionnelles, aux conditions de service, aux caractristiques constructives, la scurit gnrale ainsi quaux essais applicables aux automates programmables et leurs priphriques. dfinir pour les langages de programmation les principaux champs dapplications, les rgles syntaxiques et smantiques ainsi que des ensembles de base simples mais exhaustifs dlments de programmation. fournir lutilisateur des informations gnrales didactiques et des recommandations quant son application.

    La partie 3 de cette norme dfinit : Les langages de programmation Les modules logiciels ou units dorganisation de programmes

    I.1. Ateliers logiciels I.1.1 Latelier de Gnie Automatique La complexit des traitements est induite par laugmentation de la taille et par la multiplicit des fonctions demandes lAPI. Les fonctions classiques (combinatoire, squentiel) reprsentent environ un tiers du logiciel dvelopper pour une application, le reste est souvent destin: laide la maintenance et au diagnostic de panne la communication aux fonctions spcifiques (rgulation) aux fonction de commande daxes, Latelier logiciel vise rpondre au problme et est compos dune gamme de produits dont certains peuvent tre vendus sparment. structuration dune application (architecture de commande) conception, codage, test gestion du processus de dveloppement (# versions, projet, ) production des documents maintenance communication avec dautres outils de CAO, Latelier de Gnie automatique ci-dessous est compos dune partie matrielle (PC ou station de travail) et dun atelier logiciel conu dans un souci dergonomie. Des environnement graphiques diffrents peuvent tre utiliss (OS2, Windows, Unix ), leur contribution est importante par rapport des logiciels sous DOS.

    I.1.2. Latelier logiciel et les configurations dAPI Les potentialits des API sont dtermines par des fonctions programmables que lon peut subdiviser en groupes orients application . Dans le cadre dune application, la partie

    Atelier de Gnie automatique

    Atelier logicielenvironnementstructure daccueilWindowsOS2UNIX

    Ensembles logiciels

    Outils dadaptation

    Matriel

  • TS CRSA Automatismes

    Page 4

    matrielle qui assure ces diffrentes fonctionnalits et les priphriques associs constituent une configuration dautomate programmable2 . Les ateliers logiciels disposent de mcanismes et de fonctionnalits communes , et sappuient sur la norme CEI 1131.

    I.1.3 Modle logiciel Le modle logiciel crit en langage volu se compose dlments qui sont :

    Les programmes et les blocs fonctionnels Les lments de configuration - configuration - ressources - tches - variables globales et chemin daccs

    Reprise froid Reprise de la configuration d'AP et de son programme d'application aprs que toutes les donnes dynamiques {variables telles qu'image E/S, mmoires internes, temporisateurs, compteurs, etc. et contextes du programme) aient t ramenes un tat prdtermin. Une reprise froid peut tre automatique (par exemple aprs une coupure de courant, une perte d'information dans la ou les parties dynamiques de la ou des mmoires, etc.) ou manuelle (par exemple bouton de rinitialisation, etc.).

    Reprise immdiate Reprise aprs une coupure d'alimentation intervenant pendant le laps de temps maximal fonction du processus allou la configuration d'AP pour rtablir son fonctionnement comme s'il n'y avait pas eu de coupure d'alimentation. Toutes les informations d'E/S et toutes les autres donnes dynamiques ainsi que le contexte du programme d'application sont restaure ou demeurent inchangs.

    Reprise chaud Reprise aprs une coupure d'alimentation avec un ensemble de donnes dynamiques prdtermin et programm par l'utilisateur et un contexte programme d'application prdtermin par le systme. Une reprise chaud se caractrise par une signalisation d'tat ou tout autre moyen apparent mis la disposition du programme d'application indiquant que l'interruption d'alimentation de la configuration d'AP t dtecte en mode run

    II.LES LANGAGES DE PROGRAMMATION

    II.1. Les lments communs La norme 61131.3 spcifie la syntaxe et la smantique dune srie unifie de langages pour automate programmable. Elle se compose de cinq langages classs en trois familles: Langages LITTERAUX Langage IL : liste dinstructions Langage ST : littral structur

    Langages GRAPHIQUES Langage LD : langage contacts (Ladder) Langage FBD : diagramme fonctionnel logigramme Langage SFC : diagramme fonctionnel en squence GRAFCET

    2 Configuration dAP : Configuration ralise par lutilisateur et comportant un automate programmable et des

    priphriques associs, ncessaires au systme automatis prvu. Elle consiste en des units interconnectes au moyen de cbles ou de raccords enfichables pour linstallation permanente, et au moyen de cbles ou dautres dispositifs pour des priphriques portables et transportables.

  • TS CRSA Automatismes

    Page 5

    Les reprsentations des donnes, dans les divers langages de programmation dautomates programmables, doivent se composer de libells numriques, de cordons de caractres et de libelles de datation. Libells numriques; Libells entiers -----> -12 ; 0 ; +986 ; 123 Libells rels ------> -12,0 ; 0,0 ; 0,45623 ; 3,1416 ; 1,34E-1,2 Libells de cordons de caractres; Squence de zro plusieurs caractres prcde et termine par une apostrophe (),A Libells de datation ; ncessit de distinguer deux types de donnes temporelles: Relative la dure pour la mesure et le contrle du temps coul, TIME #10s Relative lheure du jour pour lexpression dune date, DATE # 2000-10-28

    Identificateurs Un identificateur est un cordon de lettres de chiffres et de caractres de soulignement qui doit commencer par une lettre ou par un caractre de soulignement. Les identificateurs ne doivent pas comporter de caractres d'espaces intercalaires (SP). Exemple : Cs_tpav, dcy, Commentaires Les commentaires de lutilisateur doivent tre respectivement dlimits, leur dbut et leur fin, par la combinaison de caractres spciaux (* et *) . Exemple : dcy : (* bouton poussoir dpart cycle *)

    II.2. Les donnes

    II.2.1 donnes lmentaires Dfini le mot cl relatif chaque type de donne, le nombre de bits, la plage des valeurs relative chaque type de donnes (tableau 10 annexe A)

    II.2.2 donnes gnriques Rassemblement de donnes lmentaires dune mme famille, la hirarchie des types de donnes gnriques est donne dans le tableau ci-dessous. Elles sont identifies par le prfixe ANY (tableau 11 annexe A)

    II.2.3 donnes drives Les donnes drives sont celles spcifies par lutilisateur ou le fabricant et sont dclares laide de la construction littrale: TYPE

    END_TYPE

    II.3. Les variables Les variables fournissent un moyen pour identifier des objets de donnes dont le contenu peut varier, comme par exemple les donnes associes aux entres/sorties.

    II.3.1 variable un lment Une variable un seul lment est dfinie comme une variable qui reprsente une valeur mono lment. La reprsentation dune variable un seul lment est assure par le symbole % combin avec un prfixe demplacement et un prfixe de taille.

  • TS CRSA Automatismes

    Page 6

    II.3.2 variable plusieurs lments Les variables plusieurs lments sont des tableaux et des structures. Les indices sont mis entre crochets [ ] et spars par des virgules.

    ARRAY [110 , 1 8] tableau 2 dimensions 80 lments

    II.3.3 dclaration de variable Chaque unit dorganisation de programme doit comporter une partie dclaration qui spcifie le type (et lemplacement si possible ) des variables utilises dans le module logiciel. Cette dclaration se fait sous forme littrale en utlisant des mots cls (VAR END_VAR ) ou sousn forme graphique. Les valeurs initiales peuvent tre donnes dans la dclaration.

    II.3.4 initialisation des variables Chacune des variables associes llment de configuration et son programme peut prende une valeur initiale.

    II.4. Langage IL (Liste dInstructions) Langage liste dinstructions (IL) est compos dune suite dinstruction, chaque instruction doit dbuter une nouvelle ligne de programme et doit contenir un oprateur suivi dune ou plusieurs oprandes. Linstruction peut tre prcde dune tiquette didentification avec (:) Sil y a prsence dun commentaire il doit constituer le dernier lment de la ligne. Le format dune ligne dinstruction et les oprateurs standards sont dfinis (tableaux 51&52 annexe A)

    II.5. Langage structur ST Le langage litteral structur est constitu dexpression litterale compose doprateur et doprande libell conformment la norme. Les oprateurs boolens du langage ST sont ressemblant aux prcdents, on retrouve : AND, OR, XOR, et NOT pour la complmentation (voir tableau 55 annexe A).

    Mot cl Dsignation de la variableVAR interne au moduleVAR_INPUT variable d'entre du moduleVAR_OUTPUT variable de sortie du moduleVAR_IN_OUT fournie par des entites et modifiable dans le module (A=A+1)VAR_EXTERNAL fournie par la configurationVAR_GLOBAL dclaration de variable globaleVAR_ACCES dclaration de chemin d'accsRETAIN variable non volatileCONSTANT constanteAT nonc d'emplacementEND_VAR fin de dclaration

  • TS CRSA Automatismes

    Page 7

    Lcriture du programme se fait sous forme dnoncs littrale . Une ligne de programmation peut avoir la structure gnrale suivante Commentaires Etiquettes : nonc ..

    AFFECTATION L'nonc d'affectation remplace la valeur actuelle d'une variable par le rsultat de l'valuation d'une expression. Un nonc d'affectation doit se composer d'une rfrence de variable gauche, suivie de l'oprateur d'affectation (:=), suivi de l'expression valuer. SELECTION Les noncs de slection comprennent les noncs IF et CASE L'nonc IF indique qu'un groupe d'noncs ne doit tre excut que si la valeur prise par l'expression boolenne associe est 1 (vraie) ;THEN. Si la condition n'est pas vrifie, soit aucun nonc n'est excut, soit le groupe d'noncs suivi du mot cl ELSE doit tre excut. L'nonc CASE se compose d'une expression qui doit tre value sur une variable de type INT (que J'on appelle le "slecteur"), et d'une liste de groupes d'noncs, chacun d'entre eux tant tiquet par une ou plusieurs plages de valeurs entires. Cet nonc prcise que le premier groupe d'noncs, dont l'une des plages contient la valeur calcule du slecteur, doit tre excut. Si la valeur du slecteur n'apparat dans aucune plage d'aucun cas, la suite d'noncs qui suit le mot cl ELSE. Dans le cas contraire aucune des suites d'noncs ne doit tre excut ITERATION Les noncs ditration comprennent les noncs FOR, WHILE et REPEAT L'nonc FOR indique qu'une suite d'noncs doit tre excute de manire rptitive jusqu' ce que le mot cl END-FOR soit atteint, une suite de valeurs progressives tant affecte la variable de commande de la boucle FOR. La variable de commande, la valeur initiale et la valeur finale doivent tre des expressions du mme type entier (SINT, INT ou DINT). L'nonc FOR augmente ou diminue la variable de commande d'une valeur initiale jusqu' une valeur finale par incrments dtermins par la valeur d'une expression; par dfaut, cette valeur est 1. L'nonc WHILE dclenche l'excution rpte de la suite d'noncs s'tendant jusqu'au mot cl END-WHILE, jusqu' ce que l'expression boolenne associe soit fausse. Si, l'origine, l'expression est fausse, le groupe d'noncs n'est pas excut du tout. L'nonc REPEAT entrane l'excution rpte (et au moins une fois) de la suite d'noncs s'tendant jusqu'au mot cl UNTIL, jusqu' ce que la condition boolenne associe soit vraie.

    lnonc EXIT doit permettre de sortie de toutes les boucles ditrations

    II.6. Langage FBD (langage en Blocs Fonctionnels) Le langage FBD est un langage graphique de programmation (type logigramme) compatible avec la norme CEI 617-12.

    N symbole dsignation1 & ET2 >=1 OU3 OU exclusif4 1 galit

    5 complment d'entre6 complment de sortie

    =1

  • TS CRSA Automatismes

    Page 8

    II.7. Langage contacts LD (Ladder) Le langage contacts permet la programmation laide de symboles graphiques. Ces symboles sont organiss en rseau relis gauche et droite des barres dalimentation.

    III.UNITES DORGANISATION DE PROGRAMMES.

    III.1. Dfinition Les units dorganisation de programmes, dfinies par la norme, sont aux nombre de trois: la FONCTION le BLOC FONCTIONNEL le PROGRAMME Ces units dorganisation de programmes (ou modules logiciels) peuvent tre fournies par le constructeur dautomate programmable (modules standards), ou programmes par lutilisateur laide des modules standards

    III.2. La fonction III.2.1 dfinition La fonction est dfinie comme un module logiciel pouvant avoir plusieurs variables dentres, mais une et une seule variable de sortie. Le lancement dune fonction dote des mmes valeurs dentres doit toujours donner la mme valeur de sortie. Une fonction na donc pas de mmoire.

    III.2.2 reprsentation Les fonctions peuvent tre reprsentes soit graphiquement, soit littralement(Voir annexe A) Une entre EN ( Enable, validation) et une sortie ENO (pas derreur) boolenne supplmentaire peuvent tre utilises.

    N Symbole Dsignation

    1 contact Normalement Overt

    2 Contact Normalement Ferm

    3 Contact dtection front montant

    4 Contact dtection front descendant

    5 bobinage

    6 bobinage complment

    7 bobinage SET (vrouillage)8 bobinage RESET (dvrouillage)9 bobinage Front Montant

    10 bobinage Front descendant

    PN

    SR

    P

    N

  • TS CRSA Automatismes

    Page 9

    III.2.3 dclaration Une fonction doit tre dclare graphiquement ou littralement. La dclaration dune fonction doit comporter les lments suivant. le mot cl FUNCTION END_FUNCTION la dclaration des variables uitlises par la fonction le corps de fonction dans un des langages normalis. Exemple: Etude de la fonction pesage : poids NET = poids BRUT tare FONCTION_PESEE

    III.3. Le bloc fonctionnel

    III.3.1 dfinition Le bloc fonctionnel est dfini comme un module logiciel pouvant avoir plusieurs sorties. Le bloc fonctionnel possde une mmoire interne, les variables internes sont transparentes pour lutilisateur. Il est possible de crer plusieurs instances dun bloc fonctionnel, chaque instances tant identifie par un nom.

    III.3.2 reprsentation La reprsentation dun bloc fonctionnel ou dune instance de bloc fonctionnel peut tre soit graphique soit littrale. La norme dfini un certains nombre de blocs, les blocs fonctionnels standards (mmoire, tempo, ect ), mais des blocs fonctionnels utilisateur peuvent tre construit laide de Fonctions et de Blocs fonctionnels standards.

    III.3.3 dclaration Un bloc fonctionnel peut tre dclar graphiquement ou littralement. Cette dclaration doit comporter les lments suivant: les mots cls FUNCTION_BLOCK END_FUNCTION_BLOCK la dclaration des variables utilises par le bloc fonctionnel la dfinition du corps du bloc fonctionnel Exemple: Extrait de la norme EN 61131 Le bloc fonctionnel CMD_MONITOR correspond la commande dun ensemble dexploitation qui ragit a un ordre de marche ( la sortie CMD) et renvoie un signal de bonne excution (entre FDBK). Le bloc fonctionnel permet une commande manuelle (MAN_CMD) ou auto (AUTO_CMD) suivant lentre AUTO_MODE. La vrification de MAN_CMD se fait par MAN_CMD_CHK.

  • TS CRSA Automatismes

    Page 10

    Si aucune confirmation de la commande CMD dans un delais (T_CMD_MAX) la commande est annule et une alarme est signale.

    Dclaration sous forme littrale

    Corps du bloc fonctionnel en langage ST.

    Corps du bloc fonctionnel en langage LD

  • TS CRSA Automatismes

    Page 11

    III.4. Le programme Le programme est dfini comme un ensemble logique de tous les lments et constructions des langages de programmation ncessaires pour le traitement des donnes requis pour contrler une machine ou un processus au moyen dune configuration dautomate programmable .Un programme est construit laide de Fonctions et de Blocs Fonctionnels. Un programme ne peut tre instanci que dans des ressources, alors que les blocs fonctionnels ne peuvent tre instancis que dans des programmes ou dans dautres blocs fonctionnels.

    III.4.1 dclaration. La dclaration et lutilisation de programmes sont identiques aux blocs fonctionnels : mots cls PROGRAM END_PROGRAM les dclarations de variables, un programme pouvant utiliser des variables globales ou/et des chemins daccs. Exemple : PROGRAM ESSAI_1 VAR_INPUT x : BOOL ; END_VAR VAR_OUTPUT y : BOOL ; END_VAR VAR_EXTERNAL z : WORD ; END_VAR FB1 () ; FB2 () ; END_PROGRAM

    Conclusion. La conformit une norme est pour les utilisateurs un gage de qualit, de maintenabilit, et d'volutivit. A la demande de certains constructeurs, des tets sont raliss par le CETIM3 et de l'EXERA4qui ont pour objectifs de vrifier la conformit. La norme reprsente une synthse d'un tat de l'art du gnie logiciel sur des principes prouvs tels que la structuration et la modularit. Dans l'application de cette norme , il est important: - de distinguer les modules logiciels des langages dans lesquels ils peuvent tre crits - de diffrencier le modle de spcifications et le langage de programmation. La dmarche, ci-contre peut tre mise en uvre pour mener une tude de comception logicielle. Le bloc conception et le bloc ralisation n'ont pas obligatoirement les mmes auteurs.

    3 Centre Technique des Industries Mcaniques

    4 Association des Exploitants dEquipements de Mesure, de Rgulation et dAutomatismes

  • TS CRSA Automatismes

    Page 12

    IV.STRUCTURE DUN PROGRAMME

    Le moniteur systme de lautomate grant lacquisition et laffectation des entres/sorties la partie programme de lapplication de lutilisateur respectera lorganisation gnrale ci-dessous. Limplmentation des diffrents modules est fonction de la structure de la mmoire programme de lautomate. Avant tout travail de codage API, la configuration matrielle est obligatoire. Cette configuration prvoit l'adressage des entres sorties, document important du dossier d'automatisme, en fonction des caractristiques du matriel mis en service. Ce document peut se prsenter sous la forme de tableaux directement accssibles dans latelier logiciel.

  • TS CRSA Automatismes

    Page 13

    Exemple de spcification programme :

    Etude du comparateur 4 bits Deux valeurs A{a0;a1;a2;a3} et B{b0;b1;b2 ;b3} rpondant aux quations suivantes :

    F(A>B)=a3./b3+(a3b3)a2/b2+(a3b3)(a2b2)a1./b1+(a3b3)(a2b2)(a1b1)a0./b0 F(AB *) Inf : BOOL ; (* valeur A

  • TS CRSA Automatismes

    Page 14

    V.TRAVAIL SUR BIT

    L'objet de ce paragraphe est la programmation d'quations boolennes, combinatoires et/ou squentielles. La norme dfini les fonctions et les blocs fonctionnels utilisables dans les spcifications pour la programmation d'quations binaires.

    V.1. Fonctions boolennes. (Voir annexe A)

    V.1.1 fonctions boolennes standard.

    V.1.2 fonctions spciales de traitement de cordons de bits. Ces fonctions sont lies au dcalage droite ou gauche

    V.2. Blocs fonctionnels. (voir annexe A)

    V.2.1 blocs fonctionnels standards: Bistables et dtection de front La sortie Q dun bloc fonctionnel front passe la valeur 1 au passage de 0 >1 de lentre CLK dun bloc R_TRIG ou, de 1>0 pour un bloc F_TRIG , et reste 1 de l'excution du bloc la suivante.

    V.2.2 blocs fonctionnels de comptage Les blocs fonctionnels standards de comptage sont au nombre de trois : CTU bloc compteur CTD bloc dcompteur CTUD bloc fonctionnel mixte de comptage/dcomptage

    V.2.3 blocs foctionnels de temporisation

  • TS CRSA Automatismes

    Page 15

    Annexe A Norme 61131 Elments communs

    identificateurs Un identificateur est un cordon de lettres. de chiffres et de caractres de soulignement qui doit commencer par une lettre ou par un caractre de soulignement. Les identificateurs ne doivent pas comporter de caractres d'espaces intercalaires (SP). Exemple : Cs_tpav, dcy, commentaires Les commentaires de lutilisateur doivent tre respectivement dlimits, leur dbut et leur fin, par la combinaison de caractres spciaux (* et *) . Exemple : dcy : (* bouton poussoir dpart cycle *)

  • TS CRSA Automatismes

    Page 16

    Le Langage IL (Liste dInstructions)

  • TS CRSA Automatismes

    Page 17

    Le Langage ST (littral structur)

    Le langage littral structur est constitu dexpression. Une expression est une construction syntaxique qui, lorsquelle est value, fournit une valeur correspondante lun des types de donnes dfinies. Les expressions sont composes doprateur et doprandes..

    Les Langages Graphiques Les langages graphiques sont le langage contacts (LD) et le langage en blocs fonctionnels (FBD).

  • TS CRSA Automatismes

    Page 18

    UNITES DORGANISATION DE PROGRAMMES LES FONCTIONS

    LES BLOCS FONCTIONNELS

  • TS CRSA Automatismes

    Page 19

  • TS CRSA Automatismes

    Page 20

  • TS CRSA Automatismes

    Page 21

    LA

    PROGRAMMATION

    DU GRAFCET

  • TS CRSA Automatismes

    Page 22

    VI.INTRODUCTION

    La programmation ou l'implantation ou l'implmentation du GRACET dans un automate programmable comporte , d'un point de vue du programmeur, plusieurs volets :

    VI.1. Volet de programmation.

    La saisie du GRAFCET, soit au moyen d'une console ddie du constructeur, soit par des moyens informatiques (Atelier de programmation) est fonction du type de langage disponible au niveau de l'automate.

    VI.2. volet machine (API)

    Un automate programmable est une machine synchrone par conception. Ce niveau de synchronisme n'a pas de relle influence sur la programmation. Le principe de scrutation squentielle et cyclique de l'API est important et doit tre pris en compte au moment de l'criture programme (voir chapitre B). Un niveau de synchronisme est mis en place la programmation en fonction du type de GRAFCET implmenter en mmoire. De ce point de vue, on distingue trois classes de GRAFCET pour la programmation. Selon le point de vue ralisation (point de vue PC) le programmeur classe le grafcet selon trois types ou familles en fonction des rgles utilises dans la description.

    grafcet asynchrone : famille ou type 1 Grafcet ne mettant en uvre que les trois premires rgles d'volutions. Il peut utiliser les variables d'activits (Xi) dans les rceptivits mais sans recours la rgle 4.

    grafcet synchrone : famille ou type 2 Grafcet non hirarchis, mettant en uvre toutes les rgles d'volutions, notamment les rgles 4 et 5, sur un ou plusieurs graphes partiels. Il peut utiliser les variables d'activits (Xi) pour de la synchronisation, mais ne comporte pas d'ordres de forage.

    PROGRAMMATION DU GRAFCET

    Langage dAUTOMATISMES

    Langage GRAFCET

    Langage INFORMATIQUE

    Traduction sous forme d quations logiques en langage (CEI 1131) LD, IL, ST, FDB.

    Saisie directe langage SFC (CEI 1131). Langages orients grafcet : - code constructeur - registres pas pas

    Langages volus type C, Pascal, Basic complts dinstructions temps rel (E/S, tempo, compteur ..)

    DEUX METHODES ASYNCHRONE

    Appel/rponse SYNCHRONE

    Activation/dsactivation

    ALGORITHME

  • TS CRSA Automatismes

    Page 23

    grafcet hirarchis : famille ou type 3 Exploite le concept de forage et peut comporter des grafcets partiels synchrones et/ou asynchrones.

    VI.3. Volet stabilit du grafcet

    Cet aspect concerne le comportement attendu du Grafcet vis vis de ces entres / sorties lorsque celui-ci comporte des tapes ou des situations instables.

    VI.4. Volet rapidit de traitement

    Il s'agit d'un besoin de plus en plus important en raison de l'accroissement de la complexit des applications, complexit qui s'exprime en taille programme et donc en temps de scrutation et de rponse. La majorit des API fonctionne actuellement en mode asynchrone vis vis du traitement, l'amlioration de la rapidit ne peut donc tre obtenue qu'au dtriment soit: de la simplicit du programme de la taille du programme. Par trois techniques ou procds de programmation: standard, exploration globale du programme amlior: par exploration minimise au moyen de sauts conditionnels scrutation situationnelle limit la seule situation actuelle.

    VII.LE LANGAGE SFC

    Voir annexe B VII.1. Ltape

    Le drapeau dtape est reprsent par la valeur logique dune variable binaire ***,X o *** est le nom de ltape. ***,X = 1 si ltape correspondante est active ***,X = 0 si ltape correspondante est inactive. Le temps coul, ***,T depuis lactivation de ltape est une donne de type time

    VII.2. La transition A chaque transition est associe une rceptivit rsultat sune expression boolenne.

    VII.3. action Une action, ou plusieurs actions doivent tre associes a une tape. Une action peut tre une variable boolenne ou un ensemble dinstructions dans un langage dfini par la norme. II.3.1 qualificatif daction Un qualificatif daction doit tre associ chaque action.

    qualificatif explication qualificatif explication N ou rien Non mmoris D Temporis

    R Remise zro prioritaire P Impulsion S Positionn (mmoris) Combinaison possible L Limit dans le temps

  • TS CRSA Automatismes

    Page 24

    II.3.2 caractristiques du bloc daction

    VII.4. exemple Commande d'un chariot de transfert. Un chariot motoris transfre des produit du poste A au poste B sur demande de l'oprateur par un bouton poussoir "marche". Le retour du poste B vers A se fait aprs une temporisation d'attente en B de 10mn (temps de dchargement). Grafcet de fonctionnement.

    Poste A Poste B

    Arrire Avant

    Si /poste B : AVANT

    Si /poste A : ARRIERE

    Marche . OM

    Poste B

    10 mn /X3

    Poste A

    1

    2

    3

    4

  • TS CRSA Automatismes

    Page 25

    Dclaration littrale pour le programme CHARIOT

    PROGRAMME_CHARIOT VAR_INPUT Dcy : BOOL ; (*BP de marche*) FcA : BOOL ; (*fin de course poste A*) FcB : BOOL ; (*fin de course poste B*) T/X3 :TIME :=t#10mn (*variable dattente en B, initialise 10mn*) END_VAR VAR_OUPUT KMAV :BOOL ; (*contacteur marche avant*) KMAR :BOOL ; (*contacteur marche arrire*) VOM :BOOL ; (*voyant origine machine*) END_VAR Corps du programme CHARIOT en langage SFC sous forme graphique. (* commande du chariot*) (*commande voyant origine*)

    corps du programme chariot en langage SFC sous forme littrale. (*commande du chariot*) (*commande du voyant OM*) INITIAL_STEP INIT : END STEP VOM := fcA TRANSITION FROM INIT TO AV := dcy & fcA ; END_TRANSITION STEP AV : KMAV(fcB) ; END_STEP TRANSITION FROM AV TO ATT := fcB ; END_TRANSITION STEP ATT : END_STEP TRANSITION FROM ATD TO AR := ATT.T>= t/X12 ; END_TRANSITION STEP AR : KMAR(fcA) ; END_STEP TRANSITION FROM AR TO INIT := fcA ; END_TRANSITION

    VOM ( )

    fcA | |

    AV

    INIT

    ATT

    AR

    Dcy &f cA

    fcB

    ATT.T>=T/X3

    fcA

    KMAV /fcB

    KMAR /fcA

  • TS CRSA Automatismes

    Page 26

    VIII.PRINCIPES GENERAUX

    L'acquisition est effectue de manire systmatique en dbut de traitement sur la quasi totalit des API, mais doit tre programme sur les autres constituants. Certains API permettent des acquisitions en cours de traitement et d'autres possdent la possibilit d'associer des entres une tche de traitement rapide sous interruption. Laffectation des sorties est galement implicite sur la majorit des automates actuels. Toutes les mthodes d'implmentation du GRAFCET devront aborder les 5 points suivants: 1 _ Initialisation :

    Peut tre assure par la dclaration des tapes initiales (langage SFC) ou par programmation dans le respect de la rgle 1 du grafcet. Gnralement excute la mise sous tension.

    2 _ Calcul des conditions dvolutions : Doit permettre de respecter la rgle 2 et ventuellement la rgle 4. Associ au franchissement dune transition, ce calcul peut concerner lensemble des transitions ou seulement celles valides.

    3 _ Calcul des conditions dactivation des tapes : Correspond la rgle 3 du grafcet et si ncessaire la rgle 5

    4 _ Combinatoire gnral : Instruction de blocs fonctionnels standards ( tempo, compteur, )

    5 _ Equations des sorties : Calcul des quations logiques des actions associes aux tapes correspondant aux sorties de la PC

    Le dveloppement des langages grafcet graphique ne supprime pas la ncessit de bien matriser les techniques de programmation du grafcet partir de langages boolens ou de langages volus, car:

    de nombreux API ne possdent pas encore cette forme de langage. le constituant utilis peut tre universel ( micro ou mini ordinateur) ou au contraire

    spcifique pour lequel le dveloppement d'un langage grafcet n'est pas justifi. le besoin, li au niveau du grafcet et/ou la rapidit attendue, dpasse les

    caractristiques de la solution constructeur( Hirarchie). la comprhension fine de l'interprtation du grafcet et notamment des alas pouvant

    survenir en raison de cette interprtation. Le choix d'une mthode de programmation doit tre adapte au niveau de complexit de l'application actuelle, mais aussi future, en cas de modifications du programme. Le choix de la mthode de programmation doit prendre en compte le critre de rapidit, qui peut orienter vers une mthode plus gnrale que celle priori suffisante pour le type de grafcet programmer.

  • TS CRSA Automatismes

    Page 27

    VIII.1. Matrialisation des composantes du Grafcet VIII.1.1. concept dtape

    Une tape peut tre active ou inactive. L'oprateur logique, image de l'tape, doit donc avoir deux tats stables afin de mmoriser l'activation et la dsactivation de l'tape. Le profil de l'oprateur ainsi dfini correspond la fonction MEMOIRE. La variable Xi reprsentant ltape sera travaille selon le principe suivant.

    III.1.2 concept de transition et rceptivit Ce concept est l'lment li aux possibilits d'volution du GRAFCET. Les rgles 2 et 3 prcisent que l'volution ne peut avoir lieu que si : la transition est valid ET la rceptivit est vraie

    III.1.3 gnralisation des concepts La gnralisation de ces deux concepts emmne la mise en uvre, pour chaque tape de grafcet, de la fonction mmoire gnrale de l'automatisme. La mmoire utilise est monostable et marche prioritaire, ce qui est la traduction exacte du concept.

    Equation gnrique :

    I

  • TS CRSA Automatismes

    Page 28

    IX.METHODE SYNCHRONE

    La mthode synchrone ou mthode ACTIVATION / DESACTIVATION est la traduction directe des rgles dvolutions du grafcet. La mthode activation/dsactivation sapplique tous les grafcets (3 types). Elle permet de traiter la simultanite de franchissement, au sens du grafcet5, par le calcul pralable de toutes les conditions dvolutions avant le calcul des activations dtapes. Le principe consiste lassociation dune mmoire chaque tape et au calcul des conditions dactivation et de dsactivation en appliquant les rgles 2 et 3 du modle grafcet.

    ACTIVATION : quation logique des conditions dvolutions dentre de ltape Xi ; mise 1 de la mmoire dtape. DESACTIVATION : quation logique des conditions dvolutions de sortie de ltape Xi ; mise 0 de la mmoire dtape.

    La mthode consiste lvaluation pralable de TOUTES les conditions dvolutions AVANT deffectuer une seule volution, de sorte que la situation reste invariante pendant la phase de calcul des activations dtapes. Cette mthode de programmation comprend deux blocs distincts, obligatoirement programms en suivant : 1 ) le calcul de toutes les conditions dvolution du grafcet 2 ) le calcul des activations dtapes du mme grafcet

    IX.1. Equations dtape Calcul des CE(i)

    5 Ne pas confondre une volution simultane au sens du grafcet et au niveau du traitement. En effet, avec la

    majorit des API, il nest pas possible dassurer une volution simultane de lensemble des transitions franchissables, le traitement tant par essence squentiel.

    i-1

    i

    i+1

    r(i-1)

    r(i)

    r(i+1)

  • TS CRSA Automatismes

    Page 29

    Calcul des X(i)

    IX.2. Programmation des quations Toutes les tapes du grafcet programmer seront traduites partir des quations dfinies ci-dessus. Ces quations nutilisent que des donnes de type boolen, il faut donc utiliser des bits internes pour matrialiser chaque variable d tape Xi. 1 tape = 1 bit Dans la pratique on utilisera les donnes de type WORD (cordon de 16 bits) pour implmenter un grafcet, ceci nous autorise 16 tapes, mais ne reprsente pas un nombre limite dtape pour un grafcet.

    Nous appliquerons le mme principe calcul des conditions dvolutions en utilisant un deuxime mot.

    Adressage Adressage type : variable dtape Xi = donne de type bit ; W mm, xx avec : mm : adresse du mot utilis xx : bit du mot utilis pour ltape Xi Adressage type : condition dvolution CEi = donne de type bit ; W nn, xx avec : nn : adresse du mot utilis xx : bit du mot utilis pour la condition CEi Les adresses des deux mots seront choisies avec un certain rapport de faon faciliter la lecture.

  • TS CRSA Automatismes

    Page 30

    IX.3. initialisation La rgle 1 stipule que tout grafcet doit tre initialis pour pouvoir voluer de faon correcte. Elle dfini la situation initiale comme la ou les tapes actives au dbut du fonctionnement de la partie commande. La matrialisation du grafcet dans lautomate programmable passe par des mots internes (mot registre grafcet) utiliss de manire particulire. Les API de dernire gnration possdent des bits systmes utilisables par le programmeur. Ces bits dfinis par le constructeur sont grs par le systme, dans cette panoplie existe un bit premier tour de cycle qui sera utilis pour linitialisation du grafcet la mise sous tension.

    IV.3.1 modification des quations Etape initiale

    Etapes non initiales

    IV.3.2 travail sur mot (X0 tape initiale)

    MOVE

  • TS CRSA Automatismes

    Page 31

    IX.4. Structure du programme de la mthode Cette mthode ncessite cinq phases. La structure du programme aura la forme ci_dessous

    Exemple de programmation : grafcet GRAF_1

    OM = a ./d

    INITIALISATION Wmm := 1

    CALCUL des CONDITIONS dEVOLUTION CE1 = X0 . m . OM CE2 = X1 . /a CE3 = X2 . /b CE4 = X3 . d . c CE0 = X4 . /d . /c

    CALCUL DACTIVATION DETAPE X0 = CE0 + (X0 . /CE1) X1 = CE1 + (X1 . /CE2) X2 = CE2 + (X2 . /CE3) X3 = CE3 + (X3 . /CE4) X4 = CE4 + (X4 . /CE0)

    COMBINATOIRE GENERAL OM = a . /d

    EQUATIONS DES SORTIES S10 = X1 + X2 S20 = X2 + X4 S30 = X3 . /c

  • TS CRSA Automatismes

    Page 32

    X.METHODE ASYNCHRONE

    La mthode de programmation asynchrone ou APPEL/REPONSE du grafcet est une mthode simple mettre en uvre et qui ne peut sutiliser que pour des grafcets de type 1 (famille 1). La condition denclenchement de la mmoire dtape correspond lAPPEL et le dclenchement la REPONSE.

    APPEL : mise 1 de la mmoire dtape, correspond la condition dvolution de la transitions dentre de ltape. REPONSE : mise 0 de la mmoire tape, correspond lactivation de ltape suivante.

    Equation :

    X.1. programmation de lquation

    Toutes les tapes du grafcet programmer seront traduites partir de lquation dfinie ci-dessus. Cette quation nutilise que des donnes de type boolen, il faut donc utiliser des bits internes pour matrialiser chaque variable d tape Xi. 1 tape = 1 bit Comme dans la mthode prcdente on utilisera les donnes de type WORD (cordon de 16 bits) pour implmenter un grafcet, ceci nous autorise 16 tapes, mais ne reprsente pas un nombre limite dtape pour un grafcet. Adressage type : variable dtape Xi = donne de type bit ; W mm, xx avec : mm : adresse du mot utilis xx : bit du mot utilis pour ltape Xi

    i-1

    i

    i+1

    r(i-1)

    r(i)

    r(i+1)

  • TS CRSA Automatismes

    Page 33

    X.2. initialisation Linitialisation se fait de la mme faon que dans la mthode prcdente V.2.1 modification de lquation

    V.2.2 travail sur mot

    X.3. Structure du programme Cette mthode est lquivalent programm des squenceurs cabls. Elle utilise un minimum de donnes mmoire et ce structure de la faon suivante :

    Exemple de programmation : grafcet GRAF_1

    OM = a ./d

    INITIALISATION Wmm := 1

    CALCUL DACTIVATION DETAPE X0 = (X4 . /d . /c ) + (X0 . /X1) X1 = (X0 . m . OM) + (X1 . /X2) X2 = (X1 ./a) + (X2 . /X3) X3 = (X2 ./b) + (X3 . /X4) X4 = (X3 ./d ./c) + (X4 . /X0)

    COMBINATOIRE GENERAL OM = a . /d

    EQUATIONS DES SORTIES S10 = X1 + X2 S20 = X2 + X4 S30 = X3 . /c

  • TS CRSA Automatismes

    Page 34

    X.4. Comparaison des deux mthodes

    La mthode appel/rponse est une mthode simple implmenter, peu consommatrice de donnes automate mais qui trouve rapidement ses limites.

    XI.PROGRAMMATION BISTABLE

    La majorit des automates programmables actuels possdent des adresses de bits bistables dans la mmoire de donnes. Laccs ces bits saccompagne gnralement par les instructions SET et RESET, ou par lutilisation de blocs fonctionnels (norme 1131-3) du type RS.

    Lutilisation en programmation des bits bistables permet, dans la majorit des automates et pour une grande partie des grafcets, de ne pas avoir calculer les conditions dvolutions si lon prend la prcaution de regrouper les activations et les dsactivations dans le programme. La structure du programme peut alors avoir deux organisations suivant la technique utilise.

  • TS CRSA Automatismes

    Page 35

    XII.IMPLEMENTATION DU GRAFCET GLOBAL

    XII.1. Grafcet structur Le concept de macro reprsentation, utilis dans le cas de la description du Grafcet de Production Normale (GPN), ne prsente pas de problmes particuliers. La programmation est fonction de loutil de dveloppement utilis. 1 cas : Le jeu dinstruction de lautomate inclut la programmation des macros-tapes, il suffit dans ce cas de respecter la syntaxe donne par le constructeur. 2 cas : Le passage au point de vue PC du grafcet oblige interprter les macros-tapes par des grafcets connexes boucls.

    La programmation suivant la mthode Activation-Dsactivation est applicable dans son intgralit Rappel : La programmation synchrone utilise la notion de calcul des conditions dvolution et de calcul dactivation dtape. Ceux-ci se programmes dans deux modules diffrents utilisant des mots diffrents:

    module 1 : calcul des conditions dvolutions utilisant un mot module 2: calcul des activations dtapes utilisant un mot diffrent souvent appel: mot

    REGISTRE grafcet.

  • TS CRSA Automatismes

    Page 36

    XII.2. Grafcet hirarchis La programmation dune structure hirarchise ncessite lapplication dune mtargle de stucturation du programme. Le traitement est structur en mtamodules, chaque mtamodule est associ un seul niveau de grafcet.

    Rgle 1 : Traiter les mtamodules dans lordre de la hirarchie dcroissante Rgle 2 : Pour chaque mtamodule, SI et seulement SI ce niveau nest pas forc : effectuer la traitement correspondant au grafcet excuter les actions de forage de niveau infrieur Rgle 3 : Sauter le traitement des grafcets partiels forcs Rgle 4 : Effectuer les actions opratives de tous les mtamodules en fin de programme

  • TS CRSA Automatismes

    Page 37

    XII.3. Programmation des forages Le forage dun grafcet , programm en mthode synchrone en utilisant des mots registres, se fait par modification directe de la valeur du mot en utilisant le bloc fonctionnel de transfert de valeur MOVE.

    Mot Registre grafcet W10 # 8 Etape X0 bit 0 Etape X1 bit 1 Etape X2 bit 2 Etape X3 bit 3 Etape X4 bit 4 Etape X5 bit 5 Etape X6 bit 6

    Situation vide : Le forage en situation vide [F/G# :{}] correspond au forage zro du mot registre utilis pour le grafcet forc. Exemple

    Situation initiale : Le forage en situation initiale [F/G# : (init)] correspond la mise 1 dans le mot registre utilis par le Grafcet des bits correspondant aux tapes initiales Exemple:

    Situation donne : : Le forage dans une situation donne [F/G# : (Xj)] correspond la mise 1 dans le mot registre utilis par le Grafcet du bit correspondant a l tape Xj

    Exemple: [F/G# : (X3)]

  • TS CRSA Automatismes

    Page 38

    Situation courante : Le figeage du grafcet [F/G# (*)] peut sobtenir de plusieurs faons:

    1) Par blocage de son volution en travaillant au niveau des quations des conditions dvolutions.

    2) Par forage direct et permanent (dure du figeage) du mot registre utilis par le grafcet fig en deux tapes : - enregistrement permanent du registre du grafcet forc dans un registre tampon - criture tout le temps du forage du registre forc par la valeur du tampon.

    3) Par la programmation du saut de traitement du grafcet forc tout le temps du forage.

    XII.4. Module logiciel de dmarrage

    A la mise sous tension, lautomate programmable fait un certain nombre de tests internes avant de commencer son cycle de scrutation. Pour une initialisation contrle de lapplication, il est ncessaire deffectuer des commandes particulires en dbut de programme. Nous appellerons cette phase: le module dinitialisation .

    1 tour de cycle : Le premier tour de cycle est signal par un bit systme.

    Le dverrouillage des sorties se fait par le Grafcet de scurit au moment de lalimentation des sorties.

  • TS CRSA Automatismes

    Page 39

    XII.5. Montage des quations de sorties

    Pour le respect de la rgle de programmation des sorties (une seule quation par sortie), la forme finale de lquation dune sortie aura la structure suivante.

  • TS CRSA Automatismes

    Page 40

    ANNEXE B Norme 61131 LANGAGE GRAPHIQUE SFC

    Lextrait de norme suivant reprsente les lments du diagramme fonctionnel en squence (SFC) destins tre utiliss pour la description dune unit dorganisation de programme en langage Grafcet.

    (a) ETAPES Le tableau ci-dessous illustre la reprsentation dune tape.

  • TS CRSA Automatismes

    Page 41

    TRANSITION

  • TS CRSA Automatismes

    Page 42

  • TS CRSA Automatismes

    Page 43

    ACTIONS