Documente Academic
Documente Profesional
Documente Cultură
35006145 05
www.telemecanique.com
Chapitre 1
Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fonctions de Unity Pro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Interface utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Navigateur de projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Compatibilits entre les automates et les versions de Unity Pro . . . . . . . . . . . . Configurateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editeur de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Editeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Langage blocs fonction (FBD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Langage contacts LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation gnrale du langage squentiel SFC. . . . . . . . . . . . . . . . . . . . . . . Liste d'instructions IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Littral structur ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simulateur d'automate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exporter/Importer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Documentation utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Services de mise au point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Visualisation du diagnostic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fentre utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 24 26 28 34 38 45 48 50 52 56 57 59 61 62 63 70 71
Chapitre 2
Chapitre 3
3.1
3.2
3.3
3.4
Chapitre 4
4.1
4.2
Chapitre 5
5.1
4
5.2
5.3
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Traitement en cas de coupure et de restauration des automates Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Traitement d'un dmarrage froid des automates Modicon M340. . . . . . . . . . 137 Traitement des automates Modicon M340 lors d'un redmarrage chaud . . . 141 Dmarrage automatique en RUN des automates Modicon M340. . . . . . . . . . . 144 Mode de fonctionnement des automates Premium et Quantum . . . . . . . . . . . . 145 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Traitement en cas de coupure et de reprise secteur des automates Premium/Quantum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Traitement d'un dmarrage froid d'automates Premium/Quantum . . . . . . . . 148 Traitement des automates Premium/Quantum lors d'un redmarrage chaud 153 Dmarrage automatique en mode RUN pour les modules Premium/Quantum 155 Mode HALT de l'automate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Mode HALT de l'automate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Chapitre 6
6.1
6.2
6.3
6.4
6.5
Mots systme spcifiques au module Quantum . . . . . . . . . . . . . . . . . . . . . . . . 215 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Description des mots systme %SW60 %SW63 . . . . . . . . . . . . . . . . . . . . . . 216 Description des mots systme Quantum %SW128 %SW179 . . . . . . . . . . . . 218 Description des mots systme Quantum %SW180 %SW640 . . . . . . . . . . . . 221 Mots systme spcifiques au Modicon M340 . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Description des mots systme %SW160 %SW167 . . . . . . . . . . . . . . . . . . . . 228
Chapitre 7
Chapitre 8
8.1
8.2
8.6
8.7
8.8 8.9
8.10
DDT : rgles d'affectation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 Aperu des types de donnes drivs d'entre/de sortie (IODDT) . . . . . . . . . . 283 Types de donnes blocs fonctions (DFB\EFB) . . . . . . . . . . . . . . . . . . . . . . . . . 285 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 Vue d'ensemble des familles de type de donnes de bloc fonction . . . . . . . . . 286 Caractristiques des types de donnes de bloc fonction (EFB\DFB) . . . . . . . . 288 Caractristiques des lments des blocs fonction . . . . . . . . . . . . . . . . . . . . . . 290 Types de donnes gnriques (GDT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294 Vue d'ensemble des types de donnes gnriques . . . . . . . . . . . . . . . . . . . . . 294 Types de donnes appartenant aux diagrammes fonctionnels en squence (SFC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Vue d'ensemble des types de donnes de la famille du diagramme fonctionnel en squence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Compatibilit entre types de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298 Compatibilit entre des types de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Chapitre 9
Chapitre 10
Chapitre 11
Chapitre 12
35006145 05 novembre 2006
Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361 Informations gnrales sur le langage contacts (LD) . . . . . . . . . . . . . . . . . . . 362 Contacts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Bobines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367 Fonctions lmentaires, blocs fonction lmentaires, blocs fonction drivs et procdures (FFB). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 Contrles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 Fonctionnement et comparaison des blocs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383 Liaisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 Objet texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 Dtection de fronts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390 Ordre d'excution et flux de signaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Configuration de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 Modification de l'ordre d'excution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
Chapitre 13
13.1
13.2
13.3
13.4
13.8 13.9
8
13.10
Ordre d'excution du jeton unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Squence en OU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sauts de squence et boucles de squence. . . . . . . . . . . . . . . . . . . . . . . . . . . Squences en ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slection d'une squence en ET asymtrique . . . . . . . . . . . . . . . . . . . . . . . . . Jetons multiples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ordre d'excution plusieurs jetons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Squence en OU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Squences en ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Saut dans une squence en ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Saut hors d'une squence en ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
450 451 452 455 457 461 461 462 465 469 473 475
Chapitre 14
14.1
14.2
Chapitre 15
15.1
15.2
15.3
Instruction rcurrente FOR...TO...BY...DO...END_FOR . . . . . . . . . . . . . . . . . . 558 Instruction rcurrente WHILE...DO...END_WHILE . . . . . . . . . . . . . . . . . . . . . . 560 Instruction rcurrente REPEAT...UNTIL...END_REPEAT . . . . . . . . . . . . . . . . . 561 Instruction rcurrente EXIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562 Appel de sous-programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563 RETURN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564 Instruction d'espacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565 Libells et sauts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566 Commentaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 567 Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568 Appel de fonctions lmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 569 Bloc fonction lmentaire d'appel et bloc fonction driv . . . . . . . . . . . . . . . . . 576 Procdures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Chapitre 16
Chapitre 17
Chapitre 18
Chapitre 19
10
Chapitre 20
Annexes
Annexe A
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Annexe B
B.1 B.2
B.3 B.4
Glossaire Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747
11
12
Consignes de scurit
Informations importantes
AVIS Veuillez lire soigneusement ces consignes et examiner l'appareil afin de vous familiariser avec lui avant son installation, son fonctionnement ou son entretien. Les messages particuliers qui suivent peuvent apparatre dans la documentation ou sur l'appareil. Ils vous avertissent de dangers potentiels ou attirent votre attention sur des informations susceptibles de clarifier ou de simplifier une procdure.
L'apposition de ce symbole un panneau de scurit Danger ou Avertissement signale un risque lectrique pouvant entraner des lsions corporelles en cas de non-respect des consignes. Ceci est le symbole d'une alerte de scurit. Il vous avertit d'un risque de blessures corporelles. Respectez scrupuleusement les consignes de scurit associes ce symbole pour viter de vous blesser ou de mettre votre vie en danger.
DANGER
DANGER indique une situation immdiatement dangereuse qui, si elle n'est pas vite, entranera la mort ou des blessures graves.
AVERTISSEMENT
AVERTISSEMENT indique une situation prsentant des risques susceptibles de provoquer la mort, des blessures graves ou des dommages matriels.
ATTENTION
ATTENTION indique une situation potentiellement dangereuse et susceptible d'entraner des lsions corporelles ou des dommages matriels.
13
Consignes de scurit
REMARQUE IMPORTANTE
Les quipements lectriques doivent tre installs, exploits et entretenus par un personnel d'entretien qualifi. Schneider Electric n'assume aucune responsabilit des consquences ventuelles dcoulant de l'utilisation de cette documentation. 2006 Schneider Electric. All rights reserved.
14
A propos de ce manuel
Prsentation
Objectif du document Champ d'application Ce manuel dcrit les lments ncessaires la programmation des automates Premium, Atrium et Quantum l'aide de l'atelier de programmation Unity Pro. Les donnes et illustrations fournies dans ce guide ne sont pas contractuelles. Nous nous rservons le droit de modifier nos produits conformment notre politique de dveloppement permanent. Les informations prsentes dans ce document peuvent faire l'objet de modifications sans pravis et ne doivent pas tre interprtes comme un engagement de la part de Schneider Electric. Schneider Electric ne saurait tre tenu responsable des erreurs pouvant figurer dans ce document. Merci de nous contacter pour toute suggestion d'amlioration ou de modification ou si vous avez trouv des erreurs dans cette publication. Aucune partie de ce document ne peut tre reproduite sous quelque forme ou par quelque moyen que ce soit, lectronique, mcanique ou photocopie, sans autorisation pralable de Schneider Electric. Toutes les rglementations de scurit pertinentes locales doivent tre observes lors de l'installation et de l'utilisation de ce produit. Pour des raisons de scurit et pour garantir une conformit aux donnes systme documentes, seul le fabricant est habilit effectuer des rparations sur les composants. Lorsque les automates sont utiliss pour des applications prsentant des exigences de scurit technique, suivez les instructions appropries. La non utilisation du logiciel Schneider Electric ou du logiciel approuv avec nos produits peut entraner des blessures, des dommages ou un fonctionnement incorrect. La non observation de cet avertissement relatif au produit peut entraner des blessures ou des dommages matriels. Commentaires utilisateur Envoyez vos commentaires l'adresse e-mail techpub@schneider-electric.com
15
A propos de ce manuel
16
Introduction
Contenu de cette section Contenu de cette partie Cette section dcrit la structure gnrale et le comportement gnral d'une application cre avec Unity Pro. Cette partie contient les chapitres suivants :
Chapitre 1 Titre du chapitre Prsentation Page 19
17
Prsentation gnrale
18
Prsentation
1
Introduction
Vue densemble Ce chapitre dcrit la structure gnrale et le comportement gnral d'un projet cr avec Unity Pro. Ce chapitre contient les sujets suivants :
Sujet Fonctions de Unity Pro Interface utilisateur Navigateur de projet Compatibilits entre les automates et les versions de Unity Pro Configurateur Editeur de donnes Editeur Langage blocs fonction (FBD) Langage contacts LD Prsentation gnrale du langage squentiel SFC Liste d'instructions IL Littral structur ST Simulateur d'automate Exporter/Importer Documentation utilisateur Services de mise au point Visualisation du diagnostic Fentre utilisateur Page 20 24 26 28 34 38 45 48 50 52 56 57 59 61 62 63 70 71
Contenu de ce chapitre
19
Prsentation
Langages de programmation
Unity Pro propose les langages suivants pour la cration du programme utilisateur : Langage en blocs fonctionnels FBD z Langage contacts LD z Liste d'instructions IL z Littral structur ST z Diagramme fonctionnel en squence SFC
z
Tous ces langages peuvent tre utiliss ensemble dans le mme projet. Tous ces langages sont conformes la norme CEI 61131-3. Bibliothques de blocs Les blocs des nombreuses bibliothques de blocs comprises dans l'offre de Unity Pro vont des blocs pour oprations boolennes simples aux blocs de commande de boucles de rgulation complexes, en passant par des blocs pour chanes de caractres (strings) et oprations de zones (matrice). Par souci de clart, les diffrents blocs sont structurs en bibliothques, ellesmmes structures en familles. Les blocs peuvent tre utiliss dans les langages FBD, LD, IL et ST. Elments d'un programme Un programme peut se composer : Tche matre (MAST) z Tche rapide (FAST) z Une quatre tches auxiliaires (non disponibles pour Modicon M340) z Sections auxquelles est affecte l'une des tches dfinies z Sections ddies au traitement des vnements temporiss (Timer) z de sections de traitement d'vnements issus de modules d'entres/sorties (EVTx) z de sections de sous-programme (SR)
z
20
Prsentation
Progiciels
Les progiciels disponibles sont les suivants : z Unity Pro S z Unity Pro M z Unity Pro L z Unity Pro XL z Unity Developers Edition (UDE)
21
Prsentation
Langages de programmation Langage blocs fonction (FBD) Langage contacts (LD) Liste d'instructions IL Littral structur ST Diagramme fonctionnel en squence SFC Bibliothques Bibliothque standard Bibliothque de rgulation Bibliothque de communication Bibliothque de diagnostics Bibliothque de gestion des E/S Bibliothque systme Bibliothque de commande d'entranement Bibliothque TCP Open Bibliothque obsolte Bibliothque MFB Bibliothque de gestion des fichiers de carte mmoire Informations gnrales Cration et utilisation des structures de + donnes (DDT) Cration et utilisation des blocs fonction + drivs (DFB) Navigateur de projet avec vue structurelle et/ou fonctionnelle Gestion des droits d'accs Ecrans d'exploitation Visualisation du diagnostic Diagnostic systme Diagnostic du projet Convertisseur d'applications + + + + + + + + + + + + + + Convertisseur PL7 + + + + + + + + Convertisseur PL7 Convertisseur Concept + + + + + + + + Convertisseur PL7 Convertisseur Concept + + + (1) + (1) + (1) + (1) + (1) + + + + + + + + + En option + + + + + + + + + + En option + + + + + + + + + + En option + + + + + + + +
22
Prsentation Unity Pro S Gestion de plusieurs stations Plates-formes prises en charge Modicon M340 Premium BMX P34 1000 BMX P34 1000 BMX P34 20 BMX P34 20 P57 0244M P57 CA 0244M P57 CD 0244M P57 104M P57 154M P57 1634M P57 204M P57 254M P57 2634M P57 2634HM BMX P34 1000 BMX P34 20 Toutes les UC sauf : P57 554M P57 5634M BMX P34 1000 BMX P34 20 Toutes les UC Unity Pro M Unity Pro L Unity Pro XL -
Quantum
Toutes les UC 140 CPU 311 10 140 CPU 434 12 U/A* 140 CPU 534 14 U/A* * Mise niveau l'aide du systme d'exploitation Unity Toutes les UC + + Toutes les UC + + +
Atrium Simulateur Transparence Liens hypertexte Serveur Unity Pro (pour OFS, UDE, UAG) Documentation sous forme d'aide contextuelle et en version PDF Unity Loader
+ + -
PCI 57 204 + + -
Lgende : + = disponible + (1) = disponible en partie : EF et fonctions des plates-formes Premium/Atrium et Quantum non inclus. - = non disponible Convention de noms Dans la documentation suivante, "Unity Pro" est un terme gnrique pour "Unity Pro S", "Unity Pro M", "Unity Pro L" et "Unity Pro XL".
23
Prsentation
Interface utilisateur
Prsentation L'interface utilisateur se compose de plusieurs fentres et barres d'outils pouvant tre positionnes librement. Interface utilisateur :
1 2 3 4
Unity Pro : My_Project Fichier Edition Affichage Services Outils Gnrer Automate Mise au point Fentre Aide
RUN STOP
LD
My_Section [MAST] 1 2 3 4 5
Initial filling
0 : XBus Armoire
Types donnes drivs Types FB drivs Variables et instances FB Communication Programme
start cycle 2
alarm /
count ok
valid count
Tches MAST Sections process Unused M Actions Transitions SFC filling feeding SFC Mixing ST proportioning IL Process : IL1
SFC
SFC
MY_SFC...
LD MY_LD...
fbd
MY_FBD...
Gnrer Prt
24
Prsentation
Lgende :
Numro 1 2 3 4 5 6 Description Barre de menus (Voir Unity Pro, Modes opratoires, Menus) Barre d'outils (Voir Unity Pro, Modes opratoires, Barre d'outils) Navigateur du projet (Voir Unity Pro, Modes opratoires, Navigateur projet) Fentre de l'diteur (diteurs de langages, diteur de donnes, etc.) Onglets d'accs direct aux fentres de l'diteur Fentre d'information (Voir Unity Pro, Modes opratoires, Fentre de sortie) (donne des informations sur les erreurs survenues, le suivi des signaux, les fonctions d'importation, etc.) Ligne d'tat (Voir Unity Pro, Modes opratoires, Barre d'tat)
25
Prsentation
Navigateur de projet
Introduction Le navigateur de projet affiche tous les paramtres du projet. L'affichage peut se prsenter sous forme structurelle (topologique) et/ou fonctionnelle.
Navigateur de projet Vue structurelle Station Configuration 0 : X Bus Types de donnes drivs Types FB drivs Variables et instances FB Communications Programme Tches MAST Sections SFC process SFC filling feeding box SFC Mixing ST Mixing_1:ST1
ST
Vue fonctionnelle proportioning machine proportioning Programme Tableau Ecran filling feedbox Programme LD ladder1 Tableau Ecran Mixing Programme ST ST1 Table Ecran Process Programme IL IL1 Tableau
Mixing_2:ST2 Sections SR
Affichage structurel :
Dans l'affichage structurel, le navigateur de projet propose entre autres les fonctions suivantes : z cration et suppression d'lments z symbole de section indiquant le langage de programmation de la section et si celle-ci est protge z affichage des proprits des lments z cration de rpertoires utilisateur z dmarrage des diffrents diteurs z dmarrage de la fonction import/export
26
Prsentation
Affichage fonctionnel :
Dans l'affichage fonctionnel, le navigateur de projet propose entre autres les fonctions suivantes : z cration de modules fonctionnels z insertion de sections, tables d'animation, etc. par glisser-lcher partir de l'affichage structurel z cration de sections z affichage des proprits des lments z dmarrage des diffrents diteurs z symbole de section indiquant le langage de programmation et d'autres attributs.
27
Prsentation
28
Prsentation
Ce tableau indique la compatibilit de projets entre les versions du logiciel Unit Pro pour des fichiers .XEF.
Unity Pro V2.01 + + +1 + Unity Pro V2.02 + + +1 + + +4 +4 Unity Pro V2.1 + + +1 + + +4 +4 Unity Pro V2.2 sans MFB + + +1 + + + +4 +4 Unity Pro Unity Pro Unity Pro V2.2 avec V2.3 V3.0 MFB + + + + + + + +4 +4 +4 + + + + + + + + +4 +4 +4 +4 + + + + + + + + + + + +
Version 2.0x gnre avec un processeur V2.0 Version 2.1 gnre avec un processeur V2.0 Version 2.2 gnre avec MFB avec un processeur V2.0 Version 2.2 sans MFB gnre avec un processeur V2.0
+ Version 2.3 SP1 sans MFB2 gnre avec un processeur V2.0 Version 2.3 SP1 sans MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 avec MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 gnre avec un processeur V2.3 Version 3.0 sans MFB2 gnre avec un processeur V2.0 Version 3.0 sans MFB3 gnre avec un processeur V2.0 Version 3.0 avec MFB3 gnre avec un processeur V2.0 Version 3.0 gnre avec un processeur V2.3 +4 +4 -
+: Oui. -: Non. Si le projet contient des blocs MFB, une erreur apparatra pendant la phase de gnration.
2 1:
3:
4 : Il ncessite l'utilisation d'un outil externe afin de changer le format du fichier XEF avant de l'ouvrir avec Unity Pro V2.3.
29
Prsentation
Note : Les fichiers XEF gnrs par Unity Pro V1.00 peuvent tre ouverts par les autres versions de Unity Pro.
30
Prsentation
Ce tableau indique les compatibilits de projets entre versions de logiciel Unity Pro pour les fichiers .STA.
Unity Pro V2.01 + Unity Pro V2.02 + Unity Pro V2.1 + + + + + Unity Pro V2.2 sans MFB + + + + + + + Unity Pro Unity Pro Unity Pro V3.0 V2.2 avec V2.3 MFB + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Version 2.0x gnre avec un processeur V2.0 Version 2.1 gnre avec un processeur V2.0 Version 2.2 gnre avec MFB avec un processeur V2.0 Version 2.2 sans MFB gnre avec un processeur V2.0
Version 2.3 SP1 sans MFB2 gnre avec un processeur V2.0 Version 2.3 SP1 sans MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 avec MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 gnre avec un processeur V2.3 Version 3.0 sans MFB2 gnre avec un processeur V2.0 Version 3.0 sans MFB3 gnre avec un processeur V2.0 Version 3.0 avec MFB3 gnre avec un processeur V2.0 Version 3.0 gnre avec un processeur V2.3 -
+: Oui. -: N
2
3:
Note : Les fichiers STA n'existent pas pour Unity Pro V1.00.
31
Prsentation
Ce tableau indique les compatibilits de projets entre versions de logiciel Unit Pro pour les fichiers .STU.
Unity Pro V2.01 + Unity Pro V2.02 + Unity Pro V2.1 + Unity Pro V2.2 sans MFB + Unity Pro Unity Pro Unity Pro V2.2 avec V2.3 V3.0 MFB + + + + + + + + +
Version 2.01 gnre avec un processeur V2.0 Version 2.02 gnre avec un processeur V2.0 Version 2.1 gnre avec un processeur V2.0 Version 2.2 gnre avec MFB avec un processeur V2.0 Version 2.2 sans MFB gnre avec un processeur V2.0
Version 2.3 SP1 sans MFB2 gnre avec un processeur V2.0 Version 2.3 SP1 sans MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 avec MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 gnre avec un processeur V2.3 Version 3.0 sans MFB2 gnre avec un processeur V2.0 Version 3.0 sans MFB3 gnre avec un processeur V2.0 Version 3.0 avec MFB3 gnre avec un processeur V2.0 Version 3.0 gnre avec un processeur V2.3 -
+: Oui. -: N
2: 3
Note : Les fichiers STU gnrs par Unity Pro V1.00 peuvent tre ouverts par cette versions de Unity Pro uniquement.
32
Prsentation
Ce tableau indique les transferts de projet entre versions de logiciel Unity Pro et versions d'automates qui sont possibles et ne sont PAS possibles, en mode local et en mode en ligne.
Unity Pro V2.01 + Unity Pro V2.02 + Unity Pro V2.1 +5 + + + + Unity Pro V2.2 sans MFB +5 + + + + + + Unity Pro Unity Pro Unity Pro V2.2 avec V2.3 V3.0 MFB +5 + + + + + + + + + +5 + + + + + + + + + + + +5 + + + + + + + + + + +
Version 2.0x gnre avec un processeur V2.0 Version 2.1 gnre avec un processeur V2.0 Version 2.2 gnre avec MFB avec un processeur V2.0 Version 2.2 sans MFB gnre avec un processeur V2.0
Version 2.3 SP1 sans MFB2 gnre avec un processeur V2.0 Version 2.3 SP1 sans MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 avec MFB3 gnre avec un processeur V2.0 Version 2.3 SP1 gnre avec un processeur V2.3 Version 3.0 sans MFB2 gnre avec un processeur V2.0 Version 3.0 sans MFB3 gnre avec un processeur V2.0 Version 3.0 avec MFB3 gnre avec un processeur V2.0 Version 3.0 gnre avec un processeur V2.3 -
+: Oui. -: Non.
2: 3: 5:
Sans le module ESY 007. Avec le module ESY 007. Il n'est pas utilisable avec une version prcdente.
33
Prsentation
Configurateur
Fentre du configurateur La fentre du configurateur est divise en deux parties : Fentre catalogue Un module peut tre slectionn dans cette fentre et tre insr directement par glisser-lcher dans la reprsentation graphique de la configuration de l'automate. z Reprsentation graphique de la configuration de l'automate
z
Bus Quantum local Analogique 140 ACI 030 00 01.00 140 ACI 040 00 01.00 140 ACO 020 00 01.00 140 ACO 130 00 01.00 140 AII 330 00 01.00 140 AII 330 10 01.00 140 AIO 330 00 01.00 140 AMM 090 00 01.00 140 ARI 030 10 01.00 140 ATI 030 00 01.00 140 AVI 030 00 01.00 140 AVO 020 00 01.00 Communications 140 CRP 811 00 01.00 140 CRP 93X 00 01.00 140 EIA 921 00 01.00 140 NOE 211 00 01.00 140 NOE 251 00 01.00
1 2 3 4 5 6 7 CPS UC ACI ACO DDI DDO 111 671 030 020 353 353 00 60 00 00 00 00
10
11
12
13
14
Zoom avant 1 Proprits de bus... Couper Couper Copier Insrer Supprimer le module Ouvrir le module Dplacer le module Alimentation et bilan E/S... Copier Insrer Nouvel quipement...
Selon la position du pointeur de la souris, l'un des menus contextuels suivants est appel : z si le pointeur de la souris est sur l'arrire-plan, il permet entre autres : z de modifier l'UC z de slectionner divers facteurs de zoom z si le pointeur de la souris est sur un module, il permet entre autres : z d'accder aux fonctions d'dition (supprimer, copier, dplacer) z d'ouvrir la configuration d'un module afin de dfinir les paramtres spcifiques ce module z d'afficher les proprits E/S et le bilan lectrique z si le pointeur de la souris est sur un emplacement vide, il permet entre autres : z d'insrer un module du catalogue z d'insrer un module pralablement copi, avec ses proprits dfinies
34
Prsentation
Configuration module
La fentre de configuration module (appel via le menu contextuel du module ou double-clic sur le module) permet de configurer le module. Font par exemple partie de la configuration la slection de la voie, la slection de la fonction de la voie choisie, l'affectation d'adresses de mmoire State Ram (quantum seulement), etc. Fentre de configuration d'un module E/S Premium :
0.2 : TSX AEY 414 4I ANA. ZONEMULTI
Configuration Icne 0 1 2 3 Plage +/- 10 V Thermo K +/- 10 V Pt100 IEC/DIN Echelle %... 1/10 C %... 1/10 C Filtre 0 0 0 0
35
Prsentation
Proprits de module
La fentre des proprits de module (appel par le menu contextuel du module) indique les proprits du module, comme la consommation lectrique, le nombre de points E/S (Premium seulement), etc. La fentre des proprits de module ddie l'alimentation indique le bilan lectrique du rack :
TSX PSY 2600M:-1 Alimentation 120% 100% 80% 60% 200 mA 1904 mA 40% 20% 0 mA 30 mA 5000 mA 625 mA 500 mA EA
5V
entrelac Surcharg Disponible
24V
24VR
VR : pour relais V : pour entres VDC
OK
Annuler
36
Prsentation
Configuration rseau
Analyse Imprimer Insrer un rseau Zoom avant Zoom arrire Ajouter un rpertoire utilisateur Ajouter un hyperlien
Le menu contextuel de la configuration rseau permet entre autres les fonctions suivantes : z cration de rseaux z analyse du rseau z impression de la configuration rseau Fentre de configuration d'un rseau :
Ethernet_1 Famille de modle TCP/IP 10/100 liaison normale Adresse IP de module Adresse IP 0 . 0 . 0 . 0 Masque sous-rseau 0 . 0 . 0 . 0 Adresse du Gateway 0 . 0 . 0 . 0 Adresse de module Rack Module Voie services de module OUI OUI OUI Appel d'E/S Donnes globales Serveur d'adresses
Configuration IP Message Appel d'E/S Configuration adresse IP Configur Adresse IP Masque sous-rseau Adresse du Gateway Configuration servie Configuration Ethernet Ethernet II
Donnes globales
0 . 0 . 0 . 0 0 . 0 . 0 . 0 0 . 0 . 0 . 0
802.3
37
Prsentation
Editeur de donnes
Introduction L'diteur de donnes propose les fonctions suivantes : dclaration d'instances de variable z dfinition de types de donnes drivs (DDT) z dclaration d'instance de blocs fonctions lmentaires et drivs (EFB/DFB) z dfinition des paramtres de blocs fonctions drivs (DFB)
z
Les fonctions suivantes sont disponibles dans tous les onglets de l'diteur de donnes : z copier, couper, coller z tendre/assembler des donnes structures z trier en fonction du type, du symbole, de l'adresse, etc. z filtrer z insrer, supprimer et modifier la position de colonnes z glisser-lcher entre l'diteur de donnes et les diteurs de programme z annuler (Undo) la dernire modification z Import/Export
38
Prsentation
Repres
Les fonctions disponibles sont les suivantes : z dfinition d'un symbole pour les variables z affectation d'un type de donnes z bote de dialogue de slection personnalise pour les types de donnes drivs z affectation d'une adresse z symbolisation automatique des variables E/S z affectation d'une valeur initiale z saisie d'un commentaire z affichage de toutes les proprits d'une variable dans une bote de dialogue distincte ddie aux proprits
39
Prsentation
Les IO DDT servent affecter la structure E/S complte d'un module une variable unique. Affectation d'IO DDT :
010 Editeur de donnes Repres Filtre Nom Types DDT Nom * Alias Blocs fonction Types DFB Elmentaire Driv Adresse %IW0.2.0.0 %CH0.2.0 %I0.2.0.ERR %IW0.2.0.0 %MW0.2.0.0 %MW0.2.0.0.0 %MW0.2.0.0.1 %MW0.2.0.0.2 %MW0.2.0.1 %MW0.2.0.1.0 %MW0.2.0.1.1 %MW0.2.0.1.2 Driv E/S Valeur
Type Int temp_ffeding_box ANA_I... Analog_input_1 Bool CH_ERROR temp_ffeding_box (.VALUE) temp_ffeding_box Int Int EXCH_STS Bool STS_IN_PROGR Bool CMD_IN_PROGR Bool ADJ_IN_PROGR Int EXCH_RPT Bool STS_ERR Bool CMD_ERR Bool ADJ_ERR
Les fonctions disponibles sont les suivantes : les IO DDT permettent d'affecter des structures E/S compltes une variable unique. z aprs la saisie de l'adresse des variables, le mot ou bit d'entre/sortie est automatiquement affect tous les lments de la structure. z la possibilit d'affectation ultrieure d'adresses permet de crer facilement des modules standard dont les adresses ne sont connues que plus tard. z un nom d'alias (pseudonyme) peut tre attribu tous les lments de la structure E/S.
z
40
Prsentation
L'onglet Types DDT permet de dfinir des types de donnes drivs (DDT). Un type de donnes driv est la dfinition d'une structure ou d'une zone de tout type de donnes dj dfini (lmentaire ou driv). Onglet Types DDT :
010 Editeur de donnes Repres Filtre Nom Standart Moteur stop feedback start alarm Speed Amp SFCSTEP_STATE SFCSTEP_TIMES Types DDT Nom * Type <Struct> <Struct> Bool Bool Bool Standart Int Int <Struct> <Struct> Commentaire Blocs fonction Types DFB
Les fonctions disponibles sont les suivantes : z dfinition de DDT imbriqus (max. 8 niveaux) z dfinition de zones (matrices) ayant jusqu' six dimensions z affectation d'une valeur initiale z affectation d'une adresse z saisie d'un commentaire z analyse du type de donnes driv z affectation du type de donnes driv une bibliothque z affichage de toutes les proprits d'un type de donnes driv dans une bote de dialogue distincte ddie aux proprits
41
Prsentation
Blocs fonction
L'onglet Blocs fonction permet la dclaration d'instance de blocs fonction lmentaires et drivs (EFB/DFB). Onglet Blocs fonction:
010 Editeur de donnes Repres Filtre Nom SFCControl <Entres> CHARTREF INIT CLEAR DISTIME DISTRANS DISACT STEPUN STEPDEP RESTERR DISRMOTE ALLTRANS RESSTEPT Types DDT Nom * Nb Type Valeur SFCCNTRL SFCCHAR... Bool Bool Bool Bool Bool Bool Bool Bool Bool Bool Bool Blocs fonction Types DFB EFB DFB
Commentaire
1 2 3 4 5 6 7 8 9 10 11 12
FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
Liaison SFC Rinitialiser SFC Rinitialiser SFC Temps de contrle Transitions Traitement d'action Pas suivant Pas suivant Temps de contrle Commande Toutes les Temps coul
Les fonctions disponibles sont les suivantes : affichage des blocs fonction utiliss dans le projet z dfinition d'un symbole pour les blocs fonction utiliss dans le projet z copie automatique des symboles dfinis dans le projet z saisie d'un commentaire relatif aux blocs fonction z affichage de tous les paramtres (entres/sorties) des blocs fonction z affectation d'une valeur initiale aux entres/sorties de bloc fonction
z
42
Prsentation
Types DFB
L'onglet Types DFB permet de dfinir les paramtres de blocs fonction drivs (DFB). La cration de la logique DFB s'effectue directement dans une ou plusieurs sections des langages de programmation FBD, LD ou ST. Onglet Types DFB :
010 Editeur de donnes Repres Filtre Nom valve <Entres> Open close valid eot opened eot closed <Sorties> <Entres/Sorties> <Public> timer disc timer opening Types DDT Nom * Nb Type <DFB> Bool Bool Bool Bool Bool Valeur Commentaire Blocs fonction Types DFB
Int Int
Les fonctions disponibles sont les suivantes : z dfinition du nom DFB z dfinition de tous les paramtres du DFB, tels que les : z entres z sorties z VAR_IN_OUT (entres/sorties combines) z variables prives z variables publiques z affectation du type de donnes aux paramtres DFB z bote de dialogue de slection personnalise pour les types de donnes drivs z affectation d'une valeur initiale z imbrication de DFB z utilisation de plusieurs sections dans un DFB z saisie d'un commentaire relatif aux DFB et paramtres DFB z analyse des DFB dfinis z gestion de versions z affectation des DFB dfinis une bibliothque
43
Prsentation
Les instances et types de donnes crs avec l'diteur de donnes peuvent tre insrs dans les diteurs de langage de programmation en fonction du contexte. Les fonctions disponibles sont les suivantes : accs partir de tous les diteurs de langage de programmation z affichage uniquement des donnes compatibles z affichage des fonctions, blocs fonction, procdures et types de donnes drivs classs en fonction de leur appartenance aux bibliothques z dclaration d'instance possible pendant la programmation
z
.1 AND
...
Blocs fonction * Type SFCSTEP_STATE Moteur Moteur Int Int Int Int Real Dans la structure Commentaire Adresse
IN1
OUT
IN2
Emptying motor mixer motor emptying fb1_a_presel fb1_b_presel fb1_c_presel adjust_tempo_0 logo nv
OK
Annuler
44
Prsentation
Editeur
Introduction Un programme peut se composer de : z tches excutes de manire cyclique ou priodique. Les tches sont elles-mmes composes de : z sections z sous-programmes z traitements vnementiels excuts prioritairement toutes les autres tches. Les traitements vnementiels sont eux-mmes composs de : z sections de traitement d'vnements commande temporelle z sections de traitement d'vnements commande matrielle. Exemple de programme :
Navigateur de projet Vue structurelle Programme Tches Cycle Section F B Counting D LD Drilling SFC Washing Sections SR ST SR1 LD SR2 FAST Sections Sections SR AUX0 Sections Sections SR Evnements Evnements de temporisation ST Timer0 ST Timer1 Evnements d'E/S ST Evt0 ST Evt1
45
Prsentation
Tches
Unity Pro gre des tches multiples (multitche). Les tches sont excutes " en parallle " indpendamment les unes des autres, avec les niveaux de priorit d'excution commands par l'API. Les tches peuvent tre adaptes des exigences diverses et constituent ainsi un instrument puissant de structuration du projet. Un projet multitche peut se composer : d'une tche matre (MAST) L'excution de la tche matre est cyclique ou priodique. Constituant la partie principale du programme, elle est excute de manire squentielle. z d'une tche rapide (FAST) L'excution de la tche rapide est priodique. Son niveau de priorit est plus lev que celui de la tche matre. La tche rapide est destine aux traitements de courte dure et priodiques. z 1 4 tches auxiliaires (AUX) L'excution des tches auxiliaires est priodique. Elles sont destines aux traitements plus lents, ce sont les tches les moins prioritaires.
z
Le projet peut aussi se composer d'une seule tche. Dans ce cas, seule la tche matre est active. Traitement vnementiel Le traitement vnementiel s'effectue dans des sections dites d'vnement. Ces sections d'vnement sont excutes en priorit sur les sections de toutes les autres tches. Elles conviennent donc aux traitements demandant des dlais de raction trs courts par rapport l'arrive de l'vnement. Les types de section disponibles pour le traitement vnementiel sont les suivants : z section de traitement d'vnements commande temporelle (section Timerx) z section de traitement d'vnements commande matrielle (section Evtx) Les langages de programmation suivants sont pris en charge : z FBD (langage en blocs fonctionnels) z LD (langage contacts) z IL (liste dinstructions) z ST (littral structur)
46
Prsentation
sections
Les sections sont des units de programme autonomes dans lesquelles est cre la logique du projet. Les sections sont excutes dans leur ordre de reprsentation dans le navigateur de projet (vue structurelle). Elles sont relies une tche. Une mme section ne peut pas appartenir plusieurs tches en mme temps. Les langages de programmation suivants sont pris en charge : z FBD (langage en blocs fonctionnels) z LD (langage contacts) z SFC (diagramme fonctionnel en squence) z IL (liste dinstructions) z ST (littral structur)
Sousprogrammes
Les sous-programmes sont crs en tant qu'units distinctes dans des sections de sous-programme. Les appels aux sous-programmes s'effectuent partir des sections ou d'un autre sous-programme. Une imbrication de huit niveaux maximum est possible. Un sous-programme ne peut pas s'appeler lui-mme (non rcursif). Les sous-programmes sont affects une tche. Un mme sous-programme ne peut pas tre appel par diffrentes tches. Les langages de programmation suivants sont pris en charge : z FBD (langage en blocs fonctionnels) z LD (langage contacts) z IL (liste dinstructions) z ST (littral structur)
47
Prsentation
Reprsentation
Fentre de contrle Variable
Entre EN
Numro d'excution Valeur littrale Adresses topologiques Liaison Croisement XOR AND cond1 IN2 IN3 EN 5 ENO VarX Info-bulle IN4 EN 4 ENO Error2 Result2
Objets
Les objets du langage de programmation FBD (langage blocs fonction) offrent des aides permettant de structurer une section en un ensemble de : z fonctions lmentaires (EF) ; z blocs fonction lmentaires (EFB) ; z blocs fonction drivs (DFB) ; z procdures ; z appels de sous-programme ; z sauts ; z liens ; z paramtres rels ; z objets texte pour commenter la logique.
48
Prsentation
Caractristiques
Les sections FBD comportent toujours une grille de fond. Une unit de grille comprend 10 points de trame. Une unit de trame est l'espace le plus petit possible entre deux objets d'une section FBD. Le langage FBD n'est pas bas sur les cellules. Les objets sont toutefois ajusts sur les points de trame. Une section FBD peut tre configure en nombre de cellules (points de trame horizontaux et points de trame verticaux). Le programme peut tre saisi l'aide de la souris ou du clavier.
Facilits de saisie
L'diteur FBD propose les facilits de saisie suivantes : z Barres d'outils permettant un accs rapide et facile aux objets souhaits. z Vrification syntaxique et smantique pendant l'criture du programme. z Affichage en bleu des fonctions et blocs fonction incorrects. z Soulignement par une ligne rouge ondule des mots inconnus (ex : variables non dclares) ou types de donnes inadapts. z Description rapide des erreurs dans une info-bulle. z Affichage en tableau des FFB. z Saisie et affichage des paramtres rels sous forme de symboles ou d'adresses topologiques. z Facteurs de zoom diffrents. z Suivi de liens. z Optimisation des chemins de liaison. z Affichage des fentres de contrle.
49
Prsentation
Langage contacts LD
Introduction L'diteur LD permet la programmation graphique en langage contacts conformment la norme CEI 61131-3. Reprsentation d'une section LD :
Barre d'alimentation gauche Adresses topologiques Barre d'alimentation droite
Reprsentation
%IX1.5.6
%IX1.5.5
%QX2
%IX1.5.6
Numro d'excution Fentre d'inspection Contact Fonction Bobine Variable
%IX1.5.6
EN
XOR
8 ENO
Error VarX
50
Prsentation
Objets
Les objets du langage LD offrent des aides permettant de structurer une section en un ensemble de : z contacts, z bobines, z fonctions lmentaires (EF), z blocs fonction lmentaires (EFB), z blocs fonction drivs (DFB), z procdures, z contrles, z blocs opration et comparaison reprsentant une extension de la norme CEI 61131-3, z appels de sous-programmes, z sauts, z liaisons, z paramtres rels, z objets texte de commentaire de la logique. Les sections LD sont places sur une grille divisant la section en ranges et en colonnes. Le langage LD est bas sur les cellules, c'est--dire que seul un objet peut tre plac dans chaque cellule. Les sections LD peuvent comporter de 11 64 colonnes et de 17 2000 lignes. La saisie du programme peut s'effectuer au moyen de la souris ou du clavier.
Proprits
Aides la saisie
L'diteur LD propose entre autres les aides la saisie suivantes : z possibilit de slectionner des objets dans la barre d'outils, dans le menu ou directement par des touches de raccourci z vrification smantique et syntaxique ds la cration du programme z reprsentation en bleu des objets incorrects z identification par un trait ondul rouge des mots inconnus (p. ex. variables non dclares) ou des types de donnes ne correspondant pas z brve description de l'erreur dans l'info-bulle z affichage des FFB sous forme de tableau z possibilit de saisir et d'afficher les paramtres rels sous forme d'icne ou d'adresse topologique z divers facteurs de zoom z suivi des liaisons FFB z optimisation du trac des liaisons FFB z affichage des fentres d'inspection
51
Prsentation
52
Prsentation
Reprsentation
Liaison
T1
S_4_2
T_4_2 Condition de transition (valeur retour d'une section Transition) S_4_3 %I10.1 VarX %I10.3
Divergence en OU
T_4_3 %I10.4 > S_4_4 S_4_7 %I10.5 Condition de transition Convergence en OU (adresse boolenne topologique)
Return_Var
53
Prsentation
Objets
Une section SFC propose les objets suivants pour la cration d'un programme : Etapes z Macrotapes (squences de sous-tape intgres) z Transitions (conditions de transition) z Sections transition z Sections Action z Sauts z Liens z Squences alternatives z Squences en parallle z Objets texte pour commenter la logique.
z
Proprits
L'diteur SFC dispose d'une grille d'arrire-plan qui divise la section en 200 lignes et 32 colonnes. Le programme peut tre saisi l'aide de la souris ou du clavier.
Facilits de saisie
L'diteur SFC propose les facilits de saisie suivantes : Barres d'outils permettant un accs rapide et facile aux objets souhaits. z Numrotation automatique des tapes. z Accs direct aux actions et aux conditions de transition. z Vrification syntaxique et smantique pendant l'criture du programme. z Affichage en bleu des objets incorrects. z Soulignement par une ligne rouge ondule des mots inconnus (ex : variables non dclares) ou types de donnes inadaptes. z Description rapide des erreurs dans une info-bulle. z Facteurs de zoom diffrents. z Affichage/Masquage des actions affectes. z Suivi de liens. z Optimisation des chemins de liaison.
z
54
Prsentation
Proprits de l'tape
Proprits de l'tape :
Proprits Etape Gnralits Nom d'tape Actions StepX Commentaire Etape initiale
Temps de contrle et retard Variable 'SFCSTEP_TIMES' Maximum Minimum Retard Proprits Etape Informations gnrales Identificateur DS Actions Commentaire Action Annuler Variable Motor1 Appliquer Section .. Aide t#1s Valeurs littrales
DS
Motor1
Les proprits de l'tape se dfinissent l'aide d'une bote de dialogue proposant les fonctionnalits suivantes : z Dfinition des tapes initiales. z Dfinition des dures de diagnostic. z Commentaires sur l'tape. z Affectation d'actions et de leurs identificateurs.
55
Prsentation
Liste d'instructions IL
Introduction L'diteur IL permet de programmer des listes d'instructions conformment la norme CEI 61131-3. Reprsentation d'une section IL : Etiquette START: Oprateurs LD ANDN ST LD Oprandes Commentaires Fentre d'inspection
VarA %I4.2.3 Commentaire
Reprsentation
VarA (* bouton 1 *) VarB (* et pas bouton 2 *) VarC (* ventilateur marche *) VarX (* variable non dclare *)
E1061 Symbole indfini 'VarX'
Info-bulle
Objets
Une liste dinstructions se compose dune chane dinstructions. Chaque instruction commence dans une nouvelle ligne et se compose : d'un oprateur, z ventuellement d'un modificateur, z si ncessaire, d'un ou de plusieurs oprandes, z ventuellement d'une tiquette servant de cible de saut, z ventuellement d'un commentaire de la logique.
z
Aides la saisie
L'diteur IL propose entre autres les aides la saisie suivantes : vrification smantique et syntaxique ds la cration du programme, z reprsentation en couleur des mots-cls et commentaires, z identification par un trait ondul rouge des mots inconnus (p. ex. variables non dclares) ou des types de donnes ne correspondant pas, z brve description de l'erreur dans l'info-bulle. z affichage des fonctions et blocs fonction sous forme de tableau, z aide la saisie pour les fonctions et blocs fonction, z possibilit de saisir et d'afficher les oprandes sous forme d'icne ou d'adresse topologique, z affichage des fentres d'inspection.
z
56
Prsentation
Littral structur ST
Introduction L'diteur ST permet la programmation en langage littral structur conformment la norme CEI 61131-3. Reprsentation d'une section ST : Oprateur Oprande Instruction
Reprsentation
Commentaire
D := B*B - 4*A*C ; (* calcul de base *) IF D < 0.0 THEN NROOTS := 0 ; ELSIF D = 0.0 THEN Fentre d'inspection NROOTS := 1 ; X1 := -B / (2.0*A) ; ELSE Expression NROOTS := 2 ; X1 X1 := (-B + SQRT(D)) / (2.0*A) ; %QF4.2.3 Commentaire X2 := (-B - SQRT(D)) / (2.0*A) ; END_IF ; Varx := 15; (* variable non dclare *) Info-bulle
E1061 Symbole indfini 'Varx'
Objets
Le langage ST utilise ce que l'on appelle des "expressions". Les expressions sont des constructions comprenant oprateurs et oprandes qui livrent une valeur lors de leur excution. Les oprateurs sont des symboles pour les oprations excuter. Les oprateurs sont utiliss sur les oprandes. Les oprandes sont p. ex. des variables, des valeurs littrales, des entres/sorties de fonction et bloc fonction, etc. Les instructions servent structurer et commander les expressions.
57
Prsentation
Aides la saisie
L'diteur ST propose entre autres les aides la saisie suivantes : vrification smantique et syntaxique ds la cration du programme, z reprsentation en couleur des mots-cls et commentaires, z identification par un trait ondul rouge des mots inconnus (p. ex. variables non dclares) ou des types de donnes ne correspondant pas, z brve description de l'erreur dans l'info-bulle. z affichage des fonctions et blocs fonction sous forme de tableau, z aide la saisie pour les fonctions et blocs fonction, z possibilit de saisir et d'afficher les oprandes sous forme d'icne ou d'adresse topologique, z affichage des fentres d'inspection.
z
58
Prsentation
Simulateur d'automate
Introduction Le simulateur d'automate permet la recherche d'erreurs dans le projet sans connexion un vritable automate. Toutes les tches du projet (Mast, Fast, AUX et Evnements) se droulant sur un vritable API sont galement disponibles dans le simulateur. La diffrence par rapport un vritable API rside dans l'absence de modules E/S et de rseaux de communication (p. ex. ETHWAY, Fipio et Modbus Plus) fonctionnant en temps rel non-dterministe. Naturellement, toutes les fonctions de mise au point, d'animation, les points d'arrt, les forages de variables, etc. sont disponibles sur le simulateur d'automate. Reprsentation Reprsentation de la bote de dialogue :
Commandes du simulateur d'automate
?
Simulation
Premium
CH2 CH3 CH0 CH1 RUN TER FIP ERR I/O
Clients connects Nom du client : hte local sg-avail.aut.schneider Rinitialisation Redmarrage Adresse IP : 127.000.000.001 139.158.107.005
59
Prsentation
Structure du simulateur
Le panneau du simulateur propose les affichages suivants : type des API simuls z tat courant des API simuls z nom du projet charg z adresse IP et nom DNS du PC hte du simulateur et de tous les PC Clients connects z bote de dialogue ddie la simulation des vnements E/S z bouton RAZ permettant de rinitialiser les automates simuls (simulation de dmarrage froid) z bouton Mise sous/hors tension permettant de simuler une reprise chaud z menu contextuel (bouton droit de la souris) permettant de commander le simulateur
z
60
Prsentation
Exporter/Importer
Introduction Les fonctions d'exportation et importation permettent d'utiliser dans un nouveau projet des donnes dj cres. Le format d'exportation/importation XML permet en outre facilement de prparer des donnes d'un logiciel externe ou de les appliquer (copier). Les objets suivants peuvent entre autres tre exports : z projets complets, configuration comprise z sections de tous les langages de programmation z sections de sous-programme de tous les langages de programmation z blocs fonctions drivs (DFB) z types de donnes drivs (DDT) z dclarations de variables z fentre utilisateur z configuration (au format FNES) Il va de soi que tous les objets exportables peuvent galement tre rimports. Il existe deux variantes d'importation : z importation directe Importe l'objet exactement comme il a t export. z importation avec l'assistant L'assistant permet de modifier les noms des variables, sections ou units fonctionnelles. L'affectation des adresses peut galement tre modifie.
Exportation
Importation
61
Prsentation
Documentation utilisateur
Documentation utilisateur Fonctions assures par la documentation utilisateur :
Documentation * 1
Station 2 Page de garde Exclure toutes les rubriques Contenu Inclure toutes les rubriques ... Paramtre Configuration Constituer le fichier de documentation Bus Quantum local Affichage Imprimer filling feeding box (?) Mixing (?) ST1 (?) IL1 3 Exclure la rubrique ChargerInclure les rubriques Emp Sec-SR Evnements (?) Tables d'animation (?) Bas de page Affichage Imprimer 4
Les fonctions suivantes sont entre autres disponibles pour la documentation du projet : z impression de tout (2) ou partie (3) du projet z slection entre affichage structurel et fonctionnel (1) z ajustement du rsultat (bas de page, informations gnrales, etc.) z impression locale pour les diteurs de langage de programmation, le configurateur, etc. z mise en vidence spciale (criture en gras) des mots cls z libre choix du format de papier z aperu avant impression (4) z enregistrement de la documentation
62
Prsentation
Mode en ligne
63
Prsentation
Animation
Plusieurs possibilits sont disponibles pour l'animation de variables : animation de section Tous les langages de programmation (FBD, LD, SFC, IL et ST) peuvent tre anims. L'animation des variables et des liaisons s'effectue directement dans la section.
ST1 : [MAST] TIMER(IN := NOT pulse; PT := t#1s; (* Blink timer *) pulse := TIMER.Q; (* Count every pulse *) IF pulse = 1 THEN count := count + 1; END_IF; (* Animate lights according to counter *) CASE count OF 1: out1 := TRUE; 2: out2 := TRUE; ELSE (* All lights are on, switch then off again and start from out1 := FALSE; out2 := FALSE;
FBD1 : [MAST]
OR EN %IX1.5.4 %IX1.5.5
ENO
ENO
ENO
Error1 Result1
64
Prsentation
z
info-bulle Si le pointeur de la souris effleure une variable analogique, une info-bulle indique la valeur de celle-ci.
ST1 : [MAST] TIMER(IN := NOT pulse; PT := t#1s; (* Blink timer *) pulse := TIMER.Q; (* Count every pulse *) IF pulse = 1 THEN count := count + 1; 66 END_IF; (* Animate lights according to counter *) CASE count OF 1: out1 := TRUE; 2: out2 := TRUE; ELSE (* All lights are on, switch then off again and start from out1 := FALSE; out2 := FALSE;
fentre de contrle Pour chaque variable, il est possible de crer une fentre de contrle. Cette fentre affiche la valeur de la variable, son adresse et son commentaire (le cas chant). Cette fonction est disponible dans tous les langages de programmation.
ST1 : [MAST] TIMER(IN := NOT pulse; PT := t#1s; (* Blink timer *) pulse := TIMER.Q; (* Count every pulse *) IF pulse = 1 THEN count count := count + 1; 7 END_IF; (* Animate lights according to counter *) CASE count OF out1 1: out1 := TRUE; 2: out2 := TRUE; TRUE ELSE (* All lights are on, switch then off again and start from out1 := FALSE; out2 := FALSE;
65
Prsentation
z
fentre des variables Cette fentre affiche toutes les variables utilises dans la section courante.
fentre des variables Nom pump_1.start pump_1.cmd pump_1.speed high_anim jack_1_out jack_3_out midle_anim Low_anim hole_anim1 End_threading.x Unblocking.x hole_anim2 End_drilling.x Valeur 1 1 100 0 1 0 1 0 0 0 0 0 0 Type Bool Bool Int Bool Bool Bool Bool Bool Bool Bool Bool Bool Bool Commentaire
table d'animation Dans les tables d'animation, il est possible d'afficher, modifier ou forcer les valeurs de toutes les variables du projet. Une ou plusieurs valeurs peuvent tre modifies simultanment.
A T Tableau [Editeur FBD - FBD1 : MAST]] Modification Nom start Indexing_blocki... x tminErr tmaxErr text var1 var2 Forcer Valeur 1 0s 1 0 0 120 360 Dfinir une Type valeur Bool SFCSTEP_STATE Time Bool Bool Bool String 120 Int 360 Int Commentaire
66
Prsentation
Les points de surveillance vous permettent de voir les donnes de l'automate exactement au moment de leur cration (1) et pas seulement la fin du cycle. Les tables d'animation peuvent tre synchronises avec le point de surveillance (2). Un compteur (3) indique la frquence laquelle le point de surveillance est actualis. Section ST avec point de surveillance :
Point de surveillance 341 3
ST
ST (Section) : My_ST [MAST] if pump_1.start then pump_1.cmd: = true; else pump_1.cmd: = false; pump_1.speed: = 0; end_if; if pump_1.cmd then pump_1.speed: = pump_1.speed + 1; end_if; if pump_1.speed>100 then pump_1.speed: = 100; end_if; (* animation drilling & threadinf *) high_anim: = not jack_1_out and not jack_3_out; A T Tableau [Editeur FBD - My_ST : MAST]] Modification Nom start Indexing_blocki... t x tminErr Forcer Valeur Type Bool SFCST... Time Bool Bool Commentaire
67
Prsentation
Les points d'arrt vous permettent d'arrter l'excution du projet un endroit voulu. Section ST avec point d'arrt :
ST1 : [MAST] TIMER(IN := NOT pulse; PT := t#1s; (* Blink timer *) pulse := TIMER.Q; (* Count every pulse *) IF pulse = 1 THEN count := count + 1; END_IF; (* Animate lights according to counter *) CASE count OF 1: out1 := TRUE; 2: out2 := TRUE; ELSE (* All lights are on, switch then off again and start from out1 := FALSE; out2 := FALSE;
68
Prsentation
Le mode pas pas vous permet d'excuter le programme progressivement. Les fonctions pas pas sont disponibles si le projet a t stopp du fait de l'arrive un point d'arrt ou s'il se trouve dj en mode pas pas. Section ST en mode pas pas :
ST
2 ST (Section): test1 [MAST] 3 (* inc counter var1 *) my_dfb (var2, var3); ST ST (DFB) : test [test - t... out: = in; Pile dappel MAST Appels (du plus rcent au plus ancien) Section test test1 Instance Langage Ligne (test)my_dfb ST (1,4) ST (2,1) Affichage Fermer
Les fonctions suivantes sont disponibles en mode pas pas : z excution progressive du programme (step-by-step) z pas pas entrant (step into) (1) z pas pas sortant (step out) z pas pas principal (step over) z affichage de l'tape en cours d'excution (2) z mmoire d'appel (3) En cas d'excution rpte de la fonction "pas pas entrant" (step into), la mmoire d'appel permet d'afficher le chemin complet partir du premier point d'arrt (break point). Signets (Bookmark) Les signets vous permettent de marquer des sections de code afin de les retrouver facilement.
69
Prsentation
Visualisation du diagnostic
Description Unity Pro dispose d'un diagnostic du systme et des projets. Dans le cas o des erreurs se produisent, celles-ci s'affichent dans une fentre de diagnostic. Pour liminer l'erreur, il est possible d'ouvrir la section l'origine de l'erreur directement depuis la fentre de visualisation du diagnostic.
Visualisation du diagnostic Acquittement : 0 Acquitt Supprim Supprim Supprim Message Erreur Erreur de pile de Systme ... Erreur de pile de sauvegardeSystme ... Erreur de pile de sauvegardeSystme ... Dbordement d'index Systme ... Icne %S68 %S68 %S68 %S20 (MAST) Plage 0 0 0 0
28/01/2002 21:10:51
0 0
70
Prsentation
Fentre utilisateur
Introduction Les fentres utilisateur permettent de visualiser le processus d'automatisation. L'diteur de fentres utilisateur permet de crer, modifier et grer facilement des fentres utilisateur. La cration et l'accs aux fentres utilisateur s'effectuent via le navigateur de projet.
Navigateur de projet Vue structurelle Station Configuration 0 : X Bus Types de donnes drivs Types FB drivs Variables et instances FB ? Variables lmentaires ? Variablesdrives ? Variablen drives E/S ? Instances FB lmentaires ? Instances FB drives Communications Rseau Table de routage Programme Tches Evnements Table d'animation Fentre utilisateur Famille_1 Ecran_1 Ecran_2 Ecran_3 Famille_2 Famille_3 Documentation ? Page de garde ? Informations gnrales
71
Prsentation
Une fentre utilisateur contient une foule d'informations (variables dynamiques, aperus, textes descriptifs, ...) et permet de contrler et modifier facilement et rapidement les variables d'automatisation. Fentre utilisateur
FBD1 : [MAST]
50
Bloquer
0 100 Imprimer
Enclencher
Valider
Menu
L'diteur de fentres utilisateur propose les fonctions suivantes : fonctions de visualisation compltes z lments gomtriques Ligne, rectangle, ellipse, courbe, polygone, bitmap, texte z lments de commande (contrles) Bouton, case cocher, curseur, navigation l'cran, liens hypertexte, zone de saisie, zone de slection numrique z lments d'animation Bargraphe, chronogramme, bote de dialogue, apparition, disparition, couleurs clignotantes, animation de variables z cration d'une bibliothque ddie la gestion des objets graphiques z copie d'objets z cration d'une liste de toutes les variables utilises dans la fentre utilisateur z cration de messages utiliss dans les fentres utilisateur z accs direct partir des fentres utilisateur la table d'animation ou la table de renvoi d'une ou de plusieurs variables z info-bulles fournissant des informations complmentaires sur les variables z gestion des fentres utilisateur par familles z importation/exportation de certaines fentres utilisateur ou de familles compltes
z
72
Structure application
II
Prsentation
Objet de cette partie Contenu de cette partie Cette partie dcrit les structures programme application et mmoire associes chaque type dautomate. Cette partie contient les chapitres suivants :
Chapitre 2 3 4 5 6 Titre du chapitre Description des fonctions disponibles pour chaque type d'automate Structure du programme application Structure mmoire application Modes de marche Objets systme Page 75 77 117 133 157
73
Structure application
74
75
Fonctions d'automates
Tches et processus
Plates-formes Processeurs
Tche matre cyclique ou priodique Tche rapide priodique Tches auxiliaires priodique Taille maximum d'une section
X X -
X X -
X X 64 Ko
X X 4
X X -
X X -
X X 4 16 Mo
Traitement vnementiel 32 type E/S Traitement vnementiel 16 type Timer Total des traitements vnementiels type E/S + Timer Lgende X ou valeur 32
64 32 64
32 32
64 64
128 32 128
64 64
64 16 64
128 32 128
Tche ou traitement disponibles. La valeur donne leur nombre maximum. Tche ou traitement indisponibles.
76
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre dcrit la structure et lexcution des programmes raliss laide du logiciel Unity Pro. Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet 3.1 3.2 3.3 3.4 Description des tches et des traitements Description de sections et de sous-programmes Excution monotche Excution multitche Page 78 84 89 96
77
Structure du programme
3.1
Prsentation
Objet de cette section Contenu de ce sous-chapitre
Ce sous-chapitre dcrit les tches et les traitements composant le programme application. Ce sous-chapitre contient les sujets suivants :
Sujet Prsentation de la tche matre Prsentation de la tche rapide Prsentation des tches auxiliaires Gestions des traitements vnementiels Page 79 80 81 83
78
Structure du programme
Structure
Excution
Contrle
La tche matre peut tre contrle par le programme, les bits et les mots systme.
Objets systme %SW0 %S30 %S11 %S19 %SW27 %SW28 %SW29 %SW30 %SW31 %SW32 Description Priode de tche. Activation de la tche matre. Erreur du chien de garde. Dpassement priode. Dure du dernier cycle Mast (en millisecondes). Dure maximum du surdbit (en ms) pour Modicon M340. Dure minimum du surdbit (en ms) pour Modicon M340. Temps d'excution (en ms) du dernier cycle. Temps d'excution (en ms) du cycle le plus long. Temps d'excution (en ms) du cycle le plus court.
79
Structure du programme
80
Structure du programme
81
Structure du programme
Contrle
Les tches auxiliaires peuvent tre contrles par le programme, les bits et les mots systme.
Objets systme %SW2 %SW3 %SW4 %SW5 %S32 %S33 %S34 %S35 %S11 %S19 %SW36 %SW39 %SW42 %SW45 %SW37 %SW40 %SW43 %SW46 %SW38 %SW41 %SW44 %SW47 Description Priode de la tche auxiliaire 0 Priode de la tche auxiliaire 1 Priode de la tche auxiliaire 2 Priode de la tche auxiliaire 3 Activation de la tche auxiliaire 0 Activation de la tche auxiliaire 1 Activation de la tche auxiliaire 2 Activation de la tche auxiliaire 3 Erreur du chien de garde Dpassement priode. Temps d'excution du dernier cycle d'excution de la tche auxiliaire 0 (en ms). Temps d'excution du dernier cycle d'excution de la tche auxiliaire 1 (en ms). Temps d'excution du dernier cycle d'excution de la tche auxiliaire 2 (en ms). Temps d'excution du dernier cycle d'excution de la tche auxiliaire 3 (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire le plus long (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 1 le plus long (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 2 le plus long (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 3 le plus long (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 0 le plus court (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 1 le plus court (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 2 le plus court (en ms). Temps d'excution du cycle d'excution de la tche auxiliaire 3 le plus court (en ms).
82
Structure du programme
Ces tches de traitement sont prioritaires sur toutes les autres tches. Elles conviennent donc aux tches de traitement demandant des temps de rponse trs courts par rapport l'vnement. Le nombre de tches de traitement de l'vnement (voir Tches et processus, p. 76) qui peut tre programm dpend du type de processeur. Structure Une tche de traitement de l'vnement est compose d'une section unique (non conditionne). Elle est programme dans le langage LD, FBD, IL ou ST. Deux types d'vnements sont proposs :
z z
Evnement E/S : pour les vnements provenant de modules d'entres/sorties Evnement TIMER : pour les vnements provenant d'vnements Timer
Excution
L'excution d'une tche de traitement de l'vnement est asynchrone. L'occurrence d'un vnement achemine le programme d'application la tche de traitement associe la voie d'entre et de sortie ou l'vnement Timer qui a caus l'vnement.
Contrle
Les bits et mots systme suivants peuvent tre utiliss pour contrler les tches de traitement de l'vnement lors de l'excution du programme.
Objets systme %S38 %S39 %SW48 %SW75 Description Activation de traitement de l'vnement. Saturation de la pile de gestion des appels d'vnements. Nombre de tches de traitement de l'vnement excutes. Nombre des vnements de type Timer de la file d'attente.
83
Structure du programme
3.2
Prsentation
Objectif de cette section Contenu de ce sous-chapitre
84
Structure du programme
Description de sections
Prsentation des sections Les sections sont des entits autonomes de programmation. Les tiquettes de reprage des lignes d'instructions, des rseaux de contacts ... sont propres la section (pas de saut de programme possible vers une autre section). Elles se programment soit en :
z z z z z
langage contacts LD, langage en blocs fonctionnels FBD, Liste d'instructions IL, littral structur ST, diagramme fonctionnel en squence SFC,
sous rserve que le langage soit accept dans la tche. Les sections sont excutes dans leur ordre de programmation dans la fentre du navigateur (vue structurelle). Une condition d'excution peut tre associe une ou plusieurs sections dans les tches matre, rapides et auxiliaires, mais pas dans les traitements vnementiels. Elles sont relies une tche. Une mme section ne peut pas appartenir plusieurs tches en mme temps. Exemple Le dessin suivant donne l'exemple de structure d'une tche en sections. MAST Sections Sas Four_1 Schage SR Sections
85
Structure du programme
86
Structure du programme
d'un graphe principal programm en SFC, de macro-tapes (MS) programms en SFC dactions et transitions programmes en LD, FBD , ST ou IL
Les sections SFC sont programmables uniquement dans la tche matre (voir description dtaille des sections SFC). Exemple Le diagramme suivant donne un exemple de constitution d'une section SFC et montre les appels des macro-tapes utilises partir du diagramme. MAST Sections Folder Sas Four_1 Traitement squentiel Chart MS_1_1 MS_2_1 MS_1_2 Unused Macro MS_4_1 MS_4_2
Actions
Transitions Schage
87
Structure du programme
Description de sous-programmes
Prsentation des sousprogrammes Les sous-programmes sont programms comme des entits distinctes en :
z z z z
langage contacts LD, langage en blocs fonctionnels FBD, liste dinstructions IL, Littral structur (ST).
Les appels aux sous-programmes s'effectuent partir des sections ou d'un autre sous-programme. Le nombre d'imbrications est limit 8. Un sous-programme ne peut pas s'appeler lui-mme (non rcursif). Les sous-programmes sont galement lis une tche. Un mme sous-programme ne peut pas tre appel par diffrentes tches. Exemple Le dessin suivant donne l'exemple de structure d'une tche en sections et en sousprogrammes. MAST Sections
88
Structure du programme
3.3
Prsentation
Objet de cette section Contenu de ce sous-chapitre
Excution monotche
89
Structure du programme
cyclique priodique
Illustration
Traitement du programme
90
Structure du programme
Acquisition des Ecriture en mmoire de l'tat des informations prsentes sur les entres entres des modules TOR et mtier associes la tche, Ces valeurs peuvent tre modifies par les valeurs de forage. Traitement du programme Excution du programme application, crit par l'utilisateur,
Mise jour des Ecriture des bits ou des mots de sorties associs aux modules TOR et sorties mtier associs la tche selon l'tat dfini par le programme application. Comme pour les entres, lcriture des sorties peut tre modifie par les valeurs de forage.
Note : Durant les phases d'acquisition des entres et de mise jour des sorties, le systme ralise aussi implicitement la surveillance de l'automate (gestion des bits et mots systme, mise jour des valeurs courantes de l'horodateur, mise jour des voyants d'tat LED et crans LCD (par pour Modicon M340), dtection des passages RUN/STOP, ...) et le traitement des requtes en provenance du terminal (modifications et animation).
Mode de marche
Automate en RUN, le processeur effectue dans l'ordre le traitement interne, l'acquisition des entres, le traitement du programme application et la mise jour des sorties. Automate en STOP, le processeur effectue :
z z z
le traitement interne, l'acquisition des entres (1), et suivant la configuration choisie : z mode repli : les sorties sont mises en position de "repli", z mode maintien : les sorties sont maintenues leur dernire valeur.
(1) dans le cas des automates Premium, Atrium et Quantum, lacquisition des entres est inhibe lorsque lautomate est en STOP.
91
Structure du programme
Fonctionnement
Traitement du programme %I %Q %I
Traitement du programme %Q
Cycle n
Cycle n+1
Description
Ce type de fonctionnement consiste enchaner les cycles de tche les uns aprs les autres. Aprs la mise jour des sorties, le systme effectue sont propre traitement et commence un autre cycle de tche, sans s'arrter.
Contrle du cycle
Le cycle est contrl par le chien de garde (voir Contrle de la dure du cycle, p. 94).
92
Structure du programme
Excution priodique
Description Dans ce mode de fonctionnement, l'acquisition des entres, le traitement du programme application et la mise jour des sorties s'effectuent de faon priodique selon une priode dfinie de 1 255 ms. En dbut de cycle automate, une temporisation dont la valeur courante est initialise la priode dfinie, commence dcompter. Le cycle automate doit se terminer avant l'expiration de cette temporisation qui relance un nouveau cycle. Fonctionnement Le dessin suivant montre les phases d'excution du cycle automate.
Traitement du programme %Q
Cycle n+1
Mode de marche
Le processeur effectue dans l'ordre le traitement interne, l'acquisition des entres, le traitement du programme application et la mise jour des sorties.
z z
Si la priode n'est pas encore termine, le processeur complte son cycle de fonctionnement jusqu' la fin de la priode par du traitement interne. Si le temps de fonctionnement devient suprieur celui affect la priode, l'automate signale un dbordement de priode par la mise l'tat 1 du bit systme %S19 de la tche, le traitement se poursuit et est excut dans sa totalit (il ne doit pas dpasser nanmoins le temps limite du chien de garde). Le cycle suivant est enchan aprs l'criture implicite des sorties du cycle en cours.
Contrle du cycle
dbordement de priode (voir Contrle de la dure du cycle, p. 94), par chien de garde (voir Contrle de la dure du cycle, p. 94).
93
Structure du programme
En fonctionnement priodique, un contrle supplmentaire permet la dtection d'un dpassement priode. Un dpassement priode n'entrane pas l'arrt de l'automate tant qu'il reste infrieur la valeur du chien de garde. Le bit %S19 indique que la priode est dpasse. Il est dfini sur 1 par le systme lorsque la dure de cycle est suprieure la priode de la tche. Le mot %SW0 contient la valeur de la priode (en ms). Il est initialis lors d'un redmarrage froid par la valeur dfinie. Il peut tre modifi par l'utilisateur.
Les mots systme suivants peuvent tre utiliss pour obtenir des informations sur la dure de cycle :
z z z
%SW30 contient le temps d'excution du dernier cycle %SW31 contient le temps d'excution du cycle le plus long %SW32 contient le temps d'excution du cycle le plus court
Note : Vous pouvez explicitement accder ces diffrentes informations partir de l'diteur de configuration.
94
Structure du programme
Cycle %Ii Lecture des entres de la station ni %Qi Ecriture des sorties de la station ni
Description
Phase 1 2 3 4 Description Lecture des entres de la station dentres/sorties dcentralise associe la section n1. Traitement du programme de la section 1 Ecriture des sorties de la station dentres/sorties dcentralise associe la section n1. Le cycle se poursuit de la mme manire pour les sections et stations suivantes.
95
Structure du programme
3.4
Prsentation
Objet de cette section Contenu de ce sous-chapitre
Excution multitche
96
Structure du programme
Illustration
La figure suivante indique les tches d'une structure multitche ainsi que leur niveau de priorit.
Tche auxiliaire AUXi Tche matre MAST Tche rapide FAST Traitement vnement EVTi et TIMERi
Priorit
Description
La tche matre (MAST) est toujours l'application de base. Les autres tches varient en fonction du type d'automate (voir Tches et processus, p. 76). Des niveaux de priorit sont dtermins pour chaque tche de faon tablir un ordre d'importance pour les types de traitements. Le traitement vnementiel peut tre activ de faon asynchrone par rapport aux tches priodiques, dans un ordre gnr par des vnements externes. Celui-ci est trait en priorit et ncessite l'interruption de tout autre traitement en cours.
97
Structure du programme
Prcautions
Multitche : rgles d'or ATTENTION Multitche : rgles d'or Le partage d'entres et de sortie entre diffrentes tches peut gnrer un dysfonctionnement de l'application. Il est vivement recommand d'associer chaque entre ou sortie une tche uniquement. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
98
Structure du programme
Le diagramme suivant illustre le squencement des tches d'un traitement multitche comportant une tche matre cyclique, une tche rapide de priode 20 ms et un traitement vnementiel.
E v ne me nt Rapid e Ma t re Sy s t m e ET 20 ms ETS ETS ETS E ET TS ETS
TS
ET 2 0ms
TS
T 20 ms
2 0ms
Lgende : E : acquisition des entres T : traitement du programme S : mise jour des sorties
99
Structure du programme
L'excution des tches rapide et vnementielles peut tre contrle par programme travers l'utilisation des bits systme :
z z z z
%S30 permet d'activer ou non la tche matre MAST. %S31 permet d'activer ou non la tche rapide FAST. %S32 %S35 permettent d'activer ou pas les tches auxiliaires AUX0 AUX3. %S38 permet d'activer ou pas les traitements vnementiels EVTi.
Note : Les fonctions lmentaires MASKEVT et UNMASKEVT permettent aussi le masquage et le dmasquage global des vnements par programme.
100
Structure du programme
Note : Les dures maximum et minimum sont prises partir des dures mesures depuis le dernier redmarrage froid.
101
Structure du programme
Priodes de tche
Les priodes de tche sont dfinies dans les proprits de la tche. Elles peuvent tre modifies par les mots systme suivants.
Mots systme %SW0 %SW1 %SW2 %SW3 %SW4 %SW5 Tche Cycle FAST AUX0 AUX1 AUX2 AUX3 Valeurs 0..255 ms 1..255 ms 10 ms..2,55 s 10 ms..2,55 s 10 ms..2,55 s 10 ms..2,55 s Valeurs par Remarques dfaut Cyclique 5 ms 100ms 200ms 300ms 400ms 0 = en fonctionnement cyclique Les valeurs de la priode sont exprimes en 10 ms.
Lorsque la dure de cycle de la tche dpasse la priode, le systme dfinit le bit systme %S19 de la tche sur 1 et continue avec le cycle suivant. Note : Les valeurs des priodes ne dpendent pas de la priorit des tches. Il est possible de dfinir la priode d'une tche rapide qui est plus importante que la tche matre.
102
Structure du programme
Chien de garde
L'excution de chaque tche est contrle par un chien de garde configurable, l'aide des proprits de la tche. Le tableau suivant offre la place des valeurs du chien de garde pour chacune des tches.
Tches Cycle FAST AUX0 AUX1 AUX2 AUX3 Valeurs du chien de garde Valeur du chien de (min...max) (ms) garde par dfaut (ms) 10..1500 10..500 100..5000 100..5000 100..5000 100..5000 250 100 2000 2000 2000 2000 Mot systme associ %SW11 -
Si le dpassement du chien de garde se produit, l'application est dclare en erreur, ce qui entrane l'arrt immdiat de l'automate (tat HALT). Le mot %SW11 contient la valeur du chien de garde de la tche matre en ms. Cette valeur n'est pas modifiable par le programme. Le bit %S11 indique que le chien de garde est dpass. Il est dfini sur 1 par le systme lorsque la dure de cycle est suprieure au chien de garde. Note : z La ractivation de la tche requiert la connexion du terminal afin d'analyser la cause de l'erreur, la corriger, rinitialiser l'automate et le faire passer sur RUN. z Il n'est pas possible de quitter HALT en basculant vers STOP. Pour ce faire, vous devez rinitialiser l'application pour vrifier la cohrence des donnes.
103
Structure du programme
Lorsque le programme d'application s'excute, il est possible d'activer ou d'inhiber une tche l'aide des bits systme suivants :
Bits systme %S30 %S31 %S32 %S33 %S34 %S35 Tche Cycle FAST AUX0 AUX1 AUX2 AUX3
La tche est active lorsque le bit systme associ est dfini sur 1. Ces bits sont tests par le systme la fin de la tche matre. Lorsqu'une tche est inhibe, les entres continuent tre lues et les sorties tre crites. Au dmarrage du programme d'application, uniquement au premier cycle d'excution, la tche matre est active. A la fin du premier cycle, les autres tches sont automatiquement actives sauf si l'une des tches est inhibe (associe au bit systme dfini sur 0) par le programme. Contrles des phases de lecture d'entre et d'criture de sortie Les bits des mots systme suivants peuvent tre utiliss (uniquement lorsque l'automate est en RUN) pour inhiber les phases de lecture d'entre et d'criture de sortie.
Inhibition de phases... lecture d'entres criture des sorties Cycle %SW8.0 %SW9.0 FAST %SW8.1 %SW9.1 AUX0 %SW8.2 %SW9.2 AUX1 %SW8.3 %SW9.3 AUX2 %SW8.4 %SW9.4 AUX3 %SW8.5 %SW9.5
Note : Par dfaut, les phases de lecture d'entre et d'criture de sortie sont actives (bits des mots systme %SW8 et %SW9 dfinis sur 0). Sur Quantum, les entres/sorties qui sont distribues via le bus DIO ne sont pas affectes par les mots %SW8 et %SW9.
104
Structure du programme
105
Structure du programme
Cas des entres\sorties locales : Chaque module dentres/sorties ou groupe de modules peut tre associ une et une seule tche (MAST, FAST ou AUX 0..3). Cas des entres\sorties dcentralises : Les stations dentres/sorties distantes peuvent tre associs uniquement la tche matre (MAST). Laffectation seffectue au niveau des sections (voir Excution des sections Quantum avec entres/sorties dcentralises, p. 95) , avec 1 station dentres distantes et 1 station de sorties distantes par section. Cas des entres\sorties distribues : Les stations dentres/sorties distribues peuvent tre associes uniquement la tche matre (MAST). Les entres sont lues en dbut de tche matre et les sorties sont crites en fin de tche matre.
La modularit des modules TOR Premium tant de 8 voies successives (voies 0 7, voies 8 15, ...), les entres/sorties peuvent tre affectes par groupes de 8 voies, indiffremment la tche MAST, AUXi ou FAST. Exemple : il est possible d'affecter les voies d'un module 28 entres/sorties de la manire suivante :
z z z z
entres 0 7 affectes la tche MAST, entres 8 15 affectes la tche FAST, sorties 0 7 affectes la tche MAST, sorties 8 15 affectes la tche AUX0.
106
Structure du programme
Priorit 2
Priorit 1 Priorit
Priorit 0
z z
Le traitement vnementiel EVT0 est le traitement le plus prioritaire. Il peut luimme interrompre les autres traitements vnementiels. Les traitements vnementiels EVTi dclenchs par des modules dentres/ sorties, (priorit 1) sont prioritaires sur les traitements vnementiels TIMERi dclenchs par temporisateurs (priorit 2). Sur les automates Modicon M340, Premium et Atrium : les types de traitements vnementiels avec un niveau de priorit 1 sont stocks et traits dans l'ordre. Sur l'automate Quantum : la priorit des types de traitement de priorit 1 est dtermine : z par la position du module d'entres/sorties dans le rack, z par la position de la voie dans le module. Le module de numro de position le plus faible a la priorit la plus grande. Les traitements vnementiels dclenchs par temporisateur ont la priorit 2. La priorit de traitement est dtermine par le numro de temporisateur le plus faible.
107
Structure du programme
Contrle
Le programme d'application peut globalement valider ou inhiber les diffrents types de traitements vnementiels au travers du bit systme %S38. Si un ou plusieurs vnements interviennent pendant qu'ils sont inhibs, les traitements associs sont perdus. Deux fonctions lmentaires du langage, MASKEVT() et UNMASKEVT(), utilises dans le programme application, permettent galement de masquer ou dmasquer les traitements vnementiels. Si un ou plusieurs vnements interviennent pendant qu'ils sont masqus, ils sont mmoriss par le systme et les traitements associs ne seront effectus qu'aprs dmasquage.
108
Structure du programme
Prslection
1..1023
10
Phase
0..1023
109
Structure du programme
Fonction ITCNTRL
Reprsentation en FBD :
ITCNTRL Enable Reset_Timer Hold_Timer Nb_Task_Event ENABLE RESET HOLD EVENT STATUS VALUE Status_Timer Current_Value
Chronogramme.
RESET ENABLE
HOLD
Prslection x BT VALUE
1 2 3
Evnement
Evnement
Evnement
Evnement
110
Structure du programme
Marche normale
Le tableau suivant dcrit le principe de dclenchement des traitements vnementiel de type TIMER (voir chronogramme ci-dessus).
Phase 1 2 3 Description Lors d'un front montant sur l'entre RESET, le temporisateur est remis 0. La valeur courante VALUE du temporisateur crot de 0 vers la valeur de prslection d'une unit chaque impulsion de la base de temps. Un vnement est mis ds que la valeur courante a atteint la valeur de prslection, le temporisateur est remis 0, puis est denouveau activ. Le traitement vnementiel associ est dclench, si lvnement nest pas masqu. Il peut tre diffr si un traitement vnementiel de priorit suprieure ou identique est cours dexcution. Lorsque l'entre ENABLE est dfinie sur 0, les vnements ne sont plus mis. Les traitements vnementiel de type TIMER ne sont plus dclenchs. Quand l'entre HOLD est dfinie sur 1, le temporisateur est fig, la valeur courante n'volue plus, tant que cette entre ne repasse pas 0.
4 5
Le paramtre Phase permet de dclencher des traitements vnementiels de type TIMER diffrents intervalle de temps constant. Ce paramtre dfinit un dcalage temporel avec une origine de temps absolu, qui est le dernier passage de STOP en RUN de l'automate. Condition de fonctionnement :
z z
Les traitements vnementiels doivent avoir les mmes valeurs de base de temps et de prslection. Les entres RESET et HOLD ne doivent pas tre positionnes 1.
Exemple : 2 traitements vnementiels Timer1 et Timer2 excuter 70ms dintervalle. Le premier traitement Timer1 pourra tre dfini avec une phase gal 0 et le second Timer2 avec une phase de 70ms (phase de 7 et base de temps de 10ms). Tout vnement dclench par le temporisateur associ au traitement Timer1 sera suivi 70ms aprs dun vnement issu temporisateur associ au traitement Timer2
111
Structure du programme
Chronogramme de l'exemple dcrit ci-dessus avec une mme valeur de prslection de 16 (160 ms) pour Timer1 et Timer2.
STOP/RUN transition ENABLE Prslection VALUE Timer1 160 Evnement 0 Prslection VALUE Timer2 Phase 1 2 70 3 230 Evnement 1 Evnement 2 .................... Evnement n Evnement 1 .................... Evnement n
Evnement 0
Le tableau suivant dcrit le fonctionnement aprs un passage de STOP en RUN de l'automate (voir chronogramme ci-dessus) :
Phase 1 Description Sur une transition STOP RUN de lautomate la temporisation se dclenche de faon ce que la valeur de prslection soit atteinte au bout dun temps gal la Phase x base de temps, le premier vnement est alors mis. La valeur courante VALUE du temporisateur crot de 0 vers la valeur de prslection d'une unit chaque impulsion de la base de temps. Un vnement est mis ds que la valeur courante a atteint la valeur de prslection, le temporisateur est remis 0, puis est denouveau activ. Le traitement vnementiel associ est dclench, si lvnement nest pas masqu. Il peut tre diffr si un traitement vnementiel de priorit suprieure ou identique est cours dexcution.
2 3
112
Structure du programme
les entres associes la voie qui a provoqu l'vnement, les entres et les sorties utilises dans le traitement vnementiel.
Note : Ces changes peuvent tre relatifs : z une voie (exemple module de comptage) ou z un groupe de voies (module TOR). Dans cas , si le traitement modifie par exemple les sorties 2 et 3 d'un module TOR, c'est l'image des sorties 0 7 qui sera transfre vers le module.
Cas du Quantum
Les entres acquises et les sorties mises jour sont slectionnes en configuration. Seules des entres/sorties locales peuvent tre choisies. Les entres changes (et le groupe de voies associes) lors de l'excution du traitement vnementiel sont remis jour (perte des valeurs historiques, donc des fronts). Il faut donc viter de tester des fronts sur ces entres dans les tches matre (MAST), rapide (FAST) ou auxiliaires (AUXi).
Rgle de programmation
113
Structure du programme
114
Structure du programme
Cette figure illustre le dmasquage des vnements effectu dans la tche MAST.
(* Si dmarrage froid ALORS autoriser les vnements*) %S1 %S38 S (* Si dmarrage froid ALORS dmasquer vnement franchissement seuil 0:%QW1.1.0.5*) %QW1.0.1.5 (* Si dmarrage froid ALORS dmasquer vnement franchissement seuil 1:QW1.1.0.6*) %S1 %QW1.0.1.6
%S1
Cette figure illustre le contenu possible d'un traitement vnementiel (test et activation du bit d'vnement).
(* Si vnement franchissement seuil 0 ALORS mise 1 sortie physique %Q2.0*) %IW1.0.3.5 (* Si vnement franchissement seuil 1 ALORS mise 0 sortie physique %Q2.0*) %IW1.0.3.6 %Q2.0 R %Q2.0 S
115
Structure du programme
116
4
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre dcrit la structure mmoire application des automates Premium, Atrium et Quantum. Ce chapitre contient les sous-chapitres suivants :
Souschapitre 4.1 4.2 Sujet Structure de mmoire pour les automates Premium, Atrium et Modicon M340 Structure de la mmoire des automates Quantum Page 119 126
117
Structure mmoire
118
Structure mmoire
4.1
Description
Objet de ce souschapitre Contenu de ce sous-chapitre Cette section dcrit la structure de la mmoire des automates Premium, Atrium et Modicon M340 et en prsente les diffrentes zones. Ce sous-chapitre contient les sujets suivants :
Sujet Structure de mmoire pour automates Modicon M340 Structure mmoire des automates Premium et Atrium Description dtaille des zones mmoires Page 120 123 125
119
Structure mmoire
les donnes d'application localises, les donnes d'application non localises, le programme : descripteurs de tche, code excutable, mots constants, valeurs initiales et configuration des entres/sorties.
Structure
Les donnes et le programme sont pris en charge par la RAM interne du module processeur. Le schma suivant dcrit la structure de la mmoire :
Donnes sauvegardes Donnes Sauvegarde %MW Mmoire flash interne
Programme RAM
120
Structure mmoire
Sauvegarde de programmes
Si la carte mmoire est prsente, fonctionne correctement et n'est pas protge en criture, le programme est sauvegard sur la carte mmoire : z Automatiquement aprs : z un chargement, z une modification en mode connect, z un front montant du bit systme %S66 dans le programme du projet. z Manuellement : z l'aide de la commande Automate Sauvegarde du projet Enregistrer la sauvegarde. z dans une table d'animation en dfinissant le bit systme %S66. Note : si vous retirez la carte mmoire alors qu'une sauvegarde est en cours, le programme de la carte mmoire sera perdu. Le bit systme %S65 (voir Description des bits systme %S60 %S78, p. 170) permet de dsactiver l'accs du processeur la carte mmoire. La carte mmoire utilise la technologie Flash. Par consquent, aucune pile n'est ncessaire.
Restauration du programme
Si la carte mmoire est prsente et fonctionne correctement, le programme est copi de la carte mmoire de l'automate vers la mmoire interne : z Automatiquement aprs : z un redmarrage. z Ou manuellement l'aide de la commande Unity Pro Automate Sauvegarde du projet Restituer la sauvegarde. Note : lorsque vous insrez la carte mmoire en mode Run ou Stop, vous devez procder un redmarrage pour restituer le projet sur l'automate.
Donnes sauvegardes
Les donnes localises et non localises et le tampon de diagnostic sont enregistrs automatiquement dans la mmoire Flash interne lors de la mise hors tension. Ils sont restaurs lors d'un dmarrage chaud. La fonction SAVE_PARAM permet de rgler les paramtres actuels et initiaux dans la mmoire RAM interne (comme pour les autres automates). Le contenu de la RAM interne et de la carte mmoire est diffrent (%S96=0 et le voyant CARDERR est allum). Lors d'un dmarrage froid (aprs restauration de l'application), les paramtres en cours sont remplaces par les valeurs initiales les plus rcentes, condition qu'un enregistrement sur une carte mmoire ait t excut auparavant (fonction Enregistrer la sauvegarde ou front montant %S66).
Save_Param
121
Structure mmoire
Sur un front montant %S94, les valeurs courantes remplacent les valeurs initiales dans la mmoire interne. Le contenu de la RAM interne et de la carte mmoire est diffrent (%S96=0 et le voyant CARDERR est allum). Lors d'un dmarrage froid, les valeurs en cours sont remplaces par les valeurs initiales les plus rcentes, condition qu'un enregistrement sur une carte mmoire ait t excut auparavant (fonction Enregistrer la sauvegarde ou front montant %S66). Les valeurs de %MWi peuvent tre sauvegardes dans la mmoire Flash interne avec %SW96 (voir Description des mots systme %SW70 %SW99, p. 191). Ces valeurs seront restaures lors du redmarrage froid, y compris du tlchargement de l'application, si l'option Initialiser %MWi au dmarrage froid n'est pas coche dans l'cran Configuration (voir Manuel Unity Pro, Modes opratoires, Configuration des processeurs Modicon M340) du processeur. Dans le cas des %MW, les valeurs de ces mots peuvent tre enregistres et restitues sur redmarrage froid ou chargement si l'option de rinitialisation des %MW sur redmarrage froid dans l'cran Configuration du processeur n'est pas coche. Avec le mot %SW96, la gestion des mots internes %MW de l'action mmoire (enregistrement, suppression) et les informations sur les mots internes %MW des tats des actions est possible.
Sauvegarde %MW
application : ces cartes contiennent le programme d'application et les pages Web, application + stockage de fichiers : ces cartes mmoires contiennent le programme d'application, les fichiers de donnes des EFB de gestion des fichiers de carte mmoire et les pages Web.
122
Structure mmoire
les donnes localises de l'application, les donnes non localises de l'application, le programme : descripteurs et code excutable des tches, mots constants, valeurs initiales et configuration des entres/sorties.
Les donnes et programme sont supports par la mmoire RAM interne au module processeur. Le schma suivant dcrit la structure mmoire :
Donnes localises RAM interne Donnes non localises
Programme
Les donnes sont supportes par la mmoire RAM interne au module processeur. Le programme est support par la carte mmoire dextension. Le schma suivant dcrit la structure mmoire :
RAM interne Donnes localises Donnes non localises Carte mmoire externe
Programme
Sauvegarde de la mmoire
La mmoire RAM interne est secourue par la pile cadmium-nickel supporte par le module processeur. Les cartes mmoires RAM sont secourues par pile cadmium-nickel.
123
Structure mmoire
application : ces cartes contiennent le programme de lapplication. Elles sont proposs en technologie RAM ou Flash Eprom application + stockage de fichiers : ces cartes contiennent en plus du programme, une zone permettant darchiver/restituer des donnes par programme. Elles sont proposes en technologie RAM ou Flash Eprom stockage de fichiers : ces cartes permettent darchiver/restituer des donnes par programme. Ces cartes sont en technologie SRAM.
Le schma suivant dcrit la structure mmoire avec carte de type application et stockage de fichiers :
RAM interne Donnes localises Donnes non localises Carte mmoire externe
Programme
Fichiers
Note : dans le cas des processeurs possdant 2 emplacements pour carte mmoire, lemplacement infrieur est rserv la fonction stockage de fichiers.
124
Structure mmoire
donnes localises : z donnes boolennes %M, %Si et numriques %MW, %SW, z donnes associes aux modules %I, %Q, %IW, %QW,%KW.... donnes non localises : z donnes boolennes et numriques (instances) z Instances de EFB et DFB
codes excutables : z code du programme, z code associ aux EF, EFB et la gestion des modules E/S, z code associ aux DFB, constantes : z mots constants KW, z constantes associes aux entres/sorties, z valeurs initiales des donnes.
Cette zone contient aussi les informations ncessaires au dchargement dapplication : codes graphiques, symboles... Autres informations Dautres informations lies la configuration et la structure de lapplication sont aussi stockes en mmoire (en zone donnes ou programme suivant le type dinformation).
z z z
Configuration: autres donnes lies la configuration (configuration matrielle, configuration logicielle). Systme: donnes utilises par le systme dexploitation (pile des tches,...). Diagnostic: informations lies au diagnostic du procd ou du systme, buffer de diagnostic.
125
Structure mmoire
4.2
Description
Objet de ce souschapitre Contenu de ce sous-chapitre
Ce chapitre dcrit la structure de la mmoire des automates Quantum et en prsente les diffrentes zones. Ce sous-chapitre contient les sujets suivants :
Sujet Structure mmoire des automates Quantum Description dtaille des zones mmoires Page 127 130
126
Structure mmoire
les donnes localises (State Ram) de l'application, les donnes non localises de l'application, le programme : descripteurs et code excutable des tches, valeurs initiales et configuration des entres/sorties.
Les donnes et programme sont supports par la mmoire RAM interne au module processeur. Le schma suivant dcrit la structure mmoire :
Donnes localises Donnes non localises RAM interne
Programme
Systme dexploitation (1) Sauvegarde application (1) (1) uniquement sur processeurs 140 CPU 31/43/53
127
Structure mmoire
Les processeurs Quantum 140 CPU 6 peuvent recevoir une carte mmoire dextension. Les donnes sont supportes par la mmoire RAM interne au module processeur. Le programme est support par la carte mmoire dextension. Le schma suivant dcrit la structure mmoire :
RAM interne Donnes localises Donnes non localises Carte mmoire externe
Programme
Sauvegarde de la mmoire
La mmoire RAM interne est secourue par la pile cadmium-nickel supporte par le module processeur. Les cartes mmoires RAM sont secourues par pile cadmium-nickel.
128
Structure mmoire
application : ces cartes contiennent le programme de lapplication. Elles sont proposs en technologie RAM ou Flash Eprom application + stockage fichiers : ces cartes contiennent en plus du programme, une zone permettant darchiver/restituer des donnes par programme. Elles sont proposes en technologie RAM ou Flash Eprom stockage fichiers :ces cartes permettent darchiver/restituer des donnes par programme. Ces cartes sont en technologie SRAM.
Le schma suivant dcrit la structure mmoire avec carte de type application et stockage de fichiers :
RAM interne Donnes localises Donnes non localises Carte mmoire externe
Programme
Fichiers
Note : dans le cas des processeurs possdant 2 emplacements pour carte mmoire, lemplacement du bas est rserv la fonction stockage de fichiers.
129
Structure mmoire
Donnes localises
Programme utilisateur
code du programme, code associ aux EF, EFB et la gestion des modules E/S, code associ aux DFB, valeurs initiales des variables.
Cette zone contient aussi les informations ncessaire au dchargement dapplication : codes graphiques, symboles... Systme dexploitation Dans le cas des processeurs 140 CPU 31/41/51, cette zone contient le systme dexploitation pour le traitement de lapplication. Ce systme dexploitation est transfr dune mmoire interne EPROM vers la mmoire interne RAM lors de la mise sous tension. Une zone mmoire Flash EPROM de 1435K8, disponible sur les processeurs 140 CPU 31/41/51, permet la sauvegarde du programme et des valeurs initiales des variables. Lapplication contenue dans cette zone est transfre automatiquement dans la RAM interne la mise sous tension du processeur automate (si le commutateur PLC MEM est en position off en face avant du processeur automate).
Sauvegarde application
130
Structure mmoire
Autres informations
Dautres informations lies la configuration et la structure de lapplication sont aussi stockes en mmoire (en zone donnes ou programme suivant le type dinformation).
z z z
Configuration: autres donnes lies la configuration (configuration matrielle, configuration logicielle). Systme: donnes utilises par le systme dexploitation (pile des tches,...). Diagnostic: informations lies au diagnostic du procd ou du systme, buffer de diagnostic.
131
Structure mmoire
132
Modes de fonctionnement
5
Prsentation
Objet de ce chapitre Ce chapitre dcrit les modes de fonctionnement de l'automate en cas de coupure et de reprise secteur, les incidences sur le programme application et la mise jour des entres/sorties. Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet 5.1 5.2 5.3 Modes de fonctionnement des automates Modicon M340 Mode de fonctionnement des automates Premium et Quantum Mode HALT de l'automate Page 134 145 156
Contenu de ce chapitre
133
Modes de fonctionnement
5.1
Description
Objet de cette section Contenu de ce sous-chapitre Cette section dcrit les modes de fonctionnement des automates Modicon M340.
134
Modes de fonctionnement
Illustration
Dfaut secteur
Sauvegarde Contexte
Vrification du contexte
135
Modes de fonctionnement
Fonctionnement
2 3
136
Modes de fonctionnement
Action sur bouton RESET la mise sous tension Dmarrage froid forc en STOP ou en RUN selon dfinition en configuration Action sur bouton RESET la mise sous tension moins de 500 ms aprs une mise hors tension Dmarrage froid forc en STOP ou en RUN selon dfinition en configuration
Action sur bouton RESET la mise sous tension Dmarrage froid forc en STOP Le aprs une erreur de processeur, sauf dans le cas dmarrage en RUN selon dfinition en d'une erreur d'un chien de garde configuration n'est pas pris en compte Initialisation depuis Unity Pro. Forage du bit systme %S0 Dmarrage en STOP ou en RUN (conserve le mode de marche en cours), initialisation uniquement des applications
Reprise aprs une coupure de l'alimentation avec Dmarrage froid forc en STOP ou en perte du contexte RUN selon dfinition en configuration
ATTENTION PERTE DE DONNEES LORS DU TRANSFERT D'UNE APPLICATION Le chargement ou transfert d'une application dans l'automate entrane l'initialisation des variables non localises. Il est ncessaire d'affecter aux donnes une adresse topologique si le process impose de conserver les valeurs courantes de ces donnes lors du transfert d'application. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
137
Modes de fonctionnement
ATTENTION RISQUE DE PERTE D'APPLICATION S'il n'y a pas de carte mmoire dans l'automate lors d'un redmarrage froid, l'application est perdue. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
Illustration
Retour secteur
Auto-test de la configuration Coupure secteur > micro-coupure Non BOT Oui Initialisation de l'application
138
Modes de fonctionnement
Fonctionnement
Le tableau ci-aprs dcrit les phases de reprise de l'excution du programme sur reprise froid.
Phase 1 Description Le dmarrage s'effectue en RUN ou en STOP suivant l'tat du paramtre Dmarrage automatique en RUN dfini en configuration ou si celle-ci est utilise en fonction de l'tat de l'entre RUN/STOP. L'excution du programme reprend en dbut de cycle. Le systme effectue :
z la dsactivation des tches, autres que la tche matre, jusqu' la fin du premier
z z z z z z z
dfinies dans l'diteur de donnes (valeur 0, si aucune valeur initiale dfinie). Pour les mots %MW, les valeurs peuvent tre rcupres sur redmarrage froid si les deux conditions suivantes s'appliquent : z l'option Initialiser %MW au dmarrage froid (Voir Unity Pro, Modes opratoires, Configuration des processeurs Modicon M340) n'est pas slectionne dans l'cran de configuration du processeur, z la mmoire flash interne contient une sauvegarde valide (voir %SW96 (voir Description des mots systme %SW70 %SW99, p. 191)). Remarque : si le nombre de mots %MW dpasse la taille de sauvegarde (voir la structure de la mmoire des automates M340 (voir Structure de mmoire des automates Modicon M340, p. 120)) lors de l'opration d'enregistrement, les mots restants sont dfinis sur 0. l'initialisation des blocs fonction lmentaires partir des donnes initiales. l'initialisation des donnes dclares dans les DFB : soit 0, soit la valeur initiale dclare dans le type du DFB. l'initialisation des bits et mots systme. le positionnement des graphes sur les tapes initiales. l'annulation d'un forage. l'initialisation des files de message et d'vnements. l'envoi des paramtres de configuration tous les modules d'entres/sorties TOR et mtiers.
(premier cycle en RUN) positionn 1, le mot %SW10 (dtection d'un redmarrage froid lors du premier tour d'une tche) est mis 0, z la remise l'tat 0 des bits %S0 et %S13, et la remise 1 de chaque bit du mot %SW10 la fin de ce premier cycle de la tche matre, z l'activation de la tche rapide et des traitements vnementiels la fin de ce premier cycle de la tche matre.
139
Modes de fonctionnement
Il est conseill de tester le bit %SW10.0 pour dtecter un dmarrage froid et lancer un traitement spcifique ce dmarrage froid. Note : Il est aussi possible de tester le bit %S0, si le paramtre Dmarrage automatique en RUN a t slectionn. Dans le cas inverse, l'automate dmarre en STOP, le bit %S0 passe alors 1au premier cycle de reprise mais n'est pas vu par le programme puisque celui-ci n'est pas excut.
Changements de sortie
suivant le choix effectu en configuration. A la reprise secteur, les sorties sont zro jusqu' ce qu'elles soient remises jour par la tche.
140
Modes de fonctionnement
par une reprise secteur sans perte du contexte, par mise 1 par programme du bit systme %S1, depuis Unity Pro par terminal, par suppression du processeur du rack sous tension. ATTENTION RISQUE DE PERTE D'APPLICATION S'il n'y a pas de carte mmoire dans l'automate lors d'une reprise chaud, l'application est perdue. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
141
Modes de fonctionnement
Illustration
Reprise secteur
Auto-test de la configuration
Coupure dtecte
142
Modes de fonctionnement
Fonctionnement
Le tableau ci-aprs dcrit les phases de reprise de lexcution du programme sur reprise chaud.
Phase 1 Description L'excution du programme ne reprend pas partir de llment o a eu lieu la coupure secteur. Le programme restant est ignor pendant le dmarrage chaud. Chaque tche redmarre depuis le dbut. A la fin du cycle de reprise, le systme effectue :
z la restitution de la valeur variable de l'application, z la dfinition du bit %S1 sur 1, z l'initialisation des files de messages et d'vnements, z l'envoi des paramtres de configuration tous les modules d'entres/
(jusqu' la fin du premier cycle de la tche matre). 3 Le systme effectue un cycle de reprise dans lequel il : z relance la tche matre depuis le dbut du cycle, z remet l'tat 0 le bit %S1 en la fin de ce premier cycle de la tche matre, z ractive la tche rapide et des traitements vnementiels la fin de ce premier cycle de la tche matre.
En cas d'une reprise chaud, si vous dsirez un traitement particulier vis--vis de l'application, vous devez crire le programme correspondant pour tester que %S1 est dfini sur 1 en dbut de programme de la tche matre. Ds la dtection de la coupure secteur, les sorties sont mises en position de repli :
z z
suivant le choix effectu en configuration. A la reprise secteur, les sorties sont en position de repli jusqu' ce qu'elles soient remises jour par la tche.
143
Modes de fonctionnement
Pour viter un redmarrage non souhait en mode RUN, utilisez : l'entre RUN/STOP sur les automates Modicon M340 Le non-respect de cette directive entranera la mort, des blessures graves ou des dommages matriels.
144
Modes de fonctionnement
5.2
Description
Objet de cette section Contenu de ce sous-chapitre Cette section dcrit les modes de fonctionnement des automates Premium et Quantum. Ce sous-chapitre contient les sujets suivants :
Sujet Traitement en cas de coupure et de reprise secteur des automates Premium/ Quantum Traitement d'un dmarrage froid d'automates Premium/Quantum Traitement des automates Premium/Quantum lors d'un redmarrage chaud Dmarrage automatique en mode RUN pour les modules Premium/Quantum Page 146 148 153 155
145
Modes de fonctionnement
Illustration
Sauvegarde Contexte OK
Non
Non
Oui
Non
Dmarrage froid
146
Modes de fonctionnement
Fonctionnement
Toutes les voies de ce rack sont vues en erreur par le processeur mais les autres racks ne sont pas perturbs. Les valeurs des entres en erreur ne sont plus rafrachies dans la mmoire application et sont mises 0 dans le cas d'un module d'entre TOR moins quelles aient t forces auquel cas, elles sont maintenues la valeur de forage. Si la dure de la coupure est infrieure au temps de filtrage, celle-ci n'est pas vue par le programme qui s'excute normalement.
147
Modes de fonctionnement
Dmarrage froid forc en STOP ou en RUN selon dfinition en configuration Dmarrage en STOP ou en RUN (conserve le mode de fonctionnement en cours), sans initialisation des modules d'entres/sorties TOR et mtier
Reprise aprs une coupure de l'alimentation Dmarrage froid forc en STOP ou en RUN avec perte du contexte selon dfinition en configuration
ATTENTION PERTE DE DONNEES LORS DU TRANSFERT D'UNE APPLICATION Le chargement ou transfert d'une application dans l'automate entrane l'initialisation des variables non localises. Il est ncessaire d'affecter aux donnes une adresse topologique si le process impose de conserver les valeurs courantes de ces donnes lors du transfert d'application. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
148
Modes de fonctionnement
Illustration
Retour secteur
Auto-test de la configuration Coupure secteur > microcoupure Non BOT Oui Initialisation de lapplication
149
Modes de fonctionnement
Fonctionnement
Le tableau ci-aprs dcrit les phases de reprise de l'excution du programme sur reprise froid.
Phase 1 Description Le dmarrage s'effectue en RUN ou en STOP suivant l'tat du paramtre Dmarrage automatique en RUN dfini en configuration ou si celle-ci est utilise en fonction de l'tat de l'entre RUN/STOP. L'excution du programme reprend en dbut de cycle. Le systme effectue :
z l'initialisation de donnes (bits, image des E/S, mots...) par les valeurs
z z z z z z z z
initiales dfinies dans l'diteur de donnes (valeur 0, si aucune valeur initiale dfinie). Cas des %MW, les valeurs de ces mots peuvent tre conserves sur reprise froid si l'option RAZ des %MW sur reprise froid dans l'cran Configuration du processeur n'est pas coche. l'initialisation des blocs fonction lmentaires partir des donnes initiales, l'initialisation des donnes dclares dans les DFB : soit 0, soit la valeur initiale dclare dans le type du DFB, l'initialisation des bits et mots systme, la dsactivation des tches, autres que la tche matre, jusqu' la fin du premier cycle de la tche matre, le positionnement des graphes sur les tapes initiales, l'annulation des forages, l'initialisation des files de message et d'vnements l'envoi des paramtres de configuration tous les modules d'entres/ sorties TOR et modules mtier.
(premier cycle en RUN) dfinis sur 1, le mot %SW10 (dtection d'une reprise froid lors du premier cycle d'une tche) est dfini sur 0, z la remise 0 des bits %S0 et %S13 et la dfinition sur 1 de chaque bit du mot %SW10 la fin de ce premier cycle de la tche matre, z l'activation de la tche rapide et des traitements vnementiels la fin de ce premier cycle de la tche matre.
Il est conseill de tester le bit %SW10.0 pour dtecter un dmarrage froid et lancer un traitement spcifique ce dmarrage froid. Note : Il est aussi possible de tester le bit %S0, si le paramtre Dmarrage automatique en RUN a t slectionn. Dans le cas inverse, l'automate dmarre en STOP, le bit %S0 passe alors 1au premier cycle de reprise mais n'est pas vu par le programme puisque celui-ci n'est pas excut.
150
Modes de fonctionnement
suivant le choix effectu en configuration. A la reprise secteur, les sorties sont zro jusqu' ce qu'elles soient remises jour par la tche.
les sorties locales sont mises zro, les sorties des racks d'extension dcentraliss ou distribus sont mises en position de repli.
A la reprise secteur, les sorties sont zro jusqu' ce qu'elles soient remises jour par la tche. ATTENTION le comportement des sorties forces a t modifi entre Modsoft/ NxT/Concept et Unity Pro. Avec Modsoft/NxT/Concept, vous ne pouvez pas forcer les sorties si l'interrupteur de protection de la mmoire du processeur Quantum est en position "On". Avec Unity Pro, vous pouvez forcer les s orties si l'interrupteur de protection de la mmoire du processeur Quantum est en position "On". Avec Modsoft/NxT/Concept, les sorties forces conservent leur tat aprs un dmarrage froid. Avec Unity Pro, les sorties forces perdent leur tat aprs un dmarrage froid. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
151
Modes de fonctionnement
Ces processeurs comporte une zone mmoire Flash EPROM de 1435K8 qui permet la sauvegarde du programme et des valeurs initiales des variables. Sur reprise secteur,vous pouvez choisir le mode de marche souhait l'aide du commutateur PLC MEM en face avant du processeur automate. Pour une information dtaille sur le fonctionnement de ce commutateur, vous pouvez consulter le manuel Quantum (Voir Matriel des automates Quantum avec Unity Pro, Interrupteurs cl).
z
position off : L'application contenue dans cette zone est transfre automatiquement dans la RAM interne la mise sous tension du processeur automate : redmarrage froid de l'application. position on : L'application contenue dans cette zone n'est pas transfre dans la RAM interne : reprise chaud de l'application.
152
Modes de fonctionnement
par une reprise secteur sans perte du contexte, par dfinition sur 1 par programme du bit systme %S1, depuis Unity Pro par bornier, par activation du bouton RESET du module d'alimentation du rack 0 (sur l'automate Premium).
Illustration
Reprise secteur
Auto-test de la configuration
Coupure dtecte
153
Modes de fonctionnement
Fonctionnement
Le tableau ci-aprs dcrit les phases de reprise de lexcution du programme sur reprise chaud.
Phase 1 2 Description Lexcution du programme reprend partir de llment o a eu lieu la coupure secteur, sans mise jour des sorties. A la fin du cycle de reprise, le systme effectue : z l'initialisation des files de message et d'vnements z l'envoi des paramtres de configuration tous les modules d'entres/de sorties TOR et mtiers, z la dsactivation de la tche rapide et des traitements vnementiels (jusqu' la fin du premier cycle de la tche matre). Le systme effectue un cycle de reprise dans lequel il :
z reprend en compte l'ensemble des modules d'entres, z relance la tche matre avec le bit %S1 (reprise chaud) dfini sur 1, z redfinit le bit %S1 sur 0 la fin de ce premier cycle de la tche matre, z ractive la tche rapide, les tches auxiliaires et les traitements
En cas de reprise chaud, si vous dsirez un traitement particulier vis--vis de l'application, vous devez crire le programme correspondant sur test de %S1 1 en dbut de programme de la tche matre. Sur automates Quantum, le commutateur situ en face avant du processeur permet de configurer les modes de marche. Pour plus de dtails, reportez vous la documentation Quantum (Voir Matriel des automates Quantum avec Unity Pro, Interrupteurs cl).
suivant le choix effectu en configuration. A la reprise secteur, les sorties sont en position de repli jusqu' ce qu'elles soient remises jour par la tche.
les sorties locales sont mises zro, les sorties des racks d'extension dcentraliss ou distribus sont mises en position de repli.
A la reprise secteur, les sorties sont en position de repli jusqu' ce qu'elles soient remises jour par la tche.
154
Modes de fonctionnement
155
Modes de fonctionnement
5.3
utilisation de linstruction HALT dbordement du chien de garde erreur d'excution du programme (division par zro, dbordement,...) si le bit %S78 (voir Description des bits systme %S60 %S78, p. 170) est positionn 1.
Prcautions
Attention ; lorsque lautomate est en HALT toutes les tches sont stoppes (Voir Unity Pro, Modes opratoires, Mise d'une tche sur STOP). Vrifiez le comportement des E/S associes.
156
Objets systme
6
Prsentation
Objet de ce chapitre Ce chapitre dcrit les bits et mots systme du langage Unity Pro. Note : les symboles, associs chaque objet bit ou mot systme, mentionnes dans les tableaux descriptifs de ces objets ne sont pas implments de base dans le logiciel, ils peuvent tre saisis laide de lditeur de donnes. Ils sont proposs afin de rendre homogne leur appellation dans les diffrentes applications. Contenu de ce chapitre Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet 6.1 6.2 6.3 6.4 6.5 Bits systme Mots systme Mots systme spcifiques aux modules Atrium/Premium Mots systme spcifiques au module Quantum Mots systme spcifiques au Modicon M340 Page 158 178 202 215 228
157
Objets systme
6.1
Description
Objet de cette section Contenu de ce sous-chapitre
Bits systme
158
Objets systme
159
Objets systme
1 Dmarra Normalement sur 0, ce bit est mis sur 1 par (1 cycle) ge froid : z une reprise secteur avec perte du contexte (dfaut de la pile), z le programme utilisateur, z le bornier, z un changement de cartouche, z un rechargement du programme. Ce bit est mis l'tat 1 lors du premier cycle de restauration complet de l'automate en RUN ou STOP. Il est remis sur 0 par le systme avant le cycle suivant.
%S1 WARMSTART
Reprise Normalement sur 0, ce bit est mis sur 1 chaud par : z une reprise secteur avec enregistrement de donnes, z le programme utilisateur, z le bornier, z une action sur changement de cartouche. Il est remis 0 par le systme la fin du premier cycle complet et avant la mise jour des sorties.
OUI
OUI
OUI
%S4 TB10MS
Base de temps 10 ms
Un temporisateur interne rgule le changement d'tat de ce bit. Il est asynchrone par rapport au cycle de l'automate. Graphique :
OUI
OUI
OUI
5ms 5ms
%S5 TB100MS
Idem %S4
OUI
OUI
OUI
160
Objets systme
Fonction Description Base de Idem %S4 temps 1 s Base de temps 1 min Idem %S4
Etat initial -
161
Objets systme
Mise en Normalement l'tat 0, est mis l'tat 1 position de par le programme ou par le terminal repli des z tat 1 : provoque la mise 0 ou le sorties sur maintien de la valeur suivant le choix tous les effectu en configuration (bus X, Fipio, bus AS-i, etc.). z tat 0 : les sorties sont mises jour normalement. Remarque : Le bit systme agit directement sur les sorties physiques et non sur les bits images des sorties.
%S10 IOERR
Normalement l'tat 1, est mis l'tat 0 quand un dfaut d'E/S d'un module en rack ou d'un quipement sur Fipio est dtect (configuration non conforme, dfaut d'change, dfaut matriel...) Le bit %S10 est remis 1 par le systme ds la disparition du dfaut.
OUI
OUI
OUI
ATTENTION %S10 pour automates Quantum Sur Quantum, les erreurs de communication des modules NOM, NOE, NWM, CRA ou CRP et des modules MMS ne sont pas signales dans les bits %S10 et %S16. L'utilisation correcte de ces bits systme est sous votre entire responsabilit. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
162
Objets systme
Fonction
Description
Etat initial 0
Dbordeme Normalement l'tat 0, est mis nt du chien l'tat 1 par le systme ds que le de garde temps d'excution d'une tche devient suprieur au temps d'excution maximum (chien de garde) dclar dans les proprits de la tche. Automate en RUN Ce bit est mis l'tat 1 par le systme lorsque l'automate est en RUN. Il est mis 0 par le systme ds que l'automate n'est plus en RUN (tat STOP, INIT...). Le passage de l'automate du mode STOP au mode RUN est signal par la mise 1 du bit systme %S13. Ce bit est remis 0 la fin du premier cycle de la tche MAST en mode RUN.
%S12 PLCRUNNING
OUI
OUI
OUI
%S13 1RSTSCANRUN
OUI
OUI
OUI
163
Objets systme
%S16 IOERRTSK
OUI
OUI
OUI
ATTENTION %S16 pour automates Quantum Sur Quantum, les erreurs de communication des modules NOM, NOE, NWM, CRA ou CRP et des modules MMS ne sont pas signales dans les bits %S10 et %S16. L'utilisation correcte de ces bits systme est sous votre entire responsabilit. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
164
Objets systme
Description Normalement l'tat 0. Lors d'une opration de dcalage circulaire, ce bit prend l'tat du bit sortant.
Etat initial 0
Dpasseme Normalement l'tat 0, ce bit est mis l'tat nt ou erreur 1 en cas de dpassement de capacit dans arithmtique les cas suivants : z rsultat suprieur + 32 767 ou infrieur - 32 768, en simple longueur, z rsultat suprieur + 65 535, en entier non sign, z rsultat suprieur + 2 147 483 647 ou infrieur - 2 147 483 648, en double longueur, z rsultat suprieur +4 294 967 296, en double longueur ou entier non sign, z valeurs relles hors bornes, z division par 0, z racine d'un nombre ngatif, z forage un pas inexistant sur un programmateur cyclique, z empilage d'un registre plein, dpilage d'un registre vide. Il n'existe qu'un seul cas o le bit %S18 n'est pas augment par les automates Modicon M340 lorsque des valeurs relles sont hors bornes. C'est lorsque des oprandes non normaliss ou certaines oprations gnrant des rsultats non normaliss sont utiliss (dpassement progressif par valeur infrieure). Doit tre test par le programme utilisateur aprs chaque opration prsentant un risque de dpassement, puis remis 0 par l'utilisateur en cas de dpassement. Lorsque le bit %S18 passe 1, l'application s'arrte en erreur si le bit %S78 a t mis 1.
OUI
OUI
OUI
165
Objets systme
Description Normalement l'tat 0, ce bit est mis l'tat 1 par le systme en cas de dpassement de la priode d'excution (temps d'excution de tche suprieur la priode dfinie par l'utilisateur dans la configuration ou programme dans le mot %SW associ la tche). Ce bit doit tre remis 0 par l'utilisateur. Chaque tche gre son propre bit %S19. Normalement l'tat 0, ce bit est mis l'tat 1 lorsque l'adresse de l'objet index devient infrieure 0 ou dpasse le nombre d'objets dclar dans la configuration. Dans ce cas, l'index est considr comme tant gal 0. Doit tre test par le programme utilisateur, aprs chaque opration o il y a risque de dpassement, puis remis 0 en cas de dpassement. Lorsque le bit %S20 passe 1, l'application s'arrte en erreur si le bit %S78 a t mis 1. Test dans une tche (Mast, Fast, Aux0, Aux1, Aux2, Aux3), le bit %S21 indique le premier cycle de cette tche. %S21 est mis 1 en dbut de cycle et remis zro en fin de cycle. Remarques : Le bit %S21 ne possde pas la mme signification sous PL7 et sous Unity Pro.
Etat initial 0
%S20 INDEXOVF
Dpasseme nt d'index
OUI
OUI
OUI
OUI
OUI
OUI
166
Objets systme
%S31 FASTACT
Activation/ Normalement rgl sur 1 lorsque l'utilisateur dsactivation cre la tche. La tche est dsactive de la tche lorsque l'utilisateur rgle le bit sur 0. rapide Activation/ dsactivation de la tche auxiliaire 0 Activation/ dsactivation de la tche auxiliaire 1 Activation/ dsactivation de la tche auxiliaire 2 Activation/ dsactivation de la tche auxiliaire 3 Normalement rgl sur 1 lorsque l'utilisateur cre la tche. La tche auxiliaire est dsactive lorsque l'utilisateur rgle le bit sur 0. Normalement rgl sur 1 lorsque l'utilisateur cre la tche. La tche auxiliaire est dsactive lorsque l'utilisateur rgle le bit sur 0. Normalement rgl sur 1 lorsque l'utilisateur cre la tche. La tche auxiliaire est dsactive lorsque l'utilisateur rgle le bit sur 0. Normalement rgl sur 1 lorsque l'utilisateur cre la tche. La tche auxiliaire est dsactive lorsque l'utilisateur rgle le bit sur 0.
OUI
OUI
OUI
%S32 AUX0ACT
NON
OUI
OUI
%S33 AUX1ACT
NON
OUI
OUI
%S34 AUX2ACT
NON
OUI
OUI
%S35 AUX3ACT
NON
OUI
OUI
Normalement rgl sur 1. Les vnements %S38 Activation/ ACTIVEVT inhibition des sont inhibs lorsque l'utilisateur rgle le bit vnements sur 0. %S39 EVTOVR Saturation lors du traitement de l'vnement Ce bit est rgl sur 1 par le systme pour indiquer qu'un ou plusieurs vnement ne peuvent pas tre traits lorsque les files d'attente sont satures. Ce bit est remis l'tat 0 par l'utilisateur.
OUI
OUI
OUI
OUI
OUI
OUI
167
Objets systme
Bit Symbole
Fonction
Description Le bit %S40 est attribu au rack 0. Normalement rgl sur 1. Ce bit prend la valeur 0 en cas de dfaillance des entres/ sorties sur le rack. Dans ce cas : z le bit %S10 est rgl sur 0, z le voyant du processeur des E/S est allum, z le module %Ir.m.c.Err est rgl sur 1. Ce bit reprend la valeur 1 lorsque la dfaillance disparat.
Quantum NON
%S40 identique pour le rack 1. %S41 Dfaut RACK1ERR d'entre/ sortie du rack 1 %S42 Dfaut %S40 identique pour le rack 2. RACK2ERR d'entre/ sortie du rack 2 %S43 Dfaut %S40 identique pour le rack 3. RACK3ERR d'entre/ sortie du rack 3 %S44 Dfaut %S40 identique pour le rack 4. RACK4ERR d'entre/ sortie du rack 4 %S45 Dfaut %S40 identique pour le rack 5. RACK5ERR d'entre/ sortie du rack 5 %S46 Dfaut %S40 identique pour le rack 6. RACK6ERR d'entre/ sortie du rack 6 %S47 Dfaut %S40 identique pour le rack 7. RACK7ERR d'entre/ sortie du rack 7
OUI
OUI
NON
OUI
OUI
NON
OUI
OUI
NON
OUI
OUI
NON
OUI
OUI
NON
OUI
OUI
NON
OUI
OUI
NON
168
Objets systme
Bit Symbole
Fonction
Description Normalement rgl sur 0. Ce bit est rgl sur 1 ou 0 par le programme ou le bornier. z tat 0 : mise jour des mots systme %SW50 %SW53 avec la date et l'heure fournies par l'horodateur de l'automate. z tat 1 : les mots systme %SW50 %SW53 ne sont plus mis jour, ce qui rend possible leur modification. z Le basculement de 1 0 met jour l'horodateur avec les valeurs saisies dans les mots %SW50 %SW53. Lorsqu'il est rgl sur 1, ce bit gr par le systme indique que l'horodateur est manquant ou que ses mots systme (%SW50 %SW53) sont sans signification. Dans ce cas, l'horodateur doit tre rinitialis sur l'heure correcte. Normalement rgl sur 0. Ce bit est rgl sur 1 ou 0 par le programme ou le bornier : z tat 0 : le systme ne gre pas le mot systme %SW59, z tat 1 : le systme gre les fronts sur le mot %SW59 pour rgler la date et l'heure courantes (par incrment).
Quantum OUI
%S50 Mise jour RTCWRITE de la date et de l'heure l'aide des mots %SW50 %SW53
%S51 RTCERR
Retard de l'horodateur
OUI
OUI
OUI
Mise jour %S59 RTCTUNING incrmentale de la date et de l'heure l'aide du mot %SW59
OUI
OUI
OUI
169
Objets systme
%S65 CARDIS
OUI
NON
NON
170
Objets systme
Description Ce bit est dfini sur 1 par l'utilisateur pour dmarrer une opration de sauvegarde (application de transfert de la RAM la carte). Le systme dtectera le front montant pour dmarrer la sauvegarde. L'tat de ce bit est interrog par le systme chaque seconde. Une sauvegarde a lieu uniquement si l'application dans la RAM est diffrente de celle sur la carte. Ce bit est dfini sur 0 par le systme lorsque la sauvegarde est termine. Avertissement : Avant d'effectuer une nouvelle sauvegarde en dfinissant le bit %S66 sur 1, vous devez vrifier que le bit %S66 a t dfini sur 0 par le systme (significant que la sauvegarde prcdente est termine). N'utilisez pas %S66 s'il est dfini sur 1. Vous pourriez perdre des donnes. Le bit %S66 est particulirement utile aprs le remplacement de la valeur d'initialisation %S94 et le paramtre de sauvegarde.
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI NON NON
171
Objets systme
Description Ce bit permet de surveiller l'tat de la pile principale quand la carte mmoire est dans l'emplacement PCMCIA du haut (tous les Atrium, Premium et sur les Quantum (140 CPU 671 60, 140 CPU 651 60 et 140 CPU 651 50) : z tat 1 : pile principale de tension faible (application toujours prserve mais il faut remplacer la pile selon procdure dite de maintenance prdictive (Voir Premium et Atrium sous Unity Pro, Processeurs, racks et modules d'alimentation, Changement des piles sur carte mmoire PCMCIA)), z tat 0 : pile principale de tension suffisante (application toujours prserve). Le bit %S67 est gr : z sur les cartes mmoires RAM de PV06 (product version inscrite sur l'tiquette de la carte) de petite et moyenne capacit, c'est dire offrant sous Unity une taille mmoire 768K : TSX MRP P 128K, TSX MRP P 224K TSX MCP C 224K, MCP C 512K, TSX MRP P 384K, TSX MRP C 448K, TSX MRP C 768K, z sous Unity dont la version est 2.02.
Etat Modicon Premium Quantum initial M340 Atrium NON OUI OUI
%S68 PLCBAT
Ce bit permet de contrler l'tat de fonctionnement de la pile de sauvegarde des donnes et du programme en mmoire RAM : z tat 0 : pile prsente et en service z tat 1 : pile absente ou hors service
NON
OUI
OUI
172
Objets systme
Description Ce bit permet de surveiller l'tat de la pile principale quand la carte mmoire est dans l'emplacement PCMCIA du bas (Premium (TSX P57 4 et TSX P57 5) et Quantum (140 CPU 671 60, 140 CPU 651 60 et 140 CPU 651 50) : z tat 1 : pile principale de tension faible (application toujours prserve mais il faut remplacer la pile selon procdure dite de maintenance prdictive (Voir Premium et Atrium sous Unity Pro, Processeurs, racks et modules d'alimentation, Changement des piles sur carte mmoire PCMCIA)), z tat 0 : pile principale de tension suffisante (application toujours prserve). Le bit %S75 est gr : z sur les cartes mmoires RAM de PV06 (product version inscrite sur l'tiquette de la carte) de petite et moyenne capacit, c'est dire offrant sous Unity une taille mmoire 768K : TSX MRP P 128K, TSX MRP P 224K TSX MCP C 224K, MCP C 512K, TSX MRP P 384K, TSX MRP C 448K, TSX MRP C 768K, z sous Unity dont la version est 2.02.
Etat Modicon Premium Quantum initial M340 Atrium NON OUI OUI
%S76 DIAGBUFFCON F
Ce bit est mis 1 par le systme lorsque l'option diagnostic est configure, un buffer de diagnostic destin au stockage des erreurs, issues des DFB de diagnostic, est alors rserv. Ce bit est en lecture seule. Ce bit est mis 1 par le systme lorsque le buffer recevant les erreurs des blocs fonction de diagnostic est rempli. Ce bit est en lecture seule.
OUI
OUI
OUI
%S77 DIAGBUFFFFU LL
OUI
OUI
OUI
173
Objets systme
Fonction
Description
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI OUI OUI
Arrt si erreur Normalement 0, ce bit peut tre mis 1 par l'utilisateur, pour programmer l'arrt de l'automate sur dfaut application : %S15, %S18, %20.
174
Objets systme
%S90 COMRFSH
NON
OUI
NON
%S91 LCKASYNREQ
Verrouillag Si ce bit est dfini sur 1, les requtes de e demande communication asynchrone traites dans la asynchrone tche surveillance sont excutes intgralement sans interruption des autres tches comme la MAST ou FAST. Cela assure une lecture ou criture cohrente des donnes. Rappel: le serveur de requte de la tche surveillance est adress par la porte 7 (X-Way). Mode mesure de la fonction communication Normalement l'tat 0, ce bit peut tre mis 1 par l'utilisateur pour positionner les fonctions de communication en mode mesure de performance. Le paramtre de temporisation (Voir Unity Pro, Bibliothque de Communication, Paramtres de gestion : longueur et Timeout) des fonctions de communication (dans le tableau de gestion) affiche alors le temps d'change aller/retour en millisecondes. Remarque : les fonctions de communication s'excutent sur une base de temps de 100 ms.
NON
OUI
NON
%S92 EXCHGTIME
OUI
OUI
NON
175
Objets systme
Bit Symbole
Fonction
Description Normalement l'tat 0, ce bit peut tre mis 1 par l'utilisateur pour remplacer les valeurs initiales des variables dclares avec un attribut Save (ex : variables DFB) par les valeurs courantes. Pour Modicon M340, sur un front montant %S94, le contenu de la RAM interne et celui de la carte mmoire sont diffrents (%S96 = 0 et le voyant CARDERR est allum). Lors d'un dmarrage froid, les valeurs en cours sont remplaces par les valeurs initiales les plus rcentes, condition qu'un enregistrement sur carte mmoire ait t excut auparavant (fonction Enregistrer la sauvegarde ou front montant %S66). Le systme remet le bit %S94 0 quand le remplacement est termin. Note : ce bit doit tre utilis avec prcaution: ne pas mettre ce bit en permanence 1 et utiliser uniquement la tche matre.
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI OUI OUI
%S96 BACKUPPROG OK
Programme Ce bit est dfini sur 0 ou 1 par le systme. de z Dfini sur 0 lorsque la carte est sauvegarde manquante ou non utilisable (mauvais OK format, type non reconnu, etc.) ou le contenu de la carte n'est pas cohrent avec l'application interne RAM. z Dfini sur 1 lorsque la carte est correcte et que l'application est cohrente avec l'application interne RAM de l'UC.
OUI
NON
NON
ATTENTION ERREUR DE CHARGEMENT Le bit %S94 ne doit pas tre dfini sur 1 lors d'un chargement. Si le bit %S94 est dfini sur 1, le chargement choue. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
176
Objets systme
%S118 REMIOERR
Normalement 1, ce bit est mis 0 par le Dfaut gnral E/S systme lors de l'apparition d'un dfaut sur un quipement connect sur le bus Fipio d'entres/sorties dportes RIO et Fipio. Lorsque le dfaut disparat, ce bit est remis 1 par le systme. Normalement 1, ce bit est mis 0 par le Dfaut gnral E/S systme lors de l'apparition d'un dfaut sur un module d'E/S implant dans un des en rack racks. Lorsque le dfaut disparat, ce bit est remis 1 par le systme. Dfaut bus DIO (CPU) Normalement 1, ce bit est mis 0 par le systme lors de l'apparition d'un dfaut sur un quipement connect au bus DIO gr par la liaison Modbus Plus intgre au CPU. Normalement 1, ce bit est mis 0 par le systme lors de l'apparition d'un dfaut sur un quipement connect au bus DIO gr par le premier module 140 NOM 2. Normalement 1, ce bit est mis 0 par le systme lors de l'apparition d'un dfaut sur un quipement connect au bus DIO gr par le second module 140 NOM 2.
OUI
OUI
OUI
%S119 LOCIOERR
OUI
OUI
OUI
%S120 DIOERRPLC
NON
NON
OUI
%S121 Dfaut bus DIOERRNOM1 DIO (NOM n1) %S122 Dfaut bus DIOERRNOM2 DIO (NOM n2)
NON
NON
OUI
NON
NON
OUI
177
Objets systme
6.2
Description
Objet de cette section Contenu de ce sous-chapitre
Mots systme
Ce chapitre dcrit les mots systme Modicon M340, Atrium, Premium et Quantum.
178
Objets systme
%SW1 FASTPERIOD
OUI
OUI
OUI
%SW2 AUX0PERIOD %SW3 AUX1PERIOD %SW4 AUX2PERIOD %SW5 AUX3PERIOD %SW6 %SW7
NON
OUI (1)
OUI (1)
179
Objets systme
Description Normalement l'tat 0, ce bit peut tre dfini sur 1 ou 0 par le programme ou le terminal. Il inhibe la phase d'acquisition d'entres de chaque tche : z %SW8.0 = 1 inhibe l'acquisition d'entres concernant la tche MAST. z %SW8.1 = 1 inhibe l'acquisition d'entres concernant la tche FAST. z %SW8.2 5 = 1 inhibe l'acquisition d'entres concernant les tches auxiliaires AUX 0...3. (1) Remarque : Sur Quantum, les entres/sorties distribues via le bus DIO ne sont pas affectes par le mot %SW8.
Etat initial 0
%SW9 TSKINHIBOUT
Normalement l'tat 0, ce bit peut tre mis 1 ou 0 par le programme ou le terminal. Inhibe la phase de mise jour de sorties de chaque tche. z %SW9.0 = 1 affect la tche MAST ; les sorties relatives cette tche ne sont plus prises en charge. z %SW9.1 = 1 affect la tche FAST ; les sorties relatives cette tche ne sont plus prises en charge. z %SW9.2 5 = 1 affect aux tches auxiliaires AUX 0...3 ; les sorties relatives ces tches ne sont plus prises en charge. (2) Remarque : Sur Quantum, les entres/sorties distribues via le bus DIO ne sont pas affectes par le mot %SW9.
OUI
OUI
OUI (2)
180
Objets systme
ATTENTION
Description Si la valeur du bit de la tche courante est dfinie sur 0, cela signifie que la tche effectue son premier cycle aprs un dmarrage froid. z %SW10.0: affect la tche MAST. z %SW10.1: affect la tche FAST. z %SW10.2 5 : affect aux tches auxiliaires AUX 0...3. Lit la dure du chien de garde. La dure est exprime en millisecondes (10...1500 ms). Ce mot est fig.
Etat initial 0
Quantum OUI
%SW11 WDGVALUE
OUI
OUI
OUI
181
Objets systme
%SW13 XWAYNETWADDR
254 (16#00FE)
NON
OUI
NON
%SW14 OSCOMMVERS
Ce mot contient la version commerciale du processeur automate. Exemple : 16#0135 version : 01 numro de rvision : 35
OUI
OUI
OUI
182
Objets systme
Description Ce mot contient la version commerciale du patch pour le processeur automate. Le codage s'effectue sur l'octet de poids faible du mot. Codage : 0 = pas de patch, 1 = A, 2 = B... Exemple : 16#0003 correspond au patch C. Ce mot contient le numro de version en hexadcimal du micrologiciel du processeur automate. Exemple : 16#0011 version : 2.1 numro de rvision : 17 Sur dtection d'un dfaut dans une opration arithmtique flottante, le bit %S18 est mis 1 et le statut de dfaut du mot %SW17 est mis jour selon le codage suivant : z %SW17.0 = opration incorrecte/le rsultat n'est pas un nombre, z %SW17.1 = oprande non normalis/rsultat est acceptable (n'est pas gr par la procdure Modicon M340), z %SW17.2 = division par 0/le rsultat est l'infini, z %SW17.3 = dpassement/le rsultat est l'infini, z %SW17.4 = dpassement par valeur infrieure/le rsultat est 0, z %SW17.5 15 = non utiliss. Ce mot est remis 0 par le systme lors d'un dmarrage froid, mais aussi par le programme pour pouvoir tre rutilis.
Etat initial Modicon Premium Quantum M340 Atrium OUI OUI OUI
%SW16 OSINTVERS
OUI
OUI
OUI
%SW17 FLOATSTAT
OUI
OUI
OUI
183
Objets systme
Description %SW18 reprsente les octets de poids faible et %SW19 les octets de poids fort du double mot %SD18, qui est incrment par le systme chaque 1/10me de seconde. L'application peut lire ou crire ces mots afin d'effectuer des calculs de dure. %SD18 est incrment systmatiquement, mme en mode STOP et dans des tats quivalents. Cependant, les dures au cours desquelles l'automate est teint ne sont pas prises en compte (fonction non lie au programmateur en temps rel, mais uniquement l'horodateur).
Etat initial Modicon Premium Quantum M340 Atrium 0 OUI OUI OUI
Pour les automates M340 et Quantum, %SD20 est incrment tous les 1/1000me de seconde par le systme (mme lorsque l'automate est en mode STOP ; %SD20 n'est plus incrment si l'automate est teint). %SD20 peuvent tre lus par le programme utilisateur ou par le terminal. %SD20 est rinitialis lors d'un dmarrage froid. %SD20 n'est pas rinitialis lors d'une reprise chaud. Remarque : Dans le cas des automates Premium TSX P57 14M/24M/34M/ C024M/024M et TSX PCI57 204M/ 354M, %SD20 est incrment de 5 tous les 5/1000mes de seconde par le systme. Pour tous les autres automates Premium, le compteur de temps de %SD20 est dfini sur 1 ms comme pour les automates Quantum et M340.
OUI
OUI
OUI
184
Objets systme
Description L'octet de poids faible contient le commutateur rotatif du processeur Ethernet. Il peut tre lu par le programme utilisateur ou par le terminal.
Etat initial Modicon Premium Quantum M340 Atrium OUI NON NON
%SW26
Nombre de Le mot systme permet de vrifier, requtes ct serveur, le nombre de traites requtes traites par l'automate chaque cycle. Dure surdbit
z %SW27 contient la dernire
OUI
OUI
OUI
OUI
NON
NON
dure du surdbit systme. z %SW28 contient la dure maximum du surdbit systme. z %SW29 contient la dure minimum du surdbit systme. La dure du surdbit systme dpend de la configuration (nombre d'E/S, etc.) et des requtes de cycle en cours (communications, validations). Dure du surdbit systme = Temps de cycle Mast - Temps d'excution du code utilisateur. Ces mots peuvent tre lus et crits par le programme utilisateur ou par le terminal.
185
Objets systme
Temps Ce mot indique le temps d'excution dexcution maxi le plus long de la tche matre, tche matre depuis le dernier dmarrage froid (en ms). Temps dexcution mini tche matre Ce mot indique le temps d'excution le plus court de la tche matre, depuis le dernier dmarrage froid (en ms). Ce mot indique le temps d'excution du dernier cycle de la tche rapide (en ms).
OUI
OUI
OUI
%SW32 MASTMINTIME
OUI
OUI
OUI
OUI
OUI
OUI
Ce mot indique le temps d'excution Temps dexcution maxi le plus long de la tche rapide, depuis le dernier dmarrage froid tche rapide (en ms). Temps dexcution mini tche rapide Ce mot indique le temps d'excution le plus court de la tche rapide, depuis le dernier dmarrage froid (en ms).
OUI
OUI
OUI
%SW35 FASTMINTIME
OUI
OUI
OUI
Note : Prcision sur le temps dexcution ; cest le temps coul entre le dbut (acquisition des entres) et la fin (mise jour des sorties) d'un cycle de scrutation. Ce temps inclut le traitement des tches vnementielles de la tche rapide ainsi que le traitement des requtes console.
186
Objets systme
Ces mots indiquent le temps d'excution le plus long des tches auxiliaires AUX0..3 (en ms), depuis le dernier dmarrage froid (en ms). (1) uniquement sur les automates 140 CPU 6. et TSX P57 5.
NON
OUI (1)
OUI (1)
Ces mots indiquent le temps d'excution le plus court des tches auxiliaires AUX0..3 (en ms), depuis le dernier dmarrage froid (en ms). (1) uniquement sur les automates 140 CPU 6. et TSX P57 5.
NON
OUI (1)
OUI (1)
187
Objets systme
Nombre Ce mot indique le nombre d'vnements d'vnements traits depuis le dernier dmarrage froid (en ms). Il peut tre crit par le programme ou le bornier. Fonction d'horodateur Mots systme contenant la date et l'heure courantes (en BCD) : z %SW49 : jour de la semaine : z 1 = Lundi, z 2 = Mardi, z 3 = Mercredi, z 4 = Jeudi, z 5 = Vendredi, z 6 = Samedi, z 7 = Dimanche, z %SW50 : secondes (16#SS00), z %SW51 : heures et minutes (16#HHMM), z %SW52 : mois et jour (16#MMJJ), z %SW53 : anne (16#AAAA). Ces mots sont grs par le systme lorsque le bit %S50 est 0. Ces mots sont crits par le programme utilisateur ou par le bornier lorsque le bit %S50 est 1.
%SW49 DAYOFWEEK %SW50 SEC %SW51 HOURMIN %SW52 MONTHDAY %SW53 YEAR
OUI
OUI
OUI
188
Objets systme
Mot Symbole %SW54 STOPSEC %SW55 STOPHM %SW56 STOPMD %SW57 STOPYEAR %SW58 STOPDAY
Description Mots systme contenant la date et l'heure de la dernire coupure du secteur ou du dernier arrt de l'automate (au format Binary Coded Decimal) : z %SW54 : secondes (00SS), z %SW55 : heures et minutes (HHMM), z %SW56 : mois et jour (MMJJ), z %SW57 : anne (AAAA), z %SW58 : l'octet le plus significatif contient le jour de la semaine (de 1 pour lundi 7 pour dimanche), tandis que l'octet le moins significatif contient le code du dernier arrt : z 1 = passage du mode RUN au mode STOP par le bornier ou l'entre ddie, z 2 = arrt par le chien de garde (tche de l'automate ou dbordement SFC), z 4 = coupure secteur ou opration de verrouillage de la carte mmoire, z 5 = arrt suite une dfaillance matrielle, z 6 = arrt suite une dfaillance logicielle. Les dtails sur le type de dfaillance logicielle sont stocks dans %SW125.
Etat initial -
189
Objets systme
Mot Symbole
Fonction
Description
Etat initial 0
%SW59 Rglage de la Contient deux sries de 8 bits ADJDATETIME date courante permettant de rgler la date courante. L'action est toujours effectue sur le front montant du bit. Ce mot est activ par le bit %S59=1. Dans l'illustration ci-dessous, les bits de la colonne de gauche incrmentent la valeur, tandis que ceux de la colonne de droite la dcrmentent : + Bits 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 - Type de valeur Jour de la semaine Secondes Minutes Heures Jours Mois Ans Sicles
190
Objets systme
%SW70 Fonction Mot systme contenant le nombre de WEEKOFYEAR d'horodateur semaines dans l'anne : 1 52. %SW71 Position des KEY_SWITCH commutateurs sur le panneau avant de Quantum. Ce mot fournit l'image des positions des commutateurs sur le panneau avant du processeur Quantum. Ce mot est mis jour automatiquement par le systme. z commutateur %SW71.0 = 1 en position "Protection mmoire" z commutateur %SW71.1 = 1 en position "STOP" z commutateur %SW71.1 = 1 en position "START" z commutateur %SW71.8 = 1 en position "MEM" z commutateur %SW71.9 = 1 en position "ASCII" z commutateur %SW71.10 = 1 en position "RTU" z %SW71.3 7 et 11 15 ne sont pas utiliss. Ce mot contient le nombre d'vnements de type temporisateur de la file d'attente. Remarque (1) : Non disponibles sur les processeurs suivants : TSX 57 1/2/3/4/ 5. Rsultat du dernier enregistrement z = 0 si l'enregistrement est russi z = 1 si le buffer de diagnostic n'a pas t configur z = 2 si le buffer de diagnostic est plein
%SW75 Compteur TIMEREVTNB d'vnements de type temporisateur %SW76 DLASTREG Fonction de diagnostic : enregistrement
OUI
OUI (1)
OUI
OUI
OUI
OUI
191
Objets systme
Mot Symbole
Fonction
Description
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI OUI OUI
%SW77 Fonction de Rsultat du dernier dsenregistrement z = 0 si le non-enregistrement est russi DLASTDEREG diagnostic : non-enregis- z = 1 si le buffer de diagnostic n'a pas t configur trement z = 21 si l'identificateur d'erreur est incorrect z = 22 si l'erreur n'a pas t enregistre %SW78 DNBERRBUF Fonction de Nombre d'erreurs actuellement dans le diagnostic : buffer de diagnostic. nombre d'erreurs Gestion des messages Ces mots sont mis jour par le systme et peuvent galement tre rinitialiss l'aide de %S80. z %SW80 : Nombre de messages envoys par le systme au port terminal (port srie de Modbus sur Modicon M340, port Uni-Telway sur Premium), z %SW81 : Nombre de messages reus par le systme du port du terminal (port srie de Modbus sur Modicon M340, port Uni-Telway sur Premium). Ces mots sont mis jour par le systme et peuvent galement tre rinitialiss l'aide de %S80. z %SW82 : nombre de messages envoys par le systme au module PCMCIA z %SW83 : nombre de messages reus par le systme du module PCMCIA
OUI
OUI
OUI
OUI
OUI
OUI
NON
OUI
NON
192
Objets systme
Description Ces mots sont mis jour par le systme et peuvent galement tre rinitialiss l'aide de %S80. Pour Premium : z %SW84 : nombre de tlgrammes envoys par le systme z %SW85 : nombre de tlgrammes reus par le systme Modicon M340 :
z %SW84 : nombre de messages
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI OUI NON
par le port USB %SW86 MSGCNT6 Gestion des messages Ce mot est mis jour par le systme et peut galement tre rinitialis l'aide de %S80. Pour Premium : z nombre de messages refuss par le systme. Pour Modicon M340 :
z nombre de messages refuss par le
OUI
OUI
NON
systme et non traits en raison du manque de ressources, par exemple. Si le message est refus par le serveur Modbus, il correspond alors aux messages d'exception Modbus envoys par l'UC au client Modbus distant. %SW87 Gestion des MSTSERVCNT communications Nombre de requtes traites par le serveur synchrone par cycle de tche matre (MAST). Les requtes traites peuvent provenir de tous les ports de communication (ayant accs au serveur Modbus/UNI-TE, chacun avec sa propre limitation). Cela signifie galement que les requtes d'autres clients, les fonctions lmentaires de communication comme l'IO Scanner, connect IHM etc., sont prises en compte. 0 OUI OUI OUI
193
Objets systme
Fonction Premium : Gestion des communications Modicon M340 : requtes HTTP et FTP reues, par seconde, par le serveur Web et FTP du processeur
Description Pour Premium : z %SW88 : nombre de requtes traites par le serveur asynchrone par cycle de tche matre (MAST) z %SW89 : nombre de requtes traites par les fonctions de serveur (immdiatement) par cycle de tche matre (MAST). Pour Modicon M340 : z %SW88 : nombre de requtes HTTP et FTP reues, par seconde, par le serveur Web du processeur ; z %SW89 : nombre de requtes FTP reues, par seconde, par le serveur FTP.
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI OUI NON
194
Objets systme
Description Ce mot est utilis pour dfinir un nombre maximum de requtes (tous protocoles inclus : UNI-TE, Modbus, etc.) qui peuvent tre traites par l'automate par cycle de tche matre. Lorsque l'UC est le serveur : Ce nombre de requtes doit tre compris entre 2 (minimum) et N+4 (maximum). N : le nombre diffre en fonction du modle. z BMX P34 10/20/ : N = 8 (minimum 2, maximum 8 + 4 = 12) z TSX 57 1 : N = 4 (minimum 2, maximum 4 + 4 = 8) z TSX 57 2 : N = 8 z TSX 57 3 : N = 12 z TSX 57 4 : N = 16 z TSX 57 5 : N = 16, Avec Fipio, la gamme Premium traite jusqu' 7 requtes. La valeur 0 ne fonctionnera pas. Si une valeur tombe hors des limites de la gamme saisie, la valeur N est alors prise en compte. Le nombre de requtes traiter par cycle doit prendre en compte les requtes de tous les ports de communication (ayant accs au serveur). Cela signifie galement que les requtes d'autres clients, les fonctions lmentaires de communication comme l'IO Scanner, connect IHM etc., sont prises en compte.
Etat Modicon Premium Quantum initial M340 Atrium N OUI OUI OUI
%SW91-92
OUI
OUI
NON
fonction envoys par seconde, z %SW92 : Nombre de messages de blocs fonction reus par seconde. Peut tre lu par le programme utilisateur ou par le terminal. Ces compteurs n'incluent pas d'autres requtes sortantes provenant d'un IO Scanner par exemple.
195
Objets systme
Description Peut tre lu et crit par le programme utilisateur ou par le terminal. Ce mot est utilis par le client pour formater la carte mmoire. Le formatage est uniquement possible en mode Arrt : z %SW93.0 = 1 un front montant dmarre l'opration Format. %SW93.1 affiche le statut du systme de fichiers aprs une requte de mise en forme : z %SW93.1 = 0 systme de fichiers invalide (mauvais format, formatage en cours),
z %SW93.1 = 1 systme de fichiers
Etat Modicon Premium Quantum initial M340 Atrium 0 OUI NON NON
valide. %SW94 %SW95 Signature de modification de l'application Ces deux mots contiennent une valeur 32 bits qui change chaque modification de l'application sauf lors : z d'une mise jour des informations d'upload,
z d'un remplacement de la valeur initiale
OUI
NON
NON
paramtre. Ils peuvent tre lus par le programme utilisateur ou par le terminal.
196
Objets systme
Mot Symbole
Fonction
Description Ce mot est utilis pour copier la valeur courante de %MW dans la mmoire Flash interne (voir Constitution, p. 120) ou pour la supprimer de cette mme mmoire, et pour fournir l'tat de l'action. Il peut tre lu par le programme utilisateur ou par le terminal : z %SW96.0 : requte de copie de la valeur courante de %MW dans la mmoire Flash interne. Dfinie sur 1 par l'utilisateur pour demander une sauvegarde, et dfinie sur 0 par le systme lorsqu'une sauvegarde est en cours.
z %SW96.1 est dfini sur 1 par le systme
Etat Modicon Premium Quantum initial M340 Atrium OUI NON NON
lorsqu'une sauvegarde est termine, et sur 0 par le systme lorsqu'une sauvegarde est en cours.
z %SW96.2 = 1 indique une erreur lors
d'une opration de sauvegarde ou de restauration (voir %SW96.8 15 pour les dfinitions de codes d'erreur).
z %SW96.3 = 1 indique qu'une opration
lorsque %SW96.2 est dfini sur 1 : z %SW96.9 = 1 indique que le nombre %MW enregistr est infrieur au nombre configur. z %SW96.8 = 1 et %SW96.9 = 1 signifie que le nombre %MW enregistr est suprieur au nombre configur, z %SW96.8 = 1, %SW96.9 = 1 et %SW96.10 = 1 indiquent une erreur d'criture dans la mmoire flash interne.
35006145 05 novembre 2006
197
Objets systme
Description Peut tre lu par le programme utilisateur ou par le terminal. Indique l'tat de la carte. %SW97 : 0000 = pas d'erreur. 0001 = sauvegarde de l'application ou criture dans un fichier envoye sur une carte protge en criture. 0002 = carte non reconnue ou endommagement de la sauvegarde de l'application. 0003 = sauvegarde de l'application requise, mais aucune carte disponible. 0004 = erreur d'accs la carte, par exemple aprs la suppression incorrecte d'une carte. 0005 = aucun systme de fichier n'est prsent sur la carte ou n'est compatible. %SW93.0 permet de formater la carte. Mot utilis pour prendre en charge la redondance des modules rseau. Lorsqu'un problme est dtect sur un module de communication utilis pour accder un numro de rseau x (X-WAY), il est possible de passer un autre module de communication (connect au mme rseau) en saisissant le numro de rseau dans le mot %SW99. %SW99 est rinitialis sur 0 par le systme.
Etat Modicon Premium Quantum initial M340 Atrium OUI NON NON
NON
OUI
NON
198
Objets systme
%SW108 Nombre FORCEDIOIM de bits de modules dE/S forcs %SW109 FORCEDANA Nombre de voies analogiqu es forces Dfaut dE/S Fipio
Ce mot systme compte le nombre de bits de module dentres/sorties forcs. Ce mot est incrment lors dun forage ou dcrment, lors dun dforage. Ce mot systme compte le nombre de voies analogiques forcs. Ce mot est incrment lors dun forage ou dcrment, lors dun dforage. Normalement 0, chaque bit de ce mot est significatif d'un statut d'change Fipio dans laquelle il est test. Ce mot est remis 0 par l'utilisateur. Dtail des bits du mot %SW116 : z %SW116.0 = 1 erreur d'change explicite (la variable n'est pas change sur le bus) z %SW116.1 = 1 temporisation sur un change explicite (pas de rponse au bout de la temporisation) z %SW116.2 = 1 nombre maximum d'changes explicites simultans atteint z %SW116.3 = 1 une trame n'est pas correcte z %SW116.4 = 1 la longueur d'une trame reue suprieure la longueur dclare z %SW116.5 = rserv 0 z %SW116.6 = 1 une trame est invalide, ou un agent s'initialise z %SW116.7 = 1 absence d'un quipement configur z %SW116.8 = 1 dfaut voie (au moins une voie d'un quipement signale un dfaut) z %SW116.9 15 = rserv 0
OUI
NON
OUI
%SW116 REMIOERR
NON
NON
OUI
199
Objets systme
%SW124 CPUERR
OUI
OUI
OUI
200
Objets systme
Fonction
Description
Etat initial -
Dernier Le code du dernier dfaut dtect est dfaut d- donn dans ce mot : tect Les codes d'erreur suivants entranent l'arrt de l'automate si %S78 est dfini sur 1. %S15, %S18 et %S20 sont toujours actifs indpendamment de %S78 : z 16#2258: excution de l'instruction HALT, z 16#DE87 : erreur de calcul sur les nombres virgule flottante (%S18, ces erreurs sont rpertories dans le mot %SW17), z 16#DEB0 : dbordement du chien de garde (%S11), z 16#DEF0 : division par 0 (%S18), z 16#DEF1 : erreur de transfert de chane vide (%S15), z 16#DEF2 : erreur arithmtique ; %S18, z 16#DEF3 : dpassement d'index (%S20). Remarque : Les codes suivants 16#8xF4, 16#9xF4 et 16#DEF7 indiquent une erreur dans le diagramme fonctionnel en squence (SFC).
Adresse de l'instruction qui a gnr le dfaut bloquant de l'application. Avec processeurs 16 bits, TSX P57 1/ 2 : z %SW126 contient le dcalage pour cette adresse, z %SW127 contient le numro du segment pour cette adresse. Avec processeurs 32 bits : z %SW126 contient le mot de poids faible pour cette adresse, z %SW127 contient le mot de poids fort pour cette adresse.
OUI
OUI
OUI
201
Objets systme
6.3
Description
Objet de cette section Contenu de ce sous-chapitre Ce sous-chapitre dcrit les mots systme %SW128 %SW167 dans le cas dautomates Premium et Atrium Ce sous-chapitre contient les sujets suivants :
Sujet Description des mots systme %SW60 %SW65 Description des mots systme %SW128 %SW143 Description des mots systme %SW144 %SW146 Description des mots systme %SW147 %SW152 Description des mots systme %SW153 Description du mot systme %SW154 Description des mots systme Premium/Atrium %SW155 %SW167 Page 203 207 208 210 211 213 214
202
Objets systme
Description des mots systme %SW60 %SW65 sur la redondance d'UC Premium/Atrium.
Fonction Registre de commande du systme de redondance Premium Description Signification des diffrents bits du mot %SW60 : z %SW60.1 z =0 configure l'automate A en mode OFFLINE. z =1 configure l'automate A en mode RUN. z %SW60.2 z =0 configure l'automate B en mode OFFLINE. z =1 configure l'automate B en mode RUN. z Diffrence de version au niveau du systme d'exploitation %SW60.4 z =0 En cas de diffrence de version au niveau du systme d'exploitation avec l'automate primaire, le mode Redondant passe en mode Hors ligne. z =1 En cas de diffrence de version au niveau du systme d'exploitation avec l'automate primaire, le mode Redondant reste en mode Redondant. Diffrence au niveau du systme d'exploitation du micrologiciel. Ceci est li la version au niveau du systme d'exploitation du processeur principal, la version au niveau du systme d'exploitation du coprocesseur intgr, la version au niveau du systme d'exploitation ETY surveill et active un systme de redondance d'UC pour permettre le fonctionnement avec des versions diffrentes au niveau du systme d'exploitation s'excutant sur le mode Primaire ou Redondant. Etat Premium initial 0 OUI Atrium NON
203
Objets systme
Description
Atrium NON
0 Signification des diffrents bits du mot %SW61.0 %SW61.6 : z %SW61.0 et %SW61.1 Etat de l'automate local. z %SW61.1=0 et %SW61.0=1 : mode OFFLINE. z %SW61.1=1 et %SW61.0=0 : mode primaire. z %SW61.1=1 et %SW61.0=1 : mode de redondance de l'UC. z %SW61.2 et %SW61.3 Etat de l'automate distant. z %SW61.3=0 et %SW61.2=1 : mode OFFLINE. z %SW61.3=1 et %SW61.2=0 : mode primaire. z %SW61.3=1 et %SW61.2=1 : mode de redondance de l'UC : z %SW61.3=0 et %SW61.2=0 : l'automate distant n'est pas accessible (hors tension, aucune communication). z %SW61.4 =1 : en cas de dtection d'une diffrence de logique entre les automates primaire et redondant. z %SW61.5 = 0 ou 1, en fonction de l'adresse MAC du coprocesseur Ethernet : z =0 l'automate avec la plus petite adresse MAC devient l'automate A. z =1 l'automate avec la plus grande adresse MAC devient l'automate B. z %SW61.6 : ce bit indique si la liaison sync UC entre deux automates est valide : z %SW61.6=0: la liaison sync UC est valide. Le contenu du bit 5 est significatif. z %SW61.6=1: la liaison sync UC n'est pas valide. Dans ce cas, le contenu du bit 5 n'est pas significatif parce que la comparaison de deux adresses MAC ne peut pas tre effectue.
204
Objets systme
Description
Atrium NON
Signification des diffrents bits du mot %SW61.7 0 %SW61.9 : z %SW61.7 : ce bit indique s'il y a une diffrence de version au niveau du systme d'exploitation du processeur principal entre les modes Primaire et Redondant : z =0: Aucune diffrence de version au niveau du systme d'exploitation du micrologiciel. z =1: Diffrence de version au niveau du systme d'exploitation. Si la diffrence de version au niveau du systme d'exploitation n'est pas autorise dans le registre de commande (bit 4 = 0), le systme ne fonctionnera pas en mode redondant tant que le dfaut est signal. z %SW61.8 : ce bit indique s'il y a une diffrence de version au niveau du systme d'exploitation du coprocesseur entre les modes Primaire et Redondant : z =0: Aucune diffrence de version au niveau du systme d'exploitation du coprocesseur. z =1: Diffrence de version au niveau du systme d'exploitation du coprocesseur. Si la diffrence de version au niveau du systme d'exploitation n'est pas autorise dans le registre de commande (bit 4 = 0), le systme ne fonctionnera pas en mode redondant tant que le dfaut est signal. z %SW61.9 : ce bit indique si au moins un module ETY n'est pas conforme la version minimum : z =0: tous les modules ETY sont conformes la version minimum. z =1: Au moins un module ETY n'est pas conforme la version minimum. Dans ce cas, aucun automate primaire ne peut dmarrer.
205
Objets systme
Description Signification des diffrents bits du mot %SW61.10 et %SW61.15 : z %SW61.10 : ce bit indique s'il y a une diffrence de version au niveau du systme d'exploitation ETY surveill entre les modes Primaire et Redondant : z =0: Aucune diffrence de version au niveau du systme d'exploitation des modules ETY surveills. z =1: Diffrence de version au niveau du systme d'exploitation des modules ETY surveills. Si la diffrence de version au niveau du systme d'exploitation n'est pas autorise dans le registre de commande (bit 4 = 0), le systme ne fonctionnera pas en mode redondant tant que le dfaut est signal. z %SW61.15 : Si %SW61.15 est rgl sur 1, cela signifie que le coprocesseur Ethernet est correctement configur et qu'il fonctionne. Ces quatre mots sont des registres inverss rservs au processus de transfert invers. Ces quatre registres inverss peuvent tre crits dans le programme d'application (premire section) de l'automate redondant, puis sont transfrs lors de chaque cycle vers l'automate primaire.
Atrium NON
%SW62 HSBY_REVE RSE0 %SW63 HSBY_REVE RSE1 %SW64 HSBY_REVE RSE2 %SW65 HSBY_REVE RSE3
OUI
NON
206
Objets systme
Tableau de correspondance entre les bits des mots et l'adresse d'un point de connexion :
Bit 0 Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Bit 9 Bit 10 %SW128 %SW129 %SW130 %SW131 %SW132 %SW133 %SW134 %SW135 %SW136 %SW137 %SW138 %SW139 %SW140 %SW141 %SW142 %SW143 0 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 1 17 33 49 65 81 97 113 129 145 161 177 193 209 225 241 2 18 34 50 66 82 98 114 130 146 162 178 194 210 226 242 3 19 35 51 67 83 99 115 131 147 163 179 195 211 227 243 4 20 36 52 68 84 100 116 132 148 164 180 196 212 228 244 5 21 37 53 69 85 101 117 133 149 165 181 197 213 229 245 6 22 38 54 70 86 102 118 134 150 166 182 198 214 230 246 7 23 39 55 71 87 103 119 135 151 167 183 199 215 231 247 8 24 40 56 72 88 104 120 136 152 168 184 200 216 232 248 9 25 41 57 73 89 105 121 137 153 169 185 201 217 233 249 10 26 42 58 74 90 106 122 138 154 170 186 202 218 234 250 Bit 11 11 27 43 59 75 91 107 123 139 155 171 187 203 219 235 251 Bit 12 12 28 44 60 76 92 108 124 140 156 172 188 204 220 236 252 Bit 13 13 29 45 61 77 93 109 125 141 157 173 189 205 221 237 253 Bit 14 14 30 46 62 78 94 110 126 142 158 174 190 206 222 238 254 Bit 15 15 31 47 63 79 95 111 127 143 159 175 191 207 223 239 255
207
Objets systme
%SW145 BAPARAM
L'octet de poids faible indique l'tat de la fonction producteur/consommateur. L'octet de poids fort indique l'tat de la fonction arbitre de bus. Valeur de l'octet : z 16#00: la fonction n'existe pas (pas d'application Fipio). z 16#70: la fonction est initialise mais pas oprationnelle (en STOP). z 16#F0 : la fonction est en cours d'excution normale (en RUN).
208
Objets systme
ATTENTION Concerne les mots %SW144 et %SW145 la modification de ces mots systme peut entraner l'arrt de la station automate. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
209
Objets systme
210
Objets systme
z z z z z z
bit 0 = "dfaut d'overrun de la station" : correspond une perte de symbole MAC en rception, lie une raction trop lente du rcepteur. bit 1 = " dfaut de refus message" : indique un message avec acquittement refus ou sans acquittement MAC en rception, bit 2 = "dfaut de refus de variable d'interruption". bit 3 = "dfaut d'underrun de la station" : correspond une incapacit de la station respecter la vitesse d'mission sur le rseau. bit 4 = "dfaut de couche physique" : correspond une absence prolonge de transmission au niveau couche physique. bit 5 = "dfaut de non cho" : correspond un dfaut pour lequel l'metteur est en cours d'mission, avec un courant d'mission compris dans la plage de fonctionnement, et simultanment dtection d'absence de signal sur la mme voie. bit 6 = "dfaut de bavardage" : correspond un dfaut pour lequel l'metteur dispose du contrle de la ligne depuis un temps suprieur la limite maximale de fonctionnement dfinie. Ce dfaut est par exemple provoqu par une dtrioration du modulateur ou par une couche liaison de donnes dfectueuse. bit 7 = "dfaut d'hypocourant" : correspond un dfaut pour lequel l'metteur produit sur la ligne, lorsqu'il est sollicit, un courant infrieur la limite minimale de fonctionnement dfinie. Ce dfaut est provoqu par une lvation de l'impdance de ligne (ligne ouverte, etc.). bit 8 = "dfaut de trame perfore" : indique la rception d'un silence dans le corps d'une trame aprs l'identification d'un dlimiteur de dbut de trame et avant l'identification d'un dlimiteur de fin de trame. L'apparition d'un silence dans des conditions normales de fonctionnement a lieu aprs l'identification d'un dlimiteur de fin de trame. bit 9 = "dfaut de CRC trame en rception" : indique une diffrence de valeur entre le CRC calcul sur la trame normalement reue et le CRC contenu dans cette trame. bit 10 = "dfaut de codage trame en rception" : indique la rception de certains symboles, appartenant exclusivement aux squences de dlimitation du dbut et de la fin de trame, dans le corps d'une trame.
211
Objets systme
z z
z z
bit 11 = "dfaut de longueur de la trame reue" : le nombre d'octets reus pour le corps d'une trame est suprieur 256 octets. bit 12 = "rception d'une trame de type inconnu" : dans le corps d'une trame, le premier octet identifie le type de trame liaison. Un certain nombre de types de trames sont dfinis dans le protocole liaison de la norme WorldFip. L'existence de tout autre code dans une trame correspond un dfaut de type trame inconnue. bit 13 = "rception d'une trame tronque" : un fragment de trame se caractrise par la reconnaissance d'une squence de symboles du dlimiteur de fin de trame alors que la station destinataire s'attend recevoir un dlimiteur de dbut de trame. bit 14 = "inutilis, valeur non significative". bit 15 = "inutilis, valeur non significative".
212
Objets systme
z z
z z z
bit 0 = "time out squence apriodique" : indique un dpassement de la fentre de messages ou de variables apriodiques dans un cycle lmentaire du macrocycle. bit 1 = "refus de demande de messagerie" : indique une saturation de la file d'attente des messages, l'arbitre de bus n'est momentanment plus en mesure de mmoriser puis de satisfaire une demande. bit 2 = "refus de commande d'update urgente" : indique une saturation de la file d'attente des demandes d'changes de variables apriodiques urgentes, l'arbitre de bus n'est momentanment plus en mesure de mmoriser ni de satisfaire la demande. bit 3 = "refus de commande d'update non urgente" : indique une saturation de la file d'attente des demandes d'changes de variables apriodiques non urgentes, l'arbitre de bus n'est momentanment plus en mesure de mmoriser ni de satisfaire la demande. bit 4 = "dfaut de silence" : l'arbitre de bus n'a dtect aucune activit sur le bus pendant une dure suprieure un temps normalis WorldFip. bit 5 = "collision sur le rseau l'mission d'identificateur" : indique une activit sur le rseau pendant des priodes thoriques de silence. Entre une mission et l'attente d'une rponse par l'arbitre de bus, rien ne doit circuler sur le bus. Si l'arbitre de bus dtecte une activit il gnre un dfaut de collision (Par exemple lorsque plusieurs arbitres sont actifs simultanment sur le bus). bit 6 = "dfaut d'overrun de l'arbitre de bus" : indique un conflit d'accs la mmoire de la station arbitre de bus. bit 7 = "inutilis, valeur non significative". bit 8 bit 15 = rserv 0.
213
Objets systme
Nombre dchanges Nombre d'changes explicites en cours de traitement sur Fipio, explicites sur Fipio effectus par instructions (READ_STS, REA_PARAM...). Prends en compte aussi les changes explicites effectus par requtes (READ_IO_OBJECT, WRITE_IO_OBJECT...) Remarque : le nombre d'changes explicites est toujours infrieur 24. Etat de fonctionnement des modules automate Les mots %SW160 %SW167 sont associs respectivement aux racks 0 7. Les bits de 0 15 de chacun de ces mots sont associs aux modules situs aux positions 0 15 de ces racks. Le bit est 0 si le module est en dfaut, il est 1 si le module fonctionne correctement. Exemple : %SW163.5 =0 Le module situ dans lemplacement 5 du rack 3 est en dfaut.
214
Objets systme
6.4
Description
Objet de cette section Contenu de ce sous-chapitre
Cette section dcrit les mots systme %SW128 %SW547 pour des automates Quantum. Ce sous-chapitre contient les sujets suivants :
Sujet Description des mots systme %SW60 %SW63 Description des mots systme Quantum %SW128 %SW179 Description des mots systme Quantum %SW180 %SW640 Page 216 218 221
215
Objets systme
Etat initial 0
l'cran (clavier).
z %SW60.1
=0 configure l'automate A en mode Hors ligne. z =1 configure l'automate A en mode RUN. %SW60.2 z =0 configure l'automate B en mode Hors ligne. z =1 configure l'automate B en mode RUN. %SW60.3=0 active le mode Hors ligne sur l'automate redondant si les applications sont diffrentes. %SW60.4 z =0 n'autorise une mise jour du micrologiciel qu'aprs l'arrt de l'application. z =1 autorise une mise jour du micrologiciel mme si l'application n'est pas arrte. %SW60.5=1 demande de transfert d'application de l'automate redondant l'automate primaire. %SW60.8 z =0 commutation d'adresse sur le port Modbus 1 lors d'une permutation principale. z =1 pas de commutation d'adresse sur le port Modbus 1 lors d'une permutation principale. %SW60.9 z =0 Commutation d'adresse sur le port Modbus 2 lors d'une permutation principale. z =1 pas de commutation d'adresse sur le port Modbus 2 lors d'une permutation principale. %SW60.10 z =0 Commutation d'adresse sur le port Modbus 3 lors d'une permutation principale. z =1 pas de commutation d'adresse sur le port Modbus 3 lors d'une permutation principale.
z
216
Objets systme
Etat initial 0
z z
z z
marche de l'automate z %SW61.1=0, %SW61.0=1 : mode Hors ligne. z %SW61.1=1, %SW61.0=0 : mode primaire. z %SW61.1=1, %SW61.0=1 : mode secondaire (redondant). Bits %SW61.2 et %SW61.3 du mode de marche de l'autre automate z %SW61.3=0, %SW61.2=1 : mode Hors ligne. z %SW61.3=1, %SW61.2=0 : mode primaire. z %SW61.3=1, %SW61.2=1 : mode secondaire (redondant). z %SW61.3=0, %SW61.2=0 : l'automate distant n'est pas accessible (hors tension, aucune communication). %SW61.4=0 les applications sont identiques sur les deux automates. %SW61.5 z =0 l'automate est utilis comme unit A. z =1 l'automate est utilis comme unit B. %SW61.14=0 variables non affectes en cours de transfert. %SW61.15 z =0 redondance d'UC non active. z =1 redondance d'UC active. 0
Ces 2 mots peuvent tre crits par l'utilisateur dans la premire section de la tche matre. Ils sont ensuite transfrs automatiquement du processeur redondant l'automate primaire. Ils peuvent tre lus sur l'automate primaire et utiliss comme paramtres de l'application primaire.
217
Objets systme
Description des mots systme %SW128 %SW179 ; ces mots sont actifs sur les automates Quantum 140 CPU 6.
Fonction Description Etat initial 0
Nombre de Loctet de poids fort de ce mot indique le nombre de connexions ouvertes connexions TCP ouvertes sur la liaison Ethernet port TCP/IP 502. Nombre de Ce mot indique le nombre de connexions TCP refuses sur la connexions refuses liaison Ethernet port TCP/IP 502. Nombre de messages refuss Nombre de messages envoys Nombre de messages reus Nombre dquipements scruts Nombre de messages IO Scanning reus Ce mot indique le nombre de messages TCP refuses sur la liaison Ethernet port TCP/IP 502. Ce double mot %SDW132 indique le nombre de messages envoys sur la liaison Ethernet port TCP/IP 502. Ce double mot %SDW134 indique le nombre de messages reus sur la liaison Ethernet port TCP/IP 502. Ce mot indique le nombre dquipements scruts sur la liaison Ethernet port TCP/IP 502. Ce mot indique le nombre de messages du service IO Scanning reus par seconde sur la liaison Ethernet port TCP/ IP 502.
0 0 0
Erreur de cohrence Erreur de cohrence des Global Data des Global Data Charge des services Loctet de poids faible de ce mot mesure le pourcentage de Global Data et IO charge relative au IO Scanning. Scanning Loctet de poids fort de ce mot mesure le pourcentage de charge relative au Global Data. Charge du service messagerie et autres services Adresse IP Loctet de poids faible de ce mot mesure le pourcentage de charge relative au service messagerie. Loctet de poids fort de ce mot mesure le pourcentage de charge relative aux autres services. Ce double mot %SDW141 reoit ladresse IP de la liaison Ethernet.
0 0
%SW140 BW_OTHER_MSG
218
Objets systme
Description Ce double mot %SDW143 reoit le masque sous-rseau de la liaison Ethernet. Ce double mot %SDW145 reoit ladresse de la passerelle Ethernet par dfaut. Les mots %SW147, %SW148,%SW149 codent respectivement les adresses MAC 1, MAC 2 et MAC 3. Ce mot code la version du logiciel embarqu pour les automates de type 140 CPU 651-x0. La version s'affiche au format hxadcimal. Ce mot code la version coprocesseur pour les automates de type 140 CPU 671-60. La version s'affiche au format hxadcimal. Ce mot code ltat de la liaison Ethernet.
z Bit 0 =0 si liaison Ethernet est arrte z Bit 1 =0 z Bit 2 : 0= mode Haf duplex, 1=full duplex z Bit 3 =0 z Bit 4 11 : =7 pour Quantum, =6 pour Hot Stand by
Etat initial 0
%SW147 %SW149 Adresses MAC MAC_ADDR1 3 %SW150 FW_VERSION Version du logiciel embarqu Version du coprocesseur %SW151 BOARD_STS Etat de la liaison Ethernet
0 0
Quantum
z Bit 12 : 0 = liaison 10 Mbits, 1= liaison 100 Mbits z Bit 13 : 0 = liaison 10/100Base-TX (paire torsade) z Bit 14 : 0 z Bit 15 : 0 = liaison Ethernet inactive, 1= liaison Ethernet
active %SW160 %SW167 Etat de REFRESH_IO fonctionnement des quipements par IO scanning Les bits des mots %SW160 %SW167 sont associs aux quipements scruts par E/S. Le bit est 0 si lquipement est en dfaut, il est 1 si lquipement fonctionne correctement. %SW160.0 : quipement N 1. %SW160.1 : quipement N 2. ........... %SW167.15 : quipement N 128. Remarque : ces mots systme sont uniquement disponibles pour les coprocesseurs Quantum et non pour les modules NOE. -
219
Objets systme
Mot Symbole
Fonction
Description Les bits des mots %SW168 %SW171 sont associs aux Global Data. Le bit est 0 si lquipement est en dfaut, il est 1 si lquipement fonctionne correctement. %SW168.0 : quipement N 1. %SW168.1 : quipement N 2. ........... %SW171.15 : quipement N 64.
Etat initial -
220
Objets systme
%SW340 MB+DIOSLOT
221
Objets systme
Fonction Etat de fonctionnement des modules de stations distribues du premier rseau DIO
Description Les mots %SW341 %SW404 sont associs aux stations distribues (DIO) : 64 mots associs aux 64 stations DIO du premier rseau. %SW341 : tat de fonctionnement des modules de la station 1. %SW342 : tat de fonctionnement des modules de la station 2. ........... %SW404 : tat de fonctionnement des modules de la station 64. Les bits de 0 15 de chacun de ces mots sont associs aux modules situs aux positions 16 1 de ces stations. Le bit est 0 si le module est en dfaut, il est 1 si le module fonctionne correctement. Exemple : %SW362.5 =0 Le module situ dans lemplacement 11 de la station 22 du premier rseau DIO est en dfaut. Note : pour les modules 140 CRA 2 la valeur de ce bit nest pas significative, elle est toujours fixe 0. Numro d'emplacement du module 140 NOM 2 pour la connexion au deuxime rseau DIO. Le numro demplacement est cod de 0 15.
Etat initial -
%SW405 NOM1DIOSLOT
Numro d emplacement du premier module interface rseau DIO Etat de fonctionnement des modules de stations distribues du second rseau DIO
Les mots %SW406 %SW469 sont associs aux stations distribues (DIO) : 64 mots associs aux 64 stations DIO du second rseau. %SW406 : tat de fonctionnement des modules de la station 1. %SW407 : tat de fonctionnement des modules de la station 2. ........... %SW469 : tat de fonctionnement des modules de la station 64. Les bits de 0 15 de chacun de ces mots sont associs aux modules situs aux positions 16 1 de ces stations. Le bit est 0 si le module est en dfaut, il est 1 si le module fonctionne correctement. Exemple : %SW412.5 =0 Le module situ dans lemplacement 11 de la station 7 du second rseau DIO est en dfaut. Note : pour les modules 140 CRA 2 la valeur de ce bit nest pas significative, elle est toujours fixe 0.
222
Objets systme
Fonction Numro demplacement du second module interface rseau DIO Etat de fonctionnement des modules de stations distribues du troisime rseau DIO
Description Numro d'emplacement du module 140 NOM 2 pour la connexion au troisime rseau DIO. Le numro demplacement est cod de 0 15.
Etat initial -
Les mots %SW471 %SW534 sont associs aux stations distribues (DIO) : 64 mots associs aux 64 stations DIO du troisime rseau. %SW471 : tat de fonctionnement des modules de la station 1. %SW472 : tat de fonctionnement des modules de la station 2. ........... %SW534 : tat de fonctionnement des modules de la station 64. Les bits de 0 15 de chacun de ces mots sont associs aux modules situs aux positions 16 1 de ces stations. Le bit est 0 si le module est en dfaut, il est 1 si le module fonctionne correctement. Exemple : %SW520.5 =0 Le module situ dans lemplacement 11 de la station 86 du troisime rseau DIO est en dfaut. Note : pour les modules 140 CRA 2 la valeur de ce bit nest pas significative, elle est toujours fixe 0.
223
Objets systme
Description Ce mot stocke le code d'erreur de dmarrage. Toujours 0 lorsque le systme est en marche. En cas d'erreur, l'automate ne dmarre pas, mais gnre un code d'tat d'arrt 01: Longueur d'affectation des E/S 02: Numro de lien d'E/S dcentralise 03: Nombre de stations dans l'affectation des E/S 04: Checksum d'affectation des E/S 10: Longueur du descripteur de station 11: Numro de station d'E/S 12: Temps d'autonomie de la station 13: Numro de port ASCII 14: Nombre de modules de la station 15: Station dj configure 16: Port dj configur 17: Plus de 1024 points de sortie 18: Plus de 1024 points d'entre 20: Adresse d'emplacement de module 21: Adresse du chssis de module 22: Nombre d'octets de sortie 23: Nombre d'octets d'entre 25: Premier numro de rfrence 26: Second numro de rfrence 28: Bits internes hors limite des 16 bits 30: Module de sortie impair dpareill 31: Module d'entre impair dpareill 32: Rfrence de module impair dpareill 33: Rfrence 1x aprs le registre 3x 34: Rfrence du module factice dj utilis 35: Le module 3x n'est pas factice 36: Le module 4x n'est pas factice
Etat initial -
224
Objets systme
Description Les mots %SW536 %SW538 sont des mots derreur de communication sur le cble A. z %SW536 : z octet de poids fort : compte les erreurs de trame z octet de poids faible : compte les dpassements du rcepteur DMA. z %SW537 : z octet de poids fort : compte les erreurs de rception z octet de poids faible : compte les rceptions de stations incorrectes. z %SW538 : z %SW538.15 = 1, trame trop courte z %SW538.14 = 1, pas de fin de trame z %SW538.3 = 1, erreur CRC z %SW538.2 = 1, erreur dalignement. z %SW538.1 = 1, erreur de dpassement z %SW538.13 4 et 0 sont inutiliss Les mots %SW539 %SW541 sont des mots derreur de communication sur le cble A. z %SW539 : z octet de poids fort : compte les erreurs de trame z octet de poids faible : compte les dpassements du rcepteur DMA. z %SW540 : z octet de poids fort : compte les erreurs de rception z octet de poids faible : compte les rceptions de stations incorrectes. z %SW541 : z %SW541.15 = 1, trame trop courte z %SW541.14 = 1, pas de fin de trame z %SW541.3 = 1, erreur CRC z %SW541.2 = 1, erreur dalignement. z %SW541.1 = 1, erreur de dpassement z %SW541.13 4 et le bit 0 sont inutiliss
Etat initial -
225
Objets systme
Description Les mots %SW542 %SW544 sont des mots derreur de communication globale. z %SW542 : affiche ltat de la communication globale. z %SW542.15 = 1, communication en fonctionnement correct z %SW542.14 = 1, communication sur cble A en fonctionnement correct z %SW542.13 = 1, communication sur cble B en fonctionnement correct z %SW542.11 8= compteur des communications perdues z %SW542.7 0 = compteur totalisateur de nouvelle tentative. z %SW543 : est le compteur totalisateur global des erreurs pour le cble A : z octet de poids fort : compte les erreurs dtectes z octet de poids faible : compte les "non rponses". z %SW544 : est le compteur totalisateur global des erreurs pour le cble B : z octet de poids fort : compte les erreurs dtectes z octet de poids faible : compte les "non rponses".
Etat initial -
226
Objets systme
Description Les mots %SW545 %SW640 permettent de dcrire ltat des stations dcentralises. Trois mots dtat sont utiliss pour chaque station. z %SW545 : affiche ltat de la communication globale de la station 1. z %SW545.15 = 1, communication en fonctionnement correct z %SW545.14 = 1, communication sur cble A en fonctionnement correct z %SW545.13 = 1, communication sur cble B en fonctionnement correct z %SW545.11 8= compteur des communications perdues z %SW545.7 0 = compteur totalisateur de nouvelle tentative. z %SW546 : est le compteur totalisateur global des erreurs pour le cble A station1: z octet de poids fort : compte les erreurs dtectes z octet de poids faible : compte les "non rponses". z %SW547 : est le compteur totalisateur global des erreurs pour le cble B station1: z octet de poids fort : compte les erreurs dtectes z octet de poids faible : compte les "non rponses". Les mots : %SW548 550 sont affects la station 2 %SW551 553 sont affects la station 3 ....... %SW638 640 sont affects la station 32
Etat initial -
Pour les automates o la station 1 est rserve pour les Entres/ sorties locales, les mots dtat %SW545 %SW547 sont utiliss de la faon suivante. z %SW545 : tat de la station locale. z %SW545.15 = 1, tous les modules ont un fonctionnement correct. z %SW545.14 8= non utiliss , toujours 0. z %SW545.7 0 = nombre de fois o le module a t vu comme dfectueux, le compteur reboucle 255. z %SW546 : est utilis comme compteur des erreurs de bus dentres/sorties 16 bits. z %SW547 : est utilis comme compteur de rptition de bus dentres/sorties 16 bits.
227
Objets systme
6.5
Erreur des racks 0 Les mots %SW160 %SW167 sont associs 7 pour Premium et respectivement aux racks 0 7. Modicon M340 Les bits de 0 15 de chacun de ces mots sont associs aux modules situs aux positions 0 15 de ces racks. Le bit est 0 si le module est en dfaut et 1 si le module fonctionne correctement. Exemple : %SW163.5=0 Le module situ la position 5 du rack 3 est en dfaut. Dans les cas des demi-racks, 2 demi-racks contigus forment un rack complet normal, rfrenc par un seul Swi.
228
III
Prsentation
Objet de cette partie Contenu de cette partie Cette partie dcrit les diffrents types de donnes quil est possible dutiliser dans un projet, et dcrit comment les mettre en oeuvre. Cette partie contient les chapitres suivants :
Chapitre 7 8 9 10 Titre du chapitre Prsentation gnrale des donnes Types de donnes Instances de donnes Rfrences de donnes Page 231 239 303 319
229
230
Prsentation
Objet du chapitre Ce chapitre prsente de faon trs gnrale:
z z z
les diffrents types de donnes, les instances de donnes, les rfrences de donnes.
Contenu de ce chapitre
231
Gnralits
Introduction Une donne dsigne un dobjet qui peut tre instanci tel que :
z z
une variable, un bloc fonction. la phase types de donnes, dans laquelle est prcise: z sa catgorie, z son format. la phase instances de donnes, dans laquelle est dfini son emplacement mmoire et sa proprit qui est: z localise ou, z non localise. la phase rfrences de donnes, dans laquelle est dfini son moyen daccs: z par valeur immdiate, z par nom, z par adresse.
Illustration
Instancier une donne consiste partir de son type lui allouer un emplacement mmoire. Rfrencer une donne consiste lui dfinir une rfrence (nom, adresse, etc...) permettant de latteindre en mmoire.
232
Ces proprits sont partages par toutes les instances du type de donne. Illustation Les familles de types de donnes sont classs dans diffrentes catgories (gris fonc) :
Types de donnes
Variables
Blocs fonction
EDT
DDT
EFB
DFB
233
Dfinitions
DDT
tableau de Bool (tableau dEDT), tableau de tableaux (tableau de DDT), z tableau de structures (tableau de DDT) z structures, qui contiennent des lments de type diffrents : z structure de Bool, Word, etc... (structure dEDT), z structure de tableaux, structure de structures, structure de tableaux\structures (structure de DDT), z structure de Bool, tableaux, etc... (structure dEDT et DDT), z structure concernant les donnes dentres/sorties (structure dIODDT), z structures contenant des variables restituant les proprits et ltat dune action ou transition dun diagramme fonctionnel en squence (Sequential Function Chart).
z z
EFB
Blocs fonctions lmentaires (Elementary function blocs) crits en langage C, il sont constitus : z de variables dentres, z de variables internes, z de variables de sorties, z dun algorithme de traitement. Blocs fonctions utilisateurs (Derived function blocs) crits en langage dautomatisme (Litteral Structur, Liste dinstructions, etc...), ils sont constitus : z de variables dentres, z de variables internes, z de variables de sorties, z dun algorithme de traitement.
DFB
234
Illustration
Allocation mmoire des instances (gris fonc) appartenant aux diffrents types :
Donnes
Variables
Blocs fonction
EDT
DDT
Non localises
Non localises
Non localises
Localises
Localises
235
Dfinitions
Localises
236
valeur immdiate, vrai uniquement pour les donnes de type EDT, adressage, vrai uniquement pour les donnes de type EDT, nom (symbole), vrai pour tous les types de donnes EDT, DDT, EFB, DFB ainsi que les objets SFC.
Illustration
Variables
Blocs fonction
EDT
DDT
Par valeur
237
Option Jeu tendu de caractres autoris slectionne, dans ce cas lapplication est au standard IEC, Option Jeu tendu de caractres autoris non slectionne, dans ce cas lutilisateur bnficie de quelques souplesses, mais lapplication nest pas conforme au standard IEC.
Le jeu tendu de caractres utilis pour les noms saisis dans lapplication concernent :
z z z
les types blocs fonctions utilisateur DFB (Derived Function Block) ou les types de donnes drivs DDT (Derived data types), les lments internes composant un type de donnes bloc fonction DFB\EFB ou un type de donnes driv DDT, les instances de donnes.
Les noms saisis sont des chaines composes de caractres alphanumriques, du caractre Underscore. Les rgles sont les suivantes:
z z
le premier caractre du nom est un caractre alphabtique ou est le caractre Underscore, deux caractres Underscore ne peuvent tre conscutifs.
Les noms saisis sont des chaines composes de caractres alphanumriques, du caractre Underscore. Des caractres supplmentaires sont autoriss tels que:
z z
les caractres correspondants aux codes ASCCII 192 223 ( lexception du code 215), les caractres correspondants aux codes ASCCII 224 255 ( lexception du code 247). le premier caractre du nom est un caractre alphanumrique ou est le caractre Underscore, les caractres Underscore peuvent tre conscutifs.
238
Types de donnes
8
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre dcrit tous les types de donnes quil est possible dutiliser dans une application. Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet 8.1 8.2 8.3 8.4 8.5 8.6 8.7 8.8 8.9 8.10 Types de donnes lmentaires (EDT) au format Binaire Types de donnes lmentaires (EDT) au format BCD Types de donnes lmentaires (EDT) au format Rel Types de donnes lmentaires (EDT) au format chaine de caractres Types de donnes lmentaires (EDT) au format chane de bits Types de donnes drivs (DDT/IODDT) Types de donnes blocs fonctions (DFB\EFB) Types de donnes gnriques (GDT) Types de donnes appartenant aux diagrammes fonctionnels en squence (SFC) Compatibilit entre types de donnes Page 240 252 260 263 266 270 285 294 296 298
239
Types de donnes
8.1
Prsentation
Objet de cette section Cette section dcrit le type de donnes au format binaire. qui sont :
z z z
Contenu de ce sous-chapitre
240
Types de donnes
Une donne au format binaire est constitue dun ou de plusieurs bits ou chacun dentre eux est reprsent par un des chiffres de la base 2 soit 0 ou 1. Lchelle de la donne dpend du nombre de bit(s) qui la compose. Exemple :
1 7 0 1 Format 1 bit Rang du bit 0 0 1 1 1 0 0 Format 8 bits
signe. Dans ce cas le bit de rang le plus haut est le bit de signe : z 0 indique une valeur positive, z 1 indique une valeur ngative. [ 2 , 2 Bits 1 1 ] La plage des valeurs est: non signe. Dans ce cas tous les bits reprsentent la valeur La plage des valeurs est: [ 0, 2 Bits 1 ]
Bits 1
241
Types de donnes
Boolen avec dtection de fronts et forage 8 Entier Entier double Entier non sign Entier double non sign Entier double non sign 16 32 16 32 32
242
Types de donnes
Types boolens
Prsentation Il existe deux types Boolens. qui sont:
z z
le type BOOL, qui contient uniquement la valeur FALSE (=0) ou TRUE (=1), le type EBOOL, qui contient la valeur FALSE (=0) ou TRUE (=1) mais aussi des informations concernant la gestion des fronts (montants ou descendants) et le forage.
243
Types de donnes
Ce type occupe un octet en mmoire, mais la valeur est stocke seulement dans un bit. La valeur pas dfaut de ce type est FALSE (=0). Il est accessible par une adresse contenant loffset sur loctet correspondant: Adressage:
Mmoire
Offset
Dans le cas du bit extrait de mot, il est accessible par une adresse contenant les informations suivantes:
z z
Adressage:
Mmoire
Offset
V Rang
244
Types de donnes
le bit pour de la valeur (V), le bit historique (H) pour la gestion des fronts (montants ou descendants). , le bit contenant ltat de forage (F). Egal 0 si lobjet nest pas forc et gal 1 si lobjet est forc.
La valeur par dfaut des bits associs au type EBOOL est FALSE (=0). Il est accessible par une adresse spcifiant loffset sur loctet correspondant. Adressage:
Mmoire
Offset
Chronogramme et historique
Le chronogramme ci-dessous prsente le principe des tats des bits (valeur et historique) associs au type EBOLL. Les fronts montants du bit valeur (1, 4) sont copies dans le bit historique au cycle automate suivant (2, 5). Les fronts descendants du bit valeur (2, 7) sont copies dans le bit historique au cycle automate suivant (3, 8).
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
Valeur
Bit historique
245
Types de donnes
Chronogramme et forcage
Le chronogramme ci-dessous prsente le principe des tats des bits (valeur, historique, forage) associs au type EBOLL. Les fronts montants du bit valeur (1, 4) sont copies dans le bit historique au cycle automate suivant (2, 5). Les fronts descendants du bit valeur (2, 7) sont copis dans le bit historique au cycle automate suivant (3,8). Entre (4 et 5) le bit de forage est gal 1, les bits valeur et historique sont maintenus 1.
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
Bit valeur
Bit forage
Bit historique
246
Types de donnes
EBOOL
247
Types de donnes
Compatibilits
Une variable de type EBOOL ne peut tre passe comme paramtre d'entre/ sortie de type BOOL. Les tableaux de EBOOL ne peuvent tre passes comme paramtres de type ANY d'un FFB. Les tableaux de BOOL et de EBOOL ne sont pas compatibles pour l'instruction d'affectation (mme rgle que pour les paramtres de FFB). Sur Quantum : z Les variables localises de type EBOOL ne peuvent tre passes comme paramtres d'entres/sorties de type EBOOL. z Les tableaux de EBOOL ne peuvent tre passs comme paramtres d'un DFB.
248
Types de donnes
Types Entier
Prsentation , qui sont :
z z z z
la base 10 (dcimal) par dfaut. Dans ce cas, la valeur est signe ou non signe. Cela dpend du type de l'entier. la base 2 (binaire). Dans ce cas, la valeur est non signe et le prfixe est 2#. la base 8 (octal). Dans ce cas la valeur est non signe, le prfixe est 8#. la base 16 (hexadcimal). Dans ce cas la valeur est non signe, le prfixe est 16#.
Note : En reprsentation dcimale si le type choisi est sign, la valeur peut tre prcde du signe + ou du signe - (le signe + est optionnel).
Type sign ayant un format sur 16 bits. Ce tableau donne la plage dans chaque base.
Base Decimal Binaire Octale Hexadcimal de... -32768 2#1000000000000000 8#100000 16#8000 ... 32767 2#0111111111111111 8#077777 16#7FFF
Type sign ayant un format sur 32 bits. Ce tableau donne la plage dans chaque base.
Base Decimal Binaire Octale Hexadcimale de... -2147483648 ... 2147483647
249
Types de donnes
Type non sign ayant un format sur 16 bits. Ce tableau donne la plage dans chaque base.
Base Decimal Binaire Octal Hexadcimal de... 0 2#0 8#0 16#0 ... 65535 2#1111111111111111 8#177777 16#FFFF
Type non sign ayant un format sur 32 bits. Ce tableau donne la plage dans chaque base.
Base Decimal Binaire Octal Hexadcimal de... 0 2#0 8#0 16#0 ... 4294967295 2#11111111111111111111111111111111 8#37777777777 16#FFFFFFFF
250
Types de donnes
Le type Heure
Prsentation Le type Heure T# ou TIME# est reprsent par un type d'entier double non sign (UDINT) (voir Types Entier, p. 249). Il exprime une dure en millisecondes, qui reprsente environ la dure maximale de 49 jours. Les units de temps autorises pour la reprsentation de la valeur sont les suivantes :
z z z z z
jours (J) heures (H) minutes (M) secondes (S) millisecondes (MS)
Ce tableau montre les possibilits de saisie de la valeur maximale du type Temps en fonction des units de temps autorises.
Schma T#4294967295MS T#4294967S_295MS T#71582M_47S_295MS T#1193H_2M_47S_295MS T#49J_17H_2M_47S_295MS Commentaire valeur en millisecondes valeur en secondes\millisecondes valeur en minutes\secondes\millisecondes valeur en heures\minutes\secondes\millisecondes valeur en jours\heures\minutes\secondes\millisecondes
251
Types de donnes
8.2
Prsentation
Objectif de la section Cette section dcrit les types de donnes au format BCD (Binary Coded Decimal) qui sont :
z z z
le type Date, le type Time of Day (TOD), le type Date and Time (DT).
Contenu de ce sous-chapitre
252
Types de donnes
253
Types de donnes
Le format Dcimal cod Binaire (Binary coded Decimal) permet de reprsenter les chiffres dcimaux compris entre 0 et 9 l'aide d'un ensemble de quatre bits (quart). Dans ce format, les quatre bits utiliss pour coder les nombres dcimaux ont une plage de combinaisons inutilises. Table de correspondance:
Dcimal 0 1 2 3 4 5 6 7 8 9 Binaire 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 (inutilise) 1011 (inutilise) 1100 (inutilise) 1101 (inutilise) 1110 (inutilise) 1111 (inutilise)
254
Types de donnes
255
Types de donnes
Le type Date
Prsentation Le type Date cod sur un format de 32 bits contient les informations suivantes:
z z z
l'anne code dans un champ de 16 bits (4 quarts de poids forts), le mois cod dans un champ de 8 bits (2 quarts), le jour cod dans un champ de 8 bits (2 quarts de poids faibles).
Rgles de syntaxe
La saisie du type Date est la suivante : D#<Anne>-<Mois>-<Jour> Ce tableau donne les bornes infrieures\suprieures de chaque champ.
Champ Anne Mois Jour Bornes [1990,2099] [01,12] [01,31] [01,30] [01,29] [01,28] Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Pour les mois 01/03/05/07/08/10/12 Pour les mois 04/06/09/11 Pour le mois 02 (annes bissextiles) Pour le mois 02 (annes non bissextiles) Commentaire
Exemple :
Saisie D#2001-1-1 d#1990-02-02 Commentaires Le 0 de gauche du mois et jour peut tre omis Le prfixe peut tre en minuscule
256
Types de donnes
l'heure code dans un champ de 8 bits (2 quarts de poids forts), les minutes codes dans un champ de 8 bits (2 quarts), les secondes codes dans un champs de 8 bits (2 quarts).
Note : Les 8 bits de poids faible sont inutiliss. Reprsentation au format BCD de lheure du jour 13:25:47:
Heure (13) 0001 0011 Minutes (25) 0010 0101 Secondes (47) 0100 0111 Octet de poid faible Inutiliss
Rgles de syntaxe
Le type Time Of Day doit tre saisi comme suit : TOD#<Heure>:<Minutes>:<Secondes> Ce tableau donne les bornes infrieures\suprieures de chaque champ.
Champ Heure Minute Seconde Bornes [00,23] [00,59] [00,59] Commentaire Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie.
Exemple :
Saisie TOD#1:59:0 tod#23:10:59 Tod#0:0:0 Commentaire Les 0 de gauche des heures et secondes peuvent tre omis Le prfixe peut tre en minuscule Le prfixe peut tre mixte (minuscule\majuscule)
257
Types de donnes
l'anne code dans un champ de 16 bits (4 quarts de poids forts), le mois cod dans un champ de 8 bits (2 quarts), le jour cod dans un champ de 8 bits (2 quarts), l'heure code dans un champ de 8 bits (2 quarts), les minutes codes dans un champ de 8 bits (2 quarts), les secondes codes dans un champs de 8 bits (2 quarts).
Note : Les 8 bits de poids faible sont inutiliss. Exemple : Reprsentation au format BCD de la date et heure 2000-09-20:13:25:47.
Anne (2000) 0010 0000 0000 0000 Mois (09) 0000 1001 Jour (20) Heure (13) Minute (25) 0010 0101 Secondes (47) 0100 0111 Octet de poid faible Inutiliss
258
Types de donnes
Rgles de syntaxe
La saisie du type Date and Time est la suivante: DT#<Anne>-<Mois>-<Jour>-<Heure>:<Minutes>:<Secondes> Ce tableau donne les bornes infrieures\suprieures de chaque champ.
Champ Anne Mois Jour Bornes [1990,2099] [01,12] [01,31] [01,30] [01,29] [01,28] Heure Minute Seconde [00,23] [00,59] [00,59] Le 0 gauche est toujours affich, il peut tre omis lors de la saisie Pour les mois 01/03/05/07/08/10/12 Pour les mois 04/06/09/11 Pour le mois 02 (annes bissextiles) Pour le mois 02 (annes non bissextiles) Le 0 gauche est toujours affich, il peut tre omis lors de la saisie Le 0 gauche est toujours affich, il peut tre omis lors de la saisie Le 0 gauche est toujours affich, il peut tre omis lors de la saisie Commentaire
Exemple :
Saisie DT#2000-1-10-0:40:0 dt#1999-12-31-23:59:59 Dt#1990-10-2-12:02:30 Commentaire Les 0 de gauche des mois\heure\seconde peuvent tre omis Le prfixe peut tre en minuscule Le prfixe peut tre mixte (minuscule\majuscule)
259
Types de donnes
8.3
z z
S, le bit du signe peut prendre la valeur : z 0, pour un nombre virgule flottante positif, z 1, pour un nombre virgule flottante ngatif. e, l'exponentiel cod dans un champ de 8 bits, f, la partie Virgule dcimale dans un champ de 23 bits.
30 S Exposant e 23 22 Partie Virgule dcimale f 0
Reprsentation :
La valeur de la partie Virgule dcimale (Mantissa) se situe entre [0, 1], et est calcule l'aide de la formule suivante.
f = ( 2
i=0
22
i 23
bi )
260
Types de donnes
Ce tableau fournit les valeurs contenues dans les diffrents champs selon le type de nombre.
e [0, 255] 0 255 255 255 255 0 0 f [0, 1] [0, 1] 0 0 [0,1] et bit 22 = 0 [0,1] et bit 22 = 0 0 0 S 0 ou 1 0 ou 1 0 1 0 ou 1 0 ou 1 0 1 Type de nombre normaliss, dnormaliss DEN + l'infini (INF) - l'infini (-INF) SNAN QNAN +0 -0
Note : La norme CEI 559 dfinit deux classes de NAN (pas un nombre) : QNAN et SNAN. z QNAN : est un NAN dont le bit 22 est dfini sur 1 z SNAN : est un NAN dont le bit 22 est dfini sur 0 Ils se comportent comme suit : z QNAN ne dclenchent pas d'erreurs lorsqu'ils sont utiliss en tant qu'oprandes d'une fonction ou d'une expression. z SNAN dclenchent une erreur lorsqu'ils sont utiliss en tant qu'oprandes d'une fonction ou d'une expression arithmtique (Voir %SW17 (voir Description dtaille, p. 182) et %S18 (voir Description des bits systme %S15 %S21, p. 164)). Ce tableau fournit la formule de calcul de la valeur V du nombre virgule flottante :
Type de nombre virgule flottante Valeur V Normalise
( 1 ) 2
( e 127 )
(1 + f) f
Dnormalise (DEN)
( 1 ) 2
126
261
Types de donnes
Note : Un nombre rel, entre -1,1754944e-38 et 1,1754944e-38, est un DEN dnormalis. Lorsqu'un oprande est un DEN, le rsultat n'est pas garanti. Les bits %SW17 (voir Description dtaille, p. 182) et %S18 (voir Description des bits systme %S15 %S21, p. 164) sont augmentes sauf pour le Modicon M340. Les automates Modicon M340 peuvent utiliser des oprandes dnormaliss mais, tant donn le format, avec une perte de prcision. Le dpassement par valeur infrieure est signal selon le fonctionnement uniquement lorsque le rsultat est 0 (dpassement total par valeur infrieure) ou lorsque le rsultat est dnormalis (dpassement progressif par valeur infrieure avec perte de prcision).
Type Rel
Prsentation :
Type REAL Echelle (bits) 32 Valeur par dfaut 0.0
-3,4028235e+38
-1,1754944e-38
0.0
1,1754944e-38
3,4028235e+38
compris entre -1,1754944e-38 et 1,1754944e-38, il est un DEN, infrieur -3,4028234e+38, le symbole -INF (pour -infini) s'affiche, suprieur +3,4028234e+38, le symbole INF (pour + infini) s'affiche, indfini (racine carre d'un nombre ngatif), le symbole NAN s'affiche.
Exemples
262
Types de donnes
8.4
16 caractres par dfaut dans la chane (caractre fin de chane exclu), une chane est compose de caractres ASCII compris entre 16#20 et 16#FF (reprsentation hexadcimale). dans une chane vide, le caractre de fin de chane (code ASCII "NUL") est le premier de la chane. la taille maximale d'une chane est de 65 534 caractres.
La taille de la chaine de caractres peut tre optimise lors de la dfinition du type par la commande STRING[<size>], <size> tant un entier non sign UINT pouvant dfinir une chaine de 1 65534 caractres ASCII. Rgles de syntaxe La saisie est prcde et termine par le caractre quote "" (code ASCII 16#27). Le signe $ (dollar) est un caractre spcial, suivi de certaines lettres il indique:
z z z z z z z
$L ou $l, aller la ligne suivante (line feed), $N ou $n, aller au dbut de la ligne suivante (new line), $P ou $p, aller la page suivante (go to next page), $R ou $r, retour chariot (carriage return), $T ou $t, tabulation (Tab), $$, reprsente le caractre $ dans une chane, $, reprsente le caractre quote dans une chane.
L'utilisateur peut utiliser la syntaxe $nn pour afficher, dans une variable STRING, les caractres ne pas imprimer. Il peut par exemple s'agir d'un retour chariot (code ASCII 16#0D).
263
Types de donnes
Exemples
Exemples de saisies:
Type Saisie Contenu de la chaine reprsente le caractre de fin de chaine * reprsente les octets vides ABDC************ (16 caractres) jean Its jean* ***** **** le no 0123456789*** <cr><lf>*** $1.00
Une variable de type STRING peut tre dclare de deux manires diffrentes :
z z
La taille est gale la taille relle La taille est gale la taille du paramtre d'entre. relle du paramtre d'entre. La taille est gale la taille relle L'EF crit un maximum de du paramtre d'entre limite n n caractres. caractres.
264
Types de donnes
Lorsque vous utilisez une variable de type STRING comme paramtre de type ANY il est fortement recommand de vrifier que la taille de la variable est infrieure la taille maximum dclare. Exemple : Utilisation de STRING sur la fonction SEL (Selecteur). String1 : STRING[8] String2 : STRING[4] String3 : STRING[4] String1 := 'AAAAAAAA' ; String3 := 'CC' ; Cas 1: String2 := 'BBBB' ; (* la taille de la chane est gale la taille maximum dclare *) String1 := SEL(FALSE, String2, String3); (* le rsultat sera : 'BBBBAAAA' *) Cas 2: String2 := 'BBB' ; (* la taille de la chane est infrieure la taille maximum dclare*) String1 := SEL(FALSE, String2, String3); (* le rsultat sera : 'BBB' *)
265
Types de donnes
8.5
Prsentation
Objet de cette section Cette section dcrit le type de donnes au format chane de bits. qui sont :
z z z
Contenu de ce sous-chapitre
266
Types de donnes
267
Types de donnes
Exemples de reprsentation :
Donne 00001000 00110011 00110011 Reprsentation dans l'une des bases 16#8 8#63 2#110011
Le type Word
Le type Word est cod sur un format de 16 bits. Ce tableau donne les limites infrieure/suprieure des bases qui peuvent tre utilises.
Base Hexadcimal Octal Binaire Limite infrieure 16#0 8#0 2#0 Limite suprieure 16#FFFF 8#177777 2#1111111111111111
Exemples de reprsentation :
Donne 0000000011010011 1010101010101010 0000000011010011 Reprsentation dans l'une des bases 16#D3 8#125252 2#11010011
268
Types de donnes
Le type Dword
Le type Dword est cod sur un format de 32 bits. Ce tableau donne les limites infrieure/suprieure des bases qui peuvent tre utilises.
Base Hexadcimal Octal Binaire Limite infrieure 16#0 8#0 2#0 Limite suprieure 16#FFFFFFFF 8#37777777777 2#11111111111111111111111111111111
Exemples de reprsentation :
Donne 00000000000010101101110011011110 00000000000000010000000000000000 00000000000010101011110011011110 Reprsentation dans l'une des bases 16#ADCDE 8#200000 2#10101011110011011110
269
Types de donnes
8.6
Prsentation
Objet de cette section
les tableaux (DDT), dEDT z les structures concernant les donnes d'entres\sorties (IODDT), z les structures concernant les autres donnes (DDT).
Contenu de ce sous-chapitre
270
Types de donnes
Tableaux
Qu'est-ce qu'un tableau ? Un tableau est un lment de donnes incluant un ensemble de donnes de type identique :
z
des donnes lmentaires (EDT), par exemple : z un groupe de mots BOOL z un groupe de mots entiers UINT z etc. des donnes drives (DDT), par exemple : z un groupe de tables WORD z un groupe de structures z etc.
Caractristiques
un paramtre dfinissant sa prsentation (dimension(s) du tableau) ; un paramtre dfinissant le type de donnes qu'il contient.
Note : La prsentation la plus complexe est le tableau six dimensions. La syntaxe incluant ces deux paramtres se prsente comme suit :
271
Types de donnes
Les instances Tab_1 et Tab_2 sont de mme type et ont le mme nombre de dimensions ; la seule diffrence concerne ce qui se passe lors de l'instanciation :
z z
Le type Tab_1 est nomm X. Le type Tab_2 doit tre dfini (la table correspondante ne porte pas de nom).
Note : Il est prfrable d'attribuer un nom au type, puisque chaque modification requise ne sera effectue qu'une seule fois (en effet, dans le cas contraire, le nombre de modifications serait aussi important que le nombre d'instances).
272
Types de donnes
Exemples
Le tableau ci-dessous rpertorie des instances de tableaux dont le nombre de dimensions diffre :
Entre Tab_1 : ARRAY[1..2] OF BOOL Tab_2 : ARRAY[-10..20] OF COORD Commentaires Tableau 1 dimension contenant 2 mots de type boolen Tableau 1 dimension contenant 31 structures de type COORD (structure dfinie par l'utilisateur) Tableaux 2 dimensions contenant 10 x 20 nombres entiers Tableaux 4 dimensions contenant 3 x 3 x 100 x 2 nombres rels
Tab_3 : ARRAY[1..10, 1..20] OF INT Tab_4 : ARRAY[0..2, -1..1, 201..300, 0..1] OF REAL
AVERTISSEMENT Non-reconnaissance de l'index d'un tableau par de nombreuses fonctions Un grand nombre de fonctions (READ_VAR, WRITE_VAR, par exemple) ne reconnaissent pas l'index d'un tableau de mots commenant par un nombre autre que 0. Si vous avez recours ce type d'index, les fonctions examinent le nombre de mots dans le tableau, mais pas celui figurant au niveau du premier ensemble de l'index dans la dfinition du tableau. Le non-respect de cette directive peut entraner la mort, des lsions corporelles graves ou des dommages matriels. Accs un lment de donnes dans le tableau Tab_1 ou Tab_3 :
Tab_1[2] ;Pour accder au deuxime lment Tab_3[4][18] ;Pour accder au dix-huitime lment du quatrime sous-tableau
273
Types de donnes
Tab_1 : = Tab_2 ; affectation autorise Tab_1 : = Tab_3 ; affectation refuse (non conforme CEI) Tab_1 : = Tab_4 ; affectation refuse (non conforme CEI)
274
Types de donnes
Structures
Quest ce quune structure? Cest une donne qui contient un ensemble de donnes de type diffrent telles que:
z z z
un ensemble de BOOL, WORD, UINT, etc., (structure EDT), un ensemble de tableaux (structure de DDT), un ensemble de REAL, DWORD, tableaux, etc..., (structure dEDT et DDT).
Note : vous pouvez raliser des structures imbriques (DDT imbriqus) sur 8 niveaux. Les structures (DDT) rcursives ne sont pas autorises.
Caractristiques
Une structure est constitue de donnes qui sont chacunes caractrises par:
z z z
un type, un nom, qui permet de lidentifier, un commentaire (optionnel) dcrivant son rle.
IDENT Nom : STRING[12] Prenom : STRING[16] Age : UINT ;La structure de type IDENT contient une donne de type UINT et deux donnes de types STRING
275
Types de donnes
dEDT dEDT
Illustration :
DDT
Tableaux
Structures
Tableaux dEDT
Tableaux de DDT
Structures de DDT
Structures dEDT
276
Types de donnes
Caractristiques
z z z
du nom de type (voir Rgles de syntaxe pour les noms Type\Instance, p. 238) (maximum 32 caractres) dfini par l'utilisateur (pas obligatoire pour les tableaux mais conseill) (voir Dfinition et instanciation d'un tableau, p. 272), du type (structure ou tableau), un commentaire optionnel (de 1 024 caractres au maximum). Les caractres autoriss correspondent aux codes ASCII 32 255 la description (dans le cas d'une structure) de ces lments z le nom de l'lment (voir Rgles de syntaxe pour les noms Type\Instance, p. 238) (maximum 32 caractres), z le type de l'lment, z un commentaire optionnel (de 1 024 caractres au maximum) dcrivant le rle. Les caractres autoriss correspondent aux codes ASCII 32 255 des informations telles que: z le numro de version du type, z la date de la dernire modification du code, ou des variables internes, ou des variables interfaces. z une fiche descriptive facultative (32 767 caractres), dcrivant la fonction du bloc et ses diffrentes modifications.
Note : La taille totale d'un tableau ou d'une structure ne dpasse pas 64 Ko.
277
Types de donnes
Exemples
Dfinition de types
COORD X : INT Y : INT ;Structure de type COORD SEGMENT Origin : COORD Destination : COORD ;Structure de type SEGMENT contenant 2 structures de type COORD OUTLINE : ARRAY[0..99] OF SEGMENT ;Tableau de type OUTLINE contenant 100 stuctures de type SEGMENT DRAW Color : INT Anchoor : COORD Pattern : ARRAY[0..15,0..15] OF WORD Contour : OUTLINE ;Structure de type DRAW
Pattern de la structure
Cartoon.Contour[0].Origin.X ;Accs la donne X de la structure COORD appartenant la premire structure SEGMENT du tableau Contour.
278
Types de donnes
les lments sont stocks dans l'ordre selon lequel ils sont dclars dans la structure, l'lment de base est l'octet (alignement des donnes sur les octets mmoire) chaque lment possde une rgle d'alignement : z les types BOOL et BYTE sont indiffremment aligns sur les octets pairs ou impairs, z tous les autres types lmentaires sont aligns sur les octets pairs, z les structures et tableaux sont aligns selon la rgle d'alignement des types BOOL et BYTE s'ils ne contiennent que des lments de type BOOL et BYTE, sinon ils sont aligns sur les octets pairs de la mmoire. AVERTISSEMENT Attention la compatibilit avec des applications converties de Concept. Avec l'application de programmation Concept, les structures de donnes ne traitent aucun dcalage dans les offsets (chaque lment est dfini l'un aprs l'autre dans la mmoire, quel que soit son type). Par consquent, nous vous recommandons de tout vrifier, en particulier la cohrence des donnes lors de l'utilisation des DDT situs dans l'"Etat de la RAM" (risques de dcalage) ou des fonctions pour la communication avec d'autres quipements (transferts avec une taille diffrente de celle programme dans Concept). Le non-respect de cette directive peut entraner la mort, des lsions corporelles graves ou des dommages matriels.
279
Types de donnes
les lments sont stocks dans l'ordre selon lequel ils sont dclars dans la structure, l'lment de base est l'octet, une rgle d'alignement et une fonction de l'lment : z les types BOOL et BYTE sont aligns sur les octets pairs ou impairs, z les types INT, WORD et UINT sont aligns sur les octets pairs, z les types DINT, UDINT, REAL, TIME, DATE, TOD, DT et DWORD sont aligns sur les mots doubles, z les structures et les tables sont alignes selon les rgles de leurs lments. AVERTISSEMENT Mauvais changes entre un projet Modicon M340 et un projet Premium ou Quantum. Vrifiez si la structure des donnes changes a les mmes alignements dans les deux projets. Si tel n'est pas le cas, les donnes ne seront pas correctement changes. Le non-respect de cette directive peut entraner la mort, des lsions corporelles graves ou des dommages matriels.
Note : Il est possible que l'alignement des donnes ne soit pas identique si le projet est transfr du simulateur de Unity Pro vers un automate M340. Vrifiez donc la structure des donnes du projet.
Note : Unity Pro (Voir Unity Pro, Modes de marche, Choix des paramtres de configuration pour la gnration du projet) indique o l'alignement semble diffrent. Vrifiez les instances correspondantes dans l'diteur de donnes. Voir la page Options du projet (Voir Unity Pro, Modes de marche, Choix des paramtres de configuration pour la gnration du projet) pour savoir comment activer cette option.
280
Types de donnes
Exemples
Le tableau ci dessous donne quelques exemples de structures de donnes. Dans les exemples suivants, les DDT de type structure sont adresss %MWi. Le 1er octet du mot correspond aux 8 bits les moins significatifs et le 2e octet du mot correspond aux 8 bits les plus significatifs. Pour toutes les structures suivantes, la premire variable est affecte l'adresse %MW100 :
Premire adresse mmoire Modicon M340 %MW100 (1 octet) %MW102 (1er
er er
Description de la structure Para_PWM1 octet) octet) t_period : TIME t_min : TIME in_max : REEL
octet)
%MW104 (1 octet)
%MW104 (1 octet)
Mode_TOTALIZER %MW100 %MW100 (1er (2e octet) octet) %MW100 (1 octet) %MW100 (2e octet)
er
Info_TOTALIZER %MW100 (1er octet) %MW102 (1er octet) %MW103 (1er octet) %MW103 (2e octet) %MW100 (1er octet) %MW102 (1er octet) %MW103 (1er octet) %MW103 (2e octet) outc : REEL cter : UINT done : BOOL Rserv pour l'alignement
CPCfg_ex %MW100 (1er octet) %MW101 (1er octet) %MW102 (1er octet)
35006145 05 novembre 2006
Types de donnes
Premire adresse mmoire %MW103 (1 octet) %MW104 (1er octet) %MW106 (2e octet)
er
Description de la structure
er
Nb_of_points : INT reserved : ARRAY [0..4] OF BYTE Rserv pour l'alignement de la variable Master_offset sur octets pairs Master_offset : DINT Follower_offset : INT Rserv pour l'alignement
282
Types de donnes
IODDT
Structures
dEDT
Les type IODDT sont des structures dont la taille (nombre dlments qui les composent) dpend de la voie ou du module dentres\sorties quelles reprsentent. Un module d'entres\de sorties donn peut avoir plus d'un IODDT. La diffrence avec une structure classique est que:
z z
la structure IODDT est prdfinie par le constructeur, les lments composant la structure IODDT n'ont pas une allocation mmoire contige, ils ont une adresse spcifique dans le module.
283
Types de donnes
Exemples
Structure IODDT pour une voie d'entre\de sortie d'un module analogique
ANA_IN_GEN ;Structure de type ANA_IN_GEN Value:INT ;Valeur de lentre Err: BOOL ;Erreur voie
284
Types de donnes
8.7
Prsentation
Objet de cette section
Cette section dcrit les types de donnes de bloc fonction. qui sont :
z z
Contenu de ce sous-chapitre
285
Types de donnes
la famille de type Blocs fonction lmentaires (EFB) (voir Prsentation des familles de types de donnes, p. 233), la famille de type Blocs fonction utilisateur (DFB) (voir Prsentation des familles de types de donnes, p. 233).
Illustration :
Blocs fonction
EFB
DFB
des variables d'entres et de sorties servant d'interface avec l'application, un algorithme de traitement exploitant les variables d'entres et renseignant les variables de sorties, des variables internes prives et publiques exploites par l'algorithme de traitement.
286
Types de donnes
Illustration
Bloc fonction :
Algorithme A p p l i c a t i o n Entre Sortie A p p l i c a t i o n
Sortie
Variables internes
Les types blocs fonction utilisateur (blocs fonction drivs) sont dvelopps par l'utilisateur avec un ou plusieurs langages (suivant le nombre de sections). Ces langages sont les suivants :
z z z z
contacts, langage littral structur, langage liste d'instructions, langage en blocs fonctionnels FBD.
Un type DFB peut avoir une ou plusieurs instances, chaque instance est rfrence par un nom (symbole) et possde les donnes du type de DFB. les blocs fonction lmentaires (EFB) Les types blocs fonctions lmentaires (EFB) sont fournis par le constructeur, ils sont programms en langage C. L'utilisateur peut crer ses EFB, pour cela il doit disposer d'un outil logiciel optionnel "SDKC" Un type EFB peut avoir une ou plusieurs instances, chaque instance est rfrence par un nom (symbole) et possde les donnes du type de l'EFB.
287
Types de donnes
le nom du type (voir Rgles de syntaxe pour les noms Type\Instance, p. 238), dfini par lutilisateur pour les DFB, un commentaire facultatif. (les caractres autoriss correspondent aux codes ASCII 32 255) ; les donnes dinterface avec lapplication: z les entres, pas accessibles en lecture\criture depuis lapplication, mais lues par le code du bloc fonction, z les entres\sorties, pas accessibles en lecture\criture depuis lapplication, mais lues et crites par le code du bloc fonction, z les sorties, accessibles en lecture depuis lapplication et lues et crites par le code du bloc fonction. les donnees internes: z publiques, accessibles en lecture\criture depuis lapplication, lues et ecrites par le code du bloc fonction, z prives, pas accessibles depuis lapplication lues et crites par le code du bloc fonction. le code: z pour les DFB il est crit par lutilisateur en langage dautomatisme (littral structur, liste dinstructions, langage contacts, langage blocs fonctionnels), il est structur en une seule section si loption IEC est active, ou peut tre structur en plusieurs sections si cette option est inactive z pour les EFB il est crit en langage C. des informations telles que: z le numro de version du type, z la date de la dernire modification du code, ou des variables internes, ou des variables interfaces. z une fiche descriptive facultative (32767 caractres), dcrivant la fonction du bloc et ses diffrentes modifications.
288
Types de donnes
Caractristiques
Section
Une section est dfinie par: z un nom (32 caractres maximum), z une condition de validation, z un commentaire (256 caractres maximum), z une protection: z sans, z lecture, z lecture\criture. Une section ne peut pas accder aux variables dclares dans lapplication sauf les: z doubles mots systme %SDi, z mots systme %SWi, z bits systme %Si.
(1): la seule limitation est la taille mmoire de l'automate. (2): ne sont pas prises en compte lentre EN et la sortie ENO.
289
Types de donnes
z z z
z z
un nom (voir Rgles de syntaxe pour les noms Type\Instance, p. 238) (comportant 32 caractres maximum), attribu par l'utilisateur ; un type, qui fait partie de l'une des familles ci-aprs : z donnes lmentaires (EDT) ; z donnes drives (DDT) ; z donnes de blocs fonction (EFB/DFB). un commentaire facultatif de 1 024 caractres maximum (les caractres autoriss correspondent aux codes ASCII 32 255) ; une valeur initiale ; un droit d'accs issu du programme d'application (pour afficher des sections de l'application ou la section appartenant aux DFB, reportez-vous la rubrique Dfinition du type de bloc fonction (variables d'interface et internes) (voir Dfinition du type, p. 288)) ; un droit d'accs provenant des requtes de communication ; un indicateur de sauvegarde de variables publiques.
290
Types de donnes
IODDT
Donnes d'entre
Oui
Oui (2) Non Oui (2) Non Oui (2) Non (3) Non Non Non Oui
Donnes d'entre/ Oui (1) de sortie Donnes de sortie Oui Donnes publiques Donnes prives Oui Oui
(1) : non autoris pour les donnes statiques de type EBOOL utilises sur les automates Quantum (2) : non autoris pour les donnes de type BOOL et EBOOL (3) : achvement lors de l'excution du DFB et utilisation impossible en dehors du DFB
291
Types de donnes
Donnes d'entre Donnes d'entre/ de sortie Donnes de sortie Donnes publiques Donnes prives
(1) : non autoris pour les donnes de type BOOL et EBOOL (2) : achvement lors de l'excution de l'EFB et utilisation impossible en dehors de l'EFB Valeurs initiales pour un lment appartenant un DFB Le tableau suivant prcise si les valeurs initiales entres sont issues de la dfinition du type DFB ou de l'instance DFB :
Elment du DFB Donnes d'entre (pas de type ANY...) Donnes d'entre (de type ANY...) Donnes d'entre/de sortie Provenant du type DFB Provenant de l'instance DFB Oui Non Non Oui Non Non Oui Non Oui Non
Donnes de sortie (pas de type Oui ANY...) Donnes de sortie (de type ANY...) Donnes publiques Donnes prives Non Oui Oui
292
Types de donnes
Le tableau suivant prcise si les valeurs initiales entres sont issues de la dfinition du type EFB ou de l'instance EFB :
Elment de l'EFB Provenant du type EFB Provenant de l'instance EFB Oui
Oui Donnes d'entre (pas de type ANY... ; consulter la rubrique relative aux Vue d'ensemble des types de donnes gnriques, p. 294) Donnes d'entre (de type ANY...) Donnes d'entre/de sortie Donnes de sortie (pas de type ANY...) Donnes de sortie (de type ANY...) Donnes publiques Donnes prives Non Non Oui Non Oui Oui
AVERTISSEMENT Non-reconnaissance de l'index d'un tableau par les EFB et DFB Les EFB et DFB ne reconnaissent pas l'index d'un tableau de mots commenant par un nombre autre que 0. Si vous avez recours ce type d'index, les EFB et DFB examinent le nombre de mots dans le tableau, mais pas celui figurant au niveau du premier ensemble de l'index dans la dfinition du tableau. Le non-respect de cette directive peut entraner la mort, des lsions corporelles graves ou des dommages matriels.
293
Types de donnes
8.8
Les types de donnes gnriques disponibles dans Unity Pro sont les suivants :
z z z z z z z z z z z z z z z
ANY_ARRAY_WORD ANY_ARRAY_UINT ANY_ARRAY_UDINT ANY_ARRAY_TOD ANY_ARRAY_TIME ANY_ARRAY_STRING ANY_ARRAY_REAL ANY_ARRAY_INT ANY_ARRAY_EBOOL ANY_ARRAY_DWORD ANY_ARRAY_DT ANY_ARRAY_DINT ANY_ARRAY_DATE ANY_ARRAY_BYTE ANY_ARRAY_BOOL
294
Types de donnes
Exemple
Note : Les objets autoriss pour les diffrents paramtres sont dfinis dans ce tableau (voir Objets autoriss pour les diffrents paramtres, p. 605).
295
Types de donnes
8.9
Illustration :
SFC
Etape -1
Etape -N
Structure SFCSTEP_STATE
Structure SFCSTEP_TIMES
Structure SFCSTEP_STATE
Structure SFCSTEP_TIMES
Note : Les deux types de structures SFCSTEP_STATE et SFCSTEP_TIMES sont rattaches aussi chaque Macro-tape du diagramme fonctionnel en squence.
296
Types de donnes
Cette structure rassemble toutes les donnes lies ltat de ltape ou de la Macrotape. Ces donnes sont:
z z
z z
x: donne lmentaire (EDT) de type BOOL contenant la valeur TRUE quand ltape est active, t: donne lmentaire (EDT) de type TIME contenant le temps d'activit de l'tape. Lorsqu'il est dsactiv, la valeur de l'tape est maintenue jusqu' la prochaine activation, tminErr: donne lmentaire (EDT) de type BOOL contenant la valeur TRUE si le temps dactivit de ltape est infrieur au temps dactivit minimal programm, tmaxErr: donne lmentaire (EDT) de type BOOL contenant la valeur TRUE si le temps dactivit de ltape est suprieur au temps dactivit maximal programm,
Ces donnes sont accessibles partir de lapplication en lecture seule. Dfinition de la structure de type SFCSTEP_TIMES Cette structure rassemble les donnes lies aux paramtrages du temps dexcution de ltape ou de la Macro-tape. Ces donnes sont:
z z
delay: donne lmentaire (EDT) de type TIME dfinissant le temps de retard de scrutation de la transition situ en aval de ltape active, tmin: donne lmentaire (EDT) de type TIME contenant la valeur minimale durant laquelle l'tape doit tre excute, Si cette valeur n'est pas respecte, les donnes tmin.Err deviennent la valeur TRUE, tmax: donne lmentaire (EDT) de type TIM contenant la valeur maximale durant laquelle l'tape doit tre excute. Si cette valeur n'est pas respecte, les donnes tmax.Err deviennent la valeur TRUE.
Ces donnes sont accessibles uniquement partir de l'diteur du SFC. Syntaxe d'accs des donnes de la structure SFCSTEP_STATE Les noms dinstances de cette structure correspondent aux noms des tapes ou macro-tapes du diagramme fonctionnel en squence
Syntaxe Nom_Etape.x Nom_Etape.t Nom_Etape.tminErr Nom_Etape.tmaxErr Commentaire Permet de connaitre ltat de ltape (active\inactive) Permet de connaitre le temps dactivation en cours ou total de ltape Permet de connaitre si le temps minimal dactivation de ltape est infrieur au temps programm dans Nom-Etape.tmin Permet de connaitre si le temps maximal dactivation de ltape est suprieur au temps programm dans Nom-Etape.tmax
297
Types de donnes
8.10
la famille Type de donnes lmentaire (EDT), la famille Type de donnes driv (DDT), la famille Type de donnes gnrique (GDT).
La famille de types de donnes lmentaires (EDT) contient ses sous-familles qui sont:
z z z z z
la sous-famille de types de donnes au format binaire, la sous famille de types de donnes au format BCD, la sous-famille du type de donnes au format Rel, la sous-famille du type de donnes au format chane de caractres, la sous-famille de types de donnes au format chane de bits.
Il ny a pas de compatibilit entre deux types de donnes quels quils soient, mme sils appartiennent la mme sous-famille.
298
Types de donnes
La famille de types de donnes drivs (DDT) contient ses sous-familles qui sont:
z z
la sous-famille de type tableaux, la sous-famille de type structures: z les structures concernant les donnes d'entres\sorties (IODDT), z structures concernant les autres donnes.
Rgles concernant les structures: Deux structures sont compatibles si leurs lments sont:
z z z
ELEMENT_2 Mon_Element: INT Autre_Element: BOOL ;Structure de type ELEMENT_2 ELEMENT_3 Element : INT Autre_Element : BOOL ;Structure de type ELEMENT_3 ELEMENT_4 Autre_Element: BOOL Mon_Element: INT ;Structure de type ELEMENT_4
299
Types de donnes
leurs dimensions et l'organisation de leurs dimensions sont identiques, chaque dimension correspondante est de mme type.
TAB_1 : ARRAY[10..20]OF INT ;Tableau une dimension de type TAB_1 TAB_2 : ARRAY[20..30]OF INT ;Tableau une dimension de type TAB_2 TAB_3 : ARRAY[20..30]OF INT ;Tableau une dimension de type TAB_3 TAB_4 : ARRAY[20..30]OF TAB_1 ;Tableau une dimension de type TAB_4 TAB_5 : ARRAY[20..30,10..20]OF INT ;Tableau deux dimensions de type TAB_5
300
Types de donnes
La famille de types de donnes gnriques (GDT) est compose densembles organiss de faon hirarchique qui contiennent des types de donnes appartenant aux familles:
z z
Rgles: Un type de donnes classique est compatible avec les types de donnes gnriques qui lui sont hirarchique (voir la section "Type de donnes gnrique") (Voir Prsentation des types de donnes gnriques). Un type de donnes gnriques est compatible avec les types de donnes gnriques qui lui sont hirarchique (voir la section "Type de donnes gnrique") (Voir Prsentation des types de donnes gnriques). Exemple :
Le type INT est compatible avec les types ANY_INT ou ANY_NUM ou ANY_MAGNITUDE. Le type INT nest pas compatible avec le type ANY_BIT ou ANY_REAL. Le type gnrique ANY_INT est compatible avec le type ANY_NUM. Le type gnrique ANY_INT nest pas compatible avec le type ANY_REAL.
301
Types de donnes
302
Instances de donnes
9
Prsentation
Contenu du chapitre Ce chapitre dcrit les instances de donnes et leurs caractristiques. Ces instances peuvent tre:
z z z
des instances de donnes non localises, des instances de donnes localises, des instances de donnes adressage direct.
Contenu de ce chapitre
303
Instances de donnes
un nom (symbole), dans ce cas on dit que la donne est non localise car son allocation mmoire nest pas dfinie mais effectue automatiquement par le systme un nom (symbole) et une adresse topologique dfinie par le constructeur, dans ce cas on dit que la donne est localise car son allocation mmoire est connue. une adresse topologique dfinie par le constructeur, dans ce cas on dit que la donne est adressage direct, son allocation mmoire est connue.
Les instances de donnes non localises sont gres par le systme d'exploitation de l'automate, leur emplacement physique dans la mmoire n'est pas connu de l'utilisateur. Les instances de donnes non localises sont dfinies partir de types de donnes pouvant appartenir la famille:
z z z
de types de donnes lmentaires (EDT), de types de donnes drivs (DDT). de types de donnes de blocs fonction (EFB/DFB).
Exemples :
Var_1 : BOOL ;Instance de la famille EDT de type boolen allocation mmoire 1 octet Var_2 : UDINT ;Instance de le famille EDT de type entier double non sign allocation mmoire 4 octets Var_3 : ARRAY[1..10]OF INT ;Instance de la famille DDT de type tableau allocation mmoire 20 octets COORD X : INT Y : INT Var_4 : COORD ;Instance de la famille DDT dune structure de type COORD allocation mmoire 4 octets
304
Instances de donnes
Les instances de donnes localises possdent un emplacement mmoire prdfini dans l'automate et cet emplacement est connu de l'utilisateur. Les instances de donnes localises sont dfinies partir de types de donnes pouvant appartenir la famille :
z z z
de types de donnes lmentaires (EDT), de types de donnes drivs (DDT). de type de donnes diagramme fonctionnel en squence(SFC).
Note : Pour Premium/Atrium, les instances de donnes localises de type double (%MD<i>, %KD<i>) ou flottantes (%MF<i>, %KF<i>) doivent tre localises par un type entier (%MW<i>, %KW<i>). Uniquement les objets d'E/S permettent de localiser les instances de type (%MD<i>, %KD<i>, %QD, %ID, %MF<i>, %KF<i>, %QF, %IF) en utilisant leur adresse topologique (Exemple %MD0.6.0.11, %MF0.6.0.31).
Note : Pour Modicon M340, les instances de donnes localises de type double (%MD<i>, %KD<i>) ou flottantes (%MF<i>, %KF<i>) ne sont pas disponibles.
Note : Pour Modicon M340, la valeur d'index (i) doit tre paire (voir Principe pour Modicon M340, p. 280) pour les instances de donnes localises de type double (%MW et %KW).
305
Instances de donnes
Exemples :
Var_1 : EBOOL AT %M100 ;Instance de la famille EDT de type boolen (allocation mmoire 1 octet) prdfinie en %M100 Var_2 : BOOL AT %I2.1.0.ERR ;Instance de la famille EDT de type boolen (allocation mmoire 1 octet) prdfinie en %I2.1.0.ERR Var_3 : INT AT %MW10 ;Instance de la famille EDT de type entier (allocation mmoire 2 octets) prdfinie en %MW10 Var_4 : : DINT AT %MW1 ;Interdit pour Modicon M340. Les instances de donnes localises de type double doivent avoir un vnement d'adresse topologique (%MW2, %MW10.....). Var_5 : WORD AT %MW10 ;Instance de la famille EDT de type WORD (allocation mmoire 2 octets) prdfinie en %MW10 Var_6 : ARRAY[1..10]OF INT AT %MW50 ;Instance de la famille DDT de type tableau (allocation mmoire 20 octets) prdfinie partir de %MW50 COORD X : INT Y : INT Var_7 : COORD AT %MW20 ;Instance de la famille DDT dune structure de type COORD (allocation mmoire 4 octets) prdfinie partir de %MW20 Var_8 : DINT AT %MD0.6.0.11 ;Instance de la famille EDT de type DINT (allocation mmoire 4 octets) prdfinie partir de ladresse topologique de lobjet E/S du module mtier Var_9 : REAL AT %MF0.6.0.31 ;Instance de la famille EDT de type REAL (allocation mmoire 4 octets) prdfinie partir de ladresse topologique de lobjet E/S du module mtier
Note : Les instances de types de donnes de diagramme fonctionnel en squence (SFC) sont cres au moment o elles sont insres dans le programme applicatif avec un nom par dfaut que lutilisateur peut modifier.
306
Instances de donnes
Les instances de donnes adressage direct possdent un emplacement prdfini dans la mmoire automate ou dans un module mtier et cet emplacement est connu de l'utilisateur. Les instances de donnes adressage direct sont dfinies partir de types appartenant la famille de type de donnes lmentaires (EDT). Exemples d'instances de donnes adressage direct :
Internes %Mi %MWi %MDi (1) %MFi (1) %KWi %KDi (1) %KFi (1) Constantes Systme %Si %SWi Entres\Sorties %Q, %I %QW, %IW %QD, %ID %QF, %IF %NW Rseau
307
Instances de donnes
z z
son nom (voir Rgles de syntaxe pour les noms Type\Instance, p. 238) (sauf pour les instances de donnes adressage direct (voir Instances de donnes adressage direct, p. 311)), son adresse topologique (sauf pour les instances de types de donnes non localises), son type de donnes qui peut appartenir la famille: z de type de donnes lmentaire (EDT), z de type de donnes driv (DDT), z de type de donnes blocs fonctions (EFB\DFB), z de type de donnes de diagramme fonctionnel squentiel (SFC). un commentaire descriptif optionnel (de 1 024 caractres au maximum). Les caractres autoriss correspondent aux codes ASCII 32 255
Il s'agit du symbole (32 caractres maximum) choisi par l'utilisateur qui permet de rfrencer l'instance, il doit tre unique. Certains noms ne peuvent tre utiliss, par exemple:
z z z z z
des mots-cls utiliss dans les langages textuels, des noms de section de programme, des noms de types de donnes prdfinis ou choisis par l'utilisateur (structures, tableaux), des noms de types de DFB\EFB prdfinis ou choisis par l'utilisateur, des noms de fonctions lmentaires (EF) prdfinis ou choisis par l'utilisateur.
308
Instances de donnes
Les noms des instances sont dclars implicitement pendant que l'utilisateur dessine son diagramme fonctionnel en squences. Ce sont des noms par dfaut fournis par le constructeur que l'utilisateur peut modifier. Noms par dfaut fournis par le constructeur:
Objet SFC Etape Etape de Macro-Etape Macro-tape Macro-Etape imbrique Etape dentre de Macro-Etape Etape de sortie de Macro-Etape Transition Transition de Macro-Etape Nom S_<nom section>_<n dtape> S_<nom section>_<n macro-etape>_<n dtape> MS_<nom section>_<n dtape> MS_<nom section>_<n macro-etape>_<n detape> S_IN<nom de section>_<n macro etape> S_OUT<nom de section>_<n macro etape> T_<nom section>_<n transition> T_<nom section>_<n macro etape>_<n transition>
Les noms des instances sont dclars implicitement pendant que l'utilisateur insre les instances dans les sections du programme d'application. Ce sont des noms par dfaut fournis par le constructeur que l'utilisateur peut modifier. Syntaxe des noms par dfaut fournis par le constructeur :
FB_<nom du type de bloc fonction>_<ndinstance>
Note : Le nom d'instance n'inclut pas le nom de section dans laquelle l'instance est utilise, car elle peut tre utilise dans diffrentes sections de l'application.
309
Instances de donnes
Rgle: La taille maximum de la syntaxe daccs est de 1024 caractres maximum, et les limites possibles dun type de donnes driv sont les suivantes:
z z z
10 niveaux d'imbrication (tableaux\structures), 6 dimensions par tableau, 4 chiffres pour dfinir l'index de l'lment d'un tableau.
310
Instances de donnes
Syntaxe d'accs
M, pour les variables internes, K, pour les constantes (Premium et Modicon M340), S, pour les variables systmes, N, pour les variables rseaux, I, pour les variables d'entres, Q, pour les variables de sorties.
311
Instances de donnes
Variables internes %M
Syntaxe d'accs :
Syntaxe Bit Mot Bit extrait de Mot Double mot Rel (flottant) %M<i> ou %MX<i> %MW<i> %MW<i>.<j> %MD<i> (1) %MF<i> (1) Format Exemple Droit d'accs programme R/W R/W R/W R/W R/W
3 bits (EBOOL) %M1 16 bits (INT) 1 bit (BOOL) 32 bits (DINT) 32 bits (REAL) %MW10 %MW15.5 %MD8 %MF15
<i> reprsente le numro de linstance (commence 0 pour Premium et 1 pour Quatum). Pour le Modicon M340, les instances de type double (mot double) ou de flottement (relles) doivent se situer dans un type d'entier %MW. L'index <i> de %MW doit tre pair. Note : Les donnes %M<i> ou %MX<i> dtectent les fronts et grent le forage. Rorganisation de la mmoire :
%MD4 = %MF4
Instances de donnes
Constantes %K
Syntaxe d'accs :
Syntaxe Constante Mot Constante double mot Constante Rel (flottant) %KW<i> %KD<i> (1) %KF<i> (1) Format 16 bits (INT) 32 bits (DINT) 32 bits (REAL) Droit d'accs programme R R R
<i> reprsente le numro de linstance. Note : L'organisation de la mmoire est identique celle des variables internes. Ces variables ne sont pas disponibles sur les automates Quantum.
Constantes %I
Syntaxe d'accs :
Syntaxe Constante Bit Constante Mot %I<i> %IW<i> Format 3 bits (EBOOL) 16 bits (INT) Droit d'accs programme R R
<i> reprsente le numro de linstance. Note : Ces donnes sont uniquement disponibles sur les automates Quantum et Momentum.
313
Instances de donnes
Variables systme %S
Syntaxe d'accs :
Syntaxe Bit Mot %S<i> ou %SX<i> %SW<i> Format 1 bit (BOOL) 32 bits (INT) Droit d'accs programme R/W ou R R/W ou R
<i> reprsente le numro de linstance. Note : L'organisation de la mmoire est identique celle des variables internes. Les donnes %S<i> et %SX<i> ne sont pas utilises pour dtecter les fronts et ne grent pas le forage.
Variables rseaux %N
Ces variables contiennent des informations devant tre changes entre plusieurs programmes applicatifs travers le rseau de communication. Syntaxe d'accs :
Syntaxe Mot commun Bit extrait de Mot %NW<n>.<s>.<d> %NW<n>.<s>.<d>.<j> Format 16 bits (INT) 1 bit (BOOL) Droit d'accs programme R\W ou R R\W ou R
<n> reprsente le numro de rseau. <s> reprsente le numro de la station. <d> reprsente le numro de la donne. <j> reprsente le rang du bit dans le mot.
314
Instances de donnes
Ces variables sont contenues dans les modules mtiers. Syntaxe daccs:
Syntaxe Exemple %CH4.3.2 Droit daccs programme R
Structure dentres\sortie (IODDT) Entres %I Bit derreur module de type BOOL Bit derreur voie de type BOOL Bit de type BOOL ou EBOOL
%CH<@mod>.<c>
%I4.2.MOD.ERR %I4.2.3.ERR %I4.2.3 %I4.2.3.1 %IW4.2.3 %IW4.2.3.1 %ID4.2.3 %ID4.2.3.2 %IF4.2.3 %IF4.2.3.2
R R R R R R R R R R
%IW<@mod>.<c> %IW<@mod>.<c>.<d>
%ID<@mod>.<c> %ID<@mod>.<c>.<d>
%IF<@mod>.<c> %IF<@mod>.<c>.<d>
Sorties %Q Bit de type EBOOL %Q<@mod>.<c> %Q<@mod>.<c>.<d> Mot de type INT %QW<@mod>.<c> %QW<@mod>.<c>.<d> Double mot de type DINT %QD<@mod>.<c> %QD<@mod>.<c>.<d> Rel (flottant) de type REAL %QF<@mod>.<c> %QF<@mod>.<c>.<d> Variables %M (Premium) Mot de type INT %MW<@mod>.<c> %MW<@mod>.<c>.<d> Double mot de type DINT %MD<@mod>.<c> %MD<@mod>.<c>.<d> Rel (flottant) de type REAL %MF<@mod>.<c> %MF<@mod>.<c>.<d> Constantes %K (Modicon M340 et Premium) Mot de type INT %KW<@mod>.<c> %KW<@mod>.<c>.<d>
35006145 05 novembre 2006
%KW4.2.3 %KW4.2.3.1
R R 315
Instances de donnes
Syntaxe Double mot de type DINT %KD<@mod>.<c> %KD<@mod>.<c>.<d> Rel (flottant) de type REAL %KF<@mod>.<c> %KF<@mod>.<c>.<d>
<@mod = \<b>.<e>\<r>.<m> <b> numro de bus (omis si station locale). <e> numro du point de connexion de lquipement (omis si station locale, le point de connexion est appel aussi Drop pour les utilisateurs dautomates Quantum). <r> numro de rack. <m> emplacement du module <c> numro de voie (0 999) ou mot rserv MOD. <d> numro donne (0 999) ou mot rserv ERR (facultatif si valeur 0). Pour Modicon M340 <d> est toujours pair.
316
Instances de donnes
Exemples : station locale et station sur bus pour automates Modicon M340
Ligne de fin
Bus CANopen n3 1 10
DDO 3410
ACO 1210
A B
NIP 3212
PDT 3100
DDI 3410
DDI 3410
ACI 1230
LEXIUM05 ATV31_V1_1
(ATV 31)
XPS MC 16
LEXIUM 05
%IW \3.10\0.0.0.1 (bus 3 adresse d'quipement 10 voie 0 donne 1)
317
Instances de donnes
Exemples : station locale et station sur bus pour automates Quantum et Premium.
Exemple Quantum
P U NA RI E/ E/ E/ E/ E/ E/
Exemple Premium
P U NA RI E/ E/ E/ E/ I/
I/
Rack local
n 7 RIO (N 3)
P RI I/ I/ I/ I/ P RI I/ I/ I/ I/ P RI I/ I/ I/ I/
318
Rfrences de donnes
10
Prsentation
Contenu du chapitre Ce chapitre dcrit les rfrences dinstances de donnes. Ces rfrences peuvent tre :
z z z
des rfrences par valeurs, des rfrences par noms, des rfrences par adresses.
Contenu de ce chapitre
319
Rfrences de donnes
Prsentation
z z
boolens, tels que : z BOOL, z EBOOL. entiers : z INT, z UINT, z DINT, z UDINT, z TIME. rels : z REAL. dates et heures : z DATE, z DATE AND TIME, z TIME OF DAY. chaines de caractres : z STRING. BYTE, WORD, DWORD.
320
Rfrences de donnes
321
Rfrences de donnes
322
Rfrences de donnes
Cas des tableaux : Lutilisateur choisit un nom (symbole) qui permet daccder linstance de la donne :
Soit 2 types de tableaux: Game_Couleurs ARRAY[1..15]OF STRING Vhicules ARRAY[1..100]OF Gamme_Couleurs ; Voiture: Vhicules Nom dinstance du tableau de type Vhicules Voiture[11, 5] Accs la voiture 11 de couleur correspondant au 5 lment du tableau Gamme_Couleurs
323
Rfrences de donnes
Cas des structures : Lutilisateur choisit un nom (symbole) qui permet daccder linstance de la donne :
Soit les 2 structures: ADRESSE Rue: STRING[20] Code_Postal: UDINT Ville: STRING: [20] IDENT Nom: STRING[15] Prenom: STRING[15] Age: UINT Date_Naissance: DATE Localit: ADRESSE
Personne_1 :IDENT ;Nom dinstance de la stucture de type IDENT Personne_1.Age Accs lage de Personne_1 Personne_1.Localit.Ville ;Accs la localit o rside Personne_1
324
Rfrences de donnes
Nb_Pices_Prog
Compteur_Vis: Compteur_Pices Nom dinstance du bloc de type Compteur_Pices Compteur_Vis.Nb_Pices_Prog Accs la variable publique Nb_Pices_Prog Compteur_Vis.Nb_pices_atteint Accs linterface de sortie Nb_pices_atteint
325
Rfrences de donnes
Prsentation
les variables internes (%M<i>, %MW<i>, %MD<i>, %MF<i>), les constantes (%KW<i>, %KD<i>, %KF<i>), les entres\sorties (%I<adresse>, %Q<adresse>).
Note : les instances %MD<i>, %MF<i>, %KD<i> et %KF<i> ne sont pas disponibles pour Modicon M340.
L'adressage est considr direct quand l'adresse de l'instance est fixe, c'est--dire dfinie lors de l'criture dans le programme : Exemples :
%M1 Accs au premier bit de la mmoire %MW12 Accs au douzime mot de la mmoire %MD4 Accs au quatrime double mot de la mmoire %KF100 ;Accs au centime mot flottant de la mmoire %Q0.4.0.5 Accs au cinquime bit du module de sortie en position 4 du rack 0
326
Rfrences de donnes
L'adressage est considr index lorsque l'adresse de l'instance est complte par un index. L'index est dfini soit par :
z z
une valeur appartenant aux types Entiers, une expression arithmtique compose de types Entiers.
Exemples :
%MD6[10] <=> %MD26 %MW10[My_Var+8] <=> %MW20 (avec My_Var=2)
l'index ne soit pas ngatif, l'index ne dpasse pas l'espace mmoire allou pour chacun des trois types.
327
Rfrences de donnes
Il est possible d'extraire l'un des 16 bits des mots simple (%MW, %SW, %KW, %IW, %QW). L'adresse de l'instance est complte par le rang du bit extrait (<j>) :
WORD<i> . <j>
Exemples :
%MW10.4 Bit n4 du mot %MW10 %SW8.4 Bit n4 du mot systme %SW8 %KW100.14 Bit n14 de la constante KW100 %QW0.5.1.0.10 Bit n10 du mot 0 de la voie 1 du module de sortie 5 du rack 0
Il s'agit d'une suite d'objets adjacents (bits ou mots) de mme type et de longueur dfini.
OBJET<i> :L
Mots constants
Non
Mots systme
Oui
Exemples :
%M2:65 Dfinit un tableau de EBOOL dmarrant partir de %M2 jusqu' %M66 %MW125:30 Dfinit un tableau de INT dmarrant partir de %MW125 jusqu' %MW 154
328
Rfrences de donnes
dfinir un type de donnes, instancier une donnes (symbole), identifier une section.
Des rgles ont t dfinies afin dviter que des conflis se produisent, pour cela il faut diffrencier les diffrents domaines dapplication des donnes. Quest ce quun domaine ? Ils sagit dun espace de lapplication partir duquel une variables est accessible ou non, tel que :
z
le domaine application qui comprend : z les diffrentes tches de lapplication, z les sections qui les composent. le domaines par types de donnes tels que : z les structures\tableaux pour la famille DDT, z les EFB\DFB pour la famille blocs fonctions.
329
Rfrences de donnes
Rgles
Ce tableau dfinit sil est possible ou non dutiliser un nom dj existant dans lapplication pour des lments nouvellement crs :
Application --> Nouveaux lments (ci-dessous) Section Types Tableaux\Stuctures TypesEFB\DFB EF Instances Section Types Tableaux\ Stuctures Non Non Oui Oui Oui Types EFB\DFB Oui Oui Non Non Oui EF Instances
(1): Une instance appartenant au domaine application ne peut pas avoir le mme nom quune EF (2): Une instance appartenant au domaine type (variable interne) peut avoir le mme nom quune EF, lEF en question ne peut tre utilise dans ce type. (3): La cration ou limport d EFB\DFB ayant le mme nom quune instance existante sont interdits. Note : ci-dessous un complment aux rgles donnes par le tableau qui prcise que : z lintrieur dun type, une instance (variable interne) ne peut avoir le mme nom que le nom de type de lobjet auquel elle appartient, z il ny a pas de conflit entre le nom dune instance appartenant une section de lapplication et le nom dune instance appartenant une section dun DFB, z il ny a pas de conflit entre le nom dune section appartenant une tche et le nom dune section appartenant un DFB.
330
Langages de programmation
IV
Prsentation
Contenu de cette partie Contenu de cette partie Cette partie dcrit la syntaxe des langages de programmation disponibles.
331
Langages de programmation
332
11
Prsentation
Objet de ce souschapitre Contenu de ce chapitre Ce chapitre dcrit le langage blocs fonction FBD conforme la norme IEC 61131.
333
Inversion
Expression ST
Valeurs littrales
Adresses Adresses
Liaison
Objets
Les objets du langage FBD (diagramme de blocs fonctionnels) offrent des aides permettant de structurer une section en un ensemble de : z EF et EFB (fonctions lmentaires (voir Fonction lmentaire, p. 336) et blocs fonction lmentaires (voir Bloc fonction lmentaire, p. 337)), z DFB (blocs fonction drivs) (voir DFB, p. 338), z procdures (voir Procdure, p. 338) et z contrles (voir Contrles, p. 348). Ces objets, regroups sous labrviation gnrique FFB, peuvent tre lis les uns aux autres par : z des liaisons (voir Liaison, p. 349) ou z des paramtres rels (voir Paramtres, p. 339). La logique de la section peut tre commente par des objets texte (voir Objet texte, p. 351).
334
Taille de la section
Une section FBD comprend une fentre incluant une seule page. Cette page est place sur une grille. Une unit de grille comprend 10 points de trame. Une unit de trame est l'espace le plus petit possible entre deux objets d'une section FBD. Le langage FBD n'est pas bas sur les cellules les objets sont toutefois ajusts sur les points de trame. Une section FBD peut tre configure en nombre de cellules (points de trame horizontaux et points de trame verticaux).
Conformit CEI
Pour la description de la conformit CEI du langage FBD, voir Conformit CEI (voir Conformit CEI, p. 693).
335
Fonctions lmentaires, blocs fonction lmentaires, blocs fonction derives et procedures (FFB)
Prsentation FFB est le terme gnrique pour : les fonctions lmentaires (EF) (voir Fonction lmentaire, p. 336) z les blocs fonction lmentaires (EFB) (voir Bloc fonction lmentaire, p. 337) z les DFB (blocs fonction drivs) (voir DFB, p. 338) z Procdure (voir Procdure, p. 338)
z
Fonction lmentaire
Les fonctions lmentaires (EF) nont pas dtat interne. Pour des valeurs gales aux entres, la valeur la sortie est la mme chaque excution de la fonction. Par exemple, l'addition de deux valeurs donne toujours le mme rsultat. Une fonction lmentaire est reprsente graphiquement sous forme de cadre avec des entres et une sortie. Les entres sont toujours reprsentes sur la gauche et la sortie toujours sur la droite du cadre. Le nom de la fonction, cest--dire le type de fonction, est affich au centre du cadre. Le numro d'excution (voir Ordre d'excution des FFB, p. 352) de la fonction apparat droite du type de fonction. Le numro de fonction est affich au-dessus du cadre. Le numro de fonction reprsente le numro courant de la fonction dans la section actuelle. Les numros de fonction ne peuvent pas tre modifis. Fonction lmentaire
.1 DIV IN1 IN2 1 OUT
336
Les blocs fonction lmentaires (EFB) ont des tats internes. Pour des valeurs gales aux entres, la valeur la sortie peut tre diffrente pour toutes les excutions de la fonction. Par exemple, pour un compteur, la valeur la sortie augmente. Un bloc fonction lmentaire est reprsent graphiquement sous forme de cadre avec des entres et des sorties. Les entres sont toujours reprsentes sur la gauche et les sorties toujours sur la droite du cadre. Les blocs fonction peuvent avoir plusieurs sorties. Le nom du bloc fonction, cest--dire le type de bloc fonction, est affich au centre du cadre. Le numro d'excution (voir Ordre d'excution des FFB, p. 352) du bloc fonction apparat droite du type de bloc fonction. Le nom d'instance est affich au-dessus du cadre. Le nom dinstance permet didentifier prcisment le bloc fonction dans un projet. Le nom dinstance est gnr automatiquement et prsente la structure suivante : FBI_n FBI = Instance de bloc fonction n = numro courant du bloc fonction au sein du projet Vous pouvez modifier ces noms gnrs automatiquement pour rendre la vue d'ensemble plus claire. Le nom d'instance (max. 32 caractres) doit tre unique dans tout le projet ; aucune distinction n'est faite ici entre majuscules et minuscules. Le nom d'instance doit respecter les conventions de noms gnrales. Note : Selon la norme CEI 61131-3, les noms d'instance doivent obligatoirement commencer par une lettre. Si vous voulez galement utiliser des chiffres, vous devez activer cette fonction. Bloc fonction lmentaire
FBI_1 CTU CTU R PV 1 Q CV
337
DFB
Les blocs fonction drivs (DFB) ont les mmes caractristiques que les blocs fonction lmentaires. Ils sont cependant crs par l'utilisateur dans les langages FBD, LD, IL et/ou ST. L'unique diffrence par rapport aux blocs fonction lmentaires est que le bloc fonction driv est reprsent graphiquement sous forme de cadre avec deux lignes verticales. Bloc fonction driv
FBI_1 1 DFB_EXAMP IN1 IN2 IN3 OUT1 OUT2
Procdure
Techniquement, les procdures sont des fonctions. L'unique diffrence par rapport aux fonctions lmentaires est que les procdures peuvent comprendre plus d'une sortie et qu'elles prennent en charge le type de donnes VAR_IN_OUT. Les procdures sont une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. Il n'y a pas de diffrence physique entre les procdures et les fonctions lmentaires. Procdure
.2 PROC_EXAMP IN1 IN2 IO1 1
338
Paramtres
Pour importer des valeurs dans le FFB ou exporter des valeurs du FFB, des entres et des sorties sont ncessaires. Elles sont appeles paramtres formels. Les paramtres formels sont lis des objets qui comprennent les tats courants du traitement. Ces objets sont appels paramtres rels. Paramtres formels et rels :
Paramtres rels FBI_2 CTU Clock %I1.1.3 MUX(1,var1,var2) CTU R PV 1 Q CV Paramtres rels Output Current_Value
Paramtres formels
Durant lexcution du programme, les valeurs sont transmises, par le biais des paramtres rels, du processus au FFB, et renvoyes nouveau la sortie aprs le traitement. Seul un objet (paramtre rel) du type de donnes suivant peut tre reli aux entres FFB : z variable z adresse z valeur littrale z expression ST (voir Expression, p. 539) Les expressions ST des entres FFB reprsentent une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. z liaison Les combinaisons d'objets (paramtres rels) suivantes peuvent tre relies aux sorties FFB : z une variable z une variable et une ou plusieurs liaisons (non valable pour les sorties VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 346)) z une adresse z une adresse et une ou plusieurs liaisons (non valable pour les sorties VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 346)) z une ou plusieurs liaisons (non valable pour les sorties VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 346)) Le type des donnes de l'objet relier doit correspondre au type des donnes de lentre/la sortie FFB. On choisira un type de donnes adapt pour le bloc fonction, si tous les paramtres rels sont constitus de valeurs littrales.
339
Exception : pour les entres/sorties gnriques FFB de type de donnes ANY_BIT, des objets de type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre relis. Il s'agit d'une extension de la norme CEI 61131-3 et doit donc tre active de manire explicite. Exemple : Autoris :
.1 AND
IntVar1 IntVar2
IN1 IN2
OUT
IntVar3
Non autoris :
.1 AND_WORD
IntVar1 IntVar2
IN1 IN2
OUT
IntVar3
(Dans ce cas, AND_INT doit tre utilis.) Il n'est en principe pas ncessaire d'affecter un paramtre rel tous les paramtres formels. Cependant, cela n'est pas valable pour les broches inverses. Un paramtre rel doit toujours leur tre affect. Cela est galement impratif pour certains types de paramtre formel. Pour connatre les types concerns, veuillez vous reporter au tableau suivant.
340
DFB : VAR_IN_OUT + DFB : sortie EF : entre EF : VAR_IN_OUT EF : sortie Procdure : entre Procdure : VAR_IN_OUT Procdure : sortie + / + + -
Les FFB utilisant aux entres des paramtres rels, auxquels aucune valeur na encore t affecte, fonctionnent avec les valeurs initiales de ces paramtres rels. Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise pendant lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Si aucune valeur n'est affecte un paramtre formel et que le bloc fonction/DFB a t instanci plusieurs reprises, les instances appeles par la suite travaillent avec l'ancienne valeur.
341
Variables variables
Certains blocs fonction disposent non seulement d'entres et de sorties, mais galement de variables publiques. Ces variables permettent de transmettre des valeurs statiques (valeurs non influences par le procd) au bloc fonction. Elles sont donc utilises lors du paramtrage du bloc fonction. Les variables publiques sont une extension de la norme CEI 61131-3. Les valeurs sont affectes aux variables publiques via leur valeur initiale. Les valeurs des variables publiques sont ensuite lues partir du nom d'instance du bloc fonction et du nom de la variable publique. Exemple :
FBI_1 D_ACT ED DTIMEL DTIMEA TRIGR UNLOCK REACT Nom d'instance 1 ERR ACT (Le bloc fonction dispose des variables publiques AREA_NR et OP_CTRL.)
Variables prives
Certains blocs fonction disposent non seulement d'entres, de sorties et de variables publiques, mais galement de variables prives. A l'instar des variables publiques, ces variables permettent de transmettre des valeurs statistiques (valeurs non influences par le procd) au bloc fonction. Le programme utilisateur ne peut pas accder ces variables. Seule la table d'animation en a la capacit. Note : Les DFB imbriqus sont dclars comme des variables prives du DFB parent. Ainsi, leurs variables ne sont pas accessibles via la programmation, mais via la table d'animation. Les variables prives sont une extension de la norme CEI 61131-3.
342
Veuillez tenir compte des remarques qui suivent sur la programmation : z Les FFB ne sont excutes que lorsque l'entre EN = 1 ou lorsque l'entre EN est dsactive (voir aussi EN et ENO, p. 344). z Les entres et sorties boolennes peuvent tre inverses. z Des conditions particulires s'appliquent lors de l'utilisation de variables VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 346). z Les instances de DFB ou bloc fonction peuvent tre appeles plusieurs reprises (voir aussi Appel multiple d'une instance de bloc fonction, p. 343). Les instances de DFB ou bloc fonction peuvent tre appeles plusieurs reprises, l'exception des instances d'EFB de communication et blocs fonction/DFB ayant une sortie ANY mais pas d'entre ANY, qui ne peuvent tre appeles qu'une seule fois. L'appel multiple de la mme instance de DFB/bloc fonction est par exemple utile dans les cas suivants : z si le bloc fonction/DFB ne comporte aucune valeur interne ou si celle-ci n'est plus ncessaire pour un traitement ultrieur. Dans ce cas, l'appel multiple de la mme instance de DFB/bloc fonction permet d'conomiser de l'espace mmoire, car le code du bloc fonction/DFB n'est alors charg qu'une seule fois. Le bloc fonction/DFB est pour ainsi dire trait comme une "fonction". z si le bloc fonction/DFB comprend des valeurs internes et que celles-ci doivent tre influences diffrents endroits du programme, la valeur d'un compteur, par exemple, doit tre augmente diffrents endroits du programme. Dans ce cas, l'appel multiple de la mme instance de bloc fonction/DFB permet d'conomiser la mmoire des rsultats intermdiaires pour un traitement ultrieur un autre endroit du programme.
343
EN et ENO
Une entre EN et une sortie ENO peuvent tre configures pour tous les FFB. Si la valeur de EN est dj "0", lors de l'appel de FFB, les algorithmes dfinis par FFB ne sont pas excuts et ENO est mis "0". Si la valeur de EN est dj "1", lors de l'appel de FFB, les algorithmes dfinis par FFB sont excuts. Aprs l'excution sans erreur de ces algorithmes, la valeur de ENO est mise "1". En cas d'erreur lors de l'excution de ces algorithmes, ENO est mis "0". Si ENO est mis "0" (car EN = 0 ou en raison d'une erreur d'excution) : z Blocs fonction z Traitement EN/ENO pour les blocs fonction ayant (seulement) une liaison comme paramtre de sortie :
FUNCBLOCK_1 EN IN1 IN2 ENO OUT FUNCBLOCK_2 EN IN1 IN2 ENO OUT
Lorsque EN est mis "0" par FUNCBLOCK_1, la liaison la sortie OUT de FUNCBLOCK_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. Traitement EN/ENO pour les blocs fonction ayant une variable et une liaison comme paramtre de sortie :
FUNCBLOCK_1 EN IN1 IN2 ENO OUT OUT1 FUNCBLOCK_2 EN IN1 IN2 ENO OUT
Lorsque EN est mis "0" par FUNCBLOCK_1, la liaison la sortie OUT de FUNCBLOCK_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. La variable OUT1 situe sur la mme broche conserve son ancien statut ou peut tre modifie depuis l'extrieur sans avoir d'influence sur la liaison. La variable et la liaison sont enregistres indpendamment l'une de l'autre.
344
Fonctions/Procdures Selon la dfinition CEI 61131-3, les sorties de fonctions dsactives (entre EN mise "0") sont indfinies. (Le mme principe s'applique aux procdures.) Voici cependant une petite explication des statuts de sortie pour ce cas : z Traitement EN/ENO pour les fonctions/procdures ayant (seulement) une liaison comme paramtre de sortie :
FUNC_PROC_1 EN IN1 IN2 ENO OUT EN IN1 IN2 FUNC_PROC_2 ENO OUT
Lorsque EN est mis "0" par FUNC_PROC_1, la liaison la sortie OUT de FUNC_PROC_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. Traitement EN/ENO pour les fonctions/procdures ayant une variable et une liaison comme paramtre de sortie :
FUNC_PROC_1 EN IN1 IN2 ENO OUT OUT1 EN IN1 IN2 FUNC_PROC_2 ENO OUT
Lorsque EN est mis "0" par FUNC_PROC_1, la liaison la sortie OUT de FUNC_PROC_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. La variable OUT1 situe sur la mme broche conserve son ancien statut ou peut tre modifie depuis l'extrieur sans avoir d'influence sur la liaison. La variable et la liaison sont enregistres indpendamment l'une de l'autre. Le comportement aux sorties des FFB est indpendant du fait que les FFB soient appels sans EN/ENO ou avec EN = 1. Note : Pour les blocs fonction dsactivs (EN = 0) quips d'une fonction d'horloge interne (par exemple, le bloc fonction DELAY), le temps semble s'couler, tant donn qu'il est calcul l'aide d'une horloge systme et qu'il est, par consquent, indpendant du cycle du programme et de la libration du bloc.
345
Variable VAR_IN_OUT
Les FFB sont souvent utiliss pour lire une variable l'entre (variables d'entre), pour la traiter et pour transmettre de nouveau les valeurs modifies de cette mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Dans le FFB, une ligne indique que les variables d'entre et de sortie sont lies l'une l'autre. Variable VAR_IN_OUT
.2 EXAMP1 Input1 Input2 Comb_IN_OUT IN1 IN2 IO1 1 OUT1 OUT2 IO1 Output1 Output2 Comb_IN_OUT
Il convient de noter les particularits suivantes en cas dutilisation de FFB avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z les liaisons graphiques permettent uniquement de relier des sorties VAR_IN_OUT des entres VAR_IN_OUT. z seule une liaison graphique unique peut tre relie une entre/sortie VAR_IN_OUT. z une combinaison de variables/d'adresses et de liaisons graphiques nest pas possible pour les sorties VAR_IN_OUT. z il est interdit de relier des valeurs littrales ou des constantes des entres/ sorties VAR_IN_OUT. z il est interdit dutiliser des ngations au niveau des entres/sorties VAR_IN_OUT. z des variables/composantes de variables diffrentes peuvent tre relies l'entre VAR_IN_OUT et la sortie VAR_IN_OUT. Dans un tel cas, la valeur de la variable/composante de variable lentre est copie dans la variable/ composante de variable la sortie.
346
Appels de sous-programme
Appel d'un sousprogramme En FBD, les sous-programmes sont appels l'aide du bloc ci-dessous.
SR_CALL Bedingung MySR EN SR_NAME ENO
Si 1 est l'tat de EN, le sous-programme correspondant (nom des variables SR_Name) est appel. Pour ce type de bloc, la sortie ENO ne sert pas afficher l'tat d'erreur. Pour ce type de bloc, la sortie ENO est toujours 1 et permet d'appeler simultanment plusieurs sous-programmes. La construction suivante permet d'appeler simultanment plusieurs sousprogrammes.
SR_CALL Bedingung MySR1 EN SR_NAME ENO MySR2 SR_CALL EN SR_NAME ENO
Le sous-programme appeler doit se trouver dans la mme tche que la section FBD appelante. Il est possible d'appeler des sous-programmes au sein de sous-programmes. Les appels de sous-programmes sont un complment de la norme CEI 61131-3 et doivent tre activs de manire explicite. Dans les sections d'actions SFC, les appels de sous-programmes ne sont autoriss que si le mode Multitoken a t activ.
347
Contrles
Prsentation Les lments de commande servent l'excution de sauts au sein d'une section FBD et au retour prmatur dans le programme principal depuis un sousprogramme (SRx) ou un bloc fonction driv (DFB). Les contrles suivants sont disponibles.
Reprsentation
NEXT
Contrles
Dsignation Saut
Description Si l'tat de la liaison gauche est 1, un saut est excut jusqu' l'tiquette (dans la section courante). Pour gnrer un saut conditionnel, l'objet saut est li une sortie FFB boolenne. Pour gnrer un saut inconditionnel, la valeur 1 est affecte l'objet saut via la fonction AND. Les repres (destinations de saut) sont reprsents comme du texte avec deux-points la fin. Le texte est limit 32 caractres et doit tre unique dans l'ensemble de la section. Le texte doit respecter les conventions de nommage gnrales. Les tiquettes de saut ne peuvent tre places qu'entre les deux premiers points de trame sur la marge gauche de la section. Remarque : Les tiquettes de saut ne doivent "couper" aucun rseau, c'est--dire qu'une ligne imaginaire entre l'tiquette de saut et la marge droite de la section ne doit tre coupe par aucun objet. Cela est galement valable pour les liaisons. Aprs leur dition, chaque sous-programme et chaque DFB (bloc fonction driv) est ferm, c'est--dire qu'un retour est effectu dans le programme principal appelant. Si le sous-programme/DFB est quitt prmaturment, le retour dans le programme principal appelant peut tre forc via l'objet retour (Return). Si l'tat de la liaison gauche est 1, un retour est effectu depuis le sousprogramme ou un bloc fonction driv (DFB) dans le programme principal appelant. Les objets retour peuvent uniquement tre utiliss dans des DFB ou des sous-programmes SR. Une utilisation dans le programme principal n'est pas possible. Pour gnrer un retour conditionnel, l'objet retour est li une sortie FFB boolenne.
Libell
LABEL:
Retour
RETURN
348
Liaison
Description Les liaisons sont des liens verticaux et horizontaux entre les FFB.
OR
Reprsentation
AND
OR
AND
OR
349
Veuillez observer les remarques qui suivent sur la programmation : les liaisons peuvent tre utilises pour chaque type de donnes. z les types de donnes respectifs des entres/sorties relier doivent correspondre les uns aux autres. z plusieurs liaisons peuvent tre relies une sortie FFB. Une seule cependant avec une entre FFB. z Seules des entres et sorties peuvent tre relies ensemble. La liaison de plusieurs sorties n'est pas possible. Cela signifie qu'aucun lien OU via des liaisons n'est possible dans FBD. Il faut toujours utiliser une fonction OU. z le chevauchement des liaisons avec dautres objets est admis. z les boucles ne peuvent pas tre configures par le biais de liaisons, tant donn que, dans ce cas, lordre dexcution dans la section ne peut pas tre dfini de faon unique. Les boucles doivent tre rsolues par le biais de paramtres rels (voir Configuration de boucles, p. 359). z Afin d'viter le croisement de liaisons, les liaisons peuvent galement tre reprsentes sous forme de connecteurs. A cette occasion, la source et la cible de la liaison sont caractrises par un nom unique au sein de la section. Suivant le type d'objet source, le nom du connecteur est form comme suit : z pour les fonctions : " numro de fonction/paramtre formel " de la source de la liaison.
z
.3 AND IN1
1
OUT
OUT
IN2
IN2
pour les blocs fonction : " nom d'instance/paramtre formel " de la source de la liaison.
FBI_2 TON IN
1
OUT ET
OUT
PT
IN2
350
Objet texte
Description Dans le langage blocs fonctions FBD, les textes peuvent tre placs sous forme dobjets texte. La taille de ces objets texte est fonction de la longueur du texte. Selon la longueur du texte, la taille de lobjet peut tre agrandie, dans les sens vertical et horizontal, dunits de grille supplmentaires. Les objets texte ne doivent pas se chevaucher avec des FFB, le chevauchement avec des liaisons est toutefois admis.
351
Les rgles suivantes s'appliquent l'ordre d'excution au sein d'un rseau : un FFB n'est calcul que lors tous les lments (sorties FFB, etc) qui sont relis ses entres sont calculs. z l'ordre d'excution des FFB qui sont relis diffrentes sorties du mme FFB va du haut vers le bas. z l'ordre d'excution des FFB n'est pas influenc par leur position au sein du rseau. Cela ne s'applique pas lorsque plusieurs FFB sont relis la mme sortie du FFB " appeler". Dans ce cas l'ordre d'excution est dfini par l'ordre graphique (du haut vers le bas).
z
352
Priorits
2 3 4 5
Dfinition utilisateur Rseau pour rseau Ordre des sorties Rung pour rung
Exemple
.15 AND 5 .19 AND EN .17 AND .16 NW3 AND 9 .18 AND 11 10 NW4 6 ENO .20 AND 8
.21 AND 7
353
.8 AND 6 B
354
Lorsque l'on utilise une liaison au lieu d'une variable, les deux rseaux sont excuts dans l'ordre correct (voir galement Situation de sortie, p. 354).
.4 ..3 1 AND A AND 2
.5 6 AND
.6 3 AND EN ENO
.7 4 AND A
.8 6 AND
355
L'ordre d'excution correct peut tre obtenu en modifiant les positions des rseaux dans la section (voir galement Situation de sortie, p. 354).
.6 AND EN 1 ENO .7 AND 2 A
.8 AND 3 B
.4 .3 AND 4 A AND 5
.5 AND B 6
356
Dtermination explicite
L'ordre d'excution correct peut tre atteint en modifiant de manire explicite l'ordre d'excution d'un FFB. Pour les FFB dont l'ordre d'excution a t modifi de manire explicite, le numro d'excution s'affiche dans un champ noir (voir aussi Situation de sortie, p. 354).
.4 .3 AND 1 A AND 4
.5 AND B 6
.6 AND EN 2 ENO
.7 AND 3 A
.8 AND 5 B
Note : Le systme n'autorise qu'une seule rfrence par instance. Ainsi, l'instance ".7"par exemple ne peut tre rfrence qu'une fois.
357
La position des FFB n'a alors une influence sur l'ordre d'excution que si plusieurs FFB sont relis la mme sortie du FFB " appeler" (voir galement Situation de sortie, p. 354). Les positions des blocs .4 et .5 sont permutes dans le premier rseau. Dans ce cas (source commune des deux entres de bloc), l'ordre d'excution des deux blocs est galement permut (traitement du haut vers le bas). Les positions des blocs .7 et .8 sont permutes dans le deuxime rseau. Dans ce cas (source diffrente des entres de bloc) l'ordre d'excution des deux blocs n'est pas permut (traitement dans l'ordre des sorties de bloc appeler).
.5 .3 AND 1 B AND 2
.7 AND 7 A
358
Configuration de boucles
Boucles non permises La configuration de boucles exclusivement par le biais de liaisons nest pas permise, tant donn que, dans ce cas, une dtermination unique du flux de signaux nest pas possible (la sortie dun FFB est lentre du FFB suivant, et la sortie de celui-ci est son tour lentre du premier). Boucles non permises par le biais de liaisons
.5 OR IN1 IN2 1 .6 AND 2
Une telle logique doit tre rsolue par le biais de variables de raction, afin que le flux de signaux puisse tre dfini de faon unique. Les variables de raction doivent tre initialises. La valeur initiale est utilise lors de la premire excution de la logique. Une fois la premire excution effectue, la valeur initiale est remplace par la valeur actuelle. Respectez pour les deux variantes l'ordre d'excution (numro entre parenthses aprs le nom d'instance) des deux blocs. Boucle rsolue par le biais dun paramtre rel : Variante 1
.5 1 OR IN1 OUT1 IN2 AND OUT1 .6 2
359
360
12
Prsentation
Objet de ce souschapitre Contenu de ce chapitre Ce chapitre dcrit le langage contacts LD conforme la norme CEI 611311.
361
362
Reprsentation :
Contact ouverture Liaison boolenne horizontale Bobine %QX100
%MX50 /
%MX60
Saut
Etiquette (destination de saut) NEXT: Entre EN Sortie ENO Liaison FFB Variable
EN IN1 TRUE 1 AND ENO %IX1.5.4 %IX1.5.5 EN OR ENO A<B C=D EN AND ENO Result1
Error1
Inversion
Expression ST
Valeurs littrales
Adresses topologiques
Liaison
Croisement
XOR EN IN4 ENO Result2
Error2
363
Objets
Les objets du langage LD offrent des aides permettant de structurer une section en un ensemble de : z Contacts (voir Contacts, p. 365) z Bobines (voir Bobines, p. 367) z EF et EFB (fonctions lmentaires (voir Fonction lmentaire, p. 370) et blocs fonction lmentaires (voir Bloc fonction lmentaire, p. 371)), z DFB (blocs fonction drivs (voir DFB, p. 372)), z procdures ; (voir Procdure, p. 373) z contrles (voir Contrles, p. 382) et z blocs d'opration et de comparaison (voir Fonctionnement et comparaison des blocs, p. 383) reprsentant une extension de la norme CEI 61131-3. Ces objets peuvent tre lis les uns aux autres par : des liaisons (voir Liaisons, p. 385) ou z des paramtres rels (voir Paramtres, p. 374) (FFB uniquement).
z
La logique de la section peut tre commente par des objets texte (voir Objet texte, p. 389). Taille de la section Une section LD comprend une fentre incluant une seule page. Cette page est place sur une grille qui partage la section en lignes et colonnes. Les sections LD peuvent comporter de 11 64 colonnes et de 17 2000 lignes. Le langage LD est bas sur les cellules, c'est--dire que seul un objet peut tre plac dans chaque cellule. Ordre d'excution Lordre dexcution des diffrents objets dans une section LD est dtermin par le flux de donnes lintrieur de la section. Les rseaux branchs sur la barre dalimentation gauche sont traits de haut en bas (liaison avec la barre dalimentation gauche). Les rseaux indpendants les uns des autres lintrieur de la section sont traits dans lordre de placement (de haut en bas) (voir galement Ordre d'excution et flux de signaux, p. 398). Pour plus d'informations sur la conformit CEI du langage LD, voir Conformit CEI (voir Conformit CEI, p. 693).
Conformit CEI
364
Contacts
Prsentation Un contact est un lment LD permettant de transfrer un tat de la liaison horizontale vers la droite. Cet tat est le rsultat d'une opration boolenne AND sur l'tat de la liaison horizontale de gauche avec l'tat du paramtre boolen rel associ. Un contact ne modifie pas la valeur du paramtre rel associ. Les contacts occupent une cellule. Sont autoriss comme paramtres rels : z Variables boolennes z Constantes boolennes z Adresses boolennes (adresses topologiques ou symboliques) z Expression ST (voir Expression, p. 539) avec rsultat boolen (par ex. VarA OR VarB) Les expressions ST comme paramtres rels de contacts reprsentent une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite.
365
Types de contacts
Dsignation A fermeture
Description Dans le cas de contacts fermeture, l'tat de la liaison de gauche est transfr vers la liaison de droite si l'tat du paramtre boolen rel associ (indiqu par xxx) est ON. Sinon, l'tat de la liaison de droite est OFF. Dans le cas de contacts ouverture, l'tat de la liaison de gauche est transfr vers la liaison de droite si l'tat du paramtre boolen rel appropri (indiqu par xxx) est OFF. Sinon, l'tat de la liaison de droite est OFF. Dans le cas de contacts de dtection de transitions positives, la liaison de droite est ON pour un cycle de programme, si un passage de OFF ON du paramtre rel boolen (xxx) associ a lieu et quen mme temps, l'tat de la liaison de gauche est ON. Sinon, ltat de la liaison de droite est 0. Voir aussi Dtection de fronts, p. 390. Dans le cas de contacts de dtection de transitions ngatives, la liaison de droite est ON pour un cycle de programme, si un passage de ON OFF du paramtre rel boolen (xxx) associ a lieu et qu'en mme temps, l'tat de la liaison de gauche est ON. Sinon, ltat de la liaison de droite est 0. Voir aussi Dtection de fronts, p. 390.
A ouverture
xxx /
xxx P
xxx N
366
Bobines
Prsentation Une bobine est un lment LD permettant de transfrer l'tat de la liaison horizontale sur la gauche, inchange, vers la liaison horizontale sur la droite. L'tat est stock dans le paramtre boolen rel respectif. Normalement, les bobines suivent des contacts ou des FFB, mais elles peuvent aussi tre suivies par des contacts. Les bobines occupent une cellule. Sont autoriss comme paramtres rels : z Variables boolennes z Adresses boolennes (adresses topologiques ou symboliques)
367
Types de bobines
Dsignation Bobine
Description Dans le cas de bobines, l'tat de la liaison de gauche est transfr vers le paramtre boolen rel associ (indiqu par xxx) et la liaison de droite. Dans le cas de bobines inverses, l'tat de la liaison de gauche est copi sur la liaison de droite. L'tat invers de la liaison de gauche est copi vers le paramtre boolen rel associ (indiqu par xxx). Si la liaison de gauche est OFF, alors la liaison de droite sera galement OFF et le paramtre boolen rel associ sera ON. Dans le cas de bobines de dtection de transitions positives, l'tat de la liaison de gauche est copi sur la liaison de droite. Le paramtre rel associ du type de donnes EBOOL (indiqu par xxx) est 1 pour un cycle de programme, si un passage de 0 1 de la liaison gauche est effectu. Voir aussi Dtection de fronts, p. 390. Dans le cas de bobines de dtection de transitions ngatives, l'tat de la liaison de gauche copi sur la liaison de droite. Le paramtre rel boolen associ (indiqu par xxx) est 1 pour un cycle de programme, si un passage de 1 0 de la liaison gauche est effectu. Voir aussi Dtection de fronts, p. 390. Avec une bobine d'enclenchement, l'tat de la liaison de gauche est copi sur la liaison de droite. Le paramtre boolen rel associ (indiqu par xxx) est dfini sur ON si l'tat de la liaison de gauche est ON, sinon il reste inchang. Le paramtre boolen rel associ peut tre rinitialis via la bobine de rinitialisation. Voir aussi Dtection de fronts, p. 390. Avec une bobine de rinitialisation, l'tat de la liaison de gauche est copi sur la liaison de droite. Le paramtre boolen rel associ (indiqu par xxx) est dfini sur OFF si l'tat de la liaison de gauche est ON, sinon il reste inchang. Le paramtre boolen rel associ peut tre enclench via la bobine d'enclenchement. Voir aussi Dtection de fronts, p. 390. Avec des bobines d'arrt, si le statut de la liaison de gauche est 1, l'excution du programme est arrte immdiatement. (Avec des bobines d'arrt, l'tat de la liaison de gauche n'est pas copi sur la liaison de droite.)
bobine inverse
xxx /
Bobine de dtection de transitions positives Bobine de dtection de transitions ngatives Bobine d'enclencheme nt
xxx P
xxx N
xxx S
Bobine de rinitialisation
xxx R
Bobine d'arrt
xxx H
368
Reprsentation
xxx C
Description Avec des bobines d'appel, l'tat de la liaison de gauche est copi vers la liaison de droite. Si l'tat de la liaison de gauche est ON alors le sousprogramme associ (indiqu par xxx) est appel. Le sous-programme appeler doit se trouver dans la mme tche que la section LD appelante. Il est possible d'appeler des sous-programmes au sein de sous-programmes. Les sous-programmes sont un complment de la norme CEI 61131-3 et doivent tre activs de manire explicite. Dans les sections d'actions SFC, les bobines d'appel (appels de sousprogrammes) ne sont autoriss que si le mode Multitoken a t activ.
369
Fonctions lmentaires, blocs fonction lmentaires, blocs fonction drivs et procdures (FFB)
Prsentation FFB est le terme gnrique pour : les fonctions lmentaires (EF) (voir Fonction lmentaire, p. 370) z les blocs fonction lmentaires (EFB) (voir Bloc fonction lmentaire, p. 371) z les blocs fonction drivs (DFB) (voir DFB, p. 372) z les procdures (voir Procdure, p. 373)
z
Les FFB occupent une largeur de 1 3 colonnes (en fonction de la longueur des noms des paramtres formels) et une longueur de 2 33 lignes (en fonction du nombre de lignes des paramtres formels). Fonction lmentaire Les fonctions nont pas dtat interne. Lorsque les valeurs d'entre sont identiques, la valeur de sortie est la mme chaque excution de la fonction. Par exemple, l'addition de deux valeurs donne toujours le mme rsultat. . Une fonction lmentaire est reprsente graphiquement comme un cadre avec des entres et une sortie. Les entres sont toujours reprsentes sur la gauche et la sortie toujours sur la droite du cadre. Le nom de la fonction, cest--dire le type de fonction, est affich au centre du cadre. Le numro d'excution (voir Ordre d'excution et flux de signaux, p. 398) de la fonction apparat droite du type de fonction. Le numro de fonction est affich au-dessus du cadre. Le numro de fonction reprsente le numro courant de la fonction dans la section actuelle. Les numros de fonction ne peuvent pas tre modifis. Fonction lmentaire
.1 DIV EN IN1 IN2
1 ENO OUT
370
Les blocs fonction lmentaires ont des tats internes. Lorsque les valeurs d'entre sont identiques, la valeur de sortie peut tre diffrente pour toutes les excutions de la fonction. Par exemple, pour un compteur, la valeur de sortie augmente. Un bloc fonction lmentaire est reprsent graphiquement sous forme de cadre avec des entres et des sorties. Les entres sont toujours reprsentes sur la gauche et les sorties toujours sur la droite du cadre. Le nom du bloc fonction, cest-dire le type de bloc fonction, est affich au centre du cadre. Le nom d'instance est affich au-dessus du cadre. Les blocs fonction peuvent avoir plusieurs sorties. Le nom du bloc fonction, cest--dire le type de bloc fonction, est affich au centre du cadre. Le numro d'excution (voir Ordre d'excution et flux de signaux, p. 398) du bloc fonction apparat droite du type de bloc fonction. Le nom d'instance est affich au-dessus du cadre. Le nom dinstance permet didentifier prcisment le bloc fonction dans un projet. Le nom dinstance est gnr automatiquement et prsente la structure suivante : FBI_n FBI = Instance de bloc fonction n = numro courant du bloc fonction au sein du projet Vous pouvez modifier ces noms gnrs automatiquement pour rendre la vue d'ensemble plus claire. Le nom d'instance (max. 32 caractres) doit tre unique dans tout le projet ; aucune distinction n'est faite ici entre majuscules et minuscules. Le nom d'instance doit respecter les conventions de noms gnrales. Note : Selon la norme CEI 61131-3, les noms d'instance doivent obligatoirement commencer par une lettre. Si vous voulez galement utiliser des chiffres, vous devez activer cette fonction.
371
DFB
Les blocs fonction drivs (DFB) ont les mmes caractristiques que les blocs fonction lmentaires. Ils sont cependant crs par l'utilisateur dans les langages FBD, LD, IL et/ou ST. L'unique diffrence par rapport aux blocs fonction lmentaires est que le bloc fonction driv est reprsent graphiquement sous forme de cadre avec deux lignes verticales. Bloc fonction driv
FBI_1 1 DFB_EXAMP EN IN1 IN2 IN3 OUT2 ENO OUT1
372
Procdure
Techniquement, les procdures sont des fonctions. L'unique diffrence par rapport aux fonctions lmentaires est que les procdures peuvent comprendre plus d'une sortie et qu'elles prennent en charge le type de donnes VAR_IN_OUT. Il n'y a pas de diffrence physique entre les procdures et les fonctions lmentaires. Les procdures sont une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. Procdure
.1 1 PROC_EXAMP EN IN1 IN2 IO1 ENO OUT1 OUT2 IO1
373
Paramtres
Pour importer des valeurs dans le FFB ou exporter des valeurs du FFB, des entres et des sorties sont ncessaires. Elles sont appeles paramtres formels. Les paramtres formels sont lis des objets qui comprennent les tats courants du traitement. Ces objets sont appels paramtres rels. Paramtres formels et rels :
Paramtres rels FBI_1 CTU EN Clock %I1.1.3 MUX(1,var1,var2) CTU R PV CV Current_Value 1 Paramtres rels Output
ENO Q
Paramtres formels
Durant lexcution du programme, les valeurs sont transmises, par le biais des paramtres rels, du processus au FFB, et renvoyes nouveau la sortie aprs le traitement. Seul un objet (paramtre rel) du type de donnes suivant peut tre reli aux entres FFB : z contact z variable z adresse z valeur littrale z expression ST Les expressions ST des entres FFB reprsentent une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. z liaison Les combinaisons d'objets (paramtres rels) suivantes peuvent tre relies aux sorties FFB : z une ou plusieurs bobines z un ou plusieurs contacts z une variable z une variable et une ou plusieurs liaisons (non valable pour les sorties VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 381)) z une adresse z une adresse et une ou plusieurs liaisons (non valable pour les sorties VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 381))
374
une ou plusieurs liaisons (non valable pour les sorties VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 381))
Le type des donnes de l'objet relier doit correspondre au type des donnes de lentre/la sortie FFB. On choisira un type de donnes adapt pour le bloc fonction, si tous les paramtres rels sont constitus de valeurs littrales. Exception : pour les entres/sorties gnriques FFB de type de donnes ANY_BIT, des objets de type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre relis. Il s'agit d'une extension de la norme CEI 61131-3 et doit donc tre active de manire explicite. Exemple : Autoris :
.1 AND
IntVar1 IntVar2
IN1 IN2
OUT
IntVar3
Non autoris :
.1 AND_WORD
IntVar1 IntVar2
IN1 IN2
OUT
IntVar3
(Dans ce cas, AND_INT doit tre utilis.) Il n'est en principe pas ncessaire d'affecter un paramtre rel tous les paramtres formels. Cependant, cela n'est pas valable pour les broches inverses. Un paramtre rel doit toujours leur tre affect. Cela est galement impratif pour certains types de paramtre formel. Pour connatre les types concerns, veuillez vous reporter au tableau suivant.
375
DFB : VAR_IN_OUT + EFB : sortie EF : entre EF : VAR_IN_OUT EF : sortie Procdure : entre Procdure : VAR_IN_OUT Procdure : sortie + / + + -
Les FFB utilisant aux entres des paramtres rels, auxquels aucune valeur na encore t affecte, fonctionnent avec les valeurs initiales de ces paramtres rels. Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise pendant lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Si aucune valeur n'est affecte un paramtre formel et que le bloc fonction/DFB a t instanci plusieurs reprises, les instances appeles par la suite travaillent avec l'ancienne valeur.
376
Variables publiques
Certains blocs fonction disposent non seulement d'entres et de sorties, mais galement de variables publiques (Public Variables). Ces variables permettent de transmettre des valeurs statiques (valeurs non influences par le procd) au bloc fonction. Elles sont donc utilises lors du paramtrage du bloc fonction. Les variables publiques sont une extension de la norme CEI 61131-3. Les valeurs sont affectes aux variables publiques via leur valeur initiale. Les valeurs des variables publiques sont ensuite lues partir du nom d'instance du bloc fonction et du nom de la variable publique. Exemple :
FBI_1 D_ACT ED DTIMEL DTIMEA TRIGR UNLOCK REACT 1 ERR ACT
des et
Nom d'instance
Variable publique
.1 AND 1 OUT
FBI_1.OP_CTRL Var2
IN1 IN2
Var3
Variables prives
Certains blocs fonction disposent non seulement d'entres, de sorties et de variables publiques, mais galement de variables prives. A l'instar des variables publiques, ces variables permettent de transmettre des valeurs statistiques (valeurs non influences par le procd) au bloc fonction. Le programme utilisateur ne peut pas accder ces variables. Seule la table d'animation en a la capacit. Note : Les DFB imbriqus sont dclars comme des variables prives du DFB parent. Ainsi, leurs variables ne sont pas accessibles via la programmation, mais via la table d'animation. Les variables prives sont une extension de la norme CEI 61131-3.
377
Veuillez tenir compte des remarques qui suivent sur la programmation : Les FFB ne sont traits que lorsquils sont connects directement ou indirectement la barre dalimentation gauche. z Si le FFB doit tre excut de faon conditionnelle, lentre EN peut tre pralablement relie par des contacts ou dautres FFB (voir galement EN et ENO, p. 379). z Les entres et sorties boolennes peuvent tre inverses. z Des conditions particulires s'appliquent lors de l'utilisation de variables VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 381). z Les instances de DFB ou bloc fonction peuvent tre appeles plusieurs reprises (voir aussi Appel multiple d'une instance de bloc fonction, p. 378).
z
Les instances de DFB ou bloc fonction peuvent tre appeles plusieurs reprises, l'exception des instances d'EFB de communication et blocs fonction/DFB ayant une sortie ANY mais pas d'entre ANY, qui ne peuvent tre appeles qu'une seule fois. L'appel multiple de la mme instance de DFB/bloc fonction est par exemple utile dans les cas suivants : z si le bloc fonction/DFB ne comporte aucune valeur interne ou si celle-ci n'est plus ncessaire pour un traitement ultrieur. Dans ce cas, l'appel multiple de la mme instance de DFB/bloc fonction permet d'conomiser de l'espace mmoire, car le code du bloc fonction/DFB n'est alors charg qu'une seule fois. Le bloc fonction/DFB est pour ainsi dire trait comme une "fonction". z si le bloc fonction/DFB comprend des valeurs internes et que celles-ci doivent tre influences diffrents endroits du programme, la valeur d'un compteur, par exemple, doit tre augmente diffrents endroits du programme. Dans ce cas, l'appel multiple de la mme instance de bloc fonction/DFB permet d'conomiser la mmoire des rsultats intermdiaires pour un traitement ultrieur un autre endroit du programme.
378
EN et ENO
Une entre EN et une sortie ENO peuvent tre configures pour tous les FFB. Si la valeur de EN est dj "0", lors de l'appel de FFB, les algorithmes dfinis par FFB ne sont pas excuts et ENO est mis "0". Si la valeur de EN est dj "1", lors de l'appel de FFB, les algorithmes dfinis par FFB sont excuts. Aprs l'excution sans erreur de ces algorithmes, la valeur de ENO est mise "1". En cas d'erreur lors de l'excution de ces algorithmes, ENO est mis "0". Si ENO est mis "0" (car EN = 0 ou en raison d'une erreur d'excution) : z Blocs fonction z Traitement EN/ENO pour les blocs fonction ayant (seulement) une liaison comme paramtre de sortie :
FUNCBLOCK_1 EN IN1 IN2 ENO OUT FUNCBLOCK_2 EN IN1 IN2 ENO OUT
Lorsque EN est mis "0" par FUNCBLOCK_1, la liaison la sortie OUT de FUNCBLOCK_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. Traitement EN/ENO pour les blocs fonction ayant une variable et une liaison comme paramtre de sortie :
FUNCBLOCK_1 EN IN1 IN2 ENO OUT OUT1 FUNCBLOCK_2 EN IN1 IN2 ENO OUT
Lorsque EN est mis "0" par FUNCBLOCK_1, la liaison la sortie OUT de FUNCBLOCK_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. La variable OUT1 situe sur la mme broche conserve son ancien statut ou peut tre modifie depuis l'extrieur sans avoir d'influence sur la liaison. La variable et la liaison sont enregistres indpendamment l'une de l'autre.
379
Fonctions/Procdures Selon la dfinition CEI 61131-3, les sorties de fonctions dsactives (entre EN mise "0") sont indfinies. (Le mme principe s'applique aux procdures.) Voici cependant une petite explication des statuts de sortie pour ce cas : z Traitement EN/ENO pour les fonctions/procdures ayant (seulement) une liaison comme paramtre de sortie :
FUNC_PROC_1 EN IN1 IN2 ENO OUT EN IN1 IN2 FUNC_PROC_2 ENO OUT
Lorsque EN est mis "0" par FUNC_PROC_1, la liaison la sortie OUT de FUNC_PROC_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. Traitement EN/ENO pour les fonctions/procdures ayant une variable et une liaison comme paramtre de sortie :
FUNC_PROC_1 EN IN1 IN2 ENO OUT OUT1 EN IN1 IN2 FUNC_PROC_2 ENO OUT
Lorsque EN est mis "0" par FUNC_PROC_1, la liaison la sortie OUT de FUNC_PROC_1 conserve l'ancien statut qu'elle avait lors du dernier cycle correct. La variable OUT1 situe sur la mme broche conserve son ancien statut ou peut tre modifie depuis l'extrieur sans avoir d'influence sur la liaison. La variable et la liaison sont enregistres indpendamment l'une de l'autre. Le comportement aux sorties des FFB est indpendant du fait que les FFB soient appels sans EN/ENO ou avec EN = 1. Note : Pour les blocs fonction dsactivs (EN = 0) quips d'une fonction d'horloge interne (par exemple, le bloc fonction DELAY), le temps semble s'couler, tant donn qu'il est calcul l'aide d'une horloge systme et qu'il est, par consquent, indpendant du cycle du programme et de la libration du bloc.
380
Variable VAR_IN_OUT
Les FFB sont souvent utiliss pour lire une variable l'entre (variables d'entre), pour la traiter et pour transmettre de nouveau les valeurs modifies de cette mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Dans le FFB, une ligne indique que les variables d'entre et de sortie sont lies l'une l'autre. Variable VAR_IN_OUT
.1 EXAMP1 EN Input1 Input2 Comb_IN_OUT IN1 IN2 IO1 1
Il convient de noter les particularits suivantes en cas dutilisation de FFB avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z les liaisons graphiques permettent uniquement de relier des sorties VAR_IN_OUT des entres VAR_IN_OUT. z seule une liaison graphique unique peut tre relie une entre/sortie VAR_IN_OUT. z une combinaison de variables/d'adresses et de liaisons graphiques nest pas possible pour les sorties VAR_IN_OUT. z il est interdit de relier des valeurs littrales ou des constantes des entres/ sorties VAR_IN_OUT. z il est interdit dutiliser des ngations au niveau des entres/sorties VAR_IN_OUT. z des variables/composantes de variables diffrentes peuvent tre relies l'entre VAR_IN_OUT et la sortie VAR_IN_OUT. Dans un tel cas, la valeur de la variable/composante de variable lentre est copie dans la variable/ composante de variable la sortie.
381
Contrles
Prsentation Les lments de commande servent l'excution de sauts au sein d'une section LD et au retour prmatur dans le programme principal depuis un sous-programme (SRx) ou un bloc fonction driv (DFB). Les lments de commande occupent une cellule. Contrles
Dsignation Saut
Description Si l'tat de la liaison gauche est 1, un saut est excut jusqu' l'tiquette (dans la section courante). Pour gnrer un saut inconditionnel, l'objet saut est plac directement sur la barre d'alimentation gauche. Pour gnrer un saut conditionnel, l'objet saut est plac la fin d'une range de contacts. Les repres (destinations de saut) sont reprsents comme du texte avec deux-points la fin. Le texte est limit 32 caractres et doit tre unique dans l'ensemble de la section. Le texte doit respecter les conventions de nommage gnrales. Les tiquettes de saut ne peuvent tre places que dans la premire cellule directement sur la barre d'alimentation gauche. Remarque :Les tiquettes de saut ne doivent "couper" aucun rseau, c'est-dire qu'une ligne imaginaire entre l'tiquette de saut et la marge droite de la section ne doit tre coupe par aucun objet. Cela s'applique galement aux liaisons boolennes et FFB. Aprs leur dition, chaque sous-programme et chaque DFB (bloc fonction driv) est ferm, c'est--dire qu'un retour est effectu dans le programme principal appelant. Si le sous-programme/DFB est quitt prmaturment, le retour dans le programme principal appelant peut tre forc via l'objet retour (Return). Si l'tat de la liaison gauche est 1, un retour est effectu depuis le sousprogramme ou un bloc fonction driv (DFB) dans le programme principal appelant. Les objets retour peuvent uniquement tre utiliss dans des DFB ou des sous-programmes SR. Une utilisation dans le programme principal n'est pas possible. Pour gnrer un retour conditionnel, l'objet retour est plac la fin d'une range de contacts.
Libell
LABEL:
Retour
RETURN
382
Objets
Dsignation Bloc opration
Description Si l'tat de la liaison gauche est 1, l'instruction ST comprise dans le bloc est excute. Toutes les instructions ST (voir Instructions, p. 539) sont permises sauf les instructions de commande : z (RETURN, z JUMP, IF, z CASE, z FOR z etc.) Pour les blocs opration, quel que soit le rsultat de l'instruction ST, l'tat de la liaison gauche est transmis la liaison droite. Un bloc peut contenir jusqu' 4 096 caractres. Si tous les caractres ne peuvent pas tre affichs, les premiers caractres seront affichs suivis de points de suspension (...). Un bloc opration occupe 1 ligne et 4 colonnes. Exemple :
In1 Instruction1; In2 Instruction2; Out1
RES := <FCT_NAME>(...)
Dans l'exemple Instruction1 est excut, si In1=1. Instruction2 es excut, si In1=1 et In2=1 (le rsultat de Instruction1 ne joue aucun rle pour l'excution de Instruction2). Out1 est 1, si In1=1 et In2=1 (les rsultats de Instruction1 et Instruction2 n'influent pas sur l'tat de Out1).
383
Reprsentation
COMPARE
Description Les blocs de comparaison horizontaux servent excuter une expression de comparaison (<, >, <=, >=, =, <>) dans le langage de programmation ST. (Remarque : La mme fonctionnalit est galement disponible via les expressions ST (voir Expression, p. 539).) Lorsque l'tat de la liaison gauche est 1 et que le rsultat de la comparaison est 1, l'tat de la liaison droite est 1. Un bloc de comparaison horizontal peut contenir jusqu' 4 096 caractres. Si tous les caractres ne peuvent pas tre affichs, les premiers caractres seront affichs suivis de points de suspension (...). Un bloc de comparaison horizontal occupe une ligne et deux colonnes. Exemple :
In1 Comparaison In2 Comparaison Out1
<obj1 OP obj2>
Dans l'exemple, Compare1 est excut si In1=1. Compare2 est excut si In1=1, In2=1 le rsultat de Compare1=1. Out1 devient 1 si In1=1, In2=1, le rsultat de Compare1=1 et le rsultat de Compare2=1.
384
Liaisons
Description Les liaisons sont des liens entre des objets LD (contacts, bobines, FFB, etc.). Une diffrence est faite entre deux types de liaison. z Liaison boolenne Les liaisons boolennes comprennent un ou plusieurs segments qui relient entre eux des objets boolens (contacts, bobines). Pour les liaisons boolennes, une diffrence est faite entre : z Les liaisons boolennes horizontales Les liaisons boolennes horizontales permettent une liaison en srie de contacts et bobines. z Les liaisons boolennes verticales Les liaisons boolennes verticales permettent une liaison en parallle de contacts et bobines. z Liaisons FFB Les liaisons FFB comprennent une combinaison de segments horizontaux et verticaux qui relient les entres/sorties FFB avec d'autres objets. Liaisons :
Liaison boolenne horizontale
XXX EN ENO EN
XXX ENO
Liaison FFB
XXX EN XXX EN ENO ENO
385
Veuillez observer les remarques gnrales qui suivent sur la programmation : Les types de donnes respectifs des entres/sorties relier doivent correspondre les uns aux autres. z Les liaisons entre des paramtres de longueur variable (ex : ANY_ARRAY_INT) ne sont pas permises. z Plusieurs liaisons peuvent tre relies une entre (ct droit d'un contact/d'une bobine, sortie FFB). Cependant une seule liaison est possible avec chaque entre (ct gauche d'un contact/d'une bobine, entre FFB). z Les contacts, bobines et entres de FFB non relis obtiennent par dfaut la valeur "0". z Les boucles ne peuvent pas tre configures par le biais de liaisons, tant donn que, dans ce cas, lordre dexcution dans la section ne peut pas tre dfini de faon unique. Les boucles doivent tre rsolues par le biais de paramtres rels (voir Boucles non permises, p. 400).
z
Remarques sur la programmation de liaisons boolennes : Le chevauchement des liaisons boolennes avec dautres objets n'est pas admis. z Le flux de signaux (passage de courant) d'une liaison boolenne va de gauche vers droite. C'est pourquoi les liaisons diriges vers l'arrire ne sont pas autorises. z Si deux liaisons boolennes se croisent, un lien entre les deux liaisons est automatiquement cr. Etant donn que le croisement de liaisons boolennes n'est pas possible, les liaisons ne sont pas identifies de manire particulire.
z
386
Remarques sur la programmation des liaisons FFB : z Au moins un ct d'une liaison FFB doit tre reli une entre ou une sortie FFB. z Les liaisons FFB sont reprsentes par un trait double afin de les diffrencier des liaisons boolennes. z Le flux de signaux (passage de courant) d'une liaison FFB va de la sortie FFB vers l'entre FFB, indpendamment de la direction. C'est pourquoi les liaisons diriges vers l'arrire sont autorises. z Seules des entres FFB et des sorties FFB peuvent tre relies ensemble. La liaison de plusieurs sorties FFB entre elles n'est pas possible. Cela signifie qu'en LD aucune liaison OU n'est possible via des liaisons FFB. z Le chevauchement des liaisons FFB avec dautres objets est admis. z Le croisement de liaisons FFB est admis. Les croisements sont reprsents par une liaison interrompue.
AND OR
AND
OR
Dans le cadre de liaisons FFB, les points de liaison entre plusieurs liaisons FFB sont reprsents par un cercle rempli.
OR
AND
OR
387
Afin d'viter le croisement de liaisons, les liaisons FFB peuvent galement tre reprsentes sous forme de connecteurs. A cette occasion, la source et la cible de la liaison FFB sont caractrises par un nom unique au sein de la section. Suivant le type d'objet source, le nom du connecteur est form comme suit : z pour les fonctions : " numro de fonction/paramtre formel " de la source de la liaison.
.3 AND IN1
1
OUT
OUT
IN2
IN2
pour les blocs fonction : " nom d'instance/paramtre formel " de la source de la liaison.
.3 TON IN
1
OUT ET
OUT
PT
IN2
OUT
IN2
Liaisons verticales
La "liaison verticale" constitue un cas particulier de liaison. La liaison verticale tient lieu de OU logique. Avec cette forme de liaison OU, 32 entres (contacts) et 64 sorties (bobines, liaisons) sont possibles.
388
Objet texte
Prsentation Dans le plan de contacts LD, les textes peuvent tre placs sous forme dobjets texte. La taille de ces objets texte est fonction de la longueur du texte. Selon la longueur du texte, la taille de lobjet peut tre agrandie, dans les sens vertical et horizontal, dunits de grille supplmentaires. Les objets texte peuvent chevaucher d'autres objets.
389
Dtection de fronts
Prsentation Lors de la dtection de fronts, un bit est contrl sur un passage de 0 -> 1 (front positif) ou sur un passage de 1 -> 0 (front ngatif). Pour ce faire, la valeur du bit du cycle prcdent est compare la valeur du bit du cycle en cours. Dans ce cas, non seulement la valeur en cours est requise mais galement lancienne valeur. Cest pourquoi, lors de la dtection de fronts, 2 bits (valeurs courante et ancienne) sont requis au lieu dun. Comme le type de donnes BOOL ne propose quun seul bit (valeur en cours), il existe pour la dtection de fronts le type de donnes EBOOL (BOOL tendu). En plus de la dtection de fronts, le type de donnes EBOOL permet le forage. Vous devez donc galement enregistrer si le forage de bit est actif ou non. Le type de donnes EBOOL enregistre les donnes suivantes : z la valeur en cours du bit dans le bit de valeur z lancienne valeur du bit dans le bit dhistorique (au dbut de chaque cycle, le contenu du bit de valeur est copi dans le bit dhistorique) z des informations permettant de savoir si le forage de bit est actif ou non dans le bit de forage (0 = forage inactif, 1 = forage actif)
390
Pour dtecter des fronts positifs, vous devez utiliser un contact pour la dtection de fronts positifs. Dans ce contact, la liaison de droite est 1 pour un cycle de programme, si un passage de 1 0 du paramtre rel (A) associ a lieu et qu'en mme temps, l'tat de la liaison de gauche est 1. Sinon, l'tat de la liaison de droite est 0. Dans cet exemple, un front positif de la variable A doit tre dtect et de ce fait B doit tre charg pour un cycle.
A P B
A chaque fois que le bit de valeur de A est gal 1 et que le bit de l'historique est gal 0, B est rgl 1 pour un cycle (cycles 1, 4 et 9).
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
A: Bit de valeur
A: Bit dhistorique
B: Bit de valeur
391
Pour dtecter des fronts ngatifs, vous devez utiliser un contact pour la dtection de fronts ngatifs. Dans ce contact, la liaison de droite est 1 pour un cycle de programme, si un passage de 1 0 du paramtre rel boolen (A) associ a lieu et qu'en mme temps, l'tat de la liaison de gauche est 1. Sinon, l'tat de la liaison de droite est 0. Dans cet exemple, un front ngatif de la variable A doit tre dtect et de ce fait B doit tre charg pour un cycle.
A N B
A chaque fois que le bit de valeur de A est gal 0 et que le bit de l'historique est gal 1, B est rgl 1 pour un cycle (cycles 2 et 8).
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
A: Bit de valeur
A: Bit dhistorique
B: Bit de valeur
392
Forage de bits
Lors du forage de bits, la valeur des variables indique par la logique est crase par la valeur de forage. Dans cet exemple, un front ngatif de la variable A doit tre dtect et de ce fait B doit tre charg pour un cycle.
A N B
A chaque fois que le bit de valeur ou le bit de forage de A est gal 0 et que le bit de l'historique est gal 1, B est rgl 1 pour un cycle (cycles 1 et 8).
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10)
A: Bit de valeur
A: Bit de forage
A: Bit dhistorique
B: Bit de valeur
393
Perte de la dtection de fronts probablement due au forage de bobines. Dans cet exemple, lorsque A est gal 1, B doit tre gal 1 et en cas de front montant de A, la bobine B doit tre charge pour un cycle. Dans cet exemple, la variable B est d'abord affecte la bobine et ensuite au contact pour la dtection de fronts positifs.
A B
B P
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
B: Bit de valeur
B: Bit de forage
B: Bit dhistorique
C: Bit de valeur
Au dbut du second cycle, le bit de valeur de B est gal 0. Lors du forage de B pendant ce cycle, le bit de forage et le bit de valeur sont mis 1. Lors du traitement de la premire cellule de la logique dans le troisime cycle, le bit d'historique de la bobine (B) est galement rgl 1.
394
Problme : Lors de la dtection de fronts (comparaison entre le bit de valeur et le bit dhistorique) dans la deuxime cellule de la logique, aucun front ne peut tre dtect, puisque le bit de valeur et le bit dhistorique de B sont toujours identiques en raison de la mise jour dans la cellule 1. Solution : Dans cet exemple, la variable B est d'abord affecte au contact pour la dtection de fronts positifs et ensuite la bobine.
B P A B C
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
B: Bit de valeur
B: Bit de forage
B: Bit dhistorique
C: Bit de valeur
Au dbut du second cycle, le bit de valeur de B est gal 0. Lors du forage de B pendant ce cycle, le bit de forage et le bit de valeur sont mis 1. Lors du traitement de la premire ligne de la logique dans le troisime cycle, le bit d'historique de la liaison (B) reste dfini sur 0. La dtection de fronts dtecte la diffrence entre le bit de valeur et le bit dhistorique et rgle la bobine (C) 1 pour un cycle.
395
Perte de la dtection de fronts probablement due l'utilisation des bobines d'enclenchement ou de dclenchement
En prsence de variables EBOOL, l'utilisation des bobines d'enclenchement ou de dclenchement peut entraner la perte de la dtection de fronts. La variable sur la bobine d'enclenchement/de dclenchement (variable C dans l'exemple donn) est toujours influence par la valeur de la liaison gauche. Lorsque la valeur de la liaison de gauche est 1, le bit de valeur (variable C dans l'exemple donn) est copi dans le bit d'historique et est mis 1. Lorsque la valeur de la liaison de gauche est 0, le bit de valeur (variable C dans l'exemple donn) est copi dans le bit d'historique, mais sa valeur reste inchange. Ainsi, quelle que soit la valeur prise par la liaison de gauche avant la bobine d'enclenchement ou de dclenchement, le bit d'historique est toujours mis jour. Dans cet exemple, un front positif de la variable C doit tre dtect et de ce fait D doit tre charg pour un cycle.
Ligne de code 1 Comportement en LD Equivalence en ST
A = 1, B = 1, C = 1, Bit d'historique = 0 2
A B C R
A = 1, B = 1, C = 1, Bit d'historique = 1
396
Ligne de code 3
Comportement en LD
Equivalence en ST
C P
C = 1, Bit d'historique = 1 D = 0, car le bit de valeur et le bit d'historique de C sont identiques. Le front montant de C excut dans la ligne de code 1 n'est pas reconnu par le code de la ligne 2, car celui-ci exige une mise jour du bit d'historique. (Si la condition n'est pas vrifie, la valeur actuelle de C est de nouveau affecte C. Voir l'instruction ELSE dans la ligne de code 2 de l'exemple en langage ST.)
397
Les rgles suivantes s'appliquent au flux de signaux au sein d'un rseau (rung) : le flux de signaux pour les liaisons boolennes est z de la gauche vers la droite pour les liaisons boolennes horizontales et z du haut vers le bas pour les liaisons boolennes verticales. z le flux de signaux d'une liaison FFB va de la sortie FFB vers l'entre FFB, indpendamment de la direction. z un FFB n'est calcul que lorsque tous les lments (sorties FFB, etc.) qui sont relis ses entres sont calculs. z l'ordre d'excution des FFB relis diffrentes sorties du mme FFB va du haut vers le bas. z l'ordre d'excution des objets n'est pas influenc par leur position au sein du rseau. z l'ordre d'excution de FFB apparat sous forme de numro d'excution au dessus du FFB.
z
398
Priorits
Exemple
Note : Les numros d'excution de contacts et de bobines n'est pas affich. Ils n'ont t indiqus dans le graphique que pour fournir une meilleure vue d'ensemble.
399
Configuration de boucles
Boucles non permises La configuration de boucles exclusivement par le biais de liaisons nest pas permise, tant donn que, dans ce cas, une dtermination unique du flux de signaux nest pas possible (la sortie dun FFB est lentre du FFB suivant, et la sortie de celui-ci est son tour lentre du premier). Boucles non permises par le biais de liaisons :
.5 AND EN IN1 IN2 1 AND EN .6 2
ENO
ENO
400
Une telle logique doit tre rsolue par le biais de variables de raction, afin que le flux de signaux puisse tre dfini de faon unique. Les variables de raction doivent tre initialises. La valeur initiale est utilise lors de la premire excution de la logique. Une fois la premire excution effectue, la valeur initiale est remplace par la valeur actuelle. Respectez pour les deux variantes l'ordre d'excution (numro entre parenthses aprs le nom d'instance) des deux blocs. Boucle rsolue par le biais dun paramtre rel : Variante 1
.5 1 AND EN IN1 OUT1 IN2 .6 2 EN
ENO
ENO
OUT1
ENO
ENO
401
402
Situation de sortie
L'image suivante illustre deux rseaux dont l'ordre d'excution est dtermin uniquement par leur position au sein de la section, indpendamment du fait que les blocs 0,4/0,5 et 0,7/0,8 ncessitent un ordre d'excution diffrent.
.1 ADD EN 1 ENO .3 ADD EN 3 ENO A EN .4 ADD 4 ENO
.6 ADD EN 6 ENO
.7 ADD EN 7 ENO A
.8 ADD EN 8 ENO B
403
Lorsque l'on utilise une liaison au lieu d'une variable, les deux rseaux sont excuts dans l'ordre correct (voir galement Situation de sortie, p. 403).
.1 ADD EN 1 ENO ADD EN .2 ADD EN 2 ENO EN .5 ADD 8 ENO .4 .3 3 ENO A EN ADD 7 ENO
.6 ADD EN 4 ENO
.7 ADD EN 5 ENO A
.8 ADD EN 6 ENO
404
L'ordre d'excution correct peut tre obtenu en modifiant les positions des rseaux dans la section (voir galement Situation de sortie, p. 403).
.6 ADD EN 1 ENO EN .7 ADD 2 ENO A
.8 ADD EN 3 ENO B
.1 ADD EN 4 ENO ADD EN .2 ADD EN 5 ENO EN B .5 ADD 8 ENO .4 .3 6 ENO A ADD EN 7 ENO
405
La position des objets influe alors sur l'ordre d'excution uniquement si plusieurs entres (liaison gauche de contacts/bobines, entres FFB) sont relies la mme sortie de l'objet "appelant" (liaison droite de contacts/bobines, sorties FFB) (voir galement Situation de sortie, p. 403). Situation de sortie :
.1 ADD EN 3 ENO A
.2 ADD EN 4 ENO B
.3 ADD EN 11 ENO
.4 ADD EN 12 ENO E
.5 .6 ADD EN 14 ENO G
H
ADD EN
13 ENO F
Les positions du bloc 0,1 et 0,2 sont permutes dans le premier rseau. Dans ce cas (source commune des deux entres de bloc), l'ordre d'excution des deux blocs est galement permut (traitement du haut vers le bas). La mme chose s'applique pour la permutation des bobines C et D dans le deuxime rseau.
406
Les positions du bloc 0,4 et 0,5 sont permutes dans le troisime rseau. Dans ce cas (source diffrente des entres de bloc) l'ordre d'excution des deux blocs n'est pas permut (traitement dans l'ordre des sorties de bloc appeler). La mme chose s'applique pour la permutation des bobines G et H dans le dernier rseau.
.1 ADD EN 3 ENO A
.2 ADD EN 4 ENO B
.4 .6 ADD EN 14 ENO G
H
ADD EN
12 ENO F
407
408
13
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre dcrit le diagramme fonctionnel en squence SFC conforme la norme CEI-611311. Ce chapitre contient les sous-chapitres suivants :
Souschapitre 13.1 13.2 13.3 13.4 13.5 13.6 13.7 13.8 13.9 13.10 Sujet Gnralits concernant le diagramme fonctionnel en squence (SFC) Etape et macro-tape Action et section d'action Transition et section de transition Saut Liaison Divergences et convergences Objet texte Jeton unique Jetons multiples Page 411 417 427 435 441 442 443 448 449 461
409
410
13.1
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre Ce sous-chapitre vous donne un aperu gnral du diagramme fonctionnel en squence SFC. Ce sous-chapitre contient les sujets suivants :
Sujet Remarques gnrales sur le diagramme fonctionnel en squence SFC Rgles de liaison Page 412 416
411
La logique de la section peut tre commente par des objets texte (voir Objet texte, p. 448).
412
Reprsentation :
T1
S_4_2
T_4_2 Condition de transition (valeur de renvoi d'une section de transition) S_4_3 %I10.1 %I10.2 %I10.3
Divergence en OU
S_4_6
S_4_9
S_4_7 Saut
T_4_3 %I10.4 > S_4_4 S_4_7 %I10.5 Convergence en OU Condition de transition (adresse boolenne topologique)
Return_Var
413
Une section SFC est une "machine d'tats", c.--d. que l'tat est dtermin par les tapes actives et les transitions renvoient le comportement de commutation/ modification entre les tats. Les tapes et transitions sont relies les unes aux autres par des liaisons diriges. Deux tapes conscutives ne peuvent jamais tre directement relies ; elles sont toujours spares par une transition. Les volutions des tats actifs de signaux se droulent le long des liaisons diriges, et sont dclenches par la commutation dune transition. Le droulement d'une squence va dans le sens des liaisons diriges et se droule de la partie infrieure de ltape prcdente la partie suprieure de ltape suivante. Les divergences sont traites de gauche droite. Chaque tape peut compter zro ou plusieurs actions. A chaque transition est associe une condition de transition. La dernire transition de la squence est toujours relie une autre tape de la squence (par une liaison graphique ou un symbole de "saut") de manire obtenir une boucle ferme. Les squences d'tapes se droulent donc de faon cyclique.
A la cration d'une section SFC, une variable du type de donnes SFCCHART_STATE lui est automatiquement affecte. La variable ainsi cre porte toujours le nom de la section SFC correspondante. Cette variable sert affecter les blocs de commande SFC la section SFC commander.
Rgle du jeton
Le comportement d'un rseau SFC dpend largement du nombre de jetons choisis, c.--d. du nombre d'tapes actives. Un comportement univoque est possible en utilisant un seul jeton (single token). (les divergences en ET comportant un jeton actif (tape) par branche sont considres comme des jetons uniques). Ceci correspond une squence d'tapes selon la norme CEI 61131-3. Une squence d'tapes comportant un maximum d'tapes actives (jetons multiples) dfinies par l'utilisateur augmente le niveau de libert. Les limitations relatives l'obligation d'unicit et du non-blocage sont cet effet leves et doivent tre assures par l'utilisateur. Les squences d'tape jetons multiples ne sont pas conformes la norme CEI 61131-3.
414
Taille de la section
z z z z z z z z z z
Une section SFC se compose d'une fentre comportant une seule page. Cette fentre comporte une grille logique de 200 lignes et de 32 colonnes. Les tapes, transitions et sauts ont respectivement besoin dune cellule. Les divergences et convergences ne ncessitent pas de cellule propre, mais sont insres dans la cellule correspondante de l'tape ou de la transition. Chaque section SFC (avec toutes ses macrosections) peut contenir jusqu' 1024 tapes. Il est possible d'activer jusqu' 100 tapes (jetons multiples) par section SFC (avec toutes ses macrosections). Il est possible de placer manuellement jusqu' 64 tapes simultanment par section SFC (jetons multiples). Il est possible d'activer simultanment jusqu' 100 tapes par section SFC (jetons multiples). Il est possible d'affecter jusqu' 20 actions chaque tape SFC. La possibilit d'imbrication des macros, c'est--dire "macrotape dans macrotape", s'lve huit niveaux.
Conformit CEI
Pour la description de la conformit CEI du langage SFC, voir Conformit CEI (voir Conformit CEI, p. 693).
415
Rgles de liaison
Rgles de liaison Ce tableau indique les connexions que vous pouvez tablir entre les sorties d'objet et les entres d'objet :
Depuis la sortie de l'objet Etape Vers l'entre de l'objet Transition Divergence en OU Convergence en ET Transition Etape Saut Divergence en ET Convergence en OU Divergence en OU Convergence en OU Transition Etape Saut Divergence en ET Convergence en OU Divergence en ET Etape Saut Convergence en OU (uniquement pour les jetons multiples (voir Jetons multiples, p. 461)) Convergence en ET Transition Divergence en OU (uniquement pour jetons multiples (voir Jetons multiples, p. 461)) Convergence en OU
416
13.2
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Etape et macro-tape
Ce sous-chapitre dcrit les objets tape et macro-tape du diagramme fonctionnel en squence (SFC). Ce sous-chapitre contient les sujets suivants :
Sujet Etape Macrotapes et macro-sections Page 418 422
417
Etape
Types d'tape Les tapes se composent des types suivants :
Type Etape "normale"
S_1_2
Reprsentation Description Une tape devient active lorsque l'tape prcdente devient inactive (un temps de retard ventuellement dfini doit s'tre coul) et la transition situe en amont est vraie. Une tape devient gnralement inactive lorsque le temps de retard ventuellement dfini s'est coul et que la transition situe en aval est vraie. Pour les convergences en ET, toutes les tapes prcdentes doivent tre vraies Chaque tape compte zro ou plusieurs actions. Les tapes sans action sont considres comme des tapes dattente. L'tat initial d'une squence est caractris par l'tape initiale. A l'issue de l'initialisation du projet ou de la squence, l'tape initiale est active. Gnralement, aucune action n'est affecte aux tapes initiales. Pour les jetons uniques (conformes la norme CEI 61131-3), seule une tape initiale est admise par squence. Pour les jetons multiples un nombre d'tapes initiales pouvant tre dfini (de 0 100) est possible. voir Macrotape, p. 422
MS_1_1
Etape initiale
S_1_1
Macro-tape
Etape d'entre
MS_1_1_IN
Etape de sortie
MS_1_1_OUT
418
Noms d'tape
A chaque cration d'tape, un numro de proposition lui est affect. Le numro de proposition a la structure S_i_j, i tant le numro courant (interne) de la section et j reprsentant le numro d'tape courant (interne) de la section. Vous pouvez changer ces numros de proposition pour avoir une meilleure vue d'ensemble. Les noms d'tape (32 caractres maximum) doivent tre uniques dans l'ensemble du projet, c--d. qu'il ne doit pas exister d'autres tapes, variables, sections etc., ayant le mme nom. Aucune distinction nest faite entre lcriture en majuscules et en minuscules. Le nom d'tape doit rpondre aux conventions sur les noms.
Temps d'tapes
Un temps minimum et maximum de contrle ainsi qu'un temps de retard peuvent tre affects chaque tape. z Temps minimum de contrle Le temps minimum de contrle indique la dure minimale pendant laquelle ltape doit tre active. Si l'tape devient inactive avant que ce dlai ne soit coul, un message d'erreur s'affiche. En mode danimation, lerreur est de plus signale par un changement de couleur (jaune) de lobjet d'tape. Si vous n'indiquez pas de temps minimum de contrle ou que vous indiquez un temps minimum nul, un contrle de l'tape n'est pas excut. L'tat d'erreur est conserv jusqu' ce que l'tape redevienne active. z Temps maximum de contrle Le temps maximum de contrle indique la dure maximale pendant laquelle ltape doit tre normalement active. Si l'tape est toujours active lorsque ce dlai est coul, un message d'erreur apparat. En mode danimation, lerreur est de plus signale par un changement de couleur (rose) de lobjet d'tape. Si vous n'indiquez pas de temps maximum de contrle ou que vous indiquez un temps maximum nul, un contrle de l'tape n'est pas excut. L'tat d'erreur est conserv jusqu'a ce que l'tape devienne inactive. z Temps de retard Le temps de retard (palier de l'tape) indique la dure minimale pendant laquelle ltape doit tre active. Note : les dures indiques ne sont valables que pour ltape, pas pour les actions qui y sont associes. Pour celles-ci, il est possible de dfinir des temps propres.
419
Lors de la dfinition/dtermination des temps, veuillez tenir compte de la formule suivante : Temps de retard < temps minimum de contrle < temps maximum de contrle On distingue 2 possibilits d'affectation des valeurs dfinies/dtermines une tape : z saisie sous forme de libell de dure, z utilisation de la structure de donnes SFCSTEP_TIMES.
Vous pouvez affecter chaque tape une variable du type de donnes SFCSTEP_TIMES. Les lments de cette structure de donnes sont accessibles en lecture et en criture (read/write). La structure de donnes est traite comme toute autre structure de donnes, c.-d. qu'elle peut tre utilise dans des dclarations de variables et il est donc possible d'y accder dans son ensemble (p. ex. en tant que paramtre FFB). Description de la structure de donnes :
Nom de l'lment "VarName".delay "VarName".min "VarName".max Type de donnes TIME TIME TIME Signification Temps de retard Temps de contrle minimum Temps de contrle maximum
420
A chaque tape est affecte de faon implicite une variable du type de donnes SFCSTEP_STATE. Cette variable dtape porte le nom de ltape laquelle elle est affecte. Les lments de cette structure de donnes ne sont accessibles qu'en lecture (read-only). La structure de donnes ne peut pas tre utilise dans des dclarations de variables. C'est pourquoi il est impossible d'accder la structure de donnes dans son ensemble (p. ex. sous forme de paramtre FFB). Description de la structure de donnes :
Nom de l'lment "Nom d'tape" t Type de donnes TIME Signification Temps dactivation actuel dans l'tape. Lorsque l'tape est dsactive, la valeur de cet lment est maintenue jusqu' la prochaine activation de l'tape. 1: Etape active 0: Etape inactive Cet lment est une extension de la norme CEI 61131-3. 1 : dpassement par valeur infrieure du temps minimum de contrle 0 : pas de dpassement par valeur infrieure du temps minimum de contrle Dans les cas suivants, l'lment est automatiquement rinitialis : z lorsque l'tape est ractive, z lorsque la commande de squence est rinitialise, z lorsque le bouton de commande Rinitialiser erreur temporelle est activ. Cet lment est une extension de la norme CEI 61131-3. 1: Dpassement du temps de contrle maximum 0: Pas de dpassement du temps maximum de contrle Dans les cas suivants, l'lment est automatiquement rinitialis : z la sortie de l'tape, z lorsque la commande de squence est rinitialise, z lorsque le bouton de commande Rinitialiser erreur temporelle est activ.
"Nom d'tape" .x
BOOL
421
Macrotapes et macro-sections
Macrotape Les macrotapes servent appeler une macro-section et ainsi tablir une structure hirarchique des commandes d'enchanement. Reprsentation d'une macrotape :
MS_1_1
Les macrotapes ont les caractristiques suivantes : elles se positionnent en sections de "commande de squence" et en macrosections, z le nombre de macrotapes nest pas limit, z le degr d'imbrication des macrotapes l'une dans l'autre est de 8 niveaux, z chaque macrotape est affecte de manire implicite une variable du type de donnes SFCSTEP_STATE, voir Variable SFCSTEP_STATE, p. 421, z chaque macrotape peut tre affecte une variable du type de donnes SFCSTEP_TIMES, voir Variable SFCSTEP_TIMES, p. 420, z aucune action ne peut tre affecte aux macrotapes, z chaque macrotape peut tre remplace par la squence contenue dans la macro-section correspondante.
z
Les macrotapes sont une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. Etape d'entre Chaque macro-section commence par une tape d'entre. Reprsentation d'une tape d'entre :
MS_1_1_IN
Les tapes d'entre ont les caractristiques suivantes : les tapes d'entre ne peuvent tre places que dans des macro-sections, z seule une tape d'entre peut tre place par macro-section, z chaque tape d'entre est affecte de manire implicite une variable du type de donnes SFCSTEP_STATE, voir Variable SFCSTEP_STATE, p. 421, z chaque tape d'entre peut tre affecte une variable du type de donnes SFCSTEP_TIMES, voir Variable SFCSTEP_TIMES, p. 420, z des actions peuvent tre affectes des tapes d'entre.
z
422
Etape de sortie
Chaque macro-section se termine par une tape de sortie. Reprsentation d'une tape de sortie :
MS_1_1_OUT
Une tape de sortie a les caractristiques suivantes : z les tapes de sortie ne peuvent tre places que dans des macro-sections, z seule une tape de sortie peut tre place par macro-section, z AUCUNE action ne peut tre affecte aux tapes de sortie, z seul un temps de retard peut tre affect aux tapes de sortie, L'affectation de temps de contrle n'est pas possible, voir Temps d'tapes, p. 419.
423
Macro-section
Une macro-section se compose d'une squence unique, laquelle dispose en principe des mmes lments que les sections de "commande de squence" (p.ex. tapes, tape(s) initiale(s), macro-tapes, transitions, divergences, convergences etc.). De plus, chaque macro-section comporte en dbut une tape d'entre et en fin une tape de sortie. Chaque macrotape peut tre remplace par la squence contenue dans la macrosection correspondante. Ainsi les macro-sections peuvent comporter 0, 1 ou plusieurs tapes initiales, voir galement Types d'tape, p. 418. z Jeton unique z 0 tape(s) initiale(s) sont utilises dans les macro-sections si une tape initiale est dj disponible dans la section de rang hirarchique suprieur ou infrieur. z 1 tape(s) initiale(s) sont utilises dans les macro-sections si aucune tape initiale n'est disponible dans la section de rang hirarchique suprieur ou infrieur. z Jetons multiples Un maximum de 100 tapes initiales peuvent tre utilises dans chaque section (y compris toutes leurs macro-sections). Utilisation de macro-sections :
Section de squences Macro-section MS_1_1 Macro-section MS_1_2
S_1_1
ME_1_1_IN
ME_1_2_IN
MS_1_1
E_1_6
MS_1_2
E_1_11
S_1_3
E_1_7
E_1_9
ME_1_2_OUT
ME_1_1_OUT
424
Le nom des macro-sections est identique au nom de la macrotape appelante. Si le nom de la macrotape est modifi, le nom de la macro-section correspondante l'est aussi automatiquement. Une macro-section ne peut tre utilise qu'une seule fois. Excution de macrotapes Excution des macrotapes :
Phase 1 Description Une macrotape devient active lorsque la condition de transition qui la prcde est VRAIE. L'tape d'entre de la macro-section devient galement active. La squence de la macro-section est excute. La macro-tape reste active tant qu'au moins une tape de la macro-section est active. Si l'tape de sortie de la macro-section est active, la transition suivant la macrotape est valide. La macrotape devient inactive lorsque l'tape de sortie est active et donc que la condition de transition suivante est valide et que la condition de transition est VRAIE. L'tape de sortie de la macro-section devient galement inactive.
3 4
425
Noms d'tape
A chaque cration d'tape, un numro de proposition lui est affect. Signification des numros de proposition :
Type d'tape Macrotape Numro de proposition ME_i_j Signification ME = Macrotape i = numro courant (interne) de la section actuelle j = numro de macro-tape courant (interne) de la section actuelle ME = Macrotape k = numro courant (interne) de la section qui appelle l = numro de macro-tape courant (interne) dans la section qui appelle IN = tape d'entre ME = Macrotape k = numro courant (interne) de la section qui appelle l = numro de macro-tape courant (interne) dans la section qui appelle OUT = tape de sortie E = tape k = numro courant (interne) de la section qui appelle m = numro d'tape courant (interne) de la section appelante
Etape d'entre
ME_k_l_IN
Etape de sortie
ME_k_l_OUT
E_k_m
Vous pouvez changer ces numros de proposition pour avoir une meilleure vue d'ensemble. Les noms d'tape (28 caractres maximum pour les noms de macrotapes, 32 caractres maximum pour les noms d'tapes) doivent tre uniques dans l'ensemble du projet, c.--d. qu'il ne doit pas exister d'autres tapes, variables, sections (except le nom de la macro-section affecte la macrotape) etc., ayant le mme nom. Aucune distinction nest faite entre lcriture en majuscules et en minuscules. Le nom d'tape doit rpondre aux conventions sur les noms. Si le nom de la macrotape est modifi, le nom de la macro-section correspondante et des tapes qu'elle contient le sont aussi automatiquement.. Exemple : si ME_1_1 est renomm en MyStep, les noms d'tape de la macrosection sont transforms en MyStep_IN, MyStep_1, ..., MyStep_n, MyStep_OUT.
426
13.3
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Ce sous-chapitre dcrit les actions et les sections d'action du du diagramme fonctionnel en squence SFC. Ce sous-chapitre contient les sujets suivants :
Sujet Actions Sections d'action Identificateurs Page 428 430 431
427
Actions
Introduction Les actions ont les caractristiques suivantes : une action peut tre une variable boolenne (variable d'action (voir Variable d'action, p. 429)) ou une section (section d'action (voir Section d'action, p. 430)) du langage de programmation FDB, LD, IL ou ST. z il est possible daffecter aucune ou plusieurs actions une tape. Une tape laquelle aucune action n'est affecte a une fonction dattente, c.--d. quelle attend que la transition affecte soit vrifie. z si plusieurs actions sont affectes une mme tape, elles sont traites dans l'ordre de leur occurrence dans la zone de liste action. Exception : Indpendamment de leur position dans la zone de liste action, les actions comportant l'identificateur (voir Identificateurs disponibles, p. 432) P1 sont toujours traites en premier et les actions comportant l'identificateur P0 sont toujours traites en dernier. z la commande des actions est exprime par des identificateurs (voir Identificateur, p. 431). z un maximum de 20 actions peuvent tre affectes chaque tape. z la variable affecte une action peut galement tre utilise dans des actions d'autres tapes. z vous pouvez utiliser la variable d'action en lecture et en criture dans autant de sections du projet que vous dsirez (affectation multiple !). z les actions auxquelles un identificateur temporis a t affect ne peuvent tre actives qu'une seule fois. z seules les variables/adresses boolennes ou les lments boolens de variables multi-lments peuvent tre utiliss comme variable d'action. z les actions ont un nom unique. le nom de l'action est soit le nom de la variable d'action, soit le nom de la section d'action.
z
428
Variable d'action
Sont autorises comme variables d'action : z Adresse du type de donnes BOOL : Une action peut tre affecte une sortie matrielle via une adresse. Dans ce cas, l'action peut tre utilise en tant que signal de validation d'une transition, en tant que signal d'entre dans une autre section ou en tant que signal de sortie pour le matriel. z Variable simple ou lment d'une variable multi-lment du type de donne BOOL Une variable permet d'utiliser une action comme signal dentre dans une autre section : z Variable non localise Pour les variables non localises, l'action peut tre utilise en tant que signal de validation d'une transition et en tant que signal d'entre dans une autre section. z Variable localise Pour les variables localises, laction peut tre utilise comme signal de validation d'une transition, comme signal dentre dans une autre section et comme signal de sortie pour le matriel. Si vous utilisez une adresse ou une variable en tant qu'action, sa dsignation sert de nom d'action (p.ex. %Q10.4, Variable1). Si vous utilisez une section d'action en tant qu'action, le nom de section sert de nom d'action. Les noms d'action (32 caractres maximum) doivent tre uniques dans l'ensemble du projet, c.--d. qu'il ne doit pas exister d'autres transitions, variables, sections etc., ayant le mme nom. Aucune distinction nest faite entre lcriture en majuscules et en minuscules. Le nom d'action doit rpondre aux conventions sur les noms.
Noms d'action
429
Sections d'action
Introduction Pour chaque action vous pouvez crer une section d'action. Il s'agit d'une section qui contient la logique de l'action et qui est automatiquement relie l'action. Le nom de la section d'action est toujours identique au nom de l'action correspondante, voir Noms d'action, p. 429. Les langages de programmation possibles pour les sections d'action sont FBD, LD, IL et ST. Les sections d'action ont les caractristiques suivantes : elles peuvent comporter un nombre quelconque de sorties. z les appels de sous-programmes ne sont possibles dans les sections d'action que si le mode Multitoken a t activ. Note : Les sous-programmes appels ne sont pas soumis la commande de la squence, cela signifie que z l'identificateur affect la section d'action appelante n'a aucun effet sur le sous-programme, z le sous-programme reste actif, mme l'issue de la dsactivation de l'tape appelante. z les fonctions et blocs fonction ou procdures de diagnostic ne peuvent pas tre utiliss dans les sections d'action. z les sections d'action peuvent comporter de multiples rseaux. z les sections d'action appartiennent la section SFC dans laquelle elles ont t dfinies et peuvent dans cette section SFC (et toutes ses macro-sections) tre affectes un nombre quelconque d'actions. z les sections d'action auxquelles un identificateur dure a t affect ne peuvent tre actives qu'une seule fois. z les sections d'action font partie de la section SFC dans laquelle elles ont t dfinies. Si la section SFC correspondante est supprime, toutes les sections d'action de cette section SFC sont supprimes automatiquement. z les sections d'action peuvent tre appeles uniquement par des actions.
z
430
Identificateurs
Introduction A chaque connexion d'une action une tape, il faut dfinir pour l'action un identificateur dfinissant la commande de l'action.
431
Identificateurs disponibles
Non mmoris Lorsque l'tape devient active, l'action passe 1. Lorsque l'tape devient inactive, l'action tombe 0. Rinitialisation L'action dfinie dans une autre tape avec l'identificateur S prioritaire est rinitialise. En outre, il est possible d'viter l'activation de n'importe quelle action. Remarque : les identificateurs sont dclars automatiquement sans mmoire tampon. Cela signifie que leur valeur est remise zro aprs l'arrt et le redmarrage du programme, p. ex. aprs une mise hors, puis sous tension. Si vous avez besoin d'une sortie avec une mmoire tampon, utilisez les blocs fonction RS ou SR de la bibliothque de blocs standard.
432
Description Une action dfinie reste active lorsque l'tape correspondante devient inactive. L'action ne devient inactive que lorsqu'elle est rinitialise dans une autre tape de la squence en cours avec l'identificateur R. Cela signifie, par exemple, que la rinitialisation de l'action partir d'une autre section n'est pas possible. Section_1
S_1_1 S A1
S_1_2
S_1_3
A1
S_1_1 S_1_2 S_1_3
Remarque : les identificateurs sont dclars automatiquement sans mmoire tampon. Cela signifie que leur valeur est remise zro aprs l'arrt et le redmarrage du programme, p. ex. aprs une mise hors, puis sous tension. Si vous avez besoin d'une sortie avec une mmoire tampon, utilisez les blocs fonction RS ou SR de la bibliothque de blocs standard. Remarque : il est possible d'attribuer jusqu' 100 actions dont l'identificateur est S par section SFC.
433
Description Lorsque l'tape devient active, l'action le devient galement. Lorsque la dure que vous avez dfinie pour l'action est coule, l'action repasse 0, mme si l'tape est encore active. L'action passe galement 0 lorsque l'tape devient inactive. Remarque : pour cet identificateur, il faut de plus dfinir une dure du type TIME. Lorsque l'tape devient active, le temporisateur interne est lanc et lorsque le dlai dfini pour l'action est coul, l'action passe 1. Lorsque ensuite l'tape devient inactive, l'action devient galement inactive. Si l'tape devient inactive avant coulement du temps interne, l'action ne devient pas active. Remarque : pour cet identificateur, il faut de plus dfinir une dure du type TIME. Lorsque l'tape devient active, l'action passe 1 et le reste pendant un cycle de programme, indpendamment du fait que l'tape reste active ou non. Lorsque l'tape devient active, le temporisateur interne est lanc et lorsque la dure dfinie est coule, l'action devient active. L'action ne redevient inactive que lorsqu'elle est rinitialise dans une autre tape avec l'identificateur R. Si l'tape devient inactive avant coulement du temps interne, l'action ne devient pas active. Remarque : pour cet identificateur, il faut de plus dfinir une dure du type TIME. Lorsque l'tape devient active (front 0->1), l'action passe 1 et le reste pendant un cycle de programme, indpendamment du fait que l'tape reste active ou non. Remarque : Indpendamment de leur position dans la zone de liste des actions, les actions avec l'identificateur P1 sont toujours excutes en premier, voir galement Action, p. 428. Lorsque l'tape devient inactive (front 1->0), l'action passe 1 et le reste pendant un cycle de programme. Remarque : Indpendamment de leur position dans la zone de liste des actions, les actions avec l'identificateur P0 sont toujours excutes en dernier, voir galement Action, p. 428.
retard
Impulsion
DS
retard et mmoris
P1
P0
434
13.4
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Ce sous-chapitre dcrit les objets transition et les sections de transition du diagramme fonctionnel en squence SFC. Ce sous-chapitre contient les sujets suivants :
Sujet Transition Section de transition Page 436 438
435
Transition
Introduction Une transition indique la condition laquelle le contrle dune ou de plusieurs tapes prcdant la transition passe une ou plusieurs tapes subsquentes, le long de la liaison correspondante. A chaque transition est affecte une condition de transition du type de donne BOOL. Sont autoriss comme conditions de transition : une adresse (entre ou sortie), z une variable (entre ou sortie), z un libell, ou z une section de transition (voir Section de transition, p. 438).
z
Condition de transition
Position du nom
Trans_Variable
1
z Section de transition
Trans_Section
Noms de transition
Si vous utilisez une adresse ou une variable comme condition de transition, sa dsignation est utilise comme nom de transition (p. ex. %I10.4, Variable1). Si vous utilisez une section de transition comme condition de transition, le nom de section est utilis comme nom de transition. Les noms de transition (32 caractres maximum) doivent tre uniques dans l'ensemble du projet, c.--d. qu'il ne doit pas exister d'autres transitions, variables, sections etc. ( l'exception de la section de transition correspondante) ayant le mme nom. Aucune distinction nest faite entre lcriture en majuscules et en minuscules. Le nom de transition doit rpondre aux conventions sur les noms.
436
Une transition est valide lorsque les tapes qui la prcdent directement sont actives. Les transitions, dont les tapes qui les prcdent directement ne sont pas actives, ne sont normalement pas values. Note : si aucune condition de transition nest dfinie, la transition ne sera jamais active.
Le dclenchement dune transition seffectue lorsque la transition est valide et que la condition de transition correspondante est vraie. Le dclenchement dune transition entrane la dsactivation (rinitialisation) de toutes les tapes qui la prcdent directement et qui sont connectes la transition. Ensuite, toutes les tapes qui la suivent directement sont actives.
Thoriquement, le temps de dclenchement (temps de commutation) d'une transition peut tre considr comme tant le plus court possible, mais il ne peut jamais prendre la valeur zro. Le temps de dclenchement dune transition dure au moins le temps d'un cycle de programme.
437
Sections de transition
Introduction Une section de transition peut tre cre pour chaque transition. Il s'agit d'une section qui contient la logique de la condition de transition et qui est automatiquement relie la transition. Le nom de la section de transition est toujours identique au nom de la transition correspondante, voir Noms de transition, p. 436.
438
Langages de programmation
Les langages de programmation des sections de transition sont FBD , LD , IL et ST. Rseaux conseills pour les sections de transition :
Langage FBD
IN1 IN2
Rseau conseill
AND OUT T1
Description Le rseau conseill contient un bloc ET comportant 2 entres et dont la sortie boolenne est lie une variable qui porte le nom de la section de transition. Le bloc propos peut tre reli ou, si vous ne le dsirez pas, tre supprim. Le rseau propos contient une bobine relie une variable portant le nom de la section de transition. La bobine propose peut tre relie ou, si vous ne la dsirez pas, tre supprime.
LD
T1
IL
Le rseau propos est vide. Le seul contenu admis consiste en la cration d'une logique boolenne. L'affectation du rsultat logique la sortie (variable de transition) est effectue automatiquement, c--d. l'instruction mmoire ST n'est pas admise. Exemple : LD A AND B Le rseau propos est vide. Le seul contenu admis consiste crer une logique boolenne sous forme d'expression (imbrique). L'affectation du rsultat logique la sortie (variable de transition) est effectue automatiquement, c--d. l'instruction d'affectation = n'est pas admise. L'expression ne se termine pas par un point-virgule (;). Exemple : A AND B ou A AND (WORD_TO_BOOL (B))
ST
439
Les sections de transition ont les caractristiques suivantes : les sections de transition n'ont qu'une seule sortie (la variable de transition) et son type de donne est BOOL. Le nom de cette variable est identique au nom de la section de transition. z la variable de transition ne doit tre utilise en criture quune seule fois. z la variable de transition peut tre lue n'importe quelle position du projet. z seules des fonctions peuvent tre utilises et non pas des blocs fonction ni des procdures. z dans LD, seule une bobine peut tre utilise. z il nexiste qu un seul rseau, c.--d. que toutes les fonctions utilises sont relies entre elles directement ou indirectement. z les sections de transition ne peuvent tre utilises qu'une seule fois. z les sections de transition font partie de la section SFC dans laquelle elles ont t dfinies. Si la section SFC correspondante est supprime, toutes les sections de transition de ces sections SFC sont supprimes automatiquement. z les sections de transition ne peuvent tre appeles que par une transition.
z
440
13.5
Saut
Gnralits
Saut
Les sauts permettent de reprsenter des liaisons diriges qui ne sont pas traces entirement. Reprsentation d'un saut :
S_1_12
Un saut a les caractristiques suivantes : z plusieurs sauts peuvent avoir une mme tape pour cible. z selon la norme CEI 61131-3, les sauts dans une squence en ET (voir Divergence en ET et convergence en ET, p. 446) ou depuis une squence en ET ne sont pas autoriss. si vous voulez les utiliser tout de mme, vous devez les valider explicitement. z dans le cadre des sauts, on distingue les sauts de squence (voir Saut de squence, p. 452) et les boucles de squence (voir Squence en boucle, p. 453). z la cible du saut est munie du symbole du saut (>).
> S_4_7
Nom de saut
Les sauts ne possdent pas de nom en propre. Au lieu de cela, le nom de l'tape cible (cible du saut) est indiqu sur le symbole du saut.
441
13.6
Liaison
Introduction Caractristiques des liaisons
Liaison
Les liaisons relient les tapes et les transitions, les transitions et les tapes etc. Les liaisons ont les caractristiques suivantes : il est impossible d'tablir une liaison entre des objets de mme type (tape avec tape, transition avec transition, etc.). z une liaison peut tre tablie entre : z sorties d'objets non relies, et z entres d'tape non relies et relies (cela signifie que une liaison multiple d'entres d'tapes est possible). z le chevauchement entre des liaisons et d'autres objets SFC (tape, transition, saut, etc.) n'est pas possible. z les chevauchements entre liaisons sont possibles. z les croisements inter-liaisons sont possibles. Les croisements sont reprsents par une liaison interrompue.
z
z z
les liaisons se composent de segments verticaux et horizontaux. l'volution de l'tat logique dans une squence est gnralement de haut en bas. Cependant pour permettre la mise en oeuvre de boucles, les liaisons vers une tape peuvent galement se faire de bas en haut. Ceci est valable pour les liaisons de transitions, de divergences en ET et de convergences en OU vers une tape. Dans ce cas, le sens de la liaison est reprsente par une flche.
S_1_1
S_1_2
pour les liaisons, on distingue les sauts de squence (voir Saut de squence, p. 452) et les boucles de squence (voir Squence en boucle, p. 453).
442
13.7
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Divergences et convergences
Ce sous-chapitre dcrit les objets de convergence et de divergence du diagramme fonctionnel en squence SFC. Ce sous-chapitre contient les sujets suivants :
Sujet Divergence en OU et convergence en OU Divergence en ET et convergence en ET Page 444 446
443
Divergence en OU et convergence en OU
Introduction La divergence en OU permet de programmer des divergences conditions au sein du flux de contrle de la structure SFC. Dans les divergences en OU, une tape est suivie d'autant de transitions sous la ligne horizontale quil y a d'enchanements diffrents. A l'aide de convergences en OU ou de sauts (voir Saut, p. 441), toutes les branches alternatives convergent vers une branche unique dans laquelle le traitement se poursuit. Exemple d'une squence en OU Exemple d'une squence en OU :
S_5_10
S_5_11
S_5_12
S_5_13
S_5_14
S_5_16
S_5_15
g > S_5_16
444
Les caractristiques d'une squence en OU dpend en grande partie du fait que la commande de squence soit mise en oeuvre en jeton unique ou jetons multiples. Voir aussi : z Caractristiques d'une squence en OU en jeton unique (voir Squences en OU, p. 451), z Caractristiques d'une squence en OU en jetons multiples (voir Squences en OU, p. 465).
445
Divergence en ET et convergence en ET
Prsentation Avec les divergences en ET, la commutation d'une seule transition active plusieurs tapes (branches, 32 au maximum) en parallle. Elles sont excutes de gauche droite. Aprs cette activation commune, les diffrentes branches sont excutes indpendamment. Conformment la norme CEI 61131-1, toutes les branches d'une divergence en ET sont regroupes par une convergence en ET. La transition aprs une convergence en ET est value lorsque toutes les tapes immdiatement prcdentes de la convergence en ET ont t valides. Si une divergence en ET doit tre regroupe par une convergence en OU, ceci n'est possible qu'en mode jetons multiples (voir Squences en ET, p. 469). Exemple d'une squence en ET Exemple d'une squence en ET :
S_5_10
S_5_14
S_5_15
S_5_16
S_5_17
446
Voir aussi : z Caractristiques d'une squence en ET dans un jeton unique (voir Squences en OU, p. 451), z Caractristiques d'une squence en ET dans un jeton multiple (voir Squences en OU, p. 465).
447
13.8
Objet texte
Introduction
Objet texte
En langage SFC, il est possible de positionner du texte sous forme d'objets texte. La taille de cet objet texte dpend de la longueur du texte. Cet objet texte a au moins la taille d'une cellule et peut, selon la taille du texte, tre tendu sur des cellules complmentaires dans le sens vertical ou horizontal. Les objets de texte peuvent se recouvrir avec d'autres objets SFC.
448
13.9
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Jeton unique
449
450
Squences en OU
Squence en OU Selon la norme CEI 61131-3, seule une transition peut tre vraie la fois (1 parmi n choix). Le rsultat des conditions de transition dterminera quelle branche sera excute en fonction des transitions qui suivent la divergence en OU. Les transitions de la divergence sont excutes de gauche droite. Si une condition de transition est vraie, les transitions restantes ne seront plus excutes. La branche qui contient la transition remplie devient active. Il en rsulte une priorit de gauche droite pour les divergences. Si aucune des transitions n'est vraie, ltape valide ce moment-l reste valide. Squence en OU :
S_5_10
S_5_11
S_5_12
S_5_13
Si... Si S_5_10 est active et que la condition de transition a est vraie (indpendamment de b), Si S_5_10 est active, que la condition de transition b est vraie et que a) est fausse,
451
S_5_11
S_5_13
S_5_14
S_5_11
S_5_14
f S_5_13
S_5_12
S_5_12
d > S_5_13
S_5_13
Si... Si la condition de transition a est vraie, Si la condition de transition b est vraie, Si la condition de transition e est vraie,
Alors... la squence passe de S_5_10 S_5_11 puis S_5_12 et S_5_13. la squence effectue un saut direct de S_5_10 vers S_5_13. la squence passe de S_5_10 S_5_14 et S_5_13.
452
Squence en boucle
Une squence en boucle est un cas spcial de la drivation en OU pour laquelle une ou plusieurs branches reconduisent une tape prcdente. Une squence en boucle peut tre ralise avec des sauts ou avec des liaisons. Squence en boucle :
a > S_1_12
S_1_12
S_1_13
S_1_14
S_1_11
S_1_13
S_1_14
e S_1_12
S_1_15
S_1_15
Si... Si la condition de transition a est vraie, Si la condition de transition b est vraie, Si la condition de transition b est fausse et que c est vraie, Si la condition de transition f est vraie,
Alors... la squence passe de S_1_11 S_1_12. la squence passe de S_1_12 S_1_13. S_1_12 est suivie de S_1_14. S_1_14 effectue un saut en arrire vers S_5_12.
La boucle de l'tape S_1_12 via les conditions de transition c et f et le bouclage vers S_1_12 est rpte jusqu' ce que la condition de transition b soit vraie ou que c soit fausse et d vraie. Si les conditions de transition b et c sont fausses et que d est vraie, S_1_12 effectue un saut en arrire direct vers S_1_11.
La boucle de S_1_11 vers S_1_12 et retour vers S_1_11 via les conditions de transition a et d est rpte jusqu' ce que la condition de transition b ou c devienne vraie.
453
Les squences en boucle sans fin ne sont pas admises dans une squence alternative. Squence en boucle sans fin :
S_1_1 S_1_1
a > S_1_2
b > S_1_3
S_1_4
S_1_2
S_1_3
S_1_4
S_1_5
S_1_4
S_1_3
S_1_5
S_1_6
S_1_6
Si... Si la condition de transition b est vraie, Si la condition de transition e est vraie, Si la condition de transition f est vraie,
Alors... S_1_1 passe S_1_3. un saut est excut vers S_1_4. un saut est excut vers S_1_3.
La boucle de S_1_3 via la condition de transition e vers S_1_4 via la condition de transition f et le saut de retour vers S_1_3 est alors rpte sans fin.
454
Squences en ET
Squences en ET Pour les divergences en ET, la validation d'une seule transition active plusieurs tapes (branches, 32 au maximum) en parallle. Ceci est valable aussi bien pour le jeton unique que pour les jetons multiples. Excution des squences en ET :
S_5_10
S_5_14
S_5_15
S_5_16
S_5_17
Si... Si S_5_10 est active et que la condition de transition a, faisant partie de la transition commune, est galement vraie, Si les tapes S_5_11, S_5_12et S_5_13 ont t actives, Si S_5_14, S_5_15 et S_5_16 sont actives simultanment et que la condition de transition e, faisant partie de la transition commune, est vraie,
Alors... S_5_10 passe S_5_11, S_5_12 et S_5_13. les squences sont excutes indpendamment. S_5_14, S_5_15 et S_5_16 passent S_5_17.
455
Si vous utilisez une seule divergence en OU dans une squence en ET, ceci provoque le blocage de la squence dans le cas des jetons uniques. Utilisation d'une divergence en OU dans une squence en ET :
a S_7_1 S_7_2
S_7_3
S_7_4
S_7_5
S_7_6
Si... Si la condition de transition a est vraie, Si les tapes S_7_1 et S_7_2 sont actives, Si la condition de transition d est vraie, Si la condition de transition b est vraie et que c est fausse,
Alors... la squence passe S_7_1 et S_7_2. les squences sont excutes indpendamment. S_7_5 est excute. la squence passe S_7_3 est excute.
S_7_3, S_7_4 et S_7_5 tant relies par une convergence en ET, S_7_6 ne peut pas tre excute puisque S_7_3 et S_7_4 ne peuvent jamais devenir actives en mme temps. (Soit S_7_3 a t active par la condition de transition b, soit S_7_4 a t active par la condition de transition c, mais jamais les deux en mme temps.) C'est pourquoi S_7_3, S_7_4 et S_7_5 ne peuvent pas non plus devenir actives en mme temps. La squence se bloque. Le mme problme survient si lors de l'entre dans la divergence en OU la condition de transition b est fausse et c est vraie.
456
S_19_5
Si... Si la condition de transition a est vraie, Si les tapes S_19_2, S_19_3 et S_19_4 sont actives, Si la condition de transition b est vraie, Si les tapes S_19_2 et S_19_5 sont actives et que la condition de transition c est vraie,
Alors... S_19_2, S_19_3 et S_19_4 sont excutes. les squences sont excutes indpendamment. S_19_5 est excute. la squence en ET est abandonne.
457
S_19_4
S_19_5
Si... Si la condition de transition a est vraie, Si les tapes S_19_2 et S_19_3 sont actives, Si la condition de transition b est vraie, Si les tapes S_19_4 et S_19_5 sont actives, Si les tapes S_19_2, S_19_4 et S_19_5 sont actives et que la condition de transition c est vraie,
Alors... S_19_2 et S_19_3 sont excutes. les squences sont excutes indpendamment. S_19_4 et S_19_5 sont excutes. les squences sont excutes indpendamment. la squence en ET est abandonne.
458
Squences en ET imbriques
Squences en ET imbriques :
a
S_8_10
S_8_11
S_8_12
S_8_13
S_8_14
S_8_15
S_8_16
S_8_17
S_8_18
S_8_19
Si... Si la condition de transition a est vraie, Si la condition de transition b est vraie, Si la condition de transition c est vraie, Si les tapes S_8_13 et S_8_14 sont actives et que la condition de transition d est vraie, Si les tapes S_8_12 et S_8_17 sont actives et que la condition de transition e est vraie, ...
Alors... S_8_10 et S_8_11 sont excutes. S_8_12 et S_8_13 sont excutes. S_8_14, S_8_15 et S_8_16 sont excutes. S_8_17 est excute. S_8_18 est excute. ...
459
460
13.10
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Jetons multiples
Ce sous-chapitre dcrit le mode "jetons multiples" pour les commandes de squence. Ce sous-chapitre contient les sujets suivants :
Sujet Ordre d'excution jetons multiples Squences en OU Squences en ET Saut dans une squence en ET Saut hors dune squence en ET Page 462 465 469 473 475
461
462
Description
Les rgles suivantes s'appliquent aux jetons multiples : z la situation de dpart est dfinie par un nombre dfini d'tapes initiales (de 0 100). z dans la squence, vous pouvez dfinir librement un nombre d'tapes qui seront simultanment actives. z les volutions des tats de signaux actifs se produisent le long des liaisons diriges et sont dclenchs par la commutation dune ou de plusieurs transitions. La squence dune chane va dans le sens des liaisons diriges et se droule de la partie infrieure de ltape prcdente la partie suprieure de ltape suivante. z une transition est valide lorsque les tapes qui la prcdent directement sont actives. Les transitions dont les tapes qui les prcdent directement ne sont pas actives, ne sont pas values. z le dclenchement dune transition seffectue lorsque la transition est valide et que la condition de transition correspondante est vraie. z le dclenchement dune transition entrane la dsactivation (rinitialisation) de toutes les tapes qui la prcdent directement et qui sont connectes la transition. Ensuite, toutes les tapes qui la suivent directement sont actives. z lorsque plusieurs conditions de transition d'une srie d'tapes conscutives sont remplies, la scrutation est effectu une cadence d'une tape par cycle. z les tapes et macro-tapes peuvent tre actives ou dsactives par d'autres sections non SFC ou par des oprations utilisateur. z si une tape active est simultanment active et dsactive, l'tape reste active. z vous pouvez utiliser des macrotapes. Les sections de macro-tapes peuvent galement comporter des tapes initiales. z dans les divergences en OU, plusieurs branches peuvent tre actives simultanment. Le rsultat des conditions de transition des transitions qui suivent la divergence en OU dterminera quelle branche sera excute. Les transitions des branches sont excutes en parallle. Les branches dont la transition est remplie deviennent actives. Les branches en OU ne doivent pas tre regroupes leur issue par une convergence en OU ou par des sauts. z si vous voulez mettre en oeuvre des sauts vers ou depuis une branche en ET, vous pouvez valider une option correspondante. Dans ce cas, les branches en ET ne doivent pas tre regroupes leur issue par une convergence en ET. z des appels de sous-programmes peuvent tre utiliss dans une section d'action. z vous pouvez gnrer des jetons multiples l'aide des lments suivants : z tapes initiales multiples, z divergences en OU ou en ET non refermes, z sauts associs des squences en OU ou en ET, z activation d'tapes l'aide du bloc de commande SFC SETSTEP depuis une section non-SFC ou l'aide d'instructions de commande SFC. z les jetons sont termins par les actions suivantes : z rencontre simultane de deux jetons ou plus dans une mme tape,
463
dsactivation d'tapes l'aide du bloc de commande SFC RESETSTEP depuis une section non-SFC ou l'aide d'instructions de commande SFC.
464
Squences en OU
Squence en OU Dans le cas des jetons multiples, l'utilisateur peut dfinir le comportement d'valuation des conditions de transitions dans les divergences en OU. Les paramtrages possibles sont les suivants : z Excution de gauche droite avec arrt aprs la premire transition active (choix de 1 parmi n). Ceci correspond au comportement des squences en OU pour les Jetons uniques (voir Squences en OU, p. 451). z Excution en parallle de toutes les transitions de la divergence en OU (choix de x parmi n).
465
Choix de x parmi n
Pour le cas des jetons multiples, plusieurs transitions peuvent tre valides paralllement (choix de x parmi n). Le rsultat des conditions de transition dterminera quelle branche sera excute en fonction des transitions qui suivent la divergence en OU. Les transitions des branches sont toutes excutes. Toutes les branches dont la transition est remplie deviennent actives. Si aucune des transitions n'est vraie, ltape valide ce moment-l reste valide. Choix de x parmi n :
S_5_10
S_5_11
S_5_12
S_5_13
466
Si... Si S_5_10 est active et que la condition de transition a est vraie et que b est fausse, Si S_5_10 est active et que la condition de transition a est fausse et b est vraie, Si S_5_10 est active et que les conditions de transition a et b sont vraies,
Alors... S_5_10 passe S_5_11. S_5_10 passe S_5_12. S_5_10 passe S_5_11 et S_5_12.
L'activation en parallle des deux branches en OU gnre un deuxime jeton. Les deux jetons fonctionnent maintenant en parallle, c.--d. S_5_11 et S_5_12 sont actives simultanment. Jeton 1 (S_5_11) Si... Alors... Si la condition de transition c est S_5_11 passe vraie, S_5_13. Jeton 2 (S_5_12) Si... Si la condition de transition d est vraie, Alors... S_5_12 passe S_5_13.
Si S_5_13 est encore active en raison de l'activation de la condition de transition c (jeton 1), le jeton 2 s'arrte et la squence est excute nouveau en jeton unique. Si S_5_13 n'est plus active (jeton 1), elle est ractive par le jeton 2 et les deux jetons continuent tre excuts en parallle (jetons multiples).
Si vous dsirez que les divergences en OU ne soient valides que de manire exclusive dans ce mode, vous devez le dfinir explicitement dans la logique de transition. ex. :
S_5_10
NOT a
S_5_11
S_5_12
467
Si une divergence en OU est referme par une convergence en ET, ceci peut dclencher un blocage de la squence. Terminaison d'une divergence en OU par une convergence en ET :
a S_6_1
b S_6_2
S_6_1 et S_6_2 tant relies par une convergence en ET, il n'est pas possible de quitter la divergence parce que S_6_1 et S_6_2 ne peuvent jamais devenir actives en mme temps. (Soit S_6_1 a t active par la condition de transition a soit S_6_2 a t active par la condition de transition b.) C'est pourquoi S_6_1 et S_6_2 ne peuvent pas non plus devenir actives en mme temps. La squence se bloque. Ce blocage peut tre lev par ex. par un deuxime jeton dcal dans le temps, excut via la transition b.
468
Squences en ET
Squences en ET Pour les divergences en ET, la validation d'une seule transition active plusieurs tapes (branches, 32 au maximum) en parallle. Ceci est valable aussi bien pour le jeton unique que pour les jetons multiples. Excution des squences en ET :
S_5_10
S_5_14
S_5_15
S_5_16
S_5_17
Si... Si S_5_10 est active et que la condition de transition a, faisant partie de la transition commune, est galement vraie, Si les tapes S_5_11, S_5_12et S_5_13 sont actives, Si S_5_14, S_5_15 et S_5_16 sont actives simultanment et que la condition de transition e faisant partie de la transition commune est vraie,
Alors... S_5_10 passe S_5_11, S_5_12 et S_5_13. les squences sont excutes indpendamment. S_5_14, S_5_15 et S_5_16 passent S_5_17.
469
Pour les jetons multiples, il est possible de terminer les divergences en ET par une convergence en OU au lieu d'une convergence en ET. Terminaison d'une squence en ET par une divergence en OU (variante 1)
a S_5_1 S_5_2
S_5_3
Si... Si la condition de transition a est vraie, Si les tapes S_5_1 et S_5_2 sont actives, Si la condition de transition b est vraie et que c est fausse,
Alors... S_5_1 et S_5_2 sont excutes. les squences sont excutes indpendamment. S_5_3 est excute.
L'excution depuis la squence en ET via la divergence en OU gnre un deuxime jeton. Les deux jetons fonctionnent maintenant en parallle, c.--d. S_5_2 et S_5_3 sont actives simultanment. Jeton 1 (S_5_3) Si... L'tape S_5_3 est active. Alors... Jeton 2 (S_5_2) Si... L'tape S_5_2 est active. Si la condition de transition c est vraie, S_5_3 est excute. Alors...
Si S_5_3 est encore active (jeton 1), le jeton 2 s'arrte et la squence est excute nouveau en jeton unique. Si S_5_3 n'est plus active (jeton 1), elle est ractive par le jeton 2 et les deux jetons continuent tre excuts en parallle (jetons multiples).
470
S_5_2
L'excution depuis la squence en ET via la divergence en OU gnre un deuxime jeton. Les deux jetons fonctionnent maintenant en parallle, c.--d. S_5_1 et S_5_2 sont actives simultanment. Jeton 1 (S_5_2) Si... L'tape S_5_2 est active. Alors... Jeton 2 (S_5_1) Si... L'tape S_5_1 est active. Si la condition de transition b est vraie, S_5_2 est excute. Alors...
Si S_5_2 est encore active (jeton 1), le jeton 2 s'arrte et la squence est excute nouveau en jeton unique. Si S_5_2 n'est plus active (jeton 1), elle est ractive par le jeton 2 et les deux jetons continuent tre excuts en parallle (jetons multiples).
471
Si une divergence en OU est termine par une squence en ET, ceci peut dclencher un blocage de la squence. Utilisation d'une divergence en OU dans une squence en ET :
a S_7_1 S_7_2
S_7_3
S_7_4
S_7_5
Si... Si la condition de transition a est vraie, Si les tapes S_7_1 et S_7_2 sont actives, Si la condition de transition d est vraie, Si la condition de transition b est vraie,
Alors... la squence passe S_7_1 et S_7_2. les squences sont excutes indpendamment. S_7_5 est excute. la squence passe S_7_3.
S_7_3, S_7_4 et S_7_5 tant relies par une convergence en ET, il n'est pas possible de quitter la squence en ET car S_7_3 et S_7_4 ne peuvent pas devenir actives en mme temps. (Soit S_7_3 a t active par la condition de transition b ,soit S_7_4 a t active par la condition de transition c.) C'est pourquoi S_7_3, S_7_4 et S_7_5 ne peuvent pas non plus devenir actives en mme temps. La squence se bloque. Ce blocage peut tre lev p.ex. par un deuxime jeton dcal dans le temps, excut via la transition c.
472
473
S_1_3
S_1_1
Si... Si la condition de transition a est vraie, Si les tapes S_1_1 et S_1_2 ont t actives,
Alors... S_1_1 et S_1_2 sont excutes. les squences sont excutes indpendamment.
Si S_1_2 est active et que la condition de transition b est la squence passe de S_1_2 S_1_3. vraie, Si S_1_1 et S_1_3 sont actives et que la condition de transition c, de la transition commune est vraie, Si S_1_1 peut tre active par le saut, S_1_1 et S_1_3 sont excutes puis sautent vers S_1_1. seule la branche de S_1_1 devient active. La branche de S_1_2 ne devient pas active.
S_1_1 et S_1_3 ne devenant pas actives en mme temps, la squence ne peut pas continuer. Elle reste bloque. Ce blocage peut tre lev p. ex. par un deuxime jeton dcal dans le temps qui ractive l'tape S_1_2.
474
475
b S_2_3
S_2_3
S_2_4
S_2_5
Si... Si les tapes S_2_1 et S_2_2 ont t actives, Si la condition de transition c est vraie,
Alors...
Si la condition de transition a est vraie et que b est fausse, S_2_1 et S_2_2 sont excutes. les squences sont excutes indpendamment. un saut est excut vers S_2_3.
Le saut depuis la squence en ET gnre un deuxime jeton. Les deux jetons oprent maintenant en parallle, c.--d. S_2_1 et S_2_3 sont actives simultanment. Jeton 1 (S_2_1) Si... Alors... Si la condition de transition e est la squence passe vraie, S_2_5. Jeton 2 (S_2_3) Si... Alors... Si la condition de transition d la squence passe S_2_4. est vraie, Si la condition de transition f la squence passe S_2_5. est vraie, Si S_2_5 est encore active en raison de l'activation de la condition de transition e (jeton 1), le jeton 2 s'arrte et la squence est excute nouveau en jeton unique. Si S_2_5 n'est plus active (jeton 1), elle est ractive par le jeton 2 et les deux jetons continuent tre excuts en parallle (jetons multiples).
476
S_4_3
S_4_1
Si... Si la condition de transition a est vraie, Si les tapes S_4_1 et S_4_2 sont actives, Si la condition de transition b est vraie, Si la condition de transition c est vraie,
Alors... la squence passe par S_4_1 et S_4_2. les squences sont excutes indpendamment. S_4_3 est excute. un saut est excut vers S_4_1.
Le saut depuis une branche d'une squence en ET gnre un deuxime jeton. Les deux jetons oprent maintenant en parallle, c.-d. S_4_3 et S_4_1 sont maintenant actives en mme temps. Jeton 1 (S_4_3) Si... l'tape S_4_3 est excute Alors... Jeton 2 (S_4_1) Si... l'tape S_4_1 est excute Si la condition de transition b est vraie, S_4_3 est excute. Alors...
Si lors de l'activation par le jeton 2, l'tape S_4_3 est encore active (jeton 1), le jeton 2 s'arrte et la squence est excute nouveau en jeton unique. Si lors de l'activation par le jeton 2, l'tape S_4_3 n'est plus active (jeton 1), elle est ractive par le jeton 2 et les deux jetons continuent tre excuts en parallle (jetons multiples). Dans les deux cas, vous quittez la squence en ET si la condition de transition d est vraie.
477
S_3_4
S_3_5
S_3_6
478
Si... Si la condition de transition a est vraie, Si les tapes S_3_1 et S_3_2 sont actives, Si la condition de transition b est fausse et que c est vraie,
Alors... S_3_1 et S_3_2 sont excutes. les squences sont excutes indpendamment. la squence passe S_3_5.
L'excution depuis la squence en ET via la divergence en OU gnre un deuxime jeton. Les deux jetons fonctionnent maintenant en parallle, c.--d. S_3_1 et S_3_5 sont actives simultanment. Jeton 1 (S_3_1) Si... Alors... Jeton 2 (S_3_5) Si... Alors...
S_3_4 ne pouvant devenir active, S_3_1 (jeton 1) reste active. Si la condition de transition d la squence passe est vraie, S_3_6. Si la condition de transition a est vraie, S_3_1 et S_3_2 sont excutes. Le jeton 2 est alors arrt et la squence est nouveau excute comme jeton unique. Si la condition de transition a est vraie, S_3_1 et S_3_2 sont excutes. Si la condition de transition b est vraie et que c est fausse, S_3_4 est excute.
S_3_4 ne pouvant devenir active, S_3_1 (jeton 1) reste active jusqu' ce que la squence par S_3_2 (jeton 2) et la transition b soit excute. Si S_4_4 n'est plus active (jeton 1), elle est ractive par le jeton 2 et les deux jetons continuent tre excuts en parallle (jetons multiples). (La convergence des deux jetons peut dj tre ralise dans S_4_3).
479
480
14
Prsentation
Objet de ce souschapitre Contenu de ce chapitre Ce chapitre dcrit le langage de programmation Liste d'instructions IL conforme la norme CEI 61131. Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet 14.1 14.2 Remarques gnrales sur le langage liste dinstructions IL Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures Page 482 506
481
14.1
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre Ce sous-chapitre vous donne un aperu gnral du langage liste dinstructions IL.
482
Instructions
START : LD ANDN ST
Modificateur
483
IL est un langage de programmation dit orient accumulateur, ce qui signifie que chaque instruction utilise ou modifie le contenu de laccumulateur (une sorte de mmoire temporaire). CEI 61131 dsigne cet accumulateur comme "rsultat". Pour cette raison, une liste d'instructions doit toujours commencer par l'oprande LD ("Charger en commande accumulateur"). Exemple daddition :
Commande LD 10 ADD 25 ST A Signification La valeur 10 charge dans l'accumulateur. Le contenu de laccumulateur est additionn 25. Le rsultat est stock dans la variable A. Le contenu de la variable A et de l'accumulateur est dsormais 35. Toute nouvelle instruction fonctionnera avec le contenu de l'accumulateur "35" si elle ne commence pas avec LD.
Les oprations de comparaison se rapportent aussi toujours laccumulateur. Le rsultat boolen de la comparaison est stock dans laccumulateur et devient ainsi son contenu actuel. Exemple de comparaison :
Commande LD B GT 10 ST A Signification La valeur B est charge dans l'accumulateur. Le contenu de laccumulateur est compar 10. Le rsultat de la comparaison est stock dans la variable A. Si B est infrieur ou gal 10, la valeur de la variable A et du contenu de l'accumulateur est 0 (FALSE). Si B est suprieur 10, la valeur de la variable A et du contenu de l'accumulateur est 1 (TRUE).
Taille de la section
La taille d'une ligne d'instruction est limite 300 caractres. La longueur d'une section IL n'est pas limite au sein de l'environnement de programmation. La longueur d'une section IL n'est limite que par la taille de la mmoire de lautomate.
484
Syntaxe
Les identificateurs et les mots-cls ne sont pas sensibles la casse. Les caractres despacement et de tabulation nont aucune influence sur la syntaxe et ils peuvent tre utiliss librement. Exception : Les caractres d'espacement et de tabulation ne sont pas autoriss dans : z les mots-cls, z les valeurs littrales, z les valeurs, z les identificateurs, z les variables et z combinaisons du limiteur [par ex., (* pour commentaires)].
Ordre d'excution
L'excution des instructions s'effectue ligne par ligne, du haut vers le bas. Cette suite de caractres peut tre modifie par mise entre parenthses. Si, par exemple, A, B, C et D ont les valeurs 1, 2, 3 et 4, et sont calcules comme suit : LD A ADD B SUB C MUL C ST E le rsultat dans E sera 0. Pour un calcul tel que : LD A ADD B SUB( LD C MUL D ) ST E le rsultat dans E sera -9.
Les conditions suivantes seront traites comme des erreurs lors de l'excution d'une expression, par exemple : z tentative de division par 0. z les oprandes n'ont pas le type de donnes correct pour l'opration. z le rsultat d'une opration numrique dpasse la plage de valeurs de son type de donnes.
485
Conformit CEI
Pour la description de la conformit CEI du langage IL, voir Conformit CEI (voir Conformit CEI, p. 693).
486
Oprandes
Prsentation Les oprateurs sont utiliss sur les oprandes. Un oprande peut tre : z une adresse, z un libell, z une variable, z une variable multi-lments, z un lment dune variable multi-lments, z une sortie EFB/DFB ou z un appel d'EFB/de DFB. Types de donnes Loprande et le contenu actuel de laccumulateur doivent obligatoirement avoir le mme type de donnes. Si des oprandes de diffrents types de donnes doivent tre traits, une conversion de types doit obligatoirement tre effectue auparavant. Dans lexemple, la variable Integer i1 est convertie en une variable Real, avant dtre ajoute la variable Real r4. LD i1 INT_TO_REAL ADD r4 ST r3 Comme exception cette rgle, des variables du type de donnes TIME peuvent tre multiplies par des variables du type de donnes INT, DINT, UINT ou UDINT ou divises par ces dernires. Oprations autorises : z LD timeVar1 DIV dintVar1 ST timeVar2 z LD timeVar1 MUL intVar1 ST timeVar2 z LD timeVar1 MUL 10 ST timeVar2 Cette fonction est considre comme " indsirable " par la norme CEI 61131-3.
487
Les adresses peuvent tre utilises directement (sans dclaration pralable). Dans ce cas, le type de donnes est directement affect l'adresse. L'affectation a lieu via le "prfixe de taille". Le tableau suivant indique les diffrents prfixes de taille.
Prfixe de taille Exemple / Symbole pas de prfixe X B W D F %I10, %CH203.MOD, %CH203.MOD.ERR %MX20 %QB102.3 %KW43 %QD100 %MF100 Type de donnes BOOL BOOL BYTE INT DINT REAL
Si dautres types de donnes doivent tre affects en tant que types de donnes par dfaut d'une adresse, cela doit faire lobjet dune dclaration explicite. L'diteur de variables facilite la dclaration de ces variables. Il n'est pas possible de dclarer directement le type de donnes d'une adresse dans une section ST (par exemple la dclaration AT %MW1 : UINT ; non permise). Exemple : les variables ci-dessous sont dclares dans l'diteur de variables. UnlocV1 : ARRAY [1..10] OF INT; LocV1 : ARRAY [1..10] OF INT AT %MW100; LocV2 : TIME AT %MW100; Les appels ci-dessous sont donc corrects du point de vue de la syntaxe : %MW200 := 5; LD LocV1[%MW200] ST UnlocV1[2] LD t#3s ST LocV2
Lors dun accs aux valeurs dun tableau (ARRAY), seuls les libells et les variables du type INT, DINT, UINT et UDINT sont autoriss pour lindex. L'index d'un lment ARRAY peut tre ngatif si la limite infrieure de la plage est ngative. Exemple : enregistrement dune valeur dun tableau LD var1[i] ST var2.otto[4]
488
Modificateur
Prsentation Tableau des modificateurs Les modificateurs influencent lexcution de loprateur (voir Oprateurs, p. 491). Tableau des modificateurs :
Modificateur Applicable sur les Description oprandes du type de donnes N BOOL, BYTE, WORD, DWORD Le modificateur N est utilis pour inverser bit bit la valeur dun oprande. Exemple : Dans l'exemple C est gal 1, si A est gal 1 et B est gal 0. LD A ANDN B ST C Le modificateur C est utilis pour excuter linstruction associe, si la valeur de laccu est 1 (TRUE). Exemple : Dans l'exemple, le saut aprs START est realize uniquement lorsque A est gal 1 (TRUE) et B 1 (TRUE). LD A AND B JMPC START Si le modificateur C est combin avec le modificateur N, l'instruction associe est excute seulement si la valeur de l'accumulateur est un 0 boolen (FALSE). Exemple : Dans l'exemple, le saut vers START est excut seulement si A est 0 (FALSE) et B est 0 (FALSE). LD A AND B JMPCN START
BOOL
CN
BOOL
489
Modificateur Applicable sur les Description oprandes du type de donnes ( toutes Le modificateur Parenthse gauche ( est utilis pour repousser lvaluation de loprande, jusqu ce que loprateur Parenthse droite ) apparaisse. Le nombre d'oprations Parenthse droite doit tre gal au nombre de modificateurs Parenthse gauche. Il est possible dimbriquer les parenthses. Exemple : Dans l'exemple, E a pour valeur 1, si C et/ou D sont dfinis sur 1 et si A et B ont aussi la valeur 1. LD A AND B AND( C OR D ) ST E Lexemple peut tre programm de la faon suivante : LD A AND B AND( LD C OR D ) ST E
490
Oprateurs
Prsentation Un oprateur est un symbole pour : z une opration arithmtique excuter, z une opration logique excuter ou z l'appel d'un bloc fonction lmentaire, d'un DFB ou d'un sous-programme. Les oprateurs sont gnriques, ce qui signifie quils sadaptent automatiquement au type de donnes de loprande.
491
Oprateur Modificateur Signification N (uniquement pour les oprandes du type de donnes BOOL, BYTE, WORD ou DWORD) Charge la valeur de loprande dans laccumulateur
Oprandes Valeur littrale, variable, adresse directe avec type de donnes quelconque
Description Avec LD, la valeur d'un oprande est charge dans laccumulateur. Les donnes de laccumulateur sadaptent automatiquement au type de donnes de loprande. Cela s'applique galement aux types de donnes drivs. Exemple : Dans l'exemple donn, la valeur de A est charge dans l'accumulateur, ajoute la valeur de B, puis le rsultat est enregistr dans E. LD A ADD B ST E Avec ST, la valeur actuelle de laccumulateur est enregistre dans loprande. Le type de donnes de loprande doit correspondre au type de donnes de laccumulateur. Exemple : Dans l'exemple donn, la valeur de A est charge dans l'accumulateur, ajoute la valeur de B, puis le rsultat est enregistr dans E. LD A ADD B ST E Le fait que ST soit suivi d'un LD ou pas dtermine si l'on continue travailler avec le rsultat antrieur. Exemple : Dans l'exemple donn, la valeur de A est charge dans l'accumulateur, ajoute la valeur de B, puis le rsultat est enregistr dans E. Ensuite la valeur de B est dduite de la valeur de E (contenu actuel de l'accumulateur) et le rsultat est enregistr dans C. LD A ADD B ST E SUB 3 ST C
ST
N (uniquement pour les oprandes du type de donnes BOOL, BYTE, WORD ou DWORD)
Variable, adresse Enregistre la directe avec type de valeur de laccumulateur donnes au choix dans loprande.
492
Oprandes
Description S permet de dfinir loprande sur 1 lorsque le contenu de laccumulateur actuel est un 1 boolen. Exemple : Dans cet exemple, la valeur de A est charge dans l'accumulateur. Si le contenu de l'accumulateur (valeur de A) est 1, alors OUT est dfini sur 1. LD A S OUT Cet oprande est habituellement utilis avec loprateur de rinitialisation R. Exemple : L'exemple montre un retournement RS (rinitialisation dominante) command via les deux variables boolennes A et C. LD A S OUT LD C R OUT R permet de dfinir loprande sur 0 lorsque le contenu actuel de laccumulateur est un 1 boolen. Exemple : Dans cet exemple, la valeur de A est charge dans l'accumulateur. Si le contenu de l'accumulateur (valeur de A) est 1, alors OUT est dfini sur 0. LD A R OUT Cet oprande est habituellement utilis avec loprateur de paramtrage S. Exemple : L'exemple montre un retournement SR (paramtrage dominant) command via les deux variables boolennes A et C. LD A R OUT LD C S OUT
Dfinit Variable, adresse loprande sur directe du type de 1 si le contenu donnes BOOL de laccumulateur est 1.
Dfinit Variable, adresse loprande sur directe du type de 0 si le contenu donnes BOOL de laccumulateur est 1.
493
Oprateurs logiques
AND N, N(, (
OR
N, N(, (
OU logique
Valeur littrale, variable, adresse directe du type de donnes BOOL, BYTE, WORD ou DWORD
494
Oprandes Valeur littrale, variable, adresse directe du type de donnes BOOL, BYTE, WORD ou DWORD
Description L'oprateur XOR tablit une liaison OU exclusif logique entre le contenu de laccumulateur et loprande. Si plus de deux oprandes sont relis, le rsultat de lopration est ltat 1 pour un nombre impair d'tats 1 et ltat 0 pour un nombre pair dtats 1. Pour les types de donnes BYTE, WORD et DWORD, la liaison est effectue par bit. Exemple : Dans l'exemple, D est gal 1 si A ou B est dfini sur 1. Si A et B ont le mme tat (tous deux 0 ou 1), D est gal 0. LD A XOR B ST D Si plus de deux oprandes sont relis, le rsultat de lopration est ltat 1 pour un nombre impair d'tats 1 et ltat 0 pour un nombre pair dtats 1. Exemple : Dans l'exemple, F a pour valeur 1 si 1 ou 3 oprandes sont dfinis sur 1. F a pour valeur 0 si 0, 2 ou 4 oprandes sont dfinis sur 1. LD A XOR B XOR C XOR D XOR E ST F NOT permet d'inverser le contenu de l'accumulateur par bit. Exemple : Dans l'exemple donn, B aura pour valeur 1, si A est sur 0 et B a pour valeur 0, si A est sur 1. LD A NOT ST B
NOT
495
Oprateurs arithmtiques
ADD (
SUB
Soustraction
Valeur littrale, variable, adresse directe du type de donnes INT, DINT, UINT, UDINT, REAL ou TIME
MUL
Multiplication
Valeur littrale, variable, adresse directe du type de donnes INT, DINT, UINT, UDINT ou REAL
DIV
Division
Valeur littrale, variable, adresse directe du type de donnes INT, DINT, UINT, UDINT ou REAL
496
Oprandes Valeur littrale, variable, adresse directe du type de donnes INT, DINT, UINT ou UDINT
Description MOD permet de diviser la valeur du premier oprande par la valeur du deuxime et de sortir le reste de la division (modulo) comme rsultat. Exemple : Dans l'exemple donn, z C aura pour valeur 1, si A est gal 7 et B 2 z C aura pour valeur 1, si A est gal 7 et B -2 z C aura pour valeur -1, si A est gal -7 et B 2 z C aura pour valeur -1, si A est gal -7 et B -2 LD A MOD B ST C
497
Oprateurs de comparaison
GT (
Comparaison : Valeur littrale, > variable, adresse directe du type de donnes BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT ou TOD
GE
Comparaison : Valeur littrale, >= variable, adresse directe du type de donnes BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT ou TOD
EQ
Comparaison : Valeur littrale, = variable, adresse directe du type de donnes BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT ou TOD
498
Oprandes
Description NE permet de comparer le contenu de laccumulateur au contenu de loprande. Si le contenu de l'accumulateur n'est pas gal celui de l'oprande, le rsultat est un 1 boolen. Si le contenu de l'accumulateur est gal celui de l'oprande, le rsultat est un 0 boolen. Exemple : Dans l'exemple donn, la valeur de D est 1, si A n'est pas gal 10. Dans le cas contraire, la valeur de D est 0. LD A NE 10 ST D LE permet de comparer le contenu de laccumulateur au contenu de loprande. Si le contenu de l'accumulateur est infrieur ou gal celui de l'oprande, le rsultat est un 1 boolen. Si le contenu de l'accumulateur est suprieur celui de l'oprande, le rsultat est un 0 boolen. Exemple : Dans l'exemple donn, la valeur de D est 1, si A est infrieur ou gal 10. Dans le cas contraire, la valeur de D est 0. LD A LE 10 ST D LT permet de comparer le contenu de laccumulateur au contenu de loprande. Si le contenu de l'accumulateur est infrieur celui de l'oprande, le rsultat est un 1 boolen. Si le contenu de l'accumulateur est suprieur ou gal celui de l'oprande, le rsultat est un 0 boolen. Exemple : Dans l'exemple donn, la valeur de D est 1, si A est infrieur 10. Dans le cas contraire, la valeur de D est 0. LD A LT 10 ST D
Comparaison : Valeur littrale, <> variable, adresse directe du type de donnes BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT ou TOD
LE
Comparaison : Valeur littrale, <= variable, adresse directe du type de donnes BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT ou TOD
LT
Comparaison : Valeur littrale, < variable, adresse directe du type de donnes BOOL, BYTE, WORD, DWORD, STRING, INT, DINT, UINT, UDINT, REAL, TIME, DATE, DT ou TOD
499
Oprateurs d'appel
CAL
Oprateur Modificateur Signification C, CN (uniquement si le contenu de l'accumulate ur est du type de donnes BOOL) Appel dun bloc fonction, dun DFB ou d'un sousprogramme
NOM_DE_F ONCTION
Valeur littrale, variable, adresse directe (le type de donnes dpend de la fonction) Valeur littrale, variable, adresse directe (le type de donnes dpend de la procdure)
Le nom de fonction vous permet dexcuter une fonction. Voir galement Appel de fonctions lmentaires, p. 507 Le nom de procdure vous permet dexcuter une procdure. Voir galement Procdures d'appel, p. 527
NOM_DE_P ROCEDURE
500
Oprateurs de structuration
JMP
Oprateur Modificateur Signification Saut vers C, CN (uniquement l'tiquette si le contenu de l'accumulate ur est du type de donnes BOOL) C, CN (uniquement si le contenu de l'accumulate ur est du type de donnes BOOL)
RET
Aprs leur traitement, chaque sous-programme et chaque DFB (bloc fonction driv) est ferm, c'est--dire qu'un retour est effectu dans le programme principal appelant. Si le sous-programme/DFB est quitt prmaturment, le retour au programme principal appelant peut tre forc via l'objet RET (return, retour). RET peut uniquement tre utilis dans les sousprogrammes ou les DFB. Il est impossible de l'utiliser dans le programme principal. La parenthse droite ) permet de lancer ldition de loprateur en attente. Le nombre d'oprations Parenthse droite doit tre gal au nombre de modificateurs Parenthse gauche. Il est possible dimbriquer les parenthses. Exemple : Dans l'exemple donn, E aura pour valeur 1, si C et/ou D sont 1, et si A et B ont aussi la valeur 1. LD A AND B AND( C OR D ) ST E
501
Appel de sous-programme
Appeler un sousprogramme En IL, l'appel d'un sous-programme se compose de l'oprateur CAL, suivi du nom de la section de sous-programme, puis d'une liste de paramtres vide (facultative). Les appels de sous-programmes ne fournissent pas de valeurs de retour. Le sous-programme appeler doit se trouver dans la mme tche que la section IL appelante. Il est possible d'appeler des sous-programmes au sein de sous-programmes. par exemple: ST A CAL SubroutineName () LD B ou ST A CAL SubroutineName LD B Les appels de sous-programmes sont un complment de la norme CEI 61131-3 et doivent tre activs de manire explicite. Dans les sections d'actions SFC, les appels de sous-programmes ne sont autoriss que si le mode Multitoken a t activ.
502
Libells et sauts
Prsentation Proprits des libells : Les libells servent de cible atteindre pour les sauts. Proprits des tiquettes : z les tiquettes doivent toujours tre le premier lment dune ligne. z les tiquettes doivent tre uniques dans toute la section, on ne fait pas de distinction ici entre majuscules et minuscules. z la longueur maximale dun tiquette est de 32 caractres. z Les libells doivent satisfaire aux conventions de dsignation CEI. z les tiquettes sont spars par deux points : de la commande suivante. z Les libells doivent se trouver au dbut des "expressions" car uniquement des valeurs non-dfinies peuvent se trouver dans l'accumulateur. Exemple : start: LD A AND B OR C ST D JMP start Proprits des sauts z L'opration JMP excute un saut avec ou sans conditions vers un libell. z JMP peut tre utilis avec les modificateurs C et CN (uniquement quand le contenu d'accumulateur actuel est du type de donnes BOOL). z Les sauts sont possibles au sein des sections de DFB et de programme. z Les sauts ne sont possibles quau sein dune mme section. Des destinations de saut possibles sont : z la premire instruction LD dun appel d'EFB/de DFB avec affectation de paramtres dentre (voir start2), z une instruction LD "normale" (voir start1), z une instruction CAL ne travaillant pas avec l'affectation de paramtres dentre (voir start3), z une instruction JMP (voir start4), z la fin dune liste dinstructions (voir start5).
503
Exemple
start2: LD A ST counter.CU LD B ST counter.R LD C ST counter.PV CAL counter JMPCN start4 start1: LD A AND B OR C ST D JMPC start3 LD A ADD E JMP start5 start3: CAL counter ( CU:=A R:=B PV:=C ) JMP start1 LD A OR B OR C ST D start4: JMPC start1 LD C OR B start5: ST A
504
Commentaire
Description Dans lditeur IL, les commentaires commencent par la chane de caractres (* et se terminent par la chane de caractres *). Vous pouvez entrer un commentaire quelconque entre ces deux chanes de caractres. Selon la norme CEI 61131-3, il n'est pas possible d'imbriquer des commentaires. Toutefois, si des commentaires sont imbriqus, ils doivent tre activs de manire explicite.
505
14.2
Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures dans le langage de programmation IL. Ce sous-chapitre contient les sujets suivants :
Sujet Appel de fonctions lmentaires Appel de blocs fonction lmentaires et de blocs fonction drivs Procdures d'appel Page 507 513 527
506
507
Paramtres
Pour importer des valeurs dans une fonction ou exporter des valeurs d'une fonction, on a besoin "d'entres" et d'une "sortie". Elles sont appeles paramtres formels. Les tats actuels du processus sont transmis aux paramtres formels. Ces objets sont appels paramtres rels. Pour les entres de fonction, on peut utiliser un paramtre rel de type : variable z adresse z valeur littrale
z
Pour les sorties de fonction, on peut utiliser un paramtre rel de type : z variable z adresse Le type de donnes du paramtre rel doit correspondre au type de donnes du paramtre formel. La seule exception concerne les paramtres formels gnriques dont le type de donnes est dtermin par le paramtre rel. De plus, pour les paramtres formels gnriques du type de donnes ANY_BIT, des paramtres rels du type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre utiliss. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc tre active de manire explicite. Exemple : Autoris : AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2) Non autoris : AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2) (Dans ce cas, il faut utiliser AND_INT.) AND_ARRAY_WORD (ArrayInt, ...) (Dans ce cas, un changement de type explicite doit tre effectu via INT_ARR_TO_WORD_ARR (...).)
508
Pour l'appel formel, il n'est en principe pas ncessaire d'affecter une valeur tous les paramtres formels. Pour connatre les types de paramtre formel pour lesquels cela est cependant impratif, veuillez vous reporter au tableau.
Type de paramtre EDT Entre VAR_IN_OUT Sortie + / + STRING + ARRAY + + ANY_ARRAY IODDT + + + + STRUCT FB + + + / / ANY + + -
Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise lors de lexcution de la fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Remarques sur la programmation Veuillez tenir compte des remarques qui suivent sur la programmation : z Les fonctions ne sont excutes que lorsque lentre EN = 1 ou lorsque lentre EN est dsactive (voir galement EN et ENO, p. 512). z Toutes les fonctions gnriques sont surcharges. Cela signifie que les fonctions peuvent tre appeles avec ou sans la saisie du type de donnes. Par ex. LD i1 ADD i2 ST i3 est identique LD i1 ADD_INT i2 ST i3 z Contrairement au langage ST, les fonctions ne peuvent pas tre imbriques dans le langage IL. z Il existe deux faons d'appeler une fonction : z appel formel (appel d'une fonction avec les noms des paramtres formels) z appel informel (appel d'une fonction sans les noms des paramtres formels).
509
Appel formel
Avec ce type d'appel (appel avec les noms des paramtres formels), les fonctions sont appeles via une suite d'instructions qui comprend le nom de la fonction suivi d'une liste entre parenthses des affectations de valeur (paramtres rels) aux paramtres formels. Lordre dnumration des paramtres formels n'est pas important. La liste des paramtres rels peut tre dite directement aprs une virgule. Aprs l'excution de la fonction, le rsultat est charg dans l'accumulateur et peut tre sauvegard via ST. Il est possible d'utiliser EN et ENO avec ce type d'appel. Appel d'une fonction avec les noms des paramtres formels : Nom de la fonction Paramtres formels LIMIT (MN:=0, IN:=var1, MX:=var2) ST out Paramtres rels (entres) Paramtre rel (sortie) ou LIMIT ( MN:=0, IN:=var1, MX:=var2 ) ST out Appel de la mme fonction dans FBD :
LIMIT 0 var1 var2 MN IN MX
OUT
out
Lors d'un appel formel, il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir galement Paramtres, p. 508). LIMIT (MN:=0, IN:=var1) ST out Appel de la mme fonction dans FBD :
LIMIT 0 var1 MN IN MX
OUT
out
510
Appel informel
Avec ce type d'appel (appel sans les noms des paramtres formels), les fonctions sont appeles via une suite d'instructions qui comprend le chargement du premier paramtre rel dans l'accumulateur suivi du nom de la fonction, lui-mme suivi d'une liste optionnelle des paramtres rels. Lordre dnumration des paramtres rels est important. La liste des paramtres rels ne peut pas tre dite. Aprs l'excution de la fonction, le rsultat est charg dans l'accumulateur et peut tre sauvegard via ST. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'une fonction avec les noms des paramtres formels : Paramtre rel Nom de la fonction LD A LIMIT B,C ST result Paramtres rels Rsultat de la fonction Appel de la mme fonction dans FBD :
LIMIT A B C MN IN MX
OUT
result
Note : Veuillez noter que pour l'appel informel, la liste des paramtres rels ne doit pas tre mise entre parenthses. La norme CEI 61133-3 exige dans ce cas d'enlever les parenthses, afin d'indiquer que le premier paramtre rel ne fait pas partie de la liste. Appel informel non valide d'une fonction : LD A LIMIT (B,C) Si la valeur traiter (premier paramtre rel) se trouve dj dans laccumulateur, linstruction de chargement nest plus ncessaire. Rsultat LIMIT B,C ST Si le rsultat doit tre directement utilis, linstruction de sauvegarde nest plus ncessaire : LD A LIMIT_REAL B,C MUL E
511
Si la fonction excuter na quune seule entre, le nom de la fonction nest pas suivi dune liste de paramtres rels. Appel d'une fonction avec un paramtre reel : Paramtre rel Nom de la fonction LD A SIN ST result Rsultat de la fonction Appel de la mme fonction dans FBD :
SIN A IN
OUT
result
EN et ENO
Pour toutes les fonctions, une entre EN et une sortie ENO peuvent tre configures. Si la valeur dEN est gale "0", lorsque la fonction est appele, les algorithmes dfinis par cette dernire ne sont pas excuts et ENO est mis "0" . Si la valeur dEN est gale "1", lorsque la fonction est appele, les algorithmes dfinis par la fonction sont excuts. Aprs l'excution sans erreur de ces algorithmes, ENO est mis "1". Si une erreur se produit durant lexcution de ces algorithmes, ENO est mis "0". Si ENO est mis "0" (en raison de EN = 0 ou d'une erreur d'excution), la sortie de la fonction est mise "0". Le comportement de sortie de la fonction est le mme, que la fonction ait t appele sans EN/ENO ou avec EN = 1. Si EN/ENO doivent tre utiliss, l'appel de la fonction doit tre excut sous forme d'appel formel. LIMIT (EN:=1, MN:=0, IN:=var1, MX:=5, ENO=>var2) ST out Appel de la mme fonction dans FBD :
LIMIT 1 0 var1 5 EN MN IN MX ENO
OUT
var2 out
512
513
Paramtre
Pour importer des valeurs dans un bloc fonction ou les exporter d'un bloc fonction, des entres et des sorties sont ncessaires. Elles sont appeles paramtres formels. Les tats actuels du processus sont transmis aux paramtres formels. Ces tats sont appels paramtres rels. Pour les entres de bloc fonction, on peut utiliser un paramtre rel de type : variable z adresse z valeur littrale
z
Pour les sorties de bloc fonction, on peut utiliser un paramtre rel de type : z variable z adresse Le type de donnes du paramtre rel doit correspondre au type de donnes du paramtre formel. La seule exception concerne les paramtres formels gnriques dont le type de donnes est dtermin par le paramtre rel. Exception : Pour les paramtres formels gnriques de type de donnes ANY_BIT, des paramtres rels de type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre utiliss. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc, ce titre, tre activ de manire explicite. Exemple : Autoris : AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2) Non autoris : AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2) (Dans ce cas, il faut utiliser AND_INT.) AND_ARRAY_WORD (ArrayInt, ...) (Dans ce cas, un changement de type explicite doit tre effectu via INT_ARR_TO_WORD_ARR (...).)
514
Il n'est en principe pas ncessaire d'affecter une valeur tous les paramtres formels. Pour connatre les types de paramtre formel pour lesquels cela est cependant impratif, veuillez vous reporter au tableau.
Type de paramtre EDT EFB : entre STRING + + + + ARRAY + + + + + + ANY_ARRAY IODDT + + + + + / / + + / + / STRUCT FB + + + + / / / / / / ANY + + + + + +
Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise pendant lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Si aucune valeur n'est affecte un paramtre formel et que le bloc fonction/DFB a t instanci plusieurs reprises, les instances appeles par la suite travaillent avec l'ancienne valeur.
515
Variables publiques
Certains blocs fonction disposent non seulement d'entres et de sorties, mais galement de variables publiques. Ces variables permettent de transmettre des valeurs statiques (valeurs non influences par le procd) au bloc fonction. Elles sont donc utilises lors du paramtrage du bloc fonction. Les variables publiques sont une extension de la norme CEI 61131-3. Des valeurs sont affectes aux variables publiques via leur valeur initiale ou par instructions de chargement et d'enregistrement. Exemple :
Nom d'instance Variable publique (D_ACT1 est une instance du bloc fonction D_ACT et dispose des variables publiques AREA_NR et
LD 1 ST D_ACT1.OP_CTRL
Les valeurs des variables publiques sont ensuite lues partir du nom d'instance du bloc fonction et du nom de la variable publique. Exemple :
Nom d'instance Variable publique
LD D_ACT1.OP_CTRL ST Var1 Variables prives Certains blocs fonction disposent non seulement d'entres, de sorties et de variables publiques, mais galement de variables prives. A l'instar des variables publiques, ces variables permettent de transmettre des valeurs statistiques (valeurs non influences par le procd) au bloc fonction. Le programme utilisateur ne peut pas accder ces variables. Seule la table d'animation en a la capacit. Note : Les DFB imbriqus sont dclars comme des variables prives du DFB parent. Ainsi, leurs variables ne sont pas accessibles via la programmation, mais via la table d'animation. Les variables prives sont une extension de la norme CEI 61131-3.
516
Veuillez tenir compte des remarques qui suivent sur la programmation : z Les fonctions ne sont excutes que lorsque l'entre EN = 1 ou lorsque l'entre EN est dsactive (voir aussi EN et ENO, p. 524). z L'affectation de variables aux sorties de type ANY ou ARRAY doit avoir lieu via l'oprateur => (voir aussi Forme formelle de CAL avec liste des paramtres d'entre, p. 518). Une affectation en dehors du cadre de l'appel de bloc fonction n'est pas possible. Linstruction My_Var := My_SAH.OUT est invalide, la sortie OUT du bloc fonction SAH tant de type ANY. Linstruction Cal My_SAH (OUT=>My_Var) est en revanche valide. z Des conditions particulires s'appliquent lors de l'utilisation de variables VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 525). z L'utilisation des blocs fonction comprend deux parties : z la dclaration (voir Dclaration, p. 517) ; z l'appel du bloc fonction. z Il existe quatre faons d'appeler un bloc fonction : z forme formelle de CAL avec liste des paramtres d'entre (voir Forme formelle de CAL avec liste des paramtres d'entre, p. 518) (appel avec les noms des paramtres formels) Des variables peuvent ainsi tre affectes aux sorties via l'oprateur =>. z forme informelle de CAL avec liste des paramtres d'entre (voir Forme informelle de CAL avec liste des paramtres d'entre, p. 520) (appel sans les noms des paramtres formels) z CAL et chargement/sauvegarde (voir CAL et chargement/sauvegarde des paramtres d'entre, p. 521) des paramtres d'entre z usage des oprateurs dentre (voir Usage des oprateurs d'entre, p. 522) z Les instances de bloc fonction/DFB peuvent tre appeles plusieurs fois, l'exception des instances d'EFB de communication qui ne peuvent tre appeles qu'une seule fois (voir Appel multiple d'une instance de bloc fonction, p. 523). Avant l'appel d'un bloc fonction, il doit tre dclar dans l'diteur de variables.
Dclaration
517
Avec cette forme d'appel (appel avec les noms des paramtres formels), les blocs fonction sont appels via une instruction qui se compose de l'instruction CAL, suivie du nom d'instance du bloc fonction et d'une liste entre parenthses des affectations de paramtres rels aux paramtres formels. L'affectation des paramtres formels des entres s'effectue via l'affectation := et l'affectation des paramtres formels des sorties via l'affectation =>. Lordre dnumration des paramtres formels d'entres et de sorties n'est pas important. La liste des paramtres rels peut tre dite directement aprs une virgule. Il est possible d'utiliser EN et ENO avec ce type d'appel. Appel d'un bloc fonction dans la forme formelle de CAL avec liste des paramtres d'entre :
Nom d'instance
Paramtres rels (entres) ou CAL MY_COUNT (CU:=var1, R:=reset, PV:=100, Q=>out, CV=>current) Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 reset 100 CU R PV Q CV
out current
Il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir aussi Paramtre, p. 514). CAL MY_COUNT (CU:=var1, R:=reset, Q=>out, CV=>current) Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 reset CU R PV Q CV
out current
518
Le dplacement de la valeur d'une sortie de bloc fonction peut galement avoir lieu via le chargement de la sortie du bloc fonction (nom d'instance du bloc fonction spar par un point du paramtre formel) suivi d'une sauvegarde. Chargement et sauvegarde des sorties de bloc fonction : Nom d'instance Paramtre formel (sortie) LD ST LD ST MY_COUNT.Q out MY_COUNT.CV current Paramtre rel (sortie)
519
Avec cette forme d'appel (appel sans les noms des paramtres formels), les blocs fonction sont appels via une instruction qui se compose de l'instruction CAL, suivie du nom d'instance du bloc fonction et d'une liste entre parenthses des paramtres rels des entres et sorties. Lordre dnumration des paramtres rels dans lappel dun bloc fonction est important. La liste des paramtres rels ne peut pas tre dite. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'un bloc fonction dans la forme informelle de CAL avec liste des paramtres d'entre : Nom d'instance Paramtre rel (entre)
CAL MY_COUNT (var1, reset, 100, out, current) Paramtre rel (sortie) Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 reset 100 CU R PV Q CV
out current
Mme lors d'un appel informel il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir aussi Paramtre, p. 514). Il s'agit d'une extension de la norme CEI 61131-3 et doit donc, ce titre, tre activ de manire explicite. Un champ de paramtre vide permet d'omettre un paramtre. Appel avec un champ de paramtre vide : CAL MY_COUNT (var1, , 100, out, current) Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 100 CU R PV Q CV
out current
520
Si les paramtres formels sont omis la fin, aucun champ de paramtre vide ne doit tre utilis. MY_COUNT (var1, reset) Appel des mmes blocs fonction dans FBD :
MY_COUNT CTU var1 reset CU R PV Q CV
Vous pouvez appeler les blocs fonction laide dune liste dinstructions compose du chargement des paramtres rels suivi de leur sauvegarde dans les paramtres formels, suivie de linstruction CAL. Lordre de chargement et de sauvegarde des paramtres nest pas important. Seules les instructions de chargement et de sauvegarde pour le bloc fonction courant paramtrer doivent figurer entre la premire instruction de chargement du paramtre rel et l'appel du bloc fonction. Aucune autre instruction nest autorise cet endroit. Il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir aussi Paramtre, p. 514). CAL avec chargement/sauvegarde des paramtres d'entre : Paramtres rels (entre) LD var1 ST MY_COUNT.CU LD reset ST MY_COUNT.R LD value ST MY_COUNT.PV CAL MY_COUNT LD ST LD ST MY_COUNT.Q out MY_COUNT.CV current
Paramtres formels (entre) Appel du bloc fonction Paramtres formels (sortie) Paramtres rels (sortie)
521
Vous pouvez appeler les blocs fonction laide dune liste dinstructions compose du chargement des paramtres rels suivi de leur sauvegarde dans les paramtres formels, suivie dun oprateur dentre. Lordre de chargement et de sauvegarde des paramtres nest pas important. Seules les instructions de chargement et de sauvegarde pour le bloc fonction courant paramtrer doivent figurer entre la premire instruction de chargement du paramtre rel et l'oprateur d'entre du bloc fonction. Aucune autre instruction nest autorise cet endroit. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir aussi Paramtre, p. 514). Reportez-vous au tableau pour connatre les oprateurs dentre disponibles pour les diffrents blocs fonction. Aucun autre oprateur d'entre n'est disponible.
Oprateur dentre S1, R S, R1 CLK CLK CU, R, PV CD, LD, PV CU, CD, R, LD, PV IN, PT IN, PT IN, PT Type FB SR RS R_TRIG F_TRIG CTU_INT, CTU_DINT, CTU_UINT, CTU_UDINT CTD_INT, CTD_DINT, CTD_UINT, CTD_UDINT CTUD_INT, CTUD_DINT, CTUD_UINT, CTUD_UDINT TP TON TOF
Usage des oprateurs d'entre : LD reset ST MY_COUNT.R LD value Oprateur d'entre ST MY_COUNT.PV LD var1 CU MY_COUNT LD MY_COUNT.Q ST out LD MY_COUNT.CV ST current
Paramtre rel (entre) Paramtre formel (entre) Nom d'instance Paramtre formel (sortie) Paramtre rel (sortie)
522
Mme si le bloc fonction ne dispose pas d'entres ou si les entres ne sont pas paramtrer, vous devez appeler le bloc fonction avant que ses sorties puissent tre utilises. Faute de quoi, le systme transmettra les valeurs initiales des sorties, cest--dire "0". Par exemple : Appel de blocs fonction dans IL : CAL MY_CLOCK () CAL MY_COUNT (CU:=MY_CLOCK.CLK1, R:=reset, PV:=100) LD MY_COUNT.Q ST out LD MY_COUNT.CV ST current Appel du mme bloc fonction dans FBD :
MY_CLOCK SYSCLOCK CLK1 CLK2 CLK3 CLK4 CLK5 TIMER reset 100 CU R PV MY_COUNT CTU Q CV
out current
Les instances de bloc fonction/DFB peuvent tre appeles plusieurs fois, l'exception des instances d'EFB de communication qui ne peuvent tre appeles qu'une seule fois. L'appel multiple de la mme instance de DFB/bloc fonction est par exemple utile dans les cas suivants : z si le bloc fonction/DFB ne comporte aucune valeur interne ou si celle-ci n'est plus ncessaire pour un traitement ultrieur. Dans ce cas, l'appel multiple de la mme instance de DFB/bloc fonction permet d'conomiser de l'espace mmoire, car le code du bloc fonction/DFB n'est alors charg qu'une seule fois. Le bloc fonction/DFB est pour ainsi dire trait comme une "fonction". z si le bloc fonction/DFB comprend des valeurs internes et que celles-ci doivent tre influences diffrents endroits du programme, la valeur d'un compteur, par exemple, doit tre augmente diffrents endroits du programme. Dans ce cas, l'appel multiple de la mme instance de bloc fonction/DFB permet d'conomiser la mmoire des rsultats intermdiaires pour un traitement ultrieur un autre endroit du programme.
523
EN et ENO
Pour tous les blocs fonction/DFB, une entre EN et une sortie ENO peuvent tre configures. Au cas o la valeur d'EN est gale "0", lorsque le bloc fonction/DFB est appel, les algorithmes dfinis par ce dernier ne sont pas excuts et ENO est dfini sur "0". Au cas o la valeur dEN est gale "1", lorsque le bloc fonction/DFB est appel, les algorithmes dfinis par ce dernier sont excuts. Aprs l'excution sans erreur de ces algorithmes, ENO est mis "1". Si une erreur se produit durant lexcution de ces algorithmes, ENO est mis "0". Si ENO est mis "0" (du fait de EN = 0 ou d'une erreur d'excution), les sorties du bloc fonction/DFB conservent l'tat qu'elles avaient au dernier cycle excut correctement. Le comportement aux sorties des blocs fonction/DFB est le mme, que les blocs fonction/DFB aient t appels sans EN/ENO ou avec EN = 1. Si EN/ENO doivent tre utiliss, l'appel du bloc fonction doit tre excut sous forme d'appel formel. L'affectation d'une variable ENO doit tre effectue avec l'oprateur =>. CAL MY_COUNT (EN:=1, CU:=var1, R:=reset, PV:=value, ENO=>error, Q=>out, CV=>current) ; Appel du mme bloc fonction dans FBD :
MY_COUNT CTU 1 var1 reset value EN CU R PV ENO Q CV error out current
524
Variable VAR_IN_OUT
Trs souvent, on utilise des blocs fonction pour lire une variable au niveau de lentre (variables dentre), traiter celle-ci, et sortir nouveau les valeurs modifies de la mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Il convient de noter les particularits suivantes lors de lutilisation de blocs fonction/ DFB avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z il est interdit daffecter des valeurs littrales ou des constantes aux entres VAR_IN_OUT. z aucune valeur ne doit tre affecte aux sorties VAR_IN_OUT. z les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel du bloc fonction. Appel d'un bloc fonction avec une variable VAR_IN_OUT dans IL : CAL MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3, OUT1=>V4, OUT2=>V5) Appel du mme bloc fonction dans FBD :
MY_FBLOCK FBLOCK V1 V2 V3 IN1 IN2 IO1 OUT1 OUT2 IO1 V4 V5 V3
les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel du bloc fonction. Les appels de blocs fonction suivants sont par consquent invalides : Appel invalide, exemple 1 :
LD V1 CAL InOutFB Chargement des variables V1 dans l'accumulateur Appel d'un bloc fonction avec un paramtre VAR_IN_OUT. L'accumulateur est alors charg avec rfrence un paramtre VAR_IN_OUT. Liaison ET du contenu de l'accumulateur avec les variables V2. Erreurs : L'opration ne peut pas tre excute car il n'est pas possible d'accder au paramtre VAR_IN_OUT (contenu de l'accumulateur) en dehors de l'appel d'un bloc fonction.
AND V2
525
Les appels de blocs fonction suivants sont en revanche valides : Appel valide, exemple 1 :
CAL InOutFB (IN1:=V1,inout:=V2 Appel d'un bloc fonction avec un paramtre VAR_IN_OUT et affectation des paramtres rels au sein de l'appel de bloc fonction.
526
Procdures d'appel
Procdure Les procdures sont disponibles sous forme de bibliothques. La logique des procdures est tablie en langage de programmation C et ne peut pas tre modifie dans lditeur IL. Comme les fonctions, les procdures n'ont pas d'tats internes. Lorsque les valeurs d'entre sont identiques, la valeur de sortie est la mme chaque excution de la procdure. Par exemple, l'addition de deux valeurs donne toujours le mme rsultat. Contrairement aux fonctions, les procdures ne livrent aucune valeur de renvoi et prennent en charge les variables VAR_IN_OUT. Les procdures sont une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite.
527
Paramtre
Pour importer des valeurs dans une procdure ou exporter des valeurs d'une procdure, on a besoin "d'entres et de sorties". Elles sont appeles paramtres formels. Les tats actuels du processus sont transmis aux paramtres formels. Ils sont appels paramtres rels. Pour les entres de procdure, on peut utiliser un paramtre rel de type : variable, z adresse, z valeur littrale.
z
Pour les sorties de procdure, on peut utiliser un paramtre rel de type : z variable, z adresse. Le type de donnes du paramtre rel doit correspondre au type de donnes du paramtre formel. La seule exception concerne les paramtres formels gnriques dont le type de donnes est dtermin par le paramtre rel. De plus, pour les paramtres formels gnriques du type de donnes ANY_BIT, des paramtres rels du type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre utiliss. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc tre active de manire explicite. Exemple : Autoris : AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2) Non autoris : AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2) (Dans ce cas, il faut utiliser AND_INT.) AND_ARRAY_WORD (ArrayInt, ...) (Dans ce cas, un changement de type explicite doit tre effectu via INT_ARR_TO_WORD_ARR (...).
528
Pour l'appel formel, il n'est en principe pas ncessaire d'affecter une valeur tous les paramtres formels. Pour connatre les types de paramtre formel pour lesquels cela est cependant impratif, veuillez vous reporter au tableau.
Type de paramtre EDT Entre VAR_IN_OUT Sortie + / + STRING + ARRAY + + ANY_ARRAY IODDT + + + + STRUCT FB + + + / / ANY + + +
Si aucune valeur nest affecte un paramtre formel, le systme utilise la valeur initiale pour lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Remarques sur la programmation Veuillez tenir compte des remarques qui suivent sur la programmation : z Les procdures ne sont excutes que lorsque l'entre EN=1 ou lorsque l'entre EN est dsactive (voir galement EN et ENO, p. 533). z Des conditions particulires s'appliquent lors de l'utilisation de variables VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 534). z Il existe deux faons d'appeler une procdure : z appel formel (appel d'une fonction avec les noms des paramtres formels). Des variables peuvent alors tre affectes aux sorties via l'oprateur => (appel d'un bloc fonction sous forme abrge). z appel informel (appel d'une fonction sans les noms des paramtres formels).
529
Appel formel
Avec cette forme d'appel (appel avec les noms des paramtres formels), les procdures sont appeles via une suite d'instructions compose d'une instruction optionnelle CAL suivie du nom de la procdure et d'une liste entre parenthses des affectations de paramtres rels aux paramtres formels. L'affectation des paramtres formels des entres s'effectue via l'affectation := et l'affectation des paramtres formels des sorties via l'affectation =>. Lordre dnumration des paramtres formels d'entres et de sorties n'est pas important. La liste des paramtres rels peut tre dite directement aprs une virgule. Il est possible d'utiliser EN et ENO avec ce type d'appel. Appel d'une procdure avec les noms des paramtres formels : Paramtres formels (entres) Paramtres formels (sorties)
PROC (IN1:=var1, IN2:=var1, OUT1=>result1, OUT2=>result2) Paramtres rels (entres) Nom de la procdure ou CAL PROC (IN1:=var1, IN2:=var1, OUT1=>result1,OUT2=>result2) ou PROC (IN1:=var1, IN2:=var1, OUT1=>result1, OUT2=>result2) ou CAL PROC (IN1:=var1, IN2:=var1, OUT1=>result1, OUT2=>result2) Appel de la mme procdure dans FBD :
PROC var1 var2 IN1 IN2
OUT1 OUT2
result1 result2
530
Lors d'un appel formel, il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir galement Paramtre, p. 528). PROC (IN1:=var1, OUT1=>result1, OUT2=>result2) ou CAL PROC (IN1:=var1, OUT1=>result1, OUT2=>result2) Appel de la mme procdure dans FBD :
PROC var1 IN1 IN2
OUT1 OUT2
result1 result2
Avec cette forme d'appel (appel sans les noms des paramtres formels), les procdures sont appeles via une suite d'instructions qui comprend le chargement du premier paramtre rel dans l'accumulateur suivi du nom de la procdure, luimme suivi d'une liste optionnelle des paramtres rels des entres et sorties. Lordre dnumration des paramtres rels est important. La liste des paramtres rels ne peut pas tre dite. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'une procdure avec les noms des paramtres formels : Paramtres rels (entres) LD var1 PROC var2,result1,result2 Paramtres rels (sorties) Nom de la procdure Appel de la mme procdure dans FBD :
PROC var1 var2 IN1 IN2
OUT1 OUT2
result1 result2
Note : Veuillez noter que pour l'appel informel, la liste des paramtres rels ne doit pas tre mise entre parenthses. La norme CEI 61133-3 exige dans ce cas d'enlever les parenthses, afin d'indiquer que le premier paramtre rel ne fait pas partie de la liste. Appel informel non valide d'une procdure : LD A LIMIT (B,C) Si la valeur traiter (premier paramtre rel) se trouve dj dans laccumulateur, linstruction de chargement nest plus ncessaire. EXAMP1 var2,result1,result2
531
Avec cette forme d'appel, les procdures sont appeles par une suite d'instructions compose de l'instruction CAL suivie du nom de la procdure, suivi lui-mme de la liste entre parenthses des paramtres rels des entres et sorties. Lordre dnumration des paramtres rels est important. La liste des paramtres rels ne peut pas tre dite. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'une procdure avec les noms de paramtres formels et l'instruction CAL : Paramtres rels (entres) CAL PROC (var1,var2,result1,result2) Paramtres rels (sorties) Nom de la procdure ou CAL PROC (var1, var2, result1, result2) Appel de la mme procdure dans FBD :
PROC var1 var2 IN1 IN2
OUT1 OUT2
result1 result2
Note : Contrairement l'appel informel sans instruction CAL, dans le cadre de l'appel informel avec instruction CAL, la valeur traiter (le premier paramtre rel) n'est pas charge explicitement dans l'accumulateur, mais fait partie de la liste des paramtres rels. Par consquent, lors d'appels informels l'aide d'une instruction CAL, la liste des paramtres reels doit tre mise entre parenthses.
532
EN et ENO
Pour toutes les procdures, une entre EN et une sortie ENO peuvent tre configures. Si la valeur dEN est gale "0", lorsque la procdure est appele, les algorithmes dfinis par cette dernire ne sont pas excuts et ENO est mis sur "0". Si la valeur dEN est gale "1", lorsque la procdure est appele, les algorithmes dfinis par la procdure sont excuts. Aprs l'excution sans erreur de ces algorithmes, la valeur de ENO est mise "1". Si une erreur se produit durant lexcution de ces algorithmes, ENO est mis "0". Si ENO est mis "0" (en raison de EN = ou d'une erreur d'excution), les sorties de la procdure sont mises "0". Si EN/ENO doivent tre utiliss, l'appel de la procdure doit tre excut sous forme d'appel formel. L'affectation d'une variable ENO doit tre effectue avec l'oprateur =>. PROC (EN:=1, IN1:=var1, IN2:=var2, ENO=>error, OUT1=>result1, OUT2=>result2) ; Appel de la mme procdure dans FBD :
PROC 1 var1 var2 EN IN1 IN2 ENO OUT1 OUT2 error result1 result2
533
Variable VAR_IN_OUT
Trs souvent, on utilise des procdures pour lire une variable au niveau de lentre (variables dentre), traiter celle-ci, et sortir nouveau les valeurs modifies de la mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Il convient de noter les particularits suivantes dans le cas de lutilisation de procdures avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z il est interdit daffecter des libells ou des constantes aux entres VAR_IN_OUT. z aucune valeur ne doit tre affecte aux sorties VAR_IN_OUT. z les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel de procdure. Appel d'une procdure avec une variable VAR_IN_OUT dans IL : PROC3 (IN1:=V1, IN2:=V2, IO1:=V3, OUT1=>V4, OUT2=>V5) ; Appel de la mme procdure dans FBD :
PROC3 V1 V2 V3 IN1 IN2 IO1 OUT1 OUT2 IO1 V4 V5 V3
Les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel de procdure. Les appels de procdure suivants sont par consquent invalides : Appel invalide, exemple 1 :
LD V1 CAL InOutProc Chargement des variables V1 dans l'accumulateur Appel d'une procdure avec un paramtre VAR_IN_OUT. L'accumulateur est alors charg avec rfrence un paramtre VAR_IN_OUT. Liaison ET du contenu de l'accumulateur avec la variable V2. Erreurs : L'opration ne peut pas tre excute car il n'est pas possible d'accder au paramtre VAR_IN_OUT (contenu de l'accumulateur) en dehors de l'appel de procdure.
AND V2
534
Les appels de procdure suivants sont en revanche valides : Appel valide, exemple 1 :
CAL InOutProc (IN1:=V1,inout:=V2) Appel d'une procdure avec un paramtre VAR_IN_OUT et affectation formelle des paramtres rels au sein de l'appel de procdure.
535
536
15
Prsentation
Objet de ce souschapitre Contenu de ce chapitre Ce chapitre dcrit le langage de programmation Littral structur ST conforme la norme CEI 61131. Ce chapitre contient les sous-chapitres suivants :
Sous-chapitre Sujet 15.1 15.2 15.3 Remarques gnrales sur le littral structur ST Instructions Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures Page 538 549 568
537
15.1
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
538
Expression
Instructions
Instruction
Expression
Taille de la section
La taille d'une ligne d'instruction est limite 300 caractres. La longueur d'une section ST n'est pas limite au sein de l'environnement de programmation. La longueur d'une section ST n'est limite que par la taille de la mmoire de l'automate.
539
Syntaxe
Il n'est pas fait de diffrence entre majuscules et minuscules lors de la saisie des identificateurs et des mots-cls. Exception : Les caractres d'espacement et de tabulation ne sont pas autoriss dans : z les mots-cls, z les valeurs littrales, z les valeurs, z les identificateurs, z les variables et z combinaisons du limiteur [par ex., (* pour commentaires)].
Ordre d'excution
Linterprtation dune expression consiste appliquer les oprateurs aux oprandes, selon la squence qui est dfinie par le rang des oprateurs (voir Tableau des oprateurs (voir Tableau des oprateurs, p. 544)). Le systme excute d'abord loprateur prsentant le rang le plus lev dans l'expression, suivi de loprateur du rang infrieur suivant, etc. jusqu ce que lopration soit termine. Les oprateurs de mme rang sont excuts de gauche droite, comme ils sont crits dans lexpression. Cet ordre de traitement peut tre modifi en utilisant des parenthses. Si par exemple A, B, C et D ont respectivement les valeurs 1, 2, 3 et 4, et que le calcul est effectu comme suit : A+B-C*D alors le rsultat sera -9. Pour un calcul tel que : (A+B-C)*D le rsultat sera 0. Si un oprateur a deux oprandes, l'oprande gauche est excut en premier. Par exemple, dans l'expression SIN(A)*COS(B) l'expression SIN(A) est calcule en premier, puis c'est au tour de COS(B) et enfin le produit est calcul.
540
Les conditions suivantes seront traites comme des erreurs lors de l'excution d'une expression, par exemple : z tentative de division par 0. z les oprandes n'ont pas le type de donnes correct pour l'opration. z le rsultat d'une opration numrique dpasse la plage de valeurs de son type de donnes. Si une erreur se produit lors de l'excution d'une opration, le bit systme correspondant (%S) est activ (si cela est pris en charge par l'automate utilis).
Conformit CEI
Pour plus d'informations sur la conformit CEI du langage ST, voir Conformit CEI (voir Conformit CEI, p. 693).
541
Oprandes
Prsentation Un oprande peut tre : une adresse, z un libell, z une variable, z une variable multi-lments, z un lment dune variable multi-lments, z un appel de fonction ou z une sortie FFB.
z
Types de donnes
Les types de donnes des oprandes traiter dans une instruction doivent tre identiques. Si des oprandes de diffrents types de donnes doivent tre traits, une conversion de types doit obligatoirement tre effectue auparavant. Dans lexemple, la variable Integer i1 est convertie en une variable Real, avant dtre ajoute la variable Real r4. r3 := r4 + SIN(INT_TO_REAL(i1)) ; Comme exception cette rgle, des variables du type de donnes TIME peuvent tre multiplies par des variables du type de donnes INT, DINT, UINT ou UDINT ou divises par ces dernires. Oprations autorises : z timeVar1 := timeVar2 / dintVar1; z timeVar1 := timeVar2 * intVar1; z timeVar := 10 * time#10s; Cette fonction est considre comme " indsirable " par la norme CEI 61131-3.
542
Les adresses peuvent tre utilises directement (sans dclaration pralable). Dans ce cas, le type de donnes est directement affect l'adresse. L'affectation a lieu via le "prfixe de taille". Le tableau suivant indique les diffrents prfixes de taille :
Prfixe de taille Exemple / Symbole pas de prfixe X B W D F %I10, %CH203.MOD, %CH203.MOD.ERR %MX20 %QB102.3 %KW43 %QD100 %MF100 Type de donnes BOOL BOOL BYTE INT DINT REAL
Si dautres types de donnes doivent tre affects en tant que types de donnes par dfaut d'une adresse, cela doit faire lobjet dune dclaration explicite. L'diteur de variables facilite la dclaration de ces variables. Il n'est pas possible de dclarer directement le type de donnes d'une adresse dans une section ST (par ex. la dclaration AT %MW1 : UINT ; non permise). Exemple : les variables ci-dessous sont dclares dans l'diteur de variables. UnlocV1 : ARRAY [1..10] OF INT; LocV1 : ARRAY [1..10] OF INT AT %MW100; LocV2 : TIME AT %MW100; Les appels ci-dessous sont donc corrects du point de vue de la syntaxe : %MW200 := 5; UnlocV1[2] := LocV1[%MW200]; LocV2 := t#3s;
Lors dun accs aux variables de champ (ARRAY), seuls les libells et les variables du type INT, UINT, DINT et UDINT sont autoriss dans lindication dindex. L'index d'un lment ARRAY peut tre ngatif si la limite infrieure de la plage est ngative. Exemple : Emploi de variables de zone var1[i] := 8 ; var2.otto[4] := var3 ; var4[1+i+j*5] := 4 ;
543
Oprateurs
Prsentation Un oprateur est un symbole pour : une opration arithmtique effectuer ou z une opration logique excuter ou z un traitement de fonction (appel)
z
Les oprateurs sont gnriques, ce qui signifie quils sadaptent automatiquement au type de donnes de loprande. Tableau des oprateurs Les oprateurs sont excuts en fonction de leur rang, voir galement Ordre d'excution, p. 540. Oprateurs du langage ST :
Oprateur Signification () Mise entre parenthses Rang 1 (le plus haut) Oprandes possibles Expression Description La mise entre parenthses est utilise pour modifier la squence dexcution des oprateurs. Exemple : Si les oprandes A, B, C et D ont respectivement les valeurs 1, 2, 3 et 4, alors A+B-C*D donne le rsultat -9 et (A+B-C)*D donne le rsultat 0. Le traitement de fonction est utilis pour excuter des fonctions (voir Appel de fonctions lmentaires, p. 569).
Ngation
Expression, valeur littrale, variable, adresse du type de donnes INT, DINT, UINT, UDINT ou REAL Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, WORD ou DWORD
Dans le cas de la ngation -, le systme change le signe de la valeur de loprande. Exemple : Dans l'exemple, OUT a la valeur -4 si IN1 est gal 4. OUT := - IN1 ; Dans le cas de NOT, le systme effectue une inversion de chaque bit de loprande. Exemple : Dans l'exemple, OUT a la valeur 0011001100 si IN1 est gal 1100110011. OUT := NOT IN1 ;
NON
Complment
544
Rang 4
Oprandes possibles Expression, valeur littrale, variable, adresse du type de donnes REAL (base) et INT, DINT, UINT, UDINT ou REAL (exposant)
Description Dans le cas de llvation une puissance plus haute **, la valeur du premier oprande (base) est augmente de la valeur du second oprande (exposant). Exemple : Dans l'exemple, OUT est gal 625,0 si IN1 est 5,0 et IN2 4,0. OUT := IN1 ** IN2 ; Dans le cas de la multiplication *, la valeur du premier oprande est multiplie par la valeur du deuxime oprande. Exemple : Dans l'exemple, OUT est gal 20,0 si IN1 est 5,0 et IN2 4,0. OUT := IN1 * IN2 ; Remarque : La fonction MULTIME de la bibliothque obsolte est destine aux multiplications du type de donnes Time. Dans le cas de la division /, la valeur du premier oprande est divise par la valeur du deuxime oprande. Exemple : Dans l'exemple, OUT est gal 4,0 si IN1 est 20,0 et IN2 5,0. OUT := IN1 / IN2 ; Remarque : La fonction DIVTIME de la bibliothque obsolte est destine aux divisions du type de donnes Time. Dans le cas de MOD, la valeur du premier oprande est divise par la valeur du deuxime oprande et le reste de la division (Modulo) est sorti comme rsultat. Exemple : Dans l'exemple donn, z OUT est 1 si IN1 est 7 et IN2 2 z OUT est 1, si IN1 est 7 et IN2 -2 z OUT est -1, si IN1 est -7 et IN2 2 z OUT est -1, si IN1 est -7 et IN2 -2 OUT := IN1 MOD IN2 ;
Multiplication
Expression, valeur littrale, variable, adresse du type de donnes INT, DINT, UINT, UDINT ou REAL
Division
Expression, valeur littrale, variable, adresse du type de donnes INT, DINT, UINT, UDINT ou REAL
MOD
Modulo
Expression, valeur littrale, variable, adresse du type de donnes INT, DINT, UINT ou UDINT
Addition
Expression, valeur littrale, variable, adresse du type de donnes INT, DINT, UINT, UDINT, REAL ou TIME
Dans le cas de laddition +, la valeur du premier oprande est ajoute la valeur du deuxime oprande. Exemple : Dans l'exemple donn, OUT est gal 9 si IN1 est 7 et IN2 2. OUT := IN1 + IN2 ;
545
Rang 6
Oprandes possibles Expression, valeur littrale, variable, adresse du type de donnes INT, DINT, UINT, UDINT, REAL ou TIME Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD
Description Dans le cas de la soustraction -, la valeur du deuxime oprande est soustraite la valeur du premier oprande. Exemple : Dans l'exemple, OUT est gal 6 si IN1 est 10 et IN2 4. OUT := IN1 - IN2 ; < permet de comparer la valeur du premier oprande celle du deuxime oprande. Si la valeur du premier oprande est infrieure celle du second, le rsultat est un 1 boolen. Si la valeur du premier oprande est suprieure ou gale celle du second, le rsultat est un 0 boolen. Exemple : Dans l'exemple, OUT est gal 1 si IN1 est infrieur 10. Sinon, il est sur 0. OUT := IN1 < 10 ; > permet de comparer la valeur du premier oprande celle du deuxime oprande. Si la valeur du premier oprande est suprieure celle du second, le rsultat est un 1 boolen. Si la valeur du premier oprande est infrieure ou gale celle du second, le rsultat est un 0 boolen. Exemple : Dans l'exemple, OUT est gal 1 si IN1 est suprieur 10. Si IN1 est infrieur 0, alors il est sur 0. OUT := IN1 > 10 ; <= permet de comparer la valeur du premier oprande celle du deuxime oprande. Si la valeur du premier oprande est infrieure ou gale celle du second, le rsultat est un 1 boolen. Si la valeur du premier oprande est suprieure celle du second, le rsultat est un 0 boolen. Exemple : Dans l'exemple, OUT est gal 1 si IN1 est infrieur ou gal 10. Sinon, il est gal 0. OUT := IN1 <= 10 ;
<
>
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD
<=
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD
546
Rang 7
Oprandes possibles Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD
Description >= permet de comparer la valeur du premier oprande celle du deuxime oprande. Si la valeur du premier oprande est suprieure ou gale celle du second, le rsultat est un 1 boolen. Si la valeur du premier oprande est infrieure celle du second, le rsultat est un 0 boolen. Exemple : Dans l'exemple, OUT est gal 1 si IN1 est suprieur ou gal 10. Sinon, il est gal 0. OUT := IN1 >= 10 ; = permet de comparer la valeur du premier oprande celle du deuxime oprande. Si la valeur du premier oprande est gale celle du second, le rsultat est un 1 boolen. Si la valeur du premier oprande est diffrente de celle du second, le rsultat est un 0 boolen. Exemple : Dans l'exemple, OUT est gal 1 si IN1 est gal 10. Sinon, il est gal 0. OUT := IN1 = 10 ; <> permet de comparer la valeur du premier oprande celle du deuxime oprande. Si la valeur du premier oprande est diffrente de celle du second, le rsultat est un 1 boolen. Si la valeur du premier oprande est gale celle du second, le rsultat est un 0 boolen. Exemple : Dans l'exemple, OUT est gal 1 si IN1 n'est pas gal 10. Sinon, il est sur 0. OUT := IN1 <> 10 ; & permet d'tablir une liaison ET logique entre les oprandes. Pour les types de donnes BYTE, WORD et DWORD, le lien est fait par bit. Exemple : Dans les exemples, OUT est gal 1 si IN1, IN2 et IN3 sont sur 1. OUT := IN1 & IN2 & IN3 ;
Egalit
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD
<>
Ingalit
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD
&
ET logique
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, WORD ou DWORD
547
Rang 9
Oprandes possibles Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, WORD ou DWORD
Description AND permet d'tablir une liaison ET logique entre les oprandes. Pour les types de donnes BYTE, WORD et DWORD, le lien est fait par bit. Exemple : Dans les exemples, OUT est gal 1 si IN1, IN2 et IN3 sont sur 1. OUT := IN1 AND IN2 AND IN3 ; XOR permet d'tablir une liaison OU exclusif logique entre les oprandes. Pour les types de donnes BYTE, WORD et DWORD, le lien est fait par bit. Exemple : Dans l'exemple, OUT est sur 1 si IN1 et IN2 ne sont pas gaux. Si IN1 et IN2 ont le mme tat (tous deux 0 ou 1), OUT est sur 0. OUT := IN1 XOR IN2 ; Si plus de deux oprandes sont relis, le rsultat de lopration est ltat 1 pour un nombre impair d'tats 1 et ltat 0 pour un nombre pair dtats 1. Exemple : Dans l'exemple, OUT est gal 1 si 1 ou 3 oprandes sont sur 1. OUT est sur 0 si 0, 2 ou 4 oprandes sont sur 1. OUT := IN1 XOR IN2 XOR IN3 XOR IN4 ; OR permet d'tablir une liaison OU logique entre les oprandes. Pour les types de donnes BYTE, WORD et DWORD, le lien est fait par bit. Exemple : Dans l'exemple, OUT est sur 1 si IN1, IN2 ou IN3 est sur 1. OUT := IN1 OR IN2 OR IN3 ;
XOR
OU exclusif logique
10
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, WORD ou DWORD
OR
OU logique
Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, WORD ou DWORD
548
15.2
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre
Instructions
Ce sous-chapitre dcrit les instructions du langage de programmation Littral structur ST. Ce sous-chapitre contient les sujets suivants :
Sujet Instructions Affectation Slectionner l'instruction IF...THEN...END_IF Slectionner l'instruction ELSE Instruction de slection ELSIF...THEN Slection de l'instruction CASE...OF...END_CASE Instruction rcurrente FOR...TO...BY...DO...END_FOR Instruction rcurrente WHILE...DO...END_WHILE Instruction rcurrente REPEAT...UNTIL...END_REPEAT Instruction rcurrente EXIT Appel de sous-programme RETURN Instruction d'espacement Libells et sauts Commentaire Page 550 551 554 555 556 557 558 560 561 562 563 564 565 566 567
549
Instructions
Description Les instructions sont les "commandes" du langage de programmation ST. Les instructions doivent tre termines par des points-virgules. Une ligne peut contenir plusieurs instructions (spares par des points-virgules). Un seul point-virgule reprsente une instruction d'espacement (voir Instruction d'espacement, p. 565).
550
Affectation
Prsentation Laffectation remplace la valeur courante dune variable lment unique ou multiple par le rsultat de lvaluation dune expression. Une affectation est compose dune indication de variables gauche, suivie de l'oprateur daffectation :=, suivi de lexpression valuer. Les deux variables (cts gauche et droit de l'oprateur d'affectation) doivent tre du mme type de donnes. Les variables ARRAY font exception. A l'issue de l'activation explicite de l'option correspondante, l'affectation de deux variables ARRAY ayant des longueurs diffrentes est possible. Affectation de la valeur d'une variable une autre variable Les affectations sont utilises pour affecter la valeur dune variable une autre variable. Linstruction A := B ; est par exemple utilise pour remplacer la valeur de la variable A par la valeur courante de la variable B. Si A et B ont un type de donnes lmentaire, la valeur individuelle de B est transmise vers A. Si A et B ont un type de donnes driv, les valeurs de tous les lments de B sont transmises vers A. Affectation d'une valeur littrale une variable Les affectations sont utilises pour affecter une valeur littrale une variable. Linstruction C := 25 ; est par exemple utilise pour affecter la valeur 25 la variable C. Affectation de la valeur d'une opration une variable Les affectations sont utilises pour affecter une variable une valeur qui est le rsultat dune opration. Linstruction X := (A+B-C)*D ; est par exemple utilise pour affecter la variable X le rsultat de lopration (A+B-C)*D.
551
Les affectations sont utilises pour affecter une variable une valeur renvoye par une fonction ou un bloc fonction. Linstruction B := MOD(C,A) ; est par exemple utilise pour appeler la fonction MOD (modulo) et affecter le rsultat du calcul la variable B. Linstruction A := MY_TON.Q ; est par exemple utilise pour affecter la variable A la valeur de la sortie Q du bloc fonction MY_TON (instance du bloc fonction TON). (Il ne s'agit pas d'un appel de bloc fonction) )
Affectations multiples
Les affectations multiples sont une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. Mme l'issue de l'activation, les affectations multiples ne sont PAS autorises dans les cas suivants : z dans la liste de paramtres d'un appel de bloc fonction z dans la liste d'lments pour l'initialisation de variables structures Linstruction X := Y := Z est permise. Les instructions FB(in1 := 1, In2 := In3 := 2) ; et strucVar := (comp1 := 1, comp2 := comp3 := 2) ; ne sont pas permises.
552
Les affectations entre variables ARRAY et WORD/DWORD ne sont possibles que si une conversion de types a t effectue au pralable, par ex. : %Q3.0:16 := INT_TO_AR_BOOL(%MW20) ; Les fonctions de conversion suivantes sont disponibles (bibliothque gnrale, famille ARRAY) : z MOVE_BOOL_AREBOOL z MOVE_WORD_ARWORD z MOVE_DWORD_ARDWORD z MOVE_INT_ARINT z MOVE_DINT_ARDINT z MOVE_REAL_ARREAL
553
Voir galement
554
Exemple ELSE
IF A>B THEN C:=SIN(A) * COS(B) ; B:=C - A ; ELSE C:=A + B ; B:=C * A ; END_IF ; IF (voir Slectionner l'instruction IF...THEN...END_IF, p. 554) ELSIF (voir Instruction de slection ELSIF...THEN, p. 556) CASE (voir Slection de l'instruction CASE...OF...END_CASE, p. 557)
Voir galement
555
COS(B) ; ; ; ;
IF A>B THEN IF B=C THEN C:=SIN(A) * COS(B) ; ELSE B:=SUB(C,A) ; END_IF ; ELSIF A=B THEN C:=ADD(A,B) ; B:=MUL(C,A) ; ELSE C:=DIV(A,B) ; END_IF ; IF (voir Slectionner l'instruction IF...THEN...END_IF, p. 554) ELSE (voir Slectionner l'instruction ELSE, p. 555)
Voir galement
556
Repres
Voir galement
557
Valeur finale
558
Si un autre incrment que 1 doit tre utilis vous pouvez le dfinir avec BY. Incrment, valeur initiale, valeur finale et variable de commande doivent avoir le mme type de donnes (DINT ou INT). Le critre qui dtermine le sens de traitement (comptage, dcomptage) est le signe de lexpression BY. Si cette expression est positive, la boucle est compte, si elle est ngative, la boucle est dcompte. comptage deux tapes Variable de commande Valeur finale Valeur initiale
Incrment
FOR i:= 1 TO 10 BY 2 DO (* BY > 0 : Boucle vers l'avant *) C:= C * COS(B) ; (* linstruction est excute 5 x *) END_FOR ; Exemple : Dcomptage dcomptage FOR i:= 10 TO 1 BY -1 DO (* BY < 0 : boucle dcompte *) C:= C * COS(B) ; (* Instr. est excute 10 x *) END_FOR ; Les boucles dans lexemple sont parcourues exactement une fois puisque valeur initiale = valeur finale. Et ce nest pas important si lincrment est positif ou ngatif. FOR i:= 10 TO 10 DO (* Boucle unique *) C:= C * COS(B) ; END_FOR ; ou FOR i:= 10 TO 10 BY -1 DO (* Boucle unique *) C:= C * COS(B) ; END_FOR ; Exemple : Boucles critiques Si l'incrment dans l'exemple est j > 0, alors les instructions sont excutes. Si j < est 0, les instructions ne sont pas excutes car la situation Valeur initiale< Valeur finale ne permet qu'un incrment 0. Si j = 0, les instructions sont excutes et on obtient une boucle continue car avec un incrment de 0 la valeur finale n'est jamais atteinte. FOR i:= 1 TO 10 BY j DO C:= C * COS(B) ; END_FOR ;
559
Voir galement
560
Voir galement
561
562
Appel de sous-programme
Appel de sousprogramme L'appel d'un sous-programme comprend le nom de la section du sous-programme suivi d'une liste de paramtres vide. Les appels de sous-programmes ne fournissent pas de valeurs de retour. Le sous-programme appeler doit se trouver dans la mme tche que la section ST appelante. Il est possible d'appeler des sous-programmes au sein de sous-programmes. par ex. Nom du sous-programme () ; Les appels de sous-programme sont un complment de la norme CEI 61131-3 et doivent tre activs de manire explicite. Dans les sections d'actions SFC, les appels de sous-programmes ne sont autoriss que si le mode Multitoken a t activ.
563
RETURN
Description Aprs leur dition, chaque sous-programme et chaque DFB (bloc fonction driv) est ferm, c'est--dire qu'un retour est effectu dans le programme principal appelant. Si le sous-programme/DFB est quitt prmaturment, le retour au programme principal appelant peut tre forc via l'objet RETURN. RETURN peut uniquement tre utilis dans les sous-programmes ou les DFB. Une utilisation dans le programme principal n'est pas possible.
564
Instruction d'espacement
Description Un seul point-virgule ; reprsente une instruction d'espacement. par ex. IF x THEN ; ELSE .. Dans l'exemple l'instruction qui suit l'instruction THEN est une instruction d'espacement. Cela signifie que le programme quitte l'instruction IF ds que la condition IF atteint 1.
565
Libells et sauts
Prsentation Les tiquettes servent de cible atteindre pour les sauts. Les rpres et les sauts en ST constituent une extension de la norme CEI 61131-3 et doivent tre activs explicitement. Proprits des tiquettes Proprits des tiquettes : les tiquettes doivent toujours tre le premier lment dune ligne. z les tiquettes ne peuvent se trouver que devant les instructions du premier ordre (pas dans les boucles). z les tiquettes doivent tre uniques dans toute la section, on ne fait pas de distinction ici entre majuscules et minuscules. z la longueur maximale dun tiquette est de 32 caractres. z les tiquettes doivent satisfaire aux conventions de nom CEI gnrales. z les tiquettes sont spars par deux points : de la commande suivante.
z
Caractristiques d'un saut les sauts sont possibles au sein des sections de DFB et de programme. z les sauts ne sont possibles qu'au sein des sections actuelles.
z
Exemple
566
Commentaire
Description Dans lditeur ST, les commentaires commencent par la chane de caractres (* et se terminent par la chane de caractres *). Vous pouvez entrer un commentaire quelconque entre ces deux chanes de caractres. Les commentaires peuvent tre saisis n'importe quelle position dans l'diteur ST, l'exception des mots cls, libells, identificateurs et variables. Selon la norme CEI 61131-3, il n'est pas possible d'imbriquer des commentaires. Toutefois, si des commentaires sont imbriqus, ils doivent tre activs de manire explicite.
567
15.3
Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures dans le langage de programmation ST. Ce sous-chapitre contient les sujets suivants :
Sujet Appel de fonctions lmentaires Bloc fonction lmentaire d'appel et bloc fonction driv Procdures Page 569 576 588
568
569
Paramtres
Pour importer des valeurs dans une fonction ou exporter des valeurs d'une fonction, on a besoin "d'entres" et d'une "sortie". Elles sont appeles paramtres formels. Les tats actuels du processus sont transmis aux paramtres formels. Ces objets sont appels paramtres rels.
z
On peut utiliser un paramtre rel dentres de fonction de type : variable adresse libell expression ST
On peut utiliser un paramtre rel dentres de fonction de type : z variable z adresse Le type de donnes du paramtre rel doit correspondre au type de donnes du paramtre formel. La seule exception concerne les paramtres formels gnriques dont le type de donnes est dtermin par le paramtre rel. De plus, pour les paramtres formels gnriques du type de donnes ANY_BIT, des paramtres rels du type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre utiliss. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc tre active de manire explicite. Exemple : Autoris : AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2); Non autoris : AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2); (Dans ce cas, il faut utiliser AND_INT.) AND_ARRAY_WORD (ArrayInt, ...); (Dans ce cas, un changement de type explicite doit tre effectu via INT_ARR_TO_WORD_ARR (...);.
570
Il n'est en principe pas ncessaire d'affecter une valeur tous les paramtres formels. Pour connatre les types de paramtre formel pour lesquels cela est cependant impratif, veuillez vous reporter au tableau.
Type de paramtre EDT Entre VAR_IN_OUT Sortie + / + STRING + ARRAY + + ANY_ARRAY IODDT + + + + STRUCT FB + + + / / ANY + + -
Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise pendant lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Remarques sur la programmation Veuillez tenir compte des remarques qui suivent sur la programmation : z Toutes les fonctions gnriques sont surcharges. Cela signifie que les fonctions peuvent tre appeles avec ou sans la saisie du type de donnes. par ex. i1 := ADD (i2, 3); est identique i1 := ADD_INT (i2, 3); z Les fonctions peuvent tre imbriques (voir galement Imbriquer des fonctions, p. 574). z Les fonctions ne sont excutes que lorsque l'entre EN = 1 ou lorsque l'entre EN est dsactive (voir aussi EN et ENO, p. 575). z Il existe deux faons d'appeler une fonction : z appel formel (appel d'une fonction avec les noms des paramtres formels), z appel informel (appel d'une fonction sans les noms des paramtres formels).
571
Appel formel
Lors d'un appel formel (appel avec les noms des paramtres formels), l'appel se compose du paramtre rel de la sortie, suivi de l'instruction d'affectation :=, suivie du nom de fonction, suivi d'une liste entre parenthses des affectations de valeur (paramtres rels) aux paramtres formels. Lordre dnumration des paramtres formels dans lappel dune fonction nest pas important. Il est possible d'utiliser EN et ENO avec ce type d'appel. Appel d'une fonction avec les noms des paramtres formels : Paramtre rel (sortie) Paramtre formel
out:=LIMIT (MN:=0, IN:=var1, MX:=5 + var) ; Nom de la fonction Paramtre rel (entres)
Lors d'un appel formel, il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir galement Paramtres, p. 570). out:=LIMIT (MN:=0, IN:=var1) ; Appel de la mme fonction dans FBD :
LIMIT 0 var1 MN IN MX
OUT
out
572
Appel informel
Lors d'un appel informel (appel sans les noms des paramtres formels), l'appel se compose du paramtre rel de la sortie, suivi du symbole de l'instruction d'affectation :=, suivi du nom de fonction, suivi d'une liste entre parenthses des paramtres rels des entres. Lordre dnumration des paramtres rels dans lappel dune fonction est important. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'une fonction sans les noms des paramtres formels : Paramtre rel (sortie) out:=LIMIT (0, var1, 5 + var) ; Nom de la fonction Paramtre rel (entres)
Lors d'un appel informel, il n'est pas non plus ncessaire d'affecter une valeur tous les paramtres formels (voir galement Paramtres, p. 570). Il s'agit d'une extension de la norme CEI 61131-3 et doit donc tre active de manire explicite. Un champ de paramtre vide permet d'omettre un paramtre. Appel avec un champ de paramtre vide : out:=LIMIT ( ,var1, 5 + var) ; Appel de la mme fonction dans FBD :
LIMIT var1 5 + var MN IN MX out
Si les paramtres formels sont omis la fin, aucun champ de paramtre vide ne doit tre utilis. out:=LIMIT (0, var1) ; Appel de la mme fonction dans FBD :
LIMIT 0 var1 MN IN MX out
573
L'appel d'une fonction peut contenir l'appel d'autres fonctions. Le niveau d'imbrication est illimit. Appel dune fonction imbrique : out:=LIMIT (MN:=4, IN:=MUL(IN1:=var1, IN2:=var2), MX:=5) ; Appel de la mme fonction dans FBD :
LIMIT MUL var1 var2 IN1 IN2 4 MN IN MX out
OUT
5
Les fonctions qui livrent une valeur du type de donnes ANY_ARRAY ne peuvent pas tre utilises au sein d'un appel de fonction. Imbrication non autorise avec ANY_ARRAY : ANY_ARRAY out:=LIMIT (MN:=4, IN:=EXAMP(IN1:=var1, IN2:=var2), MX:=5) ; Les types de donnes ANY_ARRAY sont permis comme valeur de renvoi de la fonction appelant ou comme paramtre des fonctions imbriques. Imbrication autorise avec ANY_ARRAY : ANY_ARRAY ANY_ARRAY ANY_ARRAY
574
EN et ENO
Pour toutes les fonctions, une entre EN et une sortie ENO peuvent tre configures. Si la valeur dEN est gale "0", lorsque la fonction est appele, les algorithmes dfinis par cette dernire ne sont pas excuts et ENO est mis sur "0" . Si la valeur dEN est gale "1", lorsque la fonction est appele, les algorithmes dfinis par la fonction sont excuts. Aprs lexcution exempte derreur de ces algorithmes, la valeur dENO est mise sur "1". Si une erreur se produit durant lexcution de ces algorithmes, ENO est mis sur "0". Si ENO est mis sur "0" (en raison de EN=0 ou d'une erreur d'excution), la sortie de la fonction est mise sur "0". Le comportement de sortie de la fonction ne dpend pas de l'appel de la fonction sans EN/ENO ou avec EN=1. Si EN/ENO doivent tre utiliss, l'appel de la fonction doit tre excut comme un appel formel. out:=LIMIT (EN:=1, MN:=0, IN:=var1, MX:=5, ENO=>var2) ; Appel de la mme fonction dans FBD :
LIMIT 1 0 var1 5 EN MN IN MX ENO var2 out
575
Paramtre
Pour les sorties de bloc fonction, on peut utiliser un paramtre rel de type : z variable z adresse Le type de donnes du paramtre rel doit correspondre au type de donnes du paramtre formel. La seule exception concerne les paramtres formels gnriques dont le type de donnes est dtermin par le paramtre rel. De plus, pour les paramtres formels gnriques du type de donnes ANY_BIT, des paramtres rels du type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre utiliss. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc tre active de manire explicite.
576
Exemple : Autoris : AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2); Non autoris : AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2); (Dans ce cas, il faut utiliser AND_INT.) AND_ARRAY_WORD (ArrayInt, ...); (Dans ce cas, un changement de type explicite doit tre effectu via INT_ARR_TO_WORD_ARR (...);.) Il n'est en principe pas ncessaire d'affecter une valeur tous les paramtres formels. Pour connatre les types de paramtre formel pour lesquels cela est cependant impratif, veuillez vous reporter au tableau.
Type de paramtre EDT EFB : entre STRING + + + + ARRAY + + + + + + ANY_ARRAY IODDT + + + + + / / + + / + / STRUCT FB + + + + / / / / / / ANY + + + + + +
Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise pendant lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Si aucune valeur n'est affecte un paramtre formel et que le bloc fonction/DFB a t instanci plusieurs reprises, les instances appeles par la suite travaillent avec l'ancienne valeur. Variables publiques Certains blocs fonction disposent non seulement d'entres et de sorties, mais galement de variables publiques. Ces variables permettent de transmettre des valeurs statiques (valeurs non influences par le procd) au bloc fonction. Elles sont donc utilises lors du paramtrage du bloc fonction. Les variables publiques sont une extension de la norme CEI 61131-3. Des valeurs sont affectes aux variables publiques via leur valeur initiale ou via l'oprateur d'affectation.
35006145 05 novembre 2006
577
Exemple :
Nom d'instance Variable publique D_ACT1 est une instance du bloc fonction D_ACT et dispose des variables publiques AREA_NR et OP_CTRL.
D_ACT1.OP_CTRL := 1 ;
Les valeurs des variables publiques sont ensuite lues partir du nom d'instance du bloc fonction et du nom de la variable publique. Exemple :
Nom d'instance Variable publique
Var1 := D_ACT1.OP_CTRL ; Variables prives Certains blocs fonction disposent non seulement d'entres, de sorties et de variables publiques, mais galement de variables prives. A l'instar des variables publiques, ces variables permettent de transmettre des valeurs statistiques (valeurs non influences par le procd) au bloc fonction. Le programme utilisateur ne peut pas accder ces variables. Seule la table d'animation en a la capacit. Note : Les DFB imbriqus sont dclars comme des variables prives du DFB parent. Ainsi, leurs variables ne sont pas accessibles via la programmation, mais via la table d'animation. Les variables prives sont une extension de la norme CEI 61131-3.
578
Veuillez tenir compte des remarques qui suivent sur la programmation : z Les blocs fonction ne sont excuts que lorsque l'entre EN = 1 ou lorsque l'entre EN est dsactive (voir aussi EN et ENO, p. 585). z L'affectation de variables aux sorties de type ANY ou ARRAY doit tre effectue via l'oprateur => (voir aussi Appel formel, p. 580). Une affectation en dehors de l'appel d'un bloc fonction n'est pas possible. Linstruction My_Var := My_SAH.OUT; n'est pas valide, la sortie OUT du bloc fonction SAH tant de type ANY. Linstruction Cal My_SAH (OUT=>My_Var); est en revanche valide. z Des conditions particulires s'appliquent lors de l'utilisation de variables VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 586). z L'utilisation des blocs fonction comprend deux parties dans ST : z la dclaration (voir Dclaration, p. 579) ; z l'appel du bloc fonction. z Il existe deux faons d'appeler un bloc fonction : z Appel formel (voir Appel formel, p. 580) (appel d'une fonction avec les noms des paramtres formels) Des variables peuvent ainsi tre affectes aux sorties via l'oprateur => z Appel informel (voir Appel informel, p. 582) (appel sans les noms des paramtres formels) z Les instances de bloc fonction/DFB peuvent tre appeles plusieurs fois, l'exception des instances d'EFB de communication qui ne peuvent tre appeles qu'une seule fois (voir Appel multiple d'une instance de bloc fonction, p. 584). Avant l'appel d'un bloc fonction, il doit tre dclar dans l'diteur de variables.
Dclaration
579
Appel formel
Pour l'appel formel (appel avec les noms des paramtres formels), les blocs fonction sont appels via une instruction qui comprend le nom d'instance du bloc fonction suivi d'une liste entre parenthses des affectations des paramtres rels aux paramtres formels. Affectez des paramtres formels d'entre l'aide de l'affectation :=et des paramtres formels d'entre l'aide de l'affectation :=. L'ordre d'numration des paramtres formels d'entre et de sortie n'est pas important. Il est possible d'utiliser EN et ENO avec ce type d'appel. Appel d'un bloc fonction avec les noms des paramtres formels :
Noms d'instance
Paramtres rels (entres) Paramtres rels (sorties) Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 reset 100 + value CU R PV Q CV
out current
L'affectation de la valeur une sortie de bloc fonction est ralise si vous entrez le nom reel du paramtre, suivi de l'instruction d'affectation :=suivie du nom de l'instance du bloc fonction et si vous chargez le paramtre formel de la sortie du bloc fonction (spar par un point final). Par exemple : MY_COUNT (CU:=var1, R:=reset, PV:=100 + value); Q := MY_COUNT.out ; CV := MY_COUNT.current ; Note : Les DDT de type Array ne peuvent pas tre affects de cette manire, contrairement aux DDT de type Structure.
580
Il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir aussi Paramtre, p. 576). MY_COUNT (CU:=var1, R:=reset, Q=>out, CV=>current); Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 reset CU R PV Q CV
out current
581
Appel informel
Pour l'appel informel (appel sans les noms des paramtres formels), les blocs fonction sont appels via une instruction qui comprend le nom d'instance du bloc fonction suivi d'une liste entre parenthses des paramtres rels des entres et des sorties. Lordre dnumration des paramtres rels dans lappel dun bloc fonction est important. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'un bloc fonction sans les noms des paramtres formels : Nom d'instance Paramtre rel (entre) MY_COUNT (var1, reset, 100+value, out, current) ; Paramtre rel (sortie) Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 reset 100 + value CU R PV Q CV
out current
Mme lors d'un appel informel il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir aussi Paramtre, p. 576). Cela ne s'applique pas aux variables VAR_IN_OUT, aux paramtres d'entre avec des longueurs dynamiques et aux sorties de type ANY. Une variable doit toujours tre affecte. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc, ce titre, tre activ de manire explicite. Pour ne pas dfinir un paramtre, il suffit de laisser le champ correspondant vide. Appel avec un champ de paramtre vide : MY_COUNT (var1, , 100 + value, out, current) ; Appel du mme bloc fonction dans FBD :
MY_COUNT CTU var1 100 + value CU R PV Q CV
out current
Si les paramtres formels sont omis la fin, aucun champ de paramtre vide ne doit tre utilis. MY_COUNT (var1, reset) ;
582
Mme si le bloc fonction ne dispose pas d'entres ou si les entres ne sont pas paramtrer, vous devez appeler le bloc fonction avant que ses sorties puissent tre utilises. Faute de quoi, le systme transmettra les valeurs initiales des sorties, c'est--dire "0". Par exemple : Appel du bloc fonction dans ST : MY_CLOCK () ; MY_COUNT (CU:=MY_CLOCK.CLK1, R:=reset, PV:=100, Q=>out, CV=>current) ; Appel du mme bloc fonction dans FBD :
MY_CLOCK SYSCLOCK CLK1 CLK2 CLK3 CLK4 CLK5 TIMER reset 100 CU R PV MY_COUNT CTU Q CV
out current
583
Les instances de bloc fonction/DFB peuvent tre appeles plusieurs fois, l'exception des instances d'EFB de communication qui ne peuvent tre appeles qu'une seule fois. L'appel multiple de la mme instance de DFB/bloc fonction est par exemple utile dans les cas suivants : z si le bloc fonction/DFB ne comporte aucune valeur interne ou si celle-ci n'est plus ncessaire pour un traitement ultrieur. Dans ce cas, l'appel multiple de la mme instance de DFB/bloc fonction permet d'conomiser de l'espace mmoire, car le code du bloc fonction/DFB n'est alors charg qu'une seule fois. Le bloc fonction/DFB est pour ainsi dire trait comme une "fonction". z si le bloc fonction/DFB comprend des valeurs internes et que celles-ci doivent tre influences diffrents endroits du programme, la valeur d'un compteur, par exemple, doit tre augmente diffrents endroits du programme. Dans ce cas, l'appel multiple de la mme instance de bloc fonction/DFB permet d'conomiser la mmoire des rsultats intermdiaires pour un traitement ultrieur un autre endroit du programme.
584
EN et ENO
Pour tous les blocs fonction/DFB, une entre EN et une sortie ENO peuvent tre configures. Au cas o la valeur dEN est gale "0", lorsque le bloc fonction/DFB est appel, les algorithmes dfinis par ce dernier ne sont pas excuts et ENO est mis "0". Au cas o la valeur dEN est gale "1", lorsque le bloc fonction/DFB est appel, les algorithmes dfinis par ce dernier sont excuts. Aprs l'excution sans erreur de ces algorithmes, ENO est mis "1". Si une erreur se produit durant lexcution de ces algorithmes, ENO est mis "0". Si ENO est mis "0" (du fait de EN = 0 ou d'une erreur d'excution), les sorties du bloc fonction/DFB conservent l'tat qu'elles avaient au dernier cycle excut correctement. Le comportement aux sorties des blocs fonction/DFB est le mme, que les blocs fonction/DFB aient t appels sans EN/ENO ou avec EN = 1. Si EN/ENO doivent tre utiliss, l'appel du bloc fonction doit tre excut sous forme d'appel formel. L'affectation d'une variable ENO doit tre effectue avec l'oprateur =>. MY_COUNT (EN:=1, CU:=var1, R:=reset, PV:=100 + value, ENO=>error, Q=>out, CV=>current) ; Appel du mme bloc fonction dans FBD :
MY_COUNT CTU 1 var1 reset 100 + value EN CU R PV ENO Q CV error out current
585
Variable VAR_IN_OUT
Trs souvent, on utilise des blocs fonction pour lire une variable au niveau de lentre (variables dentre), traiter celle-ci, et sortir nouveau les valeurs modifies de la mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Il convient de noter les particularits suivantes lors de lutilisation de blocs fonction/ DFB avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z il est interdit daffecter des valeurs littrales ou des constantes aux entres VAR_IN_OUT. z aucune valeur ne doit tre affecte aux sorties VAR_IN_OUT. z les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel du bloc fonction. Appel d'un bloc fonction avec une variable VAR_IN_OUT dans ST : MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3, OUT1=>V4, OUT2=>V5); Appel du mme bloc fonction dans FBD :
MY_FBLOCK FBLOCK V1 V2 V3 IN1 IN2 IO1 OUT1 OUT2 IO1 V4 V5 V3
les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel du bloc fonction. Les appels de blocs fonction suivants sont par consquent non valides : Appel non valide, exemple 1 :
InOutFB.inout := V1; Affectation des variables V1 un paramtre VAR_IN_OUT. Erreurs : l'opration ne peut pas tre excute, car il n'est pas possible d'accder au paramtre VAR_IN_OUT en dehors de l'appel d'un bloc fonction.
586
Les appels de blocs fonction suivants sont en revanche valides : Appel valide, exemple 1 :
InOutFB (inout:=V1); Appel d'un bloc fonction avec un paramtre VAR_IN_OUT et affectation formelle des paramtres rels au sein de l'appel de bloc fonction.
587
Procdures
Procdure Les procdures sont disponibles sous forme de bibliothques. La logique des procdures est cre dans le langage de programmation C et ne peut pas tre modifie dans lditeur ST. Comme les fonctions, les procdures n'ont pas d'tats internes. Lorsque les valeurs d'entre sont identiques, la valeur de sortie est la mme chaque excution de la procdure. Par exemple, l'addition de deux valeurs donne toujours le mme rsultat. Contrairement aux fonctions, les procdures ne livrent aucune valeur de renvoi et prennent en charge les variables VAR_IN_OUT. Les procdures sont une extension de la norme CEI 61131-3 et doivent tre actives de manire explicite. Paramtre Pour importer des valeurs dans une procdure ou exporter des valeurs d'une procdure, on a besoin "d'entres et de sorties". Elles sont appeles paramtres formels. Les tats actuels du processus sont transmis aux paramtres formels. Ils sont appels paramtres rels. On peut utiliser comme paramtre rel des entres de procdure : variable z adresse z libell z expression ST
z
On peut utiliser comme paramtre rel des sorties de procdure : z variable z adresse Le type des donnes du paramtre rel doit correspondre au type des donnes du paramtre formel. La seule exception concerne les paramtres formels gnriques dont le type de donnes est dtermin par le paramtre rel. De plus, pour les paramtres formels gnriques du type de donnes ANY_BIT, des paramtres rels du type de donnes INT ou DINT (pas UINT ni UDINT) peuvent tre utiliss. Il s'agit d'une extension de la norme CEI 61131-3 qui doit donc tre active de manire explicite.
588
Exemple : Autoris : AND (AnyBitParam := IntVar1, AnyBitParam2 := IntVar2); Non autoris : AND_WORD (WordParam1 := IntVar1, WordParam2 := IntVar2); (Dans ce cas AND_INT doit tre utilis.) AND_ARRAY_WORD (ArrayInt, ...); (Dans ce cas, un changement de type explicite doit tre effectu via INT_ARR_TO_WORD_ARR (...);. Il n'est en principe pas ncessaire d'affecter une valeur tous les paramtres formels. Pour connatre les types de paramtre formel pour lesquels cela est cependant impratif, veuillez vous reporter au tableau.
Type de paramtre EDT Entre VAR_IN_OUT Sortie + / + STRING + ARRAY + + ANY_ARRAY IODDT + + + + STRUCT FB + + + / / ANY + + +
Si aucune valeur nest affecte un paramtre formel, la valeur initiale est utilise pendant lexcution du bloc fonction. Si aucune valeur initiale n'est dfinie, la valeur par dfaut (0) est utilise. Remarques sur la programmation Veuillez tenir compte des remarques qui suivent sur la programmation : z Les procdures ne sont excutes que lorsque l'entre EN=1 ou lorsque l'entre EN est dsactive (voir galement EN et ENO, p. 592). z Des conditions particulires s'appliquent lors de l'utilisation de variables VAR_IN_OUT (voir Variable VAR_IN_OUT, p. 593). z Il existe deux faons d'appeler une procdure : z appel formel (voir Appel formel, p. 590) (appel avec les noms des paramtres formels) Des variables peuvent ainsi tre affectes aux sorties via l'oprateur => z appel informel (voir Appel informel, p. 591) (appel sans les noms des paramtres formels).
589
Appel formel
Pour l'appel formel (appel avec les noms des paramtres formels), les procdures sont appeles via une instruction qui comprend le nom de la procdure suivi d'une liste entre parenthses des affectations des paramtres rels aux paramtres formels. L'affectation des paramtres formels des entres s'effectue via l'affectation := et l'affectation des paramtres formels des sorties via l'affectation =>. Lordre dnumration des paramtres formels d'entres et de sorties n'est pas important. Il est possible d'utiliser EN et ENO avec ce type d'appel. Appel d'une procdure avec les noms des paramtres formels : Nom de la procdure Paramtre formel (entres) Paramtre formel (sorties)
result1 result2
Lors d'un appel formel, il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir galement Paramtre, p. 588). PROC (IN1:=var1, OUT1=>result1, OUT2=>result2); Appel de la mme procdure dans FBD :
PROC var1 IN1 IN2
OUT1 OUT2
result1 result2
590
Appel informel
Pour l'appel informel (appel sans les noms des paramtres formels), les procdures sont appeles via une instruction qui comprend le nom de la procdure suivi d'une liste entre parenthses des paramtres rels des entres et des sorties. Lordre dnumration des paramtres rels dans lappel dune procdure est important. EN et ENO ne peuvent pas tre utiliss avec ce type d'appel. Appel d'une procdure sans les noms des paramtres formels : Nom de la procdure Paramtre rel (entres)
PROC (var1, var2, result1, result2) ; Paramtre rel (sortie) Appel de la mme procdure dans FBD :
PROC var1 var2 IN1 IN2 OUT1 OUT2
result1 result2
Mme lors d'un appel informel il n'est pas ncessaire d'affecter une valeur tous les paramtres formels (voir galement Paramtre, p. 588). Il s'agit d'une extension de la norme CEI 61131-3 et doit donc tre active de manire explicite. Un champ de paramtre vide permet d'omettre un paramtre. Appel avec un champ de paramtre vide : PROC (var1, , result1, result2) ; Appel de la mme procdure dans FBD :
PROC var1 IN1 IN2 OUT1 OUT2
result1 result2
Si les paramtres formels sont omis la fin, aucun champ de paramtre vide ne doit tre utilis. PROC (var1, var2, result1) ; Appel de la mme procdure dans FBD :
PROC var1 var2 IN1 IN2 OUT1 OUT2
result1
591
EN et ENO
Pour toutes les procdures, une entre EN et une sortie ENO peuvent tre configures. Si la valeur dEN est gale "0", lorsque la procdure est appele, les algorithmes dfinis par cette dernire ne sont pas excuts et ENO est mis sur " 0 " . Si la valeur dEN est gale "1", lorsque la procdure est appele, les algorithmes dfinis par la procdure sont excuts. Aprs lexcution exempte derreur de ces algorithmes, la valeur dENO est mise sur " 1 ". Si une erreur se produit durant lexcution de ces algorithmes, ENO est mis sur "0". Si ENO est mis sur " 0 " (en raison de EN=0 ou d'une erreur d'excution), les sorties de la procdure sont mises sur "0". Le comportement de la procdure la sortie ne dpend pas du fait que la procdure ait t appele sans EN ou avec EN=1. Si EN/ENO doivent tre utiliss, l'appel de la procdure doit tre excut comme un appel formel. L'affectation d'une variable ENO doit tre effectue avec l'oprateur =>. PROC (EN:=1, IN1:=var1, IN2:=var2, ENO=>error, OUT1=>result1, OUT2=>result2) ; Appel de la mme procdure dans FBD :
PROC 1 var1 var2 EN IN1 IN2 ENO OUT1 OUT2 error result1 result2
592
Variable VAR_IN_OUT
Trs souvent, on utilise des procdures pour lire une variable au niveau de lentre (variables dentre), traiter celle-ci, et sortir nouveau les valeurs modifies de la mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Il convient de noter les particularits suivantes dans le cas de lutilisation de procdures avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z il est interdit daffecter des libells ou des constantes aux entres VAR_IN_OUT. z aucune valeur ne doit tre affecte aux sorties VAR_IN_OUT. z les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel de procdure. Appel d'une procdure avec une variable VAR_IN_OUT dans ST : PROC2 (IN1:=V1, IN2:=V2, IO1:=V3, OUT1=>V4, OUT2=>V5) ; Appel de la mme procdure dans FBD :
PROC2 V1 V2 V3 IN1 IN2 IO1 OUT1 OUT2 IO1 V4 V5 V3
les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel de procdure. Les appels de procdure suivants sont par consquent invalides : Appel invalide, exemple 1 :
InOutProc.inout := V1; Affectation des variables V1 un paramtre VAR_IN_OUT. Erreurs : l'opration ne peut pas tre excute car il n'est pas possible d'accder au paramtre VAR_IN_OUT en dehors de l'appel de procdure.
593
Les appels de procdure suivants sont en revanche valides : Appel valide, exemple 1 :
InOutProc (inout:=V1); Appel d'une procdure avec un paramtre VAR_IN_OUT et affectation formelle des paramtres rels au sein de l'appel de procdure.
594
V
Prsentation
Objet de cette partie Cette partie prsente :
z z z z z
les blocs fonctions utilisateur (DFB), la structure interne des DFB, les DFB de diagnostic, les types et instances des DFB, lappel des instances partir de diffrents langages.
595
DFB
596
16
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre prsente les blocs fonction utilisateur (DFB), et les diffrentes tapes de mise en oeuvre. Ce chapitre contient les sujets suivants :
Sujet Prsentation des blocs fonctions utilisateur (DFB) Mise en oeuvre d'un bloc fonction DFB Page 598 600
597
z z
une ou plusieurs sections crites en langage contacts (LD), en liste dinstructions (IL), en littral structur (ST) ou en langage blocs fonctionnels (FBD), des paramtres d'entre/de sortie, des variables internes publiques ou prives.
Les blocs fonction vous permettent de structurer et doptimiser votre application. Vous pouvez les utiliser ds quune squence de programme est rpte plusieurs fois dans votre application ou pour figer une programmation standard (par exemple, lalgorithme de commande d'un moteur incluant la prise en compte des scurits locales). Lexport puis limport de ces blocs fonction permet leur utilisation par un groupe de programmeurs travaillant sur une mme application ou dans des applications diffrentes. Avantage d'utiliser un DFB L'utilisation d'un bloc fonction DFB dans une application vous permet :
z z z z
de simplifier la conception et la saisie du programme, d'accrotre la lisibilit du programme, de faciliter la mise au point de l'application (toutes les variables manipules par le bloc fonction sont identifies sur son interface), de diminuer le volume de code gnr (le code correspondant au DFB est charg une seule fois, quel que soit le nombre d'appels au DFB dans le programme, seules les donnes correspondants aux instances sont gnres).
de paramtrer plus facilement le traitement, d'utiliser des variables internes propres au DFB, donc indpendantes de l'application, de tester son fonctionnement indpendamment de l'application.
De plus, les langages LD et FBD permettent de visualiser de manire graphique les DFB, ce qui facilite la conception et la mise au point de votre programme. DFB crs avec les logiciels prcdents Les DFB crs avec PL7 et Concept doivent tre au pralable convertis laide des convertisseurs inclus dans le produit avant dtre utiliss dans lapplication.
598
Domaine d'utilisation
Automates pour lesquels les DFB sont utilisables. Premium\Atrium et Quantum Logiciel de cration des DFB Logiciels avec lesquels les DFB sont utilisables. Langage de programmation pour la cration du code des DFB. Langage de programmation avec lesquels les DFB sont utilisables. Unity Pro Unity Pro ou Unity Pro Medium IL, ST, LD ou FBD (1) IL, ST, LD ou FBD (1)
(1) IL: Liste dInstructions, ST: littral STructur, LD: Langage contacts (LaDder), FBD: langage Blocs Fonctionnels.
599
Cette opration consiste concevoir un modle du DFB que vous souhaitez utiliser dans votre application. Pour ce faire, utilisez l'diteur DFB pour dfinir et coder tous les lments qui constituent le DFB :
z z
Description du bloc fonction : nom, type (DFB), activation du diagnostic, commentaire. Structure du bloc fonction : paramtres, variables, sections de code.
Note : Si vous utilisez un DFB qui est dj dans la bibliothque dfinie par l'utilisateur et que vous le modifiez, le nouveau type modifi sera utilis pour toute instance supplmentaire du projet ouvert. Cependant, la bibliothque dfinie par l'utilisateur reste inchange.
600
z z z z z z z
Nom : nom du type DFB (32 caractres max.) Ce nom doit tre unique dans les bibliothques, les caractres utiliss autoriss dpendent du choix fait dans la zone Identificateurs de longlet Extensions de langgage des options du projet (Voir Unity Pro, Modes opratoires, Extensions de langage): Entres : paramtres d'entre (hors paramtres d'E/S) Sorties : paramtres de sortie (hors paramtres d'E/S) Entres/Sorties : paramtres d'E/S. Variables publiques : variables internes accessibles par le programme d'application. Variables prives : variables internes imbriques ou DFB, inaccessibles par le programme d'application. Sections : sections de code DFB dans LD, IL, ST ou FBD. Commentaire (1024 caractres maximum). Les caractres de formatage (retour chariot, onglet, etc.) ne sont pas autoriss.
Pour chaque type de DFB, un fichier descriptif est galement accessible par une bote de dialogue : taille du DFB, nombre de paramtres et variables, numro de version, date de la dernire modification, niveau de protection, etc. Aide en ligne pour les types DFB Il est possible de lier un fichier d'aide HTML chaque DFB dans la bibliothque dfinie par l'utilisateur. Ce fichier doit : z avoir un nom identique celui du DFB associ, z se trouver dans le rpertoire \Schneider Electric\FFBLibset\CustomLib\MyCustomFam\Language (o Language correspond Eng, Fre, Ger, Ita, Spa ou Chs selon la langue souhaite). Une fois le type de DFB cr, vous pouvez dfinir une instance de DFB via l'diteur de variables ou lorsque la fonction est appele dans l'diteur de programmes.
601
en tant que bloc fonction standard dans un langage contacts (LD) ou blocs fonction (FBD), en tant que fonction lmentaire dans un langage littral structur (ST) ou liste d'instructions (IL).
Une instance DFB peut tre utilise dans toutes les tches du programme d'application, sauf les tches vnementielles ou les transitions de diagramme fonctionnel en squence (SFC). Archivage Les types DFB crs par l'utilisateur peuvent tre stocks (Voir Unity Pro, Modes opratoires, Archivage dun type de DFB) dans la bibliothque de fonctions et de blocs fonctions.
602
17
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre prsente les diffrents lments qui constituent les blocs fonction utilisateur. Ce chapitre contient les sujets suivants :
Sujet Dfinition des donnes internes de blocs fonctions drivs (DBF) Paramtres DFB Variables DFB Section de code DFB Page 604 606 611 613
603
Les donnes internes du bloc fonction driv sont dfinies l'aide de symboles (ces donnes ne peuvent pas tre dsignes comme des adresses). Elments dfinir pour chaque paramtre Lors de la cration du bloc fonction, les lments suivants doivent tre dfinis pour chaque paramtre :
z
z z z z
Nom : nom du type DFB (32 caractres maximum). Ce nom doit tre unique dans les bibliothques, les caractres utiliss autoriss dpendent du choix fait dans la zone Identificateurs de longlet Extensions de langage des options du projet (Voir Unity Pro, Modes opratoires, Extensions de langage): un type d'objet (BOOL, INT, REAL, etc.). Commentaire de 1 024 caractres maximum (facultatif). Les caractres de mise en forme (retour chariot, tabulation, etc...) sont interdits), une valeur initiale. Attribut Lecture/Ecriture : dtermine si la variable peut tre crite lors de l'excution (R : lecture seule - R/W : lecture/criture). Cet attribut ne doit tre dfini que pour les variables publiques. Attribut de sauvegarde : dtermine si la variable peut tre enregistre.
Types d'objets
Les types d'objets disponibles pour les paramtres DFB appartiennent aux familles suivantes :
z
z z z
Famille de donnes lmentaires : EDT. Cette famille comprend les types d'objets suivants : Boolen (BOOL, EBOOL), Entier (INT, DINT, etc.), Rel (REAL), Chane de caractres (STRING), Chane de bits (BYTE, WORD, etc.), etc. Famille de donnes drives : DDT. Cette famille comprend les types d'objets tableau (ARRAY) et structure (utilisateur ou IODDT). Famille de donnes gnriques : ANY_ARRAY_xxx. Famille de bloc fonction : FB. Cette famille comprend les types d'objets EFB et DFB.
604
Les familles d'objets suivantes peuvent tre utilises pour chacun des paramtres DFB :
IODDT Non
FB Non Non
Oui Oui (voir Utilisation des IODDT dans un DFB, p. 626) Non Non Non Oui Non Non
Lgende : (1) (2) Famille de donnes drives, l'exception des types de donnes drives d'E/S (IODDT). Sauf les variables statiques de type EBOOL, sur les automates Quantum.
ATTENTION Dcalage de l'index pour les paramtres ANY_ARRAY_x L'utilisation de la variable ARRAY avec une valeur non nulle pour l'entre ANY_ARRAY_x de l'index de dbut provoque un dcalage. La valeur du dcalage correspond la valeur de l'index de dbut. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
605
Paramtres DFB
Illustration Cette illustration prsente des exemples de paramtres de DFB Entres Ecart Vitesse Enable Actions Entres/Sorties Controle Accel Erreur Sorties
Sorties
32 (2)
Entres/ Sorties
32
Lgende : (1) Nombre d'entres + Nombre d'entres/sorties infrieur ou gal 32 (2) Nombre de sorties + Nombre d'entres/sorties infrieur ou gal 32
606
Les seuls paramtres accessibles par le programme application en dehors de lappel sont les paramtres de sorties. Pour cela, vous devez utiliser dans le programme la syntaxe suivante : Nom_DFB.Nom_paramtre Nom_DFB reprsente le nom de l'instance du DFB utilis (32 caractres au maximum). Nom_paramtre reprsente le nom du paramtre de sortie (32 caractres au maximum). Exemple: Controle.Accel indique la sortie Accel de linstance de DFB nomm Controle
607
Paramtres EN et ENO
EN est un paramtre d'entre et ENO un paramtre de sortie. Ils sont de type BOOL et peuvent tre ou ne pas tre utiliss (facultatif) lors de la dfinition d'un type de DFB. Dans le cas o l'utilisateur souhaite les utiliser l'diteur les positionne automatiquement, EN est le premier paramtre d'entre et ENO le premier paramtre de sortie. Exemple dimplmentation des paramtres EN\ENO. Controle EN Ecart Entres Vitesse Erreur ENO Accel Sorties
la ou les sections constituants le code du DFB ne sont pas excutes (cela est gr par le systme), le paramtre de sortie ENO est mis ltat 0 (FALSE) par le systme.
la ou les sections constituants le code du DFB sont excutes (cela est gr par le systme), le paramtre de sortie ENO est dfini sur 1 (TRUE) par le systme.
Si une erreur est dtecte (erreur process par exemple) par l'instance du DFB, l'utilisateur peut s'il le souhaite dfinir le paramtre de sortie ENO sur 0 (FALSE). Dans ce cas :
z z
soit les paramtres de sorties sont figs dans ltat qui tait le leur lors du traitement prcdant jusqu la disparition du dfaut, soit l'utilisateur prvoit dans le code du DFB un forage des sorties dans l'tat qu'il souhaite jusqu' la disparition du dfaut.
608
Variable VAR_IN_OUT
Trs souvent, on utilise des blocs fonction pour lire une variable au niveau de lentre (variables dentre), traiter celle-ci, et sortir nouveau les valeurs modifies de la mme variable (variables de sortie). Ce cas exceptionnel d'une variable d'entre/de sortie est galement appel variable VAR_IN_OUT. Il convient de noter les particularits suivantes lors de lutilisation de blocs fonction/ DFB avec des variables VAR_IN_OUT : z une variable doit tre affecte toutes les entres VAR_IN_OUT. z il est interdit daffecter des valeurs littrales ou des constantes aux entres VAR_IN_OUT. z aucune valeur ne doit tre affecte aux sorties VAR_IN_OUT. z les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel du bloc fonction. Appel d'un bloc fonction avec une variable VAR_IN_OUT dans IL : CAL MY_FBLOCK(IN1:=V1, IN2:=V2, IO1:=V3, OUT1=>V4, OUT2=>V5) Appel du mme bloc fonction dans FBD :
MY_FBLOCK FBLOCK V1 V2 V3 IN1 IN2 IO1 OUT1 OUT2 IO1 V4 V5 V3
les variables VAR_IN_OUT ne peuvent pas tre utilises en dehors de l'appel du bloc fonction. Les appels de blocs fonction suivants sont par consquent invalides : Appel invalide, exemple 1 :
LD V1 CAL InOutFB Chargement des variables V1 dans l'accumulateur Appel d'un bloc fonction avec un paramtre VAR_IN_OUT. L'accumulateur est alors charg avec rfrence un paramtre VAR_IN_OUT. Liaison ET du contenu de l'accumulateur avec les variables V2. Erreurs : L'opration ne peut pas tre excute car il n'est pas possible d'accder au paramtre VAR_IN_OUT (contenu de l'accumulateur) en dehors de l'appel d'un bloc fonction.
AND V2
609
Les appels de blocs fonction suivants sont en revanche valides : Appel valide, exemple 1 :
CAL InOutFB (IN1:=V1,inout:=V2 Appel d'un bloc fonction avec un paramtre VAR_IN_OUT et affectation des paramtres rels au sein de l'appel de bloc fonction.
610
Variables DFB
Description des variables Ce tableau dcrit le rle de chaque type de variables.
Variable Publique Prive Nombre maximum illimit illimit Rle Ces variables internes du DFB peuvent tre utilise par le DFB, par le programme application et par lutilisateur en mode rglage. Ces variables internes de DFB peuvent tre utilises uniquement par ce bloc de fonction et ne sont par consquent pas accessibles par le programme application mais ces types de variables sont accessibles via le tableau d'animation. Ces variables sont gnralement des variables ncessaires la programmation du bloc, mais sans intrt pour lutilisateur (par exemple, le rsultat dun calcul intermdiaire,...).
Note : Les DFB imbriqus sont dclars comme des variables prives du DFB parent. Ainsi, leurs variables ne sont pas accessibles via la programmation, mais via la table d'animation.
Les seules variables accessibles par le programme application sont les variables publiques. Pour cela, vous devez utiliser dans le programme la syntaxe suivante: Nom_DFB.Nom_variable Nom_DFB reprsente le nom de l'instance du DFB utilis (32 caractres au maximum), Nom_variable reprsente le nom de la variable publique (8 caractres au maximum). Exemple : Controle.Gain indique la variable publique Gain de l'instance de DFB nomme Contrle
611
La dfinition sur 1 du bit systme %S94 provoque la sauvegarde des variables publiques que vous avez modifi par programme ou par rglage, en lieu et place des valeurs initiales de ces variables (dfinies dans les instances de DFB). Le remplacement nest possible que si lattribut de sauvegarde est correctement positionn pour la variable. ATTENTION ERREUR DE CHARGEMENT Le bit %S94 ne doit pas tre dfini sur 1 lors d'un chargement. Si le bit %S94 est dfini sur 1, le chargement choue. Le non-respect de cette directive peut entraner des lsions corporelles et/ou des dommages matriels.
612
Liste d'instructions IL, littral structur ST, langage contacts LD, Langage blocs fonctionnels (FBD).
un nom symbolique qui identifie la section (32 caractres au maximum), une condition de validation qui dfinit l'excution de la section, un commentaire (256 caractres au maximum), un attribut de protection (pas de protection, section protge en criture, section protge en lecture/criture).
Rgles de programmation
Lorsquelle est excute, une section de DFB ne peut utiliser que les paramtres que vous avez dfinis pour le bloc fonction (paramtres dentres, de sorties, dentres/sorties et variables internes). Ceci pour consquence, quun bloc fonction DFB ne peut utiliser les variables globales de lapplication, ni les objets d'entres/sorties, lexception des bits et mots systme (%Si, %SWi et %SDi). Une section de DFB a les droits daccs maximum (lecture et criture) sur ses paramtres.
613
Exemple de code
614
18
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre prsente la cration d'une instance DFB et son excution.
615
Instance DFB
elle exploite le code du type de DFB (le code n'est pas dupliqu). elle cre une zone de donnes spcifique cette instance, qui est la recopie des paramtres et des variables du type de DFB. Cette zone est situe dans l'espace donnes de l'application.
Vous devez reprer chaque instance de DFB que vous crez, par un nom de 32 caractres au maximum, les caractres utiliss autoriss dpendent du choix fait dans la zone Identificateurs de longlet Extensions de langgage des options du projet (Voir Unity Pro, Modes opratoires, Extensions de langage). Le premier caractre doit tre une lettre. Les mots clefs et les symboles sont interdits. Cration d'une instance A partir d'un type de DFB, vous pouvez crer autant d'instances que ncessaire; la seule limitation tant la taille mmoire de l'automate.
616
Instance DFB
Valeurs initiales
Les valeurs initiales des paramtres et variables publiques, que vous avez dfinies lors de la cration du type de DFB, peuvent tre modifies pour chaque instance du DFB. Les paramtres des DFB nont pas tous une valeur initiale. Modification des valeurs initiales des lments dans les instances de DFB
EDT (sauf type String) Type String Non Non Oui Oui Non Struct ures Non Non Non Oui Non DDT structure Non Non Oui Oui Non FB Non ANY_ARRAY IODDT Non Non Non ANY_... Non Non Non -
617
Instance DFB
2 3
Note : Les variables internes des DFB ne sont pas rinitialises lorsque la commande Gnrer le projet en ligne est excute aprs la modification d'une entre. Pour rinitialiser toutes les variables internes, utilisez la commande Regnrer tout le projet.
Le logiciel Unity Pro propose plusieurs outils de mise au point des DFB :
z z z
table d'animation : tous les paramtres, variables publiques et prives sont affichs et anims en temps rel (possibilit de modifier et de forcer les objets) ; point d'arrt, pas pas et diagnostic programme ; crans d'exploitation : pour la mise au point unitaire.
618
Instance DFB
Done BOOL
Done: sortie de valeur de prslection atteinte (type BOOL) V_cour: valeur courante du compteur (type DINT)
619
Instance DFB
Fonctionnement du compteur
Le programme interne du type de DFB Cpt_pieces est dfinie en langage ST de la manire suivante. !(*Programmation du DFB Cpt_pieces*) IF RE (Raz) THEN V_cour:=0; END_IF; IF RE (Count) THEN V_cour:=V_cour+1; END_IF; IF(V_cour>=Presel) THEN SET (Done); ELSE RESET (Done); END_IF;
620
Instance DFB
Exemple d'utilisation
Supposons que votre application ncessite de compter 3 types de pices (par exemple, des boulons, des crous et des vis). Vous pouvez utiliser 3 fois le type de DFB Cpt_pieces (3 instances) pour raliser ces diffrents comptages. Le nombre de pices approvisionner pour chaque type, est dfini respectivement dans les mots %MD10, %MD12 et %MD14 Lorsque le nombre de pices est atteint, le compteur commande une sortie (%Q1.2.1, %Q1.2.2 ou %Q1.2.3) qui pilote larrt du systme dapprovisionnement de pices correspondant.
621
Instance DFB
Le programme application est saisi en langage contacts de la manire suivante. Il utilise les 3 DFB (instances) Cpt_boulons, Cpt_crous et Cpt_vis afin de compter les diffrentes pices. Cpt_boulons %I1.0 Raz %MD10 %I1.1 Cpt_pieces Done %Q2.1
Presel
Count
Presel
Count
Presel
Count
622
19
Prsentation
Objet du chapitre Ce chapitre prsente lappel des instances de DFB partir des differents langages de programmation. Ce chapitre contient les sujets suivants :
Sujet Rgles dutilisation des DFB dans un programme Utilisation des IODDT dans un DFB Utilisation dun DFB dans un programme en langage contacts Utilisation dun DFB dans un programme en littral structur Utilisation dun DFB dans un programme en liste dinstructions Utilisation dun DFB dans un programme en langage blocs fonctionnels Page 624 626 630 632 636 640
Contenu de ce chapitre
623
Il ny a pas besoin de cbler tous les paramtres dentres, dentres/sorties ou de sorties, lexception des paramtres suivants que vous devez obligatoirement affecter : z les paramtres dentres de type donnes gnriques (ANY_INT, ANY_ARRAY,...), z les paramtres dentres/sorties, z les paramtres de sorties de type donnes (hors tableaux) gnriques (ANY_INT, ANY_REAL,...). les paramtres d'entres non cbls gardent la valeur du prcdent appel ou la valeur d'initialisation dfinies pour ces paramtres, si le bloc n'a jamais t appel. tous les objets affects aux paramtres d'entres, dentres/sorties et de sorties doivent tre obligatoirement de mme types que ceux dfinis lors de la cration du type de DFB (par exemple : si le type INT est dfini pour le paramtre d'entre "vitesse", vous ne pouvez pas y affecter le type DINT ou REAL). Seule exception les types BOOL et EBOOL pour les paramtres d'entres ou de sorties (pas pour les paramtres entres/sorties) peuvent tre mixs. Exemple : le paramtre d'entre "Validation" peut tre dfini en tant que BOOL et peut tre associ un bit interne %Mi qui est de type EBOOL. Par contre dans le code interne du type DFB le paramtre d'entre a bien la proprit d'un type BOOL (il ne sait pas grer les fronts).
624
Le tableau suivant rsume les diffrentes possibilits daffectation des paramtres possibles dans les diffrents langages de programmation :
Paramtre Entres Type EDT (2) BOOL DDT ANY_... ANY_ARRAY Entres/sorties EDT DDT IODDT ANY_... ANY_ARRAY Sorties EDT DDT ANY_... ANY_ARRAY Affectation du paramtre (1) Affectation
Cbl, valeur, objet ou expression Optionnelle Cbl, valeur, objet ou expression Optionnelle Cbl, valeur ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Cbl ou objet Obligatoire Obligatoire Obligatoire Obligatoire Obligatoire Obligatoire Obligatoire Obligatoire Optionnelle Optionnelle Obligatoire Optionnelle
(1) Cbl en langage contacts (LD) ou langage blocs fonctionnels (FBD). Valeur ou objet en langages liste dinstructions (IL) ou littral structur (ST). (2) Sauf paramtres de type BOOL
625
626
Le tableau suivant prsente les IODDT des diffrentes applications pour automates Modicon M340, Premium et Quantum qui peuvent tre utiliss dans un DFB :
Familles d'IODDT Application TOR T_DIS_IN_GEN T_DIS_IN_STD T_DIS_EVT T_DIS_OUT_GEN T_DIS_OUT_STD T_DIS_OUT_REFLEX Application analogique T_ANA_IN_GEN T_ANA_IN_STD T_ANA_IN_CTRL T_ANA_IN_EVT T_ANA_OUT_GEN T_ANA_OUT_STD T_ANA_IN_BMX T_ANA_IN_T_BMX T_ANA_OUT_BMX T_ANA_IN_VE T_ANA_IN_VWE T_ANA_BI_VWE T_ANA_BI_IN_VWE Application de comptage T_COUNT_ACQ T_COUNT_HIGH_SPEED T_COUNT_STD T_SIGN_CPT_BMX T_UNSIGN_CPT_BMX T_CNT_105 Application de came lectronique T_CCY_GROUP0 T_CCY_GROUP1_2_3 Application de commande d'axes Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Oui Oui Aucune Oui Oui Oui Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Oui Oui Oui Aucune Aucune Aucune Aucune Aucune Aucune Oui Oui Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Modicon M340 Premium Quantum
627
Familles d'IODDT T_AXIS_AUTO T_AXIS_STD T_INTERPO_STD T_STEPPER_STD Application Sercos T_CSY_CMD T_CSY_TRF T_CSY_RING T_CSY_IND T_CSY_FOLLOW T_CSY_COORD T_CSY_CAM Application de communication T_COM_STS_GEN T_COM_UTW_M T_COM_UTW_S T_COM_MB T_COM_CHAR T_COM_FPW T_COM_MBP T_COM_JNET T_COM_ASI T_COM_ETY_1X0 T_COM_ETY_210 T_COM_IBS_128 T_COM_IBS_242 T_COM_PBY T_COM_CPP100 T_COM_ETYX103 T_COM_ETHCOPRO T_COM_MB_BMX T_COM_CHAR_BMX T_COM_CO_BMX T_COM_ETH_BMX
Oui Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Oui Oui Oui Oui
Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Oui Aucune Aucune Aucune Aucune
Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune Aucune
628
Familles d'IODDT Application de rgulation T_PROC_PLOOP T_PROC_3SING_LOOP T_PROC_CASC_LOOP T_PROC_SPP T_PROC_CONST_LOOP Application de pesage T_WEIGHING_ISPY101 Commun aux applications T_GEN_MOD
Modicon M340
Premium
Quantum
Aucune
Oui
Aucune
Aucune
Aucune
Aucune
629
par un appel textuel dans un bloc opration. La syntaxe et les contraintes sur les paramtres sont identiques celles du langage littral structur ST. par un appel graphique
Les entres des blocs fonction peuvent tre cbles ou affectes dune valeur, dun objet ou dune expression. Dans tous les cas, le type de llment extrieur (valeur, valuation de lexpression,...) doit tre identique celui du paramtre dentre. Un bloc DFB doit avoir au moins une entre boolenne cble et une sortie (si ncessaire). Pour cela, vous pouvez par exemple utiliser les paramtres dentre EN et le paramtre de sortie ENO (voir description des paramtres ci-aprs). Vous devez obligatoirement cbler ou affecter les entres de type ANY_ARRAY, les sorties de type donnes gnriques (ANY_...) et les entres/sorties dun bloc DFB. Reprsentation graphique dun bloc DFB Lillustration suivante prsente un exemple simple de programmation dun DFB:
Control_port_1 (1) Controle (2) ABS(%MD0) (3) 10000 (4) %Q1.2.5 (5) %MW100 (6) Ecart (7) Vitesse (7) Accel (8) %MW8 %Q1.2.1 Erreur (8)
630
Le tableau ci-aprs liste les diffrents lments du bloc DFB, reprs dans lillustration prcdente :
Repre 1 2 3 4 5 6 7 8 9 Elment Nom du DFB (instance) Nom du type de DFB Entre affecte par une expression Entre affecte par une valeur Entre cble Entre affecte par un objet (adresse ou symbole) Paramtres dentres Paramtres de sorties Paramtres d'entres/sorties
631
appel formel, lorsque les arguments sont des affectations (paramtre = valeur). Dans ce cas, lordre de saisie des arguments dans la liste est sans importance. Vous pouvez utiliser le paramtre dentre EN et le paramtre de sortie ENO pour commander lexcution du bloc fonction, appel informel, lorsque les arguments sont des valeurs (expression, objet ou une valeur immdiate). Dans ce cas, lordre de saisie des arguments dans la liste doit respecter lordre des paramtres dentres du DFB, y compris pour les entres non affectes (largument est un champ vide). Lutilisation des paramtres EN et ENO nest pas possible.
Nom_DFB (argument 1,argument 2,....,argument n) Note : les entres de type ANY_ARRAY, les sorties de type donnes gnriques (ANY_...) et les entres/sorties dun DFB doivent tre obligatoirement affectes.
632
Exemple de DFB
Lexemple simple suivant va permettre de comprendre les diffrents appels dun DFB en langage littral structur. Soit linstance Cpt_1 du DFB de type Cpt_pieces : Cpt_1 Cpt_pieces Clear P_Select Raz Presel Done %Q1.2.1
100
Count
Lappel formel du DFB Cpt_1 seffectue suivant la syntaxe : Cpt_1 (Raz:=Clear, Presel:=P_Select, Count:=100, Done=>%Q1.2.1); Cas o seuls les paramtres dentres affects par une valeur (expression, objet ou valeur immdiate) sont saisis dans la liste des arguments : Cpt_1 (Raz:=Clear, Presel:=P_Select, Count:=100); ... %Q1.2.1:=Cpt_1.Done;
633
Elments de la phrase
Le tableau suivant liste les diffrents lments de la phrase de programme, lors dun appel formel du DFB:
Elment Cpt_1 Raz, Presel, Count := Clear 100 Done => %Q1.2.1 ; , Signification Nom de linstance de DFB Paramtres dentres Symbole daffectation dune entre Objet daffectation dune entre (symbole) Valeur daffectation dune entre Paramtre de sortie Symbole daffectation dune sortie Objet daffectation dune sortie (adresse) Symbole de fin de phrase Symbole de sparation des arguments
Lappel informel du DFB Cpt_1 seffectue suivant la syntaxe : Cpt_1 (Clear, %MD10, , 100); ... %Q1.2.1:=Cpt_1.Done;
634
Elments de la phrase
Le tableau suivant liste les diffrents lments de la phrase de programme, lors dun appel formel du DFB :
Elment Cpt_1 Clear, %MD10, ,100 ; , Signification Nom de linstance de DFB Objet ou valeur daffectation des entres. Les entres non affectes sont reprsentes par un champ vide Symbole de fin de phrase Symbole de sparation des arguments
635
linstruction CAL nom_DFB est suivie dune liste darguments qui sont des affectations (paramtre = valeur). Dans ce cas, lordre de saisie des arguments dans la liste est sans importance. Vous pouvez utiliser lentre EN pour commander lexcution du bloc fonction, linstruction CAL nom_DFB est suivie dune liste darguments qui sont des valeurs (expression, objet ou valeur immdiate). Dans ce cas, lordre de saisi des arguments dans la liste doit respecter lordre des paramtres dentres du DFB, y compris pour celles qui sont non affectes (largument est un champ vide). Lutilisation des paramtres EN et ENO nest pas possible, linstruction CAL nom_DFB nest pas suivie par une liste darguments. Dans ce cas, cette instruction doit tre prcde de laffectation des paramtres dentres au travers dun registre: chargement de la valeur (Load) puis affectation au paramtre dentre (Store). Lordre daffectation des paramtres (LD/ST) na pas dimportance; toutefois, vous devez affecter tous les paramtres dentres qui le ncessitent avant dexcuter la commande CAL. Lutilisation des paramtres EN et ENO nest pas possible.
CAL Nom_DFB (argument 1, argument 2, ..., argument n) ou LD Valeur 1 ST Paramtre 1 ... LD Valeur n ST Paramtre n CAL Nom_DFB Note : les entres de type ANY_ARRAY, les sorties de type donnes gnriques (ANY_...) et les entres/sorties dun DFB doivent tre obligatoirement affectes.
636
Lexemple suivant va permettre de comprendre les diffrents appels dun DFB en langage liste dinstructions. Soit linstance Cpt_1 du DFB de type Cpt_pieces : Cpt_1 Cpt_pices Clear P_Select Raz Presel Done %Q1.2.1
100
Count
Lorsque les arguments sont des affectations, lappel du DFB Cpt_1 seffectue suivant la syntaxe : CAL Cpt_1 (Raz:=Clear, Presel:=%MD10, Count:=100, Done=>%Q1.2.1) Cas o seuls les paramtres dentres affects par une valeur (expression, objet ou valeur immdiate) sont saisis dans la liste des arguments : CAL Cpt_1 (Raz:=Clear, Presel:=%MD10, Count:=100) ... LD Cpt_1.Done ST %Q1.2.1 Afin de rendre plus lisible votre programme application, vous pouvez saisir un retour la ligne aprs les virgules de sparation des arguments. La phrase prend alors la syntaxe suivante : CAL Cpt_1( Raz:=Clear, Presel:=%MD10, Count:=100, Done=>%Q1.2.1)
637
Lorsque les arguments sont des valeurs, lappel du DFB Cpt_1 seffectue suivant la syntaxe : CAL Cpt_1 (Clear, %MD10,, 100) ... LD Cpt_1.Done ST %Q1.2.1
638
Lorsquil ny a pas dargument, lappel du DFB Cpt_1 seffectue suivant la syntaxe : LD Clear ST Cpt_1.Raz LD %MD10 ST Cpt_1.Presel LD 100 ST Cpt_1.Count CAL Cpt_1 ... LD Cpt_1.Done ST %Q1.2.1
639
Enable (6)
640
Le tableau ci-aprs liste les diffrents lments du bloc DFB, reprs dans lillustration prcdente :
Repre 1 2 3 4 5 6 7 8 Elment Nom du DFB (instance) Nom du type de DFB Entre affecte par un objet (symbole) Entre affecte par une valeur Entre cble Paramtres dentres Paramtre de sortie Sortie affecte par un objet (adresse)
641
642
20
Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre dcrit comment crer et utliser les Blocs Fonction de Diagnostic Utilisateur sur automates Premium, Atrium et Quantum. Ce chapitre contient les sujets suivants :
Sujet Prsentation des DFB de diagnostic utilisateur Comment crer un DFB de diagnostic utilisateur Page 644 645
643
DFB de diagnostic
REGDFB (Voir Manuel Unity Pro, Bibliothque diagnostics, REGDFB : Enregistrement et datation d'alarme) pour lenregistrement et la datation dalarme. DEREG (Voir Manuel Unity Pro, Bibliothque diagnostics, DEREG : Dregistration d'alarme) pour la dregistration dalarme.
Ces DFB vous permettent de surveiller votre process, ils vont remonter automatiquement dans le Viewer de diagnostic les informations que vous aurez choisi. Vous pouvez ainsi surveiller des changements dtat ou des variations dans votre process. Avantages Les principaux avantages de ce service sont les suivants :
z z z
Le diagnostic est intgr au projet, il peut ainsi tre pens au moment du dveloppement et ainsi rpondre au mieux aux besoins de lexploitant. Le systme de datation et denregistrement des erreurs seffectue la source (dans lautomate), ainsi linformation reprsente exactement ltat du process. Vous pouvez connecter plusieurs Viewers (Unity Pro, Magelis, Factory Cast) qui transcriront lexploitant ltat exact du process. Chaque Viewer est indpendant et toute action effectue sur lun (un acquittement par exemple) est automatiquement visualis sur les autres.
644
DFB de diagnostic
Vous pouvez crer un type de DFB standard et ensuite le paramtrer et le programmer afin quil soit un DFB de diagnostic. Vous pouvez utiliser le modle USER_DIAG_ST_MODEL (Voir Manuel Unity Pro, Bibliothque diagnostics, USER_DIAG_ST_MODEL description) que nous vous fournissons ou utiliser un modle que vous avez en votre possession.
Ces deux procdures sont dcrites ci-dessous. Note : pour comprendre le fonctionnement des DFBs de diagnostic utilisateur, reportez-vous au modle USER_DIAG_ST_MODEL (Voir Manuel Unity Pro, Bibliothque diagnostics, USER_DIAG_ST_MODEL description) dcrit dans la bibliothque de diagnostic.
645
DFB de diagnostic
Le tableau suivant dcrit la procdure suivre pour crer un DFB de diagnostic sans modle prdfini :
Etape 1 Action Dans la vue structurelle du navigateur projet, cliquez avec le bouton droit de la souris sur le rpertoire Types FB Drivs. Rsultat : un menu contextuel apparat. Activez la commande Ouvrir. Rsultat : lditeur de donnes souvre lcran. Il est directement positionn sur longlet Types DFB qui donne la liste des DFB du projet. Slectionnez la premire cellule de la colonne Nom vide (signale par une flche) et saisissez le nom du nouveau type de DFB puis validez par Entre. Rsultat : la structure vide du type de DFB est cre. Ce nouveau DFB appartient maintenant la liste des DFB existants. Il apparat galement sous larborescence Types FB Drivs. Dans lditeur de donnes, cliquez avec le bouton droit de la souris sur le type de DFB que vous venez de crer. Rsultat : le menu contextuel apparat. Activez la commande Proprits. Rsultat : la fentre des proprits des donnes apparat. Cliquez sur le bouton Diag. Rsultat : la case est coche en rouge. Ce type de DFB est maintenant un type de DFB de diagnostic. Si dans les Options du projet (Voir Manuel Unity Pro, Modes opratoires, Choix des paramtres de configuration de gnration de projet) le diagnostic de lapplication a t demand, la gnration du projet intgrera le service de diagnostic projet dans lautomate. Crez les entres, les sorties, les entres/sorties et les variables internes du DFB. Remarque : dans les proprits de lentre, noubliez pas de cocher la case Diag des entres qui seront surveilles par le DFB. Ecrivez le code de votre DFB en utilisant la fonction REGDFB (Voir Manuel Unity Pro, Bibliothque diagnostics, REGDFB : Enregistrement et datation d'alarme) pour enregistrer et dater lalarme et la fonction DEREG (Voir Manuel Unity Pro, Bibliothque diagnostics, DEREG : Dregistration d'alarme) pour effectuer la dregistration dalarme. Remarque : reportez-vous la description du code du modle de DFB de diagnostic utilisateur (Voir Manuel Unity Pro, Bibliothque diagnostics, USER_DIAG_ST_MODEL description) USER_DIAG_ST_MODEL si vous ntes pas familier de ce type de DFB.
5 6
646
DFB de diagnostic
Etape 9
Action Lancez une analyse du projet afin de valider votre noveau type de DFB. Rsultat : votre nouveau type de DFB est cr, vous pouvez maintenant crer et insrer des instances de ce type dans votre programme. Lorsque votre automate sera en RUN, le Viewer (Voir Manuel Unity Pro, Modes opratoires, Viewer de diagnostic) affichera les alarmes selon le fonctionnement que vous avez programm.
647
DFB de diagnostic
Le tableau suivant dcrit la procdure suivre pour crer un DFB de diagnostic laide du modle prdfini USER_DIAG_ST_MODEL :
Etape 1 Action Dans la vue structurelle du navigateur projet, cliquez avec le bouton droit de la souris sur le rpertoire Types FB Drivs. Rsultat : un menu contextuel apparat. Activez la commande Obtenir de la bibliothque. Rsultat : la fentre Navigateur de la bibliothque apparat. Slectionnez le modle de DFB de diagnostic USER_DIAG_ST_MODEL dans la bibliothque de diagnostic et cliquez sur le bouton >> afin de le transfrer dans votre projet. Validez le transfert par Ok. Rsultat : le modle apparat dans le navigateur du projet. Remplacez le nom USER_DIAG_ST_MODEL par le nom du type de DFB utilisateur que vous voulez raliser. Modifiez et crez les entres, les sorties, les entres/sorties et les variables internes du DFB. Remarque : dans les proprits de lentre, noubliez pas de cocher la case Diag des entres qui seront surveilles par le DFB. Ecrivez le code de votre DFB en utilisant le modle. Remarque : reportez-vous la description du code du modle de DFB de diagnostic utilisateur (Voir Manuel Unity Pro, Bibliothque diagnostics, USER_DIAG_ST_MODEL description) si vous ntes pas familier de ce type de DFB. Lancez une analyse du projet afin de valider votre noveau type de DFB. Rsultat : votre nouveau type de DFB est cr, vous pouvez maintenant crer et insrer des instances de ce type de DFB dans votre programme. Lorsque votre automate sera en RUN, le Viewer (Voir Manuel Unity Pro, Modes opratoires, Viewer de diagnostic) affichera les alarmes selon le fonctionnement que vous avez programm. Remarque : le message affich par le Viewer est le commentaire associ linstance du DFB. Par consquent, noubliez pas de renseigner ce commentaire pour chaque instance cre.
2 3
4 5 6
648
Annexes
Prsentation
Objet de cette annexe Contenu de cette annexe Lannexe contient des informations complmentaires.
649
Annexes
650
A
Vue d'ensemble
Introduction Les tableaux prsents dans cette section rpertorient les codes et les valeurs d'erreur gnrs pour les EFB, par bibliothque et par famille. Ce chapitre contient les sujets suivants :
Sujet Tableaux des codes d'erreur pour la bibliothque de base Tableaux des codes d'erreur pour la bibliothque de diagnostic Tableau des codes d'erreur pour la bibliothque de communications Tableau des codes d'erreur pour la bibliothque de gestion des E/S Tableaux des codes d'erreur pour la bibliothque CONT_CTL Tableaux des codes d'erreur pour la bibliothque de mouvements Tableaux des codes d'erreur pour la bibliothque d'obsolescences Erreurs courantes relatives aux valeurs en virgule flottante Page 652 654 655 661 670 679 682 692
Contenu de ce chapitre
651
Code d'erreur
16#8A20 Division par zro 16#8A1F 16#8A26 Une valeur ngative ne peut tre convertie en donnes de type Dure Erreur arithmtique
16#8ACD Dpassement arithmtique (%S18 activ) Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F F
-30 003 -30 172 -30 173 -30 171 -30 177 -
16#8ACD Dpassement arithmtique (%S18 activ) 16#8A24 16#8A23 16#8A25 16#8A1F Erreur arithmtique / Dpassement multiplication Erreur arithmtique / Dpassement addition Erreur arithmtique / Paramtre dpassant la plage Une valeur ngative ne peut tre convertie en donnes de type Dure Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
652
Statistiques
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Statistiques :
Etat ENO en cas d'erreur F F F Valeur d'erreur (format dcimal) -30 183 -30 176 Valeur d'erreur (format hexadcimal) Description de l'erreur
Code d'erreur
16#8A19 Valeur d'entre hors limites 16#8A20 Division par zro Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Erreur arithmtique
E_ARITHMETIC_ ERROR E_FP_STATUS_FAILED E_ARITHMETIC_ ERROR_MUL_OV E_ARITHMETIC_ ERROR_ADD_OV E_ARITHMETIC_ ERROR_BIG_PAR E_ARITHMETIC_ERROR_ UNSIGN_OV FP_ERROR
F F F F F F F
-30 170 -30 150 -30 172 -30 173 -30 171 -30 174 -
16#8A26
16#8A3A Opration incorrecte de virgule flottante 16#8A24 16#8A23 16#8A25 16#8A22 Erreur arithmtique / Dpassement multiplication Erreur arithmtique / Dpassement addition Erreur arithmtique / Paramtre dpassant la plage Erreur arithmtique / Dpassement non sign Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
MIN
FP_ERROR
MUX
E_SELECTOR_OUT_OF_ RANGE
-30 175
653
Diagnostic
Nom EFB
ONLEVT
E_EFB_ONLEVT
16#8A0C Erreur d'EFB ONLEVT Etats ENO z Vrai = enregistrement des erreurs OK z Faux = chec de l'enregistrement des erreurs
654
655
Boolen tendu
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB du type Boolen tendu :
Etat ENO en cas d'erreur F F F Valeur d'erreur (format dcimal) -30 191 -30 531 8 195 Valeur d'erreur (format hexadcimal) 16#8A11 Description de l'erreur
Code d'erreur
16#88BD Variable non affecte la zone %MW (4x) 16#2003 Valeur affiche dans le mot d'tat (apparat avec E_EFB_MSTR_ERROR) Valeur affiche dans le mot d'tat (apparat avec E_EFB_NOT_STATE_RAM_4X) Voir les tableaux suivants :
z Codes d'erreur Modbus Plus et
CREAD_REG
8 206
16#200E
CREAD_REG
EtherNet SY/MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Modbus Plus et EtherNet SY/ MAX) z Codes d'erreur spcifiques SY/ MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur spcifiques SY/ MAX) z Codes d'erreur EtherNet TCP/IP (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Ethernet TCP/IP) CWRITE_REG E_EFB_MSTR_ERROR CWRITE_REG F F -30 191 8 195 16#8A11 16#2003 Erreur de communication MSTR Valeur affiche dans le mot d'tat (apparat avec E_EFB_MSTR_ERROR) Valeur affiche dans le mot d'tat (apparat avec E_EFB_NOT_STATE_RAM_4X)
CWRITE_REG -
8 206
16#200E
656
Nom EFB
Code d'erreur
Description de l'erreur
CWRITE_REG -
EtherNet SY/MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Modbus Plus et EtherNet SY/ MAX) z Codes d'erreur spcifiques SY/ MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur spcifiques SY/ MAX) z Codes d'erreur EtherNet TCP/IP (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Ethernet TCP/IP) MBP_MSTR E_EFB_OUT_OF_ RANGE E_EFB_NOT_STATE_ RAM_4X F -30 192 16#8A10 Erreur interne : L'EFB a dtect une violation, par exemple l'criture a dpass les limites %MW (4x)
MBP_MSTR MBP_MSTR
F F
16#88BD Variable non affecte la zone %MW (4x) 16#2003 Valeur affiche dans le mot d'tat (apparat avec E_EFB_MSTR_ERROR dans l'tat du bloc de commande) Valeur affiche dans le mot d'tat (apparat avec E_EFB_NOT_STATE_RAM_4X dans l'tat du bloc de commande)
MBP_MSTR
8 206
16#200E
657
Nom EFB
Code d'erreur
Description de l'erreur
MBP_MSTR
Voir les tableaux suivants : z Codes d'erreur Modbus Plus et EtherNet SY/MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Modbus Plus et EtherNet SY/ MAX) z Codes d'erreur spcifiques SY/ MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur spcifiques SY/ MAX) z Codes d'erreur EtherNet TCP/IP (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Ethernet TCP/IP) Paramtre hors limites
F F F F
16#759E
16#88BD Variable non affecte la zone %MW (4x) 16#8A11 16#2003 Erreur de communication MSTR Valeur affiche dans le mot d'tat (apparat avec W_WARN_OUT_OF_RANGE) Valeur affiche dans le mot d'tat (apparat avec E_EFB_NOT_STATE_RAM_4X)
READ_REG
MBPUNLOC
8 206
16#200E
658
Nom EFB
Code d'erreur
Description de l'erreur
READ_REG
EtherNet SY/MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Modbus Plus et EtherNet SY/ MAX) z Codes d'erreur spcifiques SY/ MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur spcifiques SY/ MAX) z Codes d'erreur EtherNet TCP/IP (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Ethernet TCP/IP) WRITE_REG WRITE_REG WRITE_REG WRITE_REG W_WARN_OUT_OF_ RANGE E_EFB_NOT_STATE_ RAM_4X E_EFB_MSTR_ERROR F F F F 30 110 -30 531 -30 191 8 195 16#759E Paramtre hors limites
16#88BD Variable non affecte la zone %MW (4x) 16#8A11 16#2003 Erreur de communication MSTR Valeur affiche dans le mot d'tat (apparat avec W_WARN_OUT_OF_RANGE) Valeur affiche dans le mot d'tat (apparat avec E_EFB_NOT_STATE_RAM_4X)
WRITE_REG
8 206
16#200E
659
Nom EFB
Code d'erreur
Description de l'erreur
WRITE_REG
Voir les tableaux suivants : z Codes d'erreur Modbus Plus et EtherNet SY/MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Modbus Plus et EtherNet SY/ MAX) z Codes d'erreur spcifiques SY/ MAX (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur spcifiques SY/ MAX) z Codes d'erreur EtherNet TCP/IP (Voir Manuel Unity Pro, Bibliothque de Communication, Codes d'erreur Ethernet TCP/IP)
660
661
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Configuration des E/S analogiques :
Etat ENO en cas d'erreur Valeur d'erreur (format dcimal) -30188 -30200 -30201 Valeur d'erreur (format hexadcimal) Description de l'erreur
Code d'erreur
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A08 L'entre IN_REG n'est pas associe au numro d'un mot d'entre (%IW) 16#8A07 L'entre IN_REG est associe un numro non valide d'un mot d'entre (%IW) 16#8A06 MN_RAW MX_RAW 16#8A05 Valeur inconnue de MN_PHYS 16#8A04 Valeur inconnue de MX_PHYS 16#89FE ST_REG n'est pas saisi 16#89FD ST_REG est trop grand 16#89FC ST_CH n'est pas saisi 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A08 L'entre OUT_REG n'est pas associe au numro d'un mot de sortie (%MW) 16#8A07 L'entre OUT_REG est associe un numro non valide d'un mot de sortie (%MW) 16#8A06 MN_RAW MX_RAW 16#8A05 Valeur inconnue de MN_PHYS 16#8A04 Valeur inconnue de MX_PHYS 16#89FE ST_REG n'est pas saisi 16#89FD ST_REG est trop grand 16#89FC ST_CH n'est pas saisi
F F F F F F
F F F F F F
662
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Affichage des E/S analogiques :
Code d'erreur Etat ENO en cas d'erreur Valeur d'erreur (format dcimal) -30187 -30188 Valeur d'erreur (format hexadcimal) 16#8A15 Description de l'erreur
I_NORM I_NORM
E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F
Dpassement ngatif
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A13 Le module ne fournit aucun tat d'avertissement
E_EFB_NO_WARNING_ STATUS_AVAILABLE
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A13 16#8A19 16#8A17 Le module ne fournit aucun tat d'avertissement Valeur d'entre hors limites Erreur interne
E_EFB_NO_WARNING_ STATUS_AVAILABLE
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A13 Le module ne fournit aucun tat d'avertissement
F F
16#8A0D Le filtre SQRT n'est pas disponible 16#8A19 16#8A17 Valeur d'entre hors limites Erreur interne
E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F
663
Nom EFB
Code d'erreur
Description de l'erreur
I_PHYS_WARN
E_EFB_NOT_CONFIGURED
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A10 Erreur interne : L'EFB a dtect une violation, par exemple l'criture a dpass les limites %MW (4x)
I_RAW
E_EFB_OUT_OF_RANGE
-30192
I_RAW
E_EFB_NOT_CONFIGURED
-30188
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A16 Dpassement positif 16#8A15 Dpassement ngatif
I_RAWSIM
E_EFB_NOT_CONFIGURED
-30188
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A13 Le module ne fournit aucun tat d'avertissement
E_EFB_NO_WARNING_STA TUS_AVAILABLE
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A16 Dpassement positif 16#8A15 Dpassement ngatif
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A16 Dpassement positif 16#8A15 Dpassement ngatif
664
Nom EFB
Code d'erreur
Description de l'erreur
E_EFB_NO_MEASURING_ RANGE
Erreur interne
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A17 Erreur interne
E_EFB_NO_MEASURING_ RANGE
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A15 Dpassement ngatif
O_RAW O_RAW
E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F
-30187 -30188
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A19 Valeur d'entre hors limites
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A19 Valeur d'entre hors limites
665
E/S directe
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille E/S directe :
Code d'erreur Etat ENO en cas d'erreur F F Valeur d'erreur (format dcimal) 0000 8193 Valeur d'erreur (format hexadcimal) 0000 2001 Description de l'erreur
IMIO_IN IMIO_IN
La commande fonctionne correctement Type de commande non valide (par exemple, le module d'E/S adress n'est pas un module d'entre) Numro de chssis ou d'emplacement non valide (l'affectation des E/S du configurateur ne contient aucune entre de module pour cet emplacement) Numro d'emplacement non valide Le module ne fonctionne pas correctement La commande fonctionne correctement Type de commande non valide (par exemple, le module d'E/S adress n'est pas un module d'entre) Numro de chssis ou d'emplacement non valide (l'affectation des E/S du configurateur ne contient aucune entre de module pour cet emplacement) Numro d'emplacement non valide Le module ne fonctionne pas correctement
IMIO_IN
8194
2002
F F F F
IMIO_OUT
8194
2002
IMIO_OUT IMIO_OUT
F F
8195 -4095
2003 F001
666
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Configuration des E/S Quantum :
Etat ENO en cas d'erreur Valeur d'erreur (format dcimal) -30188 -30188 -30197 -30188 -30188 -30197 -30188 -30198 -30188 -30197 -30188 -30197 -30188 -30188 -30198 -30188 Description de l'erreur Valeur d'erreur (format hexadci mal) 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0B Erreur du EFB : Mode courant non autoris
Code d'erreur
ACI030 ACI040 ACI040 ACO020 ACO130 ACO130 AII330 AII330 AII33010 AII33010 AIO330 AIO330 AMM090 ARI030 ARI030 ATI030
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0B Erreur du EFB : Mode courant non autoris
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0A Erreur du EFB : Donnes de configuration incorrectes
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0B Erreur du EFB : Mode courant non autoris
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0B Erreur du EFB : Mode courant non autoris
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0A Erreur du EFB : Donnes de configuration incorrectes
E_EFB_NOT_CONFIGURED F
667
Nom EFB
Code d'erreur
Valeur d'erreur (format dcimal) -30188 -30188 -30188 20480 -30215 24576 -30216 32768 -30210 -30199 -30211 28672 -30217 8192 -30212 12288 -30213 -30188 -30190 -30188
Description de l'erreur Valeur d'erreur (format hexadci mal) 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#5000 16#89F9 16#6000 16#89F8 16#8000 16#89FE 16#8A09 16#89FD 16#7000 16#89F7 16#2000 16#89FC 16#3000 16#89FB Dfini comme E_EFB_USER_ERROR_16 Dfini comme E_EFB_USER_ERROR_17 Dfini comme E_EFB_USER_ERROR_11 Dfini comme E_EFB_USER_ERROR_1 + 1 Dfini comme E_EFB_USER_ERROR_12 Dfini comme E_EFB_USER_ERROR_18 Dfini comme E_EFB_USER_ERROR_13 Dfini comme E_EFB_USER_ERROR_14
AVI030 AVO020 DROP ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 ERT_854_10 QUANTUM QUANTUM XBE
E_EFB_NOT_CONFIGURED F E_EFB_NOT_CONFIGURED F E_EFB_NOT_CONFIGURED F ES_WRONG_SLOT E_WRONG_SLOT ES_HEALTHBIT E_HEALTHBIT ES_TIMEOUT E_TIMEOUT E_ERT_BASIC - valeurs E_WRONG_ANSW ES_CBUF_OFLOW E_CBUF_OFLOW ES_WRONG_PAKET E_WRONG_PAKET ES_WRONG_FELD E_WRONG_FELD F F F F F F F F F F F F F F
E_EFB_NOT_CONFIGURED F E_EFB_UNKNOWN_DROP F
16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A12 Station d'E/S inconnue / aucune affectation des E/S Quantum
E_EFB_NOT_CONFIGURED F
668
Nom EFB
Code d'erreur
Description de l'erreur Valeur d'erreur (format hexadci mal) 16#8A12 Station d'E/S inconnue / aucune affectation des E/S Quantum
XBE XDROP
E_EFB_UNKNOWN_DROP
E_EFB_NOT_CONFIGURED F
Note : pour plus de dtails concernant le ERT_854_10, reportez-vous la description ERT_854_10 (Voir Manuel Unity Pro, Bibliothque, Gestion des E/S, Flux de donnes) dans la bibliothque de gestion des E/S.
669
670
Condition
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Condition :
Code d'erreur Etat ENO en cas d'erreur T F Valeur d'erreur (format dcimal) 30 110 Valeur d'erreur (format hexadcimal) Description de l'erreur
DTIME DTIME
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat DTIME, reportez-vous la description de DTIME (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
DTIME
T/F
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A6A YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LAG_FILTER LAG_FILTER
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LDLG LDLG
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
FIL FIL
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
MFLOW MFLOW
T F
30 110 -
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
671
Nom EFB
Code d'erreur
Description de l'erreur
MFLOW
Pour plus de dtails concernant le mot d'tat MFLOW, reportez-vous la description de MFLOW (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A57 Echelle d'entre nulle : les limites max. et min. doivent tre diffrentes Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat SCALING, reportez-vous la description de SCALING (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
SCALING
T/F
TOTALIZER TOTALIZER
T F
30 110 -
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
TOTALIZER TOTALIZER
T T/F
30 113 -
16#75A1 La valeur maximale du compteur a t atteinte Pour plus de dtails concernant le mot d'tat TOTALIZER, reportez-vous la description de TOTALIZER (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A6B YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
672
Automate
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Automate :
Code d'erreur Etat ENO en cas d'erreur T F T F Valeur d'erreur (format dcimal) 30 110 -30 121 30 111 Valeur d'erreur (format hexadcimal) Description de l'erreur
16#759E Paramtre hors limites 16#8A57 Echelle d'entre nulle : les limites max. et min. doivent tre diffrentes
16#759F AUTOTUNE a chou Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 L'EFB optimis n'est pas autoris ici ou n'a pas encore t appel Pour plus de dtails concernant le mot d'tat AUTOTUNE, reportez-vous la description de AUTOTUNE (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
AUTOTUNE AUTOTUNE
F T/F
-30 120 -
16#8A58 -
T F F
16#759E Paramtre hors limites 16#8A57 Echelle d'entre nulle : les limites max. et min. doivent tre diffrentes Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat PI_B, reportez-vous la description de PI_B (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
PI_B
T/F
PIDFF PIDFF
T F
16#759E Paramtre hors limites 16#8A57 Echelle d'entre nulle : les limites max. et min. doivent tre diffrentes
673
Nom EFB
Code d'erreur
Description de l'erreur
PIDFF
FP_ERROR
Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat PIDFF, reportez-vous la description de PIDFF (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
PIDFF
T/F
F T F
16#8A18 Erreur interne 16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat STEP2, rfrez-vous la description de STEP2 (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
STEP2
T/F
STEP3 STEP3
T F
30 110 -
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat STEP3, rfrez-vous la description de STEP3 (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
STEP3
T/F
674
Mathmatiques
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Mathmatiques :
Etat ENO en cas d'erreur Valeur d'erreur (format dcimal) 30 110 Valeur d'erreur (format hexadcimal) Description de l'erreur
Code d'erreur
COMP_DB COMP_DB
W_WARN_OUT_OF_RANGE T FP_ERROR F
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
K_SQRT K_SQRT
W_WARN_OUT_OF_RANGE T FP_ERROR F
30 110 -
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
MULDIV_W
FP_ERROR
SUM_W
FP_ERROR
675
Mesure
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Mesure :
Code d'erreur Etat ENO en cas d'erreur F T F Valeur d'erreur (format dcimal) -30 152 30 108 16#759C Valeur d'erreur (format hexadcimal) Description de l'erreur
16#8A38 Nombre virgule flottante incorrect AVGMV : N doit tre <= 50 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F T F
16#8A38 Nombre virgule flottante incorrect AVGMV_K : N doit tre <= 10000 16#759D Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A59 DZONE : DZ doit tre >= 0 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LOOKUP_TABLE1 E_ERR_DEN
16#8A38 Nombre virgule flottante incorrect 16#8A65 Nombre impair d'entres 16#8A64 point de base x(i) <= x(i-1) Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
676
Traitement en sortie
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Traitement en sortie :
Etat ENO en cas d'erreur T F Valeur d'erreur (format dcimal) 30 110 Valeur d'erreur (format hexadcimal) Description de l'erreur
Code d'erreur
MS MS
W_WARN_OUT_OF_RANGE FP_ERROR
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat MS, reportez-vous la description de MS (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
MS
T/F
PWM1 PWM1
WAF_PBM_TMINMAX FP_ERROR
F F
-30 113 -
16#8A5F t_min < t_max Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat SERVO, reportez-vous la description de SERVO (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
SERVO
FP_ERROR
SERVO
T/F
W_WARN_OUT_OF_RANGE
16#759E Paramtre hors limites 16#8A57 Echelle d'entre nulle : les limites max. et min. doivent tre diffrentes Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat SPLRG, reportez-vous la description de SPLRG (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
E_ERR_NULL_INPUT_SCALE F FP_ERROR F
SPLRG
T/F
677
Gestion de consigne
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Gestion de consigne :
Etat ENO en cas d'erreur Valeur d'erreur (format dcimal) 30 110 Description de l'erreur Valeur d'erreur (format hexadci mal) 16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat RAMP, reportez-vous la description de RAMP (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs) Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat RATIO, reportez-vous la description de RATIO (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
Code d'erreur
RAMP RAMP
W_WARN_OUT_OF_RANGE T FP_ERROR F
RAMP
T/F
RATIO
FP_ERROR
RATIO
T/F
SP_SEL SP_SEL
W_WARN_OUT_OF_RANGE T FP_ERROR F
30 110 -
16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692 Pour plus de dtails concernant le mot d'tat SP_SEL, reportez-vous la description de SP_SEL (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)
SP_SEL
T/F
678
679
Dmarrage MMF
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Dmarrage MMF :
Etat ENO en cas d'erreur F T T F T T F T F T F T F T F T F T F T F T F T F F T F T Valeur d'erreur (format dcimal) -30 200 9 010 7 004 -30 200 9 010 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 7 004 -30 200 -30 200 7 004 -30 200 7 004 Valeur d'erreur (format hexadcimal) Description de l'erreur
Code d'erreur
CFG_CP_F CFG_CP_F CFG_CP_F CFG_CP_V CFG_CP_V CFG_CP_V CFG_CS CFG_CS CFG_FS CFG_FS CFG_IA CFG_IA CFG_RA CFG_RA CFG_SA CFG_SA DRV_DNLD DRV_DNLD DRV_UPLD DRV_UPLD IDN_CHK IDN_CHK IDN_XFER IDN_XFER MMF_BITS MMF_ESUB MMF_ESUB MMF_IDNX MMF_IDNX
BAD_REVISION MMF_BAD_4X MMF_ABORT_SUB BAD_REVISION MMF_BAD_4X MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB BAD_REVISION BAD_REVISION MMF_ABORT_SUB BAD_REVISION MMF_ABORT_SUB
16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho
680
Nom EFB
Code d'erreur
Valeur d'erreur (format dcimal) -30 200 7 004 7 005 -30 200 7 004 -30 200 -30 200 7 004 -30 200 7 004
Description de l'erreur
BAD_REVISION MMF_ABORT_SUB
16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#1B5D Le sous-programme ne s'est pas termin temps 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#1B5C erreur de liaison SubNum/SubNumEcho
MMF_SUB_TIMEOUT T F T F F T F T
MMF_MOVE BAD_REVISION MMF_MOVE MMF_ABORT_SUB MMF_RST MMF_SUB MMF_SUB BAD_REVISION BAD_REVISION MMF_ABORT_SUB
Note : pour plus de dtails concernant les codes et les valeurs d'erreur MMF, reportez-vous la section Rapports d'erreurs et de dfauts (voir Manuel Unity Pro, Commande de mouvement, Bibliothque de blocs) dans la bibliothque de mouvements.
681
682
CLC
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille CLC.
Code d'erreur Etat ENO en cas d'erreur F F F F Valeur d'erreur (format dcimal) -30 152 -30 152 -30 102 Valeur d'erreur (format hexadcimal) Description de l'erreur
16#8A38 Nombre virgule flottante incorrect 16#8A38 Nombre virgule flottante incorrect 16#8A6A YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LAG1 LAG1
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LEAD_LAG1 LEAD_LAG1
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
E_ERR_DEN
16#8A38 Nombre virgule flottante incorrect 16#8A6B YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
E_ERR_AB1_MAX_MIN F FP_ERROR F
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
PID1 PID1
E_ERR_DEN E_ERR_PID_MAX_MIN
F F
683
Nom EFB
Code d'erreur
Description de l'erreur
PID1
FP_ERROR
Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A68 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
SMOOTH_RATE SMOOTH_RATE
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
THREE_STEP_CON1 E_ERR_DEN THREE_STEP_CON1 W_WARN_DSR_TN THREE_STEP_CON1 W_WARN_DSR_TSN THREE_STEP_CON1 W_WARN_DSR_KP THREE_STEP_CON1 E_ERR_DSR_HYS THREE_STEP_CON1 FP_ERROR
F T T T F F
16#8A38 Nombre virgule flottante incorrect 16#7595 TN = 0 16#7596 TSN = 0 16#7597 KP <= 0 16#8A67 2 * |UZ| < |HYS| Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F F
16#8A38 Nombre virgule flottante incorrect 16#7599 DR : XRR < -100 ou XRR > 100 16#7598 T2 > T1 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A66 2 * |UZ| < |HYS| 16#8A38 Nombre virgule flottante incorrect 16#7599 DR : XRR < -100 ou XRR > 100
684
Nom EFB
Code d'erreur
Description de l'erreur
TWOPOINT_CON1 TWOPOINT_CON1
W_WARN_ZDR_T1T2 FP_ERROR
16#7598 T2 > T1 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
TWOPOINT_CON1
E_ERR_ZDR_HYS
-30 106
685
CLC_PRO
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille CLC_PRO :
Code d'erreur Etat ENO en cas d'erreur F F F F Valeur d'erreur (format dcimal) -30 152 -30 111 -30 112 Valeur d'erreur (format hexadcimal) Description de l'erreur
16#8A38 Nombre virgule flottante incorrect 16#8A61 16#8A60 vmax <= 0 bmax <= 0 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
COMP_PID E_ERR_DEN COMP_PID WAF_KPID_KUZ COMP_PID WAF_KPID_OGUG COMP_PID WAF_KPID_UZ COMP_PID FP_ERROR
F F F F F
16#8A38 Nombre virgule flottante incorrect 16#8A62 16#8A68 16#8A63 gain_red < 0 ou gain_red > 1 YMAX < YMIN db < 0 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F T T F F
-30 152 -30 116 -30 117 30 106 30 107 -30 118 -
16#8A38 Nombre virgule flottante incorrect 16#8A5C t_acc > t_rise / 2 16#8A5B t_rise trop lev 16#759A t_off >= halfperiod 16#759B t_max <= t_min 16#8A5A func_no <= 0 ou func_no > 8 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A6A YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
686
Nom EFB
Code d'erreur
Description de l'erreur
LAG LAG
E_ERR_DEN FP_ERROR
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LAG2 LAG2
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
LEAD_LAG LEAD_LAG
E_ERR_DEN FP_ERROR
F F
-30 152 -
16#8A38 Nombre virgule flottante incorrect Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F T T F
16#8A38 Nombre virgule flottante incorrect 16#7599 DR : XRR < -100 ou XRR > 100 16#7598 T2 > T1 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F T T F
16#8A66 2 * |UZ| < |HYS| 16#8A38 Nombre virgule flottante incorrect 16#7599 DR : XRR < -100 ou XRR > 100 16#7598 T2 > T1 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F F
16#8A66 2 * |UZ| < |HYS| 16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
PDM PDM
PDM_TMAX_TMIN PDM_OG_UG
F F
16#8A5D t_max <= t_min 16#8A69 |pos_up_x| > |pos_lo_x| ou |neg_up_x| > |neg_lo_x| 687
Nom EFB
Code d'erreur
Description de l'erreur
PDM
FP_ERROR
Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
PI PI PI
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A68 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A68 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F F F
16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
PWM PWM
WAF_PBM_TMINMAX FP_ERROR
F F
-30 113 -
16#8A5F t_min < t_max Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
QPWM
WAF_PBM_TMINMAX
-30 113
688
Nom EFB
Code d'erreur
Description de l'erreur
QPWM
FP_ERROR
Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
F T T T F F
16#8A38 Nombre virgule flottante incorrect 16#7595 TN = 0 16#7596 TSN = 0 16#7597 KP <= 0 16#8A67 2 * |UZ| < |HYS| Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
E_ERR_DEN
16#8A38 Nombre virgule flottante incorrect 16#8A6B YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692
E_ERR_AB1_MAX_MIN F FP_ERROR F
689
Extension/ Compatibilit
Nom EFB
Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Extension/Compatibilit :
Code d'erreur Etat ENO en cas d'erreur F F F F F F F F F F F Valeur d'erreur (format dcimal) -30 482 -30 482 -30 482 -30 482 -30 482 -30 183 -30 183 -30 183 -30 183 -30 200 -30 201 Valeur d'erreur (format hexadcimal) Description de l'erreur
AKF_TA AKF_TE AKF_TI AKF_TS AKF_TV FIFO GET_3X GET_4X GET_BIT IEC_BMDI IEC_BMDI
E_AKFEFB_TIMEBASE_ IS_ZERO E_AKFEFB_TIMEBASE_ IS_ZERO E_AKFEFB_TIMEBASE_ IS_ZERO E_AKFEFB_TIMEBASE_ IS_ZERO E_AKFEFB_TIMEBASE_ IS_ZERO E_INPUT_VALUE_OUT_ OF_RANGE E_INPUT_VALUE_OUT_ OF_RANGE E_INPUT_VALUE_OUT_ OF_RANGE E_INPUT_VALUE_OUT_ OF_RANGE E_EFB_USER_ERROR_1 E_EFB_USER_ERROR_2
16#88EE Base temporelle zro 16#88EE Base temporelle zro 16#88EE Base temporelle zro 16#88EE Base temporelle zro 16#88EE Base temporelle zro 16#8A19 Valeur d'entre hors limites 16#8A19 Valeur d'entre hors limites 16#8A19 Valeur d'entre hors limites 16#8A19 Valeur d'entre hors limites 16#8A08 Type de registre invalide pour la valeur d'entre (SourceTable). 16#8A07 Slection par le dcalage d'entre (OffsetInSourceTable) d'une adresse en dehors des limites acceptables. 16#8A06 Le dcalage d'entre (OFF_IN) n'est pas gal 1 ni un multiple de 16+1. 16#8A05 Type de registre invalide pour la valeur de sortie (DestinationTable). 16#8A04 Slection par le dcalage de sortie (OffsetInDestinationTable) d'une adresse en dehors des limites acceptables.
35006145 05 novembre 2006
IEC_BMDI
E_EFB_USER_ERROR_3
-30 202
IEC_BMDI
E_EFB_USER_ERROR_4
-30 203
IEC_BMDI
E_EFB_USER_ERROR_5
-30 204
690
Nom EFB
Code d'erreur
Description de l'erreur
IEC_BMDI
E_EFB_USER_ERROR_6
16#8A03 Le dcalage de sortie (OffsetInDestinationTable) n'est pas gal 1 ni un multiple de 16+1. 16#8A02 La valeur de (NumberOfElements) est 0. 16#8A01 La valeur de (NumberOfElements) traite plus de 1 600 bits. 16#8A00 La valeur de (NumberOfElements) traite plus de 100 mots. 16#89FF La valeur de (NumberOfElements) slectionne une adresse source en dehors des limites acceptables. 16#89FE La valeur de (NumberOfElements) slectionne une adresse cible en dehors des limites acceptables. 16#89FD La valeur de (NumberOfElements) n'est pas un multiple de 16. 16#89FC Avertissement : Dpassement d'adresse des adresses d'entre et de sortie. 16#8A19 Valeur d'entre hors limites 16#8A19 Valeur d'entre hors limites 16#8A21 Slecteur hors limites 16#8A19 Valeur d'entre hors limites
F F F
E_EFB_USER_ERROR_10 F
IEC_BMDI
E_EFB_USER_ERROR_11 F
-30 210
IEC_BMDI IEC_BMDI
E_EFB_USER_ERROR_12 F E_EFB_USER_ERROR_13 F
F F F F
691
Valeur d'erreur (format dcimal) -30 150 -30 151 -30 152 -30 154 -30 155 -30 158 -30 159 -30 162
Valeur d'erreur (format hexadcimal) 16#8A3A 16#8A39 16#8A38 16#8A36 16#8A35 16#8A32 16#8A31 16#8A2E 16#8A2D 16#8A2A
Description de l'erreur
Valeur de base (n'apparat pas comme une valeur d'erreur) Opration incorrecte de virgule flottante L'oprande n'est pas un nombre de type REAL valide Division par zro incorrecte Opration incorrecte de virgule flottante / Division par zro Dpassement de virgule flottante Opration incorrecte de virgule flottante / Dpassement Dpassement de virgule flottante / Division par zro Opration incorrecte de virgule flottante / Dpassement / Division par zro Erreur interne
692
Conformit CEI
B
Prsentation
Vue d'ensemble Contenu de ce chapitre Ce chapitre contient les tableaux de conformit associs la norme CEI 61131-3. Ce chapitre contient les sous-chapitres suivants :
Souschapitre B.1 B.2 B.3 B.4 Sujet Informations gnrales relatives la norme CEI 61131-3 Tableaux de conformit CEI Extensions de la norme CEI 61131-3 Syntaxe des langages textuels Page 695 697 723 725
693
Conformit CEI
694
Conformit CEI
B.1
695
Conformit CEI
La version actuelle du systme de programmation Unity Pro prend en charge un ensemble conforme d'lments de langage dfinis dans la norme. Signification du terme "conformit" dans ce contexte : Conformment la norme, l'installateur d'un systme de programmation CEI peut choisir ou retirer des fonctionnalits de langage spcifiques, voire des langages complets, dans les tables des fonctionnalits qui font partie intgrante des exigences du systme. Un systme dit conforme doit mettre en uvre les fonctionnalits choisies en respectant les exigences de la norme. z En outre, l'installateur peut utiliser les lments de langage de programmation dfinis dans un environnement de programmation interactif. La norme stipule clairement qu'elle ne couvre pas la dfinition de tels environnements. De ce fait, l'installateur dispose d'un certain degr de libert et peut proposer des procdures de traitement et de prsentation optimises pour des lments de langage spcifiques. z Unity Pro laisse ainsi une certaine libert l'utilisateur qui peut crer des "projets" pour traiter de manire combine les lments "Configuration" et "Ressource" du langage CEI. L'utilisateur bnficie galement d'une certaine souplesse concernant les mcanismes de traitement des dclarations de variable ou d'instanciation de bloc fonction.
z
Conformment la norme, les fonctionnalits prises en charge et les autres informations de mise en uvre spcifiques sont fournies dans la dclaration de conformit et les tableaux associs (voir sections suivantes).
696
Conformit CEI
B.2
Prsentation
Vue d'ensemble
Ce systme respecte les exigences de la norme CEI 61131-3 en matire de langages et fonctionnalits (voir tableaux ci-aprs). Ce sous-chapitre contient les sujets suivants :
Sujet Elments communs Elments de langage IL Elments de langage ST Elments graphiques communs Elments de langage LD Paramtres dpendants de la mise en uvre Conditions d'erreur Page 698 712 714 716 717 718 721
Contenu de ce sous-chapitre
697
Conformit CEI
Elments communs
698
Conformit CEI
Elments communs
699
Conformit CEI
N de tableau 7
N de fonctionnalit 1a 1b 2a 2b
Description de la fonctionnalit Valeur littrale de dure sans caractre de soulignement : prfixe court Prfixe long Valeur littrale de dure avec caractre de soulignement : prfixe court Prfixe long Valeur littrale de date (prfixe long) Valeur littrale de date (prfixe court) Valeur littrale d'heure (prfixe long) Valeur littrale d'heure (prfixe court) Valeur littrale de date et heure (prfixe long) Valeur littrale de date et heure (prfixe court) Type de donnes BOOL Type de donnes INT Type de donnes DINT Type de donnes UINT Type de donnes UDINT Type de donnes REAL Type de donnes TIME Type de donnes DATE Type de donnes TIME_OF_DAY ou TOD Type de donnes DATE_AND_TIME ou DT Type de donnes CHAINE Type de donnes OCTET Type de donnes MOT Type de donnes MOTD Type de donnes Tableau Types de donnes structures Initialisation de types de donnes tableau Initialisation de types de donnes structures drives
1 2 3 4 5 5
10
1 3 4 7 8 10 12 13 14 15 16 17 18 19
12
4 5
14
4 6
700
Conformit CEI
N de tableau 15
N de fonctionnalit 1 2 3 4 5 7 8 9
Description de la fonctionnalit Emplacement entre Emplacement sortie Emplacement mmoire Taille d'un bit (prfixe X) Taille d'un bit (pas de prfixe) Taille d'un mot (16 bits) Taille d'un mot double (32 bits) Taille d'un mot long (quad - 64 bits) Dclaration d'emplacements de variables symboliques (Remarque 5, p. 709) Affectation d'emplacements de tableau (Remarque 5, p. 709) Affectation automatique en mmoire de variables symboliques Dclaration de tableaux (Remarque 11, p. 710) Dclaration de tableaux mmoriss (Remarque 11, p. 710) Dclaration de variables structures Initialisation de variables directement reprsentes (Remarque 11, p. 710) Affectation d'emplacements et de valeurs initiales de variables symboliques Affectation et initialisation d'emplacements de tableau Initialisation de variables symboliques Initialisation de tableaux (Remarque 11, p. 710) Dclaration et initialisation de tableaux mmoriss (Remarque 11, p. 710) Initialisation de variables structures Initialisation de constantes Initialisation d'instances de bloc fonction Entre inverse Sortie inverse Appel formel de fonction/bloc fonction Appel informel de fonction/bloc fonction Utilisation des paramtres EN et ENO indique dans le langage LD Utilisation sans paramtres EN et ENO indique dans le langage FBD 701
17
3 4 5 6 7 8
18
1 3 4 5 6 7 8 9 10
19
1 2
19a
1 2
20
1 2
Conformit CEI
N de tableau 20a
N de fonctionnalit 1 2 3
Description de la fonctionnalit Dclaration de variables d'E/S (textuel) Dclaration de variables d'E/S (graphique) Liaison graphique de variable d'E/S des variables diffrentes (graphique) Fonctions surcharges Fonctions types *_TO_** (Remarque 1, p. 707) TRUNC (Remarque 2, p. 708) *_BCD_TO_** (Remarque 3, p. 708) **_TO_BCD_* (Remarque 3, p. 708) Fonction ABS Fonction SQRT Fonction LN Fonction LOG Fonction EXP Fonction SIN Fonction COS Fonction TAN Fonction ASIN Fonction ACOS Fonction ATAN Fonction ADD Fonction MUL Fonction SUB Fonction DIV Fonction MOD Fonction EXPT Fonction MOVE Fonction SHL Fonction SHR Fonction ROR Fonction ROL
21
1 2
22
1 2 3 4
23
1 2 3 4 5 6 7 8 9 10 11
24
12 13 14 15 16 17 18
25
1 2 3 4
702
Conformit CEI
N de tableau 26
N de fonctionnalit 5 6 7 8
Description de la fonctionnalit Fonction AND Fonction OR Fonction XOR Fonction NOT Fonction SEL Fonction MAX Fonction MIN Fonction LIMIT Fonction MUX Fonction GT Fonction GE Fonction EQ Fonction LE Fonction LT Fonction NE Fonction LEN (Remarque 4, p. 708) Fonction LEFT (Remarque 4, p. 708) Fonction RIGHT (Remarque 4, p. 708) Fonction MID (Remarque 4, p. 708) Fonction INSERT (Remarque 4, p. 708) Fonction DELETE (Remarque 4, p. 708) Fonction REPLACE (Remarque 4, p. 708) Fonction FIND (Remarque 4, p. 708)
27
1 2a 2b 3 4
28
5 6 7 8 9 10
29
1 2 3 4 6 7 8 9
703
Conformit CEI
N de tableau 30
Description de la fonctionnalit Fonction ADD (Remarque 6, p. 710) Fonction ADD_TIME Fonction ADD_TOD_TIME Fonction ADD_DT_TIME Fonction SUB (Remarque 6, p. 710) Fonction SUB_TIME Fonction SUB_DATE_DATE Fonction SUB_TOD_TIME Fonction SUB_TOD_TOD Fonction SUB_DT_TIME Fonction SUB_DT_DT Fonction MUL (Remarque 6, p. 710) Fonction MULTIME Fonction DIV (Remarque 6, p. 710) Fonction DIVTIME Qualificatif RETAIN pour variables internes (Remarque 11, p. 710) Qualificatif RETAIN pour variables de sortie (Remarque 11, p. 710) Qualificatif RETAIN pour variables d'entre (Remarque 11, p. 710) Qualificatif RETAIN pour blocs fonction internes (Remarque 11, p. 710) Dclaration de variables VAR_IN_OUT (textuel) Dclaration et utilisation de variables VAR_IN_OUT (graphique) Dclaration de variables VAR_IN_OUT avec affectation diffrentes variables (graphique) Bloc fonction bistable (rglage dominant) Bloc fonction bistable (rarmement dominant) Dtecteur front montant Dtecteur front descendant
33
1a 2a 2b 3a 4a 4b 4c
34
1 2
35
1 2
704
Conformit CEI
N de tableau 36
N de fonctionnalit 1a 1b 1d 2a 2b 2d 3a 3b 3d
Description de la fonctionnalit Bloc fonction CTU (compteur) Bloc fonction CTU_DINT Bloc fonction CTU_UDINT Bloc fonction CTD (dcompteur) Bloc fonction CTD_DINT Bloc fonction CTD_UDINT Bloc fonction CTUD (compteur-dcompteur) Bloc fonction CTUD_DINT Bloc fonction CTUD_UDINT Bloc fonction TP (impulsion) Bloc fonction TON (dlai l'activation) Bloc fonction TOF (dlai la dsactivation) Utilisation de variables directement reprsentes Etape et tape initiale (forme graphique avec liaisons directes) Indicateur d'tape (forme gnrale) Temps coul pour l'tape (forme gnrale) Utilisation du nom de transition Condition de transition associe via le nom de transition dans le langage LD Condition de transition associe via le nom de transition dans le langage FBD Condition de transition associe via le nom de transition dans le langage IL Condition de transition associe via le nom de transition dans le langage ST Toute variable boolenne dclare dans un bloc VAR ou VAR_OUTPUT, ou son quivalent graphique, peut tre une action Dclaration graphique d'action dans le langage LD Dclaration graphique d'action dans le langage FBD Dclaration textuelle d'action dans le langage ST Dclaration textuelle d'action dans le langage IL Bloc action voisin, de manire physique ou logique, de l'tape (Remarque 7, p. 710) Blocs action concatns voisins, de manire physique ou logique, de l'tape (Remarque 8, p. 710) 705
37
1 2a 3a
39 40
19 1 3a 4
41
7 7a 7b 7c 7d
42
1 2l 2f 3s 3i
43
1 2
Conformit CEI
N de tableau 44
N de fonctionnalit 1 2
Description de la fonctionnalit Qualificatif d'action dans bloc action pris en charge Nom d'action dans bloc action pris en charge None - pas de qualificatif Qualificatif N Qualificatif R Qualificatif S Qualificatif L Qualificatif D Qualificatif P Qualificatif DS Qualificatif P1 Qualificatif P0 Contrle d'action sans "cycle final" Squence unique Divergence de slection de squence : priorit des valuations de transition de gauche droite Convergence de slection de squence Squences simultanes - divergence et convergence Saut de squence : priorit des valuations de transition de gauche droite Boucle de squence : priorit des valuations de transition de gauche droite Construction CONFIGURATION...END_CONFIGURATION (Remarque 12, p. 711) Construction TASK priodique Construction TASK non priodique Construction WITH pour association PROGRAM dans TASK (Remarque 9, p. 710) Dclaration PROGRAM sans association TASK (Remarque 10, p. 710) Ordonnancement non premptif (Remarque 13, p. 711) Ordonnancement premptif (Remarque 14, p. 711)
45
1 2 3 4 5 6 7 9 11 12
45a 46
2 1 2a 3 4 5a 6a
49
1 5a 5b 6a 6c
50
5a 5b
706
Conformit CEI
Remarque 1
Liste des fonctions de conversion de type : z BOOL_TO_BYTE, BOOL_TO_DINT, BOOL_TO_INT, BOOL_TO_REAL, BOOL_TO_TIME, BOOL_TO_UDINT, BOOL_TO_UINT, BOOL_TO_WORD, BOOL_TO_DWORD z BYTE_TO_BOOL, BYTE_TO_DINT, BYTE_TO_INT, BYTE_TO_REAL, BYTE_TO_TIME, BYTE_TO_UDINT, BYTE_TO_UINT, BYTE_TO_WORD, BYTE_TO_DWORD, BYTE_TO_BIT z DINT_TO_BOOL, DINT_TO_BYTE, DINT_TO_INT, DINT_TO_REAL, DINT_TO_TIME, DINT_TO_UDINT, DINT_TO_UINT, DINT_TO_WORD, DINT_TO_DWORD, DINT_TO_DBCD, DINT_TO_STRING z INT_TO_BOOL, INT_TO_BYTE, INT_TO_DINT, INT_TO_REAL, INT_TO_TIME, INT_TO_UDINT, INT_TO_UINT, INT_TO_WORD, INT_TO_BCD, INT_TO_DBCD, INT_TO_DWORD, INT_TO_STRING z REAL_TO_BOOL, REAL_TO_BYTE, REAL_TO_DINT, REAL_TO_INT, REAL_TO_TIME, REAL_TO_UDINT, REAL_TO_UINT, REAL_TO_WORD, REAL_TO_DWORD, REAL_TO_STRING z TIME_TO_BOOL, TIME_TO_BYTE, TIME_TO_DINT, TIME_TO_INT, TIME_TO_REAL, TIME_TO_UDINT, TIME_TO_UINT, TIME_TO_WORD, TIME_TO_DWORD, TIME_TO_STRING z UDINT_TO_BOOL, UDINT_TO_BYTE, UDINT_TO_DINT, UDINT_TO_INT, UDINT_TO_REAL, UDINT_TO_TIME, UDINT_TO_UINT, UDINT_TO_WORD, UDINT_TO_DWORD z UINT_TO_BOOL, UINT_TO_BYTE, UINT_TO_DINT, UINT_TO_INT, UINT_TO_REAL, UINT_TO_TIME, UINT_TO_UDINT, UINT_TO_WORD, UINT_TO_DWORD z WORD_TO_BOOL, WORD_TO_BYTE, WORD_TO_DINT, WORD_TO_INT, WORD_TO_REAL, WORD_TO_TIME, WORD_TO_UDINT, WORD_TO_UINT, WORD_TO_BIT, WORD_TO_DWORD z DWORD_TO_BOOL, DWORD_TO_BYTE, DWORD_TO_DINT, DWORD_TO_INT, DWORD_TO_REAL, DWORD_TO_TIME, DWORD_TO_UDINT, DWORD_TO_UINT, DWORD_TO_BIT Les effets de chaque conversion sont dcrits dans l'aide fournie avec la bibliothque de base.
707
Conformit CEI
Remarque 2
Liste de types pour la fonction de troncature : REAL_TRUNC_DINT, REAL_TRUNC_INT, REAL_TRUNC_UDINT, REAL_TRUNC_UINT Les effets de chaque conversion sont dcrits dans l'aide fournie avec la bibliothque de base.
Remarque 3
Liste de types pour la fonction de conversion BCD : z INT_TO_BCD, INT_TO_DBCD, DINT_TO_DBCD Les effets de chaque conversion sont dcrits dans l'aide fournie avec la bibliothque de base. Remarque 4 Liste de types pour la fonction chane : LEN_INT, LEFT_INT, RIGHT_INT, MID_INT, INSERT_INT, DELETE_INT, REPLACE_INT, FIND_INT
708
Conformit CEI
Remarque 5
Une variable peut tre affecte une variable directement reprsente lorsque le type est strictement identique. Par exemple, une variable de type INT peut uniquement tre affecte une variable directement reprsente de type INT. Il existe cependant une exception : Pour les variables de mmoire de mot interne (%MW<i>), mot linaire (%IW<i>) et mot constante (%KW<i>), vous pouvez utiliser n'importe quel type de variable dclare. Affectations autorises :
Syntaxe Bit interne Mot interne Type de Types de variable autoriss donnes EBOOL ARRAY [..] OF EBOOL Tous les types sont autoriss l'exception de : z EBOOL z ARRAY [..] OF EBOOL Aucune affectation, car chevauchement entre %MW<i>, %MD<i> et %MF<i> Aucune affectation, car chevauchement entre %MW<i>, %MD<i> et %MF<i> Tous les types sont autoriss l'exception de : z EBOOL z ARRAY [..] OF EBOOL Aucune affectation, car chevauchement entre %KW<i>, %KD<i> et %KF<i> Ce type de variables existe uniquement sur les automates Premium. Aucune affectation, car chevauchement entre %KW<i>, %KD<i> et %KF<i> Ce type de variables existe uniquement sur les automates Premium. EBOOL INT DINT 709
%MD<i>
DINT
Rel interne
%MF<i>
REAL
Mot constante
%KW<i>
INT
%KD<i>
DINT
Rel constante
%KF<i>
REAL
Conformit CEI
Type de Types de variable autoriss donnes EBOOL EBOOL ARRAY [..] OF EBOOL Ce type de variables existe uniquement sur les automates Quantum. Tous les types sont autoriss l'exception de : z EBOOL z ARRAY [..] OF EBOOL Ce type de variables existe uniquement sur les automates Quantum.
Mot linaire
%IW<i>
INT
INT ...
INT Type identique (Sur certains modules d'E/S numriques, il est possible d'affecter des tableaux EBOOL aux objets %IX<topo> et %QX<topo>.) BOOL
Bit extrait
%MWi.j, ...
BOOL
Remarque 6
Uniquement l'oprateur "+" (pour ADD), "-" (pour SUB), "*" (pour MUL) ou "/" (pour DIV) dans le langage ST. Cette fonctionnalit apparat uniquement dans l'"affichage tendu" du diagramme. Cette fonctionnalit apparat dans l'"affichage tendu" du diagramme non pas sous la forme de blocs concatns, mais sous la forme d'une liste droulante de noms d'action avec qualificatifs associs dans un symbole de bloc. Il existe uniquement une injection de l'instance PROGRAM dans TASK. Le format textuel est remplac par une bote de dialogue de proprits. Le format textuel est remplac par une bote de dialogue de proprits. Toutes les variables sont mmorises (qualificatif RETAIN utilis de manire implicite dans les dclarations de variables).
Remarque 7 Remarque 8
Remarque 9
Remarque 10 Remarque 11
710
Conformit CEI
Remarque 12 Remarque 13
Le format textuel est remplac par le Navigateur de projet. L'utilisateur peut obtenir un comportement non premptif l'aide de l'instruction Mask-IT. Les paramtres MASKEVT (masquage global des vnements) et UNMASKEVT (dmasquage global des vnements) sont disponibles dans les fonctions systme de la bibliothque. Par dfaut, le systme multitche est premptif.
Remarque 14
711
Conformit CEI
Elments de langage IL
Elments de langage IL Tableau de conformit CEI des lments de langage IL :
N de N de fonc- Description de la fonctionnalit tableau tionnalit 51b 51b 52 1 2 1 2 3 4 6 7 7a 8 9 10 11 11a 12 13 14 15 16 17 18 19 20 21 53 1a 1b 2 4 5 Expression entre parenthses commenant par un oprateur explicite Expression entre parenthses (forme courte) Oprateur LD (avec modificateur "N") Oprateur ST (avec modificateur "N") Oprateur S, R Oprateur AND (avec modificateurs "(", "N") Oprateur OR (avec modificateurs "(", "N") Oprateur XOR (avec modificateurs "(", "N") Oprateur NOT Oprateur ADD (avec modificateur "(") Oprateur SUB (avec modificateur "(") Oprateur MUL (avec modificateur "(") Oprateur DIV (avec modificateur "(") Oprateur MOD (avec modificateur "(") Oprateur GT (avec modificateur "(") Oprateur GE (avec modificateur "(") Oprateur EQ (avec modificateur "(") Oprateur NE (avec modificateur "(") Oprateur LE (avec modificateur "(") Oprateur LT (avec modificateur "(") Oprateur JMP (avec modificateurs "C", "N") Oprateur CAL (avec modificateurs "C", "N") Oprateur RET (avec modificateurs "C", "N") (Remarque, p. 713) ) (opration d'valuation diffre) CAL pour bloc fonction avec liste d'arguments informelle CAL pour bloc fonction avec liste d'arguments formelle CAL pour bloc fonction avec chargement/stockage d'arguments Appel de fonction avec liste d'arguments formelle Appel de fonction avec liste d'arguments informelle
712
Conformit CEI
Remarque
713
Conformit CEI
Elments de langage ST
Elments de langage ST Tableau de conformit CEI des lments de langage ST :
N de tableau 55 N de fonctionnalit 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 56 1 2 3 4 5 6 7 8 9 10 Description de la fonctionnalit Mise entre parenthses (expression) Evaluation de fonction : Nomfonction(listeArguments) Elvation une puissance : ** Ngation : Complment : NOT Multiplication : * Division : / Modulo : MOD Addition : + Soustraction : Comparaison : <, >, <=, >= Egalit : = Ingalit : <> Boolen ET : & Boolen ET : AND Boolen OU exclusif : XOR Boolen OU : OR Affectation Appel de bloc fonction et utilisation sortie bloc fonction Instruction RETURN (Remarque, p. 715) Instruction IF Instruction CASE Instruction FOR Instruction WHILE Instruction REPEAT Instruction EXIT Instruction vide
714
Conformit CEI
Remarque
715
Conformit CEI
Remarque
716
Conformit CEI
Elments de langage LD
Elments de langage LD Tableau de conformit CEI des lments de langage LD :
N de tableau 59 N de fonc- Description de la fonctionnalit tionnalit 1 2 60 1 2 61 1 3 5 7 62 1 2 3 4 8 9 Barre d'alimentation gauche Barre d'alimentation droite Liaison horizontale Liaison verticale Contact fermeture (barre verticale) (Remarque, p. 717) Contact ouverture (barre verticale) (Remarque, p. 717) Contact de dtection de transition positive (barre verticale) (Remarque, p. 717) Contact de dtection de transition ngative (barre verticale) (Remarque, p. 717) Bobine Bobine inverse Bobine SET (mmorisation) Bobine RESET (dclenchement) Bobine de dtection de transition positive Bobine de dtection de transition ngative
Remarque
717
Conformit CEI
Limites et comportement 32 caractres Dans Unity Pro : 1 024 caractres par objet d'diteur. Importation : limit par les contraintes XML ou l'utilisation de chanes UDB dans la couche persistante. Unity V1.0 prend uniquement en charge 1 directive pragma, utilise pour le convertisseur hrit : { ConvError (' texte erreur'); } toute autre construction pragma est ignore (un message d'avertissement est fourni)
Syntaxe et smantique pour l'utilisation du caractre (la fonctionnalit n 2 du tableau 5 est prise en charge) guillemet lorsqu'une application particulire prend en charge la fonctionnalit n 4 du tableau 5, mais pas la fonctionnalit n 2. Plage de valeurs et prcision de la reprsentation pour les variables de type TIME, DATE, TIME_OF_DAY et DATE_AND_TIME pour TIME : t#0ms .. t#4294967295ms (=t#49D_17H_2M_47S_295MS) pour DATE : D#1990-01-01 .. D#2099-12-31 pour TOD : TOD#00:00:00 .. TOD#23:59:59
Prcision de la reprsentation des secondes pour TIME : prcision d'1 ms les types TIME, TIME_OF_DAY et DATE_AND_TIME TIME_OF_DAY : prcision d'1 s Nombre maximum de valeurs numres Nombre maximum d'indices de tableau Taille de tableau maximum Nombre maximum d'lments de structure Taille de structure maximum Plage maximum de valeurs d'indice Nombre maximum de niveaux dans structures imbriques Longueur maximum par dfaut des variables CHAINE et WSTRING Longueur maximum autorise des variables CHAINE et WSTRING Nombre maximum de niveaux hirarchiques Affectation logique ou physique 718 Non applicable 6 64 Ko pas de limite 64 Ko plage DINT 10 16 caractres 64 Ko Premium : affectation physique (5 niveaux) Quantum : affectation logique (1 niveau)
35006145 05 novembre 2006
Conformit CEI
Limites et comportement Le nombre maximum de paramtres d'entre (paramtres d'E/ S inclus) est gal 32. Le nombre maximum de paramtres de sortie (paramtres d'E/S inclus) est aussi gal 32. Le nombre maximum de paramtres d'entre pour les fonctions extensibles est donc gal (32 - nombre de paramtres d'entre - nombre de paramtres d'E/S). Le nombre maximum de paramtres de sortie pour les fonctions extensibles est donc gal (32 - nombre de paramtres de sortie - nombre de paramtres d'E/S). Reportez-vous l'aide en ligne. Les conditions d'erreur sont dcrites dans l'aide en ligne. Globalement, %S18 est activ pour les erreurs de dpassement. ENO est galement activ. Le rsultat dpend de la fonction utilise. Traitement ou mulation de virgule flottante INTEL Reportez-vous l'aide en ligne.
Effets des conversions de type de donnes sur la prcision Conditions d'erreur lors des conversions de type de donnes
Prcision des fonctions numriques Effets des conversions entre des types de donnes temporelles et d'autres types de donnes non dfinis dans le tableau 30 Nombre maximum d'indications et instanciations de blocs fonction
Affectation de variables d'entre pour blocs fonction Pas d'affectation lorsque EN est sur FALSE Pvmin, Pvmax de compteurs Compteurs base INT :
z Pvmin=-32768 (0x8000) z Pvmax=32767 (0x7FFF)
Compteurs base UINT : z Pvmin=0 (0x0) z Pvmax=65535 (0xFFFF) Compteurs base DINT : z Pvmin= -2147483648 (0x80000000) z Pvmax=2147483647 (0x7FFFFFFF) Compteurs base UDINT : z Pvmin=0 (0x0) z Pvmax=4294967295 (0xFFFFFFFF) Effet du changement de la valeur d'une entre PT pendant une opration de temporisation Limites lies la taille des programmes Les nouvelles valeurs PT sont immdiatement prises en compte, mme lorsqu'une opration de temporisation est en cours. Dpend du type d'automate et de la mmoire
719
Conformit CEI
Paramtres
Limites et comportement
Prcision au niveau du temps coul associ une 10 ms tape Nombre maximum d'tapes par SFC Nombre maximum de transitions par SFC et par tape 1 024 tapes par section SFC Limit par la zone disponible pour la saisie des tapes/ transitions et par le nombre maximum d'tapes par section SFC (1 024 tapes). 32 transitions par tape. Limit par la zone disponible pour la saisie des branches Divergence en OU/Divergence en ET, 32 lignes maximum. 20 Non applicable Dpendant de la transition toujours < 100 micro-secondes 32 Non applicable Non applicable Dpend du type d'automate. Nombre maximum sur l'automate le plus puissant : 9 tches 10 ms Presque sans limite Presque sans limite Presque sans limite Non dfini Aucune restriction Le bloc connect la variable de retour est excut en premier.
Nombre maximum de blocs action par tape Accs l'quivalent fonctionnel des sorties Q ou A Temps de franchissement d'une transition Profondeur maximum des constructions de divergence/convergence Contenu des bibliothques RESOURCE Effet de l'utilisation de l'accs READ_WRITE sur les sorties de blocs fonction Nombre maximum de tches Rsolution d'intervalle de tche Longueur maximum des expressions Longueur maximum des instructions Nombre maximum de slections CASE Valeur de la variable de contrle aprs excution d'une boucle FOR Limites lies la topologie du rseau Ordre d'valuation des boucles de retour
720
Conformit CEI
Conditions d'erreur
Conditions d'erreur
Conditions d'erreur Commentaires imbriqus La valeur d'une variable dpasse la sous-plage dfinie Configuration manquante d'une indication d'adresse incomplte (notation "*") Tentative, par une unit organisationnelle du programme, de modification d'une variable dclare en tant que CONSTANTE Utilisation incorrecte, dans des fonctions, de variables externes ou directement reprsentes Une variable VAR_IN_OUT n'est pas "correctement affecte" Erreurs de conversion de type
Non applicable 2) erreur signale pendant la programmation 4) erreur signale pendant l'excution
Le rsultat numrique dpasse la plage dfinie pour le type 4) erreur signale pendant l'excution de donnes Division par zro Types de donnes mixtes en entre pour une fonction de slection Le rsultat dpasse la plage dfinie pour le type de donnes Aucune valeur dfinie pour une variable d'E/S Zro ou plus d'une tape initiale dans le rseau SFC Le programme utilisateur tente de modifier l'tat ou l'heure d'une tape Effets de bord pendant l'valuation d'une condition de transition Erreur de conflit au niveau du contrle des actions Transitions sans ordre de priorit simultanment vraies dans une divergence de slection SFC non fiable ou inaccessible Conflit de type de donnes dans VAR_ACCESS
35006145 05 novembre 2006
4) erreur signale pendant l'excution 2) erreur signale pendant la programmation 4) erreur signale pendant l'excution 2) erreur signale pendant la programmation 3) erreur signale pendant l'analyse/le chargement/la liaison 2) erreur signale pendant la programmation 3) erreur signale pendant l'analyse/le chargement/la liaison 3) erreur signale pendant l'analyse/le chargement/la liaison Non applicable 3) erreur signale pendant l'analyse/le chargement/la liaison Non applicable 721
Conformit CEI
Conditions d'erreur Une tche ne parvient pas tre ordonnance ou dlai d'excution impossible respecter
Le rsultat numrique dpasse la plage dfinie pour le type 4) erreur signale pendant l'excution de donnes Les types de donnes du rsultat courant et de l'oprande sont diffrents Division par zro 2) erreur signale pendant la programmation 4) erreur signale pendant l'excution
Le rsultat numrique dpasse la plage dfinie pour le type 4) erreur signale pendant l'excution de donnes Type de donnes incorrect pour l'opration Retour de fonction sans valeur affecte Echec de fin de l'itration Le mme identificateur est utilis comme libell de connecteur et nom d'lment Variable de retour non initialise 4) erreur signale pendant l'excution Non applicable 4) erreur signale pendant l'excution Non applicable 1) erreur non signale
Remarque
Identifications pour le traitement des conditions d'erreur (conformment la norme CEI 61131-3, sous-alina 1.5.1, d) : z 1) erreur non signale, z 2) erreur signale pendant la programmation, z 3) erreur signale pendant l'analyse/le chargement/la liaison, z 4) erreur signale pendant l'excution.
722
Conformit CEI
B.3
723
Conformit CEI
Les sections sont utilises diffrentes fins : Les sections permettent de sous-diviser des units POU larges en fonction d'aspects fonctionnels. L'utilisateur a la possibilit de sous-diviser son unit POU en diffrentes parties significatives d'un point de vue fonctionnel. La liste de sections reprsente un tableau fonctionnel du contenu d'une unit POU large et autrement non structure. z Les sections permettent de sous-diviser des units POU larges en fonction d'aspects graphiques. L'utilisateur a la possibilit de dfinir des sous-structures pour une unit POU large selon une prsentation graphique propre. Il est parfaitement libre de crer des petites sections graphiques ou bien des grandes sections. z La sous-division d'units POU larges permet d'apporter rapidement des modifications en ligne : sous Unity Pro, la section est utilise comme unit pour la modification en ligne. Lorsqu'une unit POU est modifie diffrents emplacements alors que le systme est en cours d'excution, toutes les sections affectes par ces modifications sont automatiquement charges via une requte explicite. z Les sections permettent de redfinir l'ordre dans lequel certaines parties libelles d'une unit POU sont excutes : le nom de la section reprsente le libell de la partie de cette unit contenue dans la section. En organisant ces libells, l'utilisateur peut grer l'ordre d'excution des parties. z Avec les sections, il est possible d'utiliser diffrents langages en parallle au sein de la mme unit POU : cette fonctionnalit reprsente une extension majeure de la syntaxe CEI, cette dernire autorisant en effet un seul langage CEI dans une unit POU. Dans une unit conforme, les sections SFC doivent tre utilises pour grer diffrents langages au sein d'une unit (chaque transition/action peut tre formule dans un langage qui lui est propre).
z
724
Conformit CEI
B.4
725
Conformit CEI
726
Glossaire
!
%I %IW %KW %M %MW %Q %QW Selon la norme CEI, %I indique un objet langage de type entre TOR. Selon la norme CEI, %IW indique un objet langage de type entre analogique. Selon la norme CEI, %KW indique un objet langage de type mot constant. Selon la norme CEI, %M indique un objet langage de type bit mmoire. Selon la norme CEI, %MW indique un objet langage de type mot mmoire. Selon la norme CEI, %Q indique un objet langage de type sortie TOR. Selon la norme CEI, %QW indique un objet langage de type sortie analogique.
A
Animation des liens Egalement appel flux des signaux. Ce terme fait rfrence un type d'animation utilis avec le langage schma contacts et les blocs fonction. Les liens apparaissent en rouge, en vert ou en noir selon les variables connectes. Une hirarchie existe entre les diffrents types de donnes. Dans les DFB, il est parfois possible de dclarer les variables pouvant contenir plusieurs types de valeurs. On utilise alors les types ANY_xxx.
ANY
727
Glossaire
ARRAY
Un ARRAY est un tableau dlments de mme type. La syntaxe est la suivante : ARRAY [<bornes>] OF <Type> Exemple : ARRAY [1..2] OF BOOL est un tableau une dimension compos de deux lments de type BOOL. ARRAY [1..10, 1..20] OF INT est un tableau deux dimensions compos de 10x20 lments de type INT.
35006145 05 novembre 2006
728
Glossaire
ASCII
Abrviation de American Standard Code for Information Interchange (Code standard amricain pour l'change des donnes). Il s'agit d'un code amricain (devenu par la suite une norme internationale) qui utilise 7 bits pour dfinir chaque caractre alphanumrique utilis en anglais, les symboles de ponctuation, certains caractres graphiques et d'autres commandes diverses.
B
BCD Le format BCD (Binary Coded Decimal) est utilis pour reprsenter des nombres dcimaux compris entre 0 et 9 l'aide d'un groupe de quatre bits (demi-octet). Dans ce format, les quatre bits utiliss pour coder les nombres dcimaux ont une plage de combinaisons inutilises. Exemple de codage BCD : z Le nombre 2450 z est cod : 0010 0100 0101 0000 Unit binaire pour une quantit d'informations pouvant reprsenter deux valeurs distinctes (ou tats distincts) : 0 ou 1. Voir EFB BOOL est l'abrviation du type boolen. Il s'agit de l'lment de donnes de base en informatique. Une variable de type BOOL prsente l'une ou l'autre des valeurs suivantes : 0 (FALSE) ou 1 (TRUE). Un bit extrait de mot est de type BOOL, par exemple : %MW10.4. Lorsque 8 bits sont regroups, on parle alors de BYTE (octet). La saisie dun BYTE seffectue soit en mode binaire, soit en base 8. Le type BYTE est cod sur un format 8 bits qui, au format hexadcimal, va de 16#00 16#FF.
BIT
BYTE
C
CEI 61131-3 Norme internationale : commandes de logique programmable Partie 3 : langages de programmation. Variable de type INT, DINT ou REAL localise en zone constante (%K) ou variables utilises pour l'adressage direct (%KW, %KD ou %KF). Leur contenu ne peut pas tre modifi par le programme en cours d'excution.
729
Constantes
Glossaire
Un identificateur est une suite de lettres, de chiffres et de caractres de soulignement commenant par une lettre ou un caractre de soulignement (par exemple, le nom d'un type de bloc fonction, une instance, une variable ou une section). Les lettres des jeux de caractres nationaux (comme , , et ) peuvent tre utilises, sauf dans les noms de projet et DFB. Les signes de soulignement sont significatifs dans les identificateurs. Par exemple, A_BCD et AB_CD sont interprts comme des identificateurs diffrents. L'utilisation de plusieurs souligns conscutifs ou au dbut d'un identificateur est incorrecte. Les identificateurs ne peuvent pas contenir d'espace. Ils ne distinguent pas les majuscules des minuscules. Par exemple, ABCD et abcd sont interprts comme un seul et mme identificateur. Selon la norme CEI 61131-3, les chiffres en dbut ne sont pas autoriss dans les identificateurs. Cependant, vous pouvez les utiliser si vous slectionnez Outils Options du projet, puis l'onglet Extensions de langage, et que vous cochez la case Chiffres non significatifs. Les identificateurs ne peuvent pas tre des mots cls. Abrviation de Control Processing Unit (Unit de traitement des commandes). Il s'agit du microprocesseur. Il se compose de l'unit de commande et de l'unit arithmtique. L'objectif de l'unit de commande est de rcuprer l'instruction excuter et les donnes requises pour excuter cette instruction dans la mmoire centrale, d'tablir des raccordements lectriques dans l'unit arithmtique et la logique et d'excuter le traitement de ces donnes dans cette unit. Les mmoires ROM ou RAM sont parfois incluses dans la mme puce, ainsi que les interfaces E/ S ou les mmoires tampon.
CPU
D
DATE Le type DATE, cod en BCD sur un format de 32 bits, contient les informations suivantes : z l'anne code dans un champ de 16 bits ; z le mois cod dans un champ de 8 bits ; z le jour cod dans un champ de 8 bits. Le type DATE doit tre saisi comme suit : D#<Anne>-<Mois>-<Jour> Ce tableau donne les limites infrieure/suprieure de chaque champ :
Champ Anne Mois Limites [1990,2099] [01,12] Commentaire Anne Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie.
730
Glossaire
Champ Jour
Commentaire Pour les mois 01/03/05/07/08/10/12 Pour les mois 04/06/09/11 Pour le mois 02 (annes bissextiles) Pour le mois 02 (annes non bissextiles)
DATE_AND_TIM E DBCD
Voir DT
Reprsentation d'un entier double au format double BCD. Le format BCD (Binary Coded Decimal) est utilis pour reprsenter des nombres dcimaux compris entre 0 et 9 l'aide d'un groupe de quatre bits. Dans ce format, les quatre bits utiliss pour coder les nombres dcimaux ont une plage de combinaisons inutilises. Exemple de codage DBCD : z Le nombre 78993016 z est cod : 0111 1000 1001 1001 0011 0000 0001 0110 L'abrviation DDT est utilise pour Derived Data Type (type de donnes drives). Un type de donnes drives est un ensemble d'lments de mme type (ARRAY) ou de types diffrents (structure). DFB est l'abrviation de Derived Function Block (bloc fonction driv). Les types DFB sont des blocs fonction programmables par l'utilisateur en langage ST, IL, LD ou FBD. L'utilisation de ces types DFB dans une application permet : z de simplifier la conception et la saisie du programme ; z d'accrotre la lisibilit du programme ; z de faciliter sa mise au point ; z de diminuer le volume du code gnr. DINT est l'abrviation du format Double INTeger (entier double) (cod sur 32 bits). Les limites infrieure et suprieure sont les suivantes : -(2 puissance 31) (2 puissance 31) - 1. Exemple : -2147483648, 2147483647, 16#FFFFFFFF. Contient toutes les informations concernant le projet. Une fois compile, la documentation est imprime et utilise des fins de maintenance. Les informations incluses dans la documentation comprennent : z les configurations matrielle et logicielle ;
z z
DDT
DFB
DINT
Documentation
Glossaire
z z z
Lors de la conception du fichier de documentation, vous pouvez inclure l'ensemble de ces lments ou seulement certains d'entre eux. DT DT est l'abrviation de Date and Time (date et heure). Le type DT, cod en BCD sur un format de 64 bits, contient les informations suivantes : z l'anne code dans un champ de 16 bits ; z le mois cod dans un champ de 8 bits ; z le jour cod dans un champ de 8 bits ; z l'heure code dans un champ de 8 bits ; z les minutes codes dans un champ de 8 bits ; z les secondes codes dans un champ de 8 bits. Note : les 8 bits de poids faible sont inutiliss. La saisie du type DT est la suivante : DT#<Anne>-<Mois>-<Jour>-<Heure>:<Minutes>:<Secondes> Ce tableau donne les limites infrieure/suprieure de chaque champ :
Champ Anne Mois Jour Limites [1990,2099] [01,12] [01,31] [01,30] [01,29] [01,28] Heure Minute Seconde [00,23] [00,59] [00,59] Commentaire Anne Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Pour les mois 01/03/05/07/08/10/12 Pour les mois 04/06/09/11 Pour le mois 02 (annes bissextiles) Pour le mois 02 (annes non bissextiles) Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie.
DWORD
DWORD est l'abrviation de Double Word (mot double). Le type DWORD est cod sur un format de 32 bits.
732
Glossaire
Ce tableau donne les limites infrieure/suprieure des bases qui peuvent tre utilises :
Base Hexadcimale Octale Binaire Limite infrieure 16#0 8#0 2#0 Limite suprieure 16#FFFFFFFF 8#37777777777 2#11111111111111111111111111111111
Exemples de reprsentation :
Donne 00000000000010101101110011011110 00000000000000010000000000000000 00000000000010101011110011011110 Reprsentation dans l'une des bases 16#ADCDE 8#200000 2#10101011110011011110
E
EBOOL EBOOL est l'abrviation du type Extended BOOLean (boolen tendu). Une variable de type EBOOL prsente une valeur (0 (FALSE) ou 1 (TRUE), mais galement des fronts montants ou descendants et des fonctions de forage. Une variable de type EBOOL occupe un octet de mmoire. L'octet se compose comme suit : z un bit pour la valeur ; z un bit pour le bit d'historique (chaque fois que l'objet d'tat change, la valeur est copie dans le bit d'historique), z un bit pour le forage (gal 0 si l'objet n'est pas forc, gal 1 si le bit est forc). La valeur par dfaut de chaque bit est 0 (FALSE). Ecran d'exploitation Editeur intgr Unity Pro et utilis pour faciliter le fonctionnement d'un processus automatis. L'utilisateur contrle et surveille l'opration d'installation et, en cas de problme, peut intervenir rapidement et simplement. EDT est l'abrviation de Elementary Data Type (type de donnes de base). Les types EDT disponibles sont les suivants : z BOOL, z EBOOL, z WORD, z DWORD, z INT,
733
EDT
Glossaire
z z z z z z z
EF
Abrviation de Elementary Function (fonction lmentaire). Il s'agit d'un bloc, utilis dans un programme, qui ralise une fonction logicielle prdfinie. Une fonction ne dispose pas d'informations sur l'tat interne. Plusieurs appels de la mme fonction l'aide des mmes paramtres d'entre fournissent toujours les mmes valeurs de sortie. Vous trouverez des informations sur la forme graphique de l'appel de fonction dans le "[bloc fonctionnel (instance)]". Contrairement l'appel des blocs fonction, les appels de fonction comportent uniquement une sortie qui n'est pas nomme et dont le nom est identique celui de la fonction. Dans FBD, chaque appel est indiqu par un [numro] unique via le bloc graphique. Ce numro est gnr automatiquement et ne peut pas tre modifi. Vous positionnez et paramtrez ces fonctions dans votre programme afin d'excuter votre application. Vous pouvez galement dvelopper d'autres fonctions l'aide du kit de dveloppement SDKC. EFB est l'abrviation de Elementary Function Block (bloc fonction lmentaire). Il s'agit d'un bloc, utilis dans un programme, qui ralise une fonction logicielle prdfinie. Les EFB prsentent des tats et des paramtres internes. Mme si les entres sont identiques, les valeurs des sorties peuvent diffrer. Par exemple, un compteur comporte une sortie qui indique que la valeur de prslection est atteinte. Cette sortie est paramtre sur 1 lorsque la valeur en cours est gale la valeur de prslection. EN correspond ENable (activer) ; il s'agit d'une entre de bloc facultative. Si EN = 0, le bloc n'est pas activ, son programme interne n'est pas excut et ENO est paramtr sur 0. Si EN = 1, le programme interne du bloc est excut et ENO est paramtr sur 1. Si une erreur survient, ENO est paramtr sur 0. ENO correspond Error NOtification (notification d'erreur) ; il s'agit de la sortie associe l'entre facultative EN. Si ENO est dfini sur 0 (car EN = 0 ou en cas d'erreur d'excution) : z l'tat des sorties de blocs fonction reste identique celui dans lequel elles taient lors du dernier cycle de scrutation excut correctement ; z les sorties de fonctions, ainsi que les procdures, sont paramtres sur "0".
EFB
734
Glossaire
Note : si l'entre EN n'est pas connecte, elle est automatiquement paramtre sur 1. Excution cyclique La tche matre est excute soit de manire cyclique, soit de manire priodique. L'excution cyclique consiste enchaner les cycles les uns aprs les autres sans temps d'attente entre eux. La tche matre est excute soit de manire cyclique, soit de manire priodique. En mode priodique, vous dterminez une dure prcise (priode) pendant laquelle la tche matre doit tre excute. Si l'excution est ralise dans les dlais, un temps d'attente a lieu avant le cycle suivant. Si le temps d'excution est plus long, un systme de contrle signale ce dpassement. En cas de dpassement trop important, l'automate est arrt.
Excution priodique
F
FBD Abrviation de Function Block Diagram (langage blocs fonction). FBD est un langage de programmation graphique qui fonctionne comme un logigramme. En complment des blocs logiques simples (ET, OU, etc.), chaque fonction ou bloc fonction du programme est reprsent sous cette forme graphique. Pour chaque bloc, les entres se situent gauche et les sorties droite. Les sorties des blocs peuvent tre lies aux entres d'autres blocs afin de former des expressions complexes. Cette fentre, galement appele fentre de surveillance, affiche les variables qui ne peuvent pas tre animes dans les diteurs de langage. Seules les variables visibles un moment donn dans l'diteur sont disponibles. Terme collectif pour EF (fonction lmentaire), EFB (bloc fonction lmentaire) et DFB (bloc fonction driv) Carte mmoire PCMCIA contenant le programme et les constantes de l'application. Abrviation de Fichiers Neutres d'Entres Sorties. Le format FNES dcrit, l'aide d'une arborescence, les automates en termes de rack, de cartes et de voies. Il est bas sur la norme CNOMO (Comit de Normalisation des Outillages de Machines-Outils). Voir EF
735
Fentre de visualisation
FFB
Fonction
Glossaire
Fonction lmentaire
Voir EF
G
GRAY Le code Gray ou "binaire rflchi" permet de coder une valeur numrique dveloppe en chane de configurations binaires qui peut tre diffrencie par le changement d'tat d'un seul bit. Ce code peut tre utilis, par exemple, pour viter l'vnement alatoire suivant : en binaire pur, le changement de la valeur 0111 en 1000 peut produire des nombres alatoires compris entre 0 et 1 000, tant donn que les bits ne changent pas tous de valeur simultanment. Equivalence entre dcimal, BCD et Gray : Dcimal BCD Gray 0 1 2 3 4 5 6 7 8 9
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101
I
IL IL est l'abrviation de Instruction List (liste d'instructions). Ce langage est une suite d'instructions basiques. Il est trs proche du langage d'assemblage utilis pour programmer les processeurs. Chaque instruction est compose d'un code instruction et d'un oprande. Utilis pour signifier qu'un nombre dpasse les limites autorises. Pour un nombre de type entier, les plages de valeurs (indiques en gris) sont les suivantes :
-INF -3.402824e+38
z
INF
Lorsqu'un rsultat est : infrieur -3,402824e+38, le symbole -INF (pour - infini) est affich ; z suprieur +3,402824e+38, le symbole +INF (pour + infini) est affich.
736
35006145 05 novembre 2006
Glossaire
Instance DFB
Une instance de type DFB se produit lorsqu'une instance est appele depuis un diteur de langage. L'instance possde un nom et des interfaces d'entre et de sortie ; les variables publiques et prives sont dupliques (une duplication par instance, le code n'tant pas dupliqu). Un type DFB peut comporter plusieurs instances. Instancier un objet consiste allouer un espace en mmoire dont la taille dpend du type de l'objet instancier. Lorsqu'un objet est instanci, cela prouve qu'il existe et il peut tre manipul par le programme. INT est l'abrviation du format single INTeger (entier simple) (cod sur 16 bits). Les butes infrieure et suprieure sont les suivantes : -(2 puissance 31) (2 puissance 31) - 1. Exemple : -32768, 32767, 2#1111110001001001, 16#9FA4. IODDT est l'abrviation d'Input/Output Derived Data Type (type de donnes drives d'E/S). Le terme IODDT dsigne un type de donnes structur reprsentant un module ou une voie d'un module automate. Chaque module expert prsente ses propres IODDT.
Instancier
INT
IODDT
J
Jeton Jeton unique Etape active d'un SFC. Mode de fonctionnement d'un graphe SFC pour lequel une seule tape peut tre active la fois.
L
LD LD est l'abrviation de Ladder Diagram (langage schma contacts). LD est un langage de programmation, reprsentant les instructions excuter sous forme de schmas graphiques trs proches d'un schma lectrique (contacts, bobines, etc.). Nombre pouvant tre exprim l'aide d'une notation scientifique standard. La reprsentation est alors la suivante : mantisse + exposant.
737
Glossaire
Exemple : -1,34E-12 ou -1,34e-12 1.0E+6 ou 1,0e+6 1.234E6 ou 1,234e6 Lien hypertexte La fonction de lien hypertexte permet la cration de liens entre votre projet et des documents externes. Vous pouvez crer des liens hypertexte dans tous les lments du rpertoire du projet, dans les variables, dans les objets de l'cran de traitement, etc. Les documents externes peuvent tre des pages Web ou des fichiers (xls, pdf, wav, mp3, jpg, gif, etc.).
M
Macro-tape Reprsentation symbolique d'un ensemble unique d'tapes et de transitions, commenant par une tape d'entre (IN) et se terminant par une tape de sortie (OUT). Une macro-tape peut appeler une autre macro-tape. Un module fonctionnel est un regroupement d'lments de programme (sections, sous-programmes, macro-tapes, tables d'animation, crans d'exploitation, etc.) destin raliser une fonction d'automatisme. Il peut tre lui-mme dcompos en modules fonctionnels de niveau infrieur, ces modules assumant, par rapport la fonction principale, une ou plusieurs sousfonctions d'automatisme. Application comprenant une seule tche, et ncessairement la tche matre. Un mot cl est une combinaison de caractres unique employe en tant qu'lment syntaxique d'un langage de programmation (voir la dfinition relative la norme CEI 61131-3 fournie l'annexe B. Tous les mots cls utiliss dans Unity Pro et mentionns dans la norme CEI 61131-3 sont rpertoris dans l'annexe C de cette norme. Ils ne peuvent pas servir d'identificateurs (noms de variables, sections, types DFM, etc.) dans votre programme). Mode de fonctionnement d'un SFC. En mode multijeton, le SFC peut prsenter plusieurs tapes actives simultanment. Application constitue de plusieurs tches (Mast, rapide, auxiliaire, traitement vnementiel).
Module fonctionnel
Monotche Mot cl
Multijeton
Multitche
738
Glossaire
Un ordre de priorit d'excution des tches est dfini par le systme d'exploitation de l'automate.
N
NAN Utilis pour signifier qu'un rsultat d'opration n'est pas un nombre (NAN = Not A Number). Exemple : calcul de la racine carre d'un nombre ngatif. Note : la norme CEI559 dfinit deux classes de NAN: le NAN silencieux (QNAN) et le NAN de signalisation (SNAN). Un QNAN est un NAN avec un bit de fraction de poids fort tandis qu'un SNAN est un NAN sans bit de fraction de poids fort (numro de bit 22). Les QNAN peuvent tre propags par le biais de la plupart des oprations arithmtiques sans indication d'une exception. Quant aux SNAN, ils signalent en gnral une opration non valide lorsqu'ils sont utiliss en tant qu'oprandes dans des oprations arithmtiques (voir %SW17 et %S18).
O
Objet d'E/S Un objet d'E/S est un objet langage implicite ou explicite pour un module fonction expert ou un quipement d'E/S sur un bus de terrain. Ce sont les types suivants : %Ch, %I, %IW, %ID, %IF, %Q, %QW, % QD, QF, %KW, %KD, %KF, %MW, %MD, et %MF. L'adresse topologique des objets dpend de la position du module sur le rack ou de la position de l'quipement sur le bus. Un objet SFC est une structure de donnes reprsentant les proprits d'tat d'une action ou d'une transition d'un graphe squentiel.
Objets SFC
739
Glossaire
P
Pilote Programme indiquant au systme d'exploitation de votre ordinateur la prsence et les caractristiques d'un priphrique. Nous utilisons galement le terme de "pilote de priphrique". Les pilotes les plus connus sont les pilotes d'impression. Pour qu'un automate puisse communiquer avec un ordinateur, des pilotes de communication doivent tre installs (Uni-Telway, XIP, Fipway, etc.). Utilis en mode "mise au point" de l'application. Il est unique (un seul la fois) et, une fois atteint, signale au processeur d'arrter l'excution du programme. Utilis en mode connect, il peut tre positionn sur l'un des lments suivants du programme : z rseau LD ;
z z
Point d'arrt
phrase littrale structure ou liste d'instructions ; ligne littrale structure (mode ligne).
Point de surveillance
Utilis en mode "mise au point" de l'application. Permet de synchroniser l'affichage des variables animes avec l'excution d'un lment de programme (contenant le point de surveillance) afin de connatre leurs valeurs ce point prcis du programme. Les procdures sont techniquement des vues fonctionnelles. L'unique diffrence avec les fonctions lmentaires rside dans le fait que les procdures peuvent comprendre plus d'une sortie et qu'elles grent le type de donnes VAR_IN_OUT. En apparence, les procdures ne sont pas diffrentes des fonctions lmentaires. Les procdures sont un supplment la norme CEI 61131-3. Option empchant de lire le contenu d'un lment du programme (protection en lecture), ou d'crire ou de modifier le contenu de ce type d'lment (protection en lecture/criture). La protection est confirme par un mot de passe.
Procdure
Protection
R
REAL Le type REAL (rel) est un type cod sur 32 bits.
740
Glossaire
Les plages de valeurs possibles sont illustres en gris dans le schma suivant :
-INF -3.4028235e+38 -1.1754944e-38 0.0 1.1754944e-38 INF 3.4028235e+38
Lorsqu'un rsultat est : z compris entre -1,175494e-38 et 1,175494e-38, il est considr comme tant un DEN ; z infrieur -3,4028234e+38, le symbole -INF (pour - infini) s'affiche ; z suprieur +3,4028234e+38, le symbole INF (pour + infini) s'affiche ; z indfini (racine carre d'un nombre ngatif), le symbole NAN s'affiche. Note : la norme CEI 559 dfinit deux classes de NAN : le NAN silencieux (QNAN) et le NAN de signalisation (SNAN). Un QNAN est un NAN avec un bit de fraction de poids fort tandis qu'un SNAN est un NAN sans bit de fraction de poids fort (numro de bit 22). Les QNAN peuvent tre propags par le biais de la plupart des oprations arithmtiques sans indication d'une exception. Quant aux SNAN, ils signalent en gnral une opration non valide lorsqu'ils sont utiliss en tant qu'oprandes dans des oprations arithmtiques (voir %SW17 et %S18).
Note : lorsqu'un DEN (nombre non normalis) est utilis en tant qu'oprande, le rsultat n'est pas significatif. Rseau Utilis principalement pour la communication, un rseau est un groupe de stations qui communiquent entre elles. Le terme "rseau" est galement utilis pour dfinir un groupe d'lments graphiques interconnects. Ce groupe constitue ensuite une partie d'un programme qui peut tre compos d'un groupe de rseaux. Norme de communication de srie qui dfinit la tension du service suivant : z un signal de +12 V indique un 0 logique,
z
RS 232C
Cependant, en cas d'attnuation du signal, une dtection est fournie jusqu'aux limites -3 V et +3 V. Entre ces deux limites, le signal sera considr comme non valide. Les connexions RS 232 sont relativement sensibles aux interfrences. La norme prcise de ne pas dpasser une distance de 15 m ou 9 600 bauds (bits/s). RS 485 Standard de connexion srie qui fonctionne dans un diffrentiel de 10 V/+5 V. Il utilise deux fils pour l'envoi et la rception. Leurs sorties "3 tats" leur permettent de passer en mode d'coute une fois la transmission termine. Fonction permettant de dmarrer le programme d'application de l'automate.
741
RUN
Glossaire
RUN Auto
Fonction permettant d'excuter le dmarrage automatique du programme d'application de l'automate en cas de dmarrage froid. Un rung est l'quivalent d'une squence dans le langage schma contacts (LD). Les autres termes associs sont "rseau contacts" ou, plus gnralement, "rseau". Un rung est inscrit entre deux barres potentielles d'un diteur de langage schma contacts ; il se compose d'un groupe d'lments graphiques interconnects au moyen de connexions horizontales ou verticales. Il est constitu de 17 256 lignes et de 11 64 colonnes maximum.
Rung
S
Section Module programmable appartenant une tche pouvant tre crit dans le langage choisi par le programmeur (FBD, LD, ST, IL ou SFC). Une tche peut tre compose de plusieurs sections, l'ordre d'excution des sections au sein de la tche correspondant l'ordre dans lequel elles sont cres. Cet ordre peut tre modifi. Abrviation de Sequential Function Chart (diagramme fonctionnel en squence). Le SFC permet de reprsenter graphiquement et de faon structure le fonctionnement d'un automatisme squentiel. Cette description graphique du comportement squentiel de l'automatisme et des diffrentes situations qui en dcoulent s'effectue l'aide de symboles graphiques simples. Module programmable appartenant une tche (Mast, rapide) pouvant tre crit dans le langage choisi par le programmeur (FBD, LD, ST ou IL). Un sous-programme ne peut tre appel que par une section ou un autre sousprogramme appartenant la tche dans laquelle il est dclar. ST est l'abrviation de Structured Text (langage littral structur). Le langage littral structur est un langage labor proche des langages de programmation informatiques. Il permet de structurer des suites d'instructions. Une variable de type STRING est une chane de caractres ASCII. La longueur maximale d'une chane de caractres est de 65 534 caractres. Vue dans le navigateur de projet qui reprsente la structure du projet.
SFC
Sousprogramme
ST
STRING
Structure
742
Glossaire
T
Tche Ensemble de sections et de sous-programmes, excuts de faon cyclique ou priodique pour la tche MAST, ou priodique pour la tche rapide. Une tche prsente un niveau de priorit, et des entres et des sorties de l'automate lui sont associes. Ces E/S sont actualises en consquence. Tche principale du programme. Elle est obligatoire et est utilise pour effectuer le traitement squentiel de l'automate. Tche dclenche de faon priodique (rglage de la priode dans la configuration du processeur) utilise pour excuter une portion d'application de priorit suprieure la tche Mast (matre). Tche priodique optionnelle utilise pour les processus qui ne ncessitent pas de traitement rapide : mesure, rgulation, aide au diagnostic, etc. Le type TIME exprime une dure en millisecondes. Cod sur 32 bits, ce type permet d'obtenir des dures de 0 (2 puissance 32) -1 millisecondes. Dans des projets de communication, le Time Out est un dlai aprs lequel la communication est arrte en cas d'absence de rponse du priphrique cible. Voir TOD TOD est l'abrviation de Time Of Day (heure du jour). Le type TOD, cod en BCD sur un format de 32 bits, contient les informations suivantes : z l'heure code dans un champ de 8 bits, z les minutes codes dans un champ de 8 bits, z les secondes codes dans un champ de 8 bits. Note : les 8 bits de poids faible sont inutiliss. Le type Time Of Day doit tre saisi comme suit : TOD#<Heure>:<Minutes>:<Secondes> Ce tableau donne les limites infrieure/suprieure de chaque champ :
Tche matre
Tche rapide
Time Out
TIME_OF_DAY TOD
743
Glossaire
Commentaire Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie. Le 0 de gauche est toujours affich ; il peut tre omis lors de la saisie.
Exemple : TOD#23:59:45. Traitement vnementiel Le traitement vnementiel est une section de programme dclenche par un vnement. Les instructions programmes dans cette section sont excutes lorsqu'un vnement logiciel (temporisation) ou matriel (module mtier) est reu par le processeur. Les traitements vnementiels sont prioritaires par rapport aux autres tches et sont excuts ds la dtection de l'vnement. Le traitement vnementiel EVT0 est prioritaire entre tous. Les autres ont le mme niveau de priorit. Note : pour M340, les vnements E/S ayant le mme niveau de priorit sont stocks dans un tampon FIFO et sont traits dans l'ordre dans lequel ils ont t reus. Tous les temporisateurs ont le mme niveau de priorit. Lorsque plusieurs temporisateurs prennent fin simultanment, le plus petit numro de temporisateur est trait en premier. Le mot systme %SW48 comptabilise le nombre d'vnements d'E/S traits.
U
UDINT UDINT est l'abrviation du format Unsigned Double INTeger (entier double non sign) (cod sur 32 bits). Les limites infrieure et suprieure sont les suivantes : 0 (2 puissance 32) - 1. Exemple : 0, 4294967295, 2#11111111111111111111111111111111, 8#37777777777, 16#FFFFFFFF. UINT est l'abrviation du format Unsigned INTeger (entier non sign) (cod sur 16 bits). Les limites infrieure et suprieure sont les suivantes : 0 (2 puissance 16) - 1.
35006145 05 novembre 2006
UINT
744
Glossaire
V
Valeur littrale de temps Les units du type TIME sont les suivantes : les jours (d), les heures (h), les minutes (m), les secondes (s) et les millisecondes (ms). Une valeur littrale du type TIME est reprsente par une combinaison de types antrieurs prcds de T#, t#, TIME# ou time#. Exemples : T#25h15m, t#14,7S, TIME#5d10h23m45s3ms Une valeur littrale en base 10 est utilise pour reprsenter une valeur entire dcimale. Cette valeur peut tre prcde des signes "+" et "-". Si le caractre "_" est utilis dans cette valeur littrale, il n'est pas significatif. Exemple : -12, 0, 123_456, +986 Une valeur littrale en base 16 est utilise pour reprsenter un entier hexadcimal. La base est dtermine par le nombre "16" et le signe "#". Les signes "+" et "-" sont interdits. Pour faciliter la lecture, vous pouvez utiliser le signe "_" entre les bits. Exemple : 16#F_F ou 16#FF (en dcimal 255) 16#F_F ou 16#FF (en dcimal 224) Une valeur littrale en base 2 est utilise pour reprsenter un entier binaire. La base est dtermine par le nombre "2" et le signe "#". Les signes "+" et "-" sont interdits. Pour faciliter la lecture, vous pouvez utiliser le signe "_" entre les bits. Exemple : 2#1111_1111 ou 2#11111111 (en dcimal 255) 2#1110_0000 ou 2#11100000 (en dcimal 224) Une valeur littrale en base 8 est utilise pour reprsenter un entier octal. La base est dtermine par le nombre "8" et le signe "#". Les signes "+" et "-" sont interdits. Pour faciliter la lecture, vous pouvez utiliser le signe "_" entre les bits. Exemple : 8#3_77 ou 8#377 (en dcimal 255) 8#34_0 ou 8#340 (en dcimal 224) Utilis pour saisir des valeurs d'entier dans le systme dcimal. Les valeurs peuvent tre prcdes d'un signe (+/-). Les signes de soulignement (_) sparant les nombres ne sont pas significatifs. Exemple :
745
Glossaire
-12, 0, 123_456, +986 Valeur littrale relle Nombre exprim en un ou plusieurs dcimaux. Exemple : -12.0, 0.0, +0.456, 3.14159_26 Entit mmoire du type BOOL, WORD, DWORD, etc., dont le contenu peut tre modifi par le programme en cours d'excution. Variable dont la position dans la mmoire de l'automate peut tre connue. Par exemple, la variable Pression_eau est associe au repre %MW102. Pression_eau est dite localise. Variable dont la position dans la mmoire de l'automate ne peut pas tre connue. Une variable laquelle aucune adresse n'a t associe est dite non affecte. Vue permettant d'afficher la partie du programme de l'application via les modules fonctionnels crs par l'utilisateur (voir la dfinition relative au module fonctionnel).
Variable
Variable localise
W
WORD Le type WORD est cod sur un format de 16 bits et est utilis pour effectuer des traitements sur des chanes de bits. Ce tableau donne les limites infrieure/suprieure des bases qui peuvent tre utilises :
Base Hexadcimale Octale Binaire Limite infrieure 16#0 8#0 2#0 Limite suprieure 16#FFFF 8#177777 2#1111111111111111
Exemples de reprsentation
Donne 0000000011010011 1010101010101010 0000000011010011 Reprsentation dans l'une des bases 16#D3 8#125252 2#11010011
746
Index
B C A
C
CAL, 500 CASE...OF...END_CASE ST, 557 chiens de garde monotche, 94 multitche, 101 Commentaire SFC, 448 comparaison IL, 491 LD, 383 ST, 544 compatibilit, 28 types de donnes, 298 Conformit CEI, 693 Convergence en ET SFC, 446, 473, 475 Convergence en OU SFC, 444
Symbols
%S, 158 %SW, 178 Modicon M340, 228 Premium, 202 Quantum, 215
A
Action, 428 SFC, 428 ADD IL, 496 adressage entre/sortie, 311 instances de donnes, 311 AND IL, 494 ST, 548 ANY_ARRAY, 294
B
bits forcs, 243 bits systme, 158 bloc fonction driv (DFB) reprsentation, 286, 600 bloc fonction lmentaire (EFB), 285, 286 BOOL, 243 BYTE, 268
D
DATE, 256 DDT, 270 dmarrage chaud, 133 dmarrage froid, 133, 144 dmarrage automatique en RUN, 133
747
Index
DFB IODDT, 626 Langage blocs fonctionnels, 640 Langage contacts, 630 Liste dinstructions, 636 Littral structur, 632 Rgles dutilisation, 624 reprsentation, 600 DFB de diagnostic, 643 Diagramme fonctionnel en squence, 409 DINT, 249 DIV IL, 496 Divergence en ET SFC, 446, 473, 475 Divergence en OU SFC, 444 DT, 258 DWORD, 268
F
FBD langage, 333, 336 structure, 334 flottant, 260 fonctionner, 383 FOR...TO...BY...DO...END_FOR ST, 558
G
GE IL, 498 GT IL, 498
H
HALT, 156
E
EBOOL, 243 EDT, 239 EFB, 285 ELSE, 555 ELSIF...THEN, 556 EN/ENO FBD, 344 IL, 512, 524, 533 LD, 379 ST, 575, 585, 592 entre/sortie adressage, 311 EQ IL, 498 Etape SFC, 418 Etape d'entre SFC, 422 Etape de sortie SFC, 423 Etape initiale, 418 Evolution du signal SFC, 450, 462 EXIT, 562
748
I
Identificateur SFC, 431 IF...THEN...END_IF ST, 554 IN_OUT FBD, 346 IL, 525, 534 LD, 381 ST, 586, 593 Instances de donnes prsentation, 235 instances de donnes, 303 INT, 249
J
Jeton SFC, 414 Jeton multiples SFC, 469 Jeton unique SFC, 414, 450, 451, 452, 455, 457
Index
Jetons multiples SFC, 414, 462, 465, 473, 475 JMP FBD, 348 IL, 501, 503 LD, 382 ST, 566
N
NE IL, 499 NOT IL, 495
L
LD langage, 361, 370 structure, 362 LE IL, 499 Liaison SFC, 442 libells FBD, 348 IL, 503 LD, 382 ST, 566 liste d'instructions (IL) langage, 481, 507, 513, 527 oprateurs, 491 structure, 483 LT, 499
O
Objet texte SFC, 448 Oprateur LD IL, 361 OR IL, 494 ST, 548 Ordre d'excution SFC, 450, 462
P
Palier de l'tape SFC, 419
M
Macrotape SFC, 422 Macro-section SFC, 422 Mmoire Atrium, 123 Modicon M340, 120 Premium, 123 Quantum, 127 MOD IL, 497 ST, 545 mots systme, 178 Modicon M340, 228 Premium, 202, 207 Quantum, 215, 218
35006145 05 novembre 2006
R
R IL, 493 LD, 367 REAL, 260 Rfrences de donnes par adresses, 326 par nom, 322 par valeurs, 320 Prsentation, 237 Rgles dappellation des donnes, 329 de syntaxe des noms de types/instances, 238 Rgles de liaison SFC, 416 REPEAT...UNTIL...END_REPEAT, 561
749
Index
T
TABLEAU, 271 tches, 77, 81 cyclique, 92 priodique, 93 Temps de retard SFC, 419 Temps maximum de contrle SFC, 419 Temps minimum de contrle SFC, 419 text structur (ST) langage, 588 texte structur (ST) instructions, 549 langage, 537, 569, 576 oprateurs, 544 structure, 539 TIME, 251 TOD, 257 traitement vnementiel, 96 Transition, 436 SFC, 436 Types de donnes Prsentation, 233 types de donnes, 239 types de donnes drivs (DDT), 270, 275 types de donnes lmentaires (EDT), 239
S
S IL, 493 LD, 367 Saut SFC, 441 Saut dans une squence en ET SFC, 473 Saut de squence SFC, 452 Saut hors dune squence en ET SFC, 475 Section d'action SFC, 430 Section de transition SFC, 438 sections, 84, 85 Slection d'une squence en ET asymtrique SFC, 457 Squence en boucle SFC, 453 Squence en ET SFC, 446, 457 Squence en OU SFC, 444, 451, 465 Squences en ET SFC, 455, 469 SFC, 409 saut, 441 SFCCHART_STATE SFC, 414 SFCSTEP_STATE, 421 SFCSTEP_TIMES, 420 sous-programmes, 84, 88 STRING, 263 structure, 270 structure de donnes de voie, 283
U
UDINT, 249 UINT, 249
V
Variable d'action, 429 Variable d'tape, 421 Variable de transition SFC, 440
750
Index
variables prives DFB, 611 FBD, 342, 377, 516, 578 variables publiques DFB, 611 FBD, 342 IL, 516 LD, 377 ST, 577
W
WHILE...DO...END_WHILE ST, 560 WORD, 268
X
XOR IL, 495 ST, 548
751
Index
752