Vous êtes sur la page 1sur 752

Unity Pro Langages et structure programmes Manuel de rfrence

novembre 2006 fre

35006145 05

www.telemecanique.com

35006145 05 novembre 2006

Table des matires

Consignes de scurit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Partie I Prsentation gnrale de Unity Pro . . . . . . . . . . . . . . . . 17


Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

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

Partie II Structure du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Chapitre 2

Description des fonctions disponibles pour chaque type d'automate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75


Fonctionnalits disponibles sur les diffrents types d'automates . . . . . . . . . . . . 75

35006145 05 novembre 2006

Chapitre 3
3.1

Structure du programme d'application . . . . . . . . . . . . . . . . . . 77


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Description des tches et des traitements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Prsentation de la tche matre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Prsentation de la tche rapide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Prsentation des tches auxiliaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Gestions des traitements vnementiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Description de sections et de sous-programmes. . . . . . . . . . . . . . . . . . . . . . . . . 84 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Description de sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 Description des sections SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Description de sous-programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Excution monotche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 Description du cycle de tche matre. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Monotche : Excution cyclique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Excution priodique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Contrle de la dure du cycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Excution des sections Quantum avec entres/sorties dcentralises . . . . . . . . 95 Excution multitche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Structure logicielle multitche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Squencement des tches dans une structure multitche . . . . . . . . . . . . . . . . . 99 Contrle des tches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Affectation des voies dentres/sorties aux tches matre, rapide et auxiliaires 105 Gestions des traitements vnementiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Excution des traitements vnementiels de type TIMER . . . . . . . . . . . . . . . . 109 Echanges d'entres/de sorties dans les traitements vnementiels . . . . . . . . . 113 Procdure de programmation du traitement des vnements. . . . . . . . . . . . . . 114

3.2

3.3

3.4

Chapitre 4
4.1

Structure mmoire application . . . . . . . . . . . . . . . . . . . . . . . . 117


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Structure de mmoire pour les automates Premium, Atrium et Modicon M340 119 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Structure de mmoire des automates Modicon M340 . . . . . . . . . . . . . . . . . . . . 120 Structure de mmoire des automates Premium et Atrium . . . . . . . . . . . . . . . . . 123 Description dtaille des zones mmoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Structure de la mmoire des automates Quantum . . . . . . . . . . . . . . . . . . . . . . 126 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Structure de la mmoire des automates Quantum . . . . . . . . . . . . . . . . . . . . . . 127 Description dtaille des zones mmoires . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

4.2

Chapitre 5
5.1
4

Modes de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 133


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Modes de fonctionnement des automates Modicon M340 . . . . . . . . . . . . . . . . 134
35006145 05 novembre 2006

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

Objets systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bits systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation des bits systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S0 %S7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S9 %S13 . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S15 %S21 . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S30 %S59 . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S60 %S78 . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S80 %S96 . . . . . . . . . . . . . . . . . . . . . . . . . . Description des bits systme %S100 %S122 . . . . . . . . . . . . . . . . . . . . . . . . Mots systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Description des mots systme %SW0 %SW11 . . . . . . . . . . . . . . . . . . . . . . . Description des mots systme %SW12 %SW29 . . . . . . . . . . . . . . . . . . . . . . Description des mots systme %SW30 %SW47 . . . . . . . . . . . . . . . . . . . . . . Description des mots systme %SW48 %SW59 . . . . . . . . . . . . . . . . . . . . . . Description des mots systme %SW70 %SW99 . . . . . . . . . . . . . . . . . . . . . . Description des mots systme %SW108 %SW116 . . . . . . . . . . . . . . . . . . . Description des mots systme %SW122 %SW127 . . . . . . . . . . . . . . . . . . . . Mots systme spcifiques aux modules Atrium/Premium . . . . . . . . . . . . . . . . . Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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. . . . . . . 157 158 158 159 160 162 164 167 170 175 177 178 178 179 182 186 188 191 199 200 202 202 203 207 208 210 211 213 214
5

6.2

6.3

35006145 05 novembre 2006

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

Partie III Description des donnes . . . . . . . . . . . . . . . . . . . . . . . . 229


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

Chapitre 7

Prsentation gnrale des donnes . . . . . . . . . . . . . . . . . . . 231


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Gnralits. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Prsentation des familles de types de donnes . . . . . . . . . . . . . . . . . . . . . . . . 233 Prsentation des instances de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 Prsentation des references de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Rgles de syntaxe pour les noms Type\Instance . . . . . . . . . . . . . . . . . . . . . . . 238

Chapitre 8
8.1

Types de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Types de donnes lmentaires (EDT) au format Binaire. . . . . . . . . . . . . . . . . 240 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 Prsentation des types de donnes au format binaire. . . . . . . . . . . . . . . . . . . . 241 Types boolens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 Types Entier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Le type Heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Types de donnes lmentaires (EDT) au format BCD . . . . . . . . . . . . . . . . . . 252 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 Prsentation des types de donnes au format BCD . . . . . . . . . . . . . . . . . . . . . 253 Le type Date. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256 Le type Time of Day (TOD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257 Le type Date and Time (DT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Types de donnes lmentaires (EDT) au format Rel. . . . . . . . . . . . . . . . . . . 260 Prsentation du type de donnes relles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 Types de donnes lmentaires (EDT) au format chaine de caractres. . . . . . 263 Prsentation des types de donnes au format chane de caractres . . . . . . . . 263 Types de donnes lmentaires (EDT) au format chane de bits . . . . . . . . . . . 266 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Prsentation des types de donnes au format chane de bits . . . . . . . . . . . . . . 267 Types de chanes de bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 Types de donnes drivs (DDT/IODDT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 Prsentation de la famille de types de donnes derives (DDT). . . . . . . . . . . . . 276
35006145 05 novembre 2006

8.2

8.3 8.4 8.5

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

Instances de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instances de types de donnes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Attributs des instances de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instances de donnes adressage direct. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 304 308 311 319 320 322 326 329

Chapitre 10

Rfrences de donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Rfrences des instances de donnes par valeur . . . . . . . . . . . . . . . . . . . . . . Rfrences des instances de donnes par nom . . . . . . . . . . . . . . . . . . . . . . . . Rfrences des instances de donnes par adresse . . . . . . . . . . . . . . . . . . . . . Rgles d'appellation des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Partie IV Langages de programmation . . . . . . . . . . . . . . . . . . . . 331


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Chapitre 11

Langage blocs fonction FBD . . . . . . . . . . . . . . . . . . . . . . . . 333


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Informations gnrales sur le langage blocs fonction FBD . . . . . . . . . . . . . . 334 Fonctions lmentaires, blocs fonction lmentaires, blocs fonction derives et procedures (FFB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 Appels de sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Contrles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 Liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 Objet texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Ordre d'excution des FFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 Modification de l'ordre d'excution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 Configuration de boucles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359

Chapitre 12
35006145 05 novembre 2006

Langage contacts (LD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361


7

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

Langage squentiel SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 Gnralits concernant le diagramme fonctionnel en squence (SFC) . . . . . . 411 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411 Informations gnrales sur le diagramme fonctionnel en squence SFC . . . . . 412 Rgles de liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Etape et macro-tape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Etape . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Macro-tapes et macro-sections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422 Action et section d'action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428 Section d'action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430 Qualificatif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431 Transition et section de transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 Transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436 Section de transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438 Saut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 Saut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 Liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Liaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 Divergences et convergences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443 Divergence en OU et convergence en OU . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 Divergence en ET et convergence en ET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Objet texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 Objet texte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448 Jeton unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449 Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
35006145 05 novembre 2006

13.2

13.3

13.4

13.5 13.6 13.7

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

Liste d'instructions (IL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481 Remarques gnrales sur le langage liste dinstructions IL . . . . . . . . . . . . . . . 482 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482 Informations gnrales sur la liste d'instructions IL. . . . . . . . . . . . . . . . . . . . . . 483 Oprandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487 Modificateur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489 Oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491 Appel de sous-programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502 Libells et sauts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503 Commentaire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505 Appel de fonctions lmentaires, de blocs fonction lmentaires, de blocs fonction drivs et de procdures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506 Appel de fonctions lmentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507 Appel de blocs fonction lmentaires et de blocs fonction drivs . . . . . . . . . . 513 Procdures d'appel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527

14.2

Chapitre 15
15.1

Texte structur (ST) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Remarques gnrales sur le littral structur ST . . . . . . . . . . . . . . . . . . . . . . . Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations gnrales sur le texte structur (ST) . . . . . . . . . . . . . . . . . . . . . . Oprandes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Oprateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . . . . . . . 537 538 538 539 542 544 549 549 550 551 554 555 556 557
9

15.2

35006145 05 novembre 2006

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

Partie V Blocs fonction utilisateur (DFB) . . . . . . . . . . . . . . . . . . . 595


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

Chapitre 16

Prsentation de Blocs Fonction Utilisateur (DFB) . . . . . . . . 597


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597 Prsentation des blocs fonctions utilisateur (DFB) . . . . . . . . . . . . . . . . . . . . . . 598 Mise en oeuvre d'un bloc fonction DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

Chapitre 17

Description des Blocs Fonction Utilisateur (DFB) . . . . . . . . 603


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603 Dfinition des donnes internes de blocs fonctions drivs (DBF) . . . . . . . . . . 604 Paramtres DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 606 Variables DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611 Section de code DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613

Chapitre 18

Instances de blocs fonction utilisateur (DFB). . . . . . . . . . . . 615


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615 Cration d'une instance DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616 Excution d'une instance de DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618 Exemple de programmation d'un bloc DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619

Chapitre 19

Utilisation des DFB partir de diffrents langages de programmation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623


Prsentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623 Rgles d'utilisation des DFB dans un programme. . . . . . . . . . . . . . . . . . . . . . . 624 Utilisation des IODDT dans un DFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 Utilisation d'un bloc DFB dans un programme en langage contacts . . . . . . . 630 Utilisation d'un bloc DFB dans un programme en langage littral structur . . . 632 Utilisation d'un DFB dans un programme en liste d'instructions . . . . . . . . . . . . 636 Utilisation d'un bloc DFB dans un programme en langage blocs fonction . . . 640

10

35006145 05 novembre 2006

Chapitre 20

DFB de fiagnostic utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 643


Prsentation des DFB de diagnostic utilisateur. . . . . . . . . . . . . . . . . . . . . . . . . 644

Annexes
Annexe A

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649

Codes d'erreur et valeurs EFB . . . . . . . . . . . . . . . . . . . . . . . . 651


Objet de ce sous-chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 . . . . . . . . . . . . . . . 651 652 654 655 661 670 679 682 692 693 695 695 697 697 698 712 714 716 717 718 721 723 723 725 725

Annexe B
B.1 B.2

Conformit CEI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 693


Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations gnrales relatives la norme CEI 61131-3 . . . . . . . . . . . . . . . . Informations gnrales relatives la conformit CEI 61131-3 . . . . . . . . . . . . . Tableaux de conformit CEI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prsentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elments communs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elments de langage IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elments de langage ST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elments graphiques communs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elments de langage LD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Paramtres dpendants de la mise en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . Conditions d'erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Extensions de la norme CEI 61131-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Extensions de la norme CEI 61131-3, deuxime dition . . . . . . . . . . . . . . . . . Syntaxe des langages textuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Syntaxe des langages textuels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

B.3 B.4

Glossaire Index

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747

35006145 05 novembre 2006

11

12

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

Avertissements lis au(x) produit(s)

35006145 05 novembre 2006

15

A propos de ce manuel

16

35006145 05 novembre 2006

Prsentation gnrale de Unity Pro

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

35006145 05 novembre 2006

17

Prsentation gnrale

18

35006145 05 novembre 2006

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

35006145 05 novembre 2006

19

Prsentation

Fonctions de Unity Pro


Plates-formes matrielles Unity Pro prend en charge les plates-formes matrielles suivantes : Modicon M340 z Premium z Atrium z Quantum
z

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

35006145 05 novembre 2006

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)

35006145 05 novembre 2006

21

Prsentation

Evaluation des performances

Le tableau suivant prsente les proprits principales des diffrents progiciels :


Unity Pro S Unity Pro M + + + + + Unity Pro L + + + + + Unity Pro XL + + + + +

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

35006145 05 novembre 2006

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 + + -

Composants logiciels inclus dans le progiciel + + + + + + + + + +

Outil OS Loader + Micrologiciel matriel +

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".

35006145 05 novembre 2006

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

Navigateur du projet Vue structurelle


Station Configuration

LD

My_Section [MAST] 1 2 3 4 5

Initial filling

1 010 Editeur de donnes Variables Filtre DDT Nom 3 count Nom


Filling up Mixer filling up End of filling Initial mixer Initial filling emptying Proportioning
IN1 IN2 .8.2(2) AND_BOOL OUT1 IN1 IN2 .8.5(5) OR_BOOL OUT1

0 : XBus Armoire
Types donnes drivs Types FB drivs Variables et instances FB Communication Programme

start cycle 2

alarm /

Cycle OK S Temp selection PID OK S

count ok

valid count

Tches MAST Sections process Unused M Actions Transitions SFC filling feeding SFC Mixing ST proportioning IL Process : IL1
SFC

010 Editeur de donnes

SFC

MY_SFC...

LD MY_LD...

fbd

MY_FBD...

Gnrer Prt

Importer/exporter HORS LIGNE MBT:127.0.0.1 NON GENERE

24

35006145 05 novembre 2006

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)

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

27

Prsentation

Compatibilits entre les automates et les versions de Unity Pro


Prsentation Les automates programmables avec le logiciel Unity Pro possdent des versions de systme d'exploitation qui peuvent tre diffrentes. Les versions du logiciel Unity Pro sont en mesure de programmer certaines versions de systme d'exploitation des automates. Dans cette partie, nous allons dtailler les rgles de compatibilit respecter pour pouvoir mettre en uvre des projets d'automatisme sous Unity Pro.

28

35006145 05 novembre 2006

Prsentation

Compatibilits des fichiers XEF


version de fichier XEF

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:

: Sans le module ESY 007. Avec le module ESY 007.

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.

35006145 05 novembre 2006

29

Prsentation

Note : Les fichiers XEF gnrs par Unity Pro V1.00 peuvent tre ouverts par les autres versions de Unity Pro.

30

35006145 05 novembre 2006

Prsentation

Compatibilits des fichiers STA


version de fichier STA

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

: Sans le module ESY 007. Avec le module ESY 007.

3:

Note : Les fichiers STA n'existent pas pour Unity Pro V1.00.

35006145 05 novembre 2006

31

Prsentation

Compatibilits des fichiers STU


version de fichier STU

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

Sans le module ESY 007.

: Avec le module ESY 007.

Note : Les fichiers STU gnrs par Unity Pro V1.00 peuvent tre ouverts par cette versions de Unity Pro uniquement.

32

35006145 05 novembre 2006

Prsentation

Transferts et transferts en ligne


Version de fichier

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.

35006145 05 novembre 2006

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

Reprsentation de la fentre du configurateur


Bus Quantum local Bus : 1 140 CPU 671 60 01.00

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

35006145 05 novembre 2006

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

TSX AEY 414 Voie 0 Voie 1 Voie 2 Voie 3 Tche : MAST

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

Detection de bloc terminal Soudure froide Tlfast interne PT100 externe

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Prsentation

Configuration rseau

La configuration rseau s'appelle via le dossier communication. Configuration rseau :


Navigateur de projet Vue structurelle Communications Rseau my network Liaison Local Ethernet1 Modbus Plus_A Table de routage

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

SNMP Serveur d'adresses Bande passante

0 . 0 . 0 . 0 0 . 0 . 0 . 0 0 . 0 . 0 . 0

802.3

A l'issue de la configuration, le rseau est affect un module de communication.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Prsentation

Repres

L'onglet Variables permet de dclarer des variables. Onglet Variables :


010 Editeur de donnes Repres Filtre Nom Station1 Filling_up Mixer_filling_up End_of_filling Initial_mixer Initial_filling Empty_mixer Proportioning Fill_up_A Fill_up_B Sync_1 Sync_2 Fill_up_C Start_mixer Types DDT Nom * Type Bool SFCSTEP_STATE Bool Byte SFCSTEP_STATE Date SFCSTEP_STATE Dint SFCSTEP_STATE Dt SFCSTEP_STATE DWord SFCSTEP_STATE EBoot SFCSTEP_STATE Int SFCSTEP_STATE Bool Dint Dint Bool Bool Blocs fonction Elmentaire Adresse ... Types DFB Driv Valeur Driv E/S Commentaire

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

35006145 05 novembre 2006

39

Prsentation

Types de donnes lis au matriel (IO DDT)

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

35006145 05 novembre 2006

Prsentation

Types de donnes drivs (DDT)

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

43

Prsentation

Utilisation des donnes

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

Bote de dialogue de slection de donnes :


GEOFBDEDITOR : Slection d'instance

.1 AND
...

Repres Nom Nom

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

Set point... Set point... Set point...

%MW100 %MW101 %MW102

OK

Annuler

44

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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)

35006145 05 novembre 2006

47

Prsentation

Langage blocs fonction (FBD)


Introduction Lditeur FBD permet la programmation graphique de blocs fonction conformment la norme CEI 61131-3. Reprsentation d'une section FBD :
Sortie ENO Liaison AND EN 1 ENO %IX1.5.4 %IX1.5.5 EN OR 2 ENO A<B C=D EN AND 3 ENO Error1 Result1 Inversion Expression ST

Reprsentation
Fentre de contrle Variable

Entre EN

IN1 %QX4.2.3 Commentaire

cond IN1 TRUE 1

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

Symbole E1061 non dfini 'Varx'

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

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 %QX4.2.3 Commentaire

Error VarX

%Q2 IN1 %Q3 IN2


Info-bulle

OUT E1061 Symbole indfini 'Varx'

50

35006145 05 novembre 2006

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

35006145 05 novembre 2006

51

Prsentation

Prsentation gnrale du langage squentiel SFC


Introduction Cette section dcrit le langage squentiel SFC (Diagramme fonctionnel en squence), conforme la norme CEI 61131-3. Les restrictions relatives la conformit CEI peuvent tre leves grce des procdures d'activation explicites. Des fonctionnalits telles que Multijeton, tapes initiales multiples, saut vers et depuis des chanes parallles, etc. sont alors possibles.

52

35006145 05 novembre 2006

Prsentation

Reprsentation

Reprsentation d'une section SFC :


S_4_1 Etape initiale

Liaison

T1

Condition de transition (Variable boolenne) S_4_5 Divergence en ET Etape

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

Symbole E1061 non dfini 'VarX'


S_4_6 S_4_9 S_4_7 Saut

T_4_3 %I10.4 > S_4_4 S_4_7 %I10.5 Condition de transition Convergence en OU (adresse boolenne topologique)

Convergence en ET 1 Condition de transition (Littrale boolenne) MS_4_1 Macrotape

Return_Var

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

Temps OK Valeur littrale Variable

DS

Motor1

Accepter Nouveau Supprimer Haut Bas

Initialiser la recherche pour la variable slectionne... OK Annuler Appliquer Aide

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.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

Nom de l'ordinateur hte : Adresse IP hte : Nom du projet :

sg6157.aut.schneider-electric.com 139.158.106.116 Station

Clients connects Nom du client : hte local sg-avail.aut.schneider Rinitialisation Redmarrage Adresse IP : 127.000.000.001 139.158.107.005

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Prsentation

Services de mise au point


Recherche d'erreurs dans l'application utilisateur Les fonctions suivantes sont entre autres disponibles afin d'optimiser la recherche d'erreurs dans le projet : z pose de points d'arrt (Break points) dans les diteurs de langage de programmation z excution pas pas du programme (Step-by-step), avec pas pas entrant (Step into), pas pas sortant (Step out) et pas pas principal (Step over) z mmoire d'appel pour obtenir le chemin de programme complet z commande d'entres et sorties Lorsque le PC est reli l'automate et que la liaison est tablie, on parle de mode en ligne. Le mode en ligne est utilis pour la recherche d'erreurs (mise au point), l'animation et la modification du programme sur l'automate. Si la liaison doit tre tablie, une comparaison s'effectue automatiquement entre le projet du PC et l'automate. Cette comparaison peut donner les rsultats suivants : z projets diffrents sur le PC et sur l'automate En pareil cas, le mode en ligne n'est disponible que de faon limite. Seuls sont possibles les instructions de commande de l'automate (p. ex. dmarrage, arrt), les DiagServices (services de diagnostic) et le contrle des variables. Il n'est pas possible de modifier la logique de programme ou la configuration sur l'automate. Les fonctions de chargement et de lecture sont galement possibles et permettent de passer dans un mode illimit (projet identique sur le PC et sur l'automate). z projets identiques sur le PC et sur l'automate Une distinction est tablie entre les cas suivants : z EN LIGNE IDENTIQUE, GENERE La dernire gnration du projet sur le PC a t charge dans l'automate et aucune modification n'a ensuite t effectue, en d'autres termes, le projet sur le PC et celui sur l'automate sont absolument identiques. Dans ce cas, toutes les fonctions d'animation sont disponibles sans restriction. z EN LIGNE IDENTIQUE, NON GENERE La dernire gnration du projet sur le PC a t charge dans l'automate, mais des modifications ont ensuite t effectues. Dans ce cas, les fonctions d'animation ne sont disponibles que dans les parties du projet non modifies.

Mode en ligne

35006145 05 novembre 2006

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]

AND cond IN1 TRUE 1 EN

OR EN %IX1.5.4 %IX1.5.5

AND EN A>B C=D

ENO

ENO

ENO

Error1 Result1

64

35006145 05 novembre 2006

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;

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Prsentation

Point de surveillance (Watch Point)

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

35006145 05 novembre 2006

67

Prsentation

Point d'arrt (Break Point)

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;

Point d'arrt (Break Point)

68

35006145 05 novembre 2006

Prsentation

Mode pas pas

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.

35006145 05 novembre 2006

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

Alarme systme Erreur de pile de sauvegarde

28/01/2002 21:10:51

Rack de l'quipement dfaillant : Emplacement de l'quipement dfaillant :

0 0

70

35006145 05 novembre 2006

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

35006145 05 novembre 2006

71

Prsentation

Editeur de fentres utilisateur

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]

Filetage Alsage Vitesse d'alsage Insrer une valeur

50

Bloquer
0 100 Imprimer

Enclencher

Valider

Enclencher et bloquer FILETAGE


Fin de cycle Mise en marche

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

73

Structure application

74

35006145 05 novembre 2006

Description des fonctions disponibles pour chaque type d'automate

Fonctionnalits disponibles sur les diffrents types d'automates


Langages de programmation Tous les langages suivants sont disponibles pour les plates-formes Modicon M340, Premium, Atrium et Quantum : z LD z FBD z ST z IL z SFC

35006145 05 novembre 2006

75

Fonctions d'automates

Tches et processus
Plates-formes Processeurs

Le tableau suivant dcrit les tches et processus disponibles.


Modicon M340 (P34 1000) P34 20 Premium : TSX P57 0244 P57 1 P57 2 P57 3 P57 4 H57 24M H57 44M X X P57 5 P57 6634 Atrium : TSX PCI 57 204/ 354 Quantum : 140 CPU 31 43 53 651 652 60 671 60

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

35006145 05 novembre 2006

Structure du programme d'application

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

35006145 05 novembre 2006

77

Structure du programme

3.1
Prsentation
Objet de cette section Contenu de ce sous-chapitre

Description des tches et des traitements

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

35006145 05 novembre 2006

Structure du programme

Prsentation de la tche matre


Gnralits La tche matre reprsente la tche principale du programme d'application. Elle est obligatoire et cre par dfaut. La tche matre (MAST) est compose de sections et sous-programmes. Chaque section de la tche matre est programme dans les langages suivants : LD, FBD, IL, ST ou SFC. Les sous-programmes sont programms en langage LD, FBD, IL ou ST et sont appels dans les sections de tches. Note : SFC ne sont utilisables que dans les sections de tche matre. Le nombre de sections programmes dans SFC est illimit.

Structure

Excution

L'excution de la tche matre peut tre choisie :


z z

cyclique (slection par dfaut) ou priodique (1 255 ms)

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.

35006145 05 novembre 2006

79

Structure du programme

Prsentation de la tche rapide


Gnralits Constitution La tche rapide est destine aux traitements de courte dure et priodiques. La tche rapide (FAST) est constitue de sections, et de sous-programmes. Chaque section de la tche rapide se programme dans un des langages : LD, FBD, IL ou ST. Le langage SFC nest pas utilisable dans les sections dune tche rapide. Les sous-programmes se programment en langage LD, FBD, IL ou ST, ils sont appels dans les sections de la tche. Excution L'excution de la tche rapide est priodique. Elle est plus prioritaire que la tche matre. La priode de la tche rapide (FAST) est fixe par configuration, de 1 255 ms. Le programme excut doit cependant rester court pour viter le dbordement des tches moins prioritaires. Contrle La tche rapide peut tre contrle par programme par bits et mots systme.
Objets systme %SW1 %S31 %S11 %S19 %SW33 %SW34 %SW35 Description Priode de tche. Activation de la tche rapide. Erreur du chien de garde Dpassement priode. 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.

80

35006145 05 novembre 2006

Structure du programme

Prsentation des tches auxiliaires


Gnralits Les tches auxiliaires sont conues pour les tches de traitement plus lentes. Ces tches ont la priorit la plus faible. Il est possible de programmer jusqu' 4 tches auxiliaires (AUX0, AUX1, AUX2 ou AUX3) sur les automates Premium TSX P57 5 et Quantum 140 CPU 6. Les tches auxiliaires ne sont pas disponibles pour les automates Modicon M340. Structure Les tches auxiliaires (AUX) sont composes de sections et sous-programmes. Chaque section de la tche auxiliaire est programme dans l'un des langages suivants : LD, FBD, IL ou ST. Le langage SFC n'est pas utilisable dans les sections d'une tche auxiliaire. Un maximum de 64 sous-programmes peuvent tre programms en langage LD, FBD, IL ou ST. Ils sont appels dans les sections de tches. Excution L'excution des tches auxiliaires est priodique. Elles ont la priorit la plus faible. La priode de la tche auxiliaire peut tre fixe entre 10 ms et 2,55 s.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Structure du programme

Gestions des traitements vnementiels


Gnralits Le traitement de l'vnement est utilis pour rduire le temps de rponse du programme d'application aux vnements :
z z

provenant de modules d'entres/sorties, des vnements Timer.

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.

35006145 05 novembre 2006

83

Structure du programme

3.2
Prsentation
Objectif de cette section Contenu de ce sous-chapitre

Description de sections et de sous-programmes

La section suivante dcrit les sections et sous-programmes qui constituent la tche.

Ce sous-chapitre contient les sujets suivants :


Sujet Description de sections Description des sections SFC Description de sous-programmes Page 85 87 88

84

35006145 05 novembre 2006

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

35006145 05 novembre 2006

85

Structure du programme

Caractristiques d'une section

Le tableau suivant dcrit les caractristiques dune section.


Caractristique Nom Langage Tche ou traitement Condition (optionnel) Commentaire Protection Description 32 caractres maximum (les accents sont possibles, mais les espaces sont interdits). LD, FBD, IL, ST ou SFC Matre, rapide, auxiliaires, vnmntiel Une variable bit de type BOOL ou EBOOL peut tre utilise pour conditionner lexcution de la section. 256 caractres maximum. Protection en criture, protection en lecture/criture.

86

35006145 05 novembre 2006

Structure du programme

Description des sections SFC


Gnralits Les sections en langage diagramme fonctionnel en squence se composent :
z z z

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

35006145 05 novembre 2006

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

SR Sections Control_1 Detection

Caractristiques d'un sousprogramme

Le tableau suivant dcrit les caractristiques d'un sous-programme.


Caractristique Nom Langage Tche Commentaire Description 32 caractres maximum (les accents sont possibles, mais les espaces sont interdits). LD, FBD, IL ou ST. Matre, rapide ou auxiliaire 512 caractres maximum.

88

35006145 05 novembre 2006

Structure du programme

3.3
Prsentation
Objet de cette section Contenu de ce sous-chapitre

Excution monotche

Cette section dcrit le fonctionnement dune application monotche.

Ce sous-chapitre contient les sujets suivants :


Sujet Description du cycle de tche matre Monotche : Excution cyclique Excution priodique Contrle de la dure du cycle Excution des sections Quantum avec entres/sorties dcentralises Page 90 92 93 94 95

35006145 05 novembre 2006

89

Structure du programme

Description du cycle de tche matre


Gnralits Le programme d'une application monotche est associ une seule tche utilisateur la tche matre (voir Prsentation de la tche matre, p. 79). L'excution de la tche matre peut tre choisie :
z z

cyclique priodique

Illustration

Lillustration suivante montre le cycle de fonctionnement.

Acquisition des entres

Traitement du programme

Mise jour des sorties

90

35006145 05 novembre 2006

Structure du programme

Description des diffrentes phases

Le tableau ci-aprs dcrit les phases de fonctionnement.


Phase Description

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.

35006145 05 novembre 2006

91

Structure du programme

Monotche : Excution cyclique


Gnralits La tche matre fonctionne comme suit. Une description de l'excution cyclique de la tche matre est fournie pour le fonctionnement monotche. L'illustration suivante montre les phases d'excution du cycle automate.

Fonctionnement

Traitement du programme %I %Q %I

Traitement du programme %Q

Cycle n

Cycle n+1

%I Lecture des entres %Q Ecriture des sorties

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

35006145 05 novembre 2006

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 %I Cycle n %Q %I

Traitement du programme %Q

Cycle n+1

%I Lecture des entres %Q Ecriture des sorties

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

Deux contrles sont effectus :


z z

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).

35006145 05 novembre 2006

93

Structure du programme

Contrle de la dure du cycle


Gnralits La priode de l'excution de la tche matre, en fonctionnement cyclique ou priodique, est contrle par l'automate (chien de garde) et ne doit pas excder la valeur dfinie dans la configuration Tmax (1500 ms par dfaut, 1,5 s maximum). 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 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. Le mot %SW11 contient la valeur du chien de garde en ms. Cette valeur n'est pas modifiable par le programme. 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.

Chien de garde logiciel (fonctionnement priodique ou cyclique)

Contrle en fonctionnement priodique

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.

Exploitation des temps d'excution de tche matre

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

35006145 05 novembre 2006

Structure du programme

Excution des sections Quantum avec entres/sorties dcentralises


Gnralits Les automates Quantum possdent un systme de gestion des sections spcifique. Il sapplique aux stations dentres/sorties dcentralises. Ce systme permet une mise jour des entres/sorties dcentralises au niveau des sections assurant des temps de raction optimum(sans attente du temps de cycle complet de la tche pour la mise jour des entres/sorties). Fonctionnement Le dessin suivant montre les phases d'excution des sections dans le cas d'un exemple d'une tche comportant 3 sections associes 3 stations d'entres/de sorties dcentralises.
Traitement de la section 1 %I1 %Q1 %I2 Traitement de la section 2 %Q2 %I3 Traitement de la section 3 %Q3

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.

35006145 05 novembre 2006

95

Structure du programme

3.4
Prsentation
Objet de cette section Contenu de ce sous-chapitre

Excution multitche

Cette section dcrit le fonctionnement dune application multitche.

Ce sous-chapitre contient les sujets suivants :


Sujet Structure logicielle multitche Squencement des tches dans une structure multitche Contrle des tches Affectation des voies dentres/sorties aux tches matre, rapide et auxiliaires Gestions des traitements vnementiels Excution des traitements vnementiels de type TIMER Echanges d'entres/de sorties dans les traitements vnementiels Procdure de programmation du traitement des vnements Page 97 99 101 105 107 109 113 114

96

35006145 05 novembre 2006

Structure du programme

Structure logicielle multitche


Tches et traitements La structure de tche de ce type d'application est la suivante :
Tche/ Traitement Matre Rapide Auxiliaire Evnement Dsignation MAST FAST AUX 0 3 EVTi et TIMERi (voir Gnralits, p. 107) Description L'option Toujours prsent peut tre dfinie sur cyclique ou priodique. Facultatif, toujours priodique. Facultatif et toujours priodique. Appel par le systme lorsqu'un vnement se produit sur un module d'entres/sorties ou est dclench par un vnement TIMER. Ces types de traitements sont facultatifs et peuvent tre utiliss par des applications devant agir sur les entres et sorties dans un dlai trs court.

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.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Structure du programme

Squencement des tches dans une structure multitche


Gnralits La tche matre est active par dfaut. Les tches rapide et auxiliaires sont actives par dfaut si elles sont programmes. Le traitement vnementiel est activ lors d'apparition de l'vnement qui lui a t associ. Fonctionnement Le tableau suivant dcrit lexcution des tches prioritaires (ce fonctionnement est aussi illustr par le dessin ci-dessous).
Phase 1 2 3 4 Description Arrive d'un vnement ou dbut de cycle de la tche rapide. Arrt de l'excution des tches en cours moins prioritaires, Excution de la tche prioritaire. La tche interrompue reprend la main lorsque les traitements de la tche prioritaire se termine.

Description du squencement des tches

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

35006145 05 novembre 2006

99

Structure du programme

Contrle des tches

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

35006145 05 novembre 2006

Structure du programme

Contrle des tches


Fonctionnement cyclique ou priodique En fonctionnement multitche, la tche avec la priorit la plus leve devra tre utilise en mode priodique pour permettre aux tches avec la priorit la plus basse de s'excuter. Pour cette raison, seule la tche avec la priorit la plus faible devrait tre utilise en mode cyclique. Par consquent, choisir le mode de fonctionnement cyclique pour la tche matre exclut l'utilisation de tches auxiliaires. Mesure des dures des tches La dure des tches est mesure en continu. Cette mesure reprsente la dure entre le dmarrage et la fin de l'excution de la tche. Cette mesure inclut le temps mis par les tches de priorit de niveau le plus lev qui peuvent interrompre l'excution de la tche tant mesure. Les mots systme suivants donnent les dures des cycles actuels, maximum et minimum pour chaque tche (valeur en ms)
Mesure des dures Courant Maximum Dure Cycle %SW30 %SW31 %SW32 FAST %SW33 %SW34 %SW35 AUX0 %SW36 %SW37 %SW38 AUX1 %SW39 %SW40 %SW41 AUX2 %SW42 %SW43 %SW44 AUX3 %SW45 %SW46 %SW47

Note : Les dures maximum et minimum sont prises partir des dures mesures depuis le dernier redmarrage froid.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

103

Structure du programme

Contrle des tches

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

35006145 05 novembre 2006

Structure du programme

Affectation des voies dentres/sorties aux tches matre, rapide et auxiliaires


Gnralits Chaque tche assure lcriture et la lecture des entres/sorties qui lui ont t affectes. L'association d'une voie, d'un groupe de voies ou dun module dentres/sorties une tche est dfinie dans l'cran de configuration du module correspondant. La tche associe par dfaut est la tche MAST. Lecture des entres et criture des sorties sur Premium Toutes les voies dentres/sorties des modules en racks peuvent tre associes une tche (MAST, FAST ou AUX 0..3). Cas des entres\sorties locale et distantes (bus X): A chaque cycle de la tche, les entres sont lues en dbut de tche et les sorties sont crites en fin de tche. Cas des entres\sorties distantes sur bus Fipio: En mode asservi, le rafrachissement des entres/sorties est corrl avec la priode de la tche. Le systme garantit la mise jour des entres/sorties en une seule priode. Seules les entres/sorties associes cette tche sont rafrachies. Dans ce mode, la priode de tche automate (MAST, FAST ou AUX) doit tre suprieure ou gale au temps de cycle rseau. En mode libre, aucune contrainte nest impose sur la priode de la tche. La priode de tche automate (MAST, FAST ou AUX) peut tre infrieure au temps de cycle rseau.Dans ce cas, la tche peut tre excute sans une mise jour des entres/sorties. La slection de ce mode offre la possibilit davoir des temps de tche les plus faibles possibles dans le cas dapplication o la rapidit est critique.

35006145 05 novembre 2006

105

Structure du programme

Lecture des entres et criture des sorties sur Quantum

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.

Exemple sur Premium

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

35006145 05 novembre 2006

Structure du programme

Gestions des traitements vnementiels


Gnralits Les traitements vnementiels sont prioritaires sur les tches. Lillustration suivante dcrit les 3 niveaux de priorit dfinis:
Evnement temporisateur TIMERi Evnement I/O module EVTi Evnement module E/S EVT0

Priorit 2

Priorit 1 Priorit

Priorit 0

Gestion des priorits

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.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Structure du programme

Excution des traitements vnementiels de type TIMER


Description Les traitements vnementiels de type TIMER sont des traitements dclenchs par la fonction ITCNTRL (Voir Unity Pro, Systme, Bibliothque de blocs, ITCNTRL : Dclenchement des traitements vnementiels de type TIMER). Cette fonction de temporisation active priodiquement le traitement vnementiel chaque fois que la valeur de prslection est atteinte. Paramtres Les paramtres suivants sont slectionns au niveau des proprits du traitement vnementiel.
Paramtre Base de temps Valeur 1 ms, 10ms, 100ms, 1 sec Valeur par dfaut 10ms Rle Base de temps du temporisateur. Note : la base de temps de 1ms est utiliser avec prcaution, risque doverrun si la frquence de dclenchement des traitements est trop importante. Valeur de prslection du temporisateur. La temporisation labore vaut : Prslection x Base de temps. Valeur de dcalage temporel entre la transition STOP/RUN de l'automate et le premier redmarrage 0 du temporisateur. La valeur temporelle est gale : Phase x Base de temps.

Prslection

1..1023

10

Phase

0..1023

35006145 05 novembre 2006

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

Le tableau suivant dcrit les paramtres dentre :


Paramtre Enable Reset_Timer Hold_Timer Nb_Task_Event Type BOOL BOOL BOOL BYTE Commentaire Entre de validation Sur tat 1 rinitialise le temporisateur. Sur tat 1 "gle" lincrmentation du temporisateur. Octet dentre qui dtermine le numro du traitement vnementiel dclencher.

Le tableau suivant dcrit les paramtres de sortie :


Paramtre Status_Timer Current_Value Type WORD TIME Commentaire Mot dtat. Valeur courante du temporisateur.

Chronogramme du fonctionnement normal

Chronogramme.

RESET ENABLE

HOLD

Prslection x BT VALUE

1 2 3

Evnement

Evnement

Evnement

Evnement

110

35006145 05 novembre 2006

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

Synchronisation de traitement vnementiel

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

35006145 05 novembre 2006

111

Structure du programme

Chronogramme : Transition STOP/ RUN

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

Fonctionnement aprs un STOP/ RUN pour l'automate

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

35006145 05 novembre 2006

Structure du programme

Echanges d'entres/de sorties dans les traitements vnementiels


Gnralits Il est possible d'utiliser chaque traitement vnementiel des voies d'entres/ sorties autres que celle relative l'vnement. Comme pour les tches, les changes sont alors raliss implicitement par le systme avant (%I) et aprs (%Q) le traitement applicatif. Fonctionnement Le tableau suivant dcrit les changes et les traitements raliss.
Phase 1 2 3 4 Description L'apparition d'un vnement droute le programme application vers le traitement qui est associ la voie d'entre/sortie qui a provoqu l'vnement. Toutes les entres associes au traitement vnementiel sont acquises automatiquement. Le traitement vnementiel est excut. Il doit tre le plus court possible. Toutes les sorties associes au traitement vnementiel sont mises jour.

Cas des Premium/Atrium

Les entres acquises et les sorties mises jour sont :


z z

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

35006145 05 novembre 2006

113

Structure du programme

Procdure de programmation du traitement des vnements


Procdure Le tableau ci-dessous rsume les tapes essentielles de la programmation dun traitement vnementiel.
Etape 1 Action Phase configuration (cas dvnements dclenchs par modules dentres sorties) En local, dans lditeur de configuration, choisissez Traitement vnementiel (EVT) et le numro du traitement vnementiel pour la voie du module dentres/sorties concerne. Phase dmasquage La tche qui peut tre interrompue doit en particulier : z Valider le traitement des vnements au niveau systme : bit %S38 positionner 1 (valeur par dfaut). z Dmasquer les vnements avec l'instruction UNMASKEVT (active par dfaut). z Dmasquer les vnements concerns au niveau voie (cas d'vnements dclenchs par modules d'entres/sorties) en dfinissant sur 1 des objets langage implicites de dmasquage des vnements propre au module d'entres/sorties. Par dfaut, les vnements sont masqus. z Vrifier que la pile d'vnements au niveau systme n'est pas sature (le bit %S39 doit tre dfini sur 0). Phase cration du programme vnementiel Le programme doit : z Dterminer lorigine de(s) lvnement(s) partir du mot dtat dvnement associ au module dentres/sorties si le module peut gnrer plusieurs vnements. z Excuter les traitements rflexes associes lvnement. Ce traitement doit tre le plus court possible. z crire les sorties rflexes concernes. Remarque : la remise zro du mot dtat dvnements est automatique.

114

35006145 05 novembre 2006

Structure du programme

Illustration du dmasquage des vnements

Cette figure illustre le dmasquage des vnements effectu dans la tche MAST.

(* Dmasquage des vnements*) UNMASKEVT EN ENO

(* 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

Illustration du contenu d'un traitement vnementiel

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

35006145 05 novembre 2006

115

Structure du programme

116

35006145 05 novembre 2006

Structure mmoire application

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

35006145 05 novembre 2006

117

Structure mmoire

118

35006145 05 novembre 2006

Structure mmoire

4.1

Structure de mmoire pour les automates Premium, Atrium et Modicon M340

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

35006145 05 novembre 2006

119

Structure mmoire

Structure de mmoire pour automates Modicon M340


Prsentation La mmoire de l'automate prend en charge :
z z z

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

Programme interne Carte mmoire

Pages Web et stockage des fichiers

120

35006145 05 novembre 2006

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

35006145 05 novembre 2006

121

Structure mmoire

Sauvegarde de la valeur courante

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

Spcificits de la carte mmoire

Deux types de carte mmoire sont disponibles :


z z

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

35006145 05 novembre 2006

Structure mmoire

Structure mmoire des automates Premium et Atrium


Gnralits La mmoire automate supporte :
z z z

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.

Structure sans carte mmoire dextension

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

Structure avec 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.

35006145 05 novembre 2006

123

Structure mmoire

Spcificits des cartes mmoires

Trois types de cartes mmoires sont proposes :


z z

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

35006145 05 novembre 2006

Structure mmoire

Description dtaille des zones mmoires


Donnes utilisateur Cette zone contient les donnes localises et les donnes non localises de lapplication.
z

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

Programme utilisateur et constantes

Cette zone contient les codes excutables et les constantes de lapplication.


z

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.

35006145 05 novembre 2006

125

Structure mmoire

4.2
Description
Objet de ce souschapitre Contenu de ce sous-chapitre

Structure de la mmoire des automates Quantum

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

35006145 05 novembre 2006

Structure mmoire

Structure mmoire des automates Quantum


Gnralits La mmoire automate supporte :
z z z

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.

Structure sans carte mmoire dextension

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

Systme dexploitation (1)

35006145 05 novembre 2006

127

Structure mmoire

Structure avec carte mmoire dextension

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

35006145 05 novembre 2006

Structure mmoire

Spcificits des cartes mmoires

Trois types de cartes mmoires sont proposes :


z z

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.

35006145 05 novembre 2006

129

Structure mmoire

Description dtaille des zones mmoires


Donnes non localises Cette zone contient les donnes non localises :
z z

donnes boolennes et numriques, EFB et DFB.

Donnes localises

Cette zone contient les donnes localises (State Ram) :


Adresse 0xxxxx 1xxxxx 3xxxxx 4xxxxx Repre des objets %Qr.m.c.d,%Mi %Ir.m.c.d, %Ii %IWr.m.c.d, %IWi %QWr.m.c.d, %MWi Utilisation des donnes bits de module de sorties et bits internes. bits de modules dentres. mots registre dentre des modules dentres/sorties. mots de sortie des modules dentres/sorties et mots internes.

Programme utilisateur

Cette zone contient les codes excutables de lapplication.


z z z z

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

131

Structure mmoire

132

35006145 05 novembre 2006

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

35006145 05 novembre 2006

133

Modes de fonctionnement

5.1

Modes de fonctionnement des automates Modicon M340

Description
Objet de cette section Contenu de ce sous-chapitre Cette section dcrit les modes de fonctionnement des automates Modicon M340.

Ce sous-chapitre contient les sujets suivants :


Sujet Traitement en cas de coupure et de restauration des automates Modicon M340 Traitement d'un dmarrage froid des automates Modicon M340 Traitement des automates Modicon M340 lors d'un redmarrage chaud Dmarrage automatique en RUN des automates Modicon M340 Page 135 137 141 144

134

35006145 05 novembre 2006

Modes de fonctionnement

Traitement en cas de coupure et de restauration des automates Modicon M340


Gnralits Si la dure de la coupure est infrieure au temps de filtrage de l'alimentation, il n'y a aucune incidence sur le programme qui s'excute normalement. Dans le cas inverse, il y a interruption du programme et traitement de la reprise secteur. Temps de filtrage :
Automate BMX CPS 2000 BMX CPS 3500 BMX CPS 2010 BMX CPS 3020 Alimentation alternative 10ms Alimentation continue 1ms

Illustration

Lillustration suivante montre le cycle de fonctionnement.


RUN ou STOP Application

Dfaut secteur

Sauvegarde Contexte

Reprise consommation Oui

Vrification du contexte

Contexte non valide

Contexte valide Redmarrage chaud Dmarrage froid

35006145 05 novembre 2006

135

Modes de fonctionnement

Fonctionnement

Le tableau ci-aprs dcrit les phases du traitement des coupures secteur.


Phase 1 Description En cas de coupure de courant, le systme enregistre le contexte applicatif, les valeurs des variables d'application et l'tat du systme sur la mmoire Flash interne. Le systme positionne toutes les sorties l'tat repli (tat dfini par configuration). Sur restitution du courant, certaines actions et vrifications sont effectues pour vrifier si le redmarrage chaud est disponible : z Restitution du contexte applicatif partir de la mmoire Flash interne, z Vrification avec la carte mmoire (prsence, disponibilit de l'application), z Vrification du contexte applicatif pour voir s'il est identique au contexte de la carte mmoire, Si toutes les vrifications sont correctes, un redmarrage chaud (voir Traitement des automates Modicon M340 lors d'un redmarrage chaud, p. 141) est effectu, sinon un redmarrage froid (voir Traitement d'un dmarrage froid des automates Modicon M340, p. 137) a lieu.

2 3

136

35006145 05 novembre 2006

Modes de fonctionnement

Traitement d'un dmarrage froid des automates Modicon M340


Cause d'un dmarrage froid Le tableau suivant dcrit les diffrentes causes possibles d'un dmarrage froid.
Causes Chargement d'une application Restitution d'une application partir d'une carte mmoire, lorsque l'application est diffrente de celle dans la RAM interne Restitution d'une application partir d'une carte mmoire, avec les commandes Unity Pro Automate Sauvegarde du projet .... Caractristiques du dmarrage Dmarrage froid forc en STOP Dmarrage froid forc en STOP ou en RUN selon dfinition en configuration 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 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.

35006145 05 novembre 2006

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

Le dessin ci-aprs dcrit le fonctionnement dune reprise froid.


Acquisition des entres Arrt du processeur Sauvegarde du contexte application

Excution du programme TOP

Si %SW10.0=0, traitement ventuel de la reprise froid

Retour secteur

Auto-test de la configuration Coupure secteur > micro-coupure Non BOT Oui Initialisation de l'application

et mise 1 du bit %SW10.0

Mise 1 du bit %S0 et mise 0 du bit %SW10.0

Mise jour des sorties

138

35006145 05 novembre 2006

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

cycle de la tche matre.


z l'initialisation de donnes (bits, image des E/S, mots...) par les valeurs initiales

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.

Pour ce premier cycle de reprise le systme effectue :


z la relance de la tche matre avec les bits %S0 (redmarrage froid) et %S13

(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.

35006145 05 novembre 2006

139

Modes de fonctionnement

Traitement par programme d'un dmarrage froid

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

Ds la dtection de la coupure secteur, les sorties sont mises en position de repli :


z z

soit elles prennent la valeur de repli, soit il y a maintien de la valeur en cours,

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

35006145 05 novembre 2006

Modes de fonctionnement

Traitement des automates Modicon M340 lors d'un redmarrage chaud


Cause dune reprise chaud Une reprise chaud peut tre provoque :
z z z z

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.

35006145 05 novembre 2006

141

Modes de fonctionnement

Illustration

Le dessin ci-aprs dcrit le fonctionnement dune reprise chaud.


Acquisition des entres Arrt du processeur Sauvegarde du contexte application

Excution du programme TOP

Si %S1=1, traitement ventuel de la reprise chaud

Reprise secteur

Auto-test de la configuration

Coupure dtecte

Mise 1 du bit %S1

Mise 0 du bit %S1

Mise jour des sorties

142

35006145 05 novembre 2006

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/

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). 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.

Traitement par programme de la reprise chaud Changements de sortie

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

soit elles prennent la valeur de repli, soit il y a maintien de la valeur en cours,

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.

35006145 05 novembre 2006

143

Modes de fonctionnement

Dmarrage automatique en RUN des automates Modicon M340


Description Le dmarrage automatique en RUN est une option de configuration du processeur. Cette option force l'automate dmarrer en mode RUN aprs un redmarrage froid (voir Cause d'un dmarrage froid, p. 137), sauf aprs le chargement d'une application sur ce dernier. Pour Modicon M340, cette option n'est pas prise en compte lorsque le bouton de rinitialisation de l'alimentation est activ aprs une erreur lie au processeur, sauf si celle-ci concerne le chien de garde. DANGER Utilisation de l'option Dmarrage automatique en Run Les actions ci-aprs dclenchent le dmarrage automatique en RUN : z restitution de l'application depuis la carte mmoire ; z usage fortuit ou imprudent du bouton de rinitialisation.
z

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

35006145 05 novembre 2006

Modes de fonctionnement

5.2

Mode de fonctionnement des automates Premium et Quantum

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

35006145 05 novembre 2006

145

Modes de fonctionnement

Traitement en cas de coupure et de reprise secteur des automates Premium/ Quantum


Gnralits Si la dure de la coupure est infrieure au temps de filtrage de l'alimentation, celleci n'est pas vue par le programme qui s'excute normalement. Dans le cas inverse, il y a interruption du programme et traitement de la reprise secteur. Temps de filtrage :
automate Premium Atrium Quantum Alimentation alternative 10ms 30ms 10ms Alimentation continue 1ms 1ms

Illustration

Lillustration prsente les diffrentes reprises secteurs dtectes par le systme.


RUN Application

Dfaut secteur Attente secteur Reprise secteur

Oui Coupure dtecte

Sauvegarde Contexte OK

Non

Non

Oui

Carte mmoire identique Oui Excution normale du programme Reprise chaud

Non

Dmarrage froid

146

35006145 05 novembre 2006

Modes de fonctionnement

Fonctionnement

Le tableau ci-aprs dcrit les phases du traitement des coupures secteur.


Phase 1 2 3 Description Lors de la coupure secteur, le systme mmorise le contexte application et l'heure de la coupure. Il positionne toutes les sorties l'tat repli (tat dfini par configuration). A la reprise secteur, le contexte sauvegard est compar celui en cours; ce qui dfinit le type de dmarrage excuter : z si le contexte application a chang (perte du contexte systme ou nouvelle application), l'automate effectue l'initialisation de l'application : dmarrage froid, z si le contexte application est identique, l'automate effectue une reprise sans initialisation des donnes : reprise chaud.

Coupure de l'alimentation sur un rack, autre que le rack 0

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.

35006145 05 novembre 2006

147

Modes de fonctionnement

Traitement d'un dmarrage froid d'automates Premium/Quantum


Cause d'un dmarrage froid Le tableau suivant dcrit les diffrentes causes possibles d'un dmarrage froid.
Causes Chargement d'une application Action sur bouton RESET du processeur (Premium) Activation du bouton RESET du processeur aprs une erreur processeur ou systme (Premium). Manipulation du prhenseur ou insertion/ extraction d'une carte mmoire PCMCIA Initialisation depuis Unity Pro. Forage du bit systme %S0 Caractristiques du dmarrage Dmarrage froid forc en STOP Dmarrage froid forc en STOP ou en RUN selon dfinition en configuration Dmarrage froid forc en STOP

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

35006145 05 novembre 2006

Modes de fonctionnement

Illustration

Le dessin ci-aprs dcrit le fonctionnement dune reprise froid.


Acquisition des entres Arrt du processeur Sauvegarde du contexte application

Excution du programme TOP

Si %SW10.0=0, traitement ventuel de la reprise froid

Retour secteur

Auto-test de la configuration Coupure secteur > microcoupure Non BOT Oui Initialisation de lapplication

Mise 0 du bit %S0 et mise 1 du bit %SW10.0

Mise 1 du bit %S0 et mise 0 du bit %SW10.0

Mise jour des sorties

35006145 05 novembre 2006

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.

Pour ce premier cycle de reprise le systme effectue :


z la relance de la tche matre avec les bits %S0 (reprise froid) et %S13

(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.

Traitement par programme d'un dmarrage froid

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

35006145 05 novembre 2006

Modes de fonctionnement

Evolution des sorties, pour les modules Premium et Atrium

Ds la dtection de la coupure secteur, les sorties sont mises en position de repli :


z z

soit elles prennent la valeur de repli ou il y a maintien de la valeur en cours,

suivant le choix effectu en configuration. A la reprise secteur, les sorties sont zro jusqu' ce qu'elles soient remises jour par la tche.

Evolution des sorties, pour le Quantum

Ds la dtection de la coupure secteur,


z z

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.

35006145 05 novembre 2006

151

Modes de fonctionnement

cas des processeurs Quantum 140 CPU 31/41/ 51

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

35006145 05 novembre 2006

Modes de fonctionnement

Traitement des automates Premium/Quantum lors d'un redmarrage chaud


Cause dune reprise chaud Une reprise chaud peut tre provoque :
z z z z

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

Le dessin ci-aprs dcrit le fonctionnement dune reprise chaud.


Acquisition des entres Arrt du processeur Sauvegarde du contexte application

Excution du programme TOP

Si %S1=1, traitement ventuel de la reprise chaud

Reprise secteur

Auto-test de la configuration

Coupure dtecte

Mise 1 du bit %S1

Mise 0 du bit %S1

Mise jour des sorties

35006145 05 novembre 2006

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

vnementiels la fin de ce premier cycle de la tche matre.

Traitement par programme de la reprise chaud

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).

Evolution des sorties, pour les modules Premium et Atrium

Ds la dtection de la coupure secteur, les sorties sont mises en position de repli :


z z

soit elles prennent la valeur de repli ou il y a maintien de la valeur en cours,

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.

Evolution des sorties, pour le Quantum

Ds la dtection de la coupure secteur,


z z

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

35006145 05 novembre 2006

Modes de fonctionnement

Dmarrage automatique en mode RUN pour les modules Premium/Quantum


Description Le dmarrage automatique en mode RUN est une option de configuration du processeur. Cette option force l'automate dmarrer en RUN aprs un redmarrage froid (voir Traitement d'un dmarrage froid d'automates Premium/ Quantum, p. 148), sauf aprs le chargement d'une application sur celui-ci. Pour les automates Quantum, le dmarrage automatique en mode RUN dpend de la position du commutateur situ sur le panneau avant du processeur. Pour plus de dtails, reportez-vous la documentation Quantum (Voir Matriel des automates Quantum avec Unity Pro, Interrupteurs cl). DANGER Utilisation de l'option Dmarrage automatique en Run Les actions ci-aprs dclenchent le dmarrage automatique en RUN : z l'insertion d'une carte PCMCIA la mise sous tension de l'automate (Premium, Quantum) ; z le remplacement du processeur sous tension (Premium, Quantum) ; z l'usage fortuit ou imprudent du bouton de rinitialisation ; z une batterie qui s'avre dfectueuse en cas de coupure de courant (Premium, Quantum). Pour viter un redmarrage non souhait en mode RUN : z Il est vivement recommand d'employer la commande RUN/STOP sur les automates Premium ou le commutateur situ l'avant du panneau du processeur sur les automates Quantum. z Il est dconseill d'utiliser les entres mmorises en tant qu'entre RUN/STOP pour l'automate. Le non-respect de cette directive entranera la mort, des blessures graves ou des dommages matriels.

35006145 05 novembre 2006

155

Modes de fonctionnement

5.3

Mode HALT de l'automate

Mode HALT de l'automate


Prsentation Lautomate est pass en HALT par les actions suivantes:
z z z

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

157

Objets systme

6.1
Description
Objet de cette section Contenu de ce sous-chapitre

Bits systme

Ce chapitre dcrit les bits systme.

Ce sous-chapitre contient les sujets suivants :


Sujet Prsentation des bits systme Description des bits systme %S0 %S7 Description des bits systme %S9 %S13 Description des bits systme %S15 %S21 Description des bits systme %S30 %S59 Description des bits systme %S60 %S78 Description des bits systme %S80 %S96 Description des bits systme %S100 %S122 Page 159 160 162 164 167 170 175 177

158

35006145 05 novembre 2006

Objets systme

Prsentation des bits systme


Gnralits Les automates Modicon M340, Premium, Atrium et Quantum disposent de bits systme %Si qui indiquent les tats de lautomate ou permettent dagir sur le fonctionnement de celui-ci Ces bits peuvent tre tests dans le programme utilisateur afin de dtecter toute volution de fonctionnement devant entraner une procdure particulire de traitement. Certains de ces bits doivent tre remis dans leur tat initial ou normal par le programme. Cependant, les bits systme qui sont remis dans leur tat initial ou normal par le systme ne doivent pas ltre par le programme ou par le terminal

35006145 05 novembre 2006

159

Objets systme

Description des bits systme %S0 %S7


Description dtaille
Bit Symbole %S0 COLDSTART

Description des bits systme %S0 %S7 :


Fonction Description Etat initial Modicon M340 OUI Premium Quantum Atrium OUI OUI

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

Base de temps 100 ms

Idem %S4

OUI

OUI

OUI

160

35006145 05 novembre 2006

Objets systme

Bit Symbole %S6 TB1SEC %S7 TB1MIN

Fonction Description Base de Idem %S4 temps 1 s Base de temps 1 min Idem %S4

Etat initial -

Modicon M340 OUI OUI

Premium Quantum Atrium OUI OUI OUI OUI

35006145 05 novembre 2006

161

Objets systme

Description des bits systme %S9 %S13


Description dtaille
Bit Symbole %S9 OUTDIS

Description des bits systme %S9 %S13 :


Fonction Description Etat Modicon initial M340 0 OUI Premium Quantum Atrium OUI NON

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

Dfaut d'entres/ sorties

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

35006145 05 novembre 2006

Objets systme

Bit Symbole %S11 WDG

Fonction

Description

Etat initial 0

Modicon Premium Quantum M340 Atrium OUI OUI OUI

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

Premier cycle aprs mise en RUN

OUI

OUI

OUI

35006145 05 novembre 2006

163

Objets systme

Description des bits systme %S15 %S21


Description dtaille
Bit Symbole %S15 STRINGERROR

Description des bits systme %S15 %S21 :


Fonction Dfaut chane de caractres Description Normalement l'tat 0, ce bit est mis l'tat 1 quand la zone de destination d'un transfert de chane de caractres n'a pas la taille suffisante (comprenant le nombre de caractres et le caractre de fin de chane de caractres) pour accueillir cette chane de caractres. L'application s'arrte en erreur si le bit %S78 a t mis 1. Ce bit doit tre remis 0 par l'application. Normalement l'tat 1, ce bit est mis l'tat 0 par le systme sur dfaut d'un module d'E/S en rack ou d'un quipement sur Fipio configur dans la tche. Ce bit doit tre remis 1 par l'utilisateur. Etat initial 0 Modicon Premium Quantum M340 Atrium OUI OUI OUI

%S16 IOERRTSK

Dfaut d'entres/ sorties tche

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

35006145 05 novembre 2006

Objets systme

Bit Symbole %S17 CARRY %S18 OVERFLOW

Fonction Sortie dcalage circulaire

Description Normalement l'tat 0. Lors d'une opration de dcalage circulaire, ce bit prend l'tat du bit sortant.

Etat initial 0

Modicon Premium Quantum M340 Atrium OUI OUI OUI

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

35006145 05 novembre 2006

165

Objets systme

Bit Symbole %S19 OVERRUN

Fonction Dpasseme nt priode de tche (scrutation priodique)

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

Modicon Premium Quantum M340 Atrium OUI OUI OUI

%S20 INDEXOVF

Dpasseme nt d'index

OUI

OUI

OUI

%S21 1RSTTASK RUN

Premier cycle de tche

OUI

OUI

OUI

166

35006145 05 novembre 2006

Objets systme

Description des bits systme %S30 %S59


Description dtaille
Bit Symbole %S30 MASTACT Fonction Activation/ dsactivation de la tche matre

Description des bits systme %S30 %S59 :


Description Normalement rgl sur 1. La tche matre est dsactive lorsque l'utilisateur rgle le bit sur 0. Ce bit est pris en compte par le systme la fin de chaque cycle de tche MAST. Etat Modicon Premium initial M340 Atrium 1 OUI OUI Quantum OUI

%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

35006145 05 novembre 2006

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.

Etat Modicon Premium initial M340 Atrium 1 OUI OUI

Quantum NON

%S40 Dfaut RACK0ERR d'entre/ sortie du rack 0

%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

35006145 05 novembre 2006

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).

Etat Modicon Premium initial M340 Atrium 0 OUI OUI

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

35006145 05 novembre 2006

169

Objets systme

Description des bits systme %S60 %S78


Description dtaille
Bit Symbole %S60 BACKUPCHVOV

Description des bits systme %S60 %S78 :


Fonction Commande de commutation volontaire Dsactivation de carte Description Ce bit commande la commutation volontaire dans le cas de mise en oeuvre d'une architecture redondante. Ce bit peut tre remis 0 par l'utilisateur ou par applicatif. Il est ncessaire de gnrer un front montant sur le bit %S65 avant d'extraire la carte afin de garantir la cohrence des informations. En effet, lors de la dtection d'un front montant, les accs actuels sont termins (lecture et criture de fichiers, enregistrement de l'application), puis le voyant d'accs la carte est teint (le voyant CARDERR demeure inchang). Ensuite la carte peut tre extraite et le voyant CARDERR est allum. Insertion de la carte : le voaynt d'accs est allum et le voyant CARDERR affiche le statut (%S65 demeure inchang). L'utilisateur doit remettre 0 %S65 pour permettre la dtection du front. Si un front montant a t gnr sur le bit %S65 et que la carte n'a pas t extraite, la remise 0 du bit ne permet pas d'accder la carte. Etat Modicon Premium Quantum initial M340 Atrium 0 NON OUI NON

%S65 CARDIS

OUI

NON

NON

170

35006145 05 novembre 2006

Objets systme

Bit Symbole %S66 LEDBATT APPLIBCK

Fonction Sauvegarde de l'application

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

35006145 05 novembre 2006

171

Objets systme

Bit Symbole %S67 PCMCIABAT0

Fonction Etat pile carte mmoire application

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

Etat pile processeur

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

35006145 05 novembre 2006

Objets systme

Bit Symbole %S75 PCMCIABAT1

Fonction Etat pile carte mmoire stockage de donnes

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

Buffer de diagnostic configur

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

Buffer de diagnostic plein

OUI

OUI

OUI

35006145 05 novembre 2006

173

Objets systme

Bit Symbole %S78 HALTIFERROR

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

35006145 05 novembre 2006

Objets systme

Description des bits systme %S80 %S96


Description dtaille
Bit Symbole %S80 RSTMSGCNT

Description des bits systme %S80 %S96 :


Fonction Remise zro des compteurs de messages Rafrachiss ement des mots commun Description Normalement l'tat 0, ce bit peut tre mis 1 par l'utilisateur pour remettre zro les compteurs de messages %SW80 %SW86. Normalement l'tat 0, ce bit est mis 1 sur rception des mots commun venant d'une autre station du rseau. Ce bit peut tre mis 0 par le programme ou par le terminal pour vrifier le cycle d'change des mots commun. Etat Modicon Premium Quantum initial M340 Atrium 0 OUI OUI OUI

%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

35006145 05 novembre 2006

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

%S94 SauvegarSAVECURRVAL de des valeurs de rglages

%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

35006145 05 novembre 2006

Objets systme

Description des bits systme %S100 %S122


Description dtaille
Bit Symbole

Description des bits systme %S100 %S122 :


Fonction Description Positionn 0 ou 1 par le systme suivant l'tat du shunt INL/DPT sur la prise console. z si le shunt est absent (%S100=0) alors le protocole Uni-Telway matre est utilis, z si le shunt est prsent (%S100=1) alors le protocole utilis est celui indiqu par la configuration de l'application. Etat Modicon Premium Quantum initial M340 Atrium NON OUI NON

%S100 Protocole PROTTERINL sur prise terminal

%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

35006145 05 novembre 2006

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.

Ce sous-chapitre contient les sujets suivants :


Sujet Description des mots systme %SW0 %SW11 Description des mots systme %SW12 %SW29 Description des mots systme %SW30 %SW47 Description des mots systme %SW48 %SW59 Description des mots systme %SW70 %SW99 Description des mots systme %SW108 %SW116 Description des mots systme %SW122 %SW127 Page 179 182 186 188 191 199 200

178

35006145 05 novembre 2006

Objets systme

Description des mots systme %SW0 %SW11


Description dtaille
Mot Symbole %SW0 MASTPERIOD

Description des mots systme %SW0 %SW11 :


Fonction Priode de scrutation de la tche matre Description Ce mot est utilis pour modifier la priode de la tche matre via le programme utilisateur ou via le terminal. La priode est exprime en ms (1...255 ms) %SW0=0 en fonctionnement cyclique. Lors d'un redmarrage froid : ce mot prend la valeur dfinie par la configuration. Ce mot est utilis pour modifier la priode de la tche rapide via le programme utilisateur ou via le terminal. La priode est exprime en millisecondes (1...255 ms). Lors d'un redmarrage froid, ce mot prend la valeur dfinie par la configuration. Ce mot est utilis pour modifier la priode des tches dfinies dans la configuration, via le programme utilisateur ou via le terminal. La priode est exprime en dizaine de ms (10 ms 2,55 s). (1) uniquement sur les automates 140 CPU 6 et TSX 57 5. Adresse IP Adresse IP du port Ethernet de l'UC. La modification de la valeur de ce mot n'est pas prise en compte. Ce bit est sur 0 lorsque l'UC ne dispose pas de port Ethernet. OUI NON NON Etat initial 0 Modicon M340 OUI Premium Quantum Atrium OUI OUI

%SW1 FASTPERIOD

Priode de scrutation de la tche rapide

OUI

OUI

OUI

%SW2 AUX0PERIOD %SW3 AUX1PERIOD %SW4 AUX2PERIOD %SW5 AUX3PERIOD %SW6 %SW7

Priode de scrutation de la tche auxiliaire

NON

OUI (1)

OUI (1)

35006145 05 novembre 2006

179

Objets systme

Mot Symbole %SW8 TSKINHIBIN

Fonction Acquisition de la surveillance d'entres tche

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

Modicon M340 OUI

Premium Quantum Atrium OUI OUI (1)

%SW9 TSKINHIBOUT

Surveillance de la mise jour de sorties de tches

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

35006145 05 novembre 2006

Objets systme

ATTENTION

RISQUES LIES A UN COMPORTEMENT INATTENDU


Sur Premium/Atrium : Les sorties de modules situes sur le bus X passent automatiquement en mode configur (repli ou maintien). Sur le bus Fipio, certains quipements ne prennent pas en charge le mode repli. Ici, seul le mode maintien est possible. Sur Quantum : Toutes les sorties, ainsi que le rack local ou distant (RIO) sont maintenus l'tat prcdant le passage sur 1 du bit %SW9 correspondant la tche. Les entres/sorties distribues (DIO) ne sont pas affectes par le mot systme %SW9. Le non-respect de cette directive peut entraner des lsions corporelles.

Mot Symbole %SW10 TSKINIT

Fonction Premier cycle aprs un dmarrage froid

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

Modicon Premium M340 Atrium OUI OUI

Quantum OUI

%SW11 WDGVALUE

Dure du chien de garde

OUI

OUI

OUI

35006145 05 novembre 2006

181

Objets systme

Description des mots systme %SW12 %SW29


Description dtaille
Mot Symbole %SW12 UTWPORTADDR

Description des mots systme %SW12 %SW29 :


Fonction Adresse du port srie du processeur Description Pour Premium : Adresse UniTelway du port terminal (en mode esclave) dfinie dans la configuration et charge dans ce mot lors d'un dmarrage froid. La modification de la valeur de ce mot n'est pas prise en compte par le systme. Modicon M340 : adresse esclave Modbus du port srie de l'UC. La modification de la valeur de ce mot n'est pas prise en compte. Ce bit est mis 0 lorsque l'UC ne dispose pas de port srie. Ce mot fournit les donnes suivantes relatives au rseau principal (Fipway ou Ethway) : z le numro de station (octet de poids faible) de 0 127, z le numro de rseau (octet de poids fort) de 0 63, (valeur des micro-interrupteurs sur la carte PCMCIA). Etat initial Modicon Premium Quantum M340 Atrium OUI OUI NON

%SW13 XWAYNETWADDR

Adresse principale de la station

254 (16#00FE)

NON

OUI

NON

%SW14 OSCOMMVERS

Version commerciale du processeur automate

Ce mot contient la version commerciale du processeur automate. Exemple : 16#0135 version : 01 numro de rvision : 35

OUI

OUI

OUI

182

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW15 OSCOMMPATCH

Fonction Version du patch processeur automate

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

Numro de version du micrologiciel

OUI

OUI

OUI

%SW17 FLOATSTAT

Statut de dfaut sur opration flottante

OUI

OUI

OUI

35006145 05 novembre 2006

183

Objets systme

Mot Symbole %SD18 : %SW18 et %SW19 100MSCOUNTER

Fonction Compteur de temps absolu

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

%SD20 : %SW20 et %SW21 MSCOUNTER

Compteur de temps absolu

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW23

Fonction Valeur du commutateur rotatif

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

%SW27 %SW28 %SW29

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.

35006145 05 novembre 2006

185

Objets systme

Description des mots systme %SW30 %SW47


Description dtaille
Mot Symbole

Description des mots systme %SW30 %SW35 :


Fonction Description Ce mot indique le temps d'excution du dernier cycle de la tche matre (en ms). Etat Modicon initial M340 OUI Premium Quantum OUI OUI

%SW30 Temps MASTCURRTIME dexcution tche matre %SW31 MASTMAXTIME

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

%SW33 Temps FASTCURRTIME dexcution tche rapide %SW34 FASTMAXTIME

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

35006145 05 novembre 2006

Objets systme

Description du mot systme %SW36 %SW47.


Mot Symbole %SW36 AUX0CURRTIME %SW39 AUX1CURRTIME %SW42 AUX2CURRTIME %SW45 AUX3CURRTIME %SW37 AUX0MAXTIME %SW40 AUX1MAXTIME %SW43 AUX2MAXTIME %SW46 AUX3MAXTIME %SW38 AUX0MINTIME %SW41 AUX1MINTIME %SW44 AUX2MINTIME %SW47 AUX3MINTIME Fonction Temps dexcution tches auxiliaires Description Ces mots indiquent le temps d'excution du dernier cycle des tches auxiliaires AUX0..3 (en ms). (1) uniquement sur les automates 140 CPU 6 et TSX P57 5. Etat Modicon Quantum Premium initial M340 NON OUI (1) OUI (1)

Temps dexcution maxi tches auxiliaires

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)

Temps dexcution mini tches auxiliaires

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)

35006145 05 novembre 2006

187

Objets systme

Description des mots systme %SW48 %SW59


Description dtaille
Mot Symbole %SW48 IOEVTNB

Description des mots systme %SW48 %SW59 :


Fonction Description Etat initial 0 Modicon M340 OUI Premium Quantum Atrium OUI OUI

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW54 STOPSEC %SW55 STOPHM %SW56 STOPMD %SW57 STOPYEAR %SW58 STOPDAY

Fonction Fonction d'horodateur au dernier arrt

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 -

Modicon M340 OUI

Premium Quantum Atrium OUI OUI

35006145 05 novembre 2006

189

Objets systme

Mot Symbole

Fonction

Description

Etat initial 0

Modicon M340 OUI

Premium Quantum Atrium OUI OUI

%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

35006145 05 novembre 2006

Objets systme

Description des mots systme %SW70 %SW99


Description dtaille
Mot Symbole

Description des mots systme %SW70 %SW99.


Fonction Description Etat Modicon Premium Quantum initial M340 Atrium 0 OUI NON OUI NON OUI OUI

%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

35006145 05 novembre 2006

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

%SW80 MSGCNT0 %SW81 MSGCNT1

OUI

OUI

OUI

%SW82 MSGCNT2 %SW83 MSGCNT3

Gestion des messages

NON

OUI

NON

192

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW84 MSGCNT4 %SW85 MSGCNT5

Fonction Premium : Gestion Tlgramme Modicon M340 : Gestion des messages

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

envoys au port USB


z %SW85 : nombre de messages reus

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

35006145 05 novembre 2006

193

Objets systme

Mot Symbole %SW88 ASNSERVCNT %SW89 APPSERVCNT

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW90 MAXREQNB

Fonction Nombre maximum de requtes traites par cycle de tche matre.

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

Vitesses de messages de blocs fonction

z %SW91 : Nombre de messages de blocs

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.

35006145 05 novembre 2006

195

Objets systme

Mot Symbole %SW93

Fonction Commande et tat du format du systme de fichiers de carte mmoire

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

par la valeur courante,


z d'un enregistrement de la commande de

paramtre. Ils peuvent tre lus par le programme utilisateur ou par le terminal.

196

35006145 05 novembre 2006

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

%SW96 Commande CMDDIAGSAV et diagnostic EREST de sauvegarde et de restauration

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

de restauration est en cours.


z %SW96.4 peut tre dfini sur 1 par

l'utilisateur pour supprimer la zone %MW de la mmoire Flash interne.


z %SW96.7 = 1 indique que la mmoire

interne contient une sauvegarde %MW valide.


z %SW96.8 15 sont des codes d'erreur

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

Mot Symbole %SW97 CARDSTS

Fonction Etat de la carte

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

%SW99 INPUTADR/ SWAP

Gestion de redondance des communications

NON

OUI

NON

198

35006145 05 novembre 2006

Objets systme

Description des mots systme %SW108 %SW116


Description dtaille
Mot Symbole

Description du mot systme %SW108 %SW116.


Fonction Description Etat initial 0 Modico n M340 OUI Quantu m OUI Premiu m Atrium OUI

%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

35006145 05 novembre 2006

199

Objets systme

Description des mots systme %SW122 %SW127


Description dtaille
Mot Symbole %SW122

Description des mots systme %SW122 %SW127 :


Fonction Type de redmarrage Description Ce mot indique le type de redmarrage du processus (140 CPU 671 60, 140 CPU 651 0, TSX P57 5) : z bouton de rinitialisation du panneau avant du processeur, z rinitialisation du logiciel, z rinitialisation du matriel. Le dernier type de dfaut systme rencontr est crit dans ce mot par le systme (ces codes restent inchangs lors d'un redmarrage froid) : z 16#30: dfaut de codage systme, z 16#53: erreur de temporisation lors d'changes d'E/S, z 16#60 64 : dbordement de pile, z 16#90: dfaut d'interrupteur systme : problme informatique imprvu. Etat initial Modicon M340 NON Premium Quantum Atrium NON OUI

%SW124 CPUERR

Type de dfaut systme

OUI

OUI

OUI

200

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW125 BLKERRTYPE

Fonction

Description

Etat initial -

Modicon M340 OUI

Premium Quantum Atrium OUI OUI

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).

%SW126 ERRADDR0 %SW127 ERRADDR1

Adresse d'instruction de dfaut bloquant

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

35006145 05 novembre 2006

201

Objets systme

6.3

Mots systme spcifiques aux modules Atrium/Premium

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

35006145 05 novembre 2006

Objets systme

Description des mots systme %SW60 %SW65


Description dtaille
Mot Symbole %SW60 HSB_CMD

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

35006145 05 novembre 2006

203

Objets systme

Mot Symbole %SW61 HSB_STS

Fonction Registre d'tat du systme de redondance Premium

Description

Etat Premium initial OUI

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW61 HSB_STS

Fonction Registre d'tat du systme de redondance Premium

Description

Etat Premium initial OUI

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.

35006145 05 novembre 2006

205

Objets systme

Mot Symbole %SW61 HSB_STS

Fonction Registre d'tat du systme de redondance Premium

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.

Etat Premium initial 0 OUI

Atrium NON

%SW62 HSBY_REVE RSE0 %SW63 HSBY_REVE RSE1 %SW64 HSBY_REVE RSE2 %SW65 HSBY_REVE RSE3

Mot de transfert Premium

OUI

NON

206

35006145 05 novembre 2006

Objets systme

Description des mots systme %SW128 %SW143


Description dtaille
Mot Symbole %SW128...143 ERRORCNXi avec i=0 15

Description des mots systme %SW128 SW143 :


Fonction Point de connexion Fipio en dfaut Description Chaque bit de ce groupe de mots est significatif de l'tat d'un quipement connect sur le bus Fipio. Normalement 1, la prsence 0 d'un de ces bits indique l'apparition d'un dfaut sur ce point de connexion. Pour un point de connexion non configur, le bit correspondant vaut toujours 1. Etat initial 0

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

35006145 05 novembre 2006

207

Objets systme

Description des mots systme %SW144 %SW146


Description dtaille
Mot Symbole %SW144 BAOPMOD Fonction Mode de marche fonction arbitre de bus Fipio

Description du mot systme %SW144 %SW146.


Description Ce mot systme permet l'arrt et le dmarrage de la fonction arbitre de bus et de la fonction producteur/consommateur. Il permet de modifier le mode de dmarrage, automatique et manuel du bus en cas d'arrt. z %SW144.0 z = 1: fonction producteur/consommateur en RUN. z = 0: fonction producteur/consommateur en STOP (aucune variable nest change sur le bus). z %SW144.1 z = 1: l'arbitre de bus est en RUN 0. z = 0: l'arbitre de bus est en STOP (aucune scrutation de variables et de messages est faite sur le bus). z %SW144.2 z = 1: dmarrage automatique en cas d'arrt automatique du bus. z = 0: dmarrage manuel si arrt automatique du bus. z %SW144.3 15 rservs, %SW144.3 = 1, %SW144.4 15 = 0. Les bits sont mis 1 par l'utilisateur et remis 0 par le systme lorsque l'initialisation est effectue. z %SW145.0 = 1 : modification de la priorit de l'arbitre de bus ; l'octet de poids fort de ce mot systme contient la valeur de la priorit de l'arbitre de bus qui sera applique sur le bus. z %SW145.1 et %SW145.2 sont rservs. z %SW145.3 %SW145.7 rservs 0. z %SW145.8 %SW145.15 : cet octet contient la valeur qui est applique sur le bus, suivant la valeur du bit 0. La modification de ces paramtres peut se faire lorsque l'arbitre de bus est en RUN, mais la prise en compte par l'application ncessite un arrt puis un redmarrage de celle-ci. Etat initial 0

%SW145 BAPARAM

Modification des paramtres de larbitre de bus Fipio

%SW146 Visualisation BASTATUS de la fonction arbitre de bus Fipio

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

209

Objets systme

Description des mots systme %SW147 %SW152


Description dtaille
Mot Symbole %SW147 TCRMAST %SW148 TCRFAST %SW150 NBFRSENT %SW151 NBFRREC %SW152 NBRESENTMSG

Description des mots systme %SW147 %SW152 :


Fonction Temps de cycle rseau MAST Temps de cycle rseau FAST Nombre de trames mises Nombre de trames reues Nombre de messages repris Description Une valeur non nulle indique (en ms) la valeur du temps de cycle rseau (TCRMAST) de la tche MAST. Une valeur non nulle indique (en ms) la valeur du temps de cycle rseau (TCRFAST) de la premire tche FAST. Ce mot indique le nombre de trames mises par le gestionnaire de la voie Fipio. Ce mot indique le nombre de trames reues par le gestionnaire de la voie Fipio. Ce mot indique le nombre de reprises de messages effectus par le gestionnaire de la voie Fipio. Etat initial 0 0 0 0 0

210

35006145 05 novembre 2006

Objets systme

Description des mots systme %SW153


Description dtaille Description du mot systme %SW153 :
Mot Symbole %SW153 FipioERR0 Fonction Liste des dfauts du gestionnaire de la voie Fipio Description Chaque bit est mis 1 par le systme et remis 0 par l'utilisateur. Voir liste ci-dessous. Etat initial 0

Description des bits

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Objets systme

Description du mot systme %SW154


Description dtaille Description du mot systme %SW154 :
Mot Symbole %SW154 FipioERR1 Fonction Liste des dfauts du gestionnaire de la voie Fipio Description Chaque bit est mis 1 par le systme et remis 0 par l'utilisateur. Voir liste ci-dessous. Etat initial 0

Description des bits

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.

35006145 05 novembre 2006

213

Objets systme

Description des mots systme Premium/Atrium %SW155 %SW167


Description dtaille
Mot Symbole %SW155 NBEXPLFIP

Description des mots systme %SW155 %SW167 :


Fonction Description Etat initial 0

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.

%SW160 %SW167 PREMRACK0 PREMRACK7

214

35006145 05 novembre 2006

Objets systme

6.4
Description
Objet de cette section Contenu de ce sous-chapitre

Mots systme spcifiques au module Quantum

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

35006145 05 novembre 2006

215

Objets systme

Description des mots systme %SW60 %SW63


Description dtaille Description des mots systme %SW60 %SW63 :
Mot Symbole %SW60 HSB_CMD Fonction Registre de commande du systme de redondance d'UC Quantum Description Signification des diffrents bits du mot %SW60 :
z %SW60.0=1 invalide les commandes saisies

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW61 HSB_STS

Fonction Registre d'tat Quantum

Description Signification des diffrents bits du mot %SW61 :


z Bits %SW61.0 et %SW61.1 du mode de

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

%SW62 Mot de HSBY_REVERSE0 transfert %SW63 HSBY_REVERSE1

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.

35006145 05 novembre 2006

217

Objets systme

Description des mots systme Quantum %SW128 %SW179


Description dtaille
Mot Symbole %SW128 NB_P502_CNX %SW129 NB_DENIED_CNX %SW130 NB_P502_REF %SW132 et %SW133 NB_SENT_MSG %SW134 et %SW135 NB_RCV_MSG %SW136 NB_IOS_CNX %SW137 NB_IOS_MSG %SW138 GLBD_ERROR %SW139 BW_GLBD_IOS

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

%SW141 et %SW142 IP_ADDR

218

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW143 et %SW144 IP_NETMASK %SW145 et %SW146 IP_GATEWAY

Fonction Masque de sousrseau IP Adresse passerelle Ethernet par dfaut

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. -

35006145 05 novembre 2006

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 -

%SW168 %SW171 Etat de VALID_GD fonctionnement des Global Data

220

35006145 05 novembre 2006

Objets systme

Description des mots systme Quantum %SW180 %SW640


Description dtaille
Mot Symbole %SW180 %SW339 IOHEALTHij i=1..32, j=1..5

Description du mot systme %SW180 %SW640.


Fonction Etat de fonctionnement des modules automate Description Les mots %SW180 %SW339 sont associs aux stations automates : 5 mots par station correspondant aux racks 1 5 de chaque station. %SW180 : tat de fonctionnement des modules du rack 1 de la station 1. %SW181 : tat de fonctionnement des modules du rack 1 de la station 2. ........... %SW185 : tat de fonctionnement des modules du rack 1 de la station 2. %SW186 : tat de fonctionnement des modules du rack 2 de la station 2. ........... Les bits de 0 15 de chacun de ces mots sont associs aux modules situs aux positions 16 1 de ces racks. Le bit est 0 si le module est en dfaut, il est 1 si le module fonctionne correctement. Exemple : %SW185.5 =0 Le module situ dans lemplacement 11 du rack 1 de la station 2 est en dfaut. Remarque : les modules 140 XBE 100 00 (Voir Matriel des automates Quantum avec Unity Pro, Instructions de marche) ncessitent une gestion toute particulire. Numro demplacement du processeur intgrant la liaison Modbus Plus pour la connexion au premier rseau DIO. Le numro demplacement est cod de 0 15. Etat initial 0

%SW340 MB+DIOSLOT

Numro d emplacement du processeur avec liaison Modbus Plus

35006145 05 novembre 2006

221

Objets systme

Mot Symbole %SW341 %SW404 MB+IOHEALTHi i=1..64

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

%SW406 %SW469 NOM1DIOHEALTHi i=1..64

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW470 NOM2DIOSLOT

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 -

%SW471 %SW534 NOM2DIOHEALTHi i=1..64

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.

35006145 05 novembre 2006

223

Objets systme

Mot Symbole %SW535 RIOERRSTAT

Fonction Erreur RIO au dmarrage

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW536 CAERRCNT0 %SW537 CAERRCNT1 %SW538 CAERRCNT2

Fonction Etat de la communication sur le cble A

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 -

%SW539 CBERRCNT0 %SW540 CBERRCNT1 %SW541 CBERRCNT2

Etat de la communication sur le cble B

35006145 05 novembre 2006

225

Objets systme

Mot Symbole %SW542 GLOBERRCNT0 %SW543 GLOBERRCNT1 %SW544 GLOBERRCNT2

Fonction Etat de communication globale

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

35006145 05 novembre 2006

Objets systme

Mot Symbole %SW545 %SW640 MODUNHEALTHi IOERRCNTi IORETRYi (i=1..32)

Fonction Etat des stations dcentralises

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 -

%SW545 %SW547 MODUNHEALTH1 IOERRCNT1 IORETRY1

Etat de la station locale

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.

35006145 05 novembre 2006

227

Objets systme

6.5

Mots systme spcifiques au Modicon M340

Description des mots systme %SW160 %SW167


Description dtaille
Mot Symbole %SW160 %SW167 PREMRACK0 PREMRACK7

Description des mots systme %SW160 %SW167.


Fonction Description Etat initial -

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

35006145 05 novembre 2006

Description des donnes

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

35006145 05 novembre 2006

229

Description des donnes

230

35006145 05 novembre 2006

Prsentation gnrale des donnes

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

Ce chapitre contient les sujets suivants :


Sujet Gnralits Prsentation des familles de types de donnes Prsentation des instances de donnes Prsentation des rfrences de donnes Rgles syntaxiques des noms de Types\Instances Page 232 233 235 237 238

35006145 05 novembre 2006

231

Prsentation gnrale des donnes

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.

Les donnes sont dfinies en trois phases qui sont :


z

Illustration

Voici les trois phases caractrisant les donnes :


Instancier Types de donnes Instances de donnes Rfrencer Rfrences de donnes

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

35006145 05 novembre 2006

Prsentation gnrale des donnes

Prsentation des familles de types de donnes


Introduction Un type de donne est une information logicielle qui spcifie pour une donne :
z z z z

sa structure, son format, la liste de ses attributs, son comportement.

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

35006145 05 novembre 2006

233

Prsentation gnrale des donnes

Dfinitions

Familles de types de donnes et leurs dfinitions :


Famille EDT Dfinition Types de donnes lmentaires (Elementary data types) tels que :
z Bool, z Int, z Byte, z Word, z Dword, z etc...

DDT

Types de donnes drivs (Derived data types) tels que :


z tableaux, qui contiennent des lments de mme type:

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

35006145 05 novembre 2006

Prsentation gnrale des donnes

Prsentation des instances de donnes


Introduction Une instance de donnes est une entit fonctionnelle individuelle, qui possde toutes les caractristiques du type de donnes duquel elle dpend. Une ou plusieurs instances peuvent tre rattaches un type de donnes. Linstance de donnes peut avoir une allocation mmoire :
z z

soit non localise, soit localise,

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

35006145 05 novembre 2006

235

Prsentation gnrale des donnes

Dfinitions

Dfinition des allocations mmoire des instances de donnes :


Instance de donnes Dfinition Non localises Lemplacement mmoire de linstance est allou automariquement par le systme, il peut changer chaque gnration de lapplication. Linstance est repre par un nom (symbole) choisi par lutilisateur. Lemplacement mmoire de linstance est fixe, il est prdfini et ne change jamais. Linstance est repre par un nom (symbole) choisi par lutilisateur et une adresse topologique dfinie par le constructeur, ou uniquement par ladresse topologique constructeur.

Localises

236

35006145 05 novembre 2006

Prsentation gnrale des donnes

Prsentation des rfrences de donnes


Introduction Une rfrence de donnes permet lutilisateur daccder linstance de cette donne soit par :
z z z

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

Rfrences de donnes possibles suivant le type de donnes (gris fonc) :


Donnes

Variables

Blocs fonction

EDT

DDT

Par valeur

Par nom (symbole)

Par nom (symbole)

Par nom (symbole) Par adressage

35006145 05 novembre 2006

237

Prsentation gnrale des donnes

Rgles syntaxiques des noms de Types\Instances


Introduction La syntaxe des noms de types et de variables peut seffectuer avec ou sans lutilisation du jeu de caractres tendu. Ce choix seffectue dans longlet Extensions langage de loption Outils->Proprits du projet.
z z

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.

Si la case "Jeu tendu..." est slectionne

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.

Si la case "Jeu tendu..." nest pas slectionne

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.

Les rgles sont les suivantes:


z z

238

35006145 05 novembre 2006

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

35006145 05 novembre 2006

239

Types de donnes

8.1

Types de donnes lmentaires (EDT) au format Binaire

Prsentation
Objet de cette section Cette section dcrit le type de donnes au format binaire. qui sont :
z z z

les types Boolens, les types Entiers, le type Heure.

Contenu de ce sous-chapitre

Ce sous-chapitre contient les sujets suivants :


Sujet Prsentation des types de donnes au format binaire Types boolens Types Entier Le type Heure Page 241 243 249 251

240

35006145 05 novembre 2006

Types de donnes

Prsentation des types de donnes au format binaire


Prsentation Les types de donnes au format Binaire appartiennent la famille EDT (Elementary Data Type [Type de donnes lmentaires]), qui comprend des types de donnes simples plutt que drives (tableaux, structures, blocs fonctions).

Rappel sur le format binaire

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

Quartet de Poid fort

Quartet de Poid faible

Une donne peut tre:


z

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

Bits=nombre de bits (format).

35006145 05 novembre 2006

241

Types de donnes

Types de donnes au format binaire

Liste des types de donnes:


Type BOOL EBOOL INT DINT UINT UDINT TIME Dsignation Boolen Format (bits) 8 Valeur par dfaut 0=(False) 0=(False) 0 0 0 0 T=0s

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

243

Types de donnes

Principe du type BOOL

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

un offset sur l'octet correspondant, le rang dfinissant sa position dans le mot

Adressage:
Mmoire

Offset

V Rang

244

35006145 05 novembre 2006

Types de donnes

Principe du type EBOOL

Ce type occupe un octet en mmoire dans lequel il y a :


z z z

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

35006145 05 novembre 2006

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)

Action changment dtart

Bit valeur

Bit forage

Bit historique

Variables automate appartenant aux types boolens

Liste des variables


Variable Bit interne Bit systme Bit extrait de mot Entres %I Bit erreur module Bit erreur voie Bit dentre Sorties %Q Bit de sortie EBOOL BOOL BOOL EBOOL Type EBOOL BOOL BOOL

246

35006145 05 novembre 2006

Types de donnes

Compatibilit entre BOOL et EBOOL

Les oprations autorises entre ces deux types de variables sont:


z z

la copie de valeur, la copie d'adresse.

Copie entre types


Destination BOOL Source BOOL Source EBOOL Oui Oui Destination EBOOL Oui Oui

Compatibilit entre les paramtres des fonctions lmentaires (EF)


Paramtre effectif (externe lEF) BOOL EBOOL Paramtre formel BOOL (interne lEF) Oui In ->Oui In-Out ->Non Out -> Non Paramtre formel EBOOL (interne lEF) Non Oui

Compatibilit entre les paramtres des blocs fonctions (EFB\DFB)


Paramtre effectif (externe au FB) BOOL Paramtre formel BOOL (interne au FB) Oui Paramtre formel EBOOL (interne au FB) In ->Oui In-Out ->Non Out -> Oui Oui

EBOOL

In ->Oui In-Out ->Non Out -> Oui

Compatibilit entre variables de tableau


Destination ARRAY[i..j) OF BOOL Source ARRAY[i..j) OF BOOL Source ARRAY[i..j) OF EBOOL Oui Non Destination ARRAY[i..j) OF EBOOL Non Oui

Compatibilit entre variables statique


Adressage direct BOOL (%MW:xi) Variable declare BOOL (Var:BOOL) Oui Adressage direct EBOOL (%Mi) Non

35006145 05 novembre 2006

247

Types de donnes

Adressage direct BOOL (%MW:xi) Variable dclare EBOOL (Var:EBOOL) Non

Adressage direct EBOOL (%Mi) Oui

Compatibilits

Le type de donnes EBOOL suit les rgles suivantes :


z z z z

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

35006145 05 novembre 2006

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 Entier (INT)

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 Entier double (DINT)

Type sign ayant un format sur 32 bits. Ce tableau donne la plage dans chaque base.
Base Decimal Binaire Octale Hexadcimale de... -2147483648 ... 2147483647

2#10000000000000000000000000 2#011111111111111111111111111 000000 11111 8#20000000000 16#80000000 8#17777777777 16#7FFFFFFF

35006145 05 novembre 2006

249

Types de donnes

Type Entier non sign (UINT)

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 Entier double non sign (UDINT)

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

35006145 05 novembre 2006

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)

Saisie d'une valeur

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

35006145 05 novembre 2006

251

Types de donnes

8.2

Types de donnes lmentaires (EDT) au format BCD

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

Ce sous-chapitre contient les sujets suivants :


Sujet Prsentation des types de donnes au format BCD Le type Date Le type Time of Day (TOD) Le type Date and Time (DT) Page 253 256 257 258

252

35006145 05 novembre 2006

Types de donnes

Prsentation des types de donnes au format BCD


Prsentation Les types de donnes au format BCD appartiennent la famille de donnes lmentaires EDT (Elementary data type) qui regroupe des types de donnes dits simples et non pas composes (tableaux, structures, blocs fonction).

35006145 05 novembre 2006

253

Types de donnes

Rappel sur le format BCD

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)

Exemple de codage sur un format de 16 bits:


Valeur dcimale 2450 Valeur Binaire 2 0010 4 0100 5 0101 0 0000

Exemple de codage sur un format de 32 bits:


Valeur dcimale 78993016 Valeur Binaire 7 0111 8 1000 9 1001 9 1001 3 0011 0 0000 1 0001 6 0110

254

35006145 05 novembre 2006

Types de donnes

Types de donnes au format BCD

Trois types de donnes:


Type DATE TIME_OF_DAY DATE_AND_TIME Dsignation Date Heure du jour Date et heure Echelle (bits) 32 32 64 Valeur par dfaut D#1990-01-01 TOD#00:00:00 DT#1990-01-01-00:00:00

35006145 05 novembre 2006

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).

Reprsentation au format BCD de la date 2001-09-20:


Anne (2001) 0010 0000 0000 0001 Mois (09) 0000 1001 Jour (20) 0010 0000

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

35006145 05 novembre 2006

Types de donnes

Le type Time of Day (TOD)


Prsentation Le type Time of Day cod sur un format de 32 bits contient les informations suivantes:
z z z

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)

35006145 05 novembre 2006

257

Types de donnes

Le type Date and Time (DT)


Prsentation Le type Date and Time cod sur un format de 64 bits contient les informations suivantes:
z z z 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), 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

0010 0000 0001 0011

258

35006145 05 novembre 2006

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)

35006145 05 novembre 2006

259

Types de donnes

8.3

Types de donnes lmentaires (EDT) au format Rel

Prsentation du type de donnes relles


Prsentation Les types de donnes au format Binaire appartiennent la famille EDT (Elementary Data Type [Type de donnes lmentaires]), qui comprend des types de donnes simples plutt que drives (tableaux, structures, blocs fonctions). Le format Real (virgule flottante en ANSI/IEEE standard) est crypt au format 32 bits, qui correspond aux nombres flottants en dcimales uniques. Les 32 bits reprsentant la valeur virgule flottante sont organiss en trois champs distincts, qui sont :
z

Rappel concernant le format Real

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 )

bi reprsente la valeur du bit (0 ou 1) du rang correspondant (i=0 22).

260

35006145 05 novembre 2006

Types de donnes

Types de nombres pouvant tre reprsents

Ces nombres sont les suivants :


z z z z

normaliss, dnormaliss, de valeurs indfinies, avec des valeurs +0 et -0,

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

35006145 05 novembre 2006

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

Plage de valeurs (parties grises) :

-3,4028235e+38

-1,1754944e-38

0.0

1,1754944e-38

3,4028235e+38

Lorsqu'un rsultat est :


z z z z

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

Reprsentation du nombre virgule flottante -5,934113e-18.


Signe S 1 Exposant e 01000101 Partie Virgule dcimale f 10110101110111000011101

Exemple d'une entre quivalente :


L'entre... +0.456 -1,32e12 1,0E+6 est gale ... 0.456 -132E10 1000000. et... .456 -0,132e+13 1,e6

262

35006145 05 novembre 2006

Types de donnes

8.4

Types de donnes lmentaires (EDT) au format chaine de caractres

Prsentation des types de donnes au format chane de caractres


Prsentation Le type de donnes au format chaine de caractres appartient la famille de donnes lmentaires EDT (Elementary data type) qui regroupe des types de donnes dits simples et non pas composes (tableaux, structures, blocs fonction). Le format chaine de caractres permet de reprsenter une chaine de caractres ASCII, chaque caractre tant cod sur un format de 8 bits. Les caractristiques du type chaine de caractres sont les suivantes:
z z z z

Le type chane de caractres

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).

35006145 05 novembre 2006

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

STRING STRING[4] STRING[10] STRING[5] STRING[5] STRING[5] STRING[13] STRING[5] STRING[5]

ABCD jean It$s jean $ le nombre 0123456789 $R$L $$1.00

Dclaration dune variable de type STRING

Une variable de type STRING peut tre dclare de deux manires diffrentes :
z z

STRING et STRING[<Nombre d'lments>]

Selon l'usage le comportement est diffrent :


Type STRING STRING[<n>] Dclaration Paramtre d'entre d'un FFB d'une variable Taille fixe : 16 caractres Taille fixe : n caractres Paramtre de sortie d'un EF Paramtre de sortie d'un FB Taille fixe de 16 caractres Le FB crit un maximum de n caractres.

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

35006145 05 novembre 2006

Types de donnes

Les chanes et la broche ANY

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' *)

35006145 05 novembre 2006

265

Types de donnes

8.5

Types de donnes lmentaires (EDT) au format chane de bits

Prsentation
Objet de cette section Cette section dcrit le type de donnes au format chane de bits. qui sont :
z z z

le type Byte, le type Word, le type Dword.

Contenu de ce sous-chapitre

Ce sous-chapitre contient les sujets suivants :


Sujet Prsentation des types de donnes au format chane de bits Types de chanes de bits Page 267 268

266

35006145 05 novembre 2006

Types de donnes

Prsentation des types de donnes au format chane de bits


Prsentation Les types de donnes au format chaine de bits appartiennent la famille de donnes lmentaire EDT (Elementary data type) qui regroupe des types de donnes dits simples et non pas composes (tableaux, structure, bloc fonctions). La particularit de ce format est que lensemble des bits qui le compose ne reprsente pas une valeur numrique, mais une combinaison de bits spars. Les donnes appartenant aux types de ce format peuvent tre reprsentes sous trois bases qui sont :
z z z

Rappel sur le format chane de bits

l'hexadcimal (16#), l'octal (8#), le binaire (2#).

Types de donnes au format chane de bits

Trois types de donnes:


Type BYTE WORD DWORD Echelle (bits) 8 16 32 Valeur par dfaut 0 0 0

35006145 05 novembre 2006

267

Types de donnes

Types de chanes de bits


Le type Byte Le type Byte est cod sur un format de 8 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#FF 8#377 2#11111111

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

269

Types de donnes

8.6
Prsentation
Objet de cette section

Types de donnes drivs (DDT/IODDT)

Cette section dcrit les types de donnes drivs qui sont :


z z

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

Ce sous-chapitre contient les sujets suivants :


Sujet Tableaux Structures Prsentation de la famille de types de donnes derives (DDT) DDT : rgles d'affectation Aperu des types de donnes drivs d'entre/de sortie (IODDT) Page 271 275 276 279 283

270

35006145 05 novembre 2006

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 tableau est caractris par deux paramtres :


z z

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 :

ARRAY[<dimension(s) du tableau>]OF <type de donnes>


<dimension 1>,<dimension 2>,<dimension n>

<limite minimale>..<limite maximale> <limite minimale> infrieure <limite maximale>

35006145 05 novembre 2006

271

Types de donnes

Dfinition et instanciation d'un tableau

Dfinition d'un type de tableau :


X : ARRAY[1..10] OF BOOL

Instanciation d'un tableau


Tab_1 : X Tab_2 : ARRAY[1..10] OF BOOL

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

273

Types de donnes

Rgles d'affectation inter-tableaux

Les 4 tableaux suivants sont disponibles :


Tab_1 Tab_2 Tab_3 Tab_4 : : : : ARRAY[1..10] OF ARRAY[1..10] OF ARRAY[1..11] OF ARRAY[101..110] INT INT INT OF INT

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

35006145 05 novembre 2006

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

Dfinition d'un type de structure :

Dfinition de deux instances de donne de la structure de type IDENT :


Personne_1 : IDENT Personne_2 : IDENT ;Les instances Personne_1 et Personne_2 sont du type Structure IDENT

Accs une donnes dune structure

Accs des donnes de l'instance Personne_1 de type IDENT :


Personne_1.Nom Personne_1.Age ;Permet dacceder au nom de Personne_1 ;Permet dacceder lage de Personne_1

35006145 05 novembre 2006

275

Types de donnes

Prsentation de la famille de types de donnes derives (DDT)


Prsentation La famille DDT (Derived Data Type) regroupe des types de donnes dits drivs tels que :
z z

dEDT dEDT

Illustration :

DDT

Tableaux

Structures

Tableaux dEDT

Tableaux de DDT

Structures de DDT

Structures dEDT

Structures dEDT et DDT

276

35006145 05 novembre 2006

Types de donnes

Caractristiques

Une donne appartenant la famille DDT est constitue:


z

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.

35006145 05 novembre 2006

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

Accs des donnes d'une instance de la structure de type DRAW


Cartoon : DRAW ;Instance de la structure de type DRAW Cartoon.Pattern[15,15] ;Accs la dernire donne du tableau Cartoon

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

35006145 05 novembre 2006

Types de donnes

DDT : rgles d'affectation


Prsentation Les DDT sont stockes dans la mmoire de l'automate selon l'ordre dans lequel ses lments sont dclars. Il existe cependant certaines rgles que voici. Principe pour Premium et Quantum Le principe de stockage pour Premium et Quantum est le suivant :
z z z

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.

35006145 05 novembre 2006

279

Types de donnes

Principe pour Modicon M340

Le principe de stockage pour les automates Modicon M340 est le suivant :


z z z

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

35006145 05 novembre 2006

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

Premium %MW100 %MW102 (1er (1er


er

octet)

%MW104 (1 octet)

%MW104 (1 octet)

Mode_TOTALIZER %MW100 %MW100 (1er (2e octet) octet) %MW100 (1 octet) %MW100 (2e octet)
er

hold : BOOL rst : BOOL

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

Le tableau ci-dessous donne deux exemples de structures de donnes avec tableaux :


Premire adresse mmoire Modicon M340 %MW100 %MW100 %MW104 (1er (2e (1er octet) octet) octet) Premium %MW100 %MW100 %MW103 (1er (2e (1er octet) octet) octet) Description de la structure EHC105_Out Quit : BYTE Control : ARRAY [1..5] OF BYTE Final : ARRAY [1..5] OF DINT

CPCfg_ex %MW100 (1er octet) %MW101 (1er octet) %MW102 (1er octet)
35006145 05 novembre 2006

%MW100 (1er octet) %MW101 (1er octet) %MW102 (1er octet)

Profile_type : INT Interp_type : INT Nb_of_coords : INT 281

Types de donnes

Premire adresse mmoire %MW103 (1 octet) %MW104 (1er octet) %MW106 (2e octet)
er

Description de la structure
er

%MW103 (1 octet) %MW104 (1er octet) %MW106 (2e octet)

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

%MW108 (1er octet) %MW110 (1er octet) %MW111 (mot entier)

%MW107 (1er octet) %MW109 (1er octet) -

282

35006145 05 novembre 2006

Types de donnes

Aperu des types de donnes drivs d'entre/de sortie (IODDT)


Prsentation Les types de donnes drivs dentres\sorties IODDT (Input Output Derived Data Type) sont prdfinis par le constructeur, ils contiennent des objets langage de la famille EDT appartenant la voie dun module mtier. Illustration :

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.

35006145 05 novembre 2006

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

Accs des donnes d'une instance de type ANA_IN_GEN :


Cistern_Level: ANA_IN_GEN ;Instance de type ANA_IN_GEN qui correspond par exemple un capteur de niveau de cuve Cistern_Level.Value ;Lecture valeur dentre de la voie Cistern_Level.Err ;Lecture bit derreur de la voie

Accs par adressage direct :


Sil sagit de la voie 0 du module 2 du rack 0 nous avons : Cistern_Level correspond %CH0.2.0 Cistern_Level.Value correspond %IW0.2.0.0 Cistern_Level_Err correspond %I0.2.0.ERR

284

35006145 05 novembre 2006

Types de donnes

8.7
Prsentation
Objet de cette section

Types de donnes blocs fonctions (DFB\EFB)

Cette section dcrit les types de donnes de bloc fonction. qui sont :
z z

blocs fonction utilisateur (DFB) ; blocs fonction lmentaires (EFB).

Contenu de ce sous-chapitre

Ce sous-chapitre contient les sujets suivants :


Sujet Vue d'ensemble des familles de type de donnes de bloc fonction Caractristiques des types de donnes de bloc fonction (EFB\DFB) Caractristiques des lments des blocs fonction Page 286 288 290

35006145 05 novembre 2006

285

Types de donnes

Vue d'ensemble des familles de type de donnes de bloc fonction


Prsentation Les familles de type de donnes blocs fonction sont:
z z

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

Les blocs fonctions sont des entits contenant:


z z z

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

35006145 05 novembre 2006

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

Entre Entre/ Sortie

Sortie

Variables internes

Bloc fonction utilisateur (DFB)

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.

35006145 05 novembre 2006

287

Types de donnes

Caractristiques des types de donnes de bloc fonction (EFB\DFB)


Dfinition du type Le type d'un bloc fonction EFB ou DFB est dfini par :
z z z

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

35006145 05 novembre 2006

Types de donnes

Caractristiques

Ce tableau donne les caractristiques des lments composant un type:


Elment Nom Commentaire Donnes dEntres Donnes dEntres/Sorties Donnes de sortie Nombre dinterfaces (Entres+Sorties+Entres/ Sorties) Donnes publiques Donnes prives Langage de programmation EFB 32 caractres 1024 caractres 32 maximum 32 maximum 32 maximum 32 maximum (2) DFB 32 caractres 1024 caractres 32 maximum 32 maximum 32 maximum 32 maximum (2)

Pas de limites (1) Pas de limites (1) Langage C

Pas de limites (1) Pas de limites (1) Langage:


z littral structur, z liste dinstructions, z contacts, z blocs fonctionnels.

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.

35006145 05 novembre 2006

289

Types de donnes

Caractristiques des lments des blocs fonction


Qu'est-ce qu'un lment ? Chaque lment (donnes d'interface ou donnes internes) est dfini par :
z z

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

35006145 05 novembre 2006

Types de donnes

Types de donnes autoriss pour un lment appartenant un DFB

Les types de donnes autoriss sont indiqus dans le tableau ci-dessous :


Elment du DFB Types EDT Types DDT ANY... Types de bloc fonction ANY_A RRAY Oui Oui Non Non Non autre

IODDT

Tables sans nom Oui Oui Oui Oui Oui

Donnes d'entre

Oui

Non Oui Non Non Non

Oui Oui Oui Oui 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

35006145 05 novembre 2006

291

Types de donnes

Types de donnes autoriss pour un lment appartenant un EFB

Les types de donnes autoriss sont indiqus dans le tableau ci-dessous :


Elment de l'EFB Types Types DDT EDT IODDT Tables ANY_ sans nom ARRA Y Non Non Non Non Non Oui Oui Non Non Non autre ANY... Types de bloc fonction

Donnes d'entre Donnes d'entre/ de sortie Donnes de sortie Donnes publiques Donnes prives

Oui Oui Oui Oui Oui

Non Oui Non Non Non

Oui Oui Oui Oui Oui

Oui (1) Oui (1) Oui (1) (2) Non Non

Non Non Non Non Oui

(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

35006145 05 novembre 2006

Types de donnes

Valeurs initiales pour un lment appartenant un EFB

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

Non Non Oui Non Oui Non

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.

35006145 05 novembre 2006

293

Types de donnes

8.8

Types de donnes gnriques (GDT)

Vue d'ensemble des types de donnes gnriques


Prsentation Les types de donnes gnriques sont des ensembles de types classiques (EDT, DDT) ayant pour vocation de dterminer la compatibilit entre ces types classiques. Ces ensembles sont identifis par le prfixe ANY_ARRAY, mais ces prfixes ne peuvent en aucun cas tre utiliss pour instancier des donnes. Leurs champs d'utilisation concernent les familles de type de donnes blocs fonctions (EFB\DFB) et les fonctions lmentaires (EF), afin de dfinir les types de donnes compatibles avec leur interface :
z z z

entres entres/sorties sorties

Types de donnes gnriques (GDT) disponibles

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

35006145 05 novembre 2006

Types de donnes

Exemple

Soit le DFB suivant :


FBI_1 Compteur_Pieces %I0.4.1 Val_Pre Piece_OK Preselection Nb_pieces_atteint %M2

Le paramtre d'entre Prslection peut tre dfini de type GDT.

Note : Les objets autoriss pour les diffrents paramtres sont dfinis dans ce tableau (voir Objets autoriss pour les diffrents paramtres, p. 605).

35006145 05 novembre 2006

295

Types de donnes

8.9

Types de donnes appartenant aux diagrammes fonctionnels en squence (SFC)

Vue d'ensemble des types de donnes de la famille du diagramme fonctionnel en squence


Prsentation La famille des types de donnes diagrammes fonctionnels en squence SFC (Sequential function chart) regroupe des types de donnes dits composs tels que des structures restituant les proprits et ltat du graphe (Chart) et des actions le composant. Chaque tape est reprsente par deux structures qui sont :
z z

la structure SFCSTEP_STATE, la structure SFCSTEP_TIMES.

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

35006145 05 novembre 2006

Types de donnes

Dfinition de la structure de type SFCSTEP_STATE

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

35006145 05 novembre 2006

297

Types de donnes

8.10

Compatibilit entre types de donnes

Compatibilit entre des types de donnes


Prsentation Ci dessous sont prsentes les diffrentes rgles de compatibilit entre types lintrieur de chaque famille suivantes:
z z z

la famille Type de donnes lmentaire (EDT), la famille Type de donnes driv (DDT), la famille Type de donnes gnrique (GDT).

Famille Type de donnes lmentaire (EDT)

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

35006145 05 novembre 2006

Types de donnes

Famille Type de donnes driv (DDT)

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

de mme nom, de mme type, organiss suivant le mme ordre.


ELEMENT_1 Mon_Element: INT Autre_Element: BOOL ;Structure de type ELEMENT_1

Soit quatre types de structures :

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

Compatibilit entre les types de structures


Types ELEMENT_1 ELEMENT_2 ELEMENT_3 ELEMENT_4 OUI NON NON NON NON NON ELEMENT_1 ELEMENT_2 OUI ELEMENT_3 NON NON ELEMENT_4 NON NON NON

35006145 05 novembre 2006

299

Types de donnes

Rgles concernant les tableaux Deux tableaux sont compatibles si:


z z

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

Soit cinq types de tableaux :

Compatibilit entre les types de tableaux:


Le type... TAB_1 TAB_2 TAB_4 TAB_4[25] et le type... TAB_2 TAB_3 TAB_5 TAB_5[28] sont... incompatibles compatibles compatibles compatibles

300

35006145 05 novembre 2006

Types de donnes

Famille Type de donnes gnrique (GDT)

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

de types de donnes lmentaires (EDT), de types de donnes drivs (DDT).

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.

35006145 05 novembre 2006

301

Types de donnes

302

35006145 05 novembre 2006

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

Ce chapitre contient les sujets suivants :


Sujet Instances de types de donnes Attributs des instances de donnes Instances de donnes adressage direct Page 304 308 311

35006145 05 novembre 2006

303

Instances de donnes

Instances de types de donnes


Introduction Quest ce qu'une instance de types de donnes ? (voir Prsentation des instances de donnes, p. 235) Linstance dun type de donnes est rfrence soit par:
z

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.

Instances de donnes non localises

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

35006145 05 novembre 2006

Instances de donnes

Instances de donnes localises

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).

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Instances de donnes

Instances de donnes adressage direct

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

Lgende (1) Non disponible pour Modicon M340

35006145 05 novembre 2006

307

Instances de donnes

Attributs des instances de donnes


Prsentation Les attributs dune instance de donnes sont des informations qui la dfinissent. Ces informations sont:
z

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

Nom d'une instance de donnes

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

35006145 05 novembre 2006

Instances de donnes

Nom d'instances appartenant la famille SFC

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>

Nom d'instances appartenant la famille blocs fonctions

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.

35006145 05 novembre 2006

309

Instances de donnes

Accs un lment d'une instance de la famille DDT

La syntaxe d'accs est la suivante :


Cas des donnes de types structures <Nom de linstance>.<Nom de llment> Cas des donnes de types tableaux <Nom de linstance>[Index de llment]

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

35006145 05 novembre 2006

Instances de donnes

Instances de donnes adressage direct


Prsentation Quest ce quune instance de donnes adressage direct ? (voir Instances de donnes adressage direct, p. 307) La syntaxe dune instance de donnes adressage direct est dfinie par le symbole % suivi dun prfixe de localisation mmoire et dans certains cas dinformations supplmentaires. Le prfixe de localisation mmoire peut tre:
z z z z z z

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.

35006145 05 novembre 2006

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

Lgende (1): Non disponible pour Modicon M340.

<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 :

%MW0 %MW1 %MW2 %MW3 %MW4 %MW5

%MD0 = %MF0 %MD2 = %MF2

%MD1 = %MF1 %MD3 = %MF3

%MD4 = %MF4

Non disponible pour Modicon M340


312

35006145 05 novembre 2006

Instances de donnes

Note : La modification de %MW<i> entrane les modifications de %MD<i> et %MF<i> correspondants.

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

Lgende (1): Non disponible pour Modicon M340.

<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.

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Instances de donnes

Cas des variables d'entres/sorties

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>

%I<@mod>.MOD.ERR %I<@mod>.<c>.ERR %I<@mod>.<c> %I<@mod>.<c>.<d>

%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

Mot de type INT

%IW<@mod>.<c> %IW<@mod>.<c>.<d>

Double mot de type DINT

%ID<@mod>.<c> %ID<@mod>.<c>.<d>

Rel (flottant) de type REAL

%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

%Q4.2.3 %Q4.2.3.1 %QW4.2.3 %QW4.2.3.1 %QD4.2.3 %QD4.2.3.2 %QF4.2.3 %QF4.2.3.2

R/W R/W R/W R/W R/W R/W R/W R/W

%MW4.2.3 %MW4.2.3.1 %MD4.2.3 %MD4.2.3.2 %MF4.2.3 %MF4.2.3.2

R/W R/W R/W R/W R/W R/W

%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>

Exemple %KD4.2.3 %KD4.2.3.12 %KF4.2.3 %KF4.2.3.12

Droit daccs programme R R R R

<@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

35006145 05 novembre 2006

Instances de donnes

Exemples : station locale et station sur bus pour automates Modicon M340

Configuration Modicon M340

%I0.1.5 (rack 0, module 1, voie 5)

Configuration Modicon M340

Ligne de fin
Bus CANopen n3 1 10

DDO 3410

STB NCO 1010

ACO 1210
A B

NIP 3212

PDT 3100

DDI 3410

DDI 3410

ACI 1230

LEXIUM05 ATV31_V1_1

Module interface STB


%IW \3.1\0.0.0.17 (bus 3 adresse d'quipement 1 voie 0 donne 17)

(ATV 31)

XPS MC 16

LEXIUM 05
%IW \3.10\0.0.0.1 (bus 3 adresse d'quipement 10 voie 0 donne 1)

35006145 05 novembre 2006

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

%IW1.4.1.5 (rack 1, module 4, voie 1, donne 5)

%IW0.4.1.5 (rack 0, module 4, voie 1, donne 5)

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/

Bus n 2 %IW\2.7\0.5.1.5 (bus module 5 voie 1 donne 5)

%IW\3.2\1.4.1.5 (bus 3, drop (quipement) 2, rack 1, module 4 voie 1 donne 5) DIO (N 2)


DI I/ I/ I/ DI I/ I/ I/

Disponible pour des versions de Unity suprieures V1.0

%IW\2.1\1.3.4.5 (bus 2, drop (quipement) 1, rack 1, module 3 voie 4 donne 5)

318

35006145 05 novembre 2006

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

Ce chapitre contient les sujets suivants :


Sujet Rfrences dinstances de donnes par valeurs Rfrences dinstances de donnes par noms Rfrences d'instances de donnes par adresses Rgles dappellation des donnes. Page 320 322 326 329

35006145 05 novembre 2006

319

Rfrences de donnes

Rfrences dinstances de donnes par valeurs


Introduction Quest ce quune rfrence dinstance de donnes ? (Voir Prsentation des rfrences de donnes, p. 237.) Une rfrence dinstance de donnes par valeur est une instance ne possdant pas de nom (symbole) ou dadresse topologique. Il sagit dune valeur immdiate qui peut tre affecte une instance de type de donnes appartenant la famille EDT. La norme IEC 1131 autorise les valeurs immdiates sur des instances de donnes de type:
z

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.

Le logiciel de programmation tend la norme en y ajoutant les types chaine de bits :


z z z

320

35006145 05 novembre 2006

Rfrences de donnes

Exemples de valeurs immdiates

Ce tableau associe des valeurs immdiates des types dinstance :


Valeur immdiate Je suis une chaine de caractres T#1s D#2000-01-01 TOD#12:25:23 DT#2000-01-01-12:25:23 16#FFF0 UINT#16#9AF (valeur type) DWORD#16#FFFF (valeur type) Type dinstance STRING TIME DATE TIME_OF_DAY DATE_AND_TIME WORD UINT DWORD

35006145 05 novembre 2006

321

Rfrences de donnes

Rfrences dinstances de donnes par noms


Introduction Quest ce quune rfrence dinstance de donnes ? (Voir Prsentation des rfrences de donnes, p. 237.) Lutilisateur choisit un nom (symbole) qui permet daccder linstance de la donne :
Etat_Vanne: BOOL Seuil_Haut: EBOOL AT %M10 Contenu_Tremie: UINT Temprature_Four: INT AT %MW100 Valeur_Codeur: WORD

Rfrences dinstance de la famille EDT

322

35006145 05 novembre 2006

Rfrences de donnes

Rfrences dinstances de la famille DDT

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

35006145 05 novembre 2006

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

35006145 05 novembre 2006

Rfrences de donnes

Rfrences dinstances des familles DFB\EFB

Lutilisateur choisit un nom (symbole) qui permet daccder linstance de la donne :


Soit le type de DFB: Compteur_Pices %I0.4.1.5 %MW100

Pice_OK Prslection Nb_pices_atteint %M2

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

35006145 05 novembre 2006

325

Rfrences de donnes

Rfrences d'instances de donnes par adresses


Introduction Quest ce quune rfrence dinstance de donnes ? (Voir Prsentation des rfrences de donnes, p. 237.) Une rfrence d'instance de donnes par adresse n'est possible que sur certaines instances de donnes qui appartiennent la famille EDT. Ces instances sont :
z z z

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.

Rfrence par adressage direct

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

35006145 05 novembre 2006

Rfrences de donnes

Rfrences par adresse indexe

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.

Une variable indexe a toujours une quivalence non indexe :


%MW<i>[<index>] <=> %MW<j>

Les rgles de calcul de <j> sont les suivantes :


Objet<i>[index] %M<i>[index] %MW<i>[index] %KW<i>[index] %MD<i>[index] %KD<i>[index] %MF<i>[index] %KF<i>[index] Objet<j> <j>=<i> + <index> <j>=<i> + <index> <j>=<i> + <index> <j>=<i> + (<index> x 2) <j>=<i> + (<index> x 2) <j>=<i> + (<index> x 2) <j>=<i> + (<index> x 2)

Exemples :
%MD6[10] <=> %MD26 %MW10[My_Var+8] <=> %MW20 (avec My_Var=2)

Lors de la compilation du programme, un contrle vrifie que :


z z

l'index ne soit pas ngatif, l'index ne dpasse pas l'espace mmoire allou pour chacun des trois types.

35006145 05 novembre 2006

327

Rfrences de donnes

Les bits extraits de mot

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

Les tableaux de bits et de mots

Il s'agit d'une suite d'objets adjacents (bits ou mots) de mme type et de longueur dfini.
OBJET<i> :L

Prsentation des tableaux de bits :


Type Bits d'entres TOR Bits de sorties TOR Bits internes Adresse %Ix.i:L %Qx.i:L %Mi:L Accs en criture Non Oui Oui

Prsentation des tableaux de mots :


Type Mots internes Adresse %MWi:L %MDi:L %MFi:L %KWi:L %KDi:L %KFi:L %SW50:4 Accs en criture Oui

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

35006145 05 novembre 2006

Rfrences de donnes

Rgles dappellation des donnes


Introduction Dans une application lutilisateur choisit un nom pour :
z z z

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.

35006145 05 novembre 2006

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

Non Non Oui Oui Non

Oui Oui Non Non Non (1) Oui (2)

Non Oui Non (3) Non Non

(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

35006145 05 novembre 2006

Langages de programmation

IV
Prsentation
Contenu de cette partie Contenu de cette partie Cette partie dcrit la syntaxe des langages de programmation disponibles.

Cette partie contient les chapitres suivants :


Chapitre 11 12 13 14 15 Titre du chapitre langage blocs fonction FBD Langage contacts LD Diagramme fonctionnel en squence SFC Liste d'instructions IL Littral structur ST Page 333 361 409 481 537

35006145 05 novembre 2006

331

Langages de programmation

332

35006145 05 novembre 2006

Langage blocs fonction FBD

11
Prsentation
Objet de ce souschapitre Contenu de ce chapitre Ce chapitre dcrit le langage blocs fonction FBD conforme la norme IEC 61131.

Ce chapitre contient les sujets suivants :


Sujet Informations gnrales sur le langage blocs fonction FBD Fonctions lmentaires, blocs fonction lmentaires, blocs fonction derives et procedures (FFB) Appels de sous-programme Contrles Liaison Objet texte Ordre d'excution des FFB Modification de l'ordre d'excution Configuration de boucles Page 334 336 347 348 349 351 352 354 359

35006145 05 novembre 2006

333

Langage blocs fonction FBD

Informations gnrales sur le langage blocs fonction FBD


Prsentation L'diteur FBD permet la programmation graphique de blocs fonction conformment la norme CEI 61131-3. Reprsentation :

Reprsentation d'une section FBD


Entre EN

Sortie ENO Liaison

Inversion

Expression ST

Variable cond IN1 TRUE 1 EN

AND ENO %IX1.5.4 %IX1.5.5 EN

OR ENO A<B C=D EN

AND ENO Error1 Result1

Valeurs littrales

Adresses Adresses

Liaison

Croisement XOR EN IN4 ENO Error2 Result2

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

35006145 05 novembre 2006

Langage blocs fonction FBD

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).

35006145 05 novembre 2006

335

Langage blocs fonction FBD

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

Pour certaines fonctions lmentaires, il est possible d'augmenter le nombre d'entres.

336

35006145 05 novembre 2006

Langage blocs fonction FBD

Bloc fonction lmentaire

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

35006145 05 novembre 2006

337

Langage blocs fonction FBD

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

OUT1 OUT2 IO1

338

35006145 05 novembre 2006

Langage blocs fonction FBD

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.

35006145 05 novembre 2006

339

Langage blocs fonction FBD

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

35006145 05 novembre 2006

Langage blocs fonction FBD

Tableau des types de paramtre formel :


Type de paramtre EDT EFB : entre STRING + + + + + + ARRAY + + + + + + + + + + ANY_ARRAY IODDT + + + + + / + + + + / + + / + / + + + + STRUCT FB + + + + + + + + / / / / / / + / / + / / ANY + + + + + + + + + + +

EFB : VAR_IN_OUT + EFB : sortie DFB : entre -

DFB : VAR_IN_OUT + DFB : sortie EF : entre EF : VAR_IN_OUT EF : sortie Procdure : entre Procdure : VAR_IN_OUT Procdure : sortie + / + + -

Paramtre rel impratif Paramtre rel non impratif non pertinent

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.

35006145 05 novembre 2006

341

Langage blocs fonction FBD

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.)

Variable publique .1 AND FBI_1.OP_CTRL Var2 IN1 IN2 2 OUT 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.

342

35006145 05 novembre 2006

Langage blocs fonction FBD

Remarques sur la programmation

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.

Appel multiple d'une instance de bloc fonction

35006145 05 novembre 2006

343

Langage blocs fonction FBD

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

35006145 05 novembre 2006

Langage blocs fonction FBD


z

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.

35006145 05 novembre 2006

345

Langage blocs fonction FBD

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

35006145 05 novembre 2006

Langage blocs fonction FBD

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.

35006145 05 novembre 2006

347

Langage blocs fonction FBD

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

35006145 05 novembre 2006

Langage blocs fonction FBD

Liaison
Description Les liaisons sont des liens verticaux et horizontaux entre les FFB.
OR

Entre FFB AND var1 Sortie FFB

Reprsentation

Les points de liaison sont marqus par un cercle rempli.


OR

AND

OR

Les croisements sont reprsents par une liaison interrompue.


AND OR

AND

OR

35006145 05 novembre 2006

349

Langage blocs fonction FBD

Remarques sur la programmation

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

.4 AND .3OUT >> >> .3OUT IN1


2

OUT

OUT

IN2

IN2

pour les blocs fonction : " nom d'instance/paramtre formel " de la source de la liaison.
FBI_2 TON IN
1

.4 AND FBI_2OUT >> >> FBI_2OUT IN1


2

OUT ET

OUT

PT

IN2

350

35006145 05 novembre 2006

Langage blocs fonction FBD

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.

35006145 05 novembre 2006

351

Langage blocs fonction FBD

Ordre d'excution des FFB


Prsentation L'ordre d'excution est dfini par la position des FFB dans la section (excution de gauche droite et de haut en bas). Lorsque, par la suite, les FFB sont lis des liaisons graphiques, lordre dexcution est alors dtermin par le flux de signaux. Le numro d'excution (numro figurant dans le coin suprieur droit du cadre de FFB) indique l'ordre d'excution. Ordre d'excution des rseaux Les rgles suivantes s'appliquent l'ordre d'excution des rseaux : l'excution d'une section a lieu rseau pour rseau via la liaison des FFB du haut vers le bas. z les boucles ne peuvent pas tre configures par le biais de liaisons, tant donn que, dans ce cas, lordre dexcution 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 l'ordre d'excution des rseaux qui ne sont pas relis entre eux par des liaisons est dfini par l'ordre graphique (de la partie suprieure droite vers la partie infrieure gauche). Vous pouvez influencer l'ordre d'excution (voir Modification de l'ordre d'excution, p. 354). z le calcul d'un rseau doit tre termin entirement avant que ne commence le calcul d'un autre rseau qui utilise les sorties du rseau prcdent. z aucun lment d'un rseau n'est considr comme calcul avant que l'tat de toutes les entres de cet lment n'ait t calcul. z le calcul d'un rseau est considr comme termin lorsque toutes les sorties de ce rseau sont calcules.
z

Flux de signaux dans un rseau

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

35006145 05 novembre 2006

Langage blocs fonction FBD

Priorits

Priorits lors de la dtermination du flux de signaux au sein d'une section.


Priorit 1 Rgle Liaison Description Les liaisons ont la priorit la plus leve lors de la dtermination du flux de signaux au sein d'une section FBD. Intervention de l'utilisateur sur l'ordre d'excution. Le calcul d'un rseau doit tre compltement termin avant que le calcul du rseau suivant puisse commencer. Les FFB qui sont relis aux sorties du mme FFB " appeler" sont calculs du haut vers le bas. Priorit la moins leve. (Ne s'applique que si aucune autre rgle n'intervient.)

2 3 4 5

Dfinition utilisateur Rseau pour rseau Ordre des sorties Rung pour rung

Exemple

Exemple de l'ordre d'excution d'objets dans une section FBD.


.9 NW1 AND 1

.14 .13 NW2 EN AND 3 ENO AND 4 .10 AND 2

.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

35006145 05 novembre 2006

353

Langage blocs fonction FBD

Modification de l'ordre d'excution


Introduction L'ordre d'excution des rseaux et l'ordre d'excution des objets au sein d'un rseau sont dfinis par une srie de rgles (voir Priorits, p. 353). Dans certains cas, il est ncessaire de modifier l'ordre d'excution propos par le systme. Pour dfinir/modifier l'ordre d'excution des rseaux, vous disposez des possibilits suivantes : z utilisation de liaisons au lieu des paramtres rels, z Position des rseaux z Dtermination explicite de l'ordre d'excution Pour dfinir/modifier l'ordre d'excution des rseaux, vous disposez des possibilits suivantes : z Position des FFB Situation de sortie Le dessin suivant reprsente deux rseaux dont l'ordre d'excution est dtermin uniquement par leur position au sein de la section, mme si les blocs .4/.5 et .7/ .8 ncessitent un ordre d'excution diffrent.
.4 1.3 AND 1 A AND 2

.5 AND B .6 AND EN 4 ENO .7 AND 5 A 3

.8 AND 6 B

354

35006145 05 novembre 2006

Langage blocs fonction FBD

Liaison au lieu des paramtres rels

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

35006145 05 novembre 2006

355

Langage blocs fonction FBD

position des rseaux,

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

35006145 05 novembre 2006

Langage blocs fonction FBD

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.

35006145 05 novembre 2006

357

Langage blocs fonction FBD

Positions des FFB

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

.4 AND A .6 AND EN 4 ENO .8 AND 8 B 3

.7 AND 7 A

358

35006145 05 novembre 2006

Langage blocs fonction FBD

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

Rsolution par le biais d'un paramtre rel

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

Boucle rsolue par le biais dun paramtre rel : Variante 2


.5 OR IN1 2 OUT2 OUT2 IN2 .6 AND 1

35006145 05 novembre 2006

359

Langage blocs fonction FBD

360

35006145 05 novembre 2006

Langage contacts (LD)

12
Prsentation
Objet de ce souschapitre Contenu de ce chapitre Ce chapitre dcrit le langage contacts LD conforme la norme CEI 611311.

Ce chapitre contient les sujets suivants :


Sujet Informations gnrales sur le langage contacts (LD) Contacts Bobines Fonctions lmentaires, blocs fonction lmentaires, blocs fonction drivs et procdures (FFB) Contrles Fonctionnement et comparaison des blocs Liaisons Objet texte Dtection de fronts Ordre d'excution et flux de signaux Configuration de boucles Modification de l'ordre d'excution Page 362 365 367 370 382 383 385 389 390 398 400 402

35006145 05 novembre 2006

361

Langage contacts (LD)

Informations gnrales sur le langage contacts (LD)


Prsentation La prsente section dcrit le langage contacts (diagramme Ladder) LD selon CEI 61131-3. La structure dune section LD correspond un rung pour des montages relais. Sur le ct gauche de l'diteur LD, se trouve la barre d'alimentation gauche. Cette barre dalimentation gauche correspond la phase (conducteur L) dun rung. De mme que sur un rung, le systme ne "traite", lors de la programmation LD, que les objets LD qui sont branchs sur lalimentation, cest--dire qui sont relis la barre dalimentation gauche. La barre d'alimentation droite correspond au conducteur neutre. Toutes les bobines et sorties FFB y sont relies directement ou indirectement, ce qui permet dtablir un flux de courant. Un groupe d'objets relis les uns aux autres et ne prsentant aucune liaison vers d'autres objets ( l'exception de la barre d'alimentation) est appel rseau ou rung.

362

35006145 05 novembre 2006

Langage contacts (LD)

Reprsentation d'une section LD


%IX20

Reprsentation :
Contact ouverture Liaison boolenne horizontale Bobine %QX100

%MX50 /

%MX60

Liaison boolenne verticale Contact fermeture


%QX100 P NEXT

Saut

Contact de dtection de transition positive

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

Barre d'alimentation gauche

Barre d'alimentation droite

35006145 05 novembre 2006

363

Langage contacts (LD)

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

35006145 05 novembre 2006

Langage contacts (LD)

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.

35006145 05 novembre 2006

365

Langage contacts (LD)

Types de contacts
Dsignation A fermeture

Les contacts disponibles sont les suivants :


Reprsentation
xxx

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 /

Contact de dtection de transitions positives

xxx P

Contact de dtection de transitions ngatives

xxx N

366

35006145 05 novembre 2006

Langage contacts (LD)

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)

35006145 05 novembre 2006

367

Langage contacts (LD)

Types de bobines
Dsignation Bobine

Les bobines suivantes sont disponibles :


Reprsentation
xxx

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

35006145 05 novembre 2006

Langage contacts (LD)

Dsignation Bobine d'appel

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.

35006145 05 novembre 2006

369

Langage contacts (LD)

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

Pour certaines fonctions lmentaires, il est possible d'augmenter le nombre d'entres.

370

35006145 05 novembre 2006

Langage contacts (LD)

Bloc fonction lmentaire

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.

35006145 05 novembre 2006

371

Langage contacts (LD)

Bloc fonction lmentaire


FBI_1 CTU EN CTU R RV CV 1 ENO Q

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

35006145 05 novembre 2006

Langage contacts (LD)

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

35006145 05 novembre 2006

373

Langage contacts (LD)

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

35006145 05 novembre 2006

Langage contacts (LD)


z

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.

35006145 05 novembre 2006

375

Langage contacts (LD)

Tableau des types de paramtre formel :


Type de paramtre EDT EFB : entre DFB : sortie STRING + + + + + + ARRAY + + + + + + + + + + ANY_ARRAY IODDT + / + + + + + + + + / / + / + + + + + + STRUCT FB + + + + + + + + / / / / / / + / / + / / ANY + + + + + + + + + + +

EFB : VAR_IN_OUT + DFB : entre -

DFB : VAR_IN_OUT + EFB : sortie EF : entre EF : VAR_IN_OUT EF : sortie Procdure : entre Procdure : VAR_IN_OUT Procdure : sortie + / + + -

Paramtre rel impratif Paramtre rel non impratif non pertinent

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

35006145 05 novembre 2006

Langage contacts (LD)

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

(Le bloc fonction dispose variables publiques AREA_NR OP_CTRL.)

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.

35006145 05 novembre 2006

377

Langage contacts (LD)

Remarques sur la programmation

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

Appel multiple d'une instance de bloc fonction

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

35006145 05 novembre 2006

Langage contacts (LD)

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.

35006145 05 novembre 2006

379

Langage contacts (LD)


z

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

35006145 05 novembre 2006

Langage contacts (LD)

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

ENO 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.

35006145 05 novembre 2006

381

Langage contacts (LD)

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

Les contrles suivants sont disponibles.


Reprsentation
NEXT

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

35006145 05 novembre 2006

Langage contacts (LD)

Fonctionnement et comparaison des blocs


Prsentation En plus des objets dfinis dans la norme CEI 61131-3, il existe d'autres blocs servant l'excution d'instructions ST (voir Instructions, p. 539) et d'expressions ST (voir Expression, p. 539) et des oprations de comparaison simples. Ces blocs sont exclusivement disponibles dans le langage de programmation LD. Les objets suivants sont disponibles :
Reprsentation
OPERATE

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).

35006145 05 novembre 2006

383

Langage contacts (LD)

Dsignation Bloc de comparaison horizontal

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

35006145 05 novembre 2006

Langage contacts (LD)

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

Liaison boolenne verticale

XXX EN ENO EN

XXX ENO

Liaison FFB
XXX EN XXX EN ENO ENO

35006145 05 novembre 2006

385

Langage contacts (LD)

Remarques gnrales sur la programmation

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

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

35006145 05 novembre 2006

Langage contacts (LD)

Remarques sur la programmation des liaisons FFB

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

35006145 05 novembre 2006

387

Langage contacts (LD)


z

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

.4 AND .3OUT >> >> .3OUT IN1


2

OUT

OUT

IN2

IN2

pour les blocs fonction : " nom d'instance/paramtre formel " de la source de la liaison.
.3 TON IN
1

.4 AND FBI_2OUT >> >> FBI_2OUT IN1


2

OUT ET

OUT

PT

IN2

Pour les contacts : "OUT1_numro courant".


.4 AND OUT1_3 >> >> OUT1_3 IN1
2

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

35006145 05 novembre 2006

Langage contacts (LD)

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.

35006145 05 novembre 2006

389

Langage contacts (LD)

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

35006145 05 novembre 2006

Langage contacts (LD)

Dtection de fronts positifs

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

35006145 05 novembre 2006

391

Langage contacts (LD)

Dtection de fronts ngatifs

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

35006145 05 novembre 2006

Langage contacts (LD)

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

35006145 05 novembre 2006

393

Langage contacts (LD)

Perte de la dtection de fronts probablement due au forage de bobines

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

(1) A: Bit de valeur

(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

35006145 05 novembre 2006

Langage contacts (LD)

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

(1) A: Bit de valeur

(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.

35006145 05 novembre 2006

395

Langage contacts (LD)

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

Situation initiale : C = 0, Bit d'historique = 0


A B C S

IF A AND B THEN C := 1; ELSE C := C; END_IF;

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

IF NOT(A) AND NOT(B) THEN C := 0; ELSE C := C; END_IF;

396

35006145 05 novembre 2006

Langage contacts (LD)

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.)

35006145 05 novembre 2006

397

Langage contacts (LD)

Ordre d'excution et flux de signaux


Ordre d'excution des rseaux Les rgles suivantes s'appliquent l'ordre d'excution des rseaux : l'excution d'une section a lieu rseau pour rseau via les liaisons d'objets du haut vers le bas. z les boucles ne peuvent pas tre configures par le biais de liaisons, tant donn que, dans ce cas, lordre dexcution ne peut pas tre dfini de faon unique. Les boucles doivent tre rsolues par le biais de paramtres rels (voir Configuration de boucles, p. 400). z lordre dexcution de rseaux relis ensemble uniquement par la barre gauche dalimentation est dtermin par lordre graphique (du haut vers le bas) dans lequel ces rseaux sont relis la barre gauche dalimentation. Cela ne s'applique pas si l'ordre a t influenc par des lments de commande. z le calcul d'un rseau doit tre compltement termin avant que le calcul du rseau suivant puisse commencer. z aucun lment d'un rseau n'est considr comme calcul avant que l'tat de toutes les entres de cet lment n'ait t calcul. z le calcul d'un rseau est considr comme termin lorsque toutes les sorties de ce rseau sont calcules. Cela s'applique galement si le rseau comprend un ou plusieurs lments de commande.
z

Flux de signaux dans un rseau

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

35006145 05 novembre 2006

Langage contacts (LD)

Priorits

Priorits lors de la dtermination du flux de signaux au sein d'une section :


Priorit 1 2 3 4 Rgle Liaison Rseau pour rseau Ordre des sorties Rung pour rung Description Les liaisons ont la priorit la plus leve lors de la dtermination du flux de signaux au sein d'une section LD. Le calcul d'un rseau doit tre compltement termin avant que le calcul du rseau suivant puisse commencer. Les sorties du mme bloc fonction ou les sorties de liaisons verticales sont calcules du haut vers le bas. Priorit la moins leve. Lordre dexcution des rseaux relis ensemble uniquement par la barre gauche dalimentation est dtermin par lordre graphique (du haut vers le bas) dans lequel ces rseaux sont relis la barre gauche dalimentation. (Cela ne s'applique que si aucune autre rgle n'intervient.)

Exemple

Exemple de l'ordre d'excution des objets dans une section LD :


.22 (1) 10 INT_TO_BOOL .6 ADD EN VarA VarB 4 ENO .5 5 INT_TO_BOOL EN ENO (6) (2) (3) (7) EN ENO (11)

(8) .21 ADD EN VarC VarD 9 ENO

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.

35006145 05 novembre 2006

399

Langage contacts (LD)

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

35006145 05 novembre 2006

Langage contacts (LD)

Rsolution par le biais d'un paramtre rel

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

Boucle rsolue par le biais dun paramtre rel : Variante 2


.5 2 AND EN IN1 AND EN OUT1 OUT1 IN2 .6 1

ENO

ENO

35006145 05 novembre 2006

401

Langage contacts (LD)

Modification de l'ordre d'excution


Prsentation L'ordre d'excution des rseaux et l'ordre d'excution des objets au sein d'un rseau sont dfinis par une srie de rgles (voir Ordre d'excution et flux de signaux, p. 398). Dans certains cas, il est ncessaire de modifier l'ordre d'excution propos par le systme. Pour dfinir/modifier l'ordre d'excution des rseaux, vous disposez des possibilits suivantes : z utiliser des liaisons au lieu des paramtres rels, z position des rseaux, Pour dfinir/modifier l'ordre d'excution au sein des rseaux, vous disposez des possibilits suivantes : z position des objets.

402

35006145 05 novembre 2006

Langage contacts (LD)

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

.2 ADD EN 2 ENO EN B .5 ADD 5 ENO

.6 ADD EN 6 ENO

.7 ADD EN 7 ENO A

.8 ADD EN 8 ENO B

35006145 05 novembre 2006

403

Langage contacts (LD)

Liaison au lieu d'un paramtre rel

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

35006145 05 novembre 2006

Langage contacts (LD)

Position des rseaux

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

35006145 05 novembre 2006

405

Langage contacts (LD)

Position des objets

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

35006145 05 novembre 2006

Langage contacts (LD)

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

.3 ADD EN 11 ENO EN .5 ADD 13 ENO E

.4 .6 ADD EN 14 ENO G
H

ADD EN

12 ENO F

35006145 05 novembre 2006

407

Langage contacts (LD)

408

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

409

Diagramme fonctionnel en squence SFC

410

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

13.1

Gnralits concernant le diagramme fonctionnel en squence (SFC)

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

35006145 05 novembre 2006

411

Diagramme fonctionnel en squence SFC

Remarques gnrales sur le diagramme fonctionnel en squence SFC


Introduction Ce sous-chapitre dcrit le diagramme fonctionnel en squence (SFC) selon la norme CEI 61131-3. Un diagramme fonctionnel en squence conforme CEI se compose dans Unity Pro de sections SFC (niveau suprieur), de sections de transition et de sections d'action. Ces sections SFC ne sont admises que dans la tche matre du projet. Dans d'autres tches ou DFB, les sections SFC ne peuvent pas tre utilises. Chaque section SFC contient exactement un rseau SFC (squence) dans le jeton unique. Les jetons multiples d'une section SFC peuvent contenir un ou plusieurs rseaux SFC indpendants les uns des autres. Objets Une section SFC contient les objets de cration de programme suivants : tape (voir Etape, p. 418), z macrotape (squence de sous-tapes imbriques) (voir Macrotapes et macrosections, p. 422), z transition (condition de transition) (voir Transition, p. 436), z saut (voir Saut, p. 441), z liaison (voir Liaison, p. 442), z divergence en OU (voir Divergence en OU et convergence en OU, p. 444), z convergence en OU (voir Divergence en OU et convergence en OU, p. 444), z divergence en ET (voir Divergence en ET et convergence en ET, p. 446), z convergence en ET (voir Divergence en ET et convergence en ET, p. 446).
z

Structure d'un diagramme fonctionnel en squence

La logique de la section peut tre commente par des objets texte (voir Objet texte, p. 448).

412

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Reprsentation dune section SFC


Liaison

Reprsentation :

S_4_1 Etape initiale

T1

Condition de transition (variable boolenne) S_4_5 Divergence en ET Etape

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)

Convergence en ET 1 Condition de transition (valeur littrale boolenne) MS_4_1 Macrotape

Return_Var

35006145 05 novembre 2006

413

Diagramme fonctionnel en squence SFC

Structure dune section SFC

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.

Variable SFCCHART_ STATE

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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).

35006145 05 novembre 2006

415

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

417

Diagramme fonctionnel en squence SFC

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

voir Etape d'entre, p. 422

Etape de sortie
MS_1_1_OUT

voir Etape de sortie, p. 423

418

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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.

35006145 05 novembre 2006

419

Diagramme fonctionnel en squence SFC

Dfinition des temps d'tapes

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.

Variable 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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Variable SFCSTEP_ STATE

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

"Nom d'tape".tminErr BOOL

"Nom d'tape".tmaxErr BOOL

35006145 05 novembre 2006

421

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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.

35006145 05 novembre 2006

423

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

425

Diagramme fonctionnel en squence SFC

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

Etape "normale" (dans une macrosection)

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

13.3
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre

Actions et sections d'action

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

35006145 05 novembre 2006

427

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

429

Diagramme fonctionnel en squence SFC

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

Nom de la section d'action Langages de programmation Caractristiques des sections d'action

430

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Identificateurs
Introduction A chaque connexion d'une action une tape, il faut dfinir pour l'action un identificateur dfinissant la commande de l'action.

35006145 05 novembre 2006

431

Diagramme fonctionnel en squence SFC

Identificateurs disponibles

Les identificateurs suivants sont disponibles :


Identificateur Signification N / Aucun R Description

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Identificateur Signification S Dfinition (mmorise)

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

Section_2 IF S2.x= true THEN A1:= false; END_IF;

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.

35006145 05 novembre 2006

433

Diagramme fonctionnel en squence SFC

Identificateur Signification L limit dans le temps

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

Impulsion (front montant)

P0

Impulsion (front descendant)

434

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

13.4
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre

Transition et section de transition

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

35006145 05 novembre 2006

435

Diagramme fonctionnel en squence SFC

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

Le type de condition de transition dtermine la position de son nom :


Condition de transition
z Adresse z Variable z Libell

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Validation dune transition

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.

Dclenchement dune transition

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.

Temps de dclenchement dune transition

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.

35006145 05 novembre 2006

437

Diagramme fonctionnel en squence SFC

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.

Nom de la section de transition

438

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

439

Diagramme fonctionnel en squence SFC

Caractristiques des sections de transition

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

Caractristiques d'un saut

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.

35006145 05 novembre 2006

441

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

443

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Caractristiques d'une squence en OU

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).

35006145 05 novembre 2006

445

Diagramme fonctionnel en squence SFC

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

a S_5_11 S_5_12 S_5_13

S_5_14

S_5_15

S_5_16

S_5_17

446

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Caractristiques d'une squence en ET

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).

35006145 05 novembre 2006

447

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

13.9
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre

Jeton unique

Ce sous-chapitre dcrit le mode "jeton unique" pour les commandes de squence.

Ce sous-chapitre contient les sujets suivants :


Sujet Ordre d'excution jeton unique Squences en OU Saut de squence et squence en boucle Squences en ET Slection d'une squence en ET asymtrique Page 450 451 452 455 457

35006145 05 novembre 2006

449

Diagramme fonctionnel en squence SFC

Ordre d'excution jeton unique


Description Les rgles suivantes s'appliquent aux jetons uniques : la situation de dpart est dfinie par l'tape initiale. La commande de squence ne contient qu'une seule tape initiale. z une seule tape est active la fois dans une squence. La seule exception est pour les divergences en ET dans lesquelles une tape est active par divergence. 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 normalement 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 ne peuvent pas tre actives ni dsactives par d'autres sections autre que SFC. z vous pouvez utiliser des macrotapes. z une seule branche n'est active la fois dans une divergence en OU. Le rsultat des conditions de transition dterminera quelle branche sera excute en fonction des transitions qui suivent la divergence en OU. Si la condition de transition est vraie, les transitions restantes ne seront plus excutes. La branche qui contient la transition remplie devient active. Les divergences rpondent une priorit de gauche droite. Toutes les divergences en OU sont regroupes leur issue par une convergence en OU ou par des sauts. z pour les divergences en ET, la commutation d'une seule transition active plusieurs tapes (branches) en parallle. Aprs cette activation commune, les diffrentes branches sont excutes indpendamment. Toutes les branches en ET sont regroupes leur issue par une convergence en ET. Il nest pas possible deffectuer des sauts vers ou partir dune branche en ET.
z

450

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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,

Alors... S_5_10 passe S_5_11. S_5_10 passe S_5_12.

35006145 05 novembre 2006

451

Diagramme fonctionnel en squence SFC

Saut de squence et squence en boucle


Saut de squence Un saut de squence est un cas particulier de la divergence en OU dans lequel quelques tapes de la squence sont ignores. Un saut de squence peut tre ralis avec des sauts ou avec des liaisons. Saut de squence :
S_5_10 S_5_10

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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 :

> S_1_11 S_1_11

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.

35006145 05 novembre 2006

453

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

a S_5_11 S_5_12 S_5_13

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.

35006145 05 novembre 2006

455

Diagramme fonctionnel en squence SFC

Utilisation d'une divergence en OU dans une squence en ET.

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Slection d'une squence en ET asymtrique


Introduction Selon la norme CEI 61131-3, une divergence en ET doit toujours tre ferme par une convergence en ET. Le nombre de divergences en ET ne doit cependant pas ncessairement correspondre au nombre des convergences en ET. Squence avec 1 divergence en ET et 2 convergences en ET
a S_19_2 S_19_3 S_19_4

Nombre suprieur de convergences

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.

35006145 05 novembre 2006

457

Diagramme fonctionnel en squence SFC

Nombre suprieur de divergences

Squence avec 2 divergences en ET et 1 convergence en ET


a S_19_2 S_19_3

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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. ...

35006145 05 novembre 2006

459

Diagramme fonctionnel en squence SFC

460

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

461

Diagramme fonctionnel en squence SFC

Ordre d'excution jetons multiples

462

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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,

35006145 05 novembre 2006

463

Diagramme fonctionnel en squence SFC


z

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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).

35006145 05 novembre 2006

465

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

35006145 05 novembre 2006

467

Diagramme fonctionnel en squence SFC

Terminaison d'une divergence en OU par une convergence en ET

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

Si... Si la condition de transition a est vraie et que b est fausse,

Alors... la squence passe S_6_1.

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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

a S_5_11 S_5_12 S_5_13

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.

35006145 05 novembre 2006

469

Diagramme fonctionnel en squence SFC

Terminaison d'une divergence en ET par une convergence en OU

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Terminaison d'une squence en ET par une divergence en OU (variante 2) :


a S_5_1

S_5_2

Si... Si la condition de transition a est vraie,

Alors... S_5_1 et S_5_2 sont excutes.

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).

35006145 05 novembre 2006

471

Diagramme fonctionnel en squence SFC

Utilisation d'une divergence en OU dans une squence en ET.

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Saut dans une squence en ET


Description Pour les jetons multiples, vous pouvez valider au choix le saut dans une squence en ET ou hors dune squence en ET. Un saut dans une squence en ET n'active pas toutes les branches. Suite la convergence en ET la transition n'tant value que lorsque toutes les tapes qui la prccent directement ont t valides, vous ne pouvez plus quitter la squence en ET, elle reste bloque.

35006145 05 novembre 2006

473

Diagramme fonctionnel en squence SFC

Saut dans une squence en ET

Saut dans une squence en ET :


a > S_1_1 S_1_2

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Saut hors dune squence en ET


Introduction Pour les jetons multiples, vous pouvez valider au choix le saut dans une squence en ET ou en dehors dune squence en ET. Dans tous les cas, des jetons supplmentaires sont gnrs.

35006145 05 novembre 2006

475

Diagramme fonctionnel en squence SFC

Saut hors dune squence en ET

Saut hors dune squence en ET :

a > S_2_1 S_2_2

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

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

Saut entre deux branches d'une squence en ET.

Saut entre deux branches d'une squence en ET.


a > S_4_1 S_4_2

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.

35006145 05 novembre 2006

477

Diagramme fonctionnel en squence SFC

Quitter une squence en ET par une divergence en OU

Quitter une squence en ET par une divergence en OU


a S_3_1 S_3_2

S_3_4

S_3_5

S_3_6

478

35006145 05 novembre 2006

Diagramme fonctionnel en squence SFC

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).

35006145 05 novembre 2006

479

Diagramme fonctionnel en squence SFC

480

35006145 05 novembre 2006

Liste d'instructions (IL)

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

35006145 05 novembre 2006

481

Liste d'instructions (IL)

14.1

Remarques gnrales sur le langage liste dinstructions IL

Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre Ce sous-chapitre vous donne un aperu gnral du langage liste dinstructions IL.

Ce sous-chapitre contient les sujets suivants :


Sujet Informations gnrales sur la liste d'instructions IL Oprandes Modificateur Oprateurs Appel de sous-programme Libells et sauts Commentaire Page 483 487 489 491 502 503 505

482

35006145 05 novembre 2006

Liste d'instructions (IL)

Informations gnrales sur la liste d'instructions IL


Prsentation Le langage de programmation Liste dinstructions (IL) vous permet par exemple dappeler des fonctions et des blocs fonction de faon conditionnelle ou inconditionnelle, de lancer des affectations et dexcuter des sauts conditionnels ou inconditionnels au sein de la section. Une liste dinstructions se compose dune chane dinstructions. Chaque instruction commence dans une nouvelle ligne et se compose : z dun oprateur (voir Oprateurs, p. 491), z le cas chant, dun modificateur (voir Modificateur, p. 489) et, z si ncessaire un ou plusieurs oprandes (voir Oprandes, p. 487) Si plusieurs oprandes sont utiliss, ceux-ci sont spars par des virgules. Il est possible qu'un libell (voir Libells et sauts, p. 503) soit au dbut de l'instruction. Ce libell est suivi par deux points. Un commentaire (voir Commentaire, p. 505) peut suivre l'instruction. Exemple : Libell Oprateurs A B C Oprandes (* Cl 1 *) (* Et pas cl 2 *) (* Ventilateur sur *) Commentaires

Instructions

START : LD ANDN ST

Modificateur

35006145 05 novembre 2006

483

Liste d'instructions (IL)

Structure du langage de programmation

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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.

Comportement en cas d'erreur

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.

35006145 05 novembre 2006

485

Liste d'instructions (IL)

Conformit CEI

Pour la description de la conformit CEI du langage IL, voir Conformit CEI (voir Conformit CEI, p. 693).

486

35006145 05 novembre 2006

Liste d'instructions (IL)

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.

35006145 05 novembre 2006

487

Liste d'instructions (IL)

Utilisation directe d'adresses

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

Utilisation d'autres types de donnes

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

Accs aux variables de champs

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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

35006145 05 novembre 2006

489

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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.

35006145 05 novembre 2006

491

Liste d'instructions (IL)

Oprateurs de chargement et d'enregistrement


LD

Oprateurs de chargement et denregistrement du langage IL :

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Oprateurs de paramtrage et de rinitialisation


S

Oprateurs de paramtrage et de rinitialisation du langage IL

Oprateur Modificateur Signification -

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.

35006145 05 novembre 2006

493

Liste d'instructions (IL)

Oprateurs logiques
AND N, N(, (

Oprateurs logiques du langage IL :


Oprandes Valeur littrale, variable, adresse directe du type de donnes BOOL, BYTE, WORD ou DWORD Description L'oprateur AND tablit une liaison ET logique entre le contenu de laccumulateur et loprande. Pour les types de donnes BYTE, WORD et DWORD, la liaison est effectue par bit. Exemple : Dans l'exemple donn, D aura pour valeur 1, si A, B et C sont sur 1. LD A AND B AND C ST D L'oprateur OR tablit une liaison OU logique entre le contenu de laccumulateur et loprande. Pour les types de donnes BYTE, WORD et DWORD, la liaison est effectue par bit. Exemple : Dans l'exemple donn, D aura pour valeur 1, si A ou B est sur 1 et si C est sur 1. LD A OR B OR C ST D

Oprateur Modificateur Signification ET logique

OR

N, N(, (

OU logique

Valeur littrale, variable, adresse directe du type de donnes BOOL, BYTE, WORD ou DWORD

494

35006145 05 novembre 2006

Liste d'instructions (IL)

Oprateur Modificateur Signification XOR N, N(, ( OU exclusif logique

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

Ngation logique (complment)

Contenu d'accumulateur du type de donnes BOOL, BYTE, WORD ou DWORD

35006145 05 novembre 2006

495

Liste d'instructions (IL)

Oprateurs arithmtiques
ADD (

Oprateurs arithmtiques du langage IL :


Oprandes Valeur littrale, variable, adresse directe du type de donnes INT, DINT, UINT, UDINT, REAL ou TIME Description ADD permet d'ajouter la valeur de loprande la valeur du contenu de laccumulateur. Exemple : Lexemple correspond la formule D = A+B+C LD A ADD B ADD C ST D SUB permet de retirer la valeur de l'oprande du contenu de laccumulateur. Exemple : Lexemple correspond la formule D = A-B-C LD A SUB B SUB C ST D MUL permet de multiplier le contenu de laccumulateur par la valeur de loprande. Exemple : Lexemple correspond la formule D = A*B*C LD A MUL B MUL C ST D Remarque : La fonction MULTIME de la bibliothque obsolte est destine aux multiplications du type de donnes Time. DIV permet de diviser le contenu de laccumulateur par la valeur de loprande. Exemple : Lexemple correspond la formule D = A/B/C LD A DIV B DIV C ST D Remarque : La fonction DIVTIME de la bibliothque obsolte est destine aux divisions du type de donnes Time.

Oprateur Modificateur Signification Addition

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Oprateur Modificateur Signification MOD ( Division modulo

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

35006145 05 novembre 2006

497

Liste d'instructions (IL)

Oprateurs de comparaison
GT (

Oprateurs de comparaison du langage IL :


Oprandes Description GT permet de comparer le contenu de laccumulateur au contenu de loprande. Si le contenu de l'accumulateur est suprieur au contenu de l'oprande, le rsultat est un 1 boolen. Si le contenu de l'accumulateur est infrieur ou gal au contenu de l'oprande, le rsultat est un 0 boolen. Exemple : Dans l'exemple donn, la valeur de D est 1, si A est suprieur 10. Dans le cas contraire, la valeur de D est 0. LD A GT 10 ST D GE permet de comparer le contenu de laccumulateur au contenu de loprande. Si le contenu de l'accumulateur est suprieur/gal au contenu de l'oprande, le rsultat est un 1 boolen. Si le contenu de l'accumulateur est infrieur au contenu de l'oprande, le rsultat est un 0 boolen. Exemple : Dans l'exemple donn, la valeur de D est 1, si A est suprieur ou gal 10. Dans le cas contraire, la valeur de D est 0. LD A GE 10 ST D EQ permet de comparer le contenu de laccumulateur au contenu de loprande. Si le contenu de l'accumulateur est gal celui de l'oprande, le rsultat est un 1 boolen. Si le contenu de l'accumulateur n'est pas 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 gal 10. Dans le cas contraire, la valeur de D est 0. LD A EQ 10 ST D

Oprateur Modificateur Signification

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Oprateur Modificateur Signification NE (

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

35006145 05 novembre 2006

499

Liste d'instructions (IL)

Oprateurs d'appel
CAL

Oprateurs d'appel du langage IL :


Oprandes Nom d'instance dun bloc fonction, dun DFB ou d'un sousprogramme Description CAL permet d'appeler un bloc fonction, un DFB ou un sous-programme avec ou sans conditions. Voir galement Appel de blocs fonction lmentaires et de blocs fonction drivs, p. 513 et Appel de sous-programme, p. 502

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

Excution dune fonction

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

Excution d'une procdure

500

35006145 05 novembre 2006

Liste d'instructions (IL)

Oprateurs de structuration
JMP

Oprateurs de structuration du langage IL :


Oprandes ETIQUETTE Description JMP permet d'effectuer un saut avec ou sans conditions vers une tiquette. Voir galement Libells et sauts, p. 503

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

Retour dans l'unit organisationn elle suprieure suivante du programme

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

Traitement doprations places en attente

35006145 05 novembre 2006

501

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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).

Proprits des sauts :

35006145 05 novembre 2006

503

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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.

35006145 05 novembre 2006

505

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Appel de fonctions lmentaires


Utilisation des fonctions Les fonctions lmentaires sont disponibles sous forme de bibliothques. La logique des fonctions est cre dans le langage de programmation C et ne peut pas tre modifie dans lditeur IL. 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. Pour certaines fonctions lmentaires, il est possible d'augmenter le nombre d'entres. Les fonctions lmentaires n'ont qu'une seule valeur de renvoi (sortie).

35006145 05 novembre 2006

507

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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 + + -

paramtre rel impratif paramtre rel non impratif non pertinent

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).

35006145 05 novembre 2006

509

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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

35006145 05 novembre 2006

511

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Appel de blocs fonction lmentaires et de blocs fonction drivs


Bloc fonction lmentaire Les blocs fonction lmentaires ont des tats internes. Pour des valeurs gales aux entres, la valeur la sortie peut tre diffrente chaque excution du bloc fonction. Par exemple, pour un compteur, la valeur la sortie augmente. Les blocs fonction peuvent comprendre plusieurs valeurs de renvoi (sorties). Bloc fonction driv 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.

35006145 05 novembre 2006

513

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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 + + + + + +

EFB : VAR_IN_OUT + EFB : sortie DFB : entre -

DFB : VAR_IN_OUT + DFB : sortie + / -

Paramtre rel impratif Paramtre rel non impratif non pertinent

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.

35006145 05 novembre 2006

515

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Remarques sur la programmation

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

35006145 05 novembre 2006

517

Liste d'instructions (IL)

Forme formelle de CAL avec liste des paramtres d'entre

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 formels (entres) Paramtres formels (sorties)

CAL MY_COUNT (CU:=var1, R:=reset, PV:=100, Q=>out, CV=>current)

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

Paramtres rels (sorties)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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)

35006145 05 novembre 2006

519

Liste d'instructions (IL)

Forme informelle de CAL avec liste des paramtres d'entre

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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

CAL et chargement/ sauvegarde des paramtres d'entre

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)

35006145 05 novembre 2006

521

Liste d'instructions (IL)

Usage des oprateurs d'entre

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

35006145 05 novembre 2006

Liste d'instructions (IL)

Appel d'un bloc fonction sans entres

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

Appel multiple d'une instance de bloc fonction

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.

35006145 05 novembre 2006

523

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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

35006145 05 novembre 2006

525

Liste d'instructions (IL)

Appel invalide, exemple 2 :


LD V1 AND InOutFB.inout Chargement des variables V1 dans l'accumulateur Liaison ET du contenu de l'accumulateur avec rfrence 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.

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.

Appel valide, exemple 2 :


LD V1 ST InOutFB.IN1 CAL InOutFB(inout:=V2) Chargement des variables V1 dans l'accumulateur Affectation du contenu de l'accumulateur au paramtre IN1 du bloc fonction IN1. Appel du bloc fonction avec affectation du paramtre rel (V2) au paramtre VAR_IN_OUT.

526

35006145 05 novembre 2006

Liste d'instructions (IL)

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.

35006145 05 novembre 2006

527

Liste d'instructions (IL)

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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 + + +

paramtre rel impratif Paramtre rel non impratif non pertinent

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).

35006145 05 novembre 2006

529

Liste d'instructions (IL)

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

Paramtres rels (sorties)

result1 result2

530

35006145 05 novembre 2006

Liste d'instructions (IL)

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

Appel informel sans instruction CAL

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

35006145 05 novembre 2006

531

Liste d'instructions (IL)

Appel informel avec instruction CAL

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

35006145 05 novembre 2006

Liste d'instructions (IL)

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

35006145 05 novembre 2006

533

Liste d'instructions (IL)

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

Appel invalide, exemple 2 :


LD V1 AND InOutProc.inout Chargement des variables V1 dans l'accumulateur Liaison ET du contenu de l'accumulateur avec rfrence un paramtre VAR_IN_OUT. Erreur : 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.

534

35006145 05 novembre 2006

Liste d'instructions (IL)

Appel invalide, exemple 3 :


LD V1 InOutFB V2 Chargement des variables V1 dans l'accumulateur Appel de la procdure avec affectation du paramtre rel (V2) au paramtre VAR_IN_OUT. Erreurs : l'opration ne peut pas tre excute car, pour ce type d'appel de procdure, le paramtre VAR_IN_OUT continuerait d'tre utilisable dans l'accumulateur.

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.

Appel valide, exemple 2 :


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.

Appel valide, exemple 3 :


CAL InOutProc (V1,V2) Appel d'une procdure avec un paramtre VAR_IN_OUT et affectation informelle des paramtres rels au sein de l'appel de procdure.

35006145 05 novembre 2006

535

Liste d'instructions (IL)

536

35006145 05 novembre 2006

Texte structur (ST)

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

35006145 05 novembre 2006

537

Texte structur (ST)

15.1
Prsentation
Objet de ce souschapitre Contenu de ce sous-chapitre

Remarques gnrales sur le littral structur ST

Ce sous-chapitre vous donne un aperu gnral sur le littral structur ST.

Ce sous-chapitre contient les sujets suivants :


Sujet Informations gnrales sur le texte structur (ST) Oprandes Oprateurs Page 539 542 544

538

35006145 05 novembre 2006

Texte structur (ST)

Informations gnrales sur le texte structur (ST)


Prsentation Le langage Littral structur (ST) vous permet par exemple d'appeler des blocs fonction, d'excuter des fonctions, de lancer des affectations, d'excuter des instructions conditionnelles et de rpter des instructions. 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. Oprateur Oprande Les oprateurs sont des symboles pour les oprations excuter. Les oprateurs sont utiliss sur les oprandes. Les oprandes sont par exemple des variables, des valeurs littrales, des entres/sorties FFB, etc. Les instructions permettent d'affecter les valeurs retournes par des expressions des paramtres rels et de structurer et commander les expressions. Reprsentation d'une section ST : Oprateur Oprande Instruction D := B*B - 4*A*C ; IF D < 0.0 THEN NROOTS := 0 ; ELSIF D = 0.0 THEN NROOTS := 1 ; X1 := - B / (2.0*A) ; ELSE NROOTS := 2 ; X1 := (- B + SQRT(D)) / (2.0*A) ; X2 := (- B - SQRT(D)) / (2.0*A) ; END_IF;

Expression

Instructions

Reprsentation d'une section ST

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.

35006145 05 novembre 2006

539

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

Comportement en cas d'erreur

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).

35006145 05 novembre 2006

541

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

Utilisation directe d'adresses

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

Utilisation d'autres types de donnes

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;

Accs aux variables de champs

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 ;

35006145 05 novembre 2006

543

Texte structur (ST)

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).

FUNCNAME (liste des paramtres rels) -

Traitement de fonction (appel)

Expression, valeur littrale, variable, adresse (tous les types de donnes)

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

35006145 05 novembre 2006

Texte structur (ST)

Oprateur Signification ** Elvation de puissance

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 ;

35006145 05 novembre 2006

545

Texte structur (ST)

Oprateur Signification Soustraction

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 ;

<

Comparaison "infrieur "

>

Comparaison "suprieur "

Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, INT, DINT, UINT, UDINT, REAL, TIME, WORD, DWORD, STRING, DT, DATE ou TOD

<=

Comparaison "infrieur ou gal "

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

35006145 05 novembre 2006

Texte structur (ST)

Oprateur Signification >= Comparaison "suprieur ou gal "

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

35006145 05 novembre 2006

547

Texte structur (ST)

Oprateur Signification AND ET logique

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

11 (le plus bas)

Expression, valeur littrale, variable, adresse du type de donnes BOOL, BYTE, WORD ou DWORD

548

35006145 05 novembre 2006

Texte structur (ST)

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

35006145 05 novembre 2006

549

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

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.

35006145 05 novembre 2006

551

Texte structur (ST)

Affectation de la valeur d'un FFB une variable

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

35006145 05 novembre 2006

Texte structur (ST)

Affectations entre variables ARRAY et WORD/ DWORD.

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

35006145 05 novembre 2006

553

Texte structur (ST)

Slectionner l'instruction IF...THEN...END_IF


Description Linstruction IF signifie quune instruction ou un groupe dinstructions peuvent tre seulement excuts si lexpression boolenne correspondante a la valeur 1 (vrai). Si la condition a pour valeur 0 (faux), linstruction ou le groupe dinstructions ne sont pas excuts. Linstruction THEN marque la fin dune condition et le dbut dune instruction (des instructions). Linstruction END_IF marque la fin de linstruction (des instructions). Note : Vous pouvez imbriquer autant d'instructions IF...THEN...END_IF que vous voulez pour crer des instructions de slection complexes. Exemple IF...THEN...E ND_IF La condition peut tre exprime via une variable boolenne. Si FLAG a la valeur 1, les instructions sont excutes, si FLAG a la valeur 0, elles ne sont pas excutes. IF FLAG THEN C:=SIN(A) * COS(B) ; B:=C - A ; END_IF ; La condition peut galement tre exprime via une opration qui livre un rsultat boolen. Si A est suprieur B, les instructions sont excutes ; si A est infrieur ou gal B, elles ne sont pas excutes. IF A>B THEN C:=SIN(A) * COS(B) ; B:=C - A ; END_IF ; Exemple IF NOT...THEN... END_IF NOT permet dinverser la condition (les deux instructions sont excutes si le rsultat est 0). IF NOT FLAG THEN C:=SIN_REAL(A) * COS_REAL(B) ; B:=C - A ; END_IF ; ELSE (voir Slectionner l'instruction ELSE, p. 555) ELSIF (voir Instruction de slection ELSIF...THEN, p. 556)

Voir galement

554

35006145 05 novembre 2006

Texte structur (ST)

Slectionner l'instruction ELSE


Description Linstruction ELSE vient toujours aprs une instruction IF...THEN, ELSIF...THEN ou CASE. Si linstruction ELSE vient aprs IF ou ELSIF, linstruction ou le groupe dinstructions sont excuts seulement si les expressions boolennes correspondantes des instructions IF et ELSIF ont la valeur 0 (faux). Si la condition de linstruction IF ou ELSIF est 1 (vrai), linstruction ou le groupe dinstructions ne sont pas excuts. Si linstruction ELSE vient aprs CASE, linstruction ou le groupe dinstructions ne sont excuts que si aucun repre ne contient la valeur du slecteur. Si un repre contient la valeur du slecteur, linstruction ou le groupe dinstructions ne sont pas excuts. Note : Vous pouvez imbriquer autant dinstructions IF...THEN...ELSE...END_IF que vous voulez pour crer des instructions de slection complexes.

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

35006145 05 novembre 2006

555

Texte structur (ST)

Instruction de slection ELSIF...THEN


Description Linstruction ELSIF vient toujours aprs une instruction IF...THEN. Linstruction ELSIF dtermine qu'une instruction ou un groupe dinstructions sont excuts seulement si lexpression boolenne correspondante de linstruction IF a la valeur 0 (faux) et que lexpression boolenne correspondante de linstruction ELSIF a la valeur 1 (vrai). Si la condition de linstruction IF est 1 (vrai) ou que la condition de linstruction ELSIF est 0 (faux), linstruction ou le groupe dinstructions ne sont pas excuts. Linstruction THEN caractrise la fin de la (des) condition(s) ELSIF et le dbut de l'instruction (des instructions). Note : Vous pouvez imbriquer autant dinstructions IF...THEN...ELSIF...THEN...END_IF que vous voulez pour crer des instructions de slection complexes. Exemple ELSIF...THEN IF A>B THEN C:=SIN(A) * B:=SUB(C,A) ELSIF A=B THEN C:=ADD(A,B) B:=MUL(C,A) END_IF ;

COS(B) ; ; ; ;

Exemple d'instructions imbriques

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

35006145 05 novembre 2006

Texte structur (ST)

Slection de l'instruction CASE...OF...END_CASE


Description Linstruction CASE est compose dune expression de type donnes INT (le "slecteur") et dune liste de groupes dinstructions. Chaque groupe porte un repre compos dun ou de plusieurs entiers (INT, DINT, UINT, UDINT) ou de plages de valeurs entires. Lon excutera le premier groupe dinstructions dont le repre contient la valeur calcule du slecteur. Sinon aucune des instructions nest excute. Linstruction OF caractrise le dbut des repres. A lintrieur dune instruction CASE, on peut dfinir une instruction ELSE dont les instructions seront excutes si aucun repre ne contient la valeur du slecteur. Linstruction END_CASE marque la fin de linstruction (des instructions). Exemple CASE...OF...E ND_CASE Exemple CASE...OF...END_CASE Slecteur CASE SELECT OF 1,5: C:=SIN(A) * COS(B) ; 2: B :=C - A ; 6..10: C:=C * A ; ELSE B:=C * A ; C:=A / B ; END_CASE ;

Repres

Voir galement

ELSE (voir Slectionner l'instruction ELSE, p. 555)

35006145 05 novembre 2006

557

Texte structur (ST)

Instruction rcurrente FOR...TO...BY...DO...END_FOR


Description Linstruction FOR est utilise si le nombre doccurrences peut tre dfini lavance. Sinon, on utilise WHILE (voir Instruction rcurrente WHILE...DO...END_WHILE, p. 560) ou REPEAT (voir Instruction rcurrente REPEAT...UNTIL...END_REPEAT, p. 561). Linstruction FOR reprend une chane dinstructions jusqu linstruction END_FOR. Le nombre d'occurrences est dtermin par la valeur initiale, la valeur finale et la variable de commande. Variable de commande, valeur initiale et valeur finale doivent avoir le mme type de donnes (DINT ou INT). Variable de commande, variable initiale et variable finale peuvent tre modifies via une des instructions rcurrentes. Cela constitue un complment de la norme CEI 61131-3. Linstruction FOR incrmente la valeur des variables de commande dune valeur initiale une valeur finale. Par dfaut, la valeur de l'incrment est dfinie sur 1. Pour le cas o une autre valeur doit tre utilise, il est possible d'indiquer explicitement une valeur d'incrment (variable ou constante). La valeur des variables de commande est contrle avant chaque nouveau parcours de la boucle. La boucle est abandonne si ladite valeur est en dehors de la plage de la valeur initiale et de la valeur finale. Avant le premier parcours de la boucle, on contrlera si lincrment des variables de commande progresse vers la valeur finale partir de la valeur initiale. Si ce n'est pas le cas (par exemple valeur initiale valeur finale et incrment ngatif), la boucle n'est pas traite. La valeur de la variable de commande n'est pas dfinie en dehors de la boucle. Linstruction DO marque la fin de dfinition dune occurrence et le dbut dune instruction (des instructions). La rptition peut tre prmaturment quitte avec linstruction EXIT. Linstruction END_FOR marque la fin de linstruction (des instructions). Exemple : FOR avec incrment 1 FOR avec incrment 1 Variable de commande Valeur initiale FOR i:= 1 TO 50 DO C:= C * COS(B) ; END_FOR ;

Valeur finale

558

35006145 05 novembre 2006

Texte structur (ST)

FOR avec incrment diffrent de 1

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

Exemple : Comptage deux tapes

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 ;

Exemple : Boucles "uniques"

35006145 05 novembre 2006

559

Texte structur (ST)

Instruction rcurrente WHILE...DO...END_WHILE


Description Linstruction WHILE provoque lexcution rpte dune chane dinstructions jusqu ce que l'expression boolenne correspondante soit 0 (fausse). Si l'expression est fausse ds le dpart, le groupe dinstructions nest pas excut. Linstruction DO marque la fin de dfinition dune occurrence et le dbut dune instruction (des instructions). La rptition peut tre prmaturment quitte avec l'instruction EXIT. Linstruction END_WHILE marque la fin de linstruction (des instructions). Dans les cas suivants WHILE ne doit pas tre utilis car cela forme une boucle continue qui entrane un dfaut bloquant du programme : z WHILE ne doit pas servir effectuer une synchronisation entre processus, par ex. une "boucle d'attente" avec une condition de fin dfinie en externe. z WHILE ne doit pas tre utilis dans un algorithme pour lequel la satisfaction de la condition de fin de la boucle ou l'excution d'une instruction EXIT ne peuvent pas tre garanties. Exemple WHILE...DO... END_WHILE x := 1 WHILE x <= 100 DO x := x + 4; END_WHILE ; EXIT (voir Instruction rcurrente EXIT, p. 562)

Voir galement

560

35006145 05 novembre 2006

Texte structur (ST)

Instruction rcurrente REPEAT...UNTIL...END_REPEAT


Description Linstruction REPEAT provoque la rptition dune chane dinstructions (au moins une fois) jusqu ce que la condition boolenne correspondante soit 1 (vraie). Linstruction UNTIL marque la condition de fin. La rptition peut tre prmaturment quitte avec l'instruction EXIT. Linstruction END_REPEAT marque la fin de linstruction (des instructions). Dans les cas suivants REPEAT ne doit pas tre utilis car cela forme une boucle continue qui entrane un dfaut bloquant du programme : z REPEAT ne doit pas servir effectuer une synchronisation entre processus, par ex. une "boucle d'attente" avec une condition finale dfinie en externe. z REPEAT ne doit pas tre utilis dans un algorithme pour lequel la satisfaction de la condition de fin de la boucle ou l'excution d'une instruction EXIT ne peuvent pas tre garanties. Exemple REPEAT...UNTIL ...END_REPEAT x := -1 REPEAT x := x + 2 UNTIL x >= 101 END_REPEAT ; EXIT (voir Instruction rcurrente EXIT, p. 562)

Voir galement

35006145 05 novembre 2006

561

Texte structur (ST)

Instruction rcurrente EXIT


Description Linstruction EXIT est utilise pour terminer les instructions rcurrentes (FOR, WHILE, REPEAT) avant que la condition de fin ne soit atteinte. Si linstruction EXIT se trouve dans une occurrence imbrique, la boucle la plus interne (dans laquelle se trouve EXIT) est abandonne. Et linstruction suivante qui est excute est la premire instruction aprs la fin de la boucle (END_FOR, END_WHILE ou END_REPEAT). Exemple EXIT Si FLAG a la valeur 0, SUM est 15 aprs excution des instructions. Si FLAG a la valeur 1, SUM est 6 aprs excution des instructions. SUM : = 0 ; FOR I := 1 TO 3 DO FOR J := 1 TO 2 DO IF FLAG=1 THEN EXIT; END_IF ; SUM := SUM + J ; END_FOR ; SUM := SUM + I ; END_FOR Voir galement CASE (voir Slection de l'instruction CASE...OF...END_CASE, p. 557) WHILE (voir Instruction rcurrente WHILE...DO...END_WHILE, p. 560) REPEAT (voir Instruction rcurrente REPEAT...UNTIL...END_REPEAT, p. 561)

562

35006145 05 novembre 2006

Texte structur (ST)

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.

35006145 05 novembre 2006

563

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

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.

35006145 05 novembre 2006

565

Texte structur (ST)

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

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

IF var1 THEN JMP START; : : START : ...

566

35006145 05 novembre 2006

Texte structur (ST)

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.

35006145 05 novembre 2006

567

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

Appel de fonctions lmentaires


Fonctions lmentaires Les fonctions lmentaires sont disponibles sous forme de bibliothques. La logique des fonctions est cre dans le langage de programmation C et ne peut pas tre modifie dans lditeur ST. 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. Certaines fonctions lmentaires peuvent tre tendues plus de deux entres. Les fonctions lmentaires n'ont qu'une seule valeur de renvoi (sortie).

35006145 05 novembre 2006

569

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

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 + + -

paramtre rel impratif paramtre rel non impratif non pertinent

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).

35006145 05 novembre 2006

571

Texte structur (ST)

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)

Appel de la mme fonction dans FBD :


LIMIT 0 var1 5 + var MN IN MX out

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

35006145 05 novembre 2006

Texte structur (ST)

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)

Appel de la mme fonction dans FBD :


LIMIT 0 var1 5 + var MN IN MX out

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

35006145 05 novembre 2006

573

Texte structur (ST)

Imbriquer des fonctions

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

out:=EXAMP(MN:=4, IN:=EXAMP(IN1:=var1, IN2:=var2), MX:=var3)

574

35006145 05 novembre 2006

Texte structur (ST)

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

35006145 05 novembre 2006

575

Texte structur (ST)

Bloc fonction lmentaire d'appel et bloc fonction driv


Bloc fonction lmentaire Les blocs fonction lmentaires ont des tats internes. Pour des valeurs gales aux entres, la valeur la sortie peut tre diffrente chaque excution du bloc fonction. Par exemple, pour un compteur, la valeur la sortie augmente. Les blocs fonction peuvent comprendre plusieurs valeurs de renvoi (sorties). Bloc fonction driv 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. 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

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

35006145 05 novembre 2006

Texte structur (ST)

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 + + + + + +

EFB : VAR_IN_OUT + EFB : sortie DFB : entre -

DFB : VAR_IN_OUT + DFB : sortie + / -

Paramtre rel impratif Paramtre rel non impratif non pertinent

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

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

Remarques sur la programmation

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

35006145 05 novembre 2006

579

Texte structur (ST)

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 formels (entres) Paramtres formels (sorties)

MY_COUNT (CU:=var1, R:=reset, PV:=100 + value, Q=>out, CV=>current);

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

35006145 05 novembre 2006

Texte structur (ST)

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

35006145 05 novembre 2006

581

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

Appel du mme bloc fonction dans FBD :


MY_COUNT CTU var1 reset CU R PV Q CV

Appel d'un bloc fonction sans entres

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

35006145 05 novembre 2006

583

Texte structur (ST)

Appel multiple d'une instance de bloc fonction

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

35006145 05 novembre 2006

Texte structur (ST)

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

35006145 05 novembre 2006

585

Texte structur (ST)

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.

Appel non valide, exemple 2 :


V1 := InOutFB.inout; Affectation d'un paramtre VAR_IN_OUT la variable V1. 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

35006145 05 novembre 2006

Texte structur (ST)

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.

Appel valide, exemple 2 :


InOutFB (V1); Appel d'un bloc fonction avec un paramtre VAR_IN_OUT et affectation informelle des paramtres rels au sein de l'appel de bloc fonction.

35006145 05 novembre 2006

587

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

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 + + +

paramtre rel impratif Paramtre rel non impratif non pertinent

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).

35006145 05 novembre 2006

589

Texte structur (ST)

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)

PROC (IN1:=var1, IN2:=var2, OUT1=>result1, OUT2=>result2);

Paramtre rel (entres) Appel de la mme procdure dans FBD :


PROC var1 var2 IN1 IN2 OUT1 OUT2

Paramtre rel (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

35006145 05 novembre 2006

Texte structur (ST)

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

35006145 05 novembre 2006

591

Texte structur (ST)

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

35006145 05 novembre 2006

Texte structur (ST)

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.

Appel invalide, exemple 2 :


V1 := InOutProc.inout; Affectation d'un paramtre VAR_IN_OUT la variable V1. 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.

35006145 05 novembre 2006

593

Texte structur (ST)

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.

Appel valide, exemple 2 :


InOutProc (V1); Appel d'une procdure avec un paramtre VAR_IN_OUT et affectation informelle des paramtres rels au sein de l'appel de procdure.

594

35006145 05 novembre 2006

Blocs fonction utilisateur (DFB)

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.

Contenu de cette partie

Cette partie contient les chapitres suivants :


Chapitre 16 17 18 19 20 Titre du chapitre Prsentation de Blocs Fonction Utilisateur (DFB) Description des Blocs Fonction Utilisateur (DFB) Instance de blocs fonction utilisateur (DFB) Utilisation des DFB partir des langages de programmation DFB de diagnostic utilisateur Page 597 603 615 623 643

35006145 05 novembre 2006

595

DFB

596

35006145 05 novembre 2006

Prsentation de Blocs Fonction Utilisateur (DFB)

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

35006145 05 novembre 2006

597

Prsentation des DFB

Prsentation des blocs fonctions utilisateur (DFB)


Prsentation Le logiciel Unity Pro vous permet de crer des blocs fonction utilisateur DFB, en utilisant les langages dautomatismes. Un DFB est un bloc de programme que vous avez crit, afin de rpondre aux spcificits de votre application. Il comprend:
z

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).

Comparaison avec un sousprogramme

Par rapport un sous programme, l'utilisation d'un DFB permet :


z z z

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

35006145 05 novembre 2006

Prsentation des DFB

Domaine d'utilisation

Le tableau ci-aprs dcrit le domaine d'utilisation des DFB.


Fonction Domaine

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.

35006145 05 novembre 2006

599

Prsentation des DFB

Mise en oeuvre d'un bloc fonction DFB


Procdure de mise en uvre La procdure de mise en uvre du bloc fonction DFB comporte trois tapes :
Etape 1 2 3 Action Cration de votre modle DFB (appel : type DFB). Cration d'une copie de ce bloc fonction, appel une instance, chaque fois que le DFB est utilis dans l'application. Utilisation des instances DFB dans votre programme d'application.

Cration du type DFB

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

35006145 05 novembre 2006

Prsentation des DFB

Description du type DFB

Le graphe ci-dessous illustre une reprsentation graphique d'un modle DFB.


Nom Entres Sorties

Entres/ Sorties Variables publiques Variables prives Sections

Le bloc fonction comprend les lments suivants :


z

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.

Cration d'une instance de DFB

35006145 05 novembre 2006

601

Prsentation des DFB

Utilisation des instances de DFB

Une instance DFB est utilise comme suit


z z

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

35006145 05 novembre 2006

Description des Blocs Fonction Utilisateur (DFB)

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

35006145 05 novembre 2006

603

Description des DFB

Dfinition des donnes internes de blocs fonctions drivs (DBF)


Prsentation Il existe 2 types de donnes internes DFB :
z z

les paramtres : entres, sorties ou entres/sorties, les variables publiques ou prives.

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

35006145 05 novembre 2006

Description des DFB

Objets autoriss pour les diffrents paramtres


Famille d'objets Entres Entres/sorties

Les familles d'objets suivantes peuvent tre utilises pour chacun des paramtres DFB :

Structures Oui Oui


(2)

DDT (1) Oui Oui

IODDT Non

GDT : ANY_ARRAY_x Oui

FB Non Non

Oui Oui (voir Utilisation des IODDT dans un DFB, p. 626) Non Non Non Oui Non Non

Sorties variables publiques variables prives

Oui Oui Oui

Oui Oui Oui

Non Non Oui

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.

35006145 05 novembre 2006

605

Description des DFB

Paramtres DFB
Illustration Cette illustration prsente des exemples de paramtres de DFB Entres Ecart Vitesse Enable Actions Entres/Sorties Controle Accel Erreur Sorties

Description des paramtres

Ce tableau dcrit le rle de chaque type de paramtres


Paramtre Entres Nombre maximum 32 (1) Rle Ces paramtres permettent de passer des valeurs du programme application vers le programme interne du DFB. Ils sont accessibles en lecture par le DFB, mais ne sont pas accessibles par le programme application. Ces paramtres permettent de passer des valeurs du DFB vers le programme application. Ils sont accessibles en lecture par le programme application sauf pour les paramtres de type ARRAY. Ces paramtres permettent de passer des donnes du programme application vers le DFB qui peut la modifier et la repasser vers le programme application. Ces paramtres ne sont pas accessibles par le programme application.

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

35006145 05 novembre 2006

Description des DFB

Paramtres accessibles par le programme application

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

35006145 05 novembre 2006

607

Description des DFB

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

Enable Entres/ Sorties Actions Entres/ Sorties

Si le paramtre dentre EN dune instance reoit la valeur 0 (FALSE) alors :


z z

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.

Si le paramtre dentre EN dune instance reoit la valeur 1 (TRUE) alors :


z z

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

35006145 05 novembre 2006

Description des DFB

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

35006145 05 novembre 2006

609

Description des DFB

Appel invalide, exemple 2 :


LD V1 AND InOutFB.inout Chargement des variables V1 dans l'accumulateur Liaison ET du contenu de l'accumulateur avec rfrence 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.

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.

Appel valide, exemple 2 :


LD V1 ST InOutFB.IN1 CAL InOutFB(inout:=V2) Chargement des variables V1 dans l'accumulateur Affectation du contenu de l'accumulateur au paramtre IN1 du bloc fonction IN1. Appel du bloc fonction avec affectation du paramtre rel (V2) au paramtre VAR_IN_OUT.

610

35006145 05 novembre 2006

Description des DFB

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.

Variables accessibles par le programme application

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

35006145 05 novembre 2006

611

Description des DFB

Sauvegarde des variables publiques

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

35006145 05 novembre 2006

Description des DFB

Section de code DFB


Gnralits La ou les sections de code dfinissent le traitement que doit effectuer le DFB, en fonction des paramtres dclars. Si loption IEC est positionne, une seule section peut tre attache au DFB. Dans le cas contraire, un DFB peut contenir plusieurs sections de code; le nombre de sections tant illimit. Langages de programmation Pour programmer les sections de DFB vous pouvez utiliser les langages suivants:
z z z z

Liste d'instructions IL, littral structur ST, langage contacts LD, Langage blocs fonctionnels (FBD).

Dfinition d'une section

Une section est dfinie par:


z z z z

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.

35006145 05 novembre 2006

613

Description des DFB

Exemple de code

Le programme suivant donne l'exemple code en littral structur ST


CHR_200:=CHR_100; CHR_114:=CHR_104; CHR_116:=CHR_106; RESET DEMARRE; (*On incremente 80 fois CHR_100*) FOR CHR_102:=1 TO 80 DO INC CHR_100; WHILE((CHR_104-CHR_114)<100)DO IF(CHR_104>400) THEN EXIT; END_IF; INC CHR_104; REPEAT IF(CHR_106>300) THEN EXIT; END_IF; INC CHR_106; UNTIL ((CHR_100-CHR_116)>100) END_REPEAT; END_WHILE; (* On boucle tant que CHR_106) IF (CHR_106=CHR_116) THEN EXIT; ELSE CHR_114:=CHR_104; CHR_116:=CHR_106; END_IF; INC CHR_200; END_FOR;

614

35006145 05 novembre 2006

Instances de blocs fonction utilisateur (DFB)

18

Prsentation
Objet de ce chapitre Contenu de ce chapitre Ce chapitre prsente la cration d'une instance DFB et son excution.

Ce chapitre contient les sujets suivants :


Sujet Cration d'une instance DFB Excution d'une instance de DFB Exemple de programmation d'un bloc DFB Page 616 618 619

35006145 05 novembre 2006

615

Instance DFB

Cration d'une instance DFB


Instance de DFB Une instance de DFB est une copie du modle de DFB (type de DFB):
z z

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

35006145 05 novembre 2006

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 -

Entres Entres\Sorties Sorties variables publiques Variables Prives

Oui Non Oui Oui Non

Modification des valeurs initiales des lments dans le type de DFB


EDT (sauf type String) Entres Entres\Sorties Sorties variables publiques Variables Prives Oui Non Oui Oui Oui Type String Non Non Oui Oui Oui Tablea DDT FB ux structure Non Non Non Oui Oui Non Non Oui Oui Oui Non ANY_ARRAY Non Non IODDT Non ANY_... Non Non Non -

35006145 05 novembre 2006

617

Instance DFB

Excution d'une instance de DFB


Fonctionnement Une instance de DFB s'excute de la manire suivante.
Etape 1 Action Chargement des valeurs dans les paramtres d'entres et d'entres/sorties. Toute entre sans affectation prend l'initialisation (ou sur reprise froid) la valeur initiale dfinie dans le type de DFB. Elle garde ensuite la dernire valeur qui lui a t affecte. Excution du programme interne du DFB. Ecriture des paramtres de sorties.

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.

Mise au point des DFB

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

35006145 05 novembre 2006

Instance DFB

Exemple de programmation d'un bloc DFB


Gnralits Cet exemple de programmation d'un compteur, partir d'un DFB, est donn titre didactique. Le type de DFB permettant de raliser le compteur est le suivant. Cpt_pieces Raz EBOOL Presel DINT Count EBOOL V_cour DINT Les lments du Type DFB Cpt_pieces sont les suivants.
Elments Nom du type de DFB Paramtres dentres Description Cpt_pices
z Raz: remise zro du compteur (type EBOOL) z Presel : valeur de prslection du compteur (type DINT) z Count: entre de comptage (type EBOOL)

Caractristiques du type de DFB

Done BOOL

Paramtres de sorties Variable interne publique

Done: sortie de valeur de prslection atteinte (type BOOL) V_cour: valeur courante du compteur (type DINT)

35006145 05 novembre 2006

619

Instance DFB

Fonctionnement du compteur

Le fonctionnement du compteur doit tre le suivant.


Phase 1 2 3 Description Le DFB compte les fronts montants sur l'entre Count. Le nombre de fronts compts est mmoris par la variable V_cour. Cette variable est remise zro par un front montant sur lentre Raz. Lorsque le nombre de fronts compts est gal la valeur de prslection, la sortie Done est positionne 1. Cette variable est remise zro par un front montant sur lentre Raz.

Programme interne du DFB

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

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

Cpt_ecrous %I1.2 Raz %MD12 %I1.3 Cpt_pieces Done %Q2.2

Presel

Count

Cpt_vis %I1.4 Raz %MD14 %I1.5 Cpt_pieces Done %Q2.3

Presel

Count

622

35006145 05 novembre 2006

Utilisation des DFB partir des langages de programmation

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

35006145 05 novembre 2006

623

Utilisation des DFB

Rgles dutilisation des DFB dans un programme


Gnralits Les instances de DFB sont utilisables dans tous les langages (liste dinstructions IL, littral structur ST, langages contacts LD et diagramme de blocs fonction FBD) et dans toutes les tches du programme application (sections, sous-programme,...), lexception des tches vnementielles et des transitions du programme SFC. Lors de lutilisation dun DFB, vous devez respecter les rgles suivantes, quel que soit le langage utilis :
z

Rgles gnrales dutilisation

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

35006145 05 novembre 2006

Utilisation des DFB

Affectation des paramtres

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

35006145 05 novembre 2006

625

Utilisation des DFB

Utilisation des IODDT dans un DFB


Prsentation Les tableaux suivants prsentent les diffrents IODDT pour les automates Modicon M340, Premium et Quantum qui peuvent tre utiliss dans un DFB (exclusivement en tant que paramtres d'entre/sortie (voir Objets autoriss pour les diffrents paramtres, p. 605)).

626

35006145 05 novembre 2006

Utilisation des DFB

IOODT utilisables dans un DFB

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

35006145 05 novembre 2006

627

Utilisation des DFB

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

Modicon M340 Aucune Aucune Aucune Aucune

Premium Oui Oui Oui Oui

Quantum Aucune Aucune Aucune Aucune

Aucune Aucune Aucune Aucune Aucune Aucune Aucune

Oui Oui Oui Oui Oui Oui Oui

Aucune Aucune Aucune Aucune Aucune Aucune Aucune

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

35006145 05 novembre 2006

Utilisation des DFB

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 Aucune Aucune Aucune Aucune

Oui Oui Oui Oui Oui

Aucune Aucune Aucune Aucune Aucune

Aucune

Oui

Aucune

Aucune

Aucune

Aucune

35006145 05 novembre 2006

629

Utilisation des DFB

Utilisation dun DFB dans un programme en langage contacts


Principe En langage contacts LD, il y a deux possibilits pour appeler un bloc fonction DFB:
z z

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)

Enable (7) Actions (9) %MW100

630

35006145 05 novembre 2006

Utilisation des DFB

Elments du bloc DFB

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

Utilisation des paramtres EN\ENO

Voir Cas des paramtres EN et ENO, p. 608

35006145 05 novembre 2006

631

Utilisation des DFB

Utilisation dun DFB dans un programme en littral structur


Principe En littral structur ST, lappel dun bloc fonction utilisateur seffectue par un appel du DFB: nom de linstance de DFB suivi dune liste darguments. A lintrieur de la liste, matrialise par des parenthses, les arguments sont spars par des virgules. Lappel du DFB peut tre de 2 types :
z

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.

Utilisation des paramtres EN\ENO

Voir Cas des paramtres EN et ENO, p. 608

632

35006145 05 novembre 2006

Utilisation des DFB

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

Appel formel du DFB

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;

35006145 05 novembre 2006

633

Utilisation des DFB

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

Appel informel du DFB

Lappel informel du DFB Cpt_1 seffectue suivant la syntaxe : Cpt_1 (Clear, %MD10, , 100); ... %Q1.2.1:=Cpt_1.Done;

634

35006145 05 novembre 2006

Utilisation des DFB

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

35006145 05 novembre 2006

635

Utilisation des DFB

Utilisation dun DFB dans un programme en liste dinstructions


Principe En liste dinstructions IL, lappel dun bloc fonction utilisateur seffectue par une instruction CAL suivie du nom de linstance de DFB comme oprande et dune liste darguments (optionnelle). A lintrieur de la liste, matrialise par des parenthses, les arguments sont spars par des virgules. Il y a 3 possibilits pour appeler un DFB en langage IL :
z

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

35006145 05 novembre 2006

Utilisation des DFB

Utilisation des paramtres EN\ENO Exemple de DFB

Voir Cas des paramtres EN et ENO, p. 608.

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

Appel du DFB lorsque les arguments sont des affectations

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)

35006145 05 novembre 2006

637

Utilisation des DFB

Elments du programme dappel du DFB

Le tableau suivant liste les diffrents lments du programme dappel du DFB :


Elment CAL Cpt_1 Raz, Presel, Count := Clear, %MD10, 100 Done => %Q1.2.1 , Signification Instruction dappel du DFB Nom de linstance de DFB Paramtres dentres Symbole daffectation dune entre Objet ou valeur daffectation des entres Paramtre de sortie Symbole daffectation dune sortie Objet daffectation dune sortie Symbole de sparation des arguments

Appel du DFB lorsque les arguments sont des valeurs

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

Elments du programme dappel du DFB

Le tableau suivant liste les diffrents lments du programme dappel du DFB :


Elment CAL Cpt_1 Clear, %MD10, 100 , Signification Instruction dappel du DFB Nom de linstance de DFB Objet ou valeur daffectation des entres Symbole de sparation des arguments

638

35006145 05 novembre 2006

Utilisation des DFB

Appel dun DFB sans argument

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

Elments du programme dappel du DFB

Le tableau suivant liste les diffrents lments du programme dappel du DFB :


Elment LD Clear ST Cpt_1.Raz CAL Cpt_1 Signification Instruction de chargement de la valeur Clear dans un registre Instruction daffectation du contenu du registre au paramtre dentre Cpt_1.Raz Instruction dappel du DFB Cpt_1

35006145 05 novembre 2006

639

Utilisation des DFB

Utilisation dun DFB dans un programme en langage blocs fonctionnels


Principe En langage FBD (Diagramme de Blocs Fonction), les blocs fonction utilisateur sont reprsents de la mme manire quen langage contacts et appels de manire graphique. Les entres des blocs fonction utilisateur peuvent tre cbles ou affectes dune valeur immdiate, dun objet ou dune expression. Dans tous les cas, le type de llment extrieur doit tre identique celui du paramtre dentre. Vous ne pouvez affecter quun seul objet (lien vers un autre bloc au variable) sur une entre du DFB. Par contre, plusieurs objets peuvent tre connects une mme sortie. Un bloc DFB doit avoir au moins une entre boolenne cble et une sortie (si ncessaire). Pour cela, vous pouvez utiliser un paramtre dentre EN et un paramtre de sortie ENO. 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) Bloc fonction Delta (3) 10000 (4) (5) Controle (2) Ecart (6) Vitesse (6) Accel (7) %Q1.2.1 (8)

Enable (6)

640

35006145 05 novembre 2006

Utilisation des DFB

Elments du bloc DFB

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)

Utilisation des paramtres EN\ENO

Voir Cas des paramtres EN et ENO, p. 608.

35006145 05 novembre 2006

641

Utilisation des DFB

642

35006145 05 novembre 2006

DFB de diagnostic utilisateur

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

35006145 05 novembre 2006

643

DFB de diagnostic

Prsentation des DFB de diagnostic utilisateur


Gnralits Le logiciel Unity Pro vous permet de crer vos propres DFB de diagnosti (Voir Manuel Unity Pro, Modes opratoires, Le diagnostic projet)c. Ces DFB de diagnostic sont des DFB standard que vous aurez au pralable configurs avec la proprit Diagnostic et dans lesquels vous aurez utilis les deux fonctions suivantes :
z

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

35006145 05 novembre 2006

DFB de diagnostic

Comment crer un DFB de diagnostic utilisateur


Prsentation Vous pouvez crer un type de DFB de diagnostic selon deux manires.
z z

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.

35006145 05 novembre 2006

645

DFB de diagnostic

Cration dun DFB de diagnostic sans modle

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

35006145 05 novembre 2006

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.

35006145 05 novembre 2006

647

DFB de diagnostic

Cration dun DFB de diagnostic avec le modle USER_DIAG_ST _MODEL

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

35006145 05 novembre 2006

Annexes

Prsentation
Objet de cette annexe Contenu de cette annexe Lannexe contient des informations complmentaires.

Cette annexe contient les chapitres suivants :


Chapitre A B Titre du chapitre Codes et valeurs d'erreur des EFB Conformit CEI Page 651 693

35006145 05 novembre 2006

649

Annexes

650

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

35006145 05 novembre 2006

651

Codes et valeurs d'erreur des EFB

Tableaux des codes d'erreur pour la bibliothque de base


Introduction Les tableaux ci-dessous rpertorient les codes et les valeurs d'erreur gnrs pour les EFB de la bibliothque de base. Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Date & Dure :
Etat ENO en cas d'erreur F F F F F Valeur d'erreur (format dcimal) -30 176 -30177 -30 170 -30 003 Valeur d'erreur (format hexadcimal) Description de l'erreur

Date & Dure


Nom EFB

Code d'erreur

DIVTIME DIVTIME DIVTIME DIVTIME DIVTIME

E_DIVIDE_BY_ZERO E_NEGATIVE_INPUT_ FOR_TIME_OPERATION E_ARITHMETIC_ ERROR E_ERR_ARITHMETIC FP_ERROR

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

MULTIME MULTIME MULTIME MULTIME MULTIME MULTIME

E_ERR_ARITHMETIC E_ARITHMETIC_ERROR_ MUL_OV E_ARITHMETIC_ERROR_ ADD_OV E_ARITHMETIC_ERROR_ BIG_PAR

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

E_NEGATIVE_INPUT_FOR_ F TIME_OPERATION FP_ERROR F

652

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

AVE AVE AVE

E_INPUT_VALUE_OUT_ OF_RANGE E_DIVIDE_BY_ZERO FP_ERROR

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

AVE AVE AVE AVE AVE AVE MAX

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

16#8A21 Slecteur hors limites

35006145 05 novembre 2006

653

Codes et valeurs d'erreur des EFB

Tableaux des codes d'erreur pour la bibliothque de diagnostic


Introduction Les tableaux ci-dessous rpertorient les codes et les valeurs d'erreur gnrs pour les EFB de la bibliothque de diagnostic. Tableau des codes et valeurs d'erreur gnrs pour les EFB de la famille Diagnostic :
Code d'erreur Etat ENO en cas d'erreur V/F Valeur d'erreur (format dcimal) -30 196 Valeur d'erreur (format hexadcimal) Description de l'erreur

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

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Tableau des codes d'erreur pour la bibliothque de communications


Introduction Le tableau suivant rpertorie les codes et les valeurs d'erreur gnrs pour les EFB de la bibliothque de communications.

35006145 05 novembre 2006

655

Codes et valeurs d'erreur des EFB

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

CREAD_REG CREAD_REG CREAD_REG

E_EFB_MSTR_ERROR E_EFB_NOT_STATE_ RAM_4X -

Erreur de communication MSTR

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

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

Description de l'erreur

CWRITE_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) 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

-30 531 8 195

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

35006145 05 novembre 2006

657

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

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

READ_REG READ_REG READ_REG READ_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

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

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

Description de l'erreur

READ_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) 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

35006145 05 novembre 2006

659

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

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

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Tableau des codes d'erreur pour la bibliothque de gestion des E/S


Introduction Les tableaux prsents dans cette section rpertorient les codes et les valeurs d'erreur gnrs pour les EFB de la bibliothque de gestion des E/S.

35006145 05 novembre 2006

661

Codes et valeurs d'erreur des EFB

Configuration des E/S analogiques


Nom EFB

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

I_FILTER I_SET I_SET

E_EFB_NOT_CONFIGURED F E_EFB_USER_ERROR_1 E_EFB_USER_ERROR_2 F F

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

I_SET I_SET I_SET I_SET I_SET I_SET O_FILTER O_SET O_SET

E_EFB_USER_ERROR_3 E_EFB_USER_ERROR_4 E_EFB_USER_ERROR_5 E_EFB_USER_ERROR_11 E_EFB_USER_ERROR_12 E_EFB_USER_ERROR_13

F F F F F F

-30202 -30203 -30204 -30210 -30211 -30212 -30188 -30200 -30201

E_EFB_NOT_CONFIGURED F E_EFB_USER_ERROR_1 E_EFB_USER_ERROR_2 F F

O_SET O_SET O_SET O_SET O_SET O_SET

E_EFB_USER_ERROR_3 E_EFB_USER_ERROR_4 E_EFB_USER_ERROR_5 E_EFB_USER_ERROR_11 E_EFB_USER_ERROR_12 E_EFB_USER_ERROR_13

F F F F F F

-30202 -30203 -30204 -30210 -30211 -30212

662

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Affichage d'E/S analogiques


Nom EFB

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

I_NORM_WARN I_NORM_WARN I_NORM_WARN I_NORM_WARN

E_EFB_NO_WARNING_ STATUS_AVAILABLE

-30189 -30186 -30187 -30188

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

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

I_PHYS I_PHYS I_PHYS I_PHYS I_PHYS I_PHYS

E_EFB_NO_WARNING_ STATUS_AVAILABLE

-30189 -30183 -30185 -30186 -30187 -30188

E_INPUT_VALUE_OUT_OF_ F RANGE E_EFB_NO_MEASURING_ RANGE F

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A13 Le module ne fournit aucun tat d'avertissement

I_PHYS_WARN I_PHYS_WARN I_PHYS_WARN I_PHYS_WARN I_PHYS_WARN I_PHYS_WARN

E_EFB_NO_WARNING_ STATUS_AVAILABLE E_EFB_FILTER_SQRT_ NOT_AVAIL

F F

-30189 -30195 -30183 -30185 -30186 -30187

16#8A0D Le filtre SQRT n'est pas disponible 16#8A19 16#8A17 Valeur d'entre hors limites Erreur interne

E_INPUT_VALUE_OUT_OF_ F RANGE E_EFB_NO_MEASURING_R ANGE F

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

35006145 05 novembre 2006

663

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -30188

Valeur d'erreur (format hexadcimal)

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

I_SCALE I_SCALE I_SCALE

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

-30186 -30187 -30188

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A13 Le module ne fournit aucun tat d'avertissement

I_SCALE_WARN I_SCALE_WARN I_SCALE_WARN I_SCALE_WARN

E_EFB_NO_WARNING_STA TUS_AVAILABLE

-30189 -30186 -30187 -30188

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

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

O_NORM O_NORM O_NORM

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

-30186 -30187 -30188

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

O_NORM_WARN O_NORM_WARN O_NORM_WARN

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

-30186 -30187 -30188

16#8A14 La configuration EFB ne correspond pas la configuration matrielle

664

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -30185 -30186 -30187 -30188

Valeur d'erreur (format hexadcimal) 16#8A17

Description de l'erreur

O_PHYS O_PHYS O_PHYS O_PHYS

E_EFB_NO_MEASURING_ RANGE

Erreur interne

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A17 Erreur interne

O_PHYS_WARN O_PHYS_WARN O_PHYS_WARN O_PHYS_WARN

E_EFB_NO_MEASURING_ RANGE

-30185 -30186 -30187 -30188

E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

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

O_SCALE O_SCALE O_SCALE O_SCALE

E_INPUT_VALUE_OUT_OF_ F RANGE E_EFB_POS_OVER_RANGE F E_EFB_NEG_OVER_RANGE F E_EFB_NOT_CONFIGURED F

-30183 -30186 -30187 -30188

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A19 Valeur d'entre hors limites

O_SCALE_WARN E_INPUT_VALUE_OUT_OF_ F RANGE O_SCALE_WARN E_EFB_POS_OVER_RANGE F O_SCALE_WARN E_EFB_NEG_OVER_RANGE F O_SCALE_WARN E_EFB_NOT_CONFIGURED F

-30183 -30186 -30187 -30188

16#8A16 Dpassement positif 16#8A15 Dpassement ngatif

16#8A14 La configuration EFB ne correspond pas la configuration matrielle

35006145 05 novembre 2006

665

Codes et valeurs d'erreur des EFB

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

IMIO_IN IMIO_IN IMIO_OUT IMIO_OUT

F F F F

8195 -4095 0000 8193

2003 F001 0000 2001

IMIO_OUT

8194

2002

IMIO_OUT IMIO_OUT

F F

8195 -4095

2003 F001

666

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Configuration des E/S Quantum


Nom EFB

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

E_EFB_NOT_CONFIGURED F E_EFB_NOT_CONFIGURED F E_EFB_CURRENT_MODE_ NOT_ALLOWED F

E_EFB_NOT_CONFIGURED F E_EFB_NOT_CONFIGURED F E_EFB_CURRENT_MODE_ NOT_ALLOWED F

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

E_EFB_NOT_CONFIGURED F E_EFB_ILLEGAL_CONFIG_ DATA F

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 E_EFB_CURRENT_MODE_ NOT_ALLOWED F

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0B Erreur du EFB : Mode courant non autoris

E_EFB_NOT_CONFIGURED F E_EFB_CURRENT_MODE_ NOT_ALLOWED F

16#8A14 La configuration EFB ne correspond pas la configuration matrielle 16#8A0B Erreur du EFB : Mode courant non autoris

E_EFB_NOT_CONFIGURED F E_EFB_NOT_CONFIGURED F E_EFB_ILLEGAL_CONFIG_ DATA F

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

16#8A14 La configuration EFB ne correspond pas la configuration matrielle

35006145 05 novembre 2006

667

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas 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

16#8A14 La configuration EFB ne correspond pas la configuration matrielle

668

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -30190 -30188

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

16#8A14 La configuration EFB ne correspond pas la configuration matrielle

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.

35006145 05 novembre 2006

669

Codes et valeurs d'erreur des EFB

Tableaux des codes d'erreur pour la bibliothque CONT_CTL


Introduction Les tableaux ci-dessous rpertorient les codes d'erreur et les valeurs gnrs pour les EFB de la bibliothque CONT_CTL.

670

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

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 DTIME, reportez-vous la description de DTIME (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)

DTIME

Valeurs de mot d'tat

T/F

INTEGRATOR E_ERR_DEN INTEGRATOR E_ERR_IB_MAX_MIN INTEGRATOR FP_ERROR

F F F

-30 152 -30 102 -

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

W_WARN_OUT_OF_ RANGE FP_ERROR

T F

30 110 -

16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

35006145 05 novembre 2006

671

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur T/F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

Description de l'erreur

MFLOW

Valeurs de mot d'tat

Pour plus de dtails concernant le mot d'tat MFLOW, reportez-vous la description de MFLOW (voir Manuel Unity Pro, Rgulation, Bibliothque de blocs)

QDTIME SCALING SCALING

E_ERR_DEN E_ERR_NULL_INPUT_ SCALE FP_ERROR

F F F

-30 152 -30 121 -

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

Valeurs de mot d'tat

T/F

TOTALIZER TOTALIZER

W_WARN_OUT_OF_ RANGE FP_ERROR

T F

30 110 -

16#759E Paramtre hors limites Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

TOTALIZER TOTALIZER

W_WARN_TOTALIZER_ CTER_MAX Valeurs de mot d'tat

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)

VEL_LIM VEL_LIM VEL_LIM

E_ERR_DEN E_ERR_AB1_MAX_MIN FP_ERROR

F F F

-30 152 -30 101 -

16#8A38 Nombre virgule flottante incorrect 16#8A6B YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

672

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

AUTOTUNE AUTOTUNE AUTOTUNE AUTOTUNE

W_WARN_OUT_OF_ RANGE E_ERR_NULL_INPUT_ SCALE W_WARN_AUTOTUNE_ FAILED FP_ERROR

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

E_ERR_AUTOTUNE_ID_ UNKNOWN Valeurs de mot d'tat

F T/F

-30 120 -

16#8A58 -

PI_B PI_B PI_B

W_WARN_OUT_OF_ RANGE E_ERR_NULL_INPUT_ SCALE FP_ERROR

T F F

30 110 -30 121 -

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

Valeurs de mot d'tat

T/F

PIDFF PIDFF

W_WARN_OUT_OF_ RANGE E_ERR_NULL_INPUT_ SCALE

T F

30 110 -30 121

16#759E Paramtre hors limites 16#8A57 Echelle d'entre nulle : les limites max. et min. doivent tre diffrentes

35006145 05 novembre 2006

673

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

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

Valeurs de mot d'tat

T/F

SAMPLETM STEP2 STEP2

E_EFB_SAMPLE_TIME_ OVERFLOW W_WARN_OUT_OF_ RANGE FP_ERROR

F T F

-30 184 30 110 -

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

Valeurs de mot d'tat

T/F

STEP3 STEP3

W_WARN_OUT_OF_ RANGE FP_ERROR

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

Valeurs de mot d'tat

T/F

674

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

35006145 05 novembre 2006

675

Codes et valeurs d'erreur des EFB

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

AVGMV AVGMV AVGMV

E_ERR_DEN W_WARN_AVGMV FP_ERROR

16#8A38 Nombre virgule flottante incorrect AVGMV : N doit tre <= 50 Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

AVGMV_K AVGMV_K AVGMV_K

E_ERR_DEN W_WARN_AVGMV_K FP_ERROR

F T F

-30 152 30 109

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

DEAD_ZONE DEAD_ZONE DEAD_ZONE

E_ERR_DEN E_ERR_DZONE FP_ERROR

F F F

-30 152 -30 119 -

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

-30 152 -30 107 -30 108 -

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

LOOKUP_TABLE1 E_ERR_POLY_ANZAHL F LOOKUP_TABLE1 E_ERR_POLY_FOLGE LOOKUP_TABLE1 FP_ERROR F F

676

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

Valeurs de mot d'tat

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

Valeurs de mot d'tat

T/F

SPLRG SPLRG SPLRG

W_WARN_OUT_OF_RANGE

30 110 -30 121 -

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

Valeurs de mot d'tat

T/F

35006145 05 novembre 2006

677

Codes et valeurs d'erreur des EFB

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

Valeurs de mot d'tat

T/F

RATIO

FP_ERROR

RATIO

Valeurs de mot d'tat

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

Valeurs de mot d'tat

T/F

678

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Tableaux des codes d'erreur pour la bibliothque de mouvements


Introduction Les tableaux prsents dans cette section rpertorient les codes et les valeurs d'erreur gnrs pour les EFB de la bibliothque de mouvements.

35006145 05 novembre 2006

679

Codes et valeurs d'erreur des EFB

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#8A08 dfini comme E_EFB_USER_ERROR_1 16#2332 -

16#1B5C erreur de liaison SubNum/SubNumEcho 16#8A08 dfini comme E_EFB_USER_ERROR_1 16#2332 -

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

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F T

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

Valeur d'erreur (format hexadcimal)

Description de l'erreur

MMF_JOG MMF_JOG MMF_JOG

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

MMF_USUB BAD_REVISION MMF_USUB 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.

35006145 05 novembre 2006

681

Codes et valeurs d'erreur des EFB

Tableaux des codes d'erreur pour la bibliothque d'obsolescences


Introduction Les tableaux prsents dans cette section rpertorient les codes et les valeurs d'erreur gnrs pour les EFB de la bibliothque d'obsolescences.

682

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

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

DELAY INTEGRATOR1 INTEGRATOR1 INTEGRATOR1

E_ERR_DEN E_ERR_DEN E_ERR_IB_MAX_MIN FP_ERROR

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

LIMV LIMV LIMV

E_ERR_DEN

-30 152 -30 101 -

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

PI1 PI1 PI1

E_ERR_DEN E_ERR_PI_MAX_MIN FP_ERROR

F F F

-30 152 -30 103 -

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

-30 152 -30 104

16#8A38 Nombre virgule flottante incorrect 16#8A68 YMAX < YMIN

35006145 05 novembre 2006

683

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

Description de l'erreur

PID1

FP_ERROR

Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

PIDP1 PIDP1 PIDP1

E_ERR_DEN E_ERR_PID_MAX_MIN FP_ERROR

F F F

-30 152 -30 104 -

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

-30 152 30 101 30 102 30 103 -30 105 -

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

THREEPOINT_CON1 THREEPOINT_CON1 THREEPOINT_CON1 THREEPOINT_CON1

E_ERR_DEN W_WARN_ZDR_XRR W_WARN_ZDR_T1T2 FP_ERROR

F F F F

-30 152 30 105 30 104 -

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

THREEPOINT_CON1 TWOPOINT_CON1 TWOPOINT_CON1

E_ERR_ZDR_HYS E_ERR_DEN W_WARN_ZDR_XRR

F F F

-30 106 -30 152 30 105

16#8A66 2 * |UZ| < |HYS| 16#8A38 Nombre virgule flottante incorrect 16#7599 DR : XRR < -100 ou XRR > 100

684

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F F

Valeur d'erreur (format dcimal) 30 104 -

Valeur d'erreur (format hexadcimal)

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

16#8A66 2 * |UZ| < |HYS|

35006145 05 novembre 2006

685

Codes et valeurs d'erreur des EFB

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

ALIM ALIM ALIM ALIM

E_ERR_DEN WAF_AB2_VMAX WAF_AB2_BMAX FP_ERROR

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

-30 152 -30 110 -30 104 -30 109 -

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

DEADTIME DERIV DERIV

E_ERR_DEN E_ERR_DEN FP_ERROR

F F F

-30 152 -30 152 -

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

FGEN FGEN FGEN FGEN FGEN FGEN FGEN

E_ERR_DEN WAF_SIG_TV_MAX WAF_SIG_TH_MAX WAF_SIG_TA_MAX WAF_SIG_T1_MIN WAF_SIG_FKT FP_ERROR

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

INTEG INTEG INTEG

E_ERR_DEN E_ERR_IB_MAX_MIN FP_ERROR

F F F

-30 152 -30 102 -

16#8A38 Nombre virgule flottante incorrect 16#8A6A YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

686

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F F

Valeur d'erreur (format dcimal) -30 152 -

Valeur d'erreur (format hexadcimal)

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

PCON2 PCON2 PCON2 PCON2

E_ERR_DEN W_WARN_ZDR_XRR W_WARN_ZDR_T1T2 FP_ERROR

F T T F

-30 152 30 105 30 104 -

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

PCON2 PCON3 PCON3 PCON3 PCON3

E_ERR_ZDR_HYS E_ERR_DEN W_WARN_ZDR_XRR W_WARN_ZDR_T1T2 FP_ERROR

F F T T F

-30 106 -30 152 30 105 30 104 -

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

PCON3 PD_OR_PI PD_OR_PI PD_OR_PI

E_ERR_ZDR_HYS E_ERR_DEN WAF_PDPI_OG_UG FP_ERROR

F F F F

-30 106 -30 152 -30 103 -

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

-30 115 -30 114

16#8A5D t_max <= t_min 16#8A69 |pos_up_x| > |pos_lo_x| ou |neg_up_x| > |neg_lo_x| 687

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

Description de l'erreur

PDM

FP_ERROR

Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

PI PI PI

E_ERR_DEN E_ERR_PI_MAX_MIN FP_ERROR

F F F

-30 152 -30 103 -

16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

PID PID PID

E_ERR_DEN E_ERR_PID_MAX_MIN FP_ERROR

F F F

-30 152 -30 104 -

16#8A38 Nombre virgule flottante incorrect 16#8A68 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

PID_P PID_P PID_P

E_ERR_DEN E_ERR_PID_MAX_MIN FP_ERROR

F F F

-30 152 -30 104 -

16#8A38 Nombre virgule flottante incorrect 16#8A68 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

PIP PIP PIP

E_ERR_DEN E_ERR_PI_MAX_MIN FP_ERROR

F F F

-30 152 -30 103 -

16#8A38 Nombre virgule flottante incorrect 16#8A69 YMAX < YMIN Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

PPI PPI PPI

E_ERR_DEN E_ERR_PI_MAX_MIN FP_ERROR

F F F

-30 152 -30 103 -

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

16#8A5F t_min < t_max

688

35006145 05 novembre 2006

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -

Valeur d'erreur (format hexadcimal) -

Description de l'erreur

QPWM

FP_ERROR

Voir tableau des Erreurs courantes relatives aux valeurs en virgule flottante, p. 692

SCON3 SCON3 SCON3 SCON3 SCON3 SCON3

E_ERR_DEN W_WARN_DSR_TN W_WARN_DSR_TSN W_WARN_DSR_KP E_ERR_DSR_HYS FP_ERROR

F T T T F F

-30 152 30 101 30 102 30 103 -30 105 -

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

VLIM VLIM VLIM

E_ERR_DEN

-30 152 -30 101 -

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

35006145 05 novembre 2006

689

Codes et valeurs d'erreur des EFB

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

Codes et valeurs d'erreur des EFB

Nom EFB

Code d'erreur

Etat ENO en cas d'erreur F

Valeur d'erreur (format dcimal) -30 205

Valeur d'erreur (format hexadcimal)

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

IEC_BMDI IEC_BMDI IEC_BMDI IEC_BMDI

E_EFB_USER_ERROR_7 E_EFB_USER_ERROR_8 E_EFB_USER_ERROR_9

F F F

-30 206 -30 207 -30 208 -30 209

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

-30 211 -30 212

LIFO PUT_4X MUX_DINTARR _125 SET_BIT

E_INPUT_VALUE_OUT_ OF_RANGE E_INPUT_VALUE_OUT_ OF_RANGE E_SELECTOR_OUT_OF_ RANGE E_INPUT_VALUE_OUT_ OF_RANGE

F F F F

-30 183 -30 183 -30 175 -30 183

35006145 05 novembre 2006

691

Codes et valeurs d'erreur des EFB

Erreurs courantes relatives aux vale