You are on page 1of 20
CQFS 47 Les variables globales d’un API Les variables globales d’un API sont normalisées par la CEI 61131 (Cf. Figure 76). Cette norme distingue les variables images des entrées, celles des sorties et enfin, les bits et mots internes. Le nombre de bits d’une variable peut étre 1, 8, 16 ou 32. Les types des variables doivent étre déclarés en concordance avec les calculs a effectuer. L’appellation des variables selon la CEI 61131 1: Emplacement d’entrée B: Taille d’un seul octet (BYTE 8 bits) Q : Emplacement de sortie W:: Taille d’un mot (WORD 16 bits) M: Emplacement de mémoire D: Taille d'un double mot (DOUBLE 32 bits) X: Taille d’un seul bit (BOOL) L: Taille dun mot long (QUAD 64 bits) Figure 76 Appellation normalisée des variables d'un APL Le nombre de bits d’une variable Le bit, ou élément binaire, est une variable de type BOOL ne pouvant prendre que 2 valeurs. Un bit est l'image de la présence ou de I’absence de tension en sortie d’un élément mémoire. Un bit peut étre I’état haut (Q 0) ou bien a état bas (2 1). L’octet, appelé BYTE, est un mot de 8 bits. Un octet peut prendre 256 valeurs de 0 a 255, ou de B#00 & B#FF ou, en binaire, de 0000 0000 & 1111 1111. Le mot simple, appelé WORD, est un mot de 16 bits. Il est formé de deux octets (BYTES). Un mot WORD peut prendre les valeurs décimales de 0 & 65535, ou hexadécimales de W#16#0000 @ W#I6#FFFF. Le mot double, appelé DWORD, est un mot de 32 bits. Un DWORD est formé de 4 BYTES ou de 2 mots WORD. Un mot DWORD peut prendre les valeurs décimales de 0 & 4294967295 ou de DW#16#00000000 a DW#16#FFFEFFEE. La déclaration du type des variables CHAR Un octet (8 bits) peut étre déclaré en type BYTE ou en caractére (. Déclaré en CHAR, c'est un caractére en code ASCII, Dans ce code, ‘A’ correspond a la valeur 65 et “0 A la valeur 48, Certains sont des caractéres de contrdle. Un mot de 16 bits peut étre déclaré en type WORD ou en type entier (INT). Déclaré en INT, c’est un entier qui peut prendre les valeurs entitres de ~32768 A +32767. Les fonctions de calculs arithmétiques demande des variables de type entier (INT). Un mot de 32 bits peut étre déclaré en type DWORD ou en type entier (DINT). Déclaré en DINT, c’est un entier qui peut prendre les valeurs entitres de -2/47483648 a +2147483647 (+231-1). Un mot de 32 bits peut étre aussi déclaré en type REAL, pour le stockage de valeurs réelles et sur virgule flottante. Les identificateurs Les identificateurs de constantes, en hexadécimal sont, pour un octet, pour un mot simple (WORD: W#/6#), pour un mot double (DWORD: DW#I6#). Un caractére (CHAR) esi placé entre cotes. Un entier simple (INT) et un entier long (DINT) sont exprimés en décimal, un réel (REAL) en yirgule flottante. BYTE [WORD DWORD CHAR [INT |DINT REAL B#F3 | W#I6#F2AB | DW#16#F2A012_|*b” 978. 1#234567 _}234568.0 CQFS 48 L’adressage des variables globales Lradressage des variables globales correspond a leur organisation en mémoire de API. Certains constructeurs distinguent plusieurs zones mémoire pour les bits et pour les mots. Les API SIMATIC n’utilisent qu'une seule zone mémoire pour les bits et les mots MW et MD. D’autres variables globales peuvent étre définies dans des blocs de données ¢globaux). Les variables globales M Les bits et les mots en mémoire des API SIMATIC sont organisés selon I'adresse de ses octets (BYTES) selon le schéma (Cf. Figure 77). Le mot MWI0 est formé des deux cctets MB10 et MB11, l'octet MB10 est celui de poids fort et MBI1, de poids faible. _ —— el Figure 77 Organisation en des mémentos M Un bit est adressé par son numéro d’octet et son poids dans l’octet, Par exemple M11.2 est le bit de poids 2 de l’octet MB11 et le bit de poids 2 du mot MW10. Le schéma, (Cf. Figure 77), montre qu’il faut veiller 4 ne pas faire chevaucher les mots, en effet le mot MWIO et le mot MWL1 ont I’octet MB11 en commun, le fait de modifier MWI1O0 entraine la modification de MW11. Pour éviter tout conflit, on sépare les adresses des bits et celles des mots utilisées. Pour les bits internes, les bits de 10.0 & M99.7 peuvent étre utilisés. Par exemple, pour les mots simples, les adresses Paires & partir de MW100 a MW198 (49 mots de 16 bits), pour les mots doubles, les adresses multiples de 4 a partir de MD200. Les variables de blocs de données La méme structure est adoptée pour les variables des blocs de données, Par exemple, si le bloc de données DB1O contient 10 octets, ses octets se notent de DB10.DBBO & DBI0.DBB9. Cette plage d’octets est aussi les 5 mots de 16 bits DB10.DBWO & DB10.DBW8. Le bit m de octet n du DB10 est noté : DB10.DBXn.m. Le croquis (Cf. Figure 78), représente l'adressage des bits, des quatre premiers octets du bloc dedonnéesDB10. EF JRSgesgsSSeg5235 Tr Nearyaans RRRRRERE Re Sdadadaiadsess RRR ERESSIRERERES RE RRR RRR ERR ESS RS g 8 s S§SSSS2 SARSRERER ESS SSSERSE SEES S §S§ SESSS SISSSSISSS|Sessssssssssese os gaeg Seaaeg Bseessca S s RRS RRES S/S A RAS SAAS SS RSSSASSS SESS DBBI . DBB2 \° 2 | DBDO Figure 78 Organisation en mémoire des mémentos en DB CQFS 49 L’adressage des entrées et sorties Liadressage des entrées et des sotties est souvent en fonction de I’emplacement du module dans le rack de I'API. Les API 5M300 autorisent le choix de adresse pour chaque carte quelque soit leur emplacement. L’adressage selon Il’emplacement du module dans le rack L’adressage peut étre fait en fonction de la position (ou slot) du module d’entrées ou de sorties dans Je rack de I'API. Par exemple si un module d’entrées est sur le slot 2, Tradresse des entrées qui le compose aura l'adresse 2, C'est-d-dire l'entrée 2.4 est la 5* entrée de la carte placée sur le slot 2. Le choix de l’adresse d’entrée ou de sortie (E/S) Les adresses des E/S sont définies dans la configuration du matériel. Les variables des entrées ct des sorties sont organisées de la méme facon que les mots internes. Le tableau (Cf. Figure 79) montre les cartes installées dans un API dotées de leurs adresses, [Eroplacenerk [i Wocie Réiience Fi_ | Adiessaliet [dese dentée [Adhtto de sone paren [sES7 aOP1EROUOAAD B ‘cru TOOL |6eS7 315-26 G10-0ABD_ W232 aT MP i a= we [ eT [ame —— a DieDeza [pes SeI-WBHOROAAD lt i a DADE IsES? a2iBHOO OAD Bs coer DOLE el ACI 2/250 _[6ES7 922A HHOT AD om eo ‘DO Geel ACTAW 72309 _[SES7SO2:1HHOT-ORAD. 23 Figure 79 Déclaration du matériel de VAPI Adressage des entrées L’organisation en mémoire des entrées (Cf. Figure 80) est identique celle des mementos (Cf. CQFS 48). Les bits images des entrées de £10.0 & E10.7 sont ceux de Toctet EB10. Le mot EWIO est constitué des deux octets EB10 et EBI1, le mot double EDO, des deux mots simples EW10 et EWI1. Adressage des sorties Lradressage des sorties est identique & celui utilisé pour les entrées, dans ce cas les octets n de sorties sont notés ABn, les mots simples AWn et les doubles ADn. Cet adressage donne la possibilité de lire ou bien de forcer, en une seule instruction, des 8, 16 ou 32 entrées ou sorties d’une méme carte. CQFS 50 Les variables réservées A la date et A Vheure Le type DATE Le type DATE est un mot de 16 bits constitué de l'année, du mois et du jour. Les limites mini et maxi des variables de type DATE sont : D#1990-01-01 et D#2168-12-31 Le type TIME_OF-DAY Le type TIME_OF-DAY est un mot de 32 bits qui regoit une heure du jour. Le format est: TOD #Heure: linutes:Secondes. Les bornes mini et maxi sont: TOD#00:00:00.000 et TOD#2 999 (une journée). Le type DATE_AND_TIME Le type DATE_AND_TIME est un mot de 32 bits pour définir une 6: et Je numéro du jour de la semaine (0: Dimanche, Un mot defini en |} DT est composé des huit octets de l'année, du mois, du jour et de Pheure. Le croquis (Cf. Figure 81) montre la signification de chaque octet. Tous les éléments sont définis en BCD (Binaire Coaé Décimal) wee Figure 81 Les octets d'une DATE_AND_TIME L'acquisition de la date courante La fonetion SFC READ_CLK donne sur SFC READ CLK’ la sortie CDT, une variable, définie en RET_VAL _amv100 DATE_AND_TIME, image de la date et de Vheure courante. La variable de retour COT _#ateCour #RET_VAL en type INT contient, un numéro Figure G2 Date couronté erreur éventuel. Le réseau (Cf. Figure 82) stocke la date courante dans une variable #DateCour en DT. Modification de la date courante La fonction FC1 AD. PT_TM donne la possibilité @additionner une yariable en type DATE_AND_TIME avec une autre en TIME, le résultat obtenu est un DATE_AND_TIME. - La fonction FC8, nommée PT_TOD, extrait Yheure d'une variable de type DATE_AND_TIME en une autre de type TIME_OF_DAY. La fonction FC6 DT_DATE extrait la date dans une variable en type DATE. CQFS 51 Les types complexes Les types complexes correspondent & des variables de longueur supérieure 2 32 bits. Le type STRING, est celui les chaines de caractéres. Il est possible de déclarer un tableau de n mots par le type ARRAY. Le type STRUCT est une famille constituée de plusieurs variables. Les pointeurs sont de type ANY. Le type STRING Le type STRING[n] correspond & une chaine de n caractéres au maximum. Si aucune longueur n'est précisée, la valeur par défaut est 254 caractéres. Une chaine de caractéres comprend n+2 octets. L’octet 1 comporte la longueur maximum de la chaine, Voctet 2 comporte le nombre réel de caractéres, les octets suivants comportent les valeurs ASCII des caractéres de la chaine. La chaine de caractéres doit étre écrite entre cotes, par exemple : Chainel := "Température de consigne’. Le type ARRAY [...] Le type ARRAY déclare un tableau de n variables. Par exemple, la variable nommée #Bit par pet Tipe ARRAY{0..20] OF BOOL, est la réservation en 0.0 STRUCT mémoire de 21 variables BOOL, de Bit[0] @ +0.0 | CarRecus | ARRAY{(0..100] | Bit{20). La déclaration (Cf. Figure 83) est celle [___+1.0 CHAR as de deux tableaux en structure, le premier, de 101 #1020 [Temperature [ ARRAVIO.600] i ie BOO oa a variables de type CHAR, le deuxitme de 501 | —- oa END-STA eis See Figure 83 Déclaration de tableaux La premitre colonne indique ‘adresse dans le tableau des variables. Dans cet exemple, les variables CarRecus fi] sont stockées de Voctet 0 & loctet 101 et les variables Tempeérature[i] de l'octet 102 a octet 1104. Une variable de type INT nécessite deux octets. (Voir CFS 47). Le type STRUCT Le type STRUCT organise des variables en familles. Ce type est complexe et peut @tre imbriqué jusqu’a un maximum de 8 niveaux. Les éléments d'une structure peuvent @tre de types de données quelconques. Le type de données STRUCT doit comporter au moins deux composantes situées entre STRUCT et END_STRUCT. Il est possible de déclarer une structure dans 'interface d'un bloc FC ou FB, ou dans celui d'un bloc de données. Le nom de différentes variables d'une structure dans le programme utilisateur, est le nom de la structure suivi de la variable interne 2 cette structure. Par exemple : nom- structure.nom-variable. Le type ANY Une variable de type ANY est un pointeur, que I’on peut assimiler & un curseur se déplacant dans un tableau de variables. La notation d'un type ANY se fait comme suit : P#M50.0 BYTE 10, qui définit une plage de données de MBS0 & MB59. CQFS 52 La configuration du matériel La configuration du matériel est le travail de déclaration des différentes cartes de T'API. Elle comprend Ia liste des références des cartes dotées de leurs adresses. La déclaration des différents matériels connectés au réseaux Lors de la création d’une nouvelle application, le seul élément, défini au départ, est le réscau MPI. Le logiciel NetPro configure les matériels et les réseaux, puis la connexion A ces réseaux en précisant leur adresse sur ce réseau. T Emplacement | Module Référence | Adresse | Adresse | Adresse ised eee | MPI entrée _| Sortie _| ae PS 307 5A GES7 315-2EG10-0ABO z [2 | cPU 315-2 PNIDP_| 6ES7 315 2EG10 0ABO | 2 x1 MPVDP 2 2047 =] 2 PN 10 a 3 aes [4 __| DitexDC2av GES? 321 1BHO1 OAAO sf Bea DO16xDC24V/0.5A | GES7 S22 1BHO1 OAAO 4.5 Ca ‘AlA/A0.2 __| 6ES7 334 OKE00 0ABO 288...205 | 288..291 7 CP 840 RS2326 | 6ES7 340 1AHOO OAEO 304.318 | 304..319 Figure 84 Configuration du matériel Dans I'exemple (Cf. Figure 84), la configuration, pour cette application, est la suivante : Une carte d'alimentation, qui fournit un courant de 5 A, de référence PS307 5A. Elle doit fournir un courant suffisant pour alimenter toutes les cartes présentes dans I’ API. Une Unité Centrale (UC) couplée a I’adresse 2 sur le réseau MPI, de type CPU 315- 2 PNIDP. Cette UC est dotée d’une liaison Ethernet pour le dialogue avec un PC de programmation ou avec un PC superviseur. Lors de la déclaration d’une logiciel installe tous les drivers utiles & cette CPU LUC doit étre mentionnée (exemple : 130.130.130.20). Une carte de 16 entrées TOR 24 V, de référence DI16xDC24Y, est adressée sur les octets d’entrées 0 et 1. Les états des entrées sont donc accessibles sur les octets EBO et EB. UC, de ce type, le et au réseau Ethemet. L’adresse IP de Une carte de 16 sorties TOR 24V, de référence DO16x24V/0,5A, est adressée sur les octets de sorties 4 et 5. Les sorties TOR sont done accessibles dans les octets AB4 et ABS. Une carte, de quatre entrées analogiques et deux sorties analogiques de 12 bits, est adressée, pour les 4 entrées, de 288 & 295 et pour les sorties, de 288 2 291. Ces quatre entrées sont mesurées par les quatre mots EW288, EW290, EW292 et EW294. Les deux mots EW288 et EW290 forcent les deux sorties analogiques, Une carte coupleur CP340 RS232, qui dialogue, liaison série point & point RS2: communication doit étre spécifié (vitesse, nombre de bits, nombre de stop et parité), avec un matériel distant, par une aux adresses de 304 A 319. Le protocole de ChapitreIV Les langages des API Les apptications c'aujourdhni, pour la plupart, sont en Togique programmée, dans Jaquelle le micro processeur de I'API effectue, dans une boucle sans fin, les équations d'un programme, on parle de scrutation. Les logiciels de programmation des API offrent des outils conviviaux pour une implémentation tres facile de 'application. Les API sont bien adaptés pour la programmation des machines spéciales. On choisit le langage de programmation le mieux adapté & application. La norme CEI 6131 les classe en quatre familles : LD, IL, FBD et ST. Le langage LD Le langage LD (Ladder Diagram), resemble aux schémas électriques & contacts. Le langage LD est une approche aisée et visuelle du probléme par des électriciens. Le langage FBD Le langage FBD (Function Bloc Diagram), est une programmation graphique. Parmi es langages FBD, on distingue la programmation graphique d’un grafcet et la programmation d’équations en schémas logiques. Le langage IL Le langage IL (Instruction List), est tr8s proche de l’assembleur. Bien qu’il ne soit pas trés lisible, ce langage utilise Ia totalité des fonctions de I"API. Tous les réseaux de Programmation, définis dans un autre langage, sont compilés dans ce langage. Le langage ST Le langage ST (Structured Text), appelé aussi SCF (Structured Control Language), resemble beaucoup au langage C. C’est un langage structuré qui convient bien pour les applications faisant appel & des calculs compliqués et au traitement des chaines de caractéres. Le langage de programmation des API SM300 et SM400 Step7 Le logiciel Step7 permet la représentation des équations dans les quatre langages. Le passage, de CONT (LD) en LOG (FBD) et en LIST (IL), se fait instantanément ‘par un simple clic sur la souris. Les réseaux ci-dessous montrent quatre représentations de la Programmation de la méme équation dans les quatre langages, CONT (Figure 85), LOG (Figure 86), LIST (Figure 87) et en langage structuré SCL (Figure 88) Ett E12 A40 ELdt a fs () E1.2—< & Ad. E13 E13 s = Figure 85 CONT (LD) Figure 86 LOG(FBD) U E11 FUNCTION FG200 : VOID. UN E1.2 BEGIN oO E13 A4.0 := E1.1 AND NOT(E1.2) ORE1.3; = A4O END_FUNCTION Figure 87 LIST (IL) Figure 88 SCL (ST) ", les commandes Poussoirs par: BP, les bits par : La déclaration du type des variables Lors de la déclaration dune inémonique, Ie type de la variable doit etre précisé, Par exemple si la variable AAWIO0 est sjumage de la valeur entire de la mesure ders cote A. Ia mnémonique peut étre nommée "Messrons ot peut etre déclarée en type INT ou en ‘ype REAL si cette variable possdde des dévimales La table des mnémoniques Figure 89 Commentaire “EV FM" Commande de fermeture du moule "EVM" Commande de ouverture du moule "FC FMo" Fin de course moule ouvert "FC FMI" Fin de course moule fermé "V Vert Voyant marche normale "V Rouge" Voyant Arrét de production "BP Start* Bouton poussoir START "VAL RO" Mot image de la roue codeuse Valeur de la consigne de température Valeur mesurée de la température ‘du moule table de mnémoniques “VAL Consigne" “VAL Temperature" CQFS 54 Les variables d’un DB Les variables, d'un Bloc de Données global (DB), sont déclarée dans une structure. Un DB est un tableau oti sont stockées des données. L’adressage des variables d’tn DB se fait sur les mots identifiés par le numéro du DB et de son emplacement. La déclaration de la mnémonique d’un DB Une mnémonique peut étre affectée 4 chaque DB. Ceci rend le programme plus facile & comprendre. Dans exemple (Cf. Figure 91), la mnémonique "TempFour* est associée au bloc de données DB2. Programme PUMA (WVinémoniques PUMA) - H200PG39\TOOLS\GPU PUMA ] Etat | Mnémonique Oprérande [Type de donnée | Commentaire aed TempFour OB2 DB2 Sai oe BitDepart___ | M10.0 ‘BOOL i 5 BitFront MA0.1 BOOL z J Figure 91 Mnémonique d’un DB La déclaration des variables du DB Les variables du DB sont déclarées dans une structure (STRUCT). Ces variables Peuvent étre de type simple, mais aussi complexe, un tableau (ARRAY), par exemple. Dans la déclaration (Cf. Figure 92), du bloc DB2, nommé #TempFour, est constitue de deux variables, en structure, défi - Un tablean de 200 | DB2—"TempFour— API 2\CPU TOOLA\IDB2 places pour des entiers | Adresse | Nom Type | Valeur initial nommés #TempF de Tadresse 0 & 400. TempF ABFAY 0.200) - Un bit nommé Sao ae #BitDefaut 2X Vadresse 402.0. Figure 92 Déclaration des variables en DB Le réseau (Cf. Figure 93) utilise des variables du DB2. IL est représenté sous deux formes, la premiére, avec les variables API et la deuxitme, avec les mnémoniques associées. Réseau 30 DB2, M10.0 M10.1 MOVE CMP>=I —DBX402.0 | F- (P)—EN ENO Gi 7 our 7 DB2.DBWO _ INT Ews4_, _DB2. sco We Feereu 20. “TempFour" "B Acqui” "B front" MOVE CMP>=! — .BitDofaut It (P)— JEN ENO 1) “TempFour “MesureTemp"_ IN OUT _"TempFour" . TempF[O) _ Nt -TempF{0} 900 ~ IN2 Figure 93 Utilisation des variables de DB La visualisation des variables dans la table de variables Toutes les variables globaies peuvent etre visualisées ou foreées & une valeur dans mentale de variables (VAT). Si une mnémonique est associée & la variable, elle est mentionnée, Un mot MW peut étre affiché en binaire, en décimal ou en hexadécimal et, Pour les mots MD, en virgule flottante, Alors qu’un bi . ie peuvent étre lus et forcés, une entrée ne 5 i uallisation des Variables qu'il faut préciser, L’ic6ne : is de forgage indiquées. Le programme est toujours mat rei s. Il est, par La visualisation des variables dans un rés Il est possible de —_visualiser Pévolution d’une équation définie dans un réseau de bloc de programme de type OB, FC ou FB. Dans un réseau, les valeurs, de toutes les variables, qu'elles soient globales ou locales & 1a fonction, sont visibles si API est connecté. Un exemple, (Cf. Figure 94), montre un réseau en évolution, Les E00 valeurs des variables sont Ih affichées au-dessus de -Descendre de bras chaque mot, Les fiaisons ae) (5104 1 Seni ca sont E01 M104 2 T#S représentées en traits 1 f tt + Trans2 Pointillés. Le croquis (Cf. i if Figure 95) montre un 83 FFematter bras 7 grafeet en évolution. La EDD Sees, : mise au point est facilitée fri TS 7 Stace a la visualisation des Step3.T_ > ei étapes, des réceptivités et T#00MS~ des actions, Figure 95 Grajcet en €volution Apres la programmation d'un bloc, la VAT et Ja visualisation des réseaux ou des Gapes du grafcet permettent la vétification da fonctionnement attendu, CQFS 56 La visualisation des valeurs d’un DB La visualisation des valeurs stockées dans un DB se fait directement dans ce méme DB ou bien dans la VAT. L’insertion d’une plage est utile lorsque plusieurs variables de méme type doivent étre affichées. La visualisation des données d’un DB La visualisation des données d'un DB (Cf. Figure 96) montre organisation en mémoire des variables composant ce DB. Chaque élément du DB peut étre visualisé et forcé. Dans l’exemple, le tableau donne les valeurs en cours du DBI. Pour obtenir cette visualisation, il suffit, dans le DB, d’étre en ligne avec I’ API et de demander l’affichage des données. Le forgage des variables peut se faire partir du DB, dans ce cas, les variables du DB seront initialisées a ces valeurs, La visualisation des données par une VAT Dans la VAT, le menu ‘Insertion’ propose la rubrique ‘Plage’. Cette commande a pour effet de multiplier la variable sélectionnée, en incrémentant automatiquement son adresse. L’exemple (Cf. Figure 97) est une plage de variables d'adresses consécutives de DBI.DBWO & DBI.DBW32. Chaque variable du DB peut étre forcé & une valeur quelconque. Figure 96 Variables en DB CQFS 57 La programmation en LADDER La programmation en LD (LADDER), nommée, en Step?, CONT, bien qu’elle soit 1a plus pauvre en nombre de fonctions, est la mieux adaptée pour les électiciens ae maintenance. Les équations sont décrites sous la forme de schémas électriques 4 contacts, Les contacts NO et NF Is peuvent étre l'image d’une entrée TOR, mais aussi celle d’un bit interne ou celle @une sortie. Les contacts sont teprésentés conforme a la norme CEI 61131, ‘i 2 E11 MO1 A4o Deux traits verticanx représentent un contact hepa a Srey Nommalement Ouvert (NO). Dotés du signe /, c'est un 2) DAS contact Normalement Fermé (NF). Un NO ne laisse Hire Passer Te courant que lorsqu’il est commandé, un NF Figure 98 Equation sortie N laisse passer le courant lorsqu’il n'est pas commandé. Te réseau (CE. Figure 98) représente I'équation de la sortie définie pat: A4.0=EI.1.M0.1+EL2.A43 Les bobines Normale, Set, Reset Une bobine normale est représentée par le symbole: ( ), Elle reste a Tétat haut (4 1) jay due son equation qui la régit est vraie et & Létat bas (& 0), dans le cas contraize, Les bobines Set sont symbolisées par (S) et les bobines Reset par (R). On parle de bits némorisés. Un bit mémorisé bascule a l'état | ou & 0, lorsque son équation devient vests et seulement & cet instant, E02 Eo. 1.0 Dans exemple (Cf. Figure 99), la f°? _ & |? ra sortie A4.0 posséde deux réseaux, un pour WOAGS nabineesie le forcage a 0 (la bobine R) et un autre pour le forgage 4 1 (la bobine S). Ces réseaux forment, 4 eux deux, une mémoire & amrét prioritaie, si § et R sont a Tétat 1, tous Jes deux, la bobine reste a l'état 0. La détection de front montant et descendant Un front montant (P) ou descendant (N) a besoin d’un bit inteme, nommé bit de front. Certains logiciels associent un bit de front avec le contact. En ‘Step7 le bit peut étre E14 Mi4 Aag Ett Mot A4.0 E1.3 M01 A41 | b(P}—{s) 1 L_(P) = (8) 1 FHN)}—{s) E1.0 = Figure 100 Actions déclenchées sur fronts seve cee CQFS 58 La programmation d’une variable BOOL La programmation d’une variable boolgenne (BOOL) doit toujours étre faite par un et un seul, réseau, Si ce bit doit étre régi par plusieurs réseaux ou bien par plusieurs blocs, des bits internes supplémentaires sont nécessaires. Un bit défini dans plusieurs réseaux Le réseau 1 (Cf. Figure 101) n'est pas Réseau 1 correct, la bobine A4.1 est définie par deux °F) ey.5 va) Equations contradictoires. Dans ce cas la sortie I } A4.1 ne peut jamais passer A I’état 1. Nota: Si @tre réalisé, les fils sortant des capteurs E1.3 et Te cAblage électrique de cette bobine devrait P8980? A E1.2 seraient reliés, tous les deux, sur ce méme actionneur. Un bit défini dans un méme bloc Si la sortie n'est définie que dans un méme bloc (OB, FC, FB), on conseille fortement de réunir les conditions d’exécution de la sortie dans un, et un méme réseau (Cf. Figure 102) Un bit défini dans plusieurs blocs Lorsqu’un bit doit étre défini dans des blocs différents, il n'est pas possible de réunir son équation dans un méme réseau. Dans ce cas, il suffit de définir le réseau pour un bit dans le premier bloc et pour un autre bit dans le deuxime bloc. Par exemple, le bit de sortie A4.1 (Cf. Figure 103) est defini dans un autre réseau, Son équation regroupe toutes les conditions de la mise 4 1 de la sortie. Ces conditions sont les bits M4.0 et ‘M4.1, définis dans les autres blocs. On recommande de faire une fonction réservée pour la définition des bits de sorties. Remarque : Figure 101 Erreur courante ELL EL3 A41 E12 Figure 102 Sortie dans un méme bloc Réseau dans la FC3 E11 E13 M40 Ack () Réseau dans la FC12 E12 Mat It () Réseau dans la FC20 (Actions) M4.0 Aad 4 0) M44 It Figure 103 Programmation des actions Alors qu’il n’est pas possible de définir une variable booléenne (BOOL) dans Plusieurs réseaux, un mot peut étre foreé a différentes valeurs dans plusieurs réseaux. La valeur de ce mot, a l'instant ¢, est fonction du réseau exécuté a cet instant. CQFS 59 Les fonctions qui donnent une sortie BOOL {4 Plupart des API offrent une bibliothéque de plus en plus fournie de fonctions & Sortie booléenne, Les principales sont la fonction inverse (NOT), les comparateurs (CMP) et ies bascules (RS ou SR) L’inverseur (NOT) Ett A40 () La fonction NOT complémente le signal, TL “NOT Cette fonction est utilisée pour programmer plus : facilement une équation _possédant des 1 }-INoT complémentations. Le réseau (Cf, Figure 104) 7 Figure 104 Inverseur Tégit ’équation: A4.0 = 1.1+E1.2 Le comparateur (CMP) Une fonction CMP compare deux mots INT, 1} DINT ou REAL. Sa sortie booléenne passe & 1 si Ie résultat de la comparaison est vrai. Un bloc CMP se MO 100. fot Programme comme un simple contact. Dans le réseau Mise este (CT. Figure 105), la sortie A4.0 passe & état 1 si le. Figure 105 Fonction CMP mot MD100 est supérieur & 25. La comparuison de deux emtiers (INT) se fit par: J. celle de deux mots doubles entiers (DINT), par: = D D, celle de deux réels (REAL) PS>RI>R CR >=R; aR Les bascules (RS ou SR) Les fonctions bascules sont des een ago. mémoires. La bascule RS est 4 amét “Amoi” "Marche" Prioritaire. la bascule SR est A marche -lb—R l-—s Prioritaire. Deux entrées BOOL sont "Marche" "Arret* ées, la premig basculer a 1 es Lee sees, la premiére pour basculer & 1 (S) et Pautre, & zér0 (R) le bit de la RS (CE Figure 106 Bascule RS et SR Figure 106). Par exemple, le mot MWIO0 est image de Ia température d'un four. Si la température est comprise entre 650° et 750°, le voyant vert nommé "L Vert" doit rester allumé. Si la température est en dehors de cette Plage, le voyant rouge nommeé "L Rouge” doit s’allumer et y rester, méme si MW100 Teprend une valeur comprise entre 650° et 150". Le réseau (Cf. Figure 107) permet d'assurer cv fonctionnement, CMP >=1 CMP <=t “L Verte” "1 Rouge" z & SR M100 _INt ‘Muvt00 _IN1 |NOT|—s a. 650 _IN2 750 _INe “BP Reset”_p Figure 107 Exemple d'un réseau avec des CMP, NOT et SR CQFS 60 La structure d'un programme API Step7 donne la possibilité de morceler le programme en plusieurs blocs. Les blocs de programme Un bloc est un sous programme, celui-ci peut aussi appeler un autre bloc. Dans exemple (Cf. Figure 108), TOB1 exécute la FC10 et la FC20. La FB1O est exécutée par la FC10. Pour exécuter un bloc FC ou FB dans un autre bloc il suffit de Vinsérer dans un réseau. Son Figure 108 Structure exécution peut étre faite en permanence ou bien conditionnée par une équation booléenne. Les blocs d’organisation OB Les blocs d’ organisation OB sont les interfaces entre Ie syst¢me d’exploitation et Je programme utilisateur. Ils permettent le déclenchement de certaines parties du programme un événement du syst#me, par exemple, a la mise en marche de I’API, & une certaine période, a certaines heures, a l'apparition d’un défaut, etc. Tous les blocs d’organisation ont une particularité de fonctionnement, par exemple : Le bloc OB1 est obligatoire dans une application, c'est le programme principal. L’OBI est exécuté en permanence das la mise en RUN de I’ API. Le bloc OB100 est souvent utilisé pour initialiser des variables, il n'est exéeuté qu'une seule fois a la mise en RUN de I’API. Le bloc OB3S est exécuté a période fixée par une horloge dont on peut choisir la période. Les fonctions FC Les fonctions FC, définies, en LIST ou en CONT ou en LOG, sont des sous programmes comportant, ou non, des entrées et des sorties. Chaque FC peut gérer une petite partie du systéme. Ceci donne la possibilité de décomposer les applications compliquées et les rendre plus simples, Une fonction peut étre exécutée en permanence ou sous certaines conditions booléennes placées sur l’entrée EN de la FC. A la fin de la premiére scrutation de la FC la sortie ENO de la FC passe & 1. Une autre FC pourra étre laneée par cette liaison. Un fois créée et programmée, la fonction peut étre FCI insérée dans un bloc de niveau hiérarchique plus EN EN} élevé. Pour vérifier le fonctionnement d’une fonction, il suffit de T'inséter dans un réseau de YOB1 (Cf. Figure 109), de la renseigner avec des variables globales accessibles dans une VAT. Figure 109 Fonction FC MW100_Consigne MW102_ Temp CmdRes_AW20 Les blocs fonctionnels FB Les blocs fonctionnels FB, congus comme les fonction FC, possédent un DB instance, les variables déclarées en IN, OUT et STAT dans interface du FB sont copiées dans ce DB d’instance. Les renseignements, des entrées et des sorties d'un FB, ne sont pas obligatoires. CQFS 61 L’interface des FC et des FB Déclaration des variables dans V’interface omportant la déclaration des variables locales & la On distingue les variables locales d’entrées (IN), T), les variables locales entrées et de sorties Dans exemple (Cf. Figure 111), “EN For ENO Uinterface dela FCI (Ct, Figure 110) eomprend Consione (INT) CmaResist@OO) deux vi les dentrée et une de sortie. Les Validation (800L) 4 commentaires associés aux variables aident 3 Figure 110 Bloc FC clarifier le programme, 7} interface Nom) “type eit a _ t3 Consigne "INT | Température ao con ine Consigne | m1 Validation BOOL ' Si=1 alors chaufie Validation ) OUT CmdResist INLOur ‘TEMP 7 RETURN Figure 111 Interface dune FC Les variables locales CQFS 62 Les variables d’entrée et de sortie des FC Les variables des entrées et des sorties des FC et FB sont déclarées dans l'interface dune fonction. Les variables d’entrée (IN) Une variable d’entrée de FC peut étre déclarée dans tous les types. Ces variables prennent la valeur de celle qui la renseigne. Une variable d’entrée ne peut pas étre modifiée dans la FC. FCI Le réseau (Cf. Figure 112) montre comment EN ENO la FCI est renseignée. L'entrée #Val regoit 0.0. Val (001) Vimage de l’entrée £0.0. Quand E0.0 passe a 1, MW100.Consigne (INT) #Val passe aussi & état 1. La valeur de MW100 Mw200 . Templvesur (INT) est copiée dans le mot d’entrée #Consigne, le mot MW200 dans la variable d’entrée #TempMesur. Figure 112 FC 43 entrées On conseille de préciser le type des variables dans Ie croquis du bloc. Les variables de sortie (OUT) Déclarées en variables de sortie, ces variables locales, calculées dans Ia fonction, forcent les variables qui leur sont associées. Dans ’exemple (Cf. Figure 113), la sortie #CmdResist prend l'état 1 ou For 0 en fonction d'une équation | ey pin Sefinie dans Ja FCI. La variable E00 YeNGOOH, irae ea A40 associée prend [état de : esis ae #OndResist. La valeur de lq M200. TemptiesurtNT) TempFour WORD). M120 variable #TempFour, calculée dans Figure 113 FC.a2 sorties la FC/, est copiée dans la variable MWI20. Les variables d’entrée / sortie (IN_OUT) Si une variable de sortie doit ¢tre modifiée dans une FC, une variable IN_OUT peut tre utilisée. C’est une variable qui est, 4 la fois, une entrée et une sortie. Elle peut done tre modifiée dans la fonction, Dans exemple (Cf. Figure 114), la ; variable SetValue est déclarée ‘en 4" MIRE ADD . EN ENO! IN_OUT. La variable #SerValue eae tet s‘incrémente & chaque front montant sur a #Val, sa valeur se transfére dans le mot 1in2_ OUT, #etValue associé A la variable IN OUT de cet FB. Figure 114 Variable IN’ OUT La variable RETURN est la valeur de retour de la fonction FC. CQFS 63 Les variables temporaires Les variables temporaires (TEMP) des FC ou des FB sont des variables, locales a la fonction, utilisées pour stocker temporairement des valeurs issues de caleuls. Leur durée de vie est égale au temps de J’activation de la fonction. Les variables locales (TEMP) Les variables temporaires sont souvent utilisées comme variables tampons au cours des caleuls. Elles peuvent étre déclarées dans tous les types simples et complexes (BOOL, INT, WORD, DINT, REAL, DATE, ARRAY...), leur déclaration se fait, comme pour les variables IN et OUT, dans l’interface dans la rubrique TEMP (Cf. Figure 115). Th intercace “Nom ~~] "Type! [Adress | Commentaires 5 IN qécat INT 0.0 Ecart de temperature jf OUT ‘mCoefRegui | INT 2.0 Coefficient de réguiation IN_our TEMP Me: Boat CoefRegul “0 RETURN Figure 115 Déclaration de variables TEMP Le réseau, de la FC1 (Cf. Figure 116), donne un exemple d'utilisation de variables locales TEMP pour le calcul de la variable #Ecart (en INT), différence entre la consigne et la température intérieure du four. ‘SUB_| MEST #CmaResist — EN ENO 4 iy #Ecart #Consigne_ Ini QUT _#Ecart oN #TempMesur__ \N2 “IN Figure 116 Utilisation de variables TEMP Dans le cas ot la variable #Bcart est supérieure a zéro, il convient de chautfer, dans ce cas la sortie #CmdResist passe & l'état 1. Une fois la FC définie, elle est insérée dans un réseau d'un bloc placé d’un niveau hiérarchique plus élevé (OB1 par exemple) Renseignée comme indiquée ence seer sur le schéma (Cf. Figure 117), la aaa Cndfiesist| Aa.o sortie #CmdResist passe a 1 et MW100__ Consigne —TempFour _MW120 force A4.0, lorsque MW100 MW200_Templesur associée & la variable d’entrée Consigne est supérieure a MW102. Figure 117 Renseignement de la FC La durée de vie d’une variable TEMP. Une variable locale TEMP n’existe que si la fonction ot elle a été déclarée, est active, Il n’est par conséquent pas possible de Visualiser les variables TEMP ailleurs que dans la fonction oi elles sont déclarées. Une fonction n'est active que si l’entrée EN est & Pétat 1. Si l’entrée EN de la fonction est a zéro, toutes ses variables locales passent a la valeur 0. En revanche, les variables STAT des FB sont copiées dans leur DB d’instance CQES 64 L’adressage des variables locales TEMP L’adressage des variables locales TEMP, analogue avec celui des mots M, est fait sur les mots L. Une variable locale, en CONT, peut étre renommée facilement. L’adressage d’une variable locale TEMP Lors de Ja déclaration, une adresse logique est affectée & chaque variable locale TEMP. Chaque variable TEMP est accessible par son adresse, LDn pour un mot double, LWa pour un mot simple, LBn pour un octet, Ln.m pour le bit de poids m du byte n, Dans Vexemple (Cf. Figure 118), la variable #2 cart débute & partir du bit Z0.0. Le mot LW0 est done celui de #Ecart Dans ce méme exemple, la variable nommée #CoefRegul, est déclarée en TEMP, en type INT & partir du bit 12.0. Le mot LW2 correspond & #CoefRegul, les octets LB2 et LB3 a ceux formant le mot LW2. Le bit L3.0 est celui de poids faible de LW2 ou de #CoefRegul. { Figure 118 Adresses des variables TEMP d'une FC Liadresse d'une variable IN n'est pas accessible. Pour Palier a cet inconvénient i] suffit de copier la variable d'entrée dans une variable TMP dont on connait Tadresse. Les réseaux (Cf. Figure 119), montre une FCI qui regoit le mot MW100 dans sa variable IN ‘#PositionX, déclarée en INT. Cette entrée est transférée dans #PoxX. Les bits de #PosX sont donc codifiés de L0.7 4 L0.0 et de 11.7 L1.0 i : Réseau (dans 1051) ae Figseau Gans ae en FCT eno postions EN ENO + Ol ' MW100_ Positionx IN_OUT PositionX_IN QUT _#PosX © Temp a Posk Figure 119 Bits d'une variable locale : Réseau 2 (dans FC1) Le réseau (Cf. Figure 120), est ea L109 A00 une équation qui utilise les bits Lam | af PE de la variable locale a l'adresse 0.0. Figure 120 Les variables Ln.m Le changement de nom d’une variable locale Une variable locale peut étre facilement renommée cn changeant son nom dans sa déclaration dans Vinterface, Tous les réseaux de la FC sont modifiés. Si une variable locale TEMP est déclarée et utilisée dans une FC, en effagant la déclaration de cette Variable locale, la variable globale, de méme nom, remplace la variable locale dans toute Ia fonction. CQFS 89 Les assistances de programmation Les assistances de programmation facilitent la mise au point du programme. La structure du programme ‘ioe (mnémon), DE dinstance (anemonl) Dans le menu ‘données de référence’, | B66 Gasmond: Danse la rubrique, ‘structure du programme’ donne | ©2e5) ost fas. 22501 Timbrication des différents blocs OB, FC, FB. Lrarbre affiché est la structure du programme. Dans cet arbre, les blocs non utilisés sont indiqués, Dans l’exemple (Cf. Figure 197), '0B1 demande l'exécution la FC20, qui clle-méme demande Vexécution [ Q de FC1O exécutant 1a FC150 clle-méme |pemaipaa qoaconsionesi) exécutant la FCI55. Cette demiére est @ B11 (DBconsignesY) exécutée plusieurs fois. Aucun bloc n’utilise net les blocs de données DB10, DB11 et DB12. Tis peuvent donc étre effacés sans risque. Figure 197 Structure du programme Les mnémoniques manquantes Des variables globales, sans mnémonique, sont, peut étre, utilisées dans le programme, Cette rubrique permet de les afficher et de leur affecter une mnémonique. Les opérandes libres Les opérandes libres aident a trouver les variables dotées d'une mnémonique mais non utilisées dans le programme. Un programme — comportant_—_des mnémoniques inutiles, fonctionne tres bien, mais Ia mémoire est utilisée pour rien. L’exemple (Cf. Figure 198) montre un certain nombre de mnémoniques non utilisées dans I’application. Leur effacement peut se faire, sans aucun risque, Figure 198 Opérandes libres dans la table des mnémoniques. Les références croisées Cette fonction permet de localiser tous les bits et mot utilisés dans l'application, qu'ils soient dotés, ou non, de mnémonique. Le nom du bloc et du réseau, dans lesquels est utilisé chaque variable, sont spécifiés. Le symbole W indique Yécriture de la variable, R indique la lecture. Il est par conséquent trés facile de vérifier si un bit n'est pas forcé dans plusieurs réseaux. Le tableau suivant donne un exemple de références croisées. ‘Opérande ~| Bloc z Type. zy FC30 (Cmd Moteurs) Ww E03 (FC dt) __| FB 45 (Dépiacement Vérin) [10.2 (Oscillateur) | FB15 (Clignotement)

You might also like