Vous êtes sur la page 1sur 29
Initiation 4 PL7 (Micro/Junior/Pro) 1 ~Généralités page 2 2—Programation page 2 3— Structure ’un programme monotiche page 4 4 Structure d’un programme multitéches page 5 5 —Le langage a relais LD page 6 5-1 Temporisateur 5-2 Compteur~ décompteur 5-3 Opérations et comparaisons 6~ Le langage Grafeet page 11 7 — Quelques bits systéme dutilisation simple page 14 8—Exemple simple page 15 9—Exemple d’application complete page 18 10 —Le langage littéral structuré ST page 20 11 ~Les blocs de fonctions DEB page 23 12 Utilisation de tableaux page 26 13 — Utilisation de Phorodateur page 27 JB - Initiation & PL7 Micro. Initiation 4 PL7 (Micro/Junior/Pro) 1-GENERALITES. Ce logiciel est conforme a la norme IEC 1131-3. 1 permet entre autres, d’écrire des applications pour les automates TSX37 et les automates TSXS7. La version PL7 PRO comporte quelques fonctionnalités supplémentaizes par rapport a PLT Micro et Junior. Dans les trois cas, plusicurs langages de programmation sont ulilisables = Le langage graphique & relais LD (appelé aussi langage @ contacts ou "iadéer"), qui utilise des contacts, des bbobines et des blocs (temporisations, compteurs, etc). LiGriture de caleuls numériques est possible dans des blocs opérations ; = Le langage Booléen (IL) sous forme d'une liste instructions qui permet décrire des traitements logiques et nnutnérigues (ressemble a la programmation d'un micro-contrSleur) ; ~ Le langage litéral structaré (ST) ressemble & un langage d'informatique évolué (Junior/Pr0) ; ~ Legrafeet Le programme réalisé peut avoir une structure monotiche ou multitiche, = Structure monotiiche : C'est la structure par défaut, Elle comporte seulement une tiche maitre exéeutée cycliquement (mode par défaut) ou périodiquement (période fixée par lutilisateur) ; ~ Structure multitaehe : A utiliser quand le processus commandé comporte des priorités. dexécution différentes Elle comprend ta tiche maitre, la téche rapide (facultative) et une ou plusieurs taches Gvénementielles. La tiche rapide, exécutée périodiquement, permet deffectuer des traitements courts avec lune priorité plus élevée que pour la tiche maitre. Lorsquelle est programmée, elle est automatiquement laneée par le systéme au démarrage, Eile peut étre arrét&e et redémarrée par action sur un bit systéme, Les tiches événementiclles ne sont pas liées & une période comme les tiches précédemment décrites, Leur cextcution est décienchée par un appel en provenance de certains modules, Ces taches sont les plus Prioritaires. Le traitement qu'elle doivent assurer est nécessairement court afin de ne pas perturber V'exécution ‘des autres taches. Les tiches du programme sont elles méme subdivistes en plusieurs parties appelées sections, et en sous- programmes, Les sous-programmes peuvent étre appelés & partir de nimporte quelle section de la tiche A laquelle ils apparticnnent ou depuis d'autres sous-programmes de la méme tache, Les instructions de PL7-MICRO comprennent des instructions de base (celles que nous utiliserons en T.P.) et des instructions avancées. 2 -PROGRAMMATION. Lors de Ja programmation, on peut appeler les variables par leur nom (ex : %6Q2.5) mais il est possible e leur donner une dénomination appropriée, composée d'une chaine de 32 caraotéres au maximum (ex : sortie_3). Léditeur de variables permet détablir cette liste dassignation avec un commentaire pour chaque variable, Objets adressables. Dune manitre générale, la lettre X signifie "booléen’, W signifie "mot" et D signifie “double mot’ Bits images des entrées : %IXn.i_ (On peut omettre le X), Le nombre n est fe numéro de emplacement de la carte dentrée dans le « fond de panier » de automate, JB - Initiation & PL7 Micro. 2 ‘est le numéro de la voie dentrée. cexemples %IX1.3 voie numéro 3 de la carte dentréesituée a Templacement 1, 961W1 Le mot de 16 bits image des 16 entrées de la carte située & Vemplacement 1 Bits images des sorties : %QXun.i_ (On peut omettre Ie X). Le nombre n est le numéro de I'emplacement de la carte de sortie dans le « fond de panier » de Pautomate. ‘este numéro de la voie de sorte. cexemples %QX3.5 voie numéro 5 de la carte de sorte située & emplacement 3. ‘Les emplacements dans le bac des TSX37 ou 57 sont "demi-format". Leurs positions sont sehématisées ainsi uc Les 16 entrées disponibles de lautomate TSX37 utilisé en TP seront : %l1.0,., %I1.15 et les 12 sorties seront %4Q2.0,.., %Q2-11 (la carte 16 entrées 12 sorties est au premier emplacement). ts internes : %MUi (de %MO a %M255) Bits systdme : %Si_ (de %S0 4 %S127) Bits images des étapes de Grafeet : Xi (de 4X0 %X127) ‘Mots : Il existe des mots intemes destinés & stocker des valeurs en cours de programme, des mots constants, ‘mémorisant des valeurs numériques ou des données alphanumériques, t des mots systéme. Ces mots sont tmités différemment lors dune reprise secteur, selon Ts configuration de Laatomate, Exemples de mots °%MBL octet interne n°1 °%NW3 mot interne n°3 °%MDS mot interne double n°8 Y%MEI2 mot inteme n°12, en format flottant (32 bits) %KB1 octet constant N°L °%KW3 mot constant n°3 °%SWIS mot systime 0°15 Les mots sont stockés dans une mémoire RAM différente de celle qui contient les bits (différence avez Siemens). Le nombre de mots utilisables varie selon la configuration mémoire choisie pour !automate. La RAM est secourue on cas d’arrét de Malimentation, Attention aux “recouvrements" qui peuvent avoir lieu en cas de programmation maladroite JB - Initiation & PLT Micro. 3 “MBO ‘6MWO : poids faibles de %MDO wo 6MWI : poids forts de %MDO [ MBI eee “Mine 24MWi se subdivise en deus octets appelés uwi + %4MB2i et AMBRE (poids fables et poids : %MB3 forts). ee vans awe ves vawpa a vans [ ‘BT Bits extraits de mots : %MWi:Xj Exemple : %MWO:X12 est le bit n°12 du mot %MWO. Si le mot %MWO a regu un nom alphanumérique sur la liste d'assignation, par exemple "température", le bit %6MWO:X12 sappellera alors: "température:12" (Ne pas confondre cette notation avec celle des tableaux ~ voir page 26), 3 - STRUCTURE D'UN PROGRAMME MONOTACHE. Ici, une seule tiche appelde the maitre (MAST). Le programme comprend un traitement principal (lui méme subsivisé en sections) et des sous-programmes. ‘Chaque section es programmée comme une enti séparée. Elle peut éte érite en langage LD, IL, ST 04 Graftet, Avant de lécrite, i faut préciser : ~ son nom (24 caractéres maximum) ; - le langage dans lequel elle est programmé -latache a laquelle elle appartient; - une condition dexécution optionnelle (%M, %X, %S, %, %Q = un commentaire facultatif (250 caractéres); une protection facultative (en lecture, en lecture/éeritur). ‘Une section est une entité autonome. Les éiquettes de repérage des lignes dinstrction ou des réseaux de langage & reais, sont propres la section (pas de saut de programme possible vers une autre section). ‘Les sections sont exéoutées dans leur ordre de programmation dans la fenéte dt navigateur Une section programmée en Grafcet comprend : = le traitement préliminaire (PRL) éeriten LD, IL ou ST. I est exécuté avant le Grafvet. - le Grafeet (CHART). Dans les pages Graftet, sont programmécs les réceptvités associges aux transitions et les actions associges aux étapes. = le traitement postéieur (POST) écrit en LD, IL ou ST. lest exéeutéaprés Te Grafee. Les sous-programmes SRi (i de 0 4 253) se programment comme des entités séparées. Les appels aux sous-programmes s‘effectucnt dans PRL, dans POST, dans les actions associées aux élapes et méme depuis autres sous-programmes (8 imbrications maximum). Le eycle d'exécution de Vautomate : Leutomate état en "RUN", les opérations suivantes Sexécutent dans Tordre, dune fazon cyetique 1) ‘Traitement inteine (bits systtmes, horodateur, requétes en provenance de la console de programmation). 2) acquisition des entrées, 3) traitement du programme. IB - Initiation & PLT Micro. 4 4) mise & jour des sorties. Ce type de fonctionnement correspond 4 lexécution normale du cycle automate (choix par défaut). Le chion de garde (réglé 4 250 ms par défaut) vérifie que la durée du eyele ne dépasse pas cette limite (sinon, arrét immédiat de Yautomate) It existe aussi un autre mode de fonctionnement dit "périodique” . Les traitements ci- dessus ont alors fieu selon une périodicité choisie par Vuilisateur (1 & 255 ms). Il est possible de connate la durée du temps de cycle automate (programmation avancée), 4 - STRUCTURE D'UN PROGRAMME MULTITACHE (auelques sgénéralités. Cette structure comprend La tiche maite (MAST) pouvant étre cyclique ov périodiqu. Elle est structurée en sections et peut conten une section crite en Grafeet. La tiche rapide (FAST) optionnelle et toujours périodique. Ele est structurée en sections mais ne peut pas contenir une section écrte en Grafeot. Les traitements sur événement EVTi, lancés par le systéme d&s lapparition dun événement sur des entrées définies & Tavance (une seule section doat le nom riest pas modifiable), La tiche rapide (FAST) est prioritaire sur ta tiche maitre et les traitements sur événement son Drioritaires sur la the rapide. Des entrées et sorties devront tre affectées préalablement aux taches maitre et rapide. Des bits systmes permettent de valider ou d'invalider le fonctionnement de ces différentes taches (%S30, %S31, 96838). 3B - Initiation & PLT Micro, 5 5-Le langage a relais LD (ou langage & contacts ou « ladder »). (Ceest Ie langage Ie plus connu car Ie plus ancien. Il se compose d'une suite de "réseaux" exécutés en séquence par V'automate. Le logiciel PL7-...... utilise un éditeur de langage 4 contact, organisé en pages de 7 lignes et 11 eolonnes. On y utilise des contacts (entrées), des bobines (sorties), des temporisateurs, des compteurs, des boites de calculs, etc. Ces éléments graphiques sont reliés entre eux par des connexions horizontales ct verticals. Chaque réseau porte une étiquette qui a la syntaxe suivante : %Lit (i, de 0 4 999). ‘Une étiquette ne peut étre affectée qu’i un seul réseau au sein d'une méme entité de programme. Liordre des Etiquettes est queleonque. Les réseaux sont lus non pas dans Vordre des étiquettes, mais dans V'ordre de leur programmation, et, de gauche & droite, (On appelle "zone de tests" 1a partie gauche du schéma (colonnes 1 4 10) od se trouvent les contacts, et ‘on appelle "zone d'actions" Ia partie droite du schéma (colonne 11) oi se trouvent les bobines. léments de tests: \ contacts simples droit et inverse P N contacts de front. Les deux contacts ci-dessus détectent respectivement les fronts montants (P) et les fronts descendants (N)- Attention, i leur fonctionnement ~ pour toutes les entrées T.O.R., un front est détecté lorsque l'état du bit a changé entre le cyole n-1 et le cycle n, cen cours. Ce front reste détecté pendant tout le cycle en cours. = pour un bit inteme %Mi, Ia détection du front est indépendante du cycle de la tiche. Le front est détecté lorsque l'état de %Mi a changé entre deux lectures. Ce front reste détecté tant que ce bit %Mi n'est pas scruté en zone action, ~ne jamais effectuer de SET ou RESET sur un objet dont on teste le front 4 }V}4s} 40} D> 4 tranobement au ate réseau moot ou ava Les sauls ne peuvent étre offectués quan scin dune méme entité (programme principal, sous programme). Ils provoquent Texécution du réseau dont létiquette est demendée st la non scrutation du programme situé entre la demande de seut et Ie réseau d&signé, saeE bobine "diése" utilisse pour Ia programmation des réceptivités d'un grafcet. appel A un sous programme (CALL) —frer se place A la fin d'un sous programme Le langage & relais utilise aussi des blocs fonctions standards : temporisateurs, compleurs, monostables, blocs opérations (voir ci-dessous). 3B ~Initiation & PLT Micro. 6 A chaque réseau, on peut essocier un commentaire (222 caractéres alphanumériques au maximum) encadré par des astérisques. Les commentaires sont mémorisés dans lautomate, et, ce tte, ils consomment de Js mémoire programme 5-1 Bloc fonction TEMPORISATEUR. Nom: %TMi_ (63 au maximum pour un TSX37,solon base de temps) ‘Mode : Au choix TON, TOF et TP. Base de temps : TB (1 ma par défaut, 1s, 100ms, 10ms, 16 temporisateurs au maximum si la base de temps est 10 ms). ‘Valeur courante: %TMiV mot qui croit de 0 & %TMiP sur écoulement du temporisateur, Ce mot peut étre lu, testé, mais non écrit par programme. Valeur de présélection : %TMi.P mot qui peut étre lu, testé et écrit par programme. It est mis i Ia valeur 9999 par défaut, La durée ou fe retard élaboré est %6TMiP x TB. YIN : réglage possible ow non, parla console, IN : entrée “armement” sur front montant (en TON ou TP) et sur front descendant (en TOF), Q :sortic du temporisateur. Le bit associé est %STMi:Q. 5-1-1 Utilisation en mode "TON" : Lors d'un front montant sur Yeatrée IN, le temporisateur est lancé. Sa valeur courante %STMiV eroit de 0 vers %TMI.P d'une unité, & chaque impulsion de 1a base de temps TB. Le bit de sortie %TMi.Q passe 4 état Togique "1" dés que la valeur courante a atteint ¥6TMiP, puis reste "1" tant que IN reste "1", Quand entrée IN est 4 "0", le temporisateur est arrété, Si le temporiseteur était en cours dévotutios, il est stoppé. %TMi-V prend Ia valeur 0. IN sation en mode "TOF" La valeur courante %IMiV prend la valeur 0 sur un front descendant de entrée TN, méme si ce ‘emporisateur est en cours d'évolution. Le temporisateur est lancé par le front descendant sur Venteée IN. La valeur courante croit vers %TMi.P dune unité & chaque impulsion de 1a base de temps TB. Le bit de sortie ‘ATMEL passe & "1" ds qu'un front montant est détecté sur lentrée IN et retombe a "0" quand la valeur couraate atteint TMP. JB - Initiation & PLT Micro. 7 IN IMP, 6TMi.V SL Utilisation en mode "TP" (monostable): Lors dun front montant sur Tentrée IN, le temporisateur est lancé (ill n'est pas déja en cours dévolution). %TMi.V croit de D vers TMP dlune unité, & chaque impulsion de la base de temps TB. Le bit de sortic %TMi.Q passe "1" ds que le temporisateur est lancé et retombe & "0" quand la valeur courante a atteint ‘%TMEi.P. Quand l'entrée IN et Ia sortie %STMi.Q sont 4 "0", %TMiLV prend la valeur "0". a mul Remarques générales Une reprise "A froid” (%St ‘moditie pas a valeur courante Le bit de sortie %TMI.Q ne doit etre testé qu'une seule fois dans le programme. ") remet la valeur courante & 0. Une reprise "i chaud” (9%81=! 5-2 Bloc fonction compteur-décompteur. Nom : %Ci avee i de 031 pour un TSX 37. Valeur courante : %Ci.V_ mot inerémenté ou décrémenté en fonction des entrées CU ou CD. Il peut étre Iu et testé mais non écrit par programme. Valeur de présélection :%4Ci,P 9999 par défaut. Cz mot peut étre lu, testé et éert par programme, YIN : présélection réglable ou non par console, Rz Si R= "1%, %CLY =. S: Si S="1", CLV = %CLP CU: Inerémente %Ci.V sur froxt montant JB - Initiation & PLY Micro, 8 CD : Décrémente %6Ci.V sur front montant. E.: Sortie "débordement” (empty). Le bit associé %C1.E = "1" lo (Ce bitest mis 4 “1” au moment of Ci.V vaut 9999, Il est remis 1e, en décomptage, %Ci.V passe de 04 9999 sie compteur continue de décompter) D : Présélection alteinte, Le bit associé %CLD ="1" quand %4CiLV = %CLP. F : Sortie "débordement” (ful). Le bit associé %Ci-F = "1" lorsque, en comptage, %Ci.V passe de 9999 & 0 (Ce Dit est mis 4 "I" au moment oli Ci.V vaut 0. Il est remis & "0" si le compteur continue de compte). Remarque : Quand il y a débordement, en comptage ou en décomptage, le bit systéme %S18 passe 8°" Fonctionnement en comptage : A Tapparition d'un front montant sur Tentrée de comptage CU, la valeur ‘courante est incrémentée d'une unité. Lorsque cette valeur est égale & la valeur de présélection %Ci.P, le bit de sortie %CiD (présélection atteinte) associé & la sortie D, passe & Tétat "I". Le bit de sortie %CiLF (débordement ‘comptage) passe & "1" lorsque %Ci.V passe de 9999 & 0. Il est remis "0" si le compteur continue de compte. Fonctionnement en décomptage : A apparition d'un front montant sur fentrée de décomptage CD, la valeur courante est décrémentée d'une unité. Le bit de sortie %Ci.E (débordement décomptage) passe & "I" lorsque %CLV passe de 0 § 9999. Il est remis & "0" si le compteur continue de décompter. ‘Comptage/Décomptage : Pour utiliser simultanément les fonctions de comptage et de décomptage, il faut commander les deux entrées CU et CD. Ces deux entrées sont scrutées successivement, Si elles sont & "I" simullanément, la valeur courante reste inchangée, Remise A zéro : Das ta mise "1" de R, la valeur courante %CLV est forcée & 0. Les sorties %CLE, %CLD ot CLF sont 4 "0". Lientrée R est prioritaire sur les autres. Présélection ; Si Tentrée § (présélcction) est A "I" et lentrée RA "ACIP, et le bit de sortie %CLD prend la valeur Ja valeur courante %CiLV prend la valeur Remarque : En cas de reprise "a froid” (%S0>" En cas de reprise "a chaud" (%8 "), Ci.V=E 1") ou de passage en mode "STOP", pas 1 SCLE="0", ACLD="0", %CLE="0" Vincidence sur %CiLV, 5-3 Blocs OPERATIONS ("OPERATE") et COMPARAISONS ("COMPARE"), ‘Traitements numériques sur des nombres entiors : (en zone opérstions). nL oMW 10M WOFMWD, Si%IL.1 1" alors, %MW10 vaudra %MWO-+ %MW2 (On peut écrire des opérations de la forme : OPS:~(OP14OP2)*OP3-OP4 JB - Initiation & PLT Micro, 9 Instructions de comparaison : (en zone de test) (existe également un Bloc de comparaison quelquefois plus simple d'utilisation). nl 602.3 eMWIO=100 ro. tt Lt Si%611.2 = "1" et si %MW10>100 alors %6Q2.3 vant "I" On peut utiliser> , structions d'affectation : (en zone opérations) ns eMWI00:=100 VEMWIO%MWI2 Si%I1.3 ~ "1" alors %MWLOO sera égal a 100. YOMW]LO sera égal & %MW12 (Les opérations d'affectations sont utilisables pour les mots simples, les mots doubles et les tableaux de bits). Instructions arithmétiques sur les entiers : (cn zone opérations). MI INC %MWI00 Ip 1? t MW 1:=SQRTCAMIWO) Inctémenter %MW100 sur un front montant de %MI. ‘MW! est la racine carrée de %MWO. (On peut utiliser : SQRT, INC, DEC, ABS, +, - , * (multiplication), / (division), et REM (teste de la division de deux opérandes) Dans te cas od un résultat dépasse les limites “32768 ou +32767 pour un mot simple 2147483648 ou 42147483647 pour un mot double le bit systtme %S18 (overflow) est mis & "1". Le résultat est non significatif. La gestion de %$18 se fait par le programme utilisateur, 3B - Initiation & PLT Micro. 10 Instructions logiques : (en zone opérations). M1 1 oMWO:=%MW10 AND 16#FFOO MWI=VKWS OR GMWIT Instructions uilisables : AND (ET bit bid, OR (OU bita bit), KOR (OU EXCLUSIF bit bit), NOT (complément logique bit & bit). 6 - Le langage Grateet. Léditeur de langage Grafvet de PL7-.... dispose de tous les symboles nécessaires : Btapes initials et tapes simples, transitions, choix de séquences ("et" ct "ou”), reavois d'origine et renvois de destination, liisons oriontées, Les objets spécifiques ufilisés parle langage Grafeet “AX: Btape n°, (128 au maximum), *6Xi-T : Temps dactivité de Tétape n°i en dixitmes de seconds (de 0 & 9999 dixiémes de secondes). A la désactivation de l'étape, le contema de Xi.T est figé. A lactivation de Métape, Xi.T est remis a 2ér0 puis incrémenté Le nombre maximal de transitions est 1024, dont, au plus, 24 simultanées, Le Grafeet se programme sur 8 pages (mumérotées de 0& 7). haque page Grafts ost constitu de 14 lignes et 11 colonnes Gui déinisset 154 cellules, Dans chaque cellule, lest posible erie un élément staphique La premidre ligne permet de sas les revois origne, etl demire line, ls eavois de destination Les lignes paies (2412) pemettent dcr es apes eles renvois de destination. Las lignes impairs (813) permettent d'écrire les transitions et les renvois d'origine. Les és peuvent Gre mumérotées dant un ordre quelcongue, Une page peut comtnirplsieus graphes, Commentaires : Dans une page Grafeet, il est possible de saisir un commentaire dans n‘importe quelle cellule, Le texte du commentaire est encadré par deux astérisques et sa taille maximale est de 64 caraotlres. Ce commentaire consomme de la mémoire automate Les actions associées aux étapes du Grafeet. A chaque étape peuvent étre associes des actions programmables en langage a relais (également en IL ct en ST). Ces actions ne sont exécutées que si létape & laquelle elles sont associée, est active. PLT a la particularté do distinguer trois types dactions : ~ Les actions 4 Tactivation ou actions exécutées quand I'tape associte passe de l'état inactif& état actif = Les actions & la désactivation ou actions exécutées quand l'étape associe passe de 'éat actif tat inactif. Les actions continues ou actions exécutées quand I'étape associée est active. Les actions @ activation ou a Ia désactivation sont impulsionnelles et exéeutées sur un seul tour de cycle automate. Elles sont faites par exemple, pour appeler un sous programme ou pour inerémenter un compteur, conditionneliement ou non, 4B - Initiation & PLT Micro. u ‘Une action continue est mémorisée, Les variables logiques qui ont été positionnées dans un certain état ‘par cette action, le restent quand l'étape correspondance est désactivse. I! convient done de repositionnet ces variables dans [état convenable, soit au moment de la d8sactivation de Ia présente étape, soit au moment de activation de létape suivante. I est possible par exemple, de faire un "SET" dune variable logique & activation dune étape, ct un "RESET" de la variable & la désactivation de cette méme étape. Ceci peut étre pratique. Attention, en cas de 10 ma Wi Liaction 4 ne dure qu'une seconde : %X4 COMPARE 024 KATO m uw tion & PL7 Micro. 16 Commande de a réceptivité temporisée en amont de X4 XI M1 Ts} LSS M1 42 HIN Q { 0x8. XO M1 re} LR activation de XI va provoquer la mise 4 "1" de %MI. 24M va commander le temporisation %TMI (durée 60 secondes) méme si X1 est désactivée. TMI va commander %M2 qui va servir a la programmation de la réceptivité précédant X4, MI sera remis 4 "0" par XO, Réceptivités : rites sront progaammées dans Tentité CHART. entre XO et XI 1.0 r. entre X1 et X2 611.4 [+ } entre X2 et X3 pr.2 re entre X3 et X0 pall.3 a t entre X2 et X4 pom. r, entre X4 et X0 vans fae JB Initiation & PLT Micro. a 9- Exemple d'application. (On réatise une guirlande avec cing lampes LO, L1, 1.2, L3, LA. La séquence de fonctionnement est : 0 L112 313 914-9 13 9 12 911 0 > L112 4 13 > LA ete, Chagne lampe doit rester allumée pendant une seconde. Un intervaile dextinction de une demi-seconde existe entre chaque lampe. Ces cing lampes seront commandées par les cing sorties Q2.0 ... Q2.4. L'entrée 11.0 sera la commande arrét/ marche générale, I existe de nombreuses fagon de traiter ce petit probléme. Pour cet exemple, nous allons utiliser un graftet a deux stapes qui va servir de "séquenceur", L'étape XO sera active pendant une demi-seconde (extinction) et Péape XI sera active pendant une seconde (allumage). Ce grafeet sera initialisé au moment de la mise en "RUN" de lautomate. PRL: x13 sn im r 1h L eM (%6S13 est "1" pendant le premier cycle automate aprés mise en "RUN") CHART: (11.0 est la commande marche/anre) “p 4saprés X0et 11.0 el saprés X1 POST : On utilise un comptourldécompteur %CI. cL ys13 7 IR: remise & zéro da comptour. { R (CU : “inerémentation”, CD :"dgerémentation” XI eM %CLY T cu Comptage si %MI ="1" ct 96X1="1" ‘Décomptage si %lM1 = "0" et %X1= "1" oD eM (Suite du traitement postérieur page suivante) 18 ‘On utilise cing blocs "COMPARE" : ext 00.0 %CLV=L { } sexo vont ms XL YQ wc CI “XL %Q22 veces C3 "XL %Q2.3 %CLV=A TF vex eq04 qe ry CLves Cy vex Réceptivité entre XO et X1 = %6xOTD=5 ee eee Réceplivité entre XI et XO: your Py} — 3B - Initiation & PL? Micro, 19 10 - Le langage littéral strueturé (ST). Cest un langage évolué de type algorithmique plutét adapté a la programmation de fonctions arithmésiques compliquées, & la manipulation de tableaux, a la gestion de messages, etc. .. Il est ongenisé en "phrases" cles mémes compostes dinstructions et de commentaires (256 caractéres au maximum). Ces "phrases" peuvent comporter chacune, une étiquette (1000 étiquettes au maximum), Liediteur permet derive ces "phrases" les unes & la suite des autres avec les possibilités de modifications, ‘insertions, de copiage et de collage. Le langage litéral structuré est trés tiche en instructions et en structures de contrdle. On peut citer quelques exemples de base Instructions sur bit application. Exemple : %Q2.0 == %MO (le bit %(2.0 prend la valeur de %MO) OR, AND, XOR, NOT, SET, RESET. IRE front montant, Exemple : %Q2.0:-RE %MO (le bit %Q2.0 devient "1" au front montant de %MO0. FFE front descendant. ‘Comparaisons numériques sur mots, doubles mots et flottants : <> emt e I existe également des instructions pour traiter les tableaux de bits, de mots, de doubles mots, Yarithmstique entiére sur les mots et les douibles mots, Harithmétique sur les flottants, les opérations logiques sur les mots et les doubles mots, les commandes dexécution de programme et dappels aux sous-programmes, Vhorodateur, te Il est possible deffectuer des conversions multiples (binaire, BCD, Gray), et des manipulations de chanes de caractéres. Structures de contrite : IF condition THEN actions; END IF condition! THEN actionl; ELSIF condition? THEN action2; ELSE action3; END IF; Le nombre de ELSIF es illimité, mais une seule partie ELSE au maximum, WHILE condition DO action; END_WHILE; Plusieurs WHILE peuvent étre imbriqués REPEAT action; UNTIL condition END_REPEAT; JB - Initiation & PLT Micro. 20 Plusieurs REPEAT peuvent étre imbriqués, FOR indice := valeur initiale TO valeur finale BO action; END_FOR; Plusieurs FOR peuvent étre imbriqués. EXIT permet dlanéter lexécution dune boucle WHILE, REPEAT ou FOR et de continuer sur instruction suivant le mot clef de fin de boucle. EXEMPLE : On traduit le grafcet de exemple simple (page 16) en langage littéalstructuré (On renommera les variables pour plus declan A110, $61.2, 9113, KN. sappelleront; Entée0, Entel ete %4Q2.0, 9502.1, %Q2.2, 423 sappellront : Sortie, Sori, et. AM, eM, M2, 4M, 6M Sappellerot: Etaped, Etael, te. "TMI, 96TM2, %6TMB slappelleront : Tempol, Tempo2, Tempo3. ‘a b Action 1 : Q2.1 (clignotant) pio Action 2: Q2.2 Action 3 : Q2.3 (Ls aprés X3) 1 | Petoat ‘Action +; Q2.4 (durée 1s) + > | [aeton2 2 60vX1 3 | [Aston 1 | Psion + 3 + 4 JB - Initistion & PLT Micro. 2 (initialisation du grafeet par %S13 et par Ventrée n°5*) IF %$13 OR Entrées THEN SET Etape0; RESET Etapel; RESET Elspe?; RESET Etape3; RESET Etaped; END _IF; (de Tetat 0 a Petat 1°) IF Fiaped AND EntrécO THEN SET Btapel; RESET Etaped; ENDIF; (rae Vétat 1 a état 2°) IF Etapel AND Entrécl THEN SET Etape2; RESET Etapel; ENDIF; (Ce Tétat 2 A Métat 3 ou de Tétat 2 & Nétat 4*) IF Etape2 AND Entrée? AND NOT Tempol.Q THEN SET Etape3; RESET Etape?; ELSIF Etepe? AND Tempol.Q AND NOT Entrée? THEN SET Etape4; RESET Etape2; END I (de Vétat 3 4 retat 0%) IF Btape3 AND Entréc3 THEN SET Etaped; RESET Ftape3; END (de état 4 état 0%) IF Etapot AND Entrées THEN SECT Etape0; RESET Etapet; ENDIF, (‘temporisation n°1 de 60 secondes*) IF RE Etapel THEN START Tempol; ELSIF Btape3 OR Etape0 THEN DOWN Tempol; ENDIF; (action 14) Sortiel = Elapel AND %S6; (action 2*) Sortie? (Faction 3°) IW Etape3 THEN START Tempo2; ELSIF NOT Btape3 THEN DOWN Tempo2; END_IF; Sorted ‘empo2.Q AND Etape3; (action 4*) Ik Etape4 THEN START Tempo3; ELSIF NOT Eiaped THEN DOWN Tempo3; ENDIF; Sortied = NOT Tempo3,Q AND Etaped; JB = Init (fin du programme) REMARQUE : Quand on utilise le grafcet, on peut écrire les réceptivités en langage littéral steucturé, Exemple 110 KH J vanwioPresel) THEN SET Plein, ELSE RESET Plein; ENDIF, Application exemple : On va créer deux instances du bloc ci-dessus. Lune s"appelle « compte_vis » et autre, « compte_ecrou », (@6MD10 et 96MDI2 sont placés par un double droit devant Pentrée correspondante), JB = Initiation & PLT Micro. 4 Compte_vis 11.0 %MDI0. §=——4 Cpt_pieces EBOOL Raz DWORD Lied Presel a EBOOL Compte %Q3.0 a DWORD Total lL. %MD12 Compte_ecrou Cpt_pieces EBOOL Raz DWORD BOOL Peeiel Plein EBOOL Compte %Q3.1 . DWORD Total IB - Initiation & PLT Micro. 25 12 - Utilisation de tableaw PL7 permet d'effectuer des opérations sur des tableaux de mots et de doubles mots Exemples ‘%KWL0:5 est un tableau de 5 mots constants de 16 bits, commencant & %KW10 (WKW10, %KW11, %KW12, WKW13, %KW14), %MW100:20 tableau de 20 mots de 16 bits commengant & %MW100. Régles Les opérations entre tableaux ne s'effectuent que sur des tableaux contenant des objets de méme type. Si, dans une opération, les tableaux sont de alles différentes, le tableau résultat aura une ‘alle comrespondant au plus petit des deux tableaux opérandes. Une opération sur deux tableaux s‘effectue sur chaque élément de méme rang des deux tableaux et le résultat est transféré dans Iélément de méme rang du tableau résuliat. Il faudra étre prudent au cours de la programmation, pour ne pas effectuer de recouvrements involontaires de tableaux (panne difficile a détecter). Test Si, lors d'une opération entre éléments, le bit sysiéme %518 est positionné a « 1 », cela signifie que opération en cours est erronée, mais Popération pour les éléments suivants est effectuée correctement. Les exomples Slémentaires suivants sont écrits en langage & relais (LD) et en langage littéral stracturé (LS). ‘%MWO :5 = 100 %MWO 5 ~ 100; (Les 5 mots %MWO a %MW4 prendront la valeur 100) 3.2 | YMWO:S = %~MWIT If (Si%413.2 vaut « 1 », les S mots %MWO a 96MW4 prendront la valeur contenue dans %MW11), “33 TF RE 94133 THEN 1 | vawo.s = saxwos eM WO 35 = %KWO'S; ie | ENDIF; (Lors du front montant de %I3.3, le tableau %K WO 5 va se recopier dans le tableau %SMWO :5) JB - Initiation & PLT Micro. 26 Instructions arithmétiques sur les tableaux (addition : », soustraction =, multiplication : *, division :/) veut : IF RE %MI THEN %MW20:10+100 ‘6M WO :10 := %MW20:10+100 END_IF; 13.3 IF %13.3 THEN Pspiaiis= samen aaaains il YeMWO :5 2= %*MW20:54%KMI0:5 KH ENDIF; Instructions logiques & deux opérandes (et, ou et ou exclusif, bit 4 bit: AND, OR, XOR) et un seul opérande (complément logique bit a bit : NOT). Texiste de nombeeuses instructions de programmation avancée, assocides aux tableaux (somme des ements, comparaison élément par élément, recherche d’ un élément dans un tableau, recherche de mini et maxi, nombre d'oceurrences d'une valeur, décalages circulaires droite et gauche, fonctions de ti, ec.) 13 - Utilisation simple de Phorodateur (it existe d’aures modes d’explitation de Phorodateur, tilsant es mots 96SW49 4 %SW59 ct%SD18). ‘Les paramétres dates, heures et dures, tlsent des formals spéciawx définis parla norme TECIIS31-3 Durée (format TIME). Les durées sont exprimées en diximes de secondes, par exemple : 3674.3 pour 1 heure, 1 minute, 14 seconds et 3 dixitmes de seconde. ‘La valeur est code sur 32 bits (un mot double) entre 0 et 4294967295 (plus de 4971 jours). Date (format DATE). Ce format code l'année, le mois et le jour sous Ta forme AAAA-MM-II (exemple : 2004-06-25). Ceute valeur est codge sur 32 bits (un double mot) en tois champs 31 1s 7 0 Année Mois Jour L’année utilise 4 digits codés en BCD (16 bits), le mois ct je jour, 2 digits codés en BCD de 1990-01-01 2099-12-31. Exemple, on hexadecimal 20h 4h 06h 25h. Heure du jour (format TOD : « TIME_OF_DAY»). Ce format code les heures minutes et secondes sous la forme HH :MM :SS (exemple : 23 :12 34). Cette valeur est codée en BCD sur 32 bits (un double mot) en trois champs 31 23 15 7 0 heures | minutes | secondes | inutilisé JB - Initiation & PLT Micro. 2 Date et heure (format DT : « DATE_AND_TIME »). Ce format code année, le mois, le jour, l'heure, les minutes et les secondes, sous la forme : AAAA- MM-J-HH (MM 88 (exer smple : 2004-06-25-23 :12 :34). Cette valeur est codée en BCD sur 64 bits (an tableau de quatre mots de 16 bits). 63 47 39 31 23 15 1 Année Mois Jour | heures sxintes | seconde | inutilisé Test : Le bit systéme %SI7 est positionné & « 1 » dans les cas suivants = Résultat @une opération hors de T'intervalle de valeurs, autorisé ; | Un paramétre d'entrée n'est pas cobérent avec le format souhaité (DATE, DT ou TOD) ; © Opération sur le format TOD entrainant un changement de jour 5 = Conflit d’accés a I"horodateu. Lecture de Phorodateur, (en langage & relais et en langage littéral structure) M6 i ‘OPERATE La fonetion RRTC va éerite Mise a jour de Phorodateur. RRTC(%MW2 4) au format DT dans le tableau %MIW2 4. JF %M6 THEN RRTC(%MW?2 :4) 5 ENDIF; (On veut écrire 24 novembre 2004, 17 heures 32 minutes 43 secondes, ati moment du front montant de %M7 MT P OPERATE, L MEW? :=164300 OPERATE, AMWS :-1641732 ‘OPERATE, oMW4 = 16#1124 OPERATE, MWS =16#2004 OPERATE, 3B - Initiation & PLT Micro, WRTC(%*MW? 4) IF RE %M7 THEN ‘%oMW2:=16843005 MW: 16H1732;, oMWA=16H1124; 6M WS:=16H2004; WRTCOMW2:4): END_E; Lecture du jour de Ja semaine, Ceite fonction place dans un mot de 16 bits, le jour de la semaine codé de 1 47 (I : lundi 57 = dimanche) 7 Sa IF %M7 THEN ‘OPERATE 94MWS:-DAY_OF_WEEKO; MWS :=-DAY_OF_WEEKQ END_IF; Fonetion « programmateur horaire >. Cette fonction permet de commander des actions & des horaires et dates, prédefinies ou calculées. Bile positionne 4 «1» le parametre logique de sortie, si la date et Vheure fournies par Uhorioge automate aa moment de Pappel de la fonction, apparticnnent la période programmée dans les paramétres entrée SCHEDULE (DDEB, DFIN, SEM, HDEB, HFIN, SORTIE) DDEN : date de début ; DEIN : date de fin; SEM: semaine ; HDEB : heure de début; HFIN : heure de fin; SORTIE : paramétre logique de sortie («0 » ou « 1»). DDEB et DFIN sont codés en BCD entre 01-01 et 12-31 (un mot de 16 bits) SEM utilise fes 7 bits de poids faible dun mot de 16 bits Bit 6: lund Bit 5: mardi Bit 4 : mereredt Bit3 :jeudi Bit? : vendredi Bit 1: samedi Bit 0: dimanche HDEB et HIN, double mot codé en BCD (ype TOD), entre 00 :00 :00 et 23 :59 59 xemple en LD: OPERATE ‘SCHEDULE (4X WO,%KW 1,%6KW2,%0KD3,%KDS,%M0) [ ‘Auatte exemple en LS : deux plages horaires non continues. SCHEDULE ( 16#0501,16#103 1,2#0000000001 111 100,16#08300000, 6#12000000,%MO0);, ‘SCHEDULE. ( 16#0501, 16#103 1,2#000000000 i111 100,16#1 4000000, 16#18000000,2M1);, 9400.0 = MO OR MI; ter SCHEDULE : date de début ler mai ; date de fin : 31 octobre ;lundi & vendredi ; de 8h30 8 12). 2° SCHEDULE : du 1" mai au 31 octobre ;lundi a vendredi ; de 142 18h, 9690.0 vauadra « 1 » au cours de ces deux plages horaires. ‘La plage definie par DDEB et DFIN peut étre «& cheval » sur deux années conséeutives ‘a plage définie par HDEB ct HFIN peut étre « a cheval » sur deux jours conséeutifs. Le 29 février sera ignoré lors des années non bissextiles. Sila programmation de ces plages est erronée, %6S17 sera mis « I». Remarque : Le traitement de la fonction SCHEDULE allonge notablement le temps de cycle. St la précision n'est pas névessaire, on pourra cadancerI'appe cette fonction, avee %S6 (Is) ou 4S7 (Lenn). D’ autres fonctions avancées existent = Tire fa date du demier arrét de automate (avee un code d'erreut) = ajouter ou retirer une durée 4 une date ou a une heure du jour 5 = calouler P'écart entre deux dates ou entre deux horaires 5 ~ — comvertir des dates en chines de caractéres 5 - ete JB - Initiation a PLT Micro. 29

Vous aimerez peut-être aussi