Vous êtes sur la page 1sur 848

Automate programmable S7- 1200

___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________
___________________

SIMATIC
S7
Automate programmable S7-1200
Manuel systme


11/2011
A5E02486682-05
Avant-propos

Prsentation du produit

1
Logiciel de programmation
STEP 7

2
Installation

3
Concepts concernant les
automates programmables

4
Configuration des appareils

5
Concepts de programmation

6
Instructions de base

7
Instructions avances

8
Instructions technologiques

9
Communication

10
Serveur Web

11
Processeur de
communication

12
Communication TeleService
(courrier lectronique SMTP)

13
Outils en ligne et de
diagnostic

14
Caractristiques techniques

A
Calcul d'un bilan de
consommation

B
Numros de rfrence

C


Mentions lgales

Mentions lgales
Signaltique d'avertissement
Ce manuel donne des consignes que vous devez respecter pour votre propre scurit et pour viter des
dommages matriels. Les avertissements servant votre scurit personnelle sont accompagns d'un triangle de
danger, les avertissements concernant uniquement des dommages matriels sont dpourvus de ce triangle. Les
avertissements sont reprsents ci-aprs par ordre dcroissant de niveau de risque.
DANGER
signifie que la non-application des mesures de scurit appropries entrane la mort ou des blessures graves.
ATTENTION
signifie que la non-application des mesures de scurit appropries peut entraner la mort ou des blessures
graves.
PRUDENCE
accompagn dun triangle de danger, signifie que la non-application des mesures de scurit appropries peut
entraner des blessures lgres.
PRUDENCE
non accompagn dun triangle de danger, signifie que la non-application des mesures de scurit appropries
peut entraner un dommage matriel.
IMPORTANT
signifie que le non-respect de l'avertissement correspondant peut entraner l'apparition d'un vnement ou d'un
tat indsirable.
En prsence de plusieurs niveaux de risque, c'est toujours l'avertissement correspondant au niveau le plus lev
qui est reproduit. Si un avertissement avec triangle de danger prvient des risques de dommages corporels, le
mme avertissement peut aussi contenir un avis de mise en garde contre des dommages matriels.
Personnes qualifies
Lappareil/le systme dcrit dans cette documentation ne doit tre manipul que par du personnel qualifi pour
chaque tche spcifique. La documentation relative cette tche doit tre observe, en particulier les consignes
de scurit et avertissements. Les personnes qualifies sont, en raison de leur formation et de leur exprience,
en mesure de reconnatre les risques lis au maniement de ce produit / systme et de les viter.
Utilisation des produits Siemens conforme leur destination
Tenez compte des points suivants:
ATTENTION
Les produits Siemens ne doivent tre utiliss que pour les cas d'application prvus dans le catalogue et dans la
documentation technique correspondante. S'ils sont utiliss en liaison avec des produits et composants d'autres
marques, ceux-ci doivent tre recommands ou agrs par Siemens. Le fonctionnement correct et sr des
produits suppose un transport, un entreposage, une mise en place, un montage, une mise en service, une
utilisation et une maintenance dans les rgles de l'art. Il faut respecter les conditions d'environnement
admissibles ainsi que les indications dans les documentations affrentes.
Marques de fabrique
Toutes les dsignations repres par sont des marques dposes de Siemens AG. Les autres dsignations
dans ce document peuvent tre des marques dont l'utilisation par des tiers leurs propres fins peut enfreindre les
droits de leurs propritaires respectifs.
Exclusion de responsabilit
Nous avons vrifi la conformit du contenu du prsent document avec le matriel et le logiciel qui y sont dcrits.
Ne pouvant toutefois exclure toute divergence, nous ne pouvons pas nous porter garants de la conformit
intgrale. Si l'usage de ce manuel devait rvler des erreurs, nous en tiendrons compte et apporterons les
corrections ncessaires ds la prochaine dition.

Siemens AG
Industry Sector
Postfach 48 48
90026 NRNBERG
ALLEMAGNE
Numro de rfrence du document: 6ES7298-8FA30-8CH0
11/2011 Sous rserve de modifications techniques
Copyright Siemens AG 2011.
Tous droits rservs

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 3
Avant-propos
Objet du manuel
La famille S7-1200 est constitue d'automates programmables (API) utilisables dans des
applications d'automatisation varies. Sa forme compacte, son faible prix et son important
jeu d'instructions en font une solution idale pour la commande d'applications trs varies.
En outre, les modles S7-1200 ainsi que l'outil de programmation se basant sur Windows
vous offrent la souplesse ncessaire pour rsoudre vos problmes d'automatisation.
Ce manuel qui fournit des informations sur l'installation et la programmation des automates
S7-1200 est conu pour des ingnieurs, des programmeurs, des installateurs et des
lectriciens ayant une connaissance gnrale des automates programmables.
Connaissances fondamentales requises
Pour comprendre ce manuel, vous devez avoir des connaissances gnrales sur
l'automatisation et les automates programmables.
Domaine de validit
Ce manuel dcrit les produits suivants :
STEP 7 V11 Basic et Professional
Microprogramme de la CPU S7-1200 version V2.2
Vous trouverez la liste complte des produits S7-1200 dcrits dans ce manuel dans les
caractristiques techniques (Page 705).
Homologation, marquage CE, C-Tick et autres normes
Reportez-vous aux caractristiques techniques (Page 705) pour plus d'informations ce
sujet.
Service et assistance
En complment de notre documentation, nous proposons notre expertise technique sur
Internet via le site Web du service client (http://www.siemens.com/automation/support-
request).
Adressez-vous votre agence Siemens si certaines de vos questions techniques restent
sans rponse, si vous voulez connatre les offres de formation ou si vous dsirez
commander des produits S7. Comme ce personnel est techniquement form et a des
connaissances trs pointues sur vos activits, vos processus et vos industries, ainsi que sur
les diffrents produits Siemens que vous utilisez, il peut apporter les rponses les plus
rapides et les plus efficaces possibles tout problme que vous pourriez rencontrer.
Avant-propos

Automate programmable S7-1200
4 Manuel systme, 11/2011, A5E02486682-05
Documentation et information
Le S7-1200 et STEP 7 proposent une grande varit de documents et autres ressources
contenant les informations techniques dont vous avez besoin.
Le manuel systme du S7-1200 fournit des informations spcifiques sur le
fonctionnement, la programmation et les caractristiques de toute la gamme du S7-1200.
En plus du manuel systme, le livret Easy Book du S7-1200 donne une vue d'ensemble
plus gnrale des possibilits offertes par la gamme S7-1200.
Le manuel systme et l'Easy Book sont disponibles en formats lectronique (PDF) et
manuscrit. Les manuels lectroniques peuvent tre tlchargs depuis le site web du
service client et se trouvent galement sur le disque qui accompagne chaque CPU S7-
1200.
Le systme d'information en ligne du STEP 7 offre un accs immdiat aux informations
conceptuelles et aux instructions spcifiques qui dcrivent le fonctionnement et les
fonctionnalits du progiciel de programmation et le fonctionnement basique des CPU
SIMATIC.
My Documentation Manager permet d'accder aux versions lectroniques (PDF) de
l'ensemble de la documentation SIMATIC, y compris le manuel systme, l'Easy Book et
le systme d'informations du STEP 7. Avec My Documentation Manager, vous pouvez
rcuprer des sujets depuis divers documents pour crer votre propre manuel client.
Le portail d'entre du service client (http://support.automation.siemens.com) affiche un
lien vers My Documentation Manager dans mySupport.
Le site Web du service client fournit galement des podcasts, FAQ et autres documents
utiles concernant le S7-1200 et STEP 7. Les podcasts utilisent de courtes vidos
ducatives qui se concentrent sur les caractristiques ou scnarios spcifiques afin de
dmontrer les interactions, la commodit et l'efficacit offertes par STEP 7. Visitez les
sites Web suivants pour accder la collection de podcasts :
Page Web du STEP 7 Basic (http://www.automation.siemens.com/mcms/simatic-
controller-software/en/step7/step7-basic/Pages/Default.aspx)
Page Web du STEP 7 Professional
(http://www.automation.siemens.com/mcms/simatic-controller-
software/en/step7/step7-professional/Pages/Default.aspx)
Vous pouvez galement suivre ou rejoindre des discussions sur les produits sur le forum
technique Service & Support
(https://www.automation.siemens.com/WW/forum/guests/Conferences.aspx?Language=e
n&siteid=csius&treeLang=en&groupid=4000002&extranet=standard&viewreg=WW&nodei
d0=34612486). Ces forums vous permettent de dialoguer avec diffrents experts
produits.
Forum pour le S7-1200
(https://www.automation.siemens.com/WW/forum/guests/Conference.aspx?SortField=
LastPostDate&SortOrder=Descending&ForumID=258&Language=en&onlyInternet=Fa
lse)
Forum pour STEP 7 Basic
(https://www.automation.siemens.com/WW/forum/guests/Conference.aspx?SortField=
LastPostDate&SortOrder=Descending&ForumID=265&Language=en&onlyInternet=Fa
lse)

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 5
Sommaire

Avant-propos ............................................................................................................................................. 3
1 Prsentation du produit............................................................................................................................ 17
1.1 Introduction l'automate S7-1200...............................................................................................17
1.2 Possibilits d'extension de la CPU ..............................................................................................20
1.3 Modules S7-1200.........................................................................................................................22
1.4 Nouvelles caractristiques du S7-1200 et de STEP 7 V11 .........................................................23
1.5 Tableaux IHM basiques ...............................................................................................................26
2 Logiciel de programmation STEP 7 ......................................................................................................... 29
2.1 Besoins du systme.....................................................................................................................29
2.2 Diffrentes vues pour faciliter votre travail...................................................................................30
2.3 Simplicit des outils .....................................................................................................................31
2.3.1 Insertion d'instructions dans votre programme utilisateur ...........................................................31
2.3.2 Accs aux instructions depuis la barre d'outils "Favoris".............................................................31
2.3.3 Cration d'une quation complexe avec une instruction simple..................................................32
2.3.4 Ajout d'entres ou de sorties une instruction CONT ou LOG...................................................34
2.3.5 Instructions extensibles................................................................................................................34
2.3.6 Slection d'une version d'une instruction.....................................................................................35
2.3.7 Modification de l'apparence et de la configuration de STEP 7....................................................36
2.3.8 Glisser-dplacer entre les diteurs ..............................................................................................36
2.3.9 Changement de l'tat de fonctionnement de la CPU...................................................................37
2.3.10 Enregistrement et restauration de l'tat d'un bloc........................................................................37
2.3.11 Modification du type d'appel pour un DB.....................................................................................38
2.3.12 Dconnexion temporaire d'appareils d'un rseau........................................................................39
2.3.13 Dsenfichage virtuel d'appareils de la configuration ...................................................................40
3 Installation ............................................................................................................................................... 41
3.1 Conseils pour l'installation d'appareils S7-1200 ..........................................................................41
3.2 Bilan de consommation................................................................................................................43
3.3 Procdures d'installation et de dsinstallation.............................................................................45
3.3.1 Dimensions de montage pour les appareils S7-1200..................................................................45
3.3.2 Installation et dsinstallation de la CPU ......................................................................................47
3.3.3 Installation et dsinstallation d'un SB ou d'un CB........................................................................49
3.3.4 Installation et dsinstallation d'un SM..........................................................................................51
3.3.5 Installation et dsinstallation d'un CM ou d'un CP.......................................................................53
3.3.6 Dmontage et remontage du bornier de connexion S7-1200......................................................54
3.3.7 Installation et dsinstallation du cble d'extension......................................................................55
3.3.8 Adaptateur TS Adapter (TeleService)..........................................................................................57
3.3.8.1 Connexion de l'adaptateur TeleService.......................................................................................57
3.3.8.2 Installation de la carte SIM...........................................................................................................58
3.3.8.3 Installation de l'ensemble adaptateur TeleService ......................................................................60
Sommaire

Automate programmable S7-1200
6 Manuel systme, 11/2011, A5E02486682-05
3.3.8.4 Montage mural de l'adaptateur TS.............................................................................................. 60
3.4 Conseils de cblage.................................................................................................................... 61
4 Concepts concernant les automates programmables .............................................................................. 67
4.1 Excution du programme utilisateur ........................................................................................... 67
4.1.1 Etats de fonctionnement de la CPU............................................................................................ 69
4.1.2 Traitement du cycle l'tat MARCHE......................................................................................... 72
4.1.3 Blocs d'organisation (OB) ........................................................................................................... 73
4.1.4 Priorits d'excution et mise en file d'attente des vnements .................................................. 75
4.1.5 Surveillance du temps de cycle .................................................................................................. 81
4.1.6 Mmoire de la CPU..................................................................................................................... 83
4.1.6.1 Mmento systme et mmento de cadence............................................................................... 86
4.1.6.2 Configuration des sorties lors d'un passage de MARCHE ARRET......................................... 88
4.2 Stockage des donnes, zones de mmoire, E/S et adressage.................................................. 89
4.2.1 Accs aux donnes du S7-1200................................................................................................. 89
4.3 Traitement des valeurs analogiques........................................................................................... 94
4.4 Types de donnes....................................................................................................................... 95
4.4.1 Types de donnes Bool, Byte, Word et DWord.......................................................................... 96
4.4.2 Types de donnes entiers........................................................................................................... 97
4.4.3 Types de donnes rels virgule flottante ................................................................................. 97
4.4.4 Types de donnes "date et heure".............................................................................................. 98
4.4.5 Type de donnes "structure de donnes"................................................................................. 102
4.4.6 Type de donnes API................................................................................................................ 103
4.4.7 Types de donnes "pointeur" .................................................................................................... 103
4.4.7.1 Type de donnes Pointer .......................................................................................................... 104
4.4.7.2 Type de donnes Any ............................................................................................................... 105
4.4.7.3 Type de donnes Variant .......................................................................................................... 106
4.4.8 Accs une "tranche" d'un type de donnes de variable......................................................... 107
4.4.9 Accs une variable par un type de donnes ajout AT ......................................................... 108
4.5 Utilisation d'une carte mmoire................................................................................................. 110
4.5.1 Insertion d'une carte mmoire dans la CPU............................................................................. 111
4.5.2 Configuration des paramtres de mise en route de la CPU avant copie du projet dans la
carte mmoire ........................................................................................................................... 113
4.5.3 Utilisation de la carte mmoire en tant que carte "transfert"..................................................... 113
4.5.4 Utilisation de la carte mmoire en tant que carte "programme" ............................................... 115
4.6 Rcupration en cas d'oubli du mot de passe.......................................................................... 118
5 Configuration des appareils ................................................................................................................... 119
5.1 Insertion d'une CPU.................................................................................................................. 120
5.2 Dtection de la configuration d'une CPU non spcifie............................................................ 121
5.3 Ajout de modules la configuration.......................................................................................... 122
5.4 Configuration du fonctionnement de la CPU............................................................................. 123
5.5 Configuration des paramtres des modules ............................................................................. 125
5.6 Configuration de la CPU pour la communication...................................................................... 126
5.6.1 Cration d'une liaison rseau.................................................................................................... 126
5.6.2 Configuration du routage local/partenaire................................................................................. 127
5.6.3 Paramtres pour la liaison PROFINET..................................................................................... 129
Sommaire

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 7
5.6.4 Affectation d'adresses IP (Internet Protocol) .............................................................................132
5.6.4.1 Affectation d'adresses IP des consoles de programmation et des dispositifs rseau............132
5.6.4.2 Vrification de l'adresse IP de votre console de programmation ..............................................134
5.6.4.3 Affectation d'une adresse IP une CPU en ligne......................................................................135
5.6.4.4 Configuration d'une adresse IP pour une CPU dans votre projet..............................................136
5.6.5 Test du rseau PROFINET........................................................................................................139
5.6.6 Localisation de l'adresse Ethernet (MAC) sur la CPU...............................................................140
5.6.7 Configuration de la synchronisation via le protocole NTP.........................................................141
5.6.8 Temps de mise en route, affectation de nom et d'adresse pour un appareil PROFINET .........142
6 Concepts de programmation.................................................................................................................. 145
6.1 Principes de conception d'un systme d'automatisation ...........................................................145
6.2 Organisation de votre programme utilisateur.............................................................................146
6.3 Utilisation de blocs pour structurer votre programme................................................................148
6.3.1 Bloc d'organisation (OB) ............................................................................................................149
6.3.2 Fonction (FC) .............................................................................................................................150
6.3.3 Bloc fonctionnel (FB)..................................................................................................................151
6.3.4 Bloc de donnes (DB)................................................................................................................152
6.4 Comprendre le concept de cohrence des donnes.................................................................153
6.5 Langage de programmation.......................................................................................................155
6.5.1 Schma contacts (CONT).......................................................................................................155
6.5.2 Logigramme (LOG) ....................................................................................................................156
6.5.3 SCL ............................................................................................................................................156
6.5.4 EN et ENO pour CONT, LOG et SCL........................................................................................163
6.6 Protection...................................................................................................................................164
6.6.1 Protection d'accs pour la CPU.................................................................................................164
6.6.2 Protection du savoir-faire...........................................................................................................166
6.6.3 Protection contre la copie ..........................................................................................................167
6.7 Chargement d'lments de votre programme dans la CPU......................................................168
6.8 Chargement partir de la CPU..................................................................................................168
6.8.1 Copie des lments du projet ....................................................................................................168
6.8.2 Utilisation de la fonction de comparaison ..................................................................................170
6.9 Dbogage et test du programme...............................................................................................170
6.9.1 Visualisation et forage de donnes dans la CPU.....................................................................170
6.9.2 Tables de visualisation et tables de forage permanent ...........................................................171
6.9.3 Affichage de l'usage des rfrences croises ...........................................................................171
6.9.4 Structure d'appel permettant de constater la hirarchie d'appel ...............................................172
7 Instructions de base............................................................................................................................... 175
7.1 Instructions logiques sur bits......................................................................................................175
7.1.1 Contacts et bobines ...................................................................................................................175
7.1.2 Instructions Mise 1 et Mise 0 ...............................................................................................178
7.1.3 Instructions Front montant et Front descendant ........................................................................180
7.2 Temporisations...........................................................................................................................182
7.3 Compteurs..................................................................................................................................191
7.4 Comparaison..............................................................................................................................198
7.4.1 Comparaison..............................................................................................................................198
Sommaire

Automate programmable S7-1200
8 Manuel systme, 11/2011, A5E02486682-05
7.4.2 Instructions Valeur dans la plage et Valeur en dehors de la plage .......................................... 199
7.4.3 Instructions Contrler validit et Contrler invalidit................................................................. 199
7.5 Fonctions mathmatiques......................................................................................................... 201
7.5.1 Instruction Calculer ................................................................................................................... 201
7.5.2 Instructions Addition, Soustraction, Multiplication et Division................................................... 202
7.5.3 Instruction Modulo..................................................................................................................... 203
7.5.4 Instruction Ngation .................................................................................................................. 204
7.5.5 Instructions Incrmenter et Dcrmenter.................................................................................. 205
7.5.6 Instruction Valeur absolue......................................................................................................... 205
7.5.7 Instructions Calculer le minimum et Calculer le maximum....................................................... 206
7.5.8 Instruction Dfinir une limite...................................................................................................... 207
7.5.9 Instructions mathmatiques virgule flottante.......................................................................... 208
7.6 Transfert .................................................................................................................................... 210
7.6.1 Instructions Copier valeur et Copier zone................................................................................. 210
7.6.2 Instructions FieldRead et FieldWrite......................................................................................... 212
7.6.3 Instructions Complter .............................................................................................................. 214
7.6.4 Instruction Permutation ............................................................................................................. 216
7.7 Convertir.................................................................................................................................... 217
7.7.1 Instruction CONV...................................................................................................................... 217
7.7.2 Instructions de conversion pour SCL........................................................................................ 218
7.7.3 Instructions Arrondir et Former un nombre entier ..................................................................... 221
7.7.4 Instructions Arrondir l'entier suprieur et Arrondir l'entier infrieur..................................... 222
7.7.5 Instructions Mise l'chelle et Normaliser................................................................................ 223
7.8 Gestion du programme ............................................................................................................. 226
7.8.1 Prsentation des instructions de contrle SCL......................................................................... 226
7.8.2 Instruction IF-THEN .................................................................................................................. 227
7.8.3 Instruction CASE....................................................................................................................... 228
7.8.4 Instruction FOR......................................................................................................................... 229
7.8.5 Instruction WHILE-DO............................................................................................................... 230
7.8.6 Instruction REPEAT-UNTIL....................................................................................................... 231
7.8.7 Instruction CONTINUE.............................................................................................................. 232
7.8.8 Instruction EXIT......................................................................................................................... 233
7.8.9 Instruction GOTO...................................................................................................................... 233
7.8.10 Instruction RETURN.................................................................................................................. 234
7.8.11 Instructions Saut et Repre de saut.......................................................................................... 234
7.8.12 Instruction JMP_LIST................................................................................................................ 235
7.8.13 Instruction SWITCH .................................................................................................................. 236
7.8.14 Instruction de gestion d'excution RET..................................................................................... 238
7.8.15 Instruction Redclencher le temps de surveillance du cycle .................................................... 239
7.8.16 Instruction Commuter en STOP................................................................................................ 240
7.8.17 Instructions de traitement d'erreur ............................................................................................ 240
7.9 Oprations logiques sur mots ................................................................................................... 244
7.9.1 Instructions AND, OR et XOR................................................................................................... 244
7.9.2 Instruction Inverser.................................................................................................................... 245
7.9.3 Instructions Encoder et Dcoder............................................................................................... 245
7.9.4 Instructions Slectionner, Multiplexeur et Dmultiplexeur ........................................................ 247
7.10 Dcalage et rotation.................................................................................................................. 250
7.10.1 Instructions de dcalage ........................................................................................................... 250
7.10.2 Instructions de rotation.............................................................................................................. 251
Sommaire

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 9
8 Instructions avances............................................................................................................................ 253
8.1 Date et heure .............................................................................................................................253
8.1.1 Instructions sur la date et l'heure...............................................................................................253
8.1.2 Rgler et lire l'horloge systme..................................................................................................255
8.1.3 Instruction Compteur d'heures de fonctionnement ....................................................................257
8.1.4 Instruction SET_TIMEZONE......................................................................................................259
8.2 Chanes de caractres et caractres.........................................................................................260
8.2.1 Prsentation des donnes chanes de caractres (type String)................................................260
8.2.2 Instruction S_MOVE...................................................................................................................261
8.2.3 Instructions de conversion de chane ........................................................................................261
8.2.3.1 Conversions de chane en valeur et de valeur en chane .........................................................261
8.2.3.2 Conversions de chane en caractres et de caractres en chane ...........................................270
8.2.3.3 Conversions de ASCII en hexadcimal et de hexadcimal en ASCII .......................................272
8.2.4 Instructions sur chane...............................................................................................................274
8.2.4.1 LEN............................................................................................................................................274
8.2.4.2 CONCAT....................................................................................................................................275
8.2.4.3 LEFT, RIGHT et MID .................................................................................................................276
8.2.4.4 DELETE.....................................................................................................................................277
8.2.4.5 INSERT......................................................................................................................................278
8.2.4.6 REPLACE ..................................................................................................................................279
8.2.4.7 FIND...........................................................................................................................................280
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i) .....................................................282
8.3.1 RDREC et WRREC....................................................................................................................282
8.3.2 RALRM.......................................................................................................................................285
8.3.3 Paramtre STATUS pour RDREC, WRREC et RALRM ...........................................................287
8.3.4 DPRD_DAT et DPWR_DAT.......................................................................................................291
8.3.5 DPNRM_DG...............................................................................................................................294
8.4 Alarmes......................................................................................................................................296
8.4.1 Instructions ATTACH et DETACH.............................................................................................296
8.4.2 Alarmes cycliques ......................................................................................................................300
8.4.2.1 SET_CINT (Rgler alarme cyclique)..........................................................................................300
8.4.2.2 QRY_CINT (Interroger alarme cyclique)....................................................................................302
8.4.3 Alarmes temporises .................................................................................................................303
8.4.4 Alarmes asynchrones ................................................................................................................305
8.5 Diagnostic (PROFINET ou PROFIBUS) ....................................................................................306
8.5.1 Instruction LED...........................................................................................................................306
8.5.2 Instruction DeviceStates ............................................................................................................307
8.5.3 Instruction ModuleStates ...........................................................................................................308
8.5.4 Instruction GET_DIAG ...............................................................................................................309
8.6 Impulsion....................................................................................................................................311
8.6.1 Instruction CTRL_PWM.............................................................................................................311
8.6.2 Fonctionnement des sorties d'impulsions..................................................................................313
8.6.3 Configuration d'une voie d'impulsion pour PWM.......................................................................315
8.7 Consignation de donnes ..........................................................................................................316
8.7.1 Structure des enregistrements de journaux...............................................................................316
8.7.2 Instructions de gestion des journaux de donnes .....................................................................318
8.7.2.1 DataLogCreate...........................................................................................................................318
8.7.2.2 DataLogOpen.............................................................................................................................321
8.7.2.3 DataLogClose ............................................................................................................................323
Sommaire

Automate programmable S7-1200
10 Manuel systme, 11/2011, A5E02486682-05
8.7.2.4 DataLogWrite ............................................................................................................................ 324
8.7.2.5 DataLogNewFile........................................................................................................................ 325
8.7.3 Utilisation des journaux de donnes......................................................................................... 327
8.7.4 Limites de taille des fichiers journaux ....................................................................................... 329
8.7.5 Exemple de programme pour les journaux de donnes........................................................... 331
8.8 Gestion des blocs de donnes.................................................................................................. 336
8.8.1 READ_DBL, WRIT_DBL (Lecture ou criture dans un DB en mmoire de chargement) ........ 336
8.9 Codes d'erreur communs pour les instructions avances ........................................................ 339
9 Instructions technologiques ................................................................................................................... 341
9.1 Compteur rapide ....................................................................................................................... 341
9.1.1 Fonctionnement du compteur rapide ........................................................................................ 343
9.1.2 Configuration du HSC............................................................................................................... 350
9.2 Rgulation PID.......................................................................................................................... 351
9.2.1 Insertion de l'instruction PID et de l'objet technologique .......................................................... 352
9.2.2 Instruction PID_Compact .......................................................................................................... 354
9.2.3 Instruction PID_3STEP ............................................................................................................. 358
9.2.4 Configuration du rgulateur PID ............................................................................................... 365
9.2.5 Mise en service du rgulateur PID............................................................................................ 367
9.3 Commande de mouvement de base......................................................................................... 368
9.3.1 Configuration de l'axe ............................................................................................................... 371
9.3.2 Instructions de commande de mouvement (Motion Control) .................................................... 374
9.3.2.1 Instruction MC_Power ............................................................................................................... 374
9.3.2.2 Instruction MC_Reset................................................................................................................ 377
9.3.2.3 Instruction MC_Home................................................................................................................ 378
9.3.2.4 Instruction MC_Halt................................................................................................................... 381
9.3.2.5 Instruction MC_MoveAbsolute .................................................................................................. 383
9.3.2.6 Instruction MC_MoveRelative ................................................................................................... 385
9.3.2.7 Instruction MC_MoveVelocity.................................................................................................... 387
9.3.2.8 Instruction MC_MoveJog........................................................................................................... 390
9.3.2.9 Instruction MC_CommandTable ............................................................................................... 392
9.3.2.10 MC_ChangeDynamic ................................................................................................................ 395
9.3.3 Fonctionnement de la commande de mouvement pour le S7-1200......................................... 397
9.3.3.1 Sorties de la CPU pour la commande de mouvement.............................................................. 397
9.3.3.2 Fins de course matriels et logiciels pour la commande de mouvement ................................. 398
9.3.3.3 Rfrencement.......................................................................................................................... 401
9.3.3.4 Limitation d'-coup.................................................................................................................... 406
9.3.4 Mise en service ......................................................................................................................... 407
9.3.5 Suivi des commandes actives................................................................................................... 410
9.3.5.1 Suivi des instructions MC avec paramtre de sortie "Done" .................................................... 410
9.3.5.2 Suivi de l'instruction MC_Velocity ............................................................................................. 414
9.3.5.3 Suivi de l'instruction MC_MoveJog ........................................................................................... 418
10 Communication...................................................................................................................................... 423
10.1 Nombre de liaisons de communication asynchrones prises en charge.................................... 424
10.2 PROFINET................................................................................................................................ 424
10.2.1 Liaison appareil local/partenaire ............................................................................................... 424
10.2.2 Communication ouverte (Open User Communication) ............................................................. 426
10.2.2.1 ID de liaison pour les instructions PROFINET.......................................................................... 426
10.2.2.2 Protocoles ................................................................................................................................. 429
Sommaire

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 11
10.2.2.3 Mode ad hoc ..............................................................................................................................430
10.2.2.4 TCP et ISO sur TCP ..................................................................................................................431
10.2.2.5 UDP............................................................................................................................................446
10.2.2.6 T_CONFIG.................................................................................................................................451
10.2.2.7 Paramtres communs des instructions......................................................................................458
10.2.3 Communication avec une console de programmation ..............................................................460
10.2.3.1 Etablissement de la liaison de communication matrielle .........................................................460
10.2.3.2 Configuration des appareils .......................................................................................................461
10.2.3.3 Affectation d'adresses IP (Internet Protocol) .............................................................................462
10.2.3.4 Test de votre rseau PROFINET...............................................................................................462
10.2.4 Communication IHM vers automate ..........................................................................................462
10.2.4.1 Configuration des liaisons rseau logiques entre deux appareils .............................................463
10.2.5 Communication API-API ............................................................................................................464
10.2.5.1 Configuration des liaisons rseau logiques entre deux appareils .............................................465
10.2.5.2 Configuration du routage local/partenaire entre deux appareils................................................465
10.2.5.3 Configuration des paramtres d'mission et de rception.........................................................466
10.2.6 Configuration d'une CPU et d'un priphrique PROFINET IO..................................................468
10.2.7 Diagnostic ..................................................................................................................................472
10.2.8 Instructions de priphrie dcentralise....................................................................................472
10.2.9 Oprations de diagnostic ...........................................................................................................473
10.2.10 Evnements de diagnostic d'une priphrie dcentralise .......................................................473
10.3 PROFIBUS.................................................................................................................................474
10.3.1 Modules de communication pour PROFIBUS ...........................................................................476
10.3.1.1 Connexion PROFIBUS ...........................................................................................................476
10.3.1.2 Services de communication des CM PROFIBUS......................................................................476
10.3.1.3 Autres proprits des CM PROFIBUS.......................................................................................478
10.3.1.4 Exemples de configuration pour PROFIBUS.............................................................................479
10.3.2 Configuration d'un matre et d'un esclave DP............................................................................480
10.3.2.1 Ajout du module CM 1243-5 (matre DP) et d'un esclave DP ...................................................480
10.3.2.2 Configuration des liaisons rseau logiques entre deux appareils PROFIBUS..........................480
10.3.2.3 Affectation d'adresses PROFIBUS au module CM 1243-5 et l'esclave DP............................481
10.3.3 Instructions de priphrie dcentralise....................................................................................483
10.3.4 Oprations de diagnostic ...........................................................................................................483
10.3.5 Evnements de diagnostic d'une priphrie dcentralise .......................................................483
10.4 Interface AS-i .............................................................................................................................484
10.4.1 Configuration d'un matre et d'un esclave AS-i ..........................................................................485
10.4.1.1 Ajout du module CM 1243-2 (matre AS-i) et d'un esclave AS-i................................................485
10.4.1.2 Configuration des liaisons rseau logiques entre deux appareils AS-i......................................486
10.4.1.3 Affectation d'adresses AS-i au module CM 1243-2 (matre AS-i) et aux esclaves AS-i............486
10.4.2 Echange de donnes entre le programme utilisateur et les esclaves AS-i ...............................488
10.4.2.1 Configuration d'esclaves avec STEP 7......................................................................................488
10.4.2.2 Configuration d'esclaves sans STEP 7......................................................................................490
10.4.3 Instructions de priphrie dcentralise....................................................................................491
10.4.4 Utilisation d'outils en ligne AS-i ..................................................................................................491
10.5 Communication S7.....................................................................................................................493
10.5.1 Instructions GET et PUT............................................................................................................493
10.5.2 Cration d'une liaison S7...........................................................................................................497
10.5.3 Configuration du routage local/partenaire entre deux appareils................................................497
10.5.4 Paramtrage de la liaison GET/PUT .........................................................................................498
10.5.4.1 Paramtres de la liaison ............................................................................................................498
10.5.4.2 Configuration d'une liaison S7 CPU CPU...............................................................................501
Sommaire

Automate programmable S7-1200
12 Manuel systme, 11/2011, A5E02486682-05
11 Serveur Web.......................................................................................................................................... 507
11.1 Activation du serveur Web........................................................................................................ 508
11.2 Pages Web standard................................................................................................................. 508
11.2.1 Accs aux pages Web standard depuis le PC.......................................................................... 508
11.2.2 Disposition des pages Web standard ....................................................................................... 510
11.2.3 Introduction ............................................................................................................................... 512
11.2.4 Page de dmarrage .................................................................................................................. 513
11.2.5 Identification.............................................................................................................................. 514
11.2.6 Mmoire tampon de diagnostic................................................................................................. 514
11.2.7 Informations sur les modules .................................................................................................... 515
11.2.8 Communication ......................................................................................................................... 517
11.2.9 Etat des variables...................................................................................................................... 518
11.2.10 Journaux.................................................................................................................................... 520
11.2.11 Contraintes................................................................................................................................ 523
11.2.11.1 Fonctionnalits limites lorsque JavaScript est dsactiv................................................... 523
11.2.11.2 Fonctions restreintes lorsque les cookies ne sont pas autoriss ........................................ 525
11.2.11.3 Importation du certificat de scurit Siemens...................................................................... 525
11.2.11.4 Importation de journaux en format CSV dans des versions non anglaises/amricaines
de Microsoft Excel................................................................................................................ 526
11.3 Pages Web personnalises ...................................................................................................... 527
11.3.1 Cration de pages HTML.......................................................................................................... 528
11.3.2 Commandes AWP prises en charge par le serveur Web du S7-1200 ..................................... 528
11.3.2.1 Lecture de variables.................................................................................................................. 530
11.3.2.2 Ecriture de variables ................................................................................................................. 531
11.3.2.3 Lecture de variables spciales.................................................................................................. 532
11.3.2.4 Ecriture de variables spciales ................................................................................................. 534
11.3.2.5 Utilisation d'un alias pour une rfrence de variable ................................................................ 535
11.3.2.6 Dfinition de types Enum.......................................................................................................... 536
11.3.2.7 Rfrenage de variables CPU avec un type Enum ................................................................ 537
11.3.2.8 Cration de fragments............................................................................................................... 538
11.3.2.9 Importation de fragments .......................................................................................................... 539
11.3.2.10 Combinaison de dfinitions.................................................................................................. 540
11.3.2.11 Gestion des noms de variables contenant des caractres spciaux................................... 540
11.3.3 Configuration de l'utilisation de pages Web personnalises .................................................... 542
11.3.4 Programmation de l'instruction WWW pour les pages Web personnalises............................ 544
11.3.5 Chargement des blocs de programme dans la CPU................................................................ 546
11.3.6 Accs aux pages Web personnalises depuis le PC ............................................................... 546
11.3.7 Contraintes spcifiques aux pages Web personnalises ......................................................... 546
11.3.8 Exemple de page Web personnalise ...................................................................................... 547
11.3.8.1 Page Web pour le contrle-commande d'une olienne............................................................ 547
11.3.8.2 Lecture et affichage des donnes de l'automate ...................................................................... 550
11.3.8.3 Utilisation d'un type Enum......................................................................................................... 550
11.3.8.4 Ecriture d'une entre utilisateur dans l'automate...................................................................... 551
11.3.8.5 Ecriture d'une variable spciale ................................................................................................ 552
11.3.8.6 Rfrence : listage HTML de la page Web de contrle d'olienne distance......................... 553
11.3.8.7 Configuration de l'exemple de page Web dans STEP 7........................................................... 557
11.3.9 Configuration de pages Web personnalises dans plusieurs langues..................................... 558
11.3.9.1 Cration de la structure de dossiers ......................................................................................... 559
11.3.9.2 Programmation du changement de langue............................................................................... 559
11.3.9.3 Configuration de STEP 7 pour qu'il utilise une structure de page multilingue.......................... 561
11.3.10 Commande avance de pages Web personnalises ............................................................... 562
Sommaire

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 13
12 Processeur de communication............................................................................................................... 567
12.1 Utilisation des interfaces de communication RS232 et RS485 .................................................567
12.2 Polarisation et terminaison d'un connecteur de rseau RS485.................................................568
12.3 Communication point point (PtP) ............................................................................................569
12.3.1 Instructions point point ............................................................................................................570
12.3.1.1 Paramtres communs pour les instructions point point ..........................................................570
12.3.1.2 Instruction PORT_CFG..............................................................................................................573
12.3.1.3 Instruction SEND_CFG..............................................................................................................575
12.3.1.4 Instruction RCV_CFG ................................................................................................................576
12.3.1.5 Instruction SEND_PTP...............................................................................................................581
12.3.1.6 Instruction RCV_PTP.................................................................................................................585
12.3.1.7 Instruction RCV_RST.................................................................................................................586
12.3.1.8 Instruction SGN_GET ................................................................................................................587
12.3.1.9 Instruction SGN_SET.................................................................................................................589
12.3.2 Configuration des ports de communication ...............................................................................590
12.3.2.1 Gestion du contrle de flux ........................................................................................................591
12.3.3 Configuration des paramtres d'mission et de rception.........................................................593
12.3.3.1 Configuration des paramtres d'mission..................................................................................593
12.3.3.2 Configuration des paramtres de rception...............................................................................594
12.3.4 Programmation de la communication point point....................................................................602
12.3.4.1 Architecture d'interrogation........................................................................................................603
12.3.5 Exemple : Communication point point ....................................................................................604
12.3.5.1 Configuration du module de communication .............................................................................605
12.3.5.2 Programmation du programme STEP 7 ....................................................................................607
12.3.5.3 Configuration de l'mulateur de terminal ...................................................................................608
12.3.5.4 Excution de l'exemple..............................................................................................................609
12.4 Communication USS (interface srie universelle) .....................................................................609
12.4.1 Conditions requises pour l'utilisation du protocole USS............................................................611
12.4.2 Instruction USS_DRV.................................................................................................................614
12.4.3 Instruction USS_PORT ..............................................................................................................617
12.4.4 Instruction USS_RPM................................................................................................................618
12.4.5 Instruction USS_WPM...............................................................................................................619
12.4.6 Codes d'tat USS.......................................................................................................................621
12.4.7 Informations gnrales sur la configuration d'un entranement.................................................623
12.5 Communication Modbus ............................................................................................................626
12.5.1 Prsentation de la communication Modbus RTU et TCP..........................................................626
12.5.2 Modbus TCP..............................................................................................................................629
12.5.2.1 MB_CLIENT (Modbus TCP).......................................................................................................629
12.5.2.2 MB_SERVER (Modbus TCP).....................................................................................................636
12.5.2.3 Exemple pour MB_SERVER : Liaisons TCP multiples..............................................................641
12.5.2.4 Exemple 1 pour MB_CLIENT : Plusieurs demandes avec une liaison TCP commune.............642
12.5.2.5 Exemple 2 pour MB_CLIENT : Plusieurs demandes avec des liaisons TCP diffrentes ..........643
12.5.2.6 Exemple 3 pour MB_CLIENT : Demande d'criture dans la mmoire image des sorties.........644
12.5.2.7 Exemple 4 pour MB_CLIENT : Coordination de plusieurs demandes.......................................644
12.5.3 Modbus RTU..............................................................................................................................645
12.5.3.1 MB_COMM_LOAD.....................................................................................................................646
12.5.3.2 MB_MASTER.............................................................................................................................649
12.5.3.3 MB_SLAVE ................................................................................................................................655
12.5.3.4 Exemple de programme matre Modbus RTU...........................................................................661
12.5.3.5 Exemple de programme esclave Modbus RTU.........................................................................663
Sommaire

Automate programmable S7-1200
14 Manuel systme, 11/2011, A5E02486682-05
12.6 Telecontrol et TeleService avec le CP 1242-7.......................................................................... 664
12.6.1 Connexion un rseau GSM.................................................................................................... 664
12.6.2 Application du CP 1242-7 ......................................................................................................... 665
12.6.3 Autres proprits du CP............................................................................................................ 667
12.6.4 Accessoires............................................................................................................................... 668
12.6.5 Exemples de configuration pour Telecontrol............................................................................. 669
13 Communication TeleService (courrier lectronique SMTP) ................................................................... 673
13.1 Instruction TM_Mail (Transfrer e-mail) .................................................................................... 673
14 Outils en ligne et de diagnostic.............................................................................................................. 679
14.1 DEL d'tat.................................................................................................................................. 679
14.2 Passage en ligne et connexion une CPU .............................................................................. 681
14.3 Affectation d'un nom un priphrique PROFINET IO en ligne .............................................. 682
14.4 Rglage de l'adresse IP et de l'heure ....................................................................................... 684
14.5 Restauration des rglages d'usine............................................................................................ 684
14.6 Panneau de commande CPU de la CPU en ligne.................................................................... 685
14.7 Surveillance du temps de cycle et de l'utilisation de la mmoire.............................................. 686
14.8 Affichage des vnements de diagnostic dans la CPU............................................................ 686
14.9 Comparaison de CPU hors ligne et en ligne............................................................................. 687
14.10 Visualisation et forage de valeurs dans la CPU...................................................................... 688
14.10.1 Passage en ligne pour visualiser les valeurs dans la CPU....................................................... 689
14.10.2 Affichage de l'tat dans l'diteur de programme....................................................................... 689
14.10.3 Acquisition des valeurs en ligne d'un DB pour redfinir les valeurs initiales ............................ 690
14.10.4 Utilisation d'une table de visualisation pour visualiser et forcer des valeurs dans la CPU....... 691
14.10.4.1 Utilisation d'un dclenchement lors de la visualisation ou du forage de variables API ..... 693
14.10.4.2 Dblocage des sorties l'tat ARRET................................................................................. 694
14.10.5 Forage permanent de valeurs dans la CPU............................................................................ 694
14.10.5.1 Utilisation de la table de forage permanent ....................................................................... 694
14.10.5.2 Fonctionnement de la fonction de forage permanent ........................................................ 695
14.11 Chargement dans la CPU l'tat MARCHE............................................................................. 697
14.11.1 Conditions requises pour un chargement dans la CPU l'tat MARCHE................................ 698
14.11.2 Modification du programme l'tat "Marche" ........................................................................... 699
14.11.3 Chargement de blocs slectionns........................................................................................... 700
14.11.4 Chargement d'un bloc individuel slectionn alors qu'un autre bloc prsente une erreur
de compilation........................................................................................................................... 701
14.11.5 Raction du systme en cas d'chec de l'opration de chargement........................................ 702
14.11.6 Chargement du programme dans la CPU l'tat MARCHE .................................................... 702
A Caractristiques techniques................................................................................................................... 705
A.1 Caractristiques techniques d'ordre gnral ............................................................................ 705
A.2 CPU 1211C............................................................................................................................... 711
A.2.1 Caractristiques et fonctions gnrales.................................................................................... 711
A.2.2 Entres et sorties TOR.............................................................................................................. 715
A.2.3 Entres analogiques ................................................................................................................. 716
A.2.3.1 Rponse indicielle des entres analogiques intgres de la CPU........................................... 717
A.2.3.2 Temps d'chantillonnage pour les ports analogiques intgrs de la CPU ............................... 717
Sommaire

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 15
A.2.3.3 Plages de mesure des entres analogiques pour la tension.....................................................718
A.2.4 Schmas de cblage .................................................................................................................719
A.3 CPU 1212C................................................................................................................................720
A.3.1 Caractristiques et fonctions gnrales.....................................................................................720
A.3.2 Entres et sorties TOR ..............................................................................................................724
A.3.3 Entres analogiques ..................................................................................................................726
A.3.3.1 Rponse indicielle des entres analogiques intgres de la CPU............................................726
A.3.3.2 Temps d'chantillonnage pour les ports analogiques intgrs de la CPU................................727
A.3.3.3 Plages de mesure des entres analogiques pour la tension.....................................................727
A.3.4 Schmas de cblage .................................................................................................................728
A.4 CPU 1214C................................................................................................................................729
A.4.1 Caractristiques et fonctions gnrales.....................................................................................729
A.4.2 Entres et sorties TOR ..............................................................................................................733
A.4.3 Entres analogiques ..................................................................................................................734
A.4.3.1 Rponse indicielle des entres analogiques intgres de la CPU............................................735
A.4.3.2 Temps d'chantillonnage pour les ports analogiques intgrs de la CPU................................735
A.4.3.3 Plages de mesure des entres analogiques pour la tension.....................................................736
A.4.4 Schmas de cblage de la CPU 1214C....................................................................................736
A.5 Modules d'entres-sorties TOR (SM) ........................................................................................738
A.5.1 Caractristiques des modules d'entres TOR SM 1221............................................................738
A.5.2 Caractristiques des modules 8 sorties TOR SM 1222.............................................................739
A.5.3 Caractristiques des modules 16 sorties TOR SM 1222...........................................................741
A.5.4 Caractristiques des modules d'entres/sorties TOR SM 1223 VDC.......................................744
A.5.5 Caractristiques du module d'entres/sorties TOR SM 1223 VAC...........................................747
A.6 Modules d'entres-sorties analogiques (SM).............................................................................749
A.6.1 Caractristiques des modules d'entres analogiques SM 1231................................................749
A.6.2 Caractristiques des modules de sorties analogiques SM 1232...............................................751
A.6.3 Caractristiques du module d'entres/sorties analogiques SM 1234........................................753
A.6.4 Rponse indicielle des entres analogiques .............................................................................756
A.6.5 Temps d'chantillonnage et temps d'actualisation pour les entres analogiques.....................756
A.6.6 Plages de mesure des entres analogiques pour la tension.....................................................757
A.6.7 Plages de mesures de sortie (AQ) pour tension et courant (SB et SM) ....................................757
A.7 Modules d'entres-sorties (SM) Thermocouple et RTD ............................................................758
A.7.1 SM 1231 Thermocouple.............................................................................................................758
A.7.1.1 Principe de fonctionnement des thermocouples........................................................................760
A.7.1.2 Tableaux de slection pour les SM 1231 Thermocouple ..........................................................761
A.7.2 SM 1231 RTD ............................................................................................................................763
A.7.2.1 Tableaux de slection pour les SM 1231 RTD..........................................................................766
A.8 Signal Boards (SB) TOR............................................................................................................769
A.8.1 Caractristiques des SB 1221 entres TOR, 200 kHz ..............................................................769
A.8.2 Caractristiques des SB 1222 sorties TOR, 200 kHz................................................................770
A.8.3 Caractristiques des SB 1223 entres/sorties TOR, 200 kHz...................................................773
A.8.4 Caractristiques du SB 1223 2 entres 24 VDC / 2 sorties 24 VDC.........................................775
A.9 Signal Boards (SB) analogiques................................................................................................777
A.9.1 Caractristiques du SB 1231 1 sortie analogique......................................................................777
A.9.2 Caractristiques du SB 1232 1 sortie analogique......................................................................779
A.9.3 Plages de mesure pour les entres et sorties analogiques.......................................................781
A.9.3.1 Rponse indicielle des entres analogiques .............................................................................781
A.9.3.2 Temps d'chantillonnage et temps d'actualisation pour les entres analogiques.....................781
Sommaire

Automate programmable S7-1200
16 Manuel systme, 11/2011, A5E02486682-05
A.9.3.3 Plages de mesure des entres analogiques pour la tension.................................................... 782
A.9.3.4 Plages de mesures de sortie (AQ) pour tension et courant (SB et SM) ................................... 782
A.9.4 SB Thermocouple ..................................................................................................................... 783
A.9.4.1 Caractristiques du SB 1231 1 entre analogique Thermocouple........................................... 783
A.9.4.2 Principe de fonctionnement des thermocouples....................................................................... 785
A.9.5 Signal Boards (SB) RTD........................................................................................................... 787
A.9.5.1 Caractristiques du SB 1231 1 entre analogique RTD........................................................... 787
A.9.5.2 Tableaux de slection pour le SB 1231 RTD............................................................................ 789
A.10 Interfaces de communication.................................................................................................... 792
A.10.1 PROFIBUS................................................................................................................................ 792
A.10.1.1 CM 1242-5................................................................................................................................. 792
A.10.1.2 CM 1243-5................................................................................................................................. 793
A.10.2 GPRS........................................................................................................................................ 795
A.10.2.1 CP 1242-7................................................................................................................................. 796
A.10.3 CM 1243-2 matre AS-i ............................................................................................................. 798
A.10.3.1 Donnes techniques pour l'interface AS-i master CM 1243-2.................................................. 798
A.10.3.2 Connexions lectriques de l'interface AS-i master CM 1243-2 ................................................ 799
A.10.4 RS232, RS422 et RS485 .......................................................................................................... 801
A.10.4.1 Caractristiques RS485 CB 1241............................................................................................. 801
A.10.4.2 Caractristiques du module CM 1241 RS485........................................................................... 802
A.10.4.3 Caractristiques du module CM 1241 RS232........................................................................... 804
A.10.4.4 Caractristiques du module CM 1241 RS422/485 ................................................................... 805
A.11 TeleService (TS Adapter et TS Adapter modulaire) ................................................................. 806
A.12 Cartes mmoire SIMATIC......................................................................................................... 807
A.13 Simulateurs d'entres ............................................................................................................... 807
A.14 Cble d'extension d'E/S............................................................................................................ 808
A.15 Produits connexes..................................................................................................................... 809
A.15.1 Module d'alimentation PM 1207................................................................................................ 809
A.15.2 Module commutateur compact CSM 1277................................................................................ 809
B Calcul d'un bilan de consommation ....................................................................................................... 811
C Numros de rfrence........................................................................................................................... 815
C.1 Modules CPU............................................................................................................................ 815
C.2 Modules d'entres-sorties (SM) et Signal Boards (SB) ............................................................ 815
C.3 Communication ......................................................................................................................... 816
C.4 Autres modules ......................................................................................................................... 817
C.5 Cartes mmoire......................................................................................................................... 818
C.6 Appareils IHM Basic.................................................................................................................. 818
C.7 Pices dtaches et autres matriels....................................................................................... 818
C.8 Logiciel de programmation........................................................................................................ 819
C.9 Documentation.......................................................................................................................... 819
Index...................................................................................................................................................... 821

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 17
Prsentation du produit 1
1.1 Introduction l'automate S7-1200
Le contrleur S7-1200 offre la souplesse et la puissance ncessaires pour commander une
large gamme d'appareils afin de rpondre vos besoins en matire d'automatisation. Sa
forme compacte, sa configuration souple et son important jeu d'instructions en font une
solution idale pour la commande d'applications trs varies.
La CPU combine un microprocesseur, une alimentation intgre, des circuits d'entre et de
sortie, un PROFINET intgr, des E/S rapides de commande de mouvement, ainsi que des
entres analogiques intgres dans un botier compact en vue de crer un contrleur
puissant. Une fois que vous avez charg votre programme, la CPU contient la logique
ncessaire au contrle et la commande des appareils dans votre application. La CPU
surveille les entres et modifie les sorties conformment la logique de votre programme
utilisateur, qui peut contenir des instructions boolennes, des instructions de comptage, des
instructions de temporisation, des instructions mathmatiques complexes ainsi que des
commandes pour communiquer avec d'autres appareils intelligents.
La CPU fournit un port PROFINET permettant de communiquer par le biais d'un rseau
PROFINET. Des modules supplmentaires sont disponibles pour communiquer via les
rseaux PROFIBUS, GPRS, RS485 ou RS232.


Prise d'alimentation

Logement pour carte mmoire sous le
volet suprieur

Connecteurs amovibles pour le cblage
utilisateur (derrire les volets)

DEL d'tat pour les E/S intgres

Connecteur PROFINET (sur la face
infrieure de la CPU)



94BPrsentation du produit
1.1 Introduction l'automate S7-1200
Automate programmable S7-1200
18 Manuel systme, 11/2011, A5E02486682-05
Plusieurs fonctions de scurit vous aident protger l'accs la CPU et au programme de
commande :
Chaque CPU fournit une protection par mot de passe (Page 164) qui vous permet de
configurer l'accs aux fonctions CPU.
Vous pouvez utiliser la protection du savoir-faire (Page 166) (protection "know-how") pour
masquer le code d'un bloc spcifique.
Vous pouvez utiliser la protection contre la copie (Page 167) pour lier votre programme
une carte mmoire ou une CPU spcifique.
Tableau 1- 1 Comparaison des modles de CPU
Caractristique CPU 1211C CPU 1212C CPU 1214C
Dimensions (mm) 90 x 100 x 75 90 x 100 x 75 110 x 100 x 75
de travail 25 Ko 25 Ko 50 Ko
de chargement 1 Mo 1 Mo 2 Mo
Mmoire utilisateur
rmanente 2 Ko 2 Ko 2 Ko
TOR 6 entres/4 sorties 8 entres/6 sorties 14 entres/10 sorties E/S intgres
locales
Analogiques 2 entres 2 entres 2 entres
Entres (I) 1024 octets 1024 octets 1024 octets Taille de la
mmoire image
Sorties (Q) 1024 octets 1024 octets 1024 octets
Mmentos (M) 4096 octets 4096 octets 8192 octets
Modules d'entres-sorties (SM) pour
extension
Aucun 2 8
Signal Board (SB) ou Communication
Board (CB)
1 1 1
Module de communication (CM)
(extension vers la gauche)
3 3 3
Total 3 4 6
Monophase 3 100 kHz 3 100 kHz
1 30 kHz
3 100 kHz
3 30 kHz
Compteurs
rapides
Quadrature de
phase
3 80 kHz 3 80 kHz
1 20 kHz
3 80 kHz
3 20 kHz
Sorties d'impulsions
1
2 2 2
Carte mmoire Carte mmoire SIMATIC (facultative)
Dure de conservation de l'horloge
temps rel
10 jours typ. / 6 jours minimum 40 degrs Celsius
PROFINET 1 port de communication Ethernet
Vitesse d'excution des instructions
mathmatiques sur rels
18 s/instruction
Vitesse d'excution des instructions
boolennes
0,1 s/instruction
1
Pour les modles de CPU avec sorties relais, vous devez installer un Signal Board (SB) TOR pour utiliser les sorties
d'impulsions.
94BPrsentation du produit
1.1 Introduction l'automate S7-1200
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 19
Chaque CPU fournit des liaisons IHM spcialises pour la prise en charge de 3 appareils
IHM au maximum. Le nombre total de stations IHM dpend des types de pupitres IHM dans
votre configuration. Vous pouvez, par exemple, avoir trois SIMATIC Basic Panels au plus
connects votre CPU ou bien deux SIMATIC Comfort Panels au plus avec un Basic Panel
additionnel.
Les diffrents modles de CPU disposent de fonctions et lments divers qui vous aident
crer des solutions efficaces pour vos diverses applications. Reportez-vous aux
caractristiques techniques (Page 705) pour des informations dtailles sur une CPU
spcifique.
Tableau 1- 2 Blocs, temporisations et compteurs pris en charge par le S7-1200
Elment Description
Type OB, FB, FC, DB
Taille 25 Ko (CPU 1211C et CPU 1212C)
50 Ko (CPU 1214C)
Quantit Jusqu' 1 024 blocs au total (OB + FB + FC + DB)
Plage d'adresses pour les FB,
FC et DB
1 65535 (FB 1 FB 65535, par exemple)
Profondeur d'imbrication 16 partir de l'OB de cycle de programme ou de dmarrage ; 4
partir de l'OB d'alarme temporise, d'alarme horaire, d'alarme
cyclique, d'alarme matrielle, d'alarme d'erreur de temps ou d'alarme
d'erreur de diagnostic
Blocs
Visualisation Il est possible de visualiser simultanment l'tat de 2 blocs de code.
Cycle de programme Plusieurs : OB 1, OB 200 OB 65535
Mise en route Plusieurs : OB 100, OB 200 OB 65535
Alarmes temporises et
alarmes cycliques
4
1
(1 par vnement) : OB 200 OB 65535
Alarmes matrielles (fronts et
HSC)
50 (1 par vnement) : OB 200 OB 65535
Alarmes d'erreur de temps 1: OB 80
OB
Alarmes d'erreur de diagnostic 1: OB 82
Type CEI
Quantit Limit uniquement par la taille de la mmoire
Temporisations
Stockage Structure dans un DB, 16 octets par temporisation
Type CEI
Quantit Limit uniquement par la taille de la mmoire
Compteurs
Stockage Structure dans un DB, la taille dpend du type de compteur
SInt, USInt : 3 octets
Int, UInt : 6 octets
DInt, UDInt : 12 octets
1
Les alarmes temporises et cycliques utilisent les mmes ressources dans la CPU. Vous pouvez avoir uniquement 4 de
ces alarmes au total (temporises et cycliques). Vous ne pouvez pas avoir 4 alarmes temporises et 4 alarmes
cycliques.
94BPrsentation du produit
1.2 Possibilits d'extension de la CPU
Automate programmable S7-1200
20 Manuel systme, 11/2011, A5E02486682-05
1.2 Possibilits d'extension de la CPU
La gamme S7-1200 offre divers modules et cartes enfichables pour accrotre les capacits
de la CPU avec des E/S supplmentaires ou d'autres protocoles de communication.
Rfrez-vous aux caractristiques techniques (Page 705) pour des informations dtailles
sur un module spcifique.


Module de communication (CM), processeur de communication (CP) ou adaptateur
TS Adapter
CPU
Signal Board (SB) ou Communication Board (CB)
Module d'entres-sorties (SM)
Tableau 1- 3 Modules d'entres-sorties et Signal Boards TOR
Type Entres uniquement Sorties uniquement Entres/sorties combines
SB TOR
4 entres 24VDC,
200 kHz
4 entres 5VDC,
200 kHz
4 sorties 24VDC,
200 kHz
4 sorties 5VDC,
200 kHz
2 entres 24VDC / 2 sorties 24VDC
2 entres 24VDC / 2 sorties 24VDC,
200 kHz
2 entres 5VDC / 2 sorties 5VDC,
200 kHz
8 entres 24VDC 8 sorties 24VDC
8 sorties Relais
8 sorties Relais
(inverseur)
8 entres 24VDC / 8 sorties 24VDC
8 entres 24VDC / 8 sorties Relais
8 entres 120/230VAC / 8 sorties Relais
SM TOR
16 entres 24VDC 16 sorties 24VDC
16 sorties Relais
16 entres 24VDC / 16 sorties 24VDC
16 entres 24VDC / 16 sorties Relais

94BPrsentation du produit
1.2 Possibilits d'extension de la CPU
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 21
Tableau 1- 4 Modules d'entres-sorties et Signal Boards analogiques
Type Entres uniquement Sorties uniquement Entres/sorties combines
SB
analogique
1 entre analogique 12 bits
1 RTD 16 bits
1 Thermocouple 16 bits
1 sortie analogique
-
SM
analogique
4 entres analogiques
8 entres analogiques
Thermocouple :
4 TC 16 bits
8 TC 16 bits
RTD :
4 RTD 16 bits
8 RTD 16 bits
2 sorties analogiques
4 sorties analogiques
4 entres analogiques / 2 sorties
analogiques

Tableau 1- 5 Interfaces de communication
Module Type Description
RS232 Duplex intgral
RS485 Semi-duplex
RS422/485 Duplex intgral (RS422)
Semi-duplex (RS485)
Matre PROFIBUS DPV1
Esclave PROFIBUS DPV1
Module de communication (CM)
Matre AS-i (CM 1243-2) Interface AC
Processeur de communication (CP)
Connectivit modem GPRS
Communication Board (CB)
RS485 Semi-duplex
Adaptateur TS Adapter IE Basic
1
Connexion la CPU
Adaptateur TS Adapter GSM GSM/GPRS
Adaptateur TS Adapter Modem Modem
Adaptateur TS Adapter ISDN RNIS
TeleService
Adaptateur TS Adapter RS232 RS232
1
L'adaptateur TS Adapter permet la connexion de diverses interfaces de communication au port PROFINET de la CPU.
Vous installez l'adaptateur TS sur le cot gauche de la CPU et connectez l'adaptateur TS Adapter modulaire (3 au plus)
sur l'adaptateur TS.
94BPrsentation du produit
1.3 Modules S7-1200
Automate programmable S7-1200
22 Manuel systme, 11/2011, A5E02486682-05
1.3 Modules S7-1200
Tableau 1- 6 Modules d'extension S7-1200
Type de module Description

DEL d'tat sur le
Signal Board
La CPU prend en charge une carte
d'extension enfichable :
Un Signal Board (SB) fournit
des E/S supplmentaires pour
votre CPU. Le SB se raccorde
l'avant de la CPU.
Un Communication Board (CB)
vous permet d'ajouter un autre
port de communication votre
CPU.



Connecteur
amovible pour le
cblage
utilisateur

DEL d'tat

Connecteur de
bus
Les modules d'entres-sorties
(SM) permettent d'ajouter des
fonctionnalits la CPU. Les SM
se raccordent sur le ct droit de la
CPU.
E/S TOR
E/S analogiques
RTD et Thermocouple



Connecteur
amovible pour le
cblage
utilisateur

DEL d'tat Les modules de communication
(CM) et les processeurs de
communication (CP) ajoutent des
options de communication la
CPU, telles que la connectivit
PROFIBUS ou RS232 / RS485
(pour PtP, Modbus ou USS) ou le
matre AS-i. Un CP offre la
possibilit d'autres types de
communication, par exemple la
connexion de la CPU par le biais
d'un rseau GPRS.
La CPU accepte jusqu' 3 CM
ou CP.
Chaque CM ou CP se raccorde
sur le ct gauche de la CPU
(ou sur le ct gauche d'un
autre CM ou CP).



Connecteur de
communication
94BPrsentation du produit
1.4 Nouvelles caractristiques du S7-1200 et de STEP 7 V11
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 23
1.4 Nouvelles caractristiques du S7-1200 et de STEP 7 V11
STEP 7 V11 et le firmware V2.2 de la CPU S7-1200 offrent de nouvelles possibilits et
caractristiques.
Pour vous permettre de mieux matriser la faon dont vous dfinissez les donnes dans
votre programme utilisateur, le S7-1200 propose d'autres types de donnes, tels que les
pointeurs, les tableaux indics et les structures.
STEP 7 V11 effectue des conversions implicites de types de donnes pour des
instructions, de petits types de donnes (tels que SInt ou Byte) tant automatiquement
convertis en types de donnes plus grands (tels que DInt, DWord, Real ou LReal). Ainsi,
une valeur entire (Int) sera convertie automatiquement en entier double (DInt) ou en rel
(Real) par une instruction configure pour utiliser une valeur DInt ou Real. Vous n'avez
pas besoin d'utiliser une instruction de conversion pour convertir la valeur.
Le jeu d'instructions a t tendu. Les nouveauts concernent les instructions suivantes :
Les instructions de communication incluent les instructions GET et PUT pour la
communication S7, les instructions RALRM, WRREC et RDREC pour Distributed I/O,
de nouvelles instructions TUSEND et TURCV pour PROFINET et les instructions
GPRS et TM_MAIL pour TeleService.
Une nouvelle instruction Calculate vous permet d'entrer une quation directement
dans votre programme CONT ou LOG.
Une nouvelle instruction MC_CommandTable excute pour un axe de commande de
moteur une srie de mouvements individuels que vous pouvez combiner en une
squence de mouvement. Les mouvements individuels sont configurs dans une table
de commande d'objet technologique pour la sortie de trains d'impulsions
(TO_CommandTable_PTO).
Des instructions supplmentaires sur les alarmes vous permettent de rgler et
d'interroger les alarmes temporises et cycliques.
Vous pouvez galement utiliser les nouvelles instructions de diagnostic pour lire l'tat
des DEL ou d'autres informations de diagnostic concernant les modules et appareils.
On trouve galement une nouvelle instruction PID_3Step trs facile utiliser.
Vous pouvez utiliser, dans la logique de votre programme, une variable en tant qu'indice
de tableau pour accder un lment individuel d'un tableau (Page 212) en CONT, LOG
et SCL. Accder un tableau par le biais d'une variable est plus direct qu'utiliser les
instructions FieldRead et FieldWrite de CONT/LOG qui existent toujours afin de permettre
un accs en lecture et en criture aux lments individuels d'un tableau.
Le paramtrage de la liaison pour instructions GET/PUT (Page 498) est une aide
utilisateur qui vous assiste lors de la configuration de liaisons S7, grce la page des
proprits des blocs de communication GET et PUT qui prennent en charge la
communication CPU CPU.
La fonction Chargement dans la CPU l'tat MARCHE (Page 697) vous permet de
modifier le programme l'tat MARCHE sans arrter la CPU.
PROFINET UDP est dsormais pris en charge. UDP fournit une fonction de diffusion
gnrale.
La CPU S7-1200 est un contrleur PROFINET IO.
STEP 7 V11 dispose d'une fonction "annuler".
94BPrsentation du produit
1.4 Nouvelles caractristiques du S7-1200 et de STEP 7 V11
Automate programmable S7-1200
24 Manuel systme, 11/2011, A5E02486682-05
STEP 7 fournit dans la barre d'outils des boutons ARRET et MARCHE (Page 37) qui
permettent d'arrter et de dmarrer la CPU.
La "table de forage permanent" (Page 694) est distincte de la table de visualisation et
permet le forage permanent d'entres et de sorties.
Vous pouvez protger votre programme utilisateur ou vos blocs de code contre la copie
(Page 167) en les liant une CPU ou une carte mmoire spcifique.
Vous pouvez capturer les valeurs d'un DB (Page 690) pour dfinir ces valeurs comme
valeurs initiales.
Par un clic sur un bouton, vous pouvez exporter dans Microsoft Excel les donnes de
tables de STEP 7 (table de variables API ou table de visualisation, par exemple). Vous
pouvez galement utiliser les raccourcis CTRL-C et CTRL-V pour effectuer des copier-
coller entre STEP 7 et Microsoft Excel.
Vous pouvez dconnecter des priphriques IO (Page 39) du rseau configur sans
perdre l'appareil configur ni devoir reconfigurer le rseau.
Vous pouvez modifier l'affectation d'un DB (Page 38) un FB ou une instruction (par
exemple, pour changer l'association d'un FB d'un DB mono-instance un DB multi-
instance).
Vous pouvez accder un bit, octet ou mot individuel ("tranche") (Page 107) l'intrieur
d'une variable API, d'une variable de bloc de donnes ou d'une adresse de mmoire de
plus grande taille.
Il est possible d'ajouter (Page 108) un paramtre ayant un type de donnes d'autres
types de donnes, un tableau ou une structure.
Le systme d'automatisation S7-1200 satisfait aux exigences de l'homologation corenne
(marque KC).
Progiciels de programmation STEP 7 Basic et STEP 7 Professional
STEP 7 propose deux progiciels de programmation qui fournissent les fonctionnalits dont
vous avez besoin. Ces deux progiciels comprennent le langage de programmation littral
volu SCL (Structured Control Language).
STEP 7 Basic dispose de tous les outils ncessaires votre projet S7-1200.
Avec le progiciel STEP 7 Basic, vous pouvez connecter vos CPU S7-1200 et les pupitres
Basic HMI panels un rseau PROFINET. L'ajout d'un module de communication (CM),
d'un processeur de communication (CP) ou d'un Communication Board (CB) la
configuration d'appareil de la CPU permet la connexion d'autres types de rseaux, tels
que PROFIBUS ou RS485.
STEP 7 Professional dveloppe le S7-1200 pour y inclure l'univers des S7-300 et S7-
400. Vous pouvez dsormais crer des rseaux utilisant tous ces automates et
priphriques d'E/S SIMATIC.
94BPrsentation du produit
1.4 Nouvelles caractristiques du S7-1200 et de STEP 7 V11
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 25
Fonctionnalit de serveur Web
Pour fournir un accs la CPU par le biais d'Internet, le S7-1200 prend en charge la
fonctionnalit de serveur Web S7 avec des pages Web standard stockes dans la mmoire
de la CPU. Vous pouvez galement crer vos propres pages Web pour accder aux
donnes dans la CPU.
Journaux de donnes
Le S7-1200 prend en charge la cration de journaux de donnes pour stocker des valeurs
du processus. Vous utilisez des instructions DataLog spcifiques pour crer et grer les
journaux de donnes. Les journaux de donnes sont enregistrs dans un format CSV
standard qui peut tre ouvert avec la plupart des tableurs.
Nouveaux modules pour le S7-1200
Une varit de nouveaux modules augmente la puissance de la CPU S7-1200 et offre la
souplesse ncessaire vos besoins en automatisation :
Nouveaux modules d'entres-sorties (SM), dont un nouveau SM 1222 DQ8 RLY
inverseur
De nouveaux Signal Boards (SB) fournissent la fonctionnalit thermocouple et RTD.
De nouveaux Signal Boards (SB) fournissent des E/S rapides (200 kHz).
De nouveaux modules de communication (CM) permettent au S7-1200 de fonctionner en
tant que matre ou esclave PROFIBUS et un nouveau CM 1241 RS422/485 est
disponible.
De nouvelles interfaces de communication prennent en charge la communication
TeleService (modem, RNIS, GSM/GPRS et RS232).
Un nouveau Communication Board (CB) se branche sur l'avant de la CPU pour fournir la
fonctionnalit RS485.
Un nouveau module de communication matre AS-i, le CM 1243-2 matre AS-i, est
disponible.
94BPrsentation du produit
1.5 Tableaux IHM basiques
Automate programmable S7-1200
26 Manuel systme, 11/2011, A5E02486682-05
1.5 Tableaux IHM basiques
Comme la visualisation devient un composant standard pour la plupart des modles de
machine, les SIMATIC HMI Basic Panels sont composs d'crans tactiles pour les tches
basiques de surveillance et de contrle de l'oprateur. Tous les tableaux ont un indice de
protection de IP65 et sont certifis CE, UL, cULus et NEMA 4x.

Basic HMI Panel Description Caractristiques techniques

KP 300 Basic PN
Clavier membrane 3,6" avec 10
touches tactiles librement configurables
Monochrome (STN, noir/blanc)
87 mm x 31 mm (3,6")
Rtroclair couleur programm
(blanc, vert, jaune ou rouge)
Rsolution : 240 x 80
250 variables
50 crans de processus
200 alarmes
25 courbes
40 Ko de mmoire des recettes
5 recettes, 20 enregistrements, 20
entres

KTP 400 Basic PN
cran tactile 4" avec 4 touches tactiles
Mono (STN, nuances de gris)
76,79 mm x 57,59 mm (3,8")
Portrait ou paysage
Rsolution : 320 x 240
250 variables
50 crans de processus
200 alarmes
25 courbes
40 Ko de mmoire des recettes
5 recettes, 20 enregistrements, 20
entres

KTP 600 Basic PN
cran tactile 6" avec 6 touches tactiles
Couleur (TFT, 256 couleurs) ou
Mono (STN, nuances de gris)
115,2 mm x 86,4 mm (5,7")
Portrait ou paysage
Rsolution : 320 x 240
500 variables
50 crans de processus
200 alarmes
25 courbes
40 Ko de mmoire des recettes
5 recettes, 20 enregistrements, 20
entres
94BPrsentation du produit
1.5 Tableaux IHM basiques
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 27
Basic HMI Panel Description Caractristiques techniques

KTP 1000 Basic PN
cran tactile 10" avec 8 touches tactiles
Couleur (TFT, 256 couleurs)
211,2 mm x 158,4 mm (10,4")
Rsolution : 640 x 480
500 variables
50 crans de processus
200 alarmes
25 courbes
40 Ko de mmoire des recettes
5 recettes, 20 enregistrements, 20
entres

TP 1500 Basic PN
Ecran tactile 15"
Couleur (TFT, 256 couleurs)
304,1 mm x 228,1 mm (15,1")
Rsolution : 1024 x 768
500 variables
50 crans de processus
200 alarmes
25 courbes
40 Ko de mmoire des recettes (flash
intgre)
5 recettes, 20 enregistrements, 20
entres

94BPrsentation du produit
1.5 Tableaux IHM basiques
Automate programmable S7-1200
28 Manuel systme, 11/2011, A5E02486682-05

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 29
Logiciel de programmation STEP 7 2

STEP 7 fournit un environnement convivial pour concevoir, diter et surveiller la logique
ncessaire la commande de votre application, et notamment les outils pour grer et
configurer tous les appareils dans votre projet, tels que des automates et appareils IHM.
Pour vous aider trouver les informations dont vous avez besoin, STEP 7 fournit un
systme d'aide en ligne complet.
STEP 7 comprend des langages de programmation standard, ce qui s'avre trs pratique et
efficace pour la mise au point du programme de commande de votre application.
CONT (schma contacts) est un langage de programmation graphique. Sa
reprsentation se base sur des schmas (Page 155) de circuit.
LOG (logigramme) est un langage de programmation se fondant sur les symboles
logiques graphiques utiliss en algbre (Page 156) boolenne.
SCL (Structured Control Language) est un langage de programmation littral volu.
Lorsque vous crez un bloc de code, vous slectionnez le langage de programmation
utiliser par ce bloc. Votre programme utilisateur peut utiliser des blocs de code crs dans
n'importe lequel des langages de programmation disponibles.
2.1 Besoins du systme
Vous devez ouvrir une session en tant qu'administrateur pour installer le logiciel STEP 7 sur
un PC fonctionnant sous le systme d'exploitation Windows XP ou Windows 7.
Tableau 2- 1 Besoins du systme
Matriel / logiciel Conditions requises
Type de processeur Pentium M, 1,6 GHz ou similaire
Mmoire vive 1 Go
Espace disponible sur le disque
dur
2 Go sur le lecteur systme C:\
Systmes d'exploitation
Windows XP Professionnel SP3
Windows 2003 Server R2 StdE SP2
Windows 7 Home Premium (STEP 7 Basic uniquement, non
pris en charge pour STEP 7 Professional)
Windows 7 (Professional, Enterprise, Ultimate)
Windows 2008 Server StdE R2
Carte graphique 32 Mo RAM
Profondeur de couleur 24 bits
Rsolution de l'cran 1024 x 768
Rseau Ethernet 20 Mbits/s ou plus
Lecteur optique DVD-ROM
95BLogiciel de programmation STEP 7
2.2 Diffrentes vues pour faciliter votre travail
Automate programmable S7-1200
30 Manuel systme, 11/2011, A5E02486682-05
2.2 Diffrentes vues pour faciliter votre travail
STEP 7 offre un environnement convivial pour dvelopper la logique du contrleur,
configurer la visualisation IHM et tablir la communication rseau. Pour permettre
d'augmenter votre productivit, STEP 7 offre deux vues diffrentes du projet : un ensemble
orient tche de portails qui sont organiss selon la fonctionnalit des outils (vue du portail)
et une vue oriente projet des lments dans le projet (vue du projet). Choisissez la vue qui
permet un travail le plus efficace possible. Avec un simple clic, vous pouvez faire le va-et-
vient entre la vue du portail et la vue du projet.

Vue du portail

Portails des diffrentes tches

Tches du portail slectionn

Panneau de slection de l'action
1
2 3
4


Bascule dans la vue du projet
Vue du projet

Menus et barre d'outils

Navigateur du projet

Zone de travail

Task Cards

Fentre d'inspection

Bascule dans la vue du portail
1
2 3 4
5
7 6


Barre d'dition
Comme tous ces composants sont regroups un endroit, vous pouvez facilement accder
chaque lment de votre projet. La fentre d'inspection montre, par exemple, les
proprits et informations de l'objet que vous avez slectionn dans la zone de travail.
Lorsque vous slectionnez diffrents objets, la fentre d'inspection affiche les proprits que
vous pouvez configurer. La fentre d'inspection contient des onglets vous permettant de voir
les informations de diagnostic et autres messages.
En affichant tous les diteurs ouverts, la barre d'dition vous permet de travailler plus
rapidement et efficacement. Pour basculer d'un diteur ouvert un autre, il suffit de cliquer
sur l'diteur correspondant. Vous pouvez galement aligner deux diteurs verticalement ou
horizontalement. Cette fonction vous permet d'utiliser la fonction glisser-dplacer entre les
diteurs.
95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 31
2.3 Simplicit des outils
2.3.1 Insertion d'instructions dans votre programme utilisateur

STEP 7 fournit des Task Cards qui contiennent les instructions pour
votre programme. Les oprations sont regroupes selon leur
fonction.

Pour crer votre programme, vous amenez les oprations de la
Task Card dans un rseau.

2.3.2 Accs aux instructions depuis la barre d'outils "Favoris"

STEP 7 fournit une barre d'outils "Favoris" pour permettre un accs rapide aux instructions
que vous utilisez frquemment. Effectuez un clic simple sur l'icne de l'opration insrer
dans votre rseau !

(Pour les "Favoris" dans l'arborescence
d'instructions, double-cliquez sur l'icne)

Vous pouvez facilement
personnaliser les "Favoris" en
ajoutant de nouvelles oprations.
Il vous suffit de glisser-dplacer
une opration sur vos "Favoris".
Un simple clic permet alors
d'accder l'opration !

95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
32 Manuel systme, 11/2011, A5E02486682-05
2.3.3 Cration d'une quation complexe avec une instruction simple

L'instruction Calculer vous permet de crer une fonction mathmatique qui fonctionne sur
des paramtres entres multiples pour produire le rsultat, selon l'quation que vous
dfinissez.

Dans l'arborescence d'opration Basic, agrandissez le fichier
de fonctions Mathmatiques. Double-cliquez sur l'opration
Calculer pour insrer l'opration dans votre programme
utilisateur.

L'opration Calculer non-configure
fournit deux paramtres d'entre et
un paramtre de sortie.


Cliquez sur "???" et slectionnez les types de donnes pour les
paramtres d'entre et de sortie. (Les paramtres d'entre et de sortie
doivent tous tre du mme type de donnes.)
Pour cet exemple, slectionnez le type de donnes "Rel".

Cliquez sur l'icone "diter quation" pour saisir l'quation.


95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 33

Pour cet exemple, saisissez l'quation suivante pour tablir une valeur brute analogique.
(Les dsignations "Entre" et "Sortie" correspondent aux paramtres de l'opration
Calculer.)
Out value = ((Out high - Out low) / (In high - In low)) * (In value - In low) + Out low
Out = ((in4 - in5) / (in2 - in3)) * (in1 - in3) + in5
Si : Out value (Out) Valeur de sortie gradue
In value (in1) Valeur d'entre analogique
In high (in2) Limite suprieure pour la valeur d'entre gradue
In low (in3) Limite infrieure pour la valeur d'entre gradue
Out high (in4) Limite suprieure pour la valeur de sortie gradue
Out low (in5) Limite infrieure pour la valeur de sortie gradue
Dans le champ "diter Calculer", saisissez l'quation avec les noms de paramtre :
OUT = ((in4 - in5) / (in2 - in3)) * (in1 - in3) + in5


Lorsque vous cliquez sur "OK",
l'opration Calculer cre les entres
ncessaires l'opration.

Saisissez les noms de variables pour
les valeurs qui correspondent aux
paramtres.

95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
34 Manuel systme, 11/2011, A5E02486682-05
2.3.4 Ajout d'entres ou de sorties une instruction CONT ou LOG


Certaines instructions vous permettent de crer des entres ou sorties
supplmentaires.
Pour ajouter une entre ou une sortie, cliquez sur l'icne de cration ou cliquez avec le
bouton droit de la souris sur la ligne de l'un des paramtres IN ou OUT existants et
slectionnez la commande "Insrer entre".
Pour supprimer une entre ou une sortie, cliquez avec le bouton droit de la souris sur la
ligne de l'un des paramtres IN ou OUT existants (lorsqu'il y a plus d'entres que les
deux entres d'origine) et slectionnez la commande "Supprimer".
2.3.5 Instructions extensibles

Quelques-unes des instructions les plus complexes sont extensibles, n'affichant que les
entres et sorties importantes. Pour afficher toutes les entres et sorties, cliquez sur la
flche au bas de l'instruction.


95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 35
2.3.6 Slection d'une version d'une instruction
Les cycles de dveloppement et de mise disposition pour certains jeux d'instructions (tels
que Modbus, PID et commande de mouvement) ont cr de multiples versions disponibles
de ces instructions. Pour vous aider garantir la compatibilit et la migration avec des
projets plus anciens, STEP 7 vous permet de choisir la version d'une instruction insrer
dans votre programme utilisateur.


Dans la Task Card d'arborescence d'instructions, cliquez sur
l'icne pour activer les en-ttes et colonnes de l'arborescence
d'instructions.

Pour changer la version de l'instruction, slectionnez la
version approprie dans la liste droulante.
95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
36 Manuel systme, 11/2011, A5E02486682-05
2.3.7 Modification de l'apparence et de la configuration de STEP 7


Vous pouvez slectionner divers
paramtres, tels que l'apparence de
l'interface, la langue ou le dossier
d'enregistrement de votre travail.
Pour modifier ces paramtres,
slectionnez la commande
"Paramtres" dans le menu "Outils".
2.3.8 Glisser-dplacer entre les diteurs


Pour vous aider raliser des tches
rapidement et facilement, STEP 7 vous permet
de faire glisser des lments d'un diteur un
autre. Vous pouvez, par exemple, amener une
entre de la CPU sur l'adresse d'une opration
dans votre programme utilisateur
Vous devez effectuer un agrandissement d'au
moins 200 % pour pouvoir slectionner les
entres ou les sorties de la CPU.
Notez que les noms des variables sont
affichs non seulement dans la table des
variables de l'API, mais galement dans la
CPU.
Pour afficher simultanment deux diteurs,
choisissez les commandes de menu
"Fractionner diteur" ou slectionnez les
boutons correspondants dans la barre
d'outils.

95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 37
Pour basculer entre les diteurs ouverts, cliquez sur les icnes correspondantes dans la
barre d'dition.


2.3.9 Changement de l'tat de fonctionnement de la CPU
La CPU ne possde pas de commutateur physique pour changer l'tat de fonctionnement
(ARRET ou MARCHE).

Cliquez sur les boutons "Dmarrer CPU" ou "Arrter CPU" de la barre d'outils
pour changer l'tat de fonctionnement de la CPU.

Lorsque vous configurez la CPU dans les paramtres de configuration, vous configurez le
comportement au dmarrage dans les proprits de la CPU.
Le portail "En ligne & diagnostic" comprend un panneau de commande pour modifier l'tat
de fonctionnement de la CPU en ligne. Pour pouvoir utiliser le panneau de commande de la
CPU, vous devez tre connect en ligne la CPU. La Task Card "Outils en ligne" affiche un
panneau de commande indiquant l'tat de fonctionnement de la CPU en ligne. Ce panneau
de commande vous permet galement de changer l'tat de fonctionnement de la CPU en
ligne.


Servez-vous du bouton sur le panneau de commande pour changer
l'tat de fonctionnement (ARRET ou MARCHE). Le panneau de
commande dispose galement d'un bouton MRES pour rinitialiser la
mmoire.
La couleur de l'indicateur MARCHE/ARRET signale l'tat de fonctionnement en cours de la
CPU. Le jaune correspond l'tat ARRET, le vert l'tat MARCHE.
2.3.10 Enregistrement et restauration de l'tat d'un bloc

STEP 7 offre la possibilit d'enregistrer l'tat d'un bloc de code afin de crer un point de
rfrence pour le programme utilisateur. Cet instantan reprsente l'tat du bloc de code
un moment donn. La gnration d'un tat du bloc vous permet de rinitialiser le bloc cet
tat tout moment, supprimant ainsi toutes les modifications apportes entre-temps. Vous
pouvez restaurer le programme utilisateur l'tat du bloc mme si vous avez apport des
modifications au programme et les avez sauvegardes.
Vous pouvez enregistrer jusqu' 10 tats de bloc dans votre projet. Les tats des blocs
restent accessibles mme aprs sauvegarde du projet. Toutefois, le fait de fermer le projet
supprime tous les tats de bloc enregistrs.
La possibilit d'enregistrer et de restaurer l'tat du bloc de programme est plus puissante
que la fonction "Annuler", car l'tat du bloc est conserv au-del de la fonction "Enregistrer".
95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
38 Manuel systme, 11/2011, A5E02486682-05


Cliquez sur le bouton "Sauvegarde intermdiaire de l'tat" pour enregistrer l'tat en
cours du programme utilisateur. Lorsque vous avez enregistr un tat du programme
utilisateur, le bloc de programme affiche une icne "Etat du bloc".



Cliquez sur le bouton "Restaurer l'tat" pour restaurer le bloc de programme l'tat de
bloc qui a t enregistr.

Cliquez sur le bouton "Supprimer l'tat" pour supprimer l'tat de bloc qui a t
enregistr.
2.3.11 Modification du type d'appel pour un DB


STEP 7 permet de crer et de changer aisment
l'association d'un DB une instruction ou un FB se
trouvant dans un FB.
Vous pouvez permuter l'association entre diffrents
DB.
Vous pouvez permuter l'association entre un DB
mono-instance et un DB multi-instance.
Vous pouvez crer un DB d'instance (s'il manque ou
n'est pas disponible).
Vous pouvez accder la commande "Modifier type
d'appel" en cliquant avec le bouton droit de la souris sur
l'instruction ou le FB dans l'diteur de programmes ou en
slectionnant la commande "Appel de bloc" dans le menu
"Outils".

La bote de dialogue "Options
d'appel" vous permet de
slectionner un DB mono-
instance ou un DB multi-
instance. Vous pouvez
galement slectionner des DB
spcifiques dans une liste
droulante de DB disponibles.
95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 39
2.3.12 Dconnexion temporaire d'appareils d'un rseau
Vous pouvez dconnecter des appareils individuels du sous-rseau. Comme la configuration
de l'appareil n'est pas supprime du projet, vous pouvez aisment restaurer la connexion
l'appareil.



Cliquez avec le bouton droit de la souris sur
le port d'interface de l'appareil du rseau et
slectionnez la commande "Dconnecter du
sous-rseau" dans le menu contextuel.
STEP 7 reconfigure les liaisons rseau, mais ne supprime pas l'appareil dconnect du
projet. Alors que la connexion rseau est supprime, les adresses d'interface ne sont pas
modifies.

La CPU passe l'tat ARRET lorsque vous chargez les nouvelles connexions rseau.
Pour reconnecter l'appareil, il vous suffit de crer une nouvelle connexion rseau au port de
cet appareil.
95BLogiciel de programmation STEP 7
2.3 Simplicit des outils
Automate programmable S7-1200
40 Manuel systme, 11/2011, A5E02486682-05
2.3.13 Dsenfichage virtuel d'appareils de la configuration



STEP 7 propose une zone de stockage
pour les modules "retirs". Vous avez la
possibilit d'amener un module du chssis
afin d'en enregistrer la configuration. Ces
modules retirs sont enregistrs dans
votre projet, ce qui permettra de les
rinsrer ultrieurement sans avoir
redfinir les paramtres de configuration.
L'une des applications de cette
fonctionnalit est la maintenance
temporaire. Considrez l'hypothse o
vous auriez attendre avant de pouvoir
remplacer un module et o vous
dcideriez d'utiliser temporairement un
module diffrent comme solution court
terme. Vous auriez la possibilit d'amener
le module configur du chssis dans les
"Modules non enfichs", puis d'insrer le
module temporaire.

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 41
Installation 3
3.1 Conseils pour l'installation d'appareils S7-1200
Le matriel S7-1200 est conu pour tre facile installer. Vous pouvez monter l'automate
S7-1200 sur un panneau ou sur un profil support et l'orienter horizontalement ou
verticalement. La petite taille du S7-1200 permet une optimisation de l'espace.

ATTENTION
Les S7-1200 SIMATIC sont des automates de type ouvert. Il est ncessaire de les installer
dans un botier, une armoire ou une salle lectrique auxquels seules les personnes
autorises doivent avoir accs.
Le non-respect de ces rgles d'installation peut entraner la mort, des blessures graves et
des dommages matriels importants.
Suivez toujours ces prescriptions lorsque vous installez des automates S7-1200.

Ne placez pas les appareils S7-1200 proximit de sources de chaleur, de haute tension et de bruit
lectrique
En rgle gnrale pour la mise en place des appareils de votre systme, sparez toujours
les appareils gnrant une tension leve et un bruit lectrique important des appareils de
type logique basse tension, tels que le S7-1200.
Lors de l'implantation du S7-1200 dans votre panneau, tenez compte des appareils sources
de chaleur et placez les appareils de type lectronique dans les zones plus fraches de votre
armoire. En effet, rduire l'exposition aux tempratures leves allonge la dure de vie des
appareils lectroniques.
Tenez galement compte de l'acheminement du cblage pour les appareils dans le
panneau. Evitez de placer les cbles de signaux et de communication de faible tension dans
la mme goulotte que le cblage d'alimentation en courant alternatif et le cblage pour
courant continu commutation rapide et haute nergie.
96BInstallation
3.1 Conseils pour l'installation d'appareils S7-1200
Automate programmable S7-1200
42 Manuel systme, 11/2011, A5E02486682-05
Mnagez un dgagement adquat pour le refroidissement et le cblage
Les appareils S7-1200 sont conus pour un refroidissement par convection naturelle. Pour
que le refroidissement se fasse correctement, vous devez laisser un espace libre d'au moins
25 mm au-dessus et en dessous des appareils. Vous devez galement avoir une profondeur
d'au moins 25 mm entre l'avant des modules et l'intrieur de l'enceinte.

PRUDENCE
En cas de montage vertical, la temprature ambiante maximale autorise est diminue de
10 C. Orientez un systme S7-1200 mont verticalement comme illustr dans la figure
suivante.

Lorsque vous planifiez la disposition de votre systme S7-1200, rservez suffisamment
d'espace pour le cblage et les connexions de cbles de communication.

25 mm

25 mm

25 mm
25 mm


Vue de ct Montage vertical
Montage horizontal Zone de dgagement

96BInstallation
3.2 Bilan de consommation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 43
3.2 Bilan de consommation
Votre CPU possde une alimentation interne fournissant du courant la CPU, aux modules
d'entres-sorties, au Signal Board et aux modules de communication ainsi qu' d'autres
quipements consommant du courant 24 V-.
Reportez-vous aux Caractristiques techniques (Page 705) pour plus d'informations sur le
bilan de consommation constitu par le courant 5 V- fourni par votre CPU et par les besoins
en courant 5 V- des modules d'entres-sorties, des Signal Boards et des modules de
communication. Reportez-vous "Calcul d'un bilan de consommation" (Page 811) pour
dterminer combien de courant la CPU peut mettre la disposition de votre configuration.
La CPU dispose galement d'une alimentation de capteur 24 V- pouvant fournir du courant
24 V- aux entres, aux bobines de relais sur les modules d'entres-sorties ou d'autres
quipements. Si vos besoins en courant 24 V- dpassent ce que fournit l'alimentation de
capteur, vous devez ajouter votre systme un module d'alimentation 24 V- externe. Vous
trouverez dans les Caractristiques techniques (Page 705) le bilan de consommation
d'alimentation de capteur 24 V- pour votre CPU particulire.

Remarque
Le CM 1243-5 (module matre PROFIBUS) doit tre aliment en courant par l'alimentation
capteur 24 V- de la CPU.

Si vous avez besoin d'un module d'alimentation 24 V- externe, assurez-vous que ce module
n'est pas connect en parallle avec l'alimentation de capteur de la CPU. En effet, il est
recommand, pour une meilleure protection contre les bruits lectriques, que les communs
(M) des diffrentes alimentations soient connects.

ATTENTION
Connecter une alimentation 24 V- externe en parallle avec l'alimentation de capteur 24 V-
peut entraner un conflit entre les deux alimentations, chacune cherchant tablir son
propre niveau de tension de sortie prfr.
Ce conflit peut rduire la dure de vie ou provoquer une dfaillance immdiate de l'une ou
des deux alimentations, ayant pour effet un fonctionnement imprvisible du systme
d'automatisation pouvant entraner la mort, des blessures graves et des dommages
matriels importants.
L'alimentation de capteur CC et toute alimentation externe doivent fournir du courant des
points diffrents.

96BInstallation
3.2 Bilan de consommation
Automate programmable S7-1200
44 Manuel systme, 11/2011, A5E02486682-05
Certains ports d'entre d'alimentation 24 V- dans le systme S7-1200 sont interconnects,
avec un circuit logique commun connectant plusieurs bornes M. Par exemple, les circuits
suivants sont interconnects lorsqu'ils sont signals comme "non isols" dans les fiches
techniques : l'alimentation 24 V- de la CPU, l'entre d'alimentation pour la bobine de relais
d'un SM ou l'alimentation pour une entre analogique non isole. Toutes les bornes M non
isoles doivent tre connectes au mme potentiel de rfrence externe.

ATTENTION
Connecter des bornes M non isoles des potentiels de rfrence diffrents provoque des
flux de courant indsirables qui peuvent tre l'origine de dgts ou d'un fonctionnement
imprvisible dans l'automate et tout quipement connect.
Le non-respect de ces conseils peut tre l'origine de dgts ou d'un fonctionnement
imprvisible pouvant entraner la mort, des blessures graves et des dommages matriels
importants.
Vrifiez toujours que toutes les bornes M non isoles dans un systme S7-1200 sont
connectes au mme potentiel de rfrence.


96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 45
3.3 Procdures d'installation et de dsinstallation
3.3.1 Dimensions de montage pour les appareils S7-1200
A A A
B B B B
75 A
5
0
1
0
0
4
1
0
8
1
1
6

Tableau 3- 1 Dimensions de montage (mm)
Appareils S7-1200 Largeur A Largeur B
CPU 1211C et CPU 1212C 90 mm 45 mm CPU
CPU 1214C 110 mm 55 mm
TOR, 8 et 16 entres/sorties
Analogiques, 2, 4 et 8 entres/sorties
Thermocouple, 4 et 8 entres/sorties
RTD, 4 entres/sorties
45 mm 22,5 mm
TOR, 8 sorties Relais (inverseur) 70 22.5
Modules d'entres-
sorties
Analogiques, 16 entres/sorties
RTD, 8 entres/sorties
70 mm 35 mm
CM 1241 RS232, CM 1241 RS485 et CM 1241 RS422/485
CM 1243-5 matre PROFIBUS et
CM 1242-5 esclave PROFIBUS
CM 1243-2 matre AS-i
CP 1242-7 GPRS
30 mm 15 mm Interfaces de
communication
Adaptateur TS Adapter IE Basic 60 mm
1
15 mm
1
Comme vous devez installer un adaptateur TS modulaire avec l'adaptateur TS, la largeur totale ("largeur A") est de
60 mm.
96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
46 Manuel systme, 11/2011, A5E02486682-05
Chaque CPU, SM, CM et CP peut tre indiffremment mont sur un profil support ou
encastr dans un panneau. Servez-vous des barrettes de fixation sur le module pour fixer
l'appareil sur le profil support. Ces barrettes s'encliquettent galement en position sortie
afin de fournir des points de vissage pour monter l'unit directement sur un panneau. Le
diamtre intrieur de l'alsage pour les barrettes de fixation de l'appareil est de 4,3 mm.
Une zone thermique de 25 mm doit galement tre mnage au-dessus et en dessous de
l'unit pour la libre circulation de l'air.
Installation et dsinstallation des appareils S7-1200
Il est trs ais d'installer la CPU sur un profil support ou sur un panneau. Des barrettes de
fixation sont fournies pour fixer l'appareil sur le profil support. Ces barrettes s'encliquettent
galement en position sortie afin de fournir un point de vissage pour le montage sur
panneau de l'unit.
11
12
13
4

Montage sur profil support Montage sur panneau
Barrette de fixation en position rentre Barrette en position sortie pour le montage sur
panneau
Assurez-vous, avant d'installer ou de dmonter tout appareil lectrique, que cet appareil a
t mis hors tension. Assurez-vous galement que tout quipement associ a t mis hors
tension.

ATTENTION
L'installation ou le dmontage du S7-1200 ou d'quipements relis alors qu'ils sont sous
tension peut provoquer un choc lectrique ou un fonctionnement imprvisible du matriel.
La non-dsactivation de l'alimentation complte du S7-1200 et des appareils qui y sont
relis pendant les procdures d'installation ou de dsinstallation peut entraner la mort, des
blessures graves ou des dommages matriels importants en raison du choc lectrique ou
du fonctionnement imprvisible du matriel.
Prenez toujours toutes les mesures de scurit ncessaires et assurez-vous que
l'alimentation de l'automate S7-1200 est coupe avant de tenter d'installer ou de dmonter
des CPU S7-1200 ou des matriels relis.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 47
Assurez-vous toujours, lorsque vous remplacez ou installez un appareil S7-1200, que vous
utilisez le module correct ou un appareil quivalent.

ATTENTION
Une installation incorrecte d'un module S7-1200 peut entraner un fonctionnement
imprvisible du programme dans le S7-1200.
Le remplacement d'un appareil S7-1200 par un autre modle, sans respecter l'orientation
correcte et l'ordre initial, peut entraner la mort, des blessures graves ou des dommages
matriels importants en raison d'un fonctionnement imprvisible de l'quipement.
Remplacez toujours un appareil S7-1200 par le mme modle et assurez-vous que vous
l'orientez et le positionnez correctement.

3.3.2 Installation et dsinstallation de la CPU
Vous pouvez monter la CPU sur un panneau ou sur un profil support.

Remarque
Reliez les modules de communication ventuels la CPU et installez l'ensemble en tant
qu'unit. Installez les modules d'entres-sorties sparment une fois la CPU installe.

Tenez compte des points suivants lorsque vous installez les units sur le profil support ou
sur un panneau :
En cas de montage sur profil support, assurez-vous que la barrette de fixation
suprieure est en position rentre et que la barrette infrieure est en position sortie sur la
CPU et les CM relis.
Une fois les appareils installs sur le profil support, faites glisser les barrettes de fixation
infrieure dans leur position rentre pour verrouiller les appareils sur le profil support.
En cas de montage sur panneau, assurez-vous que les barrettes de fixation sont en
position sortie.
Procdez comme suit pour installer la CPU sur un panneau :
1. Positionnez, percez et taraudez les trous de fixation (M4 ou norme amricaine numro 8)
en vous aidant des dimensions indiques dans les dimensions de montage.
2. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
48 Manuel systme, 11/2011, A5E02486682-05
3. Sortez les barrettes de fixation du module. Assurez-vous que les barrettes de fixation en
haut et en bas de la CPU sont bien en position sortie.
4. Fixez le module sur le panneau l'aide de vis places dans les barrettes.


Remarque
Si votre systme se situe dans un environnement fortes vibrations ou est dispos
verticalement, le montage du S7-1200 sur panneau offrira un niveau de protection plus
lev.
Tableau 3- 2 Installation de la CPU sur un profil support
Tche Marche suivre


1. Installez le profil support. Vissez le profil support tous les 75 mm sur le
panneau de montage.
2. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
3. Accrochez la CPU sur le haut du profil support.
4. Tirez la barrette de fixation situe au bas de la CPU pour que la CPU puisse
s'enclencher sur le profil support.
5. Faites pivoter la CPU vers le bas sur le profil support.
6. Repoussez les barrettes de fixation pour verrouiller la CPU sur le profil support.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 49
Tableau 3- 3 Dsinstallation de la CPU d'un profil support
Tche Marche suivre


1. Vrifiez que la CPU et tout le matriel S7-1200 sont
hors tension.
2. Dconnectez les connecteurs d'E/S, les fils et les cbles
de la CPU (Page 54).
3. Dmontez la CPU et tout module de communication
reli en tant qu'unit. Tous les modules d'entres-
sorties doivent rester en place.
4. Si un module SM est connect la CPU, rentrez le
connecteur de bus :
Placez un tournevis ct de la languette sur le
haut du module d'entres-sorties.
Appuyez pour dgager le connecteur de la CPU.
Faites glisser la languette compltement droite.
5. Dmontez la CPU :
Tirez la barrette de fixation pour librer la CPU du
profil support.
Faites pivoter la CPU vers le haut pour la dgager
du profil support et retirez-la du systme.
3.3.3 Installation et dsinstallation d'un SB ou d'un CB
Tableau 3- 4 Installation d'un SB ou d'un CB
Tche Marche suivre



1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Retirez les caches des borniers suprieur et infrieur de la CPU.
3. Placez un tournevis dans l'encoche l'arrire du cache sur le haut
de la CPU.
4. Faites doucement levier vers le haut et retirez le cache de la CPU.
5. Insrez le module verticalement dans sa position de montage dans
la partie suprieure de la CPU.
6. Appuyez fermement sur le module jusqu' ce qu'il s'enclenche en
position.
7. Replacez les caches des borniers.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
50 Manuel systme, 11/2011, A5E02486682-05
Tableau 3- 5 Dsinstallation d'un SB ou d'un CB
Tche Marche suivre



1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Retirez les caches des borniers suprieur et infrieur de la CPU.
3. Placez un tournevis dans l'encoche sur le haut du module.
4. Faites doucement levier pour dgager le module de la CPU.
5. Retirez le module verticalement de sa position de montage dans la
partie suprieure de la CPU.
6. Replacez le cache sur la CPU.
7. Replacez les caches des borniers.
96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 51
3.3.4 Installation et dsinstallation d'un SM
Tableau 3- 6 Installation d'un SM
Tche Marche suivre


Installez votre module d'entres-sorties aprs avoir install la
CPU.
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors
tension.
2. Retirez le cache pour le connecteur du ct droit de la CPU :
3. Insrez un tournevis dans l'encoche au-dessus du cache.
4. Dtachez doucement le ct suprieur du cache puis retirez
le cache. Conservez-le en vue de sa rutilisation.


Raccordez le SM la CPU :
1. Positionnez le SM ct de la CPU.
2. Accrochez le SM sur le haut du profil support.
3. Tirez la barrette de fixation infrieure pour que le SM puisse
s'enclencher sur le profil support.
4. Faites pivoter le SM vers le bas ct de la CPU et
repoussez la barrette de fixation infrieure pour verrouiller le
SM sur le profil support.

L'insertion du connecteur de bus ralise les connexions mcaniques et lectriques
pour le SM.
1. Placez un tournevis ct de la languette sur le haut du module d'entres-
sorties.
2. Faites glisser la languette compltement vers la gauche pour insrer le
connecteur de bus dans la CPU.
Procdez de la mme faon pour installer un module d'entres-sorties sur un autre
module d'entres-sorties.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
52 Manuel systme, 11/2011, A5E02486682-05
Tableau 3- 7 Dsinstallation d'un SM
Tche Marche suivre


Vous pouvez dmonter n'importe quel SM sans dmonter la CPU ni d'autres SM
en place.
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Retirez les connecteurs d'E/S et le cblage du SM (Page 54).
3. Retirez le connecteur de bus :
Placez un tournevis ct de la languette sur le haut du module d'entres-
sorties.
Appuyez pour dgager le connecteur de la CPU.
Faites glisser la languette compltement droite.
S'il y a un autre SM droite, rptez cette procdure pour ce SM.

Dmontez le SM :
1. Tirez la barrette de fixation infrieure pour librer le SM du profil support.
2. Faites pivoter le SM vers le haut pour le dgager du profil support. Retirez le
SM du systme.
3. Si ncessaire, couvrez le connecteur de bus sur la CPU de son cache pour
viter la contamination.
Procdez de la mme faon pour dmonter un module d'entres-sorties d'un autre
module d'entres-sorties.
96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 53
3.3.5 Installation et dsinstallation d'un CM ou d'un CP
Reliez les modules de communication ventuels la CPU et installez l'ensemble en tant
qu'unit, comme illustr au paragraphe Installation et dsinstallation de la CPU (Page 47).
Tableau 3- 8 Installation d'un CM ou d'un CP
Tche Marche suivre



1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors
tension.
2. Reliez le CM la CPU avant d'installer l'ensemble en tant
qu'unit sur le profil support ou le panneau.
3. Retirez le cache de bus sur le ct gauche de la CPU :
Insrez un tournevis dans l'encoche au-dessus du
cache de bus.
Dtachez doucement le ct suprieur du cache.
4. Retirez le cache de bus. Conservez-le en vue de sa
rutilisation.
5. Raccordez le CM ou le CP la CPU :
Alignez le connecteur de bus et les montants du CM
avec les trous de la CPU.
Appuyez fermement les units l'une contre l'autre
jusqu' ce que les montants s'enclenchent.
6. Installez la CPU et le CP sur un profil support ou dans un
panneau.

Tableau 3- 9 Dsinstallation d'un CM ou d'un CP
Tche Marche suivre


Dmontez la CPU et le CM du profil support ou du panneau en tant qu'unit.
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Retirez les connecteurs d'E/S et tous les fils et cbles de la CPU et des CM.
3. En cas de montage sur profil support, tirez les barrettes de fixation infrieures
sur la CPU et les CM en position sortie.
4. Dmontez la CPU et les CM du profil support ou du panneau.
5. Maintenez fermement la CPU et le CM et tirez pour les sparer.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
54 Manuel systme, 11/2011, A5E02486682-05

PRUDENCE
N'utilisez pas d'outil pour sparer les modules, car cela risquerait de les endommager.

3.3.6 Dmontage et remontage du bornier de connexion S7-1200
Les CPU, les SB et les SM comportent des connecteurs amovibles pour faciliter le cblage.
Tableau 3- 10 Dmontage du bornier de connexion
Tche Marche suivre


Prparez le systme au dmontage du bornier de connexion en mettant la CPU hors
tension et en ouvrant le cache au-dessus du bornier de connexion.
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Inspectez le dessus du connecteur afin de localiser l'encoche pour la pointe du
tournevis.
3. Insrez un tournevis dans l'encoche.
4. Faites doucement levier sur le haut du connecteur pour le dtacher de la CPU. Le
connecteur se dgagera avec un bruit sec.
5. Saisissez le connecteur et retirez-le de la CPU.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 55
Tableau 3- 11 Installation du bornier de connexion
Tche Marche suivre


Prparez les composants en vue de l'installation du bornier de connexion en mettant la CPU
hors tension et en ouvrant le cache pour le bornier.
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Alignez le connecteur avec les broches sur l'unit.
3. Alignez la face de cblage du connecteur l'intrieur du bord du socle de connecteur.
4. Appuyez fermement et faites pivoter le connecteur jusqu' ce qu'il s'enclenche.
Vrifiez soigneusement que le connecteur est correctement align et bien enfonc.
3.3.7 Installation et dsinstallation du cble d'extension
Le cble d'extension S7-1200 offre une souplesse accrue lors de la configuration de la
disposition de votre systme S7-1200. Un seul cble d'extension est autoris par systme
CPU. Vous installez le cble d'extension soit entre la CPU et le premier SM, soit entre deux
SM quelconques.
Tableau 3- 12 Installation et dsinstallation du connecteur mle du cble d'extension
Tche Marche suivre


Pour installer le connecteur mle :
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Enfoncez le connecteur dans le connecteur de bus du ct droit du
module d'entres-sorties ou de la CPU.
Pour dsinstaller le connecteur mle :
1. Vrifiez que la CPU et tout le matriel S7-1200 sont hors tension.
2. Tirez sur le connecteur mle pour l'extraire du module d'entres-
sorties ou de la CPU.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
56 Manuel systme, 11/2011, A5E02486682-05
Tableau 3- 13 Installation du connecteur femelle du cble d'extension
Tche Marche suivre



1. Vrifiez que la CPU et tout le matriel S7-1200 sont
hors tension.
2. Placez le connecteur femelle sur le connecteur de
bus du ct gauche du module d'entres-sorties.
3. Faites glisser l'extension en crochet du connecteur
femelle dans le botier au niveau du connecteur de
bus et appuyez lgrement vers le bas pour
enclencher le crochet.
4. Fixez le connecteur en place :
Placez un tournevis ct de la languette sur le
haut du module d'entres-sorties.
Faites glisser la languette compltement vers la
gauche.
Pour enclencher le connecteur, vous devez faire
glisser la languette jusqu'au bout vers la gauche. Le
connecteur doit tre verrouill en place.

Tableau 3- 14 Dsinstallation du connecteur femelle du cble d'extension
Tche Marche suivre



1. Vrifiez que la CPU et tout le matriel S7-1200 sont
hors tension.
2. Dverrouillez le connecteur :
Placez un tournevis ct de la languette sur le
haut du module d'entres-sorties.
Appuyez lgrement et faites glisser la languette
compltement vers la droite.
3. Soulevez lgrement le connecteur pour
dsenclencher l'extension en crochet.
4. Retirez le connecteur femelle.
96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 57
3.3.8 Adaptateur TS Adapter (TeleService)
3.3.8.1 Connexion de l'adaptateur TeleService
Avant d'installer l'adaptateur TS (TeleService) Adapter IE Basic, vous devez connecter
l'adaptateur TS Adapter et un module TS.
Modules TS disponibles :
Module TS RS232
Module TS Modem
Module TS GSM
Module TS RNIS


PRUDENCE
Le module TS peut tre endommag si vous touchez les contacts de son connecteur
enfichable . Suivez les directives pour composants CSDE afin d'viter que le module TS
ne soit endommag par des dcharges lectrostatiques. Avant de connecter un module TS
et l'adaptateur TS, assurez-vous que tous deux sont inactifs.

1
3
3
2
4
5
6

Module TS Connecteur enfichable du module TS
Adaptateur TS Adapter Ouverture impossible
Elments Port Ethernet
96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
58 Manuel systme, 11/2011, A5E02486682-05

PRUDENCE
Avant de connecter un module TS et l'unit de base TS Adapter, assurez-vous que les
broches de contact ne dvient pas. Lors de la connexion, veillez ce que le connecteur
mle et les lments de guidage soient positionns correctement.
Connectez uniquement un module TS l'adaptateur TS Adapter. N'essayez pas de
connecter par la force l'adaptateur TS Adapter un autre dispositif, tel qu'une CPU S7-
1200. Ne modifiez pas la structure mcanique du connecteur et n'tez et n'endommagez
pas les lments de guidage.

3.3.8.2 Installation de la carte SIM
Localisez l'emplacement de la carte SIM sur la face infrieure du TS module GSM.

IMPORTANT
La carte SIM doit uniquement tre dbroche ou enfiche lorsque le TS module GSM est
hors tension.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 59
Tableau 3- 15 Installation de la carte SIM
Marche suivre Tche
Utilisez un objet pointu pour
enfoncer le bouton d'jection
du porte-carte SIM (dans le
sens de la flche) et retirez le
porte-carte SIM.


TS Module GSM

Carte SIM
Placez la carte SIM dans le
porte-carte SIM comme illustr
et replacez le porte-carte SIM
dans son emplacement.
1
2
3


Porte-carte SIM


Remarque
Assurez-vous que la carte SIM est correctement oriente dans le porte-carte. Sinon, la
connexion entre la carte SIM et le module s'avrera impossible et le bouton d'jection ne
permettra ventuellement plus d'jecter le porte-carte.

96BInstallation
3.3 Procdures d'installation et de dsinstallation
Automate programmable S7-1200
60 Manuel systme, 11/2011, A5E02486682-05
3.3.8.3 Installation de l'ensemble adaptateur TeleService
Conditions requises : L'adaptateur TS Adapter doit tre raccord un module TS et le profil
support doit tre install.

Remarque
Si vous montez l'unit TS verticalement ou dans un environnement fortes vibrations, le
module TS peut se dtacher de l'adaptateur TS Adapter. Utilisez un crochet d'extrmit
8WA1 808 sur le profil support pour tre sr que les modules restent connects.


Tableau 3- 16 Montage et dmontage de l'adaptateur TS Adapter
Tche Marche suivre
Montage :
1. Accrochez l'ensemble form par l'adaptateur TS et le module TS
sur le profil support .
2. Faites pivoter l'ensemble vers le bas jusqu' ce qu'il s'enclenche.
3. Repoussez la barrette de fixation sur chaque module pour fixer
chaque module au profil support.


Dmontage :
1. Retirez le cble analogique et le cble Ethernet de la face infrieure
de l'adaptateur TS.
2. Mettez l'adaptateur TS hors tension.
3. Servez-vous d'un tournevis pour dgager les barrettes de fixation sur
les deux modules.
4. Faites pivoter l'ensemble vers le haut pour le retirer du profil support.


ATTENTION
Avant la mise hors tension, dconnectez la mise la terre de l'adaptateur TS Adapter en
retirant le cble analogique et le cble Ethernet.

3.3.8.4 Montage mural de l'adaptateur TS
Conditions requises : L'adaptateur TS Adapter doit tre raccord un module TS.
1. Dplacez le coulisseau de fixation situ sur la face arrire de l'adaptateur TS et du
module TS dans le sens de la flche jusqu' ce qu'il s'enclenche.
2. Vissez l'adaptateur TS et le module TS sur le mur de montage prvu la position repre
par .
La figure suivante montre l'adaptateur TS Adapter vu de derrire avec les coulisseaux de
fixation dans les deux positions.
96BInstallation
3.4 Conseils de cblage
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 61
1
1
2
2
4
1
0
8
1
1
6

Coulisseau de fixation
Trous percs pour le montage mural

3.4 Conseils de cblage
Une mise la terre et un cblage corrects de tout l'quipement lectrique sont importants
pour garantir un fonctionnement optimal de votre systme et pour fournir une protection
supplmentaire contre le bruit lectrique pour votre application et le S7-1200. Vous
trouverez les schmas de cblage du S7-1200 dans les caractristiques techniques
(Page 705).
Conditions requises
Assurez-vous, avant de mettre la terre ou de cbler tout appareil lectrique, que cet
appareil a t mis hors tension. Assurez-vous galement que tout quipement associ a t
mis hors tension.
96BInstallation
3.4 Conseils de cblage
Automate programmable S7-1200
62 Manuel systme, 11/2011, A5E02486682-05
Respectez toutes les normes lectriques nationales et rgionales en vigueur lors du cblage
du S7-1200 et des matriels relis. Installez et exploitez tous les quipements en conformit
avec toutes les normes nationales et rgionales en vigueur. Demandez l'aide des autorits
locales pour dterminer les normes et les rglementations qui s'appliquent votre cas
particulier.

ATTENTION
L'installation ou le cblage du S7-1200 ou d'quipements relis alors qu'ils sont sous
tension peut provoquer un choc lectrique ou un fonctionnement imprvisible du matriel.
La non-dsactivation de l'alimentation complte du S7-1200 et des appareils qui y sont
relis pendant les procdures d'installation ou de dsinstallation peut entraner la mort, des
blessures graves ou des dommages matriels importants en raison du choc lectrique ou
du fonctionnement imprvisible du matriel.
Prenez toujours toutes les mesures de scurit ncessaires et assurez-vous que
l'alimentation de l'automate S7-1200 est coupe avant de tenter d'installer ou de dmonter
le S7-1200 ou des matriels relis.

Tenez toujours compte de la scurit lorsque vous planifiez la mise la terre et le cblage
de votre systme S7-1200. Les appareils de commande lectroniques, tels que le S7-1200,
peuvent subir des dfaillances provoquant un fonctionnement inattendu des quipements
commands ou contrls. Vous devez, pour cette raison, toujours mettre en oeuvre des
dispositifs de scurit indpendants du S7-1200 pour viter les blessures ou les dgts
matriels ventuels.

ATTENTION
Les appareils de commande peuvent prsenter des dfaillances dans des situations non
sres et provoquer un fonctionnement inattendu des appareils pilots pouvant entraner la
mort, des blessures graves et des dommages matriels importants.
Vous devez donc utiliser une fonction d'arrt d'urgence, des dispositifs de scurit
lectromcaniques ou d'autres scurits redondantes qui soient indpendants du S7-1200.

Conseils pour l'isolation
Les barrires d'alimentation en courant alternatif du S7-1200 et les barrires d'E/S vers les
circuits en courant alternatif ont t conues et homologues comme fournissant une
sparation sre entre les tensions de ligne courant alternatif et les circuits basse tension.
Ces barrires incluent une isolation double ou renforce, ou une isolation de base plus
complmentaire, selon diverses normes. Les composants qui traversent ces barrires, tels
que coupleurs optiques, condensateurs, transformateurs et relais, ont t homologus
comme fournissant une sparation sre. Les barrires d'isolation qui satisfont ces
exigences ont t identifies dans les fiches techniques produit du S7-1200 comme ayant
une isolation de 1500 V~ ou plus. Cette dsignation se base sur un test d'usine de routine
de (2Ue + 1000 V~) ou quivalent selon des mthodes approuves. Les barrires de
sparation sres du S7-1200 ont subi un essai de type 4242 V-.
96BInstallation
3.4 Conseils de cblage
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 63
La sortie d'alimentation de capteur, les circuits de communication et les circuits logiques
internes d'un S7-1200 alimentation en courant alternatif incluse sont fournis comme TBTS
(trs basse tension de scurit) selon EN 61131-2.
Pour conserver le caractre sr des circuits basse tension du S7-1200, les connexions
externes aux ports de communication, les circuits analogiques et tous les circuits
d'alimentation et d'E/S 24 V nominal doivent tre aliments par des sources homologues
satisfaisant aux exigences TBTS, TBTP, classe 2, tension limite ou courant limit, selon
diverses normes.

ATTENTION
L'utilisation d'alimentations non isoles ou une seule isolation pour alimenter les circuits
basse tension partir d'une ligne en courant alternatif peut provoquer l'apparition de
tensions dangereuses sur des circuits censs tre srs au toucher, tels que des circuits de
communication ou un cblage de capteur basse tension.
De telles tensions leves imprvisibles peuvent entraner la mort, des blessures graves et
des dommages matriels importants.
Utilisez exclusivement des convertisseurs de puissance haute tension-basse tension qui
sont homologus comme sources de circuits tension limite toucher sr.

Conseils pour la mise la terre du S7-1200
La meilleure faon de mettre la terre votre application est de vous assurer que tous les
branchements de commun et de terre de votre S7-1200 et des matriels relis sont mis la
terre en un point unique. Ce point unique doit tre reli directement la masse de terre de
votre systme.
Tous les fils de terre doivent tre aussi courts que possible et doivent avoir une section
importante, par exemple 2 mm
2
(14 AWG).
Lorsque vous choisissez des points de rfrence la terre, pensez galement aux rgles de
scurit correspondantes et l'utilisation correcte des appareils de protection par coupure.
Conseils pour le cblage du S7-1200
Lorsque vous planifiez le cblage pour votre S7-1200, prvoyez un commutateur de coupure
unique qui supprime simultanment le courant pour l'alimentation de la CPU S7-1200, pour
tous les circuits d'entre et pour tous les circuits de sortie. Fournissez une protection contre
les surtensions, telle qu'un fusible ou un disjoncteur, afin de limiter les courants de dfaut sur
le cblage d'alimentation. Pensez galement fournir une protection supplmentaire en
plaant un fusible ou une autre limitation de courant dans chaque circuit de sortie.
Equipez les fils pouvant tre menacs par la foudre d'une protection approprie contre les
surtensions.
Evitez de placer les cbles de signaux et de communication de faible tension dans la mme
goulotte que les cbles d'alimentation en courant alternatif et les cbles pour courant continu
commutation rapide et haute nergie. Posez toujours les fils par paires : conducteur neutre
ou commun avec conducteur sous tension ou de signaux.
96BInstallation
3.4 Conseils de cblage
Automate programmable S7-1200
64 Manuel systme, 11/2011, A5E02486682-05
Utilisez le cble le plus court possible et assurez-vous qu'il est correctement dimensionn
pour transporter le courant requis. Le connecteur CPU et SM accepte des sections de fil
allant de 2 mm
2
0,3 mm
2
(14 AWG 22 AWG). Le connecteur SB accepte des sections de
fil allant de 1,3 mm
2
0,3 mm
2
(16 AWG 22 AWG). Utilisez des fils blinds pour assurer
une protection optimale contre le bruit lectrique. Typiquement, la mise la terre du blindage
au niveau du S7-1200 donne les meilleurs rsultats.
Lorsque vous cblez des circuits d'entre aliments par une source externe, incluez un
dispositif de protection contre les surtensions dans ce circuit. Une protection externe n'est
pas ncessaire pour les circuits aliments par l'alimentation de capteur 24 V- du S7-1200,
car l'alimentation de capteur comprend dj une limitation de courant.
Tous les modules S7-1200 comportent des connecteurs amovibles pour le cblage
utilisateur. Pour viter que les connexions ne se desserrent, assurez-vous que le connecteur
est correctement enfonc et que le fil est bien enfich dans le connecteur. Pour viter
d'endommager le connecteur, veillez ne pas trop serrer les vis. Le couple maximum pour
les vis de connecteur CPU et SM est de 0,56 Nm. Le couple maximum pour les vis de
connecteur SB est de 0,33 Nm.
Le S7-1200 comporte des barrires d'isolation certains points pour empcher des flux de
courant indsirables dans votre installation. Tenez compte de ces barrires d'isolation
lorsque vous concevez le cblage de votre systme. Vous trouverez dans les
caractristiques techniques des informations sur la quantit d'isolation fournie et sur
l'emplacement de ces barrires d'isolation. Ne considrez pas les barrires d'isolation
estimes moins de 1500 V~ comme des barrires de scurit.
Conseils pour les charges de lampe
Les charges de lampe endommagent les contacts relais en raison du fort courant de choc
l'activation. Ce courant de choc reprsente nominalement de 10 15 fois le courant de
rgime permanent pour une lampe au tungstne. Un relais d'interposition ou un limiteur de
surtension remplaable est donc recommand pour des charges de lampe qui seront
commutes de nombreuses fois pendant la dure de vie de l'application.
Conseils pour les charges inductives
Equipez les charges inductives de circuits de protection qui crtent la monte de tension
lorsque la sortie de commande est dsactive. Les circuits de protection par crtage
protgent vos sorties d'une dfaillance prmature due des tensions leves associes
la dsactivation de charges inductives. En outre, ces circuits limitent le bruit lectrique
gnr lors de la commutation de charges inductives. Placer un circuit de protection par
crtage externe de faon qu'il soit lectriquement aux bornes de la charge et physiquement
proximit de la charge est un moyen trs efficace de rduire le bruit lectrique.
96BInstallation
3.4 Conseils de cblage
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 65
Les sorties CC du S7-1200 comprennent des circuits de protection interne par crtage qui
conviennent aux charges inductives dans la plupart des applications. Comme les contacts
de sortie relais du S7-1200 peuvent servir pour commuter une charge en courant continu
aussi bien qu'une charge en courant alternatif, aucune protection interne n'est fournie.

Remarque
L'efficacit d'un circuit de protection par crtage donn tant toutefois dpendante de
l'application, vous devez vrifier qu'il convient votre cas particulier. Vrifiez toujours que
tous les composants utiliss dans votre circuit de protection par crtage ont des valeurs
nominales convenant votre application.

Circuit de protection par crtage typique pour courant continu ou sorties relais qui commutent des
charges inductives en courant continu

A B
1 2
3


Diode 1N4001 ou quivalent

Zener 8,2 V (sorties CC),
Zener 36 V (sorties relais)

Sortie
Dans la plupart des applications, l'ajout d'une diode
(A) en parallle avec une charge inductive en
courant continu suffit, mais si votre application
requiert des temps de dsactivation plus rapides,
nous vous recommandons d'ajouter une diode Zener
(B). Veillez dimensionner votre diode Zener
correctement pour la quantit de courant dans votre
circuit de sortie.
Circuit de protection par crtage typique pour sorties relais qui commutent des charges inductives
en courant alternatif

1
3
2
MOV


0,1 F

100 120

Sortie
Lorsque vous utilisez une sortie relais pour
commuter des charges 115 V/230 V~, placez un
circuit rsistance/condensateur/varistor mtal-oxyde
(MOV) appropri en parallle la charge CA.
Assurez-vous que la tension de travail du varistor est
suprieure d'au moins 20 % la tension de ligne
nominale.


96BInstallation
3.4 Conseils de cblage
Automate programmable S7-1200
66 Manuel systme, 11/2011, A5E02486682-05

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 67
Concepts concernant les automates programmables 4
4.1 Excution du programme utilisateur
La CPU fournit les types suivants de blocs de code qui vous permettent de crer une
structure efficace pour votre programme utilisateur :
Les blocs d'organisation (OB) dfinissent la structure du programme. Certains OB ont
des vnements dclencheurs et un comportement prdfinis, mais vous pouvez
galement crer des OB vnements dclencheurs personnaliss. Les plages de
numros d'OB valides sont prsentes au paragraphe Priorits d'excution et mise en file
d'attente des vnements (Page 75).
Les fonctions (FC) et blocs fonctionnels (FB) contiennent le code de programme qui
correspond des tches ou combinaisons de paramtres spcifiques. Chaque FC ou FB
fournit un jeu de paramtres d'entre et de sortie pour partager les donnes avec le bloc
appelant. Un FB utilise galement un bloc de donnes associ - appel DB d'instance -
pour conserver l'tat de valeurs entre les excutions, utilisable par d'autres blocs dans le
programme. Les numros de FC et de FB valides vont de 1 65535.
Les blocs de donnes (DB) mmorisent des donnes qui peuvent tre utilises par les
blocs de programme. Les numros de DB valides vont de 1 65535.
L'excution du programme utilisateur commence avec un ou plusieurs blocs d'organisation
(OB) de dmarrage qui sont excuts une fois au passage l'tat MARCHE et qui sont
suivis par un ou plusieurs OB du cycle de programme qui sont excuts cycliquement. Un
OB peut galement tre associ un vnement d'alarme - vnement standard ou
vnement d'erreur - et s'excute chaque fois que l'vnement standard ou d'erreur
correspondant se produit.
Une fonction (FC) ou un bloc fonctionnel (FB) est un bloc de code qui peut tre appel dans
un OB ou dans un autre FB ou une autre FC, en respectant les profondeurs d'imbrication
suivantes :
16 en cas d'appel depuis l'OB de cycle de programme ou de dmarrage
4 en cas d'appel depuis les OB d'alarme temporise, d'alarme cyclique, d'alarme horaire,
d'alarme de processus, d'erreur de temps ou d'erreur de diagnostic
Les FC ne sont pas associes un bloc de donnes (DB) particulier alors que les FB sont
lis directement un DB qu'ils utilisent pour transmettre les paramtres et stocker les
valeurs intermdiaires et les rsultats.
La taille du programme utilisateur, des donnes et de la configuration est limite par la
mmoire de chargement et la mmoire de travail disponibles dans la CPU. Il n'y a pas de
limite spcifique au nombre de blocs de chaque type (OB, FC, FB ou DB). Cependant, le
nombre total de blocs est limit 1024.
Chaque cycle comprend l'criture dans les sorties, la lecture des entres, l'excution des
instructions du programme utilisateur et l'excution du traitement d'arrire-plan. On parle
parfois de cycle d'exploration.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
68 Manuel systme, 11/2011, A5E02486682-05
Les modules (SM, SB, CB, CM ou CP) sont dtects et pris en compte seulement lors de la
mise sous tension.
L'enfichage ou le dbrochage d'un module dans le chssis central sous tension ( chaud)
ne sont pas pris en charge. N'enfichez jamais de module dans le chssis central et n'en
dbrochez jamais de module lorsque la CPU est sous tension.
ATTENTION

L'enfichage ou le dbrochage d'un module (SM, SB, CD, CM or CP) du chssis central
lorsque la CPU est sous tension peut provoquer un comportement imprvisible pouvant
entraner des blessures et des dommages matriels.
Assurez-vous toujours que la CPU et le chssis central sont hors tension avant d'insrer
un module dans le chssis central ou d'en dbrocher un module.
Vous pouvez insrer ou retirer une carte mmoire SIMATIC lorsque la CPU est sous
tension. Toutefois, enficher ou retirer une carte mmoire lorsque la CPU est l'tat
MARCHE provoque le passage de cette dernire l'tat ARRET.
PRUDENCE

L'insertion ou le retrait d'une carte mmoire lorsque la CPU est l'tat MARCHE
provoque le passage de cette dernire l'tat ARRET, ce qui peut provoquer des
dommages aux quipements ou au processus pilot.
Lorsque vous insrez ou retirez une carte mmoire, la CPU passe immdiatement
l'tat ARRET. Avant d'insrer ou de retirer une carte mmoire, assurez-vous toujours
que la CPU ne pilote pas activement une machine ou un processus. Installez toujours
un circuit d'arrt d'urgence pour votre application ou votre processus.
Si vous enfichez ou dbrochez un module dans un chssis de priphrie dcentralise
(PROFINET ou PROFIBUS) alors que la CPU est l'tat MARCHE, la CPU gnre une
entre dans la mmoire tampon de diagnostic et reste l'tat MARCHE.
Dans la configuration par dfaut, toutes les E/S TOR et analogiques locales sont actualises
en synchronisme avec le cycle l'aide d'une zone de mmoire interne appele mmoire
image du processus. La mmoire image contient un clich instantan des entres et sorties
physiques (de la CPU, du Signal Board et des modules d'entres-sorties).
La CPU excute les tches suivantes :
La CPU crit les sorties de la mmoire image des sorties dans les sorties physiques.
La CPU lit les entres physiques juste avant l'excution du programme utilisateur et
stocke leurs valeurs dans la mmoire image des entres. Cela garantit que ces valeurs
restent cohrentes pendant toute l'excution des instructions utilisateur.
La CPU excute la logique des instructions utilisateur et actualise les valeurs des sorties
dans la mmoire image des sorties sans les crire dans les sorties physiques relles.
Ce procd fournit une logique cohrente durant l'excution des instructions utilisateur pour
un cycle donn et empche le papillotement des sorties physiques dont l'tat peut changer
de nombreuses reprises dans la mmoire image des sorties.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 69
Vous pouvez prciser si des entres et sorties TOR et analogiques doivent tre actualises
et stockes automatiquement dans la mmoire image du processus. Si vous insrez un
module dans la vue des appareils, ses donnes se situent dans la mmoire image de la
CPU (par dfaut). La CPU gre automatiquement l'change de donnes entre le module et
la zone de mmoire image pendant l'actualisation de la mmoire image. Pour exclure des
entres ou sorties TOR ou analogiques de l'actualisation automatique de la mmoire image,
slectionnez l'appareil appropri dans la Configuration des appareils, affichez l'onglet
Proprits, affichez si ncessaire les dtails pour localiser les entres/sorties dsires, puis
slectionnez "Adresses E/S / ID matriel". Modifiez alors l'entre pour "Mmoire image" de
"MI cyclique" "---". Pour rintgrer les entres et sorties dans l'actualisation automatique
de la mmoire image, ractivez l'option "MI cyclique".
Vous pouvez lire directement des valeurs d'entres physiques et crire directement des
valeurs de sorties physiques lors de l'excution d'une instruction. Une lecture directe accde
l'tat en cours de l'entre physique et n'actualise pas la mmoire image des entres, que
l'entre soit ou non configure pour tre stocke dans la mmoire image. Une criture
directe dans la sortie physique actualise la fois la mmoire image des sorties (si la sortie
est configure pour tre stocke dans la mmoire image) et la sortie physique. Ajoutez le
suffixe ":P" l'adresse d'entre/sortie si vous voulez que le programme accde aux donnes
d'E/S directement par l'entre ou la sortie physique au lieu de la mmoire image.
La CPU prend en charge la priphrie d'E/S la fois pour les rseaux PROFINET et
PROFIBUS (Page 423).
4.1.1 Etats de fonctionnement de la CPU
La CPU a trois tats de fonctionnement : l'tat ARRET (STOP), l'tat MISE EN ROUTE et
l'tat MARCHE (RUN). Des DEL d'tat en face avant de la CPU signalent l'tat de
fonctionnement en cours.
A l'tat ARRET, la CPU n'excute pas le programme. Vous pouvez y charger un projet.
A l'tat MISE EN ROUTE, les OB de dmarrage (s'il y en a) sont excuts une fois. Les
vnements d'alarme ne sont pas traits pendant la mise en route.
A l'tat MARCHE, les OB de cycle de programme sont excuts de manire rpte. Des
vnements d'alarme peuvent survenir et tre traits tout moment l'tat MARCHE.
Certaines parties d'un projet peuvent tre charges dans la CPU l'tat MARCHE
(Page 697).
La CPU accepte un dmarrage chaud pour le passage l'tat MARCHE. Le dmarrage
chaud ne comprend pas d'effacement gnral de la mmoire. Toutes les donnes systmes
et utilisateur non rmanentes sont initialises lors du dmarrage chaud. Les donnes
utilisateur rmanentes sont conserves.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
70 Manuel systme, 11/2011, A5E02486682-05
Un effacement gnral efface toute la mmoire de travail, efface les zones de mmoire
rmanentes et non rmanentes et copie la mmoire de chargement dans la mmoire de
travail. Un effacement gnral n'efface pas la mmoire tampon de diagnostic ni les valeurs
sauvegardes de manire permanente de l'adresse IP.

Remarque
Lorsque vous chargez un ou plusieurs DB de STEP 7 V11 dans une CPU S7-1200 V2, les
valeurs rmanentes et non rmanentes de ces DB sont rinitialises. Le passage suivant
l'tat MARCHE prend la forme d'un dmarrage chaud qui entrane la rinitialisation de
toutes les donnes non rmanentes et l'affectation des valeurs conserves toutes les
donnes rmanentes.
Lorsque vous chargez des lments de projet (configuration d'appareil, blocs de code ou
DB, par exemple) de STEP 7 V10.5 dans n'importe quelle CPU S7-1200 ou de STEP 7 V11
dans une CPU S7-1200 V1 (ou une CPU V2 qui a t configure en tant que CPU V1), le
passage suivant l'tat MARCHE entrane la rinitialisation de tous les DB dans le projet.

Vous pouvez configurer le paramtre "Dmarrage aprs mise sous tension" de la CPU. Ce
paramtre de configuration apparat dans "Configuration d'appareil" pour la CPU, sous "Mise
en route". A la mise sous tension, la CPU excute une squence de vrifications du
diagnostic de mise en route et effectue l'initialisation du systme. Pendant l'initialisation du
systme, la CPU efface tous les mmentos non rmanents et redonne tous les DB non
rmanents leurs valeurs initiales provenant de la mmoire de chargement. La CPU conserve
les mmentos rmanents et le contenu des DB rmanents et passe l'tat de
fonctionnement appropri. La dtection de certaines erreurs empche le passage de la CPU
l'tat MARCHE. La CPU accepte les configurations suivantes :
Pas de mise en route (rester en ARRET)
Dmarrage chaud - MARCHE
Dmarrage chaud - mode de fonctionnement avant la mise hors tension
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 71
Vous pouvez changer l'tat de fonctionnement en cours l'aide des commandes "ARRET"
et "MARCHE" (Page 685) des outils en ligne du logiciel de programmation. Vous pouvez
aussi insrer une instruction STP (Page 240) dans votre programme pour faire passer la
CPU l'tat ARRET. Cela vous permet d'arrter l'excution de votre programme selon la
logique.

A l'tat ARRET, la CPU traite toute demande de communication de manire approprie
et effectue un auto-diagnostic. La CPU n'excute pas le programme utilisateur et il n'y a
pas d'actualisation automatique de la mmoire image du processus.
Vous ne pouvez charger votre projet que lorsque la CPU est l'tat ARRET.
Dans les tats MISE EN ROUTE et MARCHE, la CPU effectue les tches prsentes
dans la figure suivante.
A B C D
E
F



MISE EN ROUTE MARCHE
A Efface la mmoire image des entres
(I).
Ecrit la mmoire image des sorties dans les
sorties physiques.
B Initialise les sorties avec leur dernire
valeur ou leur valeur de
remplacement.
Copie l'tat des entres physiques dans la
mmoire image des entres.
C Excute les OB de dmarrage. Excute les OB de cycle de programme.
D Copie l'tat des entres physiques
dans la mmoire image des entres.
Ralise des tests d'auto-diagnostic.
E Enregistre tous les vnements
d'alarme dans la file d'attente en vue
de leur traitement aprs passage
l'tat MARCHE.
Traite les alarmes et la communication
n'importe quel moment du cycle.
F Valide l'criture de la mmoire image
des sorties dans les sorties physiques.

97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
72 Manuel systme, 11/2011, A5E02486682-05
Traitement de MISE EN ROUTE
A chaque fois que l'tat de fonctionnement passe de ARRET MARCHE, la CPU efface la
mmoire image des entres, initialise la mmoire image des sorties et traite les OB de
dmarrage. Tout accs en lecture la mmoire image des entres par des instructions dans
les OB de dmarrage lit zro et non l'tat en cours de l'entre physique. Ainsi, pour lire l'tat
en cours de l'entre physique pendant la mise en route, vous devez effectuer une lecture
directe. Les OB de dmarrage ainsi que tous les FB et FC associs sont ensuite excuts.
En prsence de plus d'un OB de dmarrage, chacun est excut par ordre de numro d'OB,
l'OB de plus petit numro tant excut en premier.
Chaque OB de dmarrage comprend des informations de dmarrage qui vous aident
dterminer la validit des donnes rmanentes et l'horloge temps rel. Vous pouvez
programmer dans les OB de dmarrage des instructions qui examinent ces valeurs de
dmarrage afin de dclencher l'action approprie. Les informations de dmarrage suivantes
sont prises en charge par les OB de dmarrage :
Tableau 4- 1 Informations de dmarrage prises en charge par les OB de dmarrage
Entre Type de
donnes
Description
LostRetentive Bool Ce bit est vrai si les zones de stockage de donnes rmanentes ont
t perdues.
LostRTC Bool Ce bit est vrai si l'horloge temps rel a t perdue.
La CPU excute galement les tches suivantes pendant le traitement de mise en route.
Les alarmes sont mises en file d'attente mais ne sont pas traites pendant la phase de
mise en route.
Aucune surveillance du temps de cycle n'est effectue pendant la phase de mise en
route.
Il est possible de modifier la configuration de HSC (compteur rapide), PWM (modulation
de largeur des impulsions) et des modules PtP (communication point point) pendant la
mise en route.
Mais l'excution relle de HSC, PWM et des modules de communication point point
n'est possible qu' l'tat MARCHE.
Une fois l'excution des OB de dmarrage acheve, la CPU passe l'tat MARCHE et traite
les tches de commande lors d'un cycle continu.
4.1.2 Traitement du cycle l'tat MARCHE
A chaque cycle, la CPU crit dans les sorties, lit les entres, excute le programme
utilisateur, actualise les modules de communication et ragit aux vnements d'alarme
utilisateur et aux demandes de communication. Les demandes de communication sont
traites priodiquement pendant tout le cycle.
Ces actions ( l'exception des vnements d'alarme utilisateur) sont assures rgulirement
et la suite les unes des autres. Les vnements d'alarme utilisateur activs sont grs
selon leur priorit dans l'ordre o ils se produisent.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 73
Le systme garantit que le cycle s'achvera au bout d'une dure appele temps de cycle
maximum. Dans le cas contraire, un vnement d'erreur de temps est gnr.
Chaque cycle commence par l'extraction des valeurs en cours des sorties TOR et
analogiques de la mmoire image et leur criture dans les sorties physiques de la CPU,
du SB et des SM configures pour l'actualisation automatique des E/S (configuration par
dfaut). Lorsqu'on accde une sortie physique par une instruction, la mmoire image
des sorties et la sortie physique elle-mme sont toutes deux actualises.
Chaque cycle se poursuit par la lecture des valeurs en cours des entres TOR et
analogiques dans la CPU, le SB et les SM configures pour l'actualisation automatique
des E/S (configuration par dfaut), puis par l'criture de ces valeurs dans la mmoire
image des entres. Lorsqu'on accde une entre physique par une instruction,
l'instruction accde la valeur de l'entre physique mais la mmoire image des entres
n'est pas actualise.
Une fois les entres lues, le programme utilisateur est excut de la premire instruction
jusqu' l'instruction finale. Cela comprend tous les OB du cycle de programme avec leurs
FC et FB associs. Les OB du cycle de programme sont excuts par ordre de numro
d'OB, l'OB de plus petit numro tant excut en premier.
Le traitement de la communication se produit priodiquement pendant tout le cycle,
interrompant ventuellement l'excution du programme utilisateur.
Les contrles d'auto-diagnostic comprennent des contrles priodiques du systme ainsi
que des contrles de l'tat des modules d'E/S.
Des alarmes peuvent se produire tout endroit du cycle ; elles sont dclenches sur
vnement. Lorsqu'un vnement se produit, la CPU interrompt le cycle et appelle l'OB qui a
t configur pour traiter cet vnement. Lorsque l'OB a fini de traiter l'vnement, la CPU
reprend l'excution du programme utilisateur l'endroit o elle s'tait interrompue.
4.1.3 Blocs d'organisation (OB)
Les OB pilotent l'excution du programme utilisateur. Chaque OB doit avoir un numro d'OB
unique. Les numros en dessous de 200 sont rservs aux OB par dfaut. Il faut numroter
les autres OB partir de 200.
Des vnements spcifiques dans la CPU dclenchent l'excution d'un bloc d'organisation.
Les OB ne peuvent pas s'appeler les uns les autres ni tre appels dans une FC ou un FB.
Seul un vnement dclencheur, tel qu'une alarme de diagnostic ou un intervalle de temps,
peut lancer l'excution d'un OB. La CPU traite les OB en fonction de leur classe de priorit
respective, les OB de priorit suprieure tant excuts avant les OB de priorit infrieure.
La classe de priorit la plus faible est 1 (pour le cycle du programme principal) et la classe
de priorit la plus leve est 27 (pour les alarmes d'erreur de temps).
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
74 Manuel systme, 11/2011, A5E02486682-05
Les OB commandent les oprations suivantes :
Les OB du cycle de programme s'excutent cycliquement lorsque la CPU est l'tat
MARCHE. Le bloc principal du programme est un OB de cycle de programme. C'est l
que vous placez les instructions commandant votre programme et que vous appelez
d'autres blocs utilisateur. Il est possible d'avoir plusieurs OB de cycle de programme qui
sont excuts par ordre numrique. L'OB 1 est l'OB pris par dfaut. Les autres OB de
cycle de programme doivent tre identifis en tant que OB 200 ou plus.
Les OB de dmarrage s'excutent une fois lorsque la CPU passe de l'tat ARRET l'tat
MARCHE, y compris lors de la mise sous tension en mode MARCHE et en transitions
commandes de ARRET MARCHE. Une fois les OB de dmarrage achevs, l'OB
principal "Cycle de programme" commence son excution. Il est possible d'avoir
plusieurs OB de dmarrage. L'OB 100 est l'OB pris par dfaut. Les autres doivent tre
suprieurs ou gaux OB 200.
Les OB d'alarme cyclique s'excutent un rythme indiqu. Un OB d'alarme cyclique
interrompt l'excution cyclique du programme intervalles dfinis par l'utilisateur, toutes
les 2 secondes par exemple. Vous pouvez configurer au plus 4 vnements en tout pour
les alarmes temporises et les alarmes cycliques un moment donn, un OB tant
autoris pour chaque vnement d'alarme temporise et d'alarme cyclique configur.
L'OB doit tre suprieur ou gal OB 200.
Les OB d'alarme de processus s'excutent lorsque l'vnement d'alarme de processus
correspondant se produit, y compris fronts montants et descendants sur les entres TOR
intgres et vnements HSC. Un OB d'alarme de processus interrompt l'excution
cyclique normale du programme en raction un signal provenant d'un vnement du
processus. Vous dfinissez les vnements dans les proprits de la configuration
matrielle. Un OB est autoris pour chaque vnement d'alarme de processus. L'OB doit
tre suprieur ou gal OB 200.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 75
Un OB d'erreur de temps s'excute lorsque le temps de cycle maximum est dpass ou
qu'un vnement erreur de temps se produit. L'OB qui traite l'alarme d'erreur de temps
est l'OB 80. S'il est dclench, il s'excute en interrompant l'excution normale du
programme cyclique ou tout autre OB d'vnement. Les vnements qui dclenchent
l'alarme d'erreur de temps et la raction de la CPU ces vnements sont dcrits ci-
dessous :
Dpassement du temps de cycle maximum : Vous configurez le temps de cycle
maximum dans les proprits de la CPU. Si l'OB 80 n'existe pas, la CPU ragit au
dpassement du temps maximum en passant l'tat ARRET.
Erreurs de temps : Si l'OB 80 n'existe pas, la raction de la CPU est de rester l'tat
MARCHE. Des erreurs de temps se produisent si l'vnement horaire est manqu ou
rpt, si la file d'attente dborde ou si un OB d'vnement (alarme temporise,
alarme horaire ou alarme cyclique) dmarre avant que la CPU n'ait achev l'excution
du premier.
L'apparition de l'un de ces vnements gnre une entre dcrivant l'vnement dans la
mmoire tampon de diagnostic. L'entre de mmoire tampon de diagnostic est gnre
indpendamment de l'existence de l'OB 80.
Les OB d'alarme de diagnostic s'excutent lorsqu'une erreur de diagnostic est dtecte
et signale. Un OB d'alarme de diagnostic interrompt l'excution cyclique normale du
programme si un module apte au diagnostic identifie une erreur (si l'alarme de diagnostic
a t active pour ce module). OB 82 est le seul numro d'OB accept pour l'vnement
erreur de diagnostic. Vous pouvez inclure une instruction STP dans votre OB 82 si vous
souhaitez que la CPU passe l'tat ARRET lors de la rception de ce type d'erreur. S'il
n'y a pas d'OB de diagnostic dans le programme, la CPU ne tient pas compte de l'erreur
(et reste l'tat MARCHE).
4.1.4 Priorits d'excution et mise en file d'attente des vnements
Le traitement de la CPU est command par des vnements. Un vnement dclenche un
OB d'alarme qu'il faut excuter. Vous pouvez dfinir l'OB d'alarme pour un vnement lors
de la cration du bloc, lors de la configuration de l'appareil ou l'aide d'une opration
ATTACH ou DETACH. Certains vnements se produisent sur une base rgulire, tels les
vnements cycle de programme ou les vnements alarme cyclique. D'autres vnements
ne se produisent qu'une fois, tels l'vnement dmarrage et les vnements alarme
temporise. Certains vnements se produisent lorsqu'il y a un changement dclench par
le matriel, par exemple un vnement front sur une entre ou un vnement compteur
rapide. Il y a galement des vnements comme l'vnement erreur de diagnostic et
l'vnement erreur de temps qui ne se produisent que lorsqu'il y a une erreur. Les priorits
et files d'attente d'vnements sont utilises pour dterminer l'ordre de traitement des OB
d'alarme d'vnement.
L'vnement cycle de programme se produit une fois chaque cycle. Pendant le cycle de
programme, la CPU crit dans les sorties, lit les entres et excute les OB de cycle de
programme. L'vnement cycle de programme est obligatoire et est toujours activ. Vous
pouvez n'avoir aucun OB de cycle de programme ou avoir plusieurs OB slectionns pour
l'vnement cycle de programme. Une fois l'vnement cycle de programme dclench,
l'OB de cycle de programme ayant le plus petit numro (gnralement l'OB 1) est excut.
Les autres OB de cycle de programme sont excuts de faon squentielle (par ordre
numrique) l'intrieur du cycle de programme.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
76 Manuel systme, 11/2011, A5E02486682-05
Les vnements alarme cyclique vous permettent de configurer l'excution d'un OB d'alarme
avec une priodicit configure. La priodicit initiale est configure lors de la cration de
l'OB et de sa slection comme OB d'alarme cyclique. Un vnement alarme cyclique
interrompt le cycle de programme et excute l'OB d'alarme cyclique (l'vnement alarme
cyclique est dans une classe de priorit suprieure celle de l'vnement cycle de
programme).
Un seul OB d'alarme cyclique peut tre associ un vnement alarme cyclique.
Il est possible de dfinir un dphasage pour chaque vnement alarme cyclique de sorte
que l'excution les unes par rapport aux autres d'alarmes cycliques de mme priodicit
peut tre dcale du temps de dphasage. Le dphasage par dfaut est 0. Pour modifier le
dphasage initial ou la priodicit initiale d'un vnement alarme cyclique, cliquez avec le
bouton droit de la souris sur l'OB d'alarme cyclique dans l'arborescence du projet, cliquez
sur "Proprits" puis sur "Alarme cyclique" et entrez les nouvelles valeurs initiales. Vous
pouvez galement connatre et modifier la priodicit et le dphasage depuis votre
programme l'aide des instructions Interroger alarme cyclique (QRY_CINT) et Rgler
alarme cyclique (SET_CINT). Les valeurs de priodicit et de dphasage dfinies l'aide de
l'instruction SET_CINT ne perdurent pas en cas de mise hors tension puis sous tension ou
de passage l'tat ARRET ; la priodicit et le dphasage reprennent leur valeur initiale
aprs une mise hors tension puis sous tension ou un passage l'tat ARRET. La CPU
prend en charge un total de quatre vnements d'alarme cyclique et d'alarme temporise.
L'vnement dmarrage se produit une fois lors d'une transition de ARRET MARCHE et
provoque l'excution des OB de dmarrage. Plusieurs OB peuvent tre slectionns pour
l'vnement dmarrage. Les OB de dmarrage sont excuts par ordre numrique.
Les vnements alarme temporise vous permettent de configurer l'excution d'un OB
d'alarme l'expiration d'un temps de retard indiqu. Le temps de retard est dfini au moyen
de l'instruction SRT_DINT. Les vnements alarme temporise interrompent le cycle de
programme afin d'excuter l'OB d'alarme temporise. Un seul OB d'alarme temporise peut
tre associ un vnement alarme temporise. La CPU accepte quatre vnements
alarme temporise.
Les vnements alarme de processus sont dclenchs par un changement dans le matriel,
par exemple un front montant ou descendant sur une entre ou un vnement HSC
(compteur rapide). Un OB d'alarme peut tre slectionn pour chaque vnement alarme de
processus. Les vnements alarme de processus sont activs dans la configuration des
appareils. Les OB pour l'vnement sont indiqus dans la configuration des appareils ou au
moyen d'une instruction ATTACH dans le programme utilisateur. La CPU accepte plusieurs
vnements alarme de processus. Le nombre exact d'vnements dpend du modle de
CPU et du nombre d'entres.
Les vnements erreur de temps et erreur de diagnostic sont dclenchs lorsque la CPU
dtecte une erreur. Ces vnements constituent une classe de priorit suprieure celle
des autres vnements d'alarme et peuvent interrompre l'excution des vnements alarme
temporise, alarme cyclique et alarme de processus. Un OB d'alarme peut tre indiqu pour
chacun des vnements erreur de temps et erreur de diagnostic.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 77
Comprendre les priorits d'excution et la mise en file d'attente des vnements
Le nombre d'vnements en attente provenant d'une source unique est limit, avec une file
d'attente diffrente pour chaque type d'vnement. Lorsque la limite d'vnements en
attente pour un type d'vnement donn est atteinte, l'vnement suivant qui survient est
perdu. Reportez-vous au paragraphe suivant sur la comprhension des vnements d'erreur
de temps pour plus d'informations concernant les dbordements de file d'attente.
Chaque vnement de CPU a une priorit associe. Vous ne pouvez pas modifier la priorit
d'un OB. En gnral, les vnements sont traits selon l'ordre de priorit (priorit la plus
leve en premier). Les vnements de mme priorit sont traits selon le principe "premier
arriv, premier servi".
Tableau 4- 2 Evnements d'OB
Evnement Numro d'OB Quantit autorise Evnement dclencheur Priorit
d'OB
Cycle de
programme
OB 1, OB 200 OB
65535
1 vnement de cycle de
programme
Plusieurs OB autoriss
Fin de l'OB de dmarrage
Fin du dernier OB de cycle de
programme
1
Mise en route OB 100, OB 200
OB 65535
1 vnement de dmarrage
1, 2

Plusieurs OB autoriss
Transition ARRET/MARCHE 1
Un vnement OB d'alarme
temporise est programm.
3 Temps OB 200 OB 65535 Jusqu' 4 vnements
horaires
3

1 OB par vnement Un vnement OB d'alarme cyclique
est programm.
4
Fronts :
Evnements front montant :
16 max.
Evnements front descendant :
16 max.
5 Processus OB 200 OB 65535 Jusqu' 50 vnements
d'alarme de processus
4

1 OB par vnement
Pour HSC :
CV=PV : 6 max.
Inversion du sens : 6 max.
Rinitialisation externe : 6 max.
6
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
78 Manuel systme, 11/2011, A5E02486682-05
Evnement Numro d'OB Quantit autorise Evnement dclencheur Priorit
d'OB
Erreur de
diagnostic
OB 82 1 vnement (uniquement si
l'OB 82 a t charg)
Le module transmet une erreur. 9
Erreur de temps OB 80 1 vnement (uniquement si
l'OB 80 a t charg)
5

Le temps de cycle maximal a t
dpass.
Une deuxime alarme (cyclique
ou horaire) a t dmarre avant
que la CPU n'ait fini d'excuter la
premire alarme.
26
1
L'vnement dmarrage et l'vnement cycle de programme ne se produisent jamais en mme temps, car l'vnement
dmarrage doit s'achever avant que l'vnement cycle de programme ne commence (gestion par le systme
d'exploitation).
2
Seul l'vnement erreur de diagnostic (OB 82) interrompt l'vnement dmarrage. Tous les autres vnements sont
mis en attente afin d'tre traits une fois l'vnement de dmarrage termin.
3
La CPU met disposition un total de 4 vnements horaires que les OB d'alarme temporise et les OB d'alarme
cyclique se partagent. Le nombre d'OB d'alarme temporise et d'OB d'alarme cyclique dans votre programme utilisateur
ne peut pas tre suprieur 4.
4
Vous pouvez avoir plus de 50 vnements alarme de processus si vous utilisez les instructions DETACH et ATTACH.
5
Vous pouvez configurer la CPU afin qu'elle reste l'tat MARCHE si le temps de cycle maximum a t dpass ou
vous pouvez rinitialiser le temps de cycle avec l'instruction RE_TRIGR. Toutefois, la CPU passera l'tat ARRET au
deuxime dpassement du temps de cycle maximum pendant le mme cycle.
Une fois que l'excution d'un OB de priorit comprise entre 2 et 25 a commenc, le
traitement de cet OB ne peut pas tre interrompu par l'apparition d'un autre vnement,
l'exception de l'OB 80 (vnement erreur de temps dont la priorit est gale 26). Tous les
autres vnements sont mis en file d'attente en vue de leur traitement ultrieur, ce qui
permet l'OB en cours de s'achever.
Temps d'attente d'alarme
Le temps d'attente d'un vnement d'alarme (le temps qui s'coule entre la notification la
CPU qu'un vnement s'est produit et le moment o la CPU excute la premire instruction
dans l'OB grant cet vnement) est d'environ 175 s, condition qu'un OB de cycle de
programme soit le seul programme de service d'vnement actif au moment de l'vnement
d'alarme.
Comprendre les vnements d'erreur de temps
L'apparition d'une quelconque des diffrentes situations d'erreur de temps provoque un
vnement d'erreur de temps. Les erreurs de temps suivantes sont prises en charge :
Temps de cycle maximum dpass
Impossible de dmarrer l'OB requis
Dbordement de file d'attente
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 79
L'erreur Temps de cycle maximum dpass se produit si le cycle du programme ne s'achve
pas pendant le temps de cycle maximum dfini. Consultez le paragraphe "Surveillance du
temps de cycle" (Page 81)" pour plus d'informations sur le temps de cycle maximum, la
manire de configurer le temps de cycle maximum et la rinitialisation de la temporisation de
cycle.
L'erreur Impossible de dmarrer l'OB requis se produit si un OB est demand par une
alarme cyclique, une alarme temporise ou une alarme horaire mais qu'il est dj en cours
d'excution.
L'erreur Dbordement de file d'attente apparat si les alarmes se produisent plus vite qu'elles
ne peuvent tre traites. Le nombre d'vnements en attente (dans une file) est limit grce
une file d'attente diffrente pour chaque type d'vnement. Si un vnement se produit
alors que la file d'attente correspondante est pleine, un vnement d'erreur de temps est
gnr.
Tous les vnements erreur de temps dclenchent l'excution de l'OB 80 si ce dernier
existe. Si le programme utilisateur ne contient pas d'OB 80, la configuration d'appareil de la
CPU dtermine la raction de la CPU l'erreur de temps :
La configuration par dfaut pour les erreurs de temps, comme par exemple le dmarrage
d'une deuxime alarme cyclique avant que la CPU n'ait fini d'excuter la premire, est
que la CPU reste l'tat MARCHE.
La configuration par dfaut pour le dpassement du temps de cycle maximum est que la
CPU passe l'tat ARRET.
Vous pouvez utiliser l'instruction RE_TRIGR pour rinitialiser le temps de cycle maximum.
Toutefois, si deux erreurs "Temps de cycle maximum dpass" se produisent pendant le
mme cycle de programme sans rinitialisation de la temporisation du cycle, la CPU passe
l'tat ARRET que l'OB 80 existe ou non. Reportez-vous au paragraphe "Surveillance du
temps de cycle" (Page 81).
L'OB 80 comprend des informations de dclenchement qui vous aident dterminer quel
vnement et quel OB ont gnr l'erreur de temps. Vous pouvez programmer dans l'OB 80
des instructions pour examiner ces valeurs de dclenchement et prendre les mesures
appropries.
Tableau 4- 3 Informations de dclenchement pour l'OB 80
Entre Type de donnes Description
fault_id BYTE 16#01 : temps de cycle maximum dpass
16#02 : impossible de dmarrer l'OB requis
16#07 et 16#09 : dbordement de file d'attente
csg_OBnr OB_ANY Numro de l'OB en cours d'excution lorsque l'erreur s'est
produite
csg_prio UINT Priorit de l'OB l'origine de l'erreur
Il n'existe pas d'OB 80 d'erreur de temps la cration d'un nouveau projet. Si vous le
dsirez, vous ajoutez l'OB 80 d'erreur de temps votre projet en double-cliquant sur "Ajouter
nouveau bloc" sous "Blocs de programme" dans l'arborescence, puis en choisissant "Bloc
d'organisation" et enfin "Erreur de temps".
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
80 Manuel systme, 11/2011, A5E02486682-05
Comprendre les vnements d'erreur de diagnostic
Certains appareils analogiques (locaux), PROFINET et PROFIBUS sont capables de
dtecter et de signaler des erreurs de diagnostic. L'apparition ou l'limination d'une
quelconque des diffrentes situations d'erreur de diagnostic provoque un vnement
d'erreur de diagnostic. Les erreurs de diagnostic suivantes sont prises en charge :
Pas de courant utilisateur
Limite suprieure dpasse
Limite infrieure dpasse
Rupture de fil
Court-circuit
Les vnements erreur de diagnostic dclenchent l'excution de l'OB 82 si ce dernier existe.
Si l'OB 82 n'existe pas, la CPU ne tient pas compte de l'erreur. Il n'existe pas d'OB 82
d'alarme de diagnostic la cration d'un nouveau projet. Si vous le dsirez, vous ajoutez
l'OB 82 d'alarme de diagnostic votre projet en double-cliquant sur "Ajouter nouveau bloc"
sous "Blocs de programme" dans l'arborescence, puis en choisissant "Bloc d'organisation" et
enfin "Alarme de diagnostic".

Remarque
Erreurs de diagnostic pour les appareils analogiques locaux multivoies (E/S, RTD et
Thermocouple)
L'OB 82 d'alarme de diagnostic ne peut signaler qu'une erreur de diagnostic de voie la fois.
Si deux voies d'un appareil multivoie prsentent une erreur, la deuxime erreur ne
dclenche l'OB 82 que dans les conditions suivantes : la premire erreur de voie est
corrige, l'excution de l'OB 82 dclenche par la premire erreur est acheve et la
deuxime erreur persiste.

L'OB 82 comprend des informations de dclenchement qui vous aident dterminer si
l'vnement est d l'apparition ou l'limination d'une erreur, ainsi que l'appareil et la voie
ayant signal l'erreur. Vous pouvez programmer dans l'OB 82 des instructions pour
examiner ces valeurs de dclenchement et prendre les mesures appropries.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 81
Tableau 4- 4 Informations de dclenchement pour l'OB 82
Entre Type de donnes Description
IOstate WORD Etat E/S de l'appareil :
Bit 0 = 1 si la configuration est correcte et = 0 si la configuration n'est
plus correcte.
Bit 4 = 1 si une erreur est prsente (rupture de fil, par exemple).
Bit 4 = 0 en l'absence d'erreur.
Bit 5 = 1 si la configuration n'est pas correcte et = 0 si la
configuration est nouveau correcte.
Bit 6 = 1 si une erreur d'accs aux E/S s'est produite. Reportez-vous
laddr qui contient l'identificateur matriel de l'E/S en erreur d'accs.
Bit 6 = 0 en l'absence d'erreur.
laddr HW_ANY Identificateur matriel de l'appareil ou de l'unit fonctionnelle ayant
signal l'erreur
1

channel UINT Numro de voie
multierror BOOL VRAI en prsence de plusieurs erreurs
1
L'entre laddr contient l'identificateur matriel de l'appareil ou de l'unit fonctionnelle qui a renvoy l'erreur.
L'identificateur matriel est affect automatiquement lorsque des composants sont insrs dans la vue des appareils ou
du rseau et il apparat dans l'onglet Constantes des variables API. Un nom est galement dfini automatiquement pour
l'identificateur matriel. Ces entres dans l'onglet Constantes des variables API ne peuvent pas tre modifies.
4.1.5 Surveillance du temps de cycle
Le temps de cycle est le temps ncessaire au systme d'exploitation de la CPU pour
excuter la phase cyclique de l'tat MARCHE. La CPU fournit deux mthodes de
surveillance du temps de cycle :
Temps de cycle maximum
Temps de cycle minimum fixe
La surveillance du cycle commence une fois l'vnement dmarrage achev. La
configuration de cette fonction se fait dans la "Configuration d'appareil" pour la CPU, sous
"Temps de cycle".
La CPU surveille toujours le temps de cycle et ragit si le temps de cycle maximum est
dpass. Si le temps de cycle maximum configur est dpass, une erreur est gnre et
est traite de l'une des deux manires suivantes :
Si le programme utilisateur ne contient pas d'OB 80, la CPU gnre une erreur et passe
l'tat ARRET. Vous pouvez modifier la configuration de la CPU afin qu'elle ne tienne
pas compte de cette erreur de temps et reste l'tat MARCHE. La configuration par
dfaut est que la CPU passe l'tat ARRET.
Si le programme utilisateur contient un OB 80, la CPU excute l'OB 80.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
82 Manuel systme, 11/2011, A5E02486682-05
L'instruction RE_TRIGR (Redmarrer surveillance du temps de cycle) vous permet de
rinitialiser la temporisation qui mesure le temps de cycle. Toutefois, cette instruction ne
fonctionne que si elle est excute dans un OB de cycle de programme ; elle n'est pas prise
en compte si elle est excute dans l'OB 80. Si le temps de cycle maximum est dpass
deux fois pendant le mme cycle de programme, sans excution de l'instruction RE_TRIGR
entre les deux dpassements, la CPU passe immdiatement l'tat ARRET. Des excutions
rptes de l'instruction RE_TRIGR peuvent crer une boucle sans fin ou un cycle trs long.
Typiquement, le cycle s'excute aussi rapidement qu'il le peut et le cycle suivant commence
ds que le cycle en cours s'achve. La dure d'un cycle peut varier d'un cycle l'autre en
fonction du programme utilisateur et des tches de communication. Pour liminer cette
variation, la CPU prend en charge un temps de cycle minimum fixe optionnel, galement
appel cycle fixe. Lorsque cette fonction optionnelle est active et qu'un temps de cycle
minimum en ms est fix, la CPU maintient le temps de cycle minimum 1 ms prs pour
l'achvement de chaque cycle CPU.
Si la CPU achve le cycle normal en moins de temps que le temps de cycle minimum
spcifi, elle passe le temps restant du cycle effectuer le diagnostic d'excution et/ou
traiter des demandes de communication. De cette manire, la CPU utilise toujours une
quantit de temps fixe pour achever le cycle.
Si la CPU n'achve pas le cycle pendant le temps de cycle minimum indiqu, elle continue
excuter le cycle normalement jusqu' son achvement (traitement de la communication
inclus) et ne cre aucune raction systme en rponse ce dpassement du temps de cycle
minimum. Le tableau suivant prsente les plages et les valeurs par dfaut pour les fonctions
de surveillance du temps de cycle.
Tableau 4- 5 Plage pour le temps de cycle
Temps de cycle Plage (ms) Valeur par dfaut
Temps de cycle maximum
1
1 6000 150 ms
Temps de cycle minimum fixe
2
1 temps de cycle maximum Dsactiv
1
Le temps de cycle maximum est toujours activ. Configurez un temps de cycle compris entre 1 ms et 6000 ms. La
valeur par dfaut est 150 ms.
2
Le temps de cycle minimum fixe est facultatif ; il est dsactiv par dfaut. Si ncessaire, configurez un temps de cycle
compris entre 1 ms et le temps de cycle maximum.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 83
Configuration du temps de cycle et de la charge due la communication
Vous vous servez des proprits CPU dans la configuration des appareils pour configurer
les paramtres suivants :
Temps de cycle : Vous pouvez entrer un temps de cycle maximum. Vous pouvez
galement entrer un temps de cycle minimum fixe.

Charge due la communication : Vous pouvez configurer un pourcentage du temps
rserver aux tches de communication.

Reportez-vous au paragraphe "Surveillance du temps de cycle" (Page 81) pour plus
d'informations sur le cycle.
4.1.6 Mmoire de la CPU
Gestion de la mmoire
La CPU fournit les zones de mmoire suivantes pour stocker le programme utilisateur, les
donnes et la configuration :
La mmoire de chargement est une mmoire rmanente pour le programme utilisateur,
les donnes et la configuration. Lorsqu'un projet est charg dans la CPU, il est d'abord
stock dans la mmoire de chargement. Cette zone se trouve soit sur une carte mmoire
(en prsence d'une telle carte) soit dans la CPU. Cette zone de mmoire rmanente est
conserve en cas de coupure de courant. La carte mmoire offre plus d'espace de
stockage que la mmoire de chargement intgre dans la CPU.
La mmoire de travail est une mmoire volatile pour certains lments du projet
utilisateur pendant l'excution du programme utilisateur. La CPU copie certains lments
du projet de la mmoire de chargement dans la mmoire de travail. Cette zone de
mmoire volatile est perdue en cas de coupure de courant et est restaure par la CPU au
retour de la tension.
La mmoire rmanente constitue un stockage permanent pour une quantit limite de
valeurs de mmoire de travail. La zone de mmoire rmanente sert stocker les valeurs
d'adresses de mmoire utilisateur choisies pendant une coupure de courant. Si une mise
hors tension ou une coupure de courant se produit, la CPU restaurera ces valeurs
rmanentes la mise sous tension suivante.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
84 Manuel systme, 11/2011, A5E02486682-05
Pour afficher l'utilisation de la mmoire dans le projet en cours, cliquez avec le bouton droit
de la souris sur la CPU (ou l'un de ses blocs) et slectionnez "Ressources" dans le menu
contextuel. Pour afficher l'utilisation de la mmoire dans la CPU en cours, double-cliquez sur
"En ligne & Diagnostic", affichez le dtail de "Diagnostic" et slectionnez "Mmoire".
Mmoire rmanente
Vous pouvez viter la perte de donnes en cas de coupure de courant en dfinissant
certaines donnes comme rmanentes. Les donnes suivantes peuvent tre configures
comme rmanentes :
Mmentos (M) : Vous pouvez dfinir la taille prcise de la mmoire pour les mmentos
dans la table des variables API ou dans le tableau d'affectation. Les mmentos
rmanents commencent toujours MB0 et comprennent un nombre indiqu d'octets
conscutifs. Indiquez cette valeur dans la table des variables API ou dans le tableau
d'affectation en cliquant sur le bouton "Rmanence" de la barre d'outils. Entrez le nombre
d'octets de mmentos dfinir comme rmanents compter de MB0.
Variables d'un bloc fonctionnel : Si un FB a t cr avec l'option "Optimis" active,
l'diteur d'interface pour ce FB comprend une colonne "Rmanence". Dans cette
colonne, vous pouvez slectionner "Rmanente", "Non rmanente" ou "Dfinir dans IDB"
individuellement pour chaque variable. Le DB d'instance cr lors de l'insertion de ce FB
dans l'diteur de programmes comprend galement cette colonne "Rmanence". Vous
ne pouvez modifier l'tat de rmanence d'une variable dans l'diteur d'interface de DB
d'instance que si vous avez slectionn "Dfinir dans IDB" (dfinir dans le bloc de
donnes d'instance) dans la colonne "Rmanence" de la variable concerne dans le FB
optimis.
Si un FB a t cr avec l'option "Standard - compatible avec S7-300/400" active,
l'diteur d'interface pour ce FB ne comporte pas de colonne "Rmanence". Le DB
d'instance cr lors du placement de ce FB dans l'diteur de programme comprend une
colonne "Rmanence" dont le contenu peut tre modifi. Dans ce cas, slectionner
l'option "Rmanente" pour n'importe quelle variable entrane son activation pour toutes
les variables. De mme, dsactiver cette option pour n'importe quelle variable entrane sa
dsactivation pour toutes les variables. Pour un FB configur comme tant "Standard -
compatible avec S7-300/400", vous pouvez modifier l'tat de rmanence dans l'diteur de
DB d'instance, mais toutes les variables prennent le mme tat de rmanence.
Une fois le FB cr, vous ne pouvez pas activer a posteriori l'option "Standard -
compatible avec S7-300/400". Vous ne pouvez slectionner cette option que lors de la
cration du FB. Pour dterminer si un FB existant a t cr avec l'option "Optimis" ou
"Standard - compatible avec S7-300/400", cliquez avec le bouton droit de la souris sur le
FB dans le navigateur du projet, slectionnez "Proprits", puis slectionnez "Attributs".
Si la case "Accs optimis" est coche, cela signifie que le bloc est optimis Sinon, il
s'agit d'un FB standard compatible avec les CPU S7-300/400.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 85
Variables d'un bloc de donnes global : Le comportement d'un DB global quant
l'affectation de l'tat de rmanence est similaire celui d'un FB. Selon le paramtrage
d'accs au bloc, vous pouvez dfinir l'tat de rmanence soit pour des variables
individuelles soit pour toutes les variables d'un bloc de donnes global.
Si vous avez slectionn "Optimis" lors de la cration du DB, vous pouvez dfinir
l'tat de rmanence pour chaque variable individuelle.
Si vous avez slectionn "Standard - compatible avec S7-300/400" lors de la cration
du DB, le paramtrage de l'tat de rmanence s'applique toutes les variables du DB
: soit toutes les variables sont rmanentes, soit aucune variable n'est rmanente.
2048 octets de donnes au total peuvent tre dfinis comme rmanents. Pour voir combien
d'octets sont disponibles, cliquez sur le bouton "Rmanence" de la barre d'outils dans la
table des variables API ou dans le tableau d'affectation. Les informations affiches
mentionnent certes la plage de rmanence pour les mmentos, mais galement, dans la
deuxime ligne, la mmoire restante totale disponible pour les mmentos et les DB
combins. Notez que, pour que cette valeur soit exacte, vous devez compiler tous les blocs
de donnes ayant des variables rmanentes.
Mmoire tampon de diagnostic
La CPU fournit une mmoire tampon de diagnostic qui contient une entre pour chaque
vnement de diagnostic. Chaque entre inclut la date et l'heure auxquelles l'vnement
s'est produit, une catgorie d'vnement, ainsi qu'une description de l'vnement. Les
entres sont affiches par ordre chronologique, l'vnement le plus rcent se trouvant en
haut. Tant que la CPU est sous tension, jusqu' 50 vnements les plus rcents sont
disponibles dans ce journal. Lorsque le journal est plein, l'vnement le plus ancien dans le
journal est remplac par un nouvel vnement. En cas de coupure de courant, les dix
vnements les plus rcents sont sauvegards.
Les types d'vnements suivants sont enregistrs dans la mmoire tampon de diagnostic :
Chaque vnement de diagnostic systme, par exemple les erreurs de CPU et les
erreurs de module
Chaque changement d'tat de la CPU (chaque mise sous tension, chaque passage
ARRET, chaque passage MARCHE)
Vous devez tre en ligne pour accder la mmoire tampon de diagnostic. Localisez le
journal sous "En ligne & Diagnostic / Diagnostic / Tampon de diagnostic". Reportez-vous au
chapitre "Outils en ligne et de diagnostic" (Page 686) pour plus d'informations sur la
correction des erreurs et sur le dbogage.
Horloge temps rel
La CPU prend en charge une horloge temps rel. Un supercondensateur fournit l'nergie
ncessaire pour que l'horloge continue fonctionner lorsque la CPU est hors tension. Le
supercondensateur se recharge lorsque la CPU est sous tension. Une mise sous tension de
la CPU d'au moins 24 heures charge suffisamment le supercondensateur pour assurer le
fonctionnement de l'horloge pendant 10 jours typiquement.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
86 Manuel systme, 11/2011, A5E02486682-05
L'horloge temps rel est rgle sur l'heure systme qui correspond au temps universel
coordonn (UTC). STEP 7 rgle l'horloge temps rel sur l'heure systme. Des instructions
sont disponibles pour lire l'heure systme (RD_SYS_T) ou l'heure locale (RD_LOC_T).
L'heure locale se calcule l'aide des dcalages de fuseau horaire et d'heure d't que vous
paramtrez dans la configuration d'appareil Horloge CPU.
Configurez l'horloge temps rel pour la CPU dans la proprit "Heure". Vous pouvez
galement activer l'heure d't et indiquer les dates et heures de dbut et de fin de l'heure
d't. Vous devez tre en ligne dans la vue "En ligne & Diagnostic" de la CPU pour rgler
l'horloge temps rel. Utilisez cet effet la fonction "Rglage de l'heure".
4.1.6.1 Mmento systme et mmento de cadence
Vous vous servez des proprits CPU pour activer les octets "mmento systme" et
"mmento de cadence". La logique de votre programme peut faire rfrence aux bits
individuels de ces fonctions par leur nom de variable.
Vous pouvez affecter un octet dans la zone de mmoire M au mmento systme. L'octet
de mmento systme fournit les quatre bits suivants auxquels votre programme
utilisateur peut faire rfrence par les noms de variables suivants :
Premier cycle (nom de variable "FirstScan") : Ce bit est mis 1 pendant la dure du
premier cycle une fois l'OB de dmarrage termin. Une fois l'excution du premier
cycle acheve, le bit "Premier cycle" est mis 0.
Etat de diagnostic modifi (nom de variable "DiagStatusUpdate") : Ce bit est mis 1
pendant un cycle aprs que la CPU a consign un vnement de diagnostic. Comme
la CPU ne dfinit pas le bit "Diagramme de diagnostic modifi" avant la fin de la
premire excution des OB de cycle de programme, votre programme utilisateur ne
peut pas dtecter s'il y a eu une modification du diagnostic pendant l'excution des
OB de dmarrage ou la premire excution des OB de cycle de programme.
Toujours 1 (high) (nom de variable "AlwaysTRUE") : Ce bit est toujours 1.
Toujours 0 (low) (nom de variable "AlwaysFALSE") : Ce bit est toujours 0.
Vous pouvez affecter un octet dans la zone de mmoire M au mmento de cadence.
Chaque bit de l'octet configur comme mmento de cadence gnre une impulsion en
signaux carrs. L'octet de mmento de cadence fournit 8 frquences diffrentes, de 0,5
Hz (lent) 10 Hz (rapide). Vous pouvez utiliser ces bits comme bits de commande, en
particulier en combinaison avec des instructions sur front, pour dclencher des actions
dans le programme utilisateur sur une base cyclique.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 87
La CPU initialise ces octets lors du passage de l'tat ARRET l'tat MISE EN ROUTE. Les
bits du mmento de cadence changent de manire synchrone avec l'horloge CPU aux tats
MISE EN ROUTE et MARCHE.

PRUDENCE
L'crasement des bits du mmento systme ou du mmento de cadence peut altrer les
donnes dans ces fonctions et provoquer un fonctionnement incorrect du programme
utilisateur, pouvant entraner la mort et des blessures graves.
Comme le mmento de cadence et le mmento systme ne sont pas rservs en mmoire
M, des instructions ou des tches de communication peuvent crire dans ces adresses et
altrer les donnes.
Evitez d'crire des donnes dans ces adresses afin de garantir le bon fonctionnement de
ces fonctions et prvoyez toujours un circuit d'arrt d'urgence pour votre processus ou
votre installation.

La fonction mmento systme configure un octet dont les bits sont activs (valeur = 1) pour
un vnement spcifique.

Tableau 4- 6 Mmento systme
7 6 5 4 3 2 1 0
Rservs
Valeur 0
Toujours
dsactiv
Valeur 0
Toujours activ
Valeur 1
Indicateur Etat de
diagnostic
1: Modification
0: Pas de modification
Indicateur Premier cycle
1: Premier cycle aprs
la mise en route
0: Pas le premier cycle
La fonction mmento de cadence configure un octet qui met les diffrents bits 1 et 0
intervalles fixes. Chaque bit de cadence gnre une impulsion en signaux carrs sur le bit M
correspondant. Ces bits peuvent tre utiliss comme bits de commande, en particulier en
combinaison avec des instructions sur front, pour dclencher des actions dans le code
utilisateur sur une base cyclique.
97BConcepts concernant les automates programmables
4.1 Excution du programme utilisateur
Automate programmable S7-1200
88 Manuel systme, 11/2011, A5E02486682-05

Tableau 4- 7 Mmento de cadence
Numro du bit 7 6 5 4 3 2 1 0
Nom de variable
Priode (s) 2.0 1.6 1.0 0.8 0.5 0.4 0.2 0.1
Frquence (Hz) 0.5 0.625 1 1.25 2 2.5 5 10
Comme le mmento de cadence opre de manire asynchrone par rapport au cycle de la CPU, son tat peut changer
plusieurs fois au cours d'un cycle long.
4.1.6.2 Configuration des sorties lors d'un passage de MARCHE ARRET
Vous pouvez configurer le comportement des sorties TOR et analogiques lorsque la CPU
est l'tat ARRET. Vous pouvez paramtrer n'importe quelle sortie d'une CPU, d'un SB ou
d'un SM de sorte que sa valeur est fige ou qu'une valeur de remplacement est utilise :
Remplacement par une valeur de sortie spcifique (par dfaut) : Vous entrez une valeur
de remplacement pour chaque sortie (voie) de cette CPU, ce SB ou ce SM.
La valeur de remplacement par dfaut pour les voies de sortie TOR est "dsactiv" et la
valeur de remplacement par dfaut pour les voies de sortie analogiques est 0.
Maintenir les sorties leur dernier tat : Les sorties conservent la valeur qu'elles avaient
lors du passage de MARCHE ARRET. Aprs une mise sous tension, les sorties sont
dfinies la valeur de remplacement par dfaut.
Vous configurez le comportement des sorties dans la Configuration d'appareil. Slectionnez
les diffrents appareils et utilisez l'onglet "Proprits" pour configurer les sorties de chaque
appareil.
Lorsque la CPU passe de MARCHE ARRET, elle conserve la mmoire image et crit les
valeurs appropries pour les sorties TOR et analogiques en fonction de la configuration.
97BConcepts concernant les automates programmables
4.2 Stockage des donnes, zones de mmoire, E/S et adressage
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 89
4.2 Stockage des donnes, zones de mmoire, E/S et adressage
4.2.1 Accs aux donnes du S7-1200
STEP 7 facilite la programmation symbolique. Vous crez des noms symboliques ou
"variables" pour les adresses des donnes, soit sous forme de variables API associes
des adresses mmoire et des E/S, soit sous forme de variables locales utilises dans un
bloc de code. Pour utiliser ces variables dans votre programme utilisateur, il vous suffit
d'entrer le nom de la variable comme paramtre de l'instruction.
Pour une meilleure comprhension de la manire dont la CPU organise et adresse les zones
de mmoire, les paragraphes suivants expliquent l'adressage "absolu" rfrenc par les
variables API. La CPU offre plusieurs possibilits pour stocker les donnes pendant
l'excution du programme utilisateur :
Mmoire globale : La CPU fournit diverses zones de mmoire spcialises, savoir les
entres (I), les sorties (Q) et les mmentos (M). Cette mmoire est accessible tous les
blocs de code sans restriction.
Table de variables API : Vous pouvez entrer des mnmoniques pour des adresses de
mmoire spcifiques dans la table de variables API STEP 7. Ces variables sont globales
pour le programme STEP 7 et permettent de programmer avec des noms qui ont une
signification dans votre application.
Blocs de donnes (DB) : Vous pouvez inclure des blocs de donnes (DB) dans votre
programme utilisateur afin de sauvegarder les donnes des blocs de code. Les donnes
sauvegardes sont conserves une fois l'excution du bloc de code associ acheve. Un
DB "global" contient des donnes pouvant tre utilises par tous les blocs de code alors
qu'un DB d'instance contient les donnes d'un FB spcifique et a une structure
correspondant aux paramtres du FB.
Mmoire temporaire : Lors de l'appel d'un bloc de code, le systme d'exploitation de la
CPU alloue de la mmoire temporaire - ou locale (L) - utilisable pendant l'excution de ce
bloc. Lorsque l'excution de ce bloc de code s'achve, la CPU ralloue la mmoire locale
pour l'excution d'autres blocs de code.
Chaque emplacement de mmoire diffrent a une adresse unique. Votre programme
utilisateur utilise ces adresses pour accder aux informations contenues dans l'emplacement
de mmoire. Les rfrences aux zones de mmoire d'entre (I) ou de sortie (Q), telles que
I0.3 ou Q1.7, permettent d'accder la mmoire image. Pour accder directement l'entre
ou la sortie physique, ajoutez ":P" la rfrence (par exemple, I0.3:P, Q1.7:P ou
"Arret:P").
Tableau 4- 8 Zones de mmoire
Zone de mmoire Description Forage
permanent
Rmanence
Copie des entres physiques au dbut du cycle Non Non I
Mmoire image des entres
I_:P
1

(entre physique)
Lecture directe des entres physiques sur la CPU, le SB
et le SM
Oui Non
Q Copie dans les sorties physiques au dbut du cycle Non Non
97BConcepts concernant les automates programmables
4.2 Stockage des donnes, zones de mmoire, E/S et adressage
Automate programmable S7-1200
90 Manuel systme, 11/2011, A5E02486682-05
Zone de mmoire Description Forage
permanent
Rmanence
Mmoire image des sorties
Q_:P
1

(sortie physique)
Ecriture directe dans les entres physiques sur la CPU,
le SB et le SM
Oui Non
M
Mmentos
Mmoire de commande et de donnes Non Oui
(facultatif)
L
Mmoire temporaire
Donnes temporaires pour un bloc, locales ce bloc Non Non
DB
Bloc de donnes
Mmoire de donnes ainsi que mmoire de paramtres
pour les FB
Non Oui
(facultatif)
1
Pour accder directement (en lecture ou en criture) aux entres et sorties physiques, ajoutez ":P" l'adresse ou la
variable (par exemple, I0.3:P, Q1.7:P ou "Arret:P").
Chaque emplacement de mmoire diffrent a une adresse unique. Votre programme
utilisateur utilise ces adresses pour accder aux informations contenues dans l'emplacement
de mmoire. L'adresse absolue est constitue des lments suivants :
Identificateur de zone de mmoire (comme I, Q ou M)
Taille des donnes en accs ("B" pour Byte, "W" pour Word ou "D" for DWord)
Adresse de dbut des donnes (comme octet 3 ou mot 3)
Lors de l'accs un bit dans l'adresse pour une valeur boolenne, vous ne prcisez pas la
taille. Vous saisissez uniquement la zone de mmoire, l'adresse d'octet et l'adresse de bit
pour cette donne (I0.0, Q0.1 ou M3.4, par exemple).
7 6 5 4 3 2 1 0
0
1
2
3
4
5
M 3 . 4


A Identificateur de zone de mmoire E Octets de la zone de mmoire
B Adresse d'octet : octet 3 F Bits de l'octet slectionn
C Sparateur ("octet.bit")
D Emplacement du bit dans l'octet (bit 4 sur
8)

Dans l'exemple, la zone de mmoire et l'adresse d'octet (M = zone des mmentos et 3 =
Byte 3) sont suivies par un point (".") pour sparer l'adresse du bit (bit 4).
97BConcepts concernant les automates programmables
4.2 Stockage des donnes, zones de mmoire, E/S et adressage
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 91
Accs aux donnes dans les zones de mmoire de la CPU
STEP 7 facilite la programmation symbolique. Typiquement, des variables sont cres dans
les variables API, dans un bloc de donnes ou dans l'interface en haut d'un OB, d'une FC ou
d'un FB. Ces variables comprennent un nom, un type de donnes, un dcalage et un
commentaire. Une valeur initiale peut en outre tre indique dans un bloc de donnes. Vous
pouvez utiliser ces variables lors de la programmation en entrant le nom de variable au
niveau du paramtre de l'instruction. Vous pouvez optionnellement entrer l'oprande absolu
(zone de mmoire, taille et dcalage) au niveau du paramtre de l'instruction. Les exemples
dans les paragraphes suivants montrent comment entrer des oprandes absolus. Le
caractre % est insr automatiquement devant l'oprande absolu par l'diteur de
programmes. Vous pouvez activer divers modes d'affichage dans l'diteur de programmes :
affichage symbolique, affichage symbolique et absolu ou affichage absolu.
I (mmoire image des entres) : La CPU lit les entres de priphrie (entres physiques)
juste avant l'excution de l'OB cyclique de chaque cycle et crit ces valeurs dans la mmoire
image des entres. Vous pouvez accder la mmoire image des entres par bits, octets,
mots ou doubles mots. L'accs en lecture et l'accs en criture sont tous deux autoriss
mais, typiquement, les entres de la mmoire image sont uniquement lues.
Tableau 4- 9 Adressage absolu pour la mmoire I
Bit I[adresse d'octet].[adresse de bit] I0.1
Octet, mot ou double mot I[taille][adresse d'octet de dpart] IB4, IW5 ou ID12
En ajoutant un ":P" l'adresse, vous pouvez lire directement les entres TOR et analogiques
de la CPU, du SB ou du SM. La diffrence entre un accs via I_:P et un accs via I est que
les donnes proviennent directement des entres en accs et non de la mmoire image des
entres. On parle d'accs en "lecture directe" pour cet accs I_:P, car les donnes sont
extraites directement de la source et non d'une copie qui a t faite lors de la dernire
actualisation de la mmoire image des entres.
Comme les entres physiques reoivent leur valeur directement des appareils de terrain
connects ces entres, crire dans ces entres est interdit. Ainsi, les accs I_:P sont en
lecture seule alors que les accs I peuvent tre en lecture ou en criture.
Les accs I_:P sont galement limits la taille des entres prises en charge par une CPU,
un SB ou un SM unique, arrondie l'octet le plus proche. Par exemple, si les entres d'un
SB 2 DI / 2 DQ sont configures pour commencer en I4.0, il est possible d'y accder en tant
que I4.0:P et I4.1:P ou en tant que IB4:P. Les accs de I4.2:P I4.7:P ne sont pas refuss
mais n'ont aucun sens puisque les entres correspondantes ne sont pas utilises. Les accs
IW4:P et ID4:P sont interdits puisqu'ils dpassent le dcalage d'octet associ au SB.
Les accs via I_:P n'affectent pas la valeur correspondante sauvegarde dans la mmoire
image des entres.
Tableau 4- 10 Adressage absolu pour la mmoire I (accs direct)
Bit I[adresse d'octet].[adresse de bit]:P I0.1:P
Octet, mot ou double mot I[taille][adresse d'octet de dpart]:P IB4:P, IW5:P ou ID12:P
Q (mmoire image des sorties) : La CPU copie dans les sorties physiques les valeurs
sauvegardes dans la mmoire image des sorties. Vous pouvez accder la mmoire
image des sorties par bits, octets, mots ou doubles mots. L'accs en lecture et l'accs en
criture sont tous deux autoriss pour les sorties de la mmoire image.
97BConcepts concernant les automates programmables
4.2 Stockage des donnes, zones de mmoire, E/S et adressage
Automate programmable S7-1200
92 Manuel systme, 11/2011, A5E02486682-05
Tableau 4- 11 Adressage absolu pour la mmoire Q
Bit Q[adresse d'octet].[adresse de bit] Q1.1
Octet, mot ou double mot Q[taille][adresse d'octet de dpart] QB5, QW10, QD40
En ajoutant un ":P" l'adresse, vous pouvez crire directement dans les sorties TOR et
analogiques physiques de la CPU, du SB ou du SM. La diffrence entre un accs via Q_:P
et un accs via Q est que les donnes sont directement crites dans les sorties en accs en
plus d'tre crites dans la mmoire image des sorties. On parle parfois d'accs en "criture
directe" pour cet accs Q_:P, car les donnes sont envoyes directement leur destination
qui n'a pas besoin d'attendre la prochaine actualisation partir de la mmoire image des
sorties.
Comme les sorties physiques pilotent directement les appareils de terrain qui y sont
connects, la lecture de ces sorties est interdite. Ainsi, les accs Q_:P sont en criture seule
alors que les accs Q peuvent tre en lecture ou en criture.
Les accs Q_:P sont galement limits la taille des sorties prises en charge par une CPU,
un SB ou un SM unique, arrondie l'octet le plus proche. Par exemple, si les sorties d'un SB
2 DI / 2 DQ sont configures pour commencer en Q4.0, il est possible d'y accder en tant
que Q4.0:P et Q4.1:P ou en tant que QB4:P. Les accs de Q4.2:P Q4.7:P ne sont pas
refuss mais n'ont aucun sens puisque les sorties correspondantes ne sont pas utilises.
Les accs QW4:P et QD4:P sont interdits puisqu'ils dpassent le dcalage d'octet associ
au SB.
Les accs via Q_:P affectent la fois la sortie physique et la valeur correspondante
sauvegarde dans la mmoire image des sorties.
Tableau 4- 12 Adressage absolu pour la mmoire Q (accs direct)
Bit Q[adresse d'octet].[adresse de
bit]:P
Q1.1:P
Octet, mot ou double mot Q[taille][adresse d'octet de
dpart]:P
QB5:P, QW10:P ou QD40:P
M (mmentos) : Utilisez la zone des mmentos (mmoire M) pour les relais de commande et
les donnes afin de stocker l'tat intermdiaire d'une opration ou d'autres informations de
commande. Vous pouvez accder la zone des mmentos par bits, octets, mots ou doubles
mots. L'accs en lecture et l'accs en criture sont tous deux autoriss pour la mmoire M.
Tableau 4- 13 Adressage absolu pour la mmoire M
Bit M[adresse d'octet].[adresse de bit] M26.7
Octet, mot ou double mot M[taille][adresse d'octet de dpart] MB20, MW30, MD50
Temp (mmoire temporaire) : La CPU affecte la mmoire temporaire selon les besoins. La
CPU alloue la mmoire temporaire au bloc de code au moment o le bloc de code est
dmarr (pour un OB) ou est appel (pour une FC ou un FB). L'affectation de mmoire
temporaire un bloc de code peut entraner la rutilisation d'adresses de mmoire
temporaire utilises prcdemment par d'autres OB, FC ou FB. La mmoire temporaire n'est
pas initialise par la CPU lors de son affectation et elle peut donc contenir n'importe quelle
valeur.
97BConcepts concernant les automates programmables
4.2 Stockage des donnes, zones de mmoire, E/S et adressage
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 93
La mmoire temporaire est similaire la mmoire M une exception majeure prs. En effet,
la mmoire M a une porte globale alors que la mmoire temporaire a une porte locale.
Mmoire M : Tout OB, FC ou FB peut accder aux donnes dans la mmoire M, ce qui
signifie que les donnes sont globalement disponibles pour tous les lments du
programme utilisateur.
Mmoire temporaire : L'accs aux donnes en mmoire temporaire est limit l'OB, la
FC ou au FB qui a cr ou dclar l'adresse de mmoire temporaire. Les adresses de
mmoire temporaire restent locales et ne sont pas partages par diffrents blocs de code
mme lorsque le bloc de code appelle un autre bloc de code. Par exemple, lorsqu'un OB
appelle une FC, la FC ne peut pas accder la mmoire temporaire de l'OB qui l'a
appele.
La CPU fournit de la mmoire temporaire (locale) pour chacune des trois classes de priorit
d'OB :
16 Ko pour le dmarrage et le cycle du programme, FB et FC associs inclus
4 Ko pour les vnements d'alarme standard, FB et FC inclus
4 Ko pour les vnements d'alarme d'erreur, FB et FC inclus
Vous accdez la mmoire temporaire par adressage symbolique uniquement.
DB (bloc de donnes) : Utilisez les blocs de donnes pour sauvegarder divers types de
donnes, notamment l'tat intermdiaire d'une opration ou d'autres informations de
commande, les paramtres de FB et des structures de donnes ncessaires pour de
nombreuses instructions telles que temporisations et compteurs. Vous pouvez accder aux
blocs de donnes par bits, octets, mots ou doubles mots. L'accs en lecture et l'accs en
criture sont tous deux autoriss pour les blocs de donnes en lecture/criture. Seul l'accs
en lecture est autoris pour les blocs de donnes en lecture seule.
Tableau 4- 14 Adressage absolu pour la mmoire DB
Bit DB[numro de bloc de
donnes].DBX[adresse d'octet].[adresse
de bit]
DB1.DBX2.3
Octet, mot ou double mot DB[numro de bloc de
donnes].DB[taille][adresse d'octet de
dpart]
DB1.DBB4, DB10.DBW2,
DB20.DBD8
97BConcepts concernant les automates programmables
4.3 Traitement des valeurs analogiques
Automate programmable S7-1200
94 Manuel systme, 11/2011, A5E02486682-05
Configuration des E/S dans la CPU et les modules E/S


Lorsque vous ajoutez une CPU et des modules
d'E/S dans votre cran de configuration, les
adresses I et Q sont automatiquement affectes.
Vous pouvez modifier l'adressage par dfaut en
slectionnant le champ d'adresse dans l'cran de
configuration et en saisissant de nouveaux
nombres.
Les entres et sorties numriques sont
attribues dans des groupes de 8 points (1
octet), que le module utilise tous les points ou
non.
Les entres et sorties analogiques sont
affectes par groupes de deux entres ou deux
sorties (4 octets).
La figure montre un exemple de CPU 1214C avec deux SM et un SB. Dans cet exemple,
vous pourriez modifier l'adresse du module DI8 2 au lieu de 8. L'outil vous aidera en
modifiant les plages d'adresse qui en sont pas de la bonne dimension ou qui sont en conflit
avec d'autres adresses.
4.3 Traitement des valeurs analogiques
Les modules d'entres-sorties analogiques fournissent des signaux d'entre ou attendent
des valeurs de sortie qui reprsentent soit une plage de tension, soit une plage de courant. Il
s'agit des plages 10 V, 5 V, 2,5 V ou 0 20 mA. Les valeurs renvoyes par les modules
sont des valeurs entires, 0 27648 reprsentant la plage nominale pour le courant et -
27648 27648 la plage nominale pour la tension. Toute valeur en dehors de ces plages
reprsente soit un dbordement haut, soit un dbordement bas. Reportez-vous aux tableaux
sur la reprsentation des entres analogiques (Page 757) et la reprsentation des sorties
analogiques (Page 757) pour plus de dtails.
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 95
Dans votre programme de commande, vous aurez probablement besoin de ces valeurs en
units de mesure physiques, par exemple pour reprsenter un volume, une temprature, un
poids ou une autre valeur de quantit. S'il s'agit d'une entre analogique, vous devez
d'abord normaliser la valeur analogique une valeur relle ( virgule flottante) comprise
entre 0,0 et 1,0. Vous devez ensuite la mettre l'chelle des valeurs minimum et maximum
des units physiques qu'elle reprsente. Dans le cas de valeurs en units physiques que
vous avez besoin de convertir en valeurs de sortie analogiques, vous devez d'abord
normaliser la valeur en units physiques une valeur comprise entre 0,0 et 1,0, puis la
mettre l'chelle entre 0 et 27648 ou -27648 et 27648 en fonction de la plage du module
analogique. STEP 7 fournit les instructions NORM_X et SCALE_X (Page 223) pour raliser
ces oprations. Vous pouvez galement utiliser l'instruction CALCULATE (Page 201) pour
mettre les valeurs analogiques (Page 32) l'chelle.
4.4 Types de donnes
Les types de donnes servent indiquer la fois la taille d'un lment de donnes et la
faon dont les donnes doivent tre interprtes. Chaque paramtre d'une instruction
accepte au moins un type de donnes et certains paramtres acceptent plusieurs types de
donnes. Maintenez le curseur au-dessus du champ de paramtre d'une instruction pour
voir les types de donnes accepts par un paramtre particulier.
Un paramtre formel est un identificateur qui repre l'emplacement des donnes qu'une
instruction doit utiliser (par exemple, l'entre IN1 d'une instruction ADD). Un paramtre
effectif est l'adresse de mmoire ou la constante contenant les donnes que l'instruction doit
utiliser (exemple : %MD400 "nombre_de_widgets"). Le type de donnes du paramtre
effectif que vous indiquez doit correspondre l'un des types de donnes accepts par le
paramtre formel indiqu par l'instruction.
Lorsque vous indiquez un paramtre effectif, vous devez indiquer soit une variable
(mnmonique), soit une adresse de mmoire (directe) absolue. Les variables sont associes
un mnmonique (nom de la variable) avec un type de donnes, une zone de mmoire, un
dcalage en mmoire et un commentaire et elles peuvent tre cres soit dans l'diteur de
variables API, soit dans l'diteur d'interface d'un bloc (OB, FC, FB et DB). Si vous entrez une
adresse absolue n'ayant pas de variable associe, vous devez utiliser une taille approprie
qui correspond un type de donnes accept et une variable par dfaut sera cre lors de
l'entre.
Tous ces types de donnes except STRING sont disponibles la fois dans l'diteur de
variables API et dans les diteurs d'interface de bloc. STRING est disponible uniquement
dans les diteurs d'interface de bloc. Vous pouvez galement entrer une valeur constante
pour de nombreux paramtres d'entre.
Bit et squences de bits (Page 96) : Bool (valeur boolenne ou binaire), Byte (octet de 8
bits), Word (mots de 16 bits), DWord (double mot de 32 bits)
Entier (Page 97)
USInt (entier de 8 bits non sign), SInt (entier de 8 bits sign)
UInt (entier de 16 bits non sign), Int (entier de 16 bits sign)
UDInt (entier de 32 bits non sign), DInt (entier de 32 bits sign)
Rel virgule flottante (Page 97) : Real (valeur relle ou virgule flottante de 32 bits),
LReal (valeur relle ou virgule flottante de 64 bits)
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
96 Manuel systme, 11/2011, A5E02486682-05
Date et heure (Page 98) : Time (dure CEI de 32 bits), Date (date de 16 bits), TOD
(heure de 32 bits), DT (date et heure de 64 bits)
Caractre et chane de caractres (Page 98) : Char (caractre individuel de 8 bits), String
(chane de longueur variable allant jusqu' 254 caractres)
Tableau (Page 98)
Structure de donnes (Page 102) : Struct
Type de donnes API (Page 103)
Pointeurs (Page 104) : Pointer, Any, Variant
Bien que non disponibles en tant que types de donnes, les formats numriques BCD
suivants sont pris en charge par les instructions de conversion.
Tableau 4- 15 Taille et plage du format DCB
Format Taille (bits) Plage numrique Exemples d'entre de constantes
BCD16 16 -999 999 123, -123
BCD32 32 -9999999 9999999 1234567, -1234567
4.4.1 Types de donnes Bool, Byte, Word et DWord
Tableau 4- 16 Types de donnes pour bit et squence de bits
Type de
donnes
Taille
en bits
Type de
nombre
Plage de
nombres
Exemples
de constantes
Exemples
d'adresses
Boolen FALSE ou TRUE TRUE, 1
Binaire 0 ou 1 0, 2#0
Octal 8#0 ou 8#1 8#1
Bool 1
Hexadcimal 16#0 ou 16#1 16#1
I1.0
Q0.1
M50.7
DB1.DBX2.3
nom_variable
Binaire 2#0 2#11111111 2#00001111
Entier non sign 0 255 15
Octal 8#0 8#377 8#17
Byte 8
Hexadcimal B#16#0 B#16#FF B#16#F, 16#F
IB2
MB10
DB1.DBB4
nom_variable
Binaire 2#0 2#1111111111111111 2#1111000011110000
Entier non sign 0 65535 61680
Octal 8#0 8#177777 8#170360
Word 16
Hexadcimal W#16#0 W#16#FFFF,
16#0 16#FFFF
W#16#F0F0, 16#F0F0
MW10
DB1.DBW2
nom_variable
Binaire 2#0
2#111111111111111111111111
11111111
2#111100001111111100
001111
Entier non sign 0 4294967295 15793935
DWord 32
Octal 8#0 8#37777777777 8#74177417
MD10
DB1.DBD8
nom_variable
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 97
Type de
donnes
Taille
en bits
Type de
nombre
Plage de
nombres
Exemples
de constantes
Exemples
d'adresses
Hexadcimal DW#16#0000_0000
DW#16#FFFF_FFFF,
16#0000_0000
16#FFFF_FFFF
DW#16#F0FF0F,
16#F0FF0F
4.4.2 Types de donnes entiers
Tableau 4- 17 Types de donnes entiers (U = non sign, S = court, D= double)
Type de
donnes
Taille en
bits
Plage de nombres Exemples de constantes Exemples
d'adresses
USInt 8 0 255 78, 2#01001110
SInt 8 -128 127 +50, 16#50
MB0, DB1.DBB4,
nom_variable
UInt 16 0 65 535 65295, 0
Int 16 -32 768 32 767 30000, +30000
MW2, DB1.DBW2,
nom_variable
UDInt 32 0 4 294 967 295 4042322160
DInt 32 -2 147 483 648 2
147 483 647
-2131754992
MD6, DB1.DBD8,
nom_variable
4.4.3 Types de donnes rels virgule flottante
Les nombres rels (ou nombres virgule flottante) sont reprsents sous forme de nombres
de 32 bits simple prcision (type Real) ou de nombres de 64 bits double prcision (type
LReal) comme dcrit dans la norme ANSI/IEEE 754-1985. Les nombres virgule flottante
simple prcision sont prcis jusqu' 6 chiffres significatifs et les nombres virgule flottante
double prcision sont prcis jusqu' 15 chiffres significatifs. Vous pouvez donc indiquer 6
(Real) et 15 (LReal) chiffres significatifs au maximum lorsque vous entrez une constante
virgule flottante afin de conserver la prcision.
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
98 Manuel systme, 11/2011, A5E02486682-05
Tableau 4- 18 Types de donnes rels virgule flottante (L=long)
Type de
donnes
Taille
en bits
Plage de nombres Exemples de constantes Exemples d'adresses
Real 32 -3,402823e+38 -1,175 495e-38,
0,
+1,175 495e-38 +3,402823e+38
123.456, -3.4, 1.0e-5 MD100, DB1.DBD8,
nom_variable
LReal 64 -1,7976931348623158e+308
-2,2250738585072014e-308,
0,
+2,2250738585072014e-308
+1,7976931348623158e+308
12345,123456789e40,
1,2E+40
nom_DB.nom_var
Rgles :
L'adressage direct n'est
pas pris en charge.
Peut tre dfini dans une
table d'interface de bloc
OB, FB ou FC
Peut tre dfini dans un
bloc de donnes global ou
d'instance uniquement
lorsque le bloc de
donnes est de type
"optimis" (accs
symbolique uniquement)
Les calculs impliquant une longue srie de valeurs comprenant des nombres trs grands et
trs petits peuvent produire des rsultats qui manquent de prcision. Cela peut arriver si ces
nombres diffrent de 10 puissance x, x tant suprieur 6 (Real) ou 15 (LReal). Exemple
pour Real : 100 000 000 + 1 = 100 000 000.
4.4.4 Types de donnes "date et heure"
Tableau 4- 19 Types de donnes "date et heure"
Type de
donnes
Taille Plage Exemples d'entre de constantes
TIME 32 bits T#-24d_20h_31m_23s_648ms
T#24d_20h_31m_23s_647ms
Sauvegard en tant que : -2 147 483 648 ms +2
147 483 647 ms
T#5m_30s
T#1d_2h_15m_30s_45ms
TIME#10d20h30m20s630ms
500h10000ms
10d20h30m20s630ms
DATE 16 bits D#1990-1-1 D#2168-12-31 D#2009-12-31
DATE#2009-12-31
2009-12-31
TIME_OF_DAY 32 bits TOD#0:0:0.0 TOD#23:59:59.999 TOD#10:20:30.400
TIME_OF_DAY#10:20:30.400
23:10:1
DTL
(date et heure
long)
12 octets Min. : DTL#1970-01-01-00:00:00.0
Max. : DTL#2554-12-31-23:59:59.999 999 999
DTL#2008-12-16-20:30:20.250
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 99
TIME
Les donnes TIME sont sauvegardes sous forme d'entier double sign interprt en tant
que millisecondes. Le format d'diteur peut utiliser des informations pour le jour (d), les
heures (h), les minutes (m), les secondes (s) et les millisecondes (ms).
Il n'est pas ncessaire de prciser toutes les units de dure. T#5h10s et 500h sont, par
exemple, valables.
La valeur combine de toutes les valeurs d'unit indiques ne doit pas dpasser les limites
suprieure et infrieure en millisecondes pour le type de donnes TIME (-2 147 483 648 ms
+2 147 483 647 ms).
DATE
Les donnes DATE sont sauvegardes sous forme d'entier non sign interprt en tant que
nombre de jours ajouts la date de base, 01/01/1990, pour obtenir la date prcise. Le
format d'diteur doit indiquer une anne, un mois et un jour.
TOD
Les donnes TOD (TIME_OF_DAY) sont sauvegardes sous forme d'entier non sign
interprt en tant que nombre de millisecondes depuis minuit pour l'heure indique (minuit =
0 ms). Les heures (24 heures/jour), les minutes et les secondes doivent tre indiques.
L'indication des fractions de seconde est facultative.
DTL
Le type de donnes DTL (date et heure long) utilise une structure de 12 octets qui mmorise
les informations sur la date et l'heure. Vous pouvez dfinir des donnes DTL soit dans la
mmoire temporaire d'un bloc, soit dans un DB. Il faut entrer une valeur pour chaque
lment dans la colonne Valeur initiale de l'diteur de DB.
Tableau 4- 20 Taille et plage pour DTL
Longueur
(octets)
Format Plage de valeurs Exemple d'entre de valeur
12 Horloge et calendrier
anne-mois-jour:heures:minutes:
secondes.nanosecondes
Min. : DTL#1970-01-01-00:00:00.0
Max. : DTL#2554-12-31-23:59:59.999
999 999
DTL#2008-12-16-20:30:20.250
Chaque lment de la structure DTL contient un type de donnes et une plage de valeurs
diffrents. Le type de donnes d'une valeur indique doit correspondre au type de donnes
des lments correspondants.
Tableau 4- 21 Elments de la structure DTL
Octet Elment Type de donnes Plage de valeurs
0
1
Anne UINT 1970 2554
2 Mois USINT 1 12
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
100 Manuel systme, 11/2011, A5E02486682-05
Octet Elment Type de donnes Plage de valeurs
3 Jour USINT 1 31
4 Jour de la semaine
1
USINT 1 (dimanche) 7 (samedi)
1

5 Heures USINT 0 23
6 Minutes USINT 0 59
7 Secondes USINT 0 59
8
9
10
11
Nanosecondes UDINT 0 999 999 999
1
Le jour de la semaine n'est pas pris en compte dans l'entre de la valeur.
Tableau 4- 22 Types de donnes "caractre et chane de caractres"
Type de
donnes
Taille Plage Exemples d'entre de constantes
Char 8 bits Codes de caractres ASCII : 16#00 16#FF 'A', 't', '@'
String n+ 2 octets n = (0 254 octets caractres) 'ABC'
CHAR
Les donnes CHAR occupent un octet en mmoire et contiennent un caractre unique cod
en format ASCII. La syntaxe de l'diteur utilise une apostrophe avant et aprs le caractre
ASCII. Il est possible d'utiliser des caractres visibles et des caractres de commande. Un
tableau de caractres de commande autoriss est donn dans la description du type de
donnes String.
STRING
La CPU prend en charge le type de donnes String pour sauvegarder une squence de
caractres d'un octet. Le type de donnes String contient le nombre de caractres total
(nombre de caractres dans la chane) et le nombre de caractres en cours. Le type String
fournit jusqu' 256 octets pour le stockage du nombre de caractres total maximum (1 octet),
du nombre de caractres en cours (1 octet) et de 254 caractres au maximum dont chacun
est stock dans 1 octet.
Vous pouvez utiliser des chanes littrales (constantes) pour les paramtres d'instruction de
type IN avec des apostrophes. Par exemple, 'ABC' est une chane de trois caractres qui
pourrait tre utilise en tant qu'entre pour le paramtre IN de l'instruction S_CONV. Vous
pouvez galement crer des variables chanes de caractres en slectionnant le type de
donnes STRING dans les diteurs d'interface des blocs OB, FC, FB et DB. Vous ne pouvez
pas crer de chane dans l'diteur de variables API.
Vous pouvez indiquer la taille maximale d'une chane en octets l'aide de crochets aprs le
mot-cl "String" (aprs slection du type de donnes "String" dans une liste droulante de
types de donnes). "MaChane[10]" indiquerait, par exemple, une taille maximale de 10
octets pour MaChane. Si vous ne mentionnez pas de taille maximale entre crochets, 254
est pris par dfaut.
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 101
L'exemple suivant dfinit une chane ayant un nombre maximum de caractres gal 10 et
un nombre de caractres en cours gal 3. Cela signifie que la chane contient actuellement
3 caractres un octet mais pourrait tre allonge jusqu' contenir 10 caractres un octet.
Tableau 4- 23 Exemple de type de donnes String
Nombre total de
caractres
Nombre de caractres
en cours
Caractre 1 Caractre 2 Caractre 3 ... Caractre 10
10 3 'C' (16#43) 'A' (16#41) 'T' (16#54) ... -
Octet 0 Octet 1 Octet 2 Octet 3 Octet 4 ... Octet 11
Des caractres de commande ASCII peuvent tre utiliss dans des donnes de type Char et
String. Le tableau suivant prsente des exemples de syntaxe avec caractres de
commande.
Tableau 4- 24 Caractres de commande ASCII autoriss
Caractres de
commande
Valeur ASCII hexa Fonction de commande Exemples
$L ou $l 0A Changement de ligne '$LTexte', '$0ATexte'
$N ou $n 0A et 0D Saut de ligne
La nouvelle ligne montre deux caractres
dans la chane.
'$NTexte', '$0A$0DTexte'
$P ou $p 0C Changement de page '$PTexte', '$0CTexte'
$R ou $r 0D Retour chariot '$RTexte','$0DTexte'
$T ou $t 09 Tabulation '$TTexte', '$09Texte'
$$ 24 Signe dollar '100$$', '100$24'
$' 27 Apostrophe '$'Texte$'','$27Texte$27'
Tableaux
Vous pouvez crer un tableau qui contient plusieurs lments de mme type de donnes. Il
est possible de crer des tableaux dans les diteurs d'interface des blocs OB, FC, FB et DB.
Vous ne pouvez pas crer de tableau dans l'diteur de variables API.
Pour crer un tableau dans l'diteur d'interface de bloc, donnez un nom au tableau et
choisissez le type de donnes "Array [lo .. hi] of type", puis ditez "lo", "hi" et "type" de la
manire suivante :
lo : indice de dpart (le plus bas) pour votre tableau
hi : indice de fin (le plus lev) pour votre tableau
type : un type de donnes, tels que BOOL, SINT, UDINT
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
102 Manuel systme, 11/2011, A5E02486682-05
Tableau 4- 25 Rgles pour le type de donnes ARRAY
Type de
donnes
Syntaxe d'un tableau
nom [indice1_min..indice1_max, indice2_min..indice2_max] of <type de donnes>
Tous les lments du tableau doivent avoir le mme type de donnes.
L'indice peut tre ngatif, mais la limite infrieure doit tre infrieure ou gale la limite suprieure.
Un tableau peut avoir de une six dimensions.
Les dclarations des indices min..max des diffrentes dimensions sont spares par des virgules.
Les tableaux imbriqus (tableaux de tableaux) ne sont pas autoriss.
La taille d'un tableau en mmoire est gale (taille d'un lment * nombre total d'lments dans le
tableau)

Indice de tableau Types de donnes autoriss
pour les indices
Rgles pour les indices de tableau
ARRAY
Constante ou
variable
USInt, SInt, UInt, Int, UDInt,
DInt
Valeurs limites : -32768 +32767
Correct : constantes et variables mlanges
Correct : expressions constantes
Incorrect : expressions variables


ARRAY[1..20] of REAL Une dimension, 20 lments
ARRAY[-5..5] of INT Une dimension, 11 lments
Exemple :
dclarations de
tableaux
ARRAY[1..2, 3..4] of CHAR Deux dimensions, 4 lments
ARRAY1[0] Tableau ARRAY1, lment 0
ARRAY2[1,2] Tableau ARRAY2, lment [1,2]
Exemple : adresses
de tableaux
ARRAY3[i,j] Si i=3 et j=4, on adresse l'lment [3,
4] du tableau ARRAY3.
4.4.5 Type de donnes "structure de donnes"
Vous pouvez utiliser le type de donnes "Struct" pour dfinir une structure de donnes
constitue de types de donnes diffrents. Le type de donnes Struct peut servir grer un
groupe de donnes de processus apparentes en tant qu'unit de donnes unique. Vous
donnez un nom la structure et vous dclarez son organisation de donnes interne dans
l'diteur de bloc de donnes ou dans un diteur d'interface de bloc.
Vous pouvez regrouper des tableaux et des structures dans une structure plus grande. Une
structure peut tre imbrique jusqu' huit niveaux de profondeur. Par exemple, vous pouvez
crer une structure de structures qui contiennent des tableaux.
Une variable Struct commence une adresse d'octet paire et utilise la mmoire jusqu' la
frontire de mot suivante.
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 103
4.4.6 Type de donnes API
L'diteur de type de donnes API vous permet de dfinir des structures de donnes
utilisables plusieurs reprises dans votre programme. Pour crer un type de donnes API,
ouvrez la branche "Types de donnes API" de l'arborescence de projet et double-cliquez sur
"Ajouter nouveau type de donnes". Dans le type de donnes API nouvellement cr,
servez-vous de deux clics simples pour modifier le nom par dfaut et d'un double clic pour
ouvrir l'diteur de type de donnes API.
Pour crer une structure de type de donnes API personnalise, vous utilisez les mmes
mthodes d'dition que dans l'diteur de bloc de donnes. Ajoutez de nouvelles lignes pour
tout type de donnes dont vous avez besoin pour crer la structure de donnes voulue.
Si un nouveau type de donnes API est cr, son nom apparat dans les listes droulantes
de slection de type de donnes dans l'diteur de DB et dans l'diteur d'interface de bloc de
code.
Usages potentiels des types de donnes API :
Vous pouvez utiliser les types de donnes API directement comme types de donnes
dans une interface de bloc de code ou dans des blocs de donnes.
Vous pouvez utiliser les types de donnes API comme modles pour la cration de
plusieurs blocs de donnes globaux utilisant la mme structure de donnes.
Un type de donnes API pourrait, par exemple, tre une recette pour mlanger des couleurs.
Vous pouvez alors affecter ce type de donnes API plusieurs blocs de donnes, les
variables de chaque bloc de donnes tant dfinies de manire crer une couleur
spcifique.
4.4.7 Types de donnes "pointeur"
Les types de donnes "pointeur" (Pointer, Any et Variant) sont utilisables dans les tables
d'interface des blocs de code FB et FC. Vous pouvez slectionner un type de donnes
"pointeur" dans les listes droulantes de types de donnes d'une interface de bloc.
Le type de donnes Variant peut galement tre utilis pour des paramtres d'instructions.
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
104 Manuel systme, 11/2011, A5E02486682-05
4.4.7.1 Type de donnes Pointer
Le type de donnes Pointer dsigne une variable particulire. Il occupe 6 octets (48 bits) en
mmoire et peut inclure les informations suivantes :
numro de DB ou 0 si les donnes ne sont pas sauvegardes dans un DB
zone de mmoire dans la CPU
adresse d'une variable
zone de mmoire
Octet 1
Octet 3
Octet 5
Octet 0
Octet 2
Octet 4
numro de DB (ou 0)
Format de pointeur
b b b
b b b b b b b b b b b b b
b= adresse d'octet x = adresse de bit
Bit Bit
15 ... ... 8 7 ... ... 0
0 0 0 0 0
x x x

Vous pouvez dclarer les trois types de pointeurs suivants selon l'instruction :
Pointeur intrazone : contient des donnes sur l'adresse d'une variable
Pointeur interzone : contient des donnes sur la zone de mmoire et l'adresse d'une
variable
Pointeur de DB : contient un numro de bloc de donnes et l'adresse d'une variable
Tableau 4- 26 Types de pointeurs :
Type Format Exemple de saisie
Pointeur intrazone P#Octet.Bit P#20.0
Pointeur interzone P#Zone_mmoire_Octet.Bit P#M20.0
Pointeur de DB P#Bloc_donnes.Elment_donn
es
P#DB10.DBX20.0
Vous pouvez entrer un paramtre de type Pointer sans le prfixe (P #). Votre entre sera
automatiquement convertie au format pointeur.
Tableau 4- 27 Codage des zones de mmoire dans les donnes Pointer :
Code hexadcimal Type de donnes Description
b#16#81 I Zone des entres
b#16#82 Q Zone des sorties
b#16#83 M Zone des mmentos
b#16#84 DBX Bloc de donnes
b#16#85 DIX Bloc de donnes d'instance
b#16#86 L Donnes locales
b#16#87 V Donnes locales prcdentes
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 105
4.4.7.2 Type de donnes Any
Le type de donnes ANY dsigne le dbut d'une zone de donnes et prcise sa longueur.
Un pointeur ANY occupe 10 octets en mmoire et peut inclure les informations suivantes :
Type de donnes : type de donnes des lments de donnes
Facteur de rptition : nombre d'lments de donnes
Numro de DB : bloc de donnes dans lequel les lments de donnes sont
sauvegards
Zone de sauvegarde : zone de mmoire de la CPU dans laquelle les lments de
donnes sont sauvegards
Adresse de dbut : adresse de dbut des donnes, de type "octet.bit"
La figure suivante montre la structure du pointeur ANY :
zone de mmoire
facteur de rptition
Octet 1
Octet 3
Octet 5
Octet 7
Octet 9
Octet 0
Octet 2
Octet 4
Octet 6
Octet 8
numro de DB (ou 0)
type de donnes 10h pour S7
b b b
b b b b b b b b b b b b b
b= adresse d'octet x = adresse de bit
Bit Bit
15 ... ... 8 7 ... ... 0
0 0 0 0 0
x x x

Un pointeur ne peut pas dtecter les structures ANY. Seule l'affectation des variables
locales est possible.
Tableau 4- 28 Format et exemples de pointeur ANY :
Format Exemple de saisie Description
P#Bloc_donnes.Zone_mmoir
e Adresse_donnes Type
Nombre
P#DB 11.DBX 20.0 INT 10 10 mots dans le DB 11 global
partir de DBB 20.0
P#M 20.0 BYTE 10 10 octets partir de MB 20.0 P#Zone_mmoire
Adresse_donnes Type Nombre
P#I 1.0 BOOL 1 Entre I1.0

Tableau 4- 29 Codage des types de donnes dans un pointeur ANY
Code hexadcimal Type de donnes Description
b#16#00 Null Pointeur nul
b#16#01 Bool Bit
b#16#02 Byte Octet, 8 bits
b#16#03 Char Caractre de 8 bits
b#16#04 Word Mot de 16 bits
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
106 Manuel systme, 11/2011, A5E02486682-05
Code hexadcimal Type de donnes Description
b#16#05 Int Entier de 16 bits
b#16#37 SInt Entier de 8 bits
b#16#35 UInt Entier de 16 bits non sign
b#16#34 USInt Entier de 8 bits non sign
b#16#06 DWord Double mot de 32 bits
b#16#07 DInt Entier double de 32 bits
b#16#36 UDInt Entier double de 32 bits non
sign
b#16#08 Real Nombre virgule flottante de 32
bits
b#16#0B Time Dure
b#16#13 String Chane de caractres

Tableau 4- 30 Codage des zones de mmoire dans un pointeur ANY :
Code hexadcimal Zone de mmoire Description
b#16#81 I Zone des entres
b#16#82 Q Zone des sorties
b#16#83 M Zone des mmentos
b#16#84 DBX Bloc de donnes
b#16#85 DIX Bloc de donnes d'instance
b#16#86 L Donnes locales
b#16#87 V Donnes locales prcdentes
4.4.7.3 Type de donnes Variant
Le type de donnes Variant peut dsigner des variables de diffrents types de donnes ou
des paramtres. Le pointeur Variant peut dsigner des structures et des lments
individuels de structures. Le pointeur Variant n'occupe aucun espace en mmoire.
Tableau 4- 31 Proprits du pointeur Variant
Longueur
(octets)
Reprsentation Format Exemple de saisie
Oprande MaVariable Symbolique
Nom_DB.Nom_struct.Nom_lment MonDB.Struct1.pression1
Oprande %MW10
0
Absolue
Numro_DB.Oprande Type Longueur P#DB10.DBX10.0 INT 12
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 107
4.4.8 Accs une "tranche" d'un type de donnes de variable
Vous pouvez accder aux variables API et aux variables de blocs de donnes au niveau bit,
octet ou mot selon leur taille. Voici la syntaxe pour accder une telle tranche de donnes :
"<nom variable API>".xn (accs bit)
"<nom variable API>".bn (accs octet)
"<nom variable API>".wn (accs mot)
"<nom bloc de donnes>".<nom variable>.xn (accs bit)
"<nom bloc de donnes>".<nom variable>.bn (accs octet)
"<nom bloc de donnes>".<nom variable>.wn (accs mot)
Il est possible d'accder une variable double mot par les bits 0 31, les octets 0 3 ou les
mots 0 et 1. Il est possible d'accder une variable mot par les bits 0 15, les octets 0 2
ou le mot 0. Il est possible d'accder une variable octet par les bits 0 8 ou l'octet 0. Les
tranches bit, octet et mot peuvent tre utilises partout o on attend des bits, octets ou mots
comme oprandes.


Remarque
Les types de donnes auxquels il est possible d'accder par tranche sont les types Byte,
Char, Conn_Any, Date, DInt, DWord, Event_Any, Event_Att, Hw_Any, Hw_Device,
HW_Interface, Hw_Io, Hw_Pwm, Hw_SubModule, Int, OB_Any, OB_Att, OB_Cyclic,
OB_Delay, OB_WHINT, OB_PCYCLE, OB_STARTUP, OB_TIMEERROR, OB_Tod, Port,
Rtm, SInt, Time, Time_Of_Day, UDInt, UInt, USInt et Word. Il est possible d'accder aux
variables API de type Real par tranche, mais pas aux variables de blocs de donnes de type
Real.

97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
108 Manuel systme, 11/2011, A5E02486682-05
Exemples
Dans la table de variables API, "DW" est une variable dclare de type DWORD. Les
exemples suivants montrent l'accs cette variable par tranche de bit, octet et mot :

CONT LOG SCL
Accs bit


IF "DW".x11 THEN
...
END_IF;
Accs octet


IF "DW".b2 = "DW".b3
THEN
...
END_IF;
Accs mot


out:= "DW".w0 AND
"DW".w1;
Vous trouverez des informations sur la syntaxe d'adressage des variables locales et des
variables API au paragraphe SCL (Page 156).
4.4.9 Accs une variable par un type de donnes ajout AT
L'ajout d'un type de donnes une variable via AT vous permet d'accder une variable
dj dclare d'un bloc accs standard avec une dclaration de type de donnes diffrent
ajoute. Vous pouvez, par exemple, accder aux bits individuels d'une variable de type Byte,
Word ou DWord au moyen d'un tableau de boolens (Array of Bool).
Dclaration
Pour ajouter un type de donnes un paramtre, dclarez un paramtre supplmentaire
directement aprs le paramtre concern et slectionnez le type de donnes "AT". L'diteur
cre l'ajout et vous pouvez alors choisir le type de donnes, la structure ou le tableau que
vous voulez utiliser comme type de donnes ajout.
97BConcepts concernant les automates programmables
4.4 Types de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 109
Exemple
Cet exemple montre les paramtres d'entre d'un FB accs standard. On ajoute comme
type de donnes la variable B1 de type octet un tableau de boolens :

Tableau 4- 32 Ajout d'un tableau de boolens comme type de donnes un octet
7 6 5 4 3 2 1 0
AT[0] AT[1] AT[2] AT[3] AT[4] AT[5] AT[6] AT[7]

Dans cet autre exemple, une variable de type DWord reoit une structure comme nouveau
type de donnes :

Les types de donnes ajouts peuvent tre adresss directement dans la logique du
programme :

CONT LOG SCL


IF #AT[1] THEN
...
END_IF;


IF (#DW1_Struct.S1 =
W#16#000C) THEN
...
END_IF;


out1 := #DW1_Struct.S2;
Vous trouverez des informations sur la syntaxe d'adressage des variables locales et des
variables API au paragraphe SCL (Page 156).
97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
110 Manuel systme, 11/2011, A5E02486682-05
Rgles
L'ajout d'un type de donnes des variables n'est possible que dans les FB et FC
accs standard.
Vous pouvez ajouter un type de donnes des paramtres pour tous les types de blocs
et toutes les sections de dclaration.
Un paramtre auquel on a ajout un type de donnes peut tre utilis comme n'importe
quel autre paramtre du bloc.
Vous ne pouvez pas ajouter de type de donnes aux paramtres de type VARIANT.
La taille du paramtre d'ajout doit tre infrieure ou gale la taille du paramtre auquel
on ajoute le type de donnes.
La variable d'ajout de type de donnes doit tre dclare immdiatement aprs la
variable laquelle on ajoute le type de donnes et doit tre identifie au moyen du mot-
cl "AT".
4.5 Utilisation d'une carte mmoire

IMPORTANT
La CPU accepte uniquement la carte mmoire SIMATIC (Page 807) prformate.
Avant de copier un programme sur la carte mmoire formate, effacez de la carte mmoire
tout programme prcdemment sauvegard.

Utilisez la carte mmoire soit comme carte transfert, soit comme carte programme. Tout
programme que vous copiez dans la carte mmoire contient tous les blocs de code et de
donnes, les objets technologiques ventuels et la configuration des appareils. Il ne contient
pas les valeurs forces de manire permanente.
Utilisez une carte transfert pour copier un programme dans la mmoire de chargement
interne de la CPU sans recourir STEP 7. Une fois la carte transfert insre, la CPU
efface d'abord le programme utilisateur et les valeurs forces de la mmoire de
chargement interne, puis copie le programme de la carte transfert dans la mmoire de
chargement interne. Vous devez retirer la carte transfert une fois le transfert achev.
Vous pouvez utiliser une carte transfert vide pour accder une CPU protge par mot
de passe en cas d'oubli du mot de passe (Page 118). Insrer une carte transfert vide
efface le programme protg par mot de passe dans la mmoire de chargement interne
de la CPU. Vous pouvez alors charger un nouveau programme dans la CPU.
97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 111
Utilisez une carte programme comme mmoire de chargement externe pour la CPU.
Insrer une carte programme dans la CPU efface toute la mmoire de chargement
interne de la CPU (le programme utilisateur et les valeurs forces en permanence). La
CPU excute alors le programme en mmoire de chargement externe (la carte
programme). Effectuer un chargement dans une CPU quipe d'une carte programme
actualise uniquement la mmoire de chargement externe (la carte programme).
Comme la mmoire de chargement interne de la CPU a t efface lorsque vous y avez
insr la carte programme, cette dernire doit rester dans la CPU. Si vous retirez la carte
programme, la CPU passe l'tat ARRET. La DEL de dfaut clignote pour signaler que
la carte programme a t enleve.
Le programme sur une carte mmoire comprend les blocs de code, les blocs de donnes,
les objets technologiques et la configuration des appareils. La carte mmoire ne contient
aucune valeur force de manire permanente. Les valeurs forces de manire permanente
ne font pas partie du programme mais sont stockes dans la mmoire de chargement, qu'il
s'agisse de la mmoire de chargement interne de la CPU ou de la mmoire de chargement
externe (une carte programme). Si une carte programme est insre dans la CPU, STEP 7
applique les valeurs forces uniquement la mmoire de chargement externe sur la carte
programme.
Vous utiliserez galement une carte mmoire pour tlcharger les mises jour du firmware
depuis l'assistance client (http://www.siemens.com/automation/support-request). Une mise
jour du firmware ncessite une carte mmoire de 24 Mo.
4.5.1 Insertion d'une carte mmoire dans la CPU

PRUDENCE
Des dcharges lectrostatiques peuvent endommager la carte mmoire ou son
emplacement sur la CPU.
Pour viter tout risque lorsque vous manipulez la carte mmoire, soyez en contact avec un
tapis conducteur mis la terre ou portez un bracelet spcial avec chanette. Conservez la
carte mmoire dans une bote conductrice.




Vrifiez que la carte mmoire n'est pas protge en criture. Faites glisser
le commutateur de protection pour l'loigner de la position "verrou".

97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
112 Manuel systme, 11/2011, A5E02486682-05

PRUDENCE
Si vous insrez une carte mmoire (qu'elle soit configure comme carte programme ou
comme carte transfert) dans une CPU l'tat MARCHE, la CPU passe immdiatement
l'tat ARRET, ce qui peut provoquer des dommages aux quipements ou au processus
pilot. Avant d'insrer ou de retirer une carte mmoire, assurez-vous toujours que la CPU
ne pilote pas activement une machine ou un processus. Installez toujours un circuit d'arrt
d'urgence pour votre application ou votre processus.

Remarque
Si vous insrez une carte mmoire alors que la CPU est l'tat ARRET, la mmoire tampon
de diagnostic affiche un message indiquant que l'valuation de la carte mmoire a
commenc. La CPU valuera la carte mmoire la prochaine fois que vous ferez passer la
CPU l'tat MARCHE, que vous effectuerez un effacement gnral de la CPU via MRES ou
que vous mettrez la CPU hors tension puis sous tension.




Pour insrer une carte mmoire, ouvrez le
volet suprieur de la CPU et insrez la
carte mmoire dans la fente. Un
connecteur de type "push-push" facilite
l'insertion et l'extraction de la carte.
La carte mmoire est dote d'un
dtrompeur pour garantir une installation
correcte.
97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 113
4.5.2 Configuration des paramtres de mise en route de la CPU avant copie du projet
dans la carte mmoire
Lorsque vous copiez un programme dans une carte transfert ou une carte programme, le
programme comprend les paramtres de mise en route pour la CPU. Assurez-vous toujours,
avant de copier le programme dans la carte mmoire, que vous avez configur l'tat de
fonctionnement de la CPU au retour de la tension. Choisissez si la CPU doit dmarrer
l'tat ARRET, l'tat MARCHE ou l'tat qu'elle avait avant la mise hors puis sous tension.

4.5.3 Utilisation de la carte mmoire en tant que carte "transfert"

PRUDENCE
Des dcharges lectrostatiques peuvent endommager la carte mmoire ou son
emplacement sur la CPU.
Pour viter tout risque lorsque vous manipulez la carte mmoire, soyez en contact avec un
tapis conducteur mis la terre ou portez un bracelet spcial avec chanette. Conservez la
carte mmoire dans une bote conductrice.

Cration d'une carte transfert
Pensez toujours configurer les paramtres de mise en route de la CPU (Page 113) avant
de copier un programme dans la carte transfert. Procdez comme suit pour crer une carte
transfert :
1. Insrez une carte mmoire SIMATIC vierge dans un lecteur/graveur de carte SD reli
votre ordinateur.
Si vous rutilisez une carte mmoire SIMATIC contenant un programme utilisateur ou
une mise jour du firmware, vous devez effacer les fichiers programme avant de
rutiliser la carte. Utilisez l'Explorateur Windows pour afficher le contenu de la carte
mmoire et effacez le fichier "S7_JOB.S7S" ainsi que tout dossier (tel que
"SIMATIC.S7S" ou "FWUPDATE.S7S").
2. Dans l'arborescence du projet (vue du projet), affichez le dtail du dossier "SIMATIC
Card Reader" et slectionnez votre lecteur de carte.
3. Ouvrez la bote de dialogue "Carte mmoire" en cliquant avec le bouton droit de la souris
sur la lettre de lecteur correspondant la carte mmoire dans le lecteur de carte et en
slectionnant "Proprits" dans le menu contextuel.
97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
114 Manuel systme, 11/2011, A5E02486682-05
4. Slectionnez "Transfert" dans le menu droulant "Type de carte" de la bote de dialogue
"Carte mmoire".
STEP 7 cre alors la carte transfert vide. Si vous crez une carte transfert vide, par
exemple pour restaurer une CPU dont vous avez oubli le mot de passe (Page 118),
retirez la carte transfert du lecteur de carte.

5. Ajoutez le programme en slectionnant la CPU (par exemple, API_1 [CPU 1214
DC/DC/DC]) dans l'arborescence du projet et en la faisant glisser dans la carte mmoire.
Une autre mthode consiste copier-coller la CPU dans la carte mmoire. Copier la CPU
dans la carte mmoire ouvre la bote de dialogue "Aperu du chargement".
6. Dans la bote de dialogue "Aperu du chargement", cliquez sur le bouton "Charger" pour
copier la CPU dans la carte mmoire.
7. Cliquez sur le bouton "Terminer" lorsqu'un message vous signale que la CPU
(programme) a t charge sans erreur.
Utilisation d'une carte transfert

ATTENTION
Vrifiez qu'aucun processus n'est actif dans la CPU avant d'insrer la carte mmoire.
L'insertion d'une carte mmoire fait passer la CPU l'tat ARRET, ce qui peut affecter le
fonctionnement d'une machine ou d'un processus en ligne avec comme consquence
ventuelle la mort, des blessures graves et des dommages matriels importants.
Avant d'insrer une carte mmoire, assurez-vous que la CPU est hors ligne et dans un tat
sr.

Procdez comme suit pour transfrer le programme dans une CPU :
1. Insrez la carte transfert dans la CPU (Page 111). Si la CPU est l'tat MARCHE, elle
passe l'tat ARRET. La DEL de maintenance (MAINT) clignote pour signaler que la
carte mmoire doit tre value.
2. Mettez la CPU hors tension puis sous tension pour valuer la carte mmoire. Les autres
mthodes pour redmarrer la CPU consistent excuter une transition ARRET-MARCHE
ou un effacement gnral (MRES) partir de STEP 7.
97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 115
3. Aprs redmarrage et valuation de la carte mmoire, la CPU copie le programme dans
la mmoire de chargement interne de la CPU.
La DEL RUN/STOP clignote alternativement en vert et en jaune pour indiquer que le
programme est en cours de copie. La DEL RUN/STOP passe en feu fixe (jaune) et la
DEL MAINT clignote lorsque l'opration de copie est termine. Vous pouvez alors retirer
la carte mmoire.
4. Redmarrez la CPU (en la remettant sous tension ou par l'une des mthodes alternatives
de redmarrage) pour valuer le nouveau programme transfr en mmoire de
chargement interne.
La CPU passe alors au mode (MARCHE ou ARRET) que vous avez configur pour la mise
en route dans le projet.

Remarque
Vous devez retirer la carte transfert avant de faire passer la CPU l'tat MARCHE.

4.5.4 Utilisation de la carte mmoire en tant que carte "programme"

PRUDENCE
Des dcharges lectrostatiques peuvent endommager la carte mmoire ou son
emplacement sur la CPU.
Pour viter tout risque lorsque vous manipulez la carte mmoire, soyez en contact avec un
tapis conducteur mis la terre ou portez un bracelet spcial avec chanette. Conservez la
carte mmoire dans une bote conductrice.




Vrifiez que la carte mmoire n'est pas protge en criture. Faites glisser
le commutateur de protection pour l'loigner de la position "verrou".
Avant de copier des lments de programme sur la carte programme,
effacez de la carte mmoire tout programme prcdemment sauvegard.
97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
116 Manuel systme, 11/2011, A5E02486682-05
Cration d'une carte programme
Lorsque vous l'utilisez comme carte programme, la carte mmoire constitue la mmoire de
chargement externe de la CPU. Si vous retirez la carte programme, la mmoire de
chargement interne de la CPU est vide.

Remarque
Si vous insrez une carte mmoire vierge dans la CPU et effectuez une valuation de carte
mmoire, soit en mettant la CPU hors tension puis sous tension, en effectuant un passage
de l'tat ARRET l'tat MARCHE ou en excutant un effacement gnral (MRES), le
programme et les valeurs de forage dans la mmoire de chargement interne de la CPU
sont copis dans la carte mmoire. La carte mmoire est maintenant une carte programme.
Une fois la copie acheve, le programme dans la mmoire de chargement interne de la CPU
est effac. La CPU passe alors au mode de mise en route configur (MARCHE ou ARRET).

Pensez toujours configurer les paramtres de mise en route de la CPU (Page 113) avant
de copier un projet dans la carte programme. Procdez comme suit pour crer une carte
programme :
1. Insrez une carte mmoire SIMATIC vierge dans un lecteur/graveur de carte SD reli
votre ordinateur.
Si vous rutilisez une carte mmoire SIMATIC contenant un programme utilisateur ou
une mise jour du firmware, vous devez effacer les fichiers programme avant de
rutiliser la carte. Utilisez l'Explorateur Windows pour afficher le contenu de la carte
mmoire et effacez le fichier "S7_JOB.S7S" ainsi que tout dossier (tel que
"SIMATIC.S7S" ou "FWUPDATE.S7S").
2. Dans l'arborescence du projet (vue du projet), affichez le dtail du dossier "SIMATIC
Card Reader" et slectionnez votre lecteur de carte.
3. Ouvrez la bote de dialogue "Carte mmoire" en cliquant avec le bouton droit de la souris
sur la lettre de lecteur correspondant la carte mmoire dans le lecteur de carte et en
slectionnant "Proprits" dans le menu contextuel.
4. Slectionnez "Programme" dans le menu droulant de la bote de dialogue "Carte
mmoire".

97BConcepts concernant les automates programmables
4.5 Utilisation d'une carte mmoire
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 117
5. Ajoutez le programme en slectionnant la CPU (par exemple, API_1 [CPU 1214
DC/DC/DC]) dans l'arborescence du projet et en la faisant glisser dans la carte mmoire.
Une autre mthode consiste copier-coller la CPU dans la carte mmoire. Copier la CPU
dans la carte mmoire ouvre la bote de dialogue "Aperu du chargement".
6. Dans la bote de dialogue "Aperu du chargement", cliquez sur le bouton "Charger" pour
copier la CPU dans la carte mmoire.
7. Cliquez sur le bouton "Terminer" lorsqu'un message vous signale que la CPU
(programme) a t charge sans erreur.
Utilisation d'une carte programme comme mmoire de chargement pour votre CPU

ATTENTION
Vrifiez qu'aucun processus n'est actif dans la CPU avant d'insrer la carte mmoire.
L'insertion d'une carte mmoire fait passer la CPU l'tat ARRET, ce qui peut affecter le
fonctionnement d'une machine ou d'un processus en ligne avec comme consquence
ventuelle la mort, des blessures graves et des dommages matriels importants.
Avant d'insrer une carte mmoire, assurez-vous que la CPU est hors ligne et dans un tat
sr.

Procdez comme suit pour utiliser une carte programme avec votre CPU :
1. Insrez la carte programme dans la CPU. Si la CPU est l'tat MARCHE, elle passe
l'tat ARRET. La DEL de maintenance (MAINT) clignote pour signaler que la carte
mmoire doit tre value.
2. Mettez la CPU hors tension puis sous tension pour valuer la carte mmoire. Les autres
mthodes pour redmarrer la CPU consistent excuter une transition ARRET-MARCHE
ou un effacement gnral (MRES) partir de STEP 7.
3. Aprs que la CPU a redmarr et a valu la carte programme, elle efface sa mmoire
de chargement interne.
La CPU passe alors au mode (MARCHE ou ARRET) que vous avez configur pour la mise
en route de la CPU.
La carte programme doit rester dans la CPU. Retirer la carte programme laisse la CPU sans
aucun programme dans la mmoire de chargement interne.

ATTENTION
Si vous retirez la carte programme, la CPU perd sa mmoire de chargement externe et
gnre une erreur. La CPU passe l'tat ARRET et la DEL de dfaut se met clignoter.
Les appareils de commande peuvent prsenter des dfaillances dans des situations non
sres et provoquer un fonctionnement inattendu des appareils pilots pouvant entraner la
mort, des blessures graves et des dommages matriels importants.

97BConcepts concernant les automates programmables
4.6 Rcupration en cas d'oubli du mot de passe
Automate programmable S7-1200
118 Manuel systme, 11/2011, A5E02486682-05
4.6 Rcupration en cas d'oubli du mot de passe
Si vous avez oubli le mot de passe d'une CPU protge par mot de passe, utilisez une
carte transfert vide pour effacer le programme protg par mot de passe. La carte transfert
vide efface la mmoire de chargement interne de la CPU. Vous pouvez alors charger un
nouveau programme utilisateur de STEP 7 dans la CPU.
Pour plus d'informations sur la cration et l'utilisation d'une carte transfert vide, reportez-
vous au paragraphe sur les cartes transfert (Page 113).

ATTENTION
Si vous insrez une carte transfert dans une CPU l'tat MARCHE, la CPU passe l'tat
ARRET. Les appareils de commande peuvent prsenter des dfaillances dans des
situations non sres et provoquer un fonctionnement inattendu des appareils pilots
pouvant entraner la mort, des blessures graves et des dommages matriels importants.

Vous devez retirer la carte transfert avant de faire passer la CPU l'tat MARCHE.

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 119
Configuration des appareils 5

Vous crez la configuration des appareils pour votre automate en ajoutant une CPU et des
modules supplmentaires votre projet.
1
2
3
4
5

Module de communication (CM) et processeur de communication (CP) : jusqu' 3, insrs aux
emplacements 101, 102 et 103
CPU : emplacement 1
port Ethernet de la CPU
Signal Board (SB) ou Communication Board (CB) : au plus 1, insr dans la CPU
Module d'entres-sorties (SM) TOR ou analogiques : jusqu' 8, insrs aux emplacements 2
9
(la CPU 1214C en autorise 8, la CPU 1212C en autorise 2, la CPU 1211C n'en autorise aucun)


Pour crer la configuration des
appareils, ajoutez un appareil votre
projet.
Dans la vue du portail,
slectionnez "Appareils &
rseaux" et cliquez sur "Ajouter
un appareil".
Dans la vue du projet, double-
cliquez sur "Ajouter un appareil"
sous le nom de projet.


98BConfiguration des appareils
5.1 Insertion d'une CPU
Automate programmable S7-1200
120 Manuel systme, 11/2011, A5E02486682-05
5.1 Insertion d'une CPU
Vous crez votre configuration d'appareil en insrant une CPU dans votre projet.
Slectionner la CPU dans la bote de dialogue "Ajouter un appareil" cre le chssis et la
CPU.

Bote de dialogue "Ajouter un
appareil"

Vue des appareils de la
configuration matrielle

Slectionner la CPU dans la vue
des appareils provoque
l'affichage des proprits de la
CPU dans la fentre
d'inspection.



Remarque
La CPU ne dispose pas d'une adresse IP prconfigure. Vous devez affecter manuellement
une adresse IP la CPU pendant la configuration des appareils. Si votre CPU est connecte
un routeur sur le rseau, vous entrez aussi l'adresse IP du routeur.

98BConfiguration des appareils
5.2 Dtection de la configuration d'une CPU non spcifie
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 121
5.2 Dtection de la configuration d'une CPU non spcifie


Lorsque vous tes connect une CPU, vous pouvez charger
la configuration de cette CPU, y compris tous les modules,
dans votre projet. Il vous suffit de crer un nouveau projet et de
slectionner la "CPU non spcifie" au lieu d'une CPU
spcifique (vous pouvez galement ne pas passer par la
configuration matrielle en slectionnant "Crer un programme
API" dans "Mise en route". STEP 7 cre ensuite
automatiquement une CPU non spcifie.)
Dans l'diteur de programmes, vous slectionnez la commande
"Dtection du matriel" du menu "En ligne".
Dans l'diteur de configuration des appareils, vous slectionnez l'option de dtection de
configuration de l'appareil connect.

Une fois que vous avez slectionn la CPU dans la bote de dialogue en ligne et cliqu sur
le bouton Charger, STEP 7 tlcharge la configuration matrielle depuis la CPU, en incluant
tous les modules (SM, SB ou CM). Vous pouvez alors configurer les paramtres de la CPU
et des modules.


98BConfiguration des appareils
5.3 Ajout de modules la configuration
Automate programmable S7-1200
122 Manuel systme, 11/2011, A5E02486682-05
5.3 Ajout de modules la configuration
Utiliser le catalogue de matriel pour ajouter des modules la CPU :
Le module d'entres-sorties (SM) fournit des points d'E/S numriques ou analogiques
supplmentaires. Ces modules se raccordent sur le ct droit de la CPU.
Le Signal Board (SB) fournit seulement quelques points d'E/S supplmentaires pour la
CPU. Le SB s'installe l'avant de la CPU.
La carte de communication (CB) fournit un port de communication supplmentaire
(comme RS485). Le Communication Board s'installe l'avant de la CPU.
Le module de communication (CM) et le processeur de communication (CP) fournissent
un port de communication supplmentaire, comme PROFIBUS ou GPRS. Ces modules
se raccordent sur le ct gauche de la CPU.
Pour insrer un module dans la configuration matrielle, slectionnez le module concern
dans le catalogue du matriel et double-cliquez ou faites glisser le module dans
l'emplacement mis en vidence.
98BConfiguration des appareils
5.4 Configuration du fonctionnement de la CPU
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 123
Tableau 5- 1 Ajouter un module la configuration de l'appareil
Module Slectionnez le module Insrez le module Rsultat
SM


SB ou CB



CM ou CP


5.4 Configuration du fonctionnement de la CPU

Pour configurer les paramtres de
fonctionnement de la CPU, slectionnez
la CPU dans la vue des appareils (CPU
entoure de bleu) et servez-vous de
l'onglet "Proprits" de la fentre
d'inspection.

98BConfiguration des appareils
5.4 Configuration du fonctionnement de la CPU
Automate programmable S7-1200
124 Manuel systme, 11/2011, A5E02486682-05

Tableau 5- 2 Proprits de la CPU
Proprit Description
Interface PROFINET Dfinit l'adresse IP pour la CPU et la synchronisation d'horloge.
DI, DO et AI Configure le comportement des E/S TOR et analogiques locales (intgres).
Compteurs rapides
(Page 341) et gnrateurs
d'impulsions (Page 313)
Valide et configure les compteurs rapides (HSC) et les gnrateurs d'impulsions utiliss
pour les fonctions PTO (sortie de trains d'impulsions) et PWM (modulation de largeur des
impulsions).
Lorsque vous configurez les sorties de la CPU ou du Signal Board en tant que gnrateurs
d'impulsions (pour les instructions PWM ou de commande de mouvement de base), les
adresses des sorties correspondantes (Q0.0, Q0.1, Q4.0 et Q4.1) sont supprimes de la
mmoire Q et ne peuvent pas tre utilises d'autres fins dans le programme utilisateur. Si
votre programme utilisateur crit une valeur dans une sortie utilise comme gnrateur
d'impulsions, la CPU n'crit pas cette valeur dans la sortie physique.
Dmarrage aprs mise sous tension : Slectionne le comportement de la CPU aprs une
mise sous tension, par exemple dmarrage l'tat ARRET ou passage l'tat MARCHE
aprs un dmarrage chaud.
Compatibilit matrielle prise en charge : Configure le remplacement des modules (SM, SB,
CM, CP et mme la CPU) :
Autoriser un module de remplacement compatible (option par dfaut)
Autoriser tout module de remplacement
Par exemple, un SM 16 voies pourrait tre un module de remplacement compatible pour
un module d'E/S 8 voies.
Mise en route (Page 69)
Temps d'affectation des paramtres pour la priphrie dcentralise : Configure une dure
maximale (par dfaut : 60000 ms) pour que la priphrie dcentralise soit mise en ligne.
(Les CM et les CP reoivent les paramtres de communication et d'alimentation de la CPU
pendant la mise en route. Ce temps d'affectation fournit du temps pour la mise en ligne des
E/S connectes au CM ou au CP.)
La CPU passe l'tat MARCHE ds que la priphrie dcentralise est en ligne, sans tenir
compte du temps d'affectation. Si la priphrie dcentralise n'a pas t mise en ligne
l'expiration de ce temps, la CPU passe quand mme l'tat MARCHE, mais sans la
priphrie dcentralise.
Remarque : Si votre configuration utilise un CM 1243-5 (matre PROFIBUS), ne donnez pas
une valeur infrieure 15 secondes (15000 ms) ce paramtre afin de garantir que le
module sera mis en ligne.
Cycle (Page 81) Dfinit un temps de cycle maximum ou un temps de cycle minimum fixe.
Charge due la
communication
Rserve un pourcentage du temps CPU aux tches de communication.
Mmento systme et
mmento de cadence
(Page 86)
Valide un octet pour les fonctions "mmento systme" et valide un octet pour les fonctions
"mmento de cadence" (o chaque bit bascule entre 1 et 0 selon une frquence prdfinie).
Serveur Web (Page 507) Valide et configure la fonction serveur Web.
Heure Permet de slectionner le fuseau horaire et de configurer l'heure d't.
Protection (Page 164) Dfinit la protection en lecture/criture et le mot de passe pour accder la CPU.
Ressources de liaison
(Page 424)
Fournit un rcapitulatif des liaisons de communication disponibles pour la CPU et le nombre
de liaisons qui ont t configures.
Prsentation des adresses Fournit un rcapitulatif des adresses d'E/S qui ont t configures pour la CPU.
98BConfiguration des appareils
5.5 Configuration des paramtres des modules
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 125
5.5 Configuration des paramtres des modules
Pour configurer les paramtres de fonctionnement d'un module, slectionnez le module dans
la vue des appareils et servez-vous de l'onglet "Proprits" de la fentre d'inspection.
Configuration d'un module d'entres-sorties (SM) ou d'un Signal Board (SB)

E/S TOR : Il est possible de configurer des entres pour la dtection de front montant ou
de front descendant (en associant chaque entre un vnement et une alarme de
processus) ainsi que pour la capture d'impulsions (afin qu'elles restent 1 aprs une
impulsion momentane) jusqu' l'actualisation suivante de la mmoire image des
entres. Les sorties peuvent tre figes ou utiliser une valeur de remplacement.
E/S analogiques : Configurez les paramtres des entres individuelles, par exemple le
type de mesure (tension ou courant), la plage et le lissage, et activez le diagnostic de
dbordement bas ou haut. Les sorties analogiques fournissent des paramtres relatifs au
type de sortie (tension ou courant) et au diagnostic, de court-circuit (pour les sorties de
tension) ou de limite suprieure/infrieure par exemple. Vous ne configurez pas les
plages des entres et sorties analogiques en units physiques dans la bote de dialogue
Proprits, car ce point doit tre gr dans la logique de votre programme comme dcrit
la rubrique "Traitement des valeurs analogiques (Page 94)".
Adresses de diagnostic des E/S : Configure l'adresse de dbut pour le jeu d'entres et de
sorties du module.
Configuration d'une interface de communication (CM, CP ou CB)

Vous configurez les paramtres pour le rseau en fonction du type d'interface de
communication.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
126 Manuel systme, 11/2011, A5E02486682-05
5.6 Configuration de la CPU pour la communication
5.6.1 Cration d'une liaison rseau
Utilisez la "Vue du rseau" de la configuration des appareils pour crer les liaisons rseau
entre les appareils dans votre projet. Une fois la liaison rseau cre, servez-vous de
l'onglet "Proprits" de la fentre d'inspection pour configurer les paramtres du rseau.
Tableau 5- 3 Cration d'une liaison rseau
Action Rsultat
Slectionnez la "Vue du rseau"
pour afficher les appareils
connecter.

Slectionnez le port sur un appareil
et tracez la liaison vers le port sur le
deuxime appareil.

Relchez le bouton de la souris pour
crer la liaison rseau.

98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 127
5.6.2 Configuration du routage local/partenaire
La fentre d'inspection affiche les proprits de la liaison lorsque vous slectionnez
n'importe quelle partie de l'instruction. Indiquez les paramtres de communication dans
l'onglet "Configuration" des "Proprits" de l'instruction de communication.
Tableau 5- 4 Configuration du routage ( l'aide des proprits de l'instruction)
TCP, ISO sur TCP et UDP : Proprits de liaison
Pour les protocoles Ethernet TCP, ISO sur TCP
et UDP, utilisez les "Proprits" de l'instruction
(TSEND_C, TRCV_C ou TCON) pour configurer
les liaisons "locale/partenaire".
La figure montre les "Proprits" d'une liaison
ISO sur TCP dans l'onglet "Configuration".



Remarque
Lorsque vous configurez les proprits de liaison pour une CPU, STEP 7 vous permet de
slectionner dans la CPU partenaire un DB de liaison spcifique (s'il existe) ou de crer le
DB de liaison pour la CPU partenaire. La CPU partenaire doit avoir t pralablement cre
pour le projet et ne peut pas tre une CPU "non spcifie".
Vous devez toujours insrer une instruction TSEND_C, TRCV_C ou TCON dans le
programme utilisateur de la CPU partenaire. Lorsque vous insrez l'instruction, slectionnez
le DB de liaison qui a t cr par la configuration.


98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
128 Manuel systme, 11/2011, A5E02486682-05
Tableau 5- 5 Configuration du routage pour la communication S7 (configuration des appareils)
Communication S7 (GET et PUT) Proprits de liaison

Pour la communication S7, utilisez l'diteur
"Appareils & rseaux" du rseau pour configurer
les liaisons locale/partenaire. Vous pouvez
cliquer sur le bouton "Mis en valeur : Liaison"
pour accder aux "Proprits".
L'onglet "Gnral" fournit plusieurs proprits :
"Gnral" (montr)
"ID locale"
"Proprits de liaison particulires"
"Dtails de l'adresse" (montr)

Reportez-vous "Protocoles" (Page 429) dans le chapitre "PROFINET" ou "Cration d'une
liaison S7" (Page 497) dans le chapitre "Communication S7" pour obtenir plus d'informations
ainsi que la liste des instructions de communication disponibles.
Tableau 5- 6 Paramtres pour la liaison entre CPU
Paramtre Dfinition
Adresse Adresses IP affectes
Noeud d'extrmit Nom affect la CPU partenaire (rceptrice)
Interface Nom affect aux interfaces
Sous-rseau Nom affect aux sous-rseaux
Type d'interface Communication S7 uniquement : Type de l'interface
Type de liaison Type de protocole Ethernet
ID de liaison Numro d'identification
Donnes de liaison Emplacement de stockage des donnes des CPU locale et partenaire
Gnral
Etablissement d'une
liaison active
Bouton radio pour slectionner la CPU locale ou partenaire en tant que liaison
active
Noeud d'extrmit Communication S7 uniquement : Nom affect la CPU partenaire (rceptrice)
Chssis/emplacement Communication S7 uniquement : Adresse du chssis et de l'emplacement
Ressources de liaison Communication S7 uniquement : Composant du TSAP utilis lors de la
configuration d'une liaison S7 avec une CPU S7-300 ou S7-400
Dtails de
l'adresse
Port (dcimal) TCP et UPD : Port de la CPU partenaire en format dcimal
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 129
Paramtre Dfinition
TSAP
1
et ID de sous-
rseau :
ISO sur TCP (RFC 1006) et communication S7 : TSAP des CPU locale et
partenaire en formats ASCII et hexadcimal
1
Lorsque vous configurez une liaison avec une CPU S7-1200 pour ISO sur TCP, utilisez uniquement des caractres
ASCII dans l'extension TSAP pour les partenaires de communication passifs.
TSAP (points d'accs au service transport)
Grce aux points d'accs au service transport (TSAP), le protocole ISO sur TCP et la
communication S7 autorisent des liaisons multiples une adresse IP unique (liaisons 64K
maximum). Les TSAP identifient de manire unique ces liaisons de noeud d'extrmit une
adresse IP.
Vous dfinissez les points TSAP utiliser dans la section "Dtails de l'adresse" de la bote
de dialogue "Paramtres de liaison". Vous indiquez le point TSAP d'une liaison dans la CPU
dans la zone "TSAP local". Vous indiquez le point TSAP affect la liaison dans votre CPU
partenaire dans la zone "TSAP partenaire".
Numros de port
Avec les protocoles TCP et UDP, la configuration des paramtres de liaison de la CPU
locale (active) doit indiquer l'adresse IP loigne et le numro de port de la CPU partenaire
(passive).
Vous dfinissez les ports utiliser dans la section "Dtails de l'adresse" de la bote de
dialogue "Paramtres de liaison". Vous indiquez le port d'une liaison dans la CPU dans la
zone "Port local". Vous indiquez le port affect la liaison dans votre CPU partenaire dans
la zone "Port partenaire".
5.6.3 Paramtres pour la liaison PROFINET
Les instructions TSEND_C, TRCV_C et TCON ncessitent l'indication de paramtres relatifs
la liaison pour que la liaison au partenaire soit tablie. Ces paramtres sont indiqus par la
structure TCON_Param pour les protocoles TCP, ISO sur TCP et UDP. Typiquement, vous
utilisez l'onglet "Configuration" des "Proprits" (Page 127) de l'instruction pour fournir ces
paramtres. Si l'onglet "Configuration" n'est pas accessible, vous devez fournir la structure
TCON_Param par programme.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
130 Manuel systme, 11/2011, A5E02486682-05
Tableau 5- 7 Structure de la description de la liaison (TCON_Param)
Octet Paramtre et type de donnes Description
0 1 block_length UInt Longueur : 64 octets (fixe)
2 3 id CONN_OUC
(Word)
Rfrence cette liaison : Plage de valeurs : 1 (valeur par dfaut)
4095. Indiquez la valeur de ce paramtre pour l'instruction
TSEND_C, TRCV_C ou TCON sous ID.
4 connection_type USInt Type de liaison :
17: TCP (par dfaut)
18: ISO sur TCP
19: UDP
5 active_est Bool ID pour le type de liaison :
TCP et ISO sur TCP :
FAUX : liaison passive
VRAI : liaison active (valeur par dfaut)
UDP : FAUX
6 local_device_id USInt ID pour l'interface PROFINET ou Industrial Ethernet locale : 1
(valeur par dfaut)
7 local_tsap_id_len USIn Longueur du paramtre local_tsap_id utilis, en octets ; valeurs
possibles :
TCP : 0 (actif, valeur par dfaut) ou 2 (passif)
ISO sur TCP : 2 16
UDP : 2
8 rem_subnet_id_len USInt Ce paramtre n'est pas utilis.
9 rem_staddr_len USInt Longueur de l'adresse du noeud d'extrmit partenaire, en octets :
0: non prcis (paramtre rem_staddr sans objet)
4 (valeur par dfaut) : adresse IP valide dans le paramtre
rem_staddr (uniquement pour TCP et ISO sur TCP)
10 rem_tsap_id_len USInt Longueur du paramtre rem_tsap_id utilis, en octets ; valeurs
possibles :
TCP : 0 (passif) ou 2 (actif, valeur par dfaut)
ISO sur TCP : 2 16
UDP : 0
11 next_staddr_len USInt Ce paramtre n'est pas utilis.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 131
Octet Paramtre et type de donnes Description
12 27 local_tsap_id Array [1..16] of
Byte
Elment d'adresse local de la liaison :
TCP et ISO sur TCP : n de port local (valeurs possibles : 1
49151 ; valeurs recommandes : 2000...5000):
local_tsap_id[1] = octet de poids fort du numro de port en
notation hexadcimale
local_tsap_id[2] = octet de poids faible du numro de port
en notation hexadcimale
local_tsap_id[3-16] = sans objet
ISO sur TCP : ID TSAP local :
local_tsap_id[1] = B#16#E0
local_tsap_id[2] = chssis et emplacement du noeud
d'extrmit local (bits 0 4 : numro d'emplacement, bits 5
7 : numro de chssis)
local_tsap_id[3-16] = extension TSAP, facultative
UDP : Ce paramtre n'est pas utilis.
Remarque : Veillez ce que chaque valeur de local_tsap_id soit
unique dans la CPU.
28 33 rem_subnet_id Array [1..6] of
USInt
Ce paramtre n'est pas utilis.
34 39 rem_staddr Array [1..6] of
USInt
TCP et ISO sur TCP uniquement : Adresse IP du noeud
d'extrmit partenaire (sans objet pour les liaisons passives).
L'adresse IP 192.168.002.003 est, par exemple, stocke dans les
lments suivants du tableau :
rem_staddr[1] = 192
rem_staddr[2] = 168
rem_staddr[3] = 002
rem_staddr[4] = 003
rem_staddr[5-6]= sans objet
40 55 rem_tsap_id Array [1..16] of
Byte
Elment d'adresse partenaire de la liaison :
TCP : numro de port partenaire. Plage : 1 49151 ; valeurs
recommandes : 2000 5000) :
rem_tsap_id[1] = octet de poids fort du numro de port en
notation hexadcimale
rem_tsap_id[2] = octet de poids faible du numro de port en
notation hexadcimale
rem_tsap_id[3-16] = sans objet
ISO sur TCP : ID TSAP partenaire :
rem_tsap_id[1] = B#16#E0
rem_tsap_id[2] = chssis et emplacement du noeud
d'extrmit partenaire (bits 0 4 : numro d'emplacement,
bits 5 7 : numro de chssis)
rem_tsap_id[3-16] = extension TSAP, facultative
UDP : Ce paramtre n'est pas utilis.
56 61 next_staddr Array [1..6] of
Byte
Ce paramtre n'est pas utilis.
62 63 spare Word Rserv : W#16#0000
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
132 Manuel systme, 11/2011, A5E02486682-05
5.6.4 Affectation d'adresses IP (Internet Protocol)
5.6.4.1 Affectation d'adresses IP des consoles de programmation et des dispositifs rseau
Si votre console de programmation utilise une carte adaptateur intgre relie votre
rseau local d'usine (et ventuellement Internet), l'ID rseau de l'adresse IP et le masque
de sous-rseau de votre CPU et de la carte adaptateur intgre de la console de
programmation doivent tre exactement les mmes. L'ID rseau est la premire partie de
l'adresse IP (trois premiers octets ; par exemple, 211.154.184.16) qui dtermine sur quel
rseau IP vous vous trouvez. Le masque de sous-rseau a normalement la valeur
255.255.255.0 ; toutefois, comme votre ordinateur se trouve dans un rseau local d'usine, le
masque de sous-rseau peut avoir diverses valeurs (par exemple, 255.255.254.0) afin de
configurer des sous-rseaux uniques. Lorsqu'il est combin avec l'adresse IP d'appareil par
une opration mathmatique ET, le masque de sous-rseau dfinit les limites d'un sous-
rseau IP.

Remarque
Pour un scnario Internet o les consoles de programmation, les dispositifs rseau et les
routeurs IP communiqueront avec l'extrieur, il faut affecter des adresses IP uniques afin
d'viter des conflits avec d'autres utilisateurs du rseau. Adressez-vous au personnel du
service informatique de votre entreprise qui connat vos rseaux d'usine pour l'affectation de
vos adresses IP.

Si votre console de programmation utilise une carte adaptateur Ethernet USB relie un
rseau isol, l'ID rseau de l'adresse IP et le masque de sous-rseau de votre CPU et de la
carte adaptateur Ethernet USB de la console de programmation doivent tre exactement
les mmes. L'ID rseau est la premire partie de l'adresse IP (trois premiers octets ; par
exemple, 211.154.184.16) qui dtermine sur quel rseau IP vous vous trouvez. Le masque
de sous-rseau a normalement la valeur 255.255.255.0. Lorsqu'il est combin avec
l'adresse IP d'appareil par une opration mathmatique ET, le masque de sous-rseau
dfinit les limites d'un sous-rseau IP.

Remarque
Une carte adaptateur Ethernet USB est utile lorsque vous ne voulez pas que votre CPU
soit sur votre rseau local d'entreprise. Cet agencement est particulirement utile pendant le
test initial et les tests de mise en service.


98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 133
Tableau 5- 8 Affectation d'adresses Ethernet
Carte adaptateur de
la console de
programmation
Type de rseau Adresse IP (Internet Protocol) Masque de sous-rseau
Carte adaptateur
intgre
Connexion
votre rseau
d'usine (et
ventuellement
Internet)
L'ID rseau de votre CPU et de la
carte adaptateur intgre de la
console de programmation doivent
tre exactement identiques.
L'ID rseau est la premire partie de
l'adresse IP (trois premiers octets ;
par exemple, 211.154.184.16) qui
dtermine sur quel rseau IP vous
vous trouvez.
Le masque de sous-rseau de votre
CPU et de la carte adaptateur intgre
doivent tre exactement les mmes.
Le masque de sous-rseau a
normalement la valeur 255.255.255.0 ;
toutefois, comme votre ordinateur se
trouve dans un rseau local d'usine, le
masque de sous-rseau peut avoir
diverses valeurs (par exemple,
255.255.254.0) afin de configurer des
sous-rseaux uniques. Lorsqu'il est
combin avec l'adresse IP d'appareil par
une opration mathmatique ET, le
masque de sous-rseau dfinit les
limites d'un sous-rseau IP.
Carte adaptateur
Ethernet USB
Connexion un
rseau isol
L'ID rseau de votre CPU et de la
carte adaptateur Ethernet USB de
la console de programmation doivent
tre exactement identiques.
L'ID rseau est la premire partie de
l'adresse IP (trois premiers octets ;
par exemple, 211.154.184.16) qui
dtermine sur quel rseau IP vous
vous trouvez.
Le masque de sous-rseau de votre
CPU et de la carte adaptateur Ethernet
USB doivent tre exactement les
mmes.
Le masque de sous-rseau a
normalement la valeur 255.255.255.0.
Lorsqu'il est combin avec l'adresse IP
d'appareil par une opration
mathmatique ET, le masque de sous-
rseau dfinit les limites d'un sous-
rseau IP.
Affectation ou vrification de l'adresse IP de votre console de programmation via "Favoris rseau"
(sur votre bureau)
Vous pouvez affecter ou vrifier l'adresse IP de votre console de programmation l'aide des
slections de menu suivantes :
(Cliquez avec le bouton droit de la souris sur) "Favoris rseau"
"Proprits"
(Cliquez avec le bouton droit de la souris sur) "Connexion au rseau local"
"Proprits"
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
134 Manuel systme, 11/2011, A5E02486682-05
Dans le champ "Cette connexion utilise les lments suivants" de la bote de dialogue
"Proprits de Connexion au rseau local", dfilez jusqu' "Protocole Internet (TCP/IP)".
Cliquez sur "Protocole Internet (TCP/IP)" puis sur le bouton "Proprits". Slectionnez
"Obtenir une adresse IP automatiquement (DHCP)" ou "Utiliser l'adresse IP suivante" (pour
entrer une adresse IP statique).

Remarque
Le protocole DHCP (Dynamic Host Configuration Protocol) affecte automatiquement une
adresse IP votre console de programmation depuis le serveur DHCP la mise sous
tension.


5.6.4.2 Vrification de l'adresse IP de votre console de programmation
Vous pouvez vrifier les adresses MAC et IP de votre console de programmation l'aide des
slections de menu suivantes :
1. Affichez le dtail de "Accs en ligne" dans l'arborescence du projet.
2. Cliquez avec le bouton droit de la souris sur le rseau dsir et slectionnez "Proprits".
3. Dans la bote de dialogue du rseau, affichez le dtail de "Configurations" et slectionnez
"Industrial Ethernet".
Les adresses MAC et IP de la console de programmation s'affichent.


98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 135
5.6.4.3 Affectation d'une adresse IP une CPU en ligne
Vous pouvez affecter une adresse IP un dispositif rseau en ligne. Cela s'avre
particulirement utile lors d'une configuration d'appareil initiale.

1. Dans l'arborescence du projet,
vrifiez qu'aucune adresse IP
n'est affecte la CPU l'aide
des slections de menu
suivantes :
"Accs en ligne"
<Carte adaptateur pour le
rseau dans lequel se trouve
l'appareil>
"Mettre jour les abonns
accessibles"

REMARQUE : Si une
adresse MAC et non une
adresse IP s'affiche, c'est
qu'aucune adresse IP n'a
t affecte.
2. Doublez-cliquez sur "En ligne
& Diagnostic" sous l'abonn
accessible concern.

3. Faites les slections de menu
suivantes dans la bote de
dialogue "En ligne & Diagnostic"
:
"Fonctions"
"Affecter adresse IP"

98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
136 Manuel systme, 11/2011, A5E02486682-05
4. Entrez votre nouvelle adresse
IP dans le champ "Adresse IP"
et cliquez sur le bouton "Affecter
adresse IP".

5. Dans l'arborescence du projet,
vrifiez que votre nouvelle
adresse IP a t affecte la
CPU l'aide des slections de
menu suivantes :
"Accs en ligne"
<Carte adaptateur pour le
rseau dans lequel se trouve
l'appareil>
"Mettre jour les abonns
accessibles"

5.6.4.4 Configuration d'une adresse IP pour une CPU dans votre projet
Configuration de l'interface PROFINET
Pour configurer les paramtres pour l'interface PROFINET, slectionnez le carr PROFINET
vert sur la CPU. L'onglet "Proprits" de la fentre d'inspection affiche le port PROFINET.

Port PROFINET
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 137
Configuration de l'adresse IP
Adresse Ethernet (MAC) : Dans un rseau PROFINET, chaque appareil reoit une adresse
MAC (Media Access Control : contrle d'accs au support) du fabricant en vue de son
identification. Une adresse MAC consiste en six groupes de deux chiffres hexadcimaux,
spars par un tiret (-) ou un deux-points (:), dans l'ordre de transmission (par exemple, 01-
23-45-67-89-AB ou 01:23:45:67:89:AB).
Adresse IP : Chaque appareil doit galement comporter une adresse IP (protocole Internet).
Cette adresse permet l'appareil de transmettre les donnes dans un rseau rout plus
complexe.
Chaque adresse IP est divise en quatre segments de 8 bits et est exprime en format
dcimal avec sparation par des points (par exemple, 211.154.184.16). La premire partie
de l'adresse IP est utilise pour l'ID de rseau (sur quel rseau est-on ?) et la deuxime
partie de l'adresse correspond l'ID d'hte (unique pour chaque appareil dans le rseau).
L'adresse IP 192.168.x.y est une dsignation standard reconnue comme partie d'un rseau
priv qui n'est pas rout sur Internet.
Masque de sous-rseau : Un sous-rseau est un groupement logique d'appareils rseau
connects. Les noeuds d'un sous-rseau tendent tre proches physiquement les uns des
autres dans un rseau local. Un masque (appel masque de sous-rseau ou masque de
rseau) dfinit les frontires d'un sous-rseau IP.
Le masque de sous-rseau 255.255.255.0 convient gnralement un petit rseau local.
Toutes les adresses IP dans ce rseau doivent avoir les trois mmes premiers octets et les
divers appareils dans ce rseau sont identifis par le dernier octet (champ de 8 bits). Par
exemple, on affectera le masque de sous-rseau 255.255.255.0 et les adresses IP
192.168.2.0 192.168.2.255 aux appareils dans un petit rseau local.
La seule liaison possible entre diffrents sous-rseaux se fait via un routeur. En prsence de
sous-rseaux, vous devez utiliser un routeur IP.
Routeur IP : Les routeurs constituent le lien entre rseaux locaux. Un ordinateur dans un
rseau local peut envoyer par le biais d'un routeur des messages d'autres rseaux qui
peuvent abriter d'autres rseaux locaux. Si la destination des donnes ne se trouve pas
l'intrieur du rseau local, le routeur transmet les donnes un autre rseau ou groupe de
rseaux o les donnes peuvent tre achemines destination.
Les routeurs se basent sur les adresses IP pour transmettre et recevoir des paquets de
donnes.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
138 Manuel systme, 11/2011, A5E02486682-05


Proprits des adresses IP
: Dans la fentre Proprits,
slectionnez l'entre de
configuration "Adresses
Ethernet". STEP 7 affiche la
bote de dialogue de
configuration de l'adresse
Ethernet qui associe le
projet logiciel l'adresse IP
de la CPU qui recevra ce
projet.


Remarque
Toutes les adresses IP sont configures lorsque vous chargez le projet dans la CPU. Si la
CPU ne possde pas d'adresse IP prconfigure, vous devez associer le projet l'adresse
MAC de l'appareil cible. Si votre CPU est connecte un routeur sur un rseau, vous devez
aussi entrer l'adresse IP du routeur.
Le bouton radio "Configurer l'adresse IP autrement" vous permet de modifier l'adresse IP en
ligne ou l'aide de l'instruction "T_CONFIG (Page 451)" aprs le chargement du
programme. La mthode d'affectation de l'adresse IP concerne la CPU uniquement.

ATTENTION
La modification de l'adresse IP d'une CPU en ligne ou partir du programme utilisateur
peut crer une situation dans laquelle le rseau PROFINET s'arrte.
Si l'adresse IP d'une CPU est change en une adresse IP en dehors du sous-rseau, le
rseau PROFINET perdra la communication et l'change de donnes sera interrompu.
L'quipement utilisateur pourrait tre configur pour continuer fonctionner dans ces
conditions. La perte de la communication PROFINET peut provoquer un fonctionnement
inattendu des machines ou du processus, pouvant entraner la mort, des blessures graves
et des dommages matriels importants en l'absence de prcautions appropries.
Si une adresse IP doit tre modifie la main, veillez ce que la nouvelle adresse IP se
situe l'intrieur du sous-rseau.


98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 139
Tableau 5- 9 Paramtres pour l'adresse IP
Paramtre Description
Sous-rseau Nom du sous-rseau auquel l'appareil est connect. Cliquez sur le bouton "Ajouter nouveau sous-
rseau" pour crer un nouveau sous-rseau. "non connect" est la valeur par dfaut. Deux types de
connexion sont possibles :
La valeur par dfaut "non connect" fournit une liaison locale.
Un sous-rseau est ncessaire lorsque votre rseau contient au moins deux appareils.
Adresse IP Adresse IP affecte la CPU
Masque de sous-rseau Masque de sous-rseau affect
Utiliser un routeur IP Cochez cette case pour indiquer qu'un routeur IP est utilis.
Protocole IP
Adresse du routeur Adresse IP affecte au routeur, le cas chant
5.6.5 Test du rseau PROFINET
Une fois la configuration acheve, chargez le projet (Page 168) dans la CPU. Toutes les
adresses IP sont configures lorsque vous chargez le projet dans la CPU.

Affectation d'une adresse IP un appareil en ligne
La CPU S7-1200 ne dispose pas d'une adresse IP prconfigure. Vous devez affecter
manuellement une adresse IP la CPU :
Pour affecter une adresse IP un appareil en ligne, reportez-vous "Configuration des
appareils, Affectation d'une adresse IP une CPU en ligne" (Page 135) o vous
trouverez la marche suivre tape par tape.
Pour affecter une adresse IP dans votre projet, vous devez configurer l'adresse IP dans
la configuration des appareils, sauvegarder la configuration et la charger dans l'automate.
Reportez-vous "Configuration des appareils, Configuration d'une adresse IP pour une
CPU dans votre projet" (Page 136) pour plus d'informations.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
140 Manuel systme, 11/2011, A5E02486682-05
Utilisation de la bote de dialogue "Chargement largi dans l'appareil" pour recherche les dispositifs
rseau connects
La bote de dialogue "Chargement largi dans l'appareil" de la fonction "Charger dans
l'appareil" de la CPU S7-1200 peut montrer tous les dispositifs rseau accessibles en
prcisant si des adresses IP uniques ont t affectes ou non tous les appareils. Cochez
la case "Afficher les abonns accessibles" pour afficher tous les appareils accessibles et
disponibles avec les adresses MAC ou IP qui leur ont t affectes.

Si le dispositif rseau requis n'est pas dans la liste, c'est que la communication avec ce
dispositif a t interrompue pour une certaine raison. Vous devez alors rechercher
d'ventuelles erreurs de matriel et/ou de configuration dans cet appareil et ce rseau.
5.6.6 Localisation de l'adresse Ethernet (MAC) sur la CPU
Dans les rseaux PROFINET, une adresse MAC (Media Access Control) est un
identificateur que le fabricant attribue l'interface de rseau aux fins d'identification. Une
adresse MAC code gnralement le numro d'identification dpos du fabricant.
Le format standard (IEEE 802.3) pour l'impression des adresses MAC sous forme conviviale
consiste en six groupes de deux chiffres hexadcimaux, spars par un tiret (-) ou un deux-
points (:), dans l'ordre de transmission (par exemple, 01-23-45-67-89-ab ou
01:23:45:67:89:ab).

Remarque
Chaque CPU reoit en usine une adresse MAC unique permanente. Vous ne pouvez pas
modifier l'adresse MAC d'une CPU.

L'adresse MAC est imprime sur le coin infrieur gauche l'avant de la CPU. Vous devez
soulever les volets infrieurs isolants pour voir cette adresse MAC.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 141

Adresse MAC
Au dpart, la CPU n'a pas d'adresse IP mais uniquement une adresse MAC reue en usine.
La communication PROFINET exige qu'une adresse IP unique soit affecte tous les
appareils.


Utilisez la fonction "Charger dans
l'appareil" de la CPU et la bote de
dialogue "Chargement largi dans
l'appareil" pour visualiser tous les
appareils rseau accessibles et
vous assurer que des adresses IP
uniques ont t affectes tous
les appareils. Cette bote de
dialogue affiche tous les appareils
accessibles et disponibles avec
les adresses MAC ou IP qui leur
ont t affectes. Les adresses
MAC sont capitales pour identifier
les appareils auxquels manque
l'adresse IP unique exige.
5.6.7 Configuration de la synchronisation via le protocole NTP
Le protocole NTP (Network Time Protocol) est largement utilis pour synchroniser les
horloges des systmes informatiques avec des serveurs de temps Internet. En mode NTP,
le CP envoie des requtes d'heure intervalles rguliers (en mode client) au serveur NTP
dans le sous-rseau (local). L'heure la plus prcise et la plus fiable possible est calcule en
fonction des rponses du serveur et l'horloge de la station est synchronise.
L'avantage de ce mode est qu'il permet la synchronisation de l'heure au-del des limites de
sous-rseaux.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
142 Manuel systme, 11/2011, A5E02486682-05
Il faut configurer les adresses IP de quatre serveurs NTP au maximum. L'intervalle de mise
jour dfinit l'intervalle (en secondes) entre les requtes d'heure. La valeur de l'intervalle doit
tre comprise entre 10 secondes et un jour.
En mode NTP, c'est gnralement le temps UTC (temps universel coordonn) - qui
correspond au temps moyen de Greenwich (GMT) - qui est transmis.
Dans la fentre Proprits, slectionnez l'entre de configuration "Synchronisation de
l'heure". STEP 7 affiche la bote de dialogue Synchronisation de l'heure :


Remarque
Toutes les adresses IP sont configures lorsque vous chargez le projet dans la CPU.


Tableau 5- 10 Paramtres pour la synchronisation de l'heure
Paramtre Dfinition
Activer la synchronisation de
l'heure via le serveur NTP
Cochez la case pour activer la synchronisation de l'heure via des
serveurs NTP.
Serveur 1 Adresse IP affecte au serveur de temps rseau 1
Serveur 2 Adresse IP affecte au serveur de temps rseau 2
Serveur 3 Adresse IP affecte au serveur de temps rseau 3
Serveur 4 Adresse IP affecte au serveur de temps rseau 4
Intervalle de mise jour Valeur de l'intervalle (en s)
5.6.8 Temps de mise en route, affectation de nom et d'adresse pour un appareil
PROFINET
PROFINET IO peut allonger le temps de mise en route de votre systme (dlai d'attente
configurable). Un plus grand nombre d'appareils et des appareils lents influent sur la quantit
de temps ncessaire pour passer l'tat MARCHE. Il y a 8 priphriques IO au maximum
dans le rseau PROFINET S7-1200.
98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 143
Chaque station (ou priphrique IO) dmarre de manire indpendante la mise en route,
ce qui influe sur le temps de mise en route total de la CPU. Si vous donnez une valeur trop
faible au dlai d'attente configurable, le temps de mise en route pourrait ne pas tre suffisant
pour que toutes les stations mnent bien leur dmarrage. Si cette situation survient, des
erreurs de station errones seront signales.
Le dlai d'attente configurable par dfaut est de 1 minute ; il est configurable par l'utilisateur.
Affectation de nom et d'adresse pour un appareil PROFINET dans STEP 7
Tous les appareils PROFINET doivent avoir un nom d'appareil et une adresse IP. Servez-
vous de STEP 7 pour dfinir les noms d'appareils et configurer les adresses IP. Le
tlchargement des noms d'appareils dans les priphriques IO se fait l'aide de
PROFINET DCP (Discovery and Configuration Protocol).
Affectation de l'adresse PROFINET au dmarrage du systme
Le contrleur diffuse les noms des appareils sur le rseau et les appareils rpondent avec
leur adresse MAC. Le contrleur affecte alors une adresse IP l'appareil l'aide du
protocole DCP PROFINET :
Si l'adresse MAC a une adresse IP configure, la station excute un dmarrage.
Si l'adresse MAC n'a pas d'adresse IP configure, STEP 7 affecte l'adresse qui est
configure dans le projet et la station excute alors un dmarrage.
En cas de problme lors de cette opration, une erreur de station survient et il n'y a pas
de dmarrage. Cette situation provoque le dpassement de la valeur de dlai d'attente
configurable.

98BConfiguration des appareils
5.6 Configuration de la CPU pour la communication
Automate programmable S7-1200
144 Manuel systme, 11/2011, A5E02486682-05

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 145
Concepts de programmation 6
6.1 Principes de conception d'un systme d'automatisation
Lorsque vous concevez un systme d'automatisation, vous devez choisir parmi diverses
mthodes et divers critres. Les principes gnraux suivants sont valables pour de
nombreux projets de conception. Il vous faudra, bien sr, suivre les procdures en vigueur
dans votre socit ainsi que les usages dcoulant de votre formation et de votre lieu de
travail.
Tableau 6- 1 Principes de conception d'un systme d'automatisation
Etapes recommandes Tches
Subdivision de votre
processus ou de votre
installation en units
Segmentez votre processus ou votre installation en parties indpendantes les unes des autres.
Ces subdivisions dterminent les limites entre les automates et ont une influence sur les
descriptions fonctionnelles et laffectation des ressources.
Cration des
descriptions
fonctionnelles
Dcrivez le fonctionnement de chaque partie du processus ou de l'installation, par exemple
entres/sorties, description fonctionnelle de l'exploitation, tats devant tre atteints avant de
permettre l'actionnement des actionneurs (tels que valves solnodes, moteurs et
entranements), description de l'interface oprateur et toute interface avec d'autres sections du
processus ou de l'installation.
Conception des circuits
de scurit
Identifiez tout quipement pouvant ncessiter de la logique cble pour la scurit. N'oubliez pas
que des dfaillances dangereuses peuvent se produire dans les appareils de commande, ce qui
peut entraner un dmarrage ou un changement inattendu dans le fonctionnement d'une
machine. Lorsqu'il existe alors des risques de blessures sur les personnes ou de dommages
matriels importants, songez implmenter des dispositifs de scurit lectromcaniques
prioritaires (qui oprent indpendamment de l'automate) afin d'viter des dysfonctionnements
dangereux. La conception des circuits de scurit comprend les tches suivantes :
Identifiez tout fonctionnement incorrect ou inattendu des actionneurs qui pourrait tre
dangereux.
Identifiez les conditions qui assurent que l'exploitation est sans danger et dterminez
comment dtecter ces conditions indpendamment de l'automate.
Identifiez comment l'automate affecte le processus lorsque la tension est applique puis
coupe et identifiez galement comment et quand des erreurs sont dtectes. Servez-vous
de ces informations uniquement pour la conception des fonctionnements normaux et
anormaux prvisibles. Vous ne devez pas vous baser sur ce scnario du "meilleur des cas"
pour les problmes de scurit.
Concevez les dispositifs de scurit manuels ou lectromcaniques prioritaires qui bloquent
les fonctionnements dangereux indpendamment de l'automate.
Fournissez l'automate les informations d'tat appropries en provenance des circuits
indpendants afin que le programme et toute interface oprateur disposent des informations
ncessaires.
Identifiez toute autre mesure de scurit ncessaire un droulement sr du processus.
99BConcepts de programmation
6.2 Organisation de votre programme utilisateur
Automate programmable S7-1200
146 Manuel systme, 11/2011, A5E02486682-05
Etapes recommandes Tches
Dfinition des postes
d'opration
Crez les schmas suivants des postes d'opration, bass sur les exigences des descriptions
fonctionnelles :
Schma d'ensemble indiquant l'emplacement de chaque poste d'opration par rapport au
processus ou l'installation
Schma mcanique des dispositifs pour le poste d'opration, tels qu'afficheurs,
commutateurs et lampes
Schmas lectriques avec les E/S associes de l'automate et des modules d'entres-sorties
Cration des schmas
de configuration
Crez des schmas de configuration de l'quipement de commande bass sur les exigences des
descriptions fonctionnelles :
Schma d'ensemble indiquant l'emplacement de chaque automate par rapport au processus
ou l'installation
Schma mcanique de chaque automate et de tout module d'E/S incluant les armoires et
autres quipements
Schmas lectriques pour chaque automate et module d'E/S incluant les numros de
rfrence des appareils, les adresses de communication et les adresses d'E/S
Cration d'une liste de
mnmoniques
Crez une liste de mnmoniques avec les adresses absolues. N'indiquez pas seulement les
signaux d'E/S physiques, mais galement les autres lments (tels que les noms de variables)
qui seront utiliss dans votre programme.
6.2 Organisation de votre programme utilisateur
Lorsque vous crez un programme utilisateur pour les tches d'automatisation, vous insrez
les instructions pour le programme dans des blocs de code :
Un bloc d'organisation (OB) ragit un vnement spcifique dans la CPU et peut
interrompre l'excution du programme utilisateur. Le bloc par dfaut pour l'excution
cyclique du programme utilisateur (OB 1) fournit la structure de base pour votre
programme utilisateur et est le seul bloc de code obligatoire pour un programme
utilisateur. Si vous incluez d'autres OB dans votre programme, ces OB interrompent
l'excution de l'OB 1. Les autres OB excutent des fonctions spcifiques, telles que des
tches de dmarrage, la gestion des alarmes et des erreurs ou l'excution d'un code
spcifique intervalles spcifiques.
Un bloc fonctionnel (FB) est un sous-programme qui est excut lorsqu'il est appel dans
un autre bloc de code (OB, FB ou FC). Le bloc appelant transmet des paramtres au FB
et identifie galement un bloc de donnes spcifique (DB) qui contient les donnes pour
l'appel spcifique ou instance de ce FB. Changer le DB d'instance permet un FB
gnrique de commander le fonctionnement d'un ensemble d'appareils. Ainsi, par
exemple, un FB peut piloter plusieurs pompes ou vannes avec des DB d'instance
diffrents contenant les paramtres de fonctionnement spcifiques de chaque pompe ou
vanne.
Une fonction (FC) est un sous-programme qui est excut lorsqu'il est appel dans un
autre bloc de code (OB, FB ou FC). Une FC ne comporte pas de DB d'instance associ.
Le bloc appelant transmet des paramtres la FC. Les valeurs de sortie de la FC doivent
tre crites dans une adresse de mmoire ou dans un DB global.
99BConcepts de programmation
6.2 Organisation de votre programme utilisateur
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 147
Choix du type de structure pour votre programme utilisateur
Selon les besoins de votre application, vous pouvez choisir soit une structure linaire soit
une structure modulaire pour votre programme utilisateur :
Un programme linaire excute toutes les instructions pour vos tches d'automatisation
squentiellement les unes aprs les autres. Avec un programme linaire, vous placerez
typiquement toutes les instructions dans l'OB d'excution cyclique du programme (OB 1).
Un programme modulaire appelle des blocs de code spcifiques qui excutent des
tches spcifiques. Pour crer une structure modulaire, vous divisez la tche
d'automatisation complexe en petites tches subordonnes qui correspondent aux
fonctions technologiques du processus. Chaque bloc de code fournit le segment de
programme pour une tche subordonne. Vous structurez votre programme en appelant
l'un des blocs de code partir d'un autre bloc.

Structure linaire : Structure modulaire :
OB 1

FB 1
FC 1
OB 1


En crant des blocs de code gnriques pouvant tre rutiliss l'intrieur du programme
utilisateur, vous simplifiez la conception et l'implmentation du programme utilisateur.
L'utilisation de blocs de code gnriques prsente un certain nombre d'avantages :
Vous pouvez crer des blocs de code rutilisables pour des tches standard, telles que
la commande d'une pompe ou d'un moteur. Vous pouvez galement stocker ces blocs de
code gnriques dans une bibliothque qui peut tre utilise par d'autres applications ou
solutions.
Lorsque vous structurez le programme utilisateur en composants modulaires lis des
tches fonctionnelles, votre programme devient plus facile comprendre et grer. Non
seulement les composants modulaires vous aident standardiser la conception du
programme, mais ils rendent galement l'actualisation ou la modification du code plus
rapide et plus facile.
La cration de composants modulaires simplifie le dbogage de votre programme. En
structurant le programme complet en tant qu'ensemble de segments de programme
modulaires, vous pouvez tester la fonctionnalit de chaque bloc de code ds qu'il est
labor.
La cration de composants modulaires lis des fonctions technologiques spcifiques
permet de simplifier et d'acclrer la mise en service de l'application acheve.
99BConcepts de programmation
6.3 Utilisation de blocs pour structurer votre programme
Automate programmable S7-1200
148 Manuel systme, 11/2011, A5E02486682-05
6.3 Utilisation de blocs pour structurer votre programme
En concevant des FB et des FC qui excutent des tches gnriques, vous crez des blocs
de code modulaires. Vous structurez ensuite votre programme en faisant appeler ces
modules rutilisables par d'autres blocs de code. Le bloc appelant transmet des paramtres
spcifiques de l'appareil au bloc appel.
Lorsqu'un bloc de code appelle un autre bloc de code, la CPU excute le code du
programme dans le bloc appel. Une fois l'excution du bloc appel acheve, la CPU
reprend l'excution du bloc appelant. Le traitement se poursuit par l'excution de l'instruction
qui suit l'appel de bloc.

A Bloc appelant
B Bloc appel (ou d'interruption)

Excution du programme

Instruction ou vnement qui dclenche
l'excution d'un autre bloc

Excution du programme

OB, FB, FC

OB, FB, FC


Fin du bloc (retour au bloc appelant)
Vous pouvez imbriquer les appels de bloc pour obtenir une structure plus modulaire. Dans
l'exemple suivant, la profondeur d'imbrication est 4 : l'OB de cycle de programme plus 3
niveaux d'appels de blocs de code.


Dbut du cycle
FB 1
OB 1
FC 1
FB 1 FC 21 FB 2
DB 1 FC 1

DB

DB DB


Profondeur d'imbrication

99BConcepts de programmation
6.3 Utilisation de blocs pour structurer votre programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 149
6.3.1 Bloc d'organisation (OB)
Les blocs d'organisation permettent de structurer votre programme. Ils servent d'interface
entre le systme d'exploitation et le programme utilisateur. Les OB sont dclenchs sur
vnement. La CPU excute un OB suite un vnement, tel qu'une alarme de diagnostic
ou un intervalle de temps. Certains OB ont des vnements dclencheurs et un
comportement prdfinis.
L'OB du cycle de programme contient votre programme principal. Vous pouvez inclure plus
d'un OB de cycle de programme dans votre programme utilisateur. A l'tat MARCHE, les OB
de cycle de programme s'excutent au niveau de priorit le plus bas et peuvent tre
interrompus par tous les autres types de traitement de programme. L'OB de dmarrage
n'interrompt pas l'OB de cycle de programme, car la CPU excute l'OB de dmarrage avant
de passer l'tat MARCHE.
Une fois le traitement des OB de cycle de programme achev, la CPU rexcute
immdiatement les OB de cycle de programme. Ce traitement cyclique est le type "normal"
de traitement utilis par les automates programmables. Pour de nombreuses applications, le
programme utilisateur entier se trouve dans un OB de cycle de programme unique.
Vous pouvez crer d'autres OB qui excuteront des fonctions spcifiques, telles que la
gestion des alarmes et des erreurs ou l'excution d'un code spcifique intervalles
spcifiques. Ces OB interrompent l'excution des OB du cycle de programme.
Utilisez la bote de dialogue "Ajouter nouveau bloc" pour crer de nouveaux OB dans votre
programme utilisateur.


La gestion des alarmes se fait
toujours sur vnement. Lorsqu'un
tel vnement se produit, la CPU
interrompt l'excution du
programme utilisateur et appelle
l'OB qui a t configur pour grer
cet vnement. Une fois l'excution
de l'OB d'interruption acheve, la
CPU reprend l'excution du
programme utilisateur l'endroit o
elle s'tait interrompue.
La CPU dtermine l'ordre de traitement des vnements d'alarme au moyen d'une priorit
affecte chaque OB. Chaque vnement a une priorit de prise en charge particulire. Le
niveau de priorit respectif l'intrieur d'une classe de priorit dtermine l'ordre dans lequel
les OB sont excuts. Plusieurs vnements d'alarme peuvent tre combins dans des
classes de priorit. Pour plus d'informations, reportez-vous Concepts d'automatisation,
Excution du programme utilisateur (Page 67).
99BConcepts de programmation
6.3 Utilisation de blocs pour structurer votre programme
Automate programmable S7-1200
150 Manuel systme, 11/2011, A5E02486682-05
Cration d'un OB supplmentaire l'intrieur d'une classe d'OB
Vous pouvez crer plusieurs OB pour votre programme utilisateur, et ce mme pour les
classes OB de cycle de programme et OB de dmarrage. Utilisez la bote de dialogue
"Ajouter nouveau bloc" pour crer un OB. Entrez le nom de votre OB et indiquez un numro
d'OB suprieur ou gal 200.
Si vous crez plusieurs OB de cycle de programme pour votre programme utilisateur, la
CPU excute chaque OB de cycle de programme par ordre numrique, en commenant par
l'OB de cycle de programme de plus petit numro (l'OB 1, par exemple). Par exemple, une
fois le premier OB de cycle de programme (tel l'OB 1) achev, la CPU excute l'OB de cycle
de programme de numro immdiatement suprieur (tel l'OB 200).
Configuration du fonctionnement d'un OB


Vous pouvez modifier les paramtres de
fonctionnement pour un OB. Vous
pouvez, par exemple, configurer le
paramtre de temps pour un OB
d'alarme temporise ou pour un OB
d'alarme cyclique.
6.3.2 Fonction (FC)
Une fonction (FC) est un bloc de code qui excute typiquement une opration spcifique sur
un ensemble de valeurs d'entre. La FC stocke les rsultats de cette opration dans des
adresses de mmoire. Vous avez p. ex. recours des FC pour effectuer des oprations
standard et rutilisables (telles que des calculs mathmatiques) ou des fonctions
technologiques (telles que des contrles individuels utilisant des oprations logiques sur
bits) Une FC peut galement tre appele plusieurs fois en diffrents points d'un
programme. Cette rutilisation simplifie la programmation de tches revenant souvent.
Une FC ne comporte pas de bloc de donnes (DB) d'instance associ. La FC se sert de la
pile des donnes locales pour les donnes temporaires utilises pour effectuer l'opration.
Les donnes temporaires ne sont pas sauvegardes. Pour stocker les donnes de manire
permanente, affectez la valeur de sortie une adresse de mmoire globale, un mmento M
ou un DB global par exemple.
99BConcepts de programmation
6.3 Utilisation de blocs pour structurer votre programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 151
6.3.3 Bloc fonctionnel (FB)
Un bloc fonctionnel (FB) est un bloc de code qui utilise un bloc de donnes d'instance pour
ses paramtres et ses donnes statiques. Les FB ont une mmoire de variables qui se situe
dans un bloc de donnes (DB) appel DB d'instance. Le DB d'instance fournit un bloc de
mmoire qui est associ cette instance (ou appel) du FB et qui contient les donnes une
fois le FB achev. Vous pouvez associer diffrents DB d'instance diffrents appels du FB.
Les DB d'instance vous permettent d'utiliser un FB gnrique pour commander plusieurs
appareils. Vous structurez votre programme en insrant dans un bloc de code l'appel d'un
FB et d'un DB d'instance. La CPU excute alors le code dans ce FB et sauvegarde les
paramtres du bloc et les donnes locales statiques dans le DB d'instance. Une fois
l'excution du FB acheve, la CPU revient au bloc de code qui a appel le FB. Le DB
d'instance conserve les valeurs pour cette instance du FB. Ces valeurs sont disponibles pour
des appels ultrieurs du bloc fonctionnel soit dans le mme cycle, soit dans d'autres cycles.
Blocs de code rutilisables mmoire associe
Vous utiliserez typiquement un FB pour commander l'excution de tches ou le
fonctionnement d'appareils qui durent plus d'un cycle. Pour stocker les paramtres de
fonctionnement afin qu'ils soient rapidement accessibles d'un cycle au suivant, chaque FB
dans votre programme utilisateur comporte un ou plusieurs DB d'instance. Lorsque vous
appelez un FB, vous indiquez aussi un DB d'instance qui contient les paramtres du bloc et
les donnes locales statiques pour cet appel ou "instance" du FB. Le DB d'instance
conserve ces valeurs aprs que l'excution du FB s'est acheve.
En concevant le FB pour des tches de commande gnriques, vous pouvez le rutiliser
pour plusieurs appareils en slectionnant des DB d'instance diffrents pour diffrents appels
du FB.
Un FB sauvegarde les paramtres d'entre, de sortie et d'entre/sortie et les paramtres
statiques dans un DB d'instance.
Dfinition de la valeur initiale dans le DB d'instance
Le DB d'instance comporte une valeur par dfaut et une valeur initiale pour chaque
paramtre. La valeur initiale fournit la valeur devant tre utilise lors de l'excution du FB. La
valeur initiale peut tre modifie lors de l'excution de votre programme utilisateur.
L'interface de FB comporte galement une colonne "Valeur par dfaut" qui vous permet de
dfinir une nouvelle valeur initiale pour le paramtre lors de l'criture du code de
programme. Cette valeur par dfaut dans le FB est ensuite transfre dans la valeur initiale
du DB d'instance associ. Si vous ne dfinissez pas de nouvelle valeur initiale pour un
paramtre dans l'interface de FB, la valeur par dfaut du DB d'instance est copie dans la
valeur initiale.
99BConcepts de programmation
6.3 Utilisation de blocs pour structurer votre programme
Automate programmable S7-1200
152 Manuel systme, 11/2011, A5E02486682-05
Utilisation d'un FB unique avec plusieurs DB
La figure suivante montre un OB qui appelle un FB trois fois, avec un bloc de donnes
diffrent chaque appel. Cette structure permet un FB gnrique de commander plusieurs
appareils similaires, tels des moteurs, en affectant un bloc de donnes d'instance diffrent
chaque appel pour les diffrents appareils. Chaque DB d'instance mmorise les donnes
(par exemple, la vitesse, le temps d'acclration et le temps de fonctionnement total) pour
un appareil distinct.
DB 201
DB 202
DB 203
FB 22, DB 201
FB 22, DB 202
FB 22, DB 203
OB1
FB 22

Dans cet exemple, le FB 22 commande trois appareils distincts, le DB 201 contenant les
donnes de fonctionnement du premier appareil, le DB 202 celles du deuxime appareil et le
DB 203 celles du troisime appareil.
6.3.4 Bloc de donnes (DB)
Vous crez des blocs de donnes (DB) dans votre programme utilisateur pour sauvegarder
les donnes des blocs de code. Tous les blocs de programme dans le programme utilisateur
peuvent accder aux donnes d'un DB global. En revanche, un DB d'instance contient des
donnes pour un bloc fonctionnel spcifique (FB).
Les donnes sauvegardes dans un DB ne sont pas effaces la fin de l'excution du bloc
de code associ. Il existe deux types de DB :
Un DB global contient des donnes pour les blocs de code dans votre programme. Tous
les OB, FB et FC peuvent accder aux donnes dans un DB global.
Un DB d'instance contient les donnes d'un FB spcifique. La structure des donnes
dans un DB d'instance reflte les paramtres (Input, Output et InOut) et les donnes
statiques du FB. La mmoire Temp pour le FB n'est pas stocke dans le DB d'instance.


Remarque
Bien que le DB d'instance reflte les donnes d'un FB spcifique, tout bloc de code peut
accder aux donnes l'intrieur d'un DB d'instance.
99BConcepts de programmation
6.4 Comprendre le concept de cohrence des donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 153
Vous pouvez configurer un DB comme tant en lecture seule :
1. Cliquez avec le bouton droit de la souris sur le DB dans le navigateur du projet et
slectionnez "Proprits" dans le menu contextuel.
2. Slectionnez "Attributs" dans la bote de dialogue "Proprits".
3. Slectionnez l'option "Bloc de donnes protg en criture dans l'appareil" et cliquez sur
"OK".
Cration de blocs de code rutilisables


Utilisez la bote de dialogue "Ajouter
nouveau bloc" sous "Blocs de
programme" dans le navigateur du
projet pour crer des OB, des FB,
des FC et des DB globaux.
Lors de la cration d'un bloc de
code, vous slectionnez le langage
de programmation pour ce bloc.
Vous ne slectionnez pas de
langage pour les DB qui servent
uniquement au stockage de
donnes.
6.4 Comprendre le concept de cohrence des donnes
La CPU assure la cohrence des donnes pour tous les types de donnes simples (par
exemple, Word et DWord) et pour toutes les structures systme (par exemple, IEC_TIMERS
et DTL). La lecture ou l'criture de la valeur ne peuvent pas tre interrompues. Ainsi, la CPU
protge l'accs une valeur double mot jusqu' ce que les quatre octets du double mot aient
t lus ou crits. Pour garantir que les OB de cycle de programme et les OB d'alarme
n'crivent pas en mme temps dans la mme adresse de mmoire, la CPU n'excute pas
d'OB d'alarme tant que l'opration de lecture ou d'criture dans l'OB de cycle de programme
n'est pas acheve.
99BConcepts de programmation
6.4 Comprendre le concept de cohrence des donnes
Automate programmable S7-1200
154 Manuel systme, 11/2011, A5E02486682-05
Si votre programme utilisateur partage plusieurs valeurs en mmoire entre un OB de cycle
de programme et un OB d'alarme, votre programme utilisateur doit galement s'assurer que
ces valeurs sont modifies ou lues de manire cohrente. Vous pouvez utiliser les
instructions DIS_AIRT (Inhiber le traitement des alarmes) et EN_AIRT (Valider le traitement
des alarmes) dans votre OB de cycle de programme pour protger les accs aux valeurs
partages.
Insrez une instruction DIS_AIRT dans le bloc de code pour garantir qu'aucun OB
d'alarme ne peut tre excut pendant l'opration de lecture ou d'criture.
Insrez les instructions qui lisent ou crivent les valeurs qui pourraient tre modifies par
un OB d'alarme.
Insrez une instruction EN_AIRT la fin de la squence pour annuler DIS_AIRT et
permettre l'excution de l'OB d'alarme.
Une demande de communication mise par un appareil IHM ou une autre CPU peut
galement interrompre l'OB de cycle de programme. Les demandes de communication
peuvent donc elles aussi constituer une menace pour la cohrence des donnes. La CPU
s'assure que les types de donnes simples sont toujours lus et crits de manire cohrente
par les instructions du programme utilisateur. Comme le programme utilisateur est
interrompu priodiquement par des oprations de communication, il n'est pas possible de
garantir que plusieurs valeurs dans la CPU seront toutes mises jour en mme temps par
l'IHM. Ainsi, les valeurs affiches sur l'cran d'une IHM donne pourraient provenir de cycles
diffrents de la CPU.
Les instructions point point, les instructions PROFINET (telles que TSEND_C et TRCV_C),
les instructions de priphrie dcentralise PROFINET (Page 472) et les instructions de
priphrie dcentralise PROFIBUS (Page 483) transfrent des tampons de donnes qui
peuvent tre interrompus. Garantissez la cohrence des donnes des tampons en vitant de
lire ou d'crire dans les tampons la fois dans l'OB de cycle de programme et dans les OB
d'alarme. S'il est ncessaire de modifier les valeurs des tampons pour ces instructions dans
un OB d'alarme, utilisez une instruction DIS_AIRT pour retarder toute alarme (OB d'alarme
ou alarme de communication en provenance d'une IHM ou d'une autre CPU) jusqu'
l'excution d'une instruction EN_AIRT.

Remarque
L'utilisation de l'instruction DIS_AIRT retarde le traitement des OB d'alarme jusqu'
excution de l'instruction EN_AIRT, affectant ainsi le temps d'attente d'alarme de votre
programme utilisateur (dure s'coulant entre l'apparition d'un vnement et l'excution de
l'OB d'alarme correspondant).

99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 155
6.5 Langage de programmation
STEP 7 fournit les langages de programmation standard suivants pour le S7-1200 :
CONT (schma contacts) est un langage de programmation graphique. Sa
reprsentation se base sur des schmas (Page 155) de circuit.
LOG (logigramme) est un langage de programmation se fondant sur les symboles
logiques graphiques utiliss en algbre (Page 156) boolenne.
SCL (Structured Control Language) est un langage de programmation littral volu
(Page 156).
Lorsque vous crez un bloc de code, vous slectionnez le langage de programmation
utiliser par ce bloc.
Votre programme utilisateur peut utiliser des blocs de code crs dans n'importe lequel des
langages de programmation disponibles.
6.5.1 Schma contacts (CONT)
Les lments d'un schma de circuit, contacts ouverture et fermeture et bobines par
exemple, sont relis pour former des rseaux.

Pour crer la logique pour des oprations complexes, vous pouvez insrer des branches
formant des circuits parallles. Les branches parallles s'ouvrent vers le bas ou se
connectent directement la barre conductrice. Vous terminez les branches vers le haut.
CONT fournit des instructions sous forme de botes pour des fonctions varies, telles que les
fonctions mathmatiques, de temporisation, de comptage et de transfert.
STEP 7 ne limite pas le nombre d'instructions (lignes et colonnes) dans un rseau CONT.

Remarque
Chaque rseau CONT doit se terminer par une bobine ou une bote d'instruction.

99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
156 Manuel systme, 11/2011, A5E02486682-05
Vous devez tenir compte des rgles suivantes lors de la cration d'un rseau CONT :
Vous ne pouvez pas crer de branche qui entranerait un flux de courant en sens inverse.
H G
E F
C D Z B A

Vous ne pouvez pas crer de branche qui provoquerait un court-circuit.
C Z B A


6.5.2 Logigramme (LOG)
Comme CONT, LOG est un langage de programmation graphique. La reprsentation de la
logique repose sur les symboles logiques graphiques utiliss en algbre boolenne.


Pour crer la logique pour des oprations
complexes, insrez des branches parallles
entre les botes.
Les fonctions mathmatiques et autres fonctions complexes peuvent tre reprsentes
directement avec des botes logiques.
STEP 7 ne limite pas le nombre d'instructions (lignes et colonnes) dans un rseau LOG.
6.5.3 SCL
SCL (Structured Control Language) est un langage de programmation volu bas sur
PASCAL pour les CPU SIMATIC S7. SCL prend en charge la structure de blocs de STEP 7
(Page 148). Vous pouvez en outre inclure des blocs de programme crits en SCL avec des
blocs de programme crits en CONT et LOG.
99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 157
Les instructions SCL utilisent des oprateurs de programmation standard, par exemple pour
l'affectation (:=) et les fonctions mathmatiques (+ pour l'addition, - pour la soustraction, *
pour la multiplication et / pour la division). SCL utilise galement des oprations de gestion
de programme PASCAL standard, telles que IF-THEN-ELSE, CASE, REPEAT-UNTIL,
GOTO et RETURN. Vous pouvez utiliser n'importe quelle rfrence PASCAL pour les
lments syntaxiques du langage de programmation SCL. Un grand nombre des autres
instructions pour SCL, comme les temporisations et les compteurs, correspondent aux
instructions CONT et LOG. Pour plus d'informations sur des instructions spcifiques,
reportez-vous aux descriptions correspondantes dans les chapitres sur les instructions de
base (Page 175) et les instructions avances (Page 253).
Vous pouvez spcifier, lors de la cration de n'importe quel type de bloc (OB, FB ou FC),
que ce bloc utilise le langage de programmation SCL. STEP 7 fournit un diteur de
programmes SCL qui inclut les lments suivants :
Section d'interface pour dfinir les paramtres du bloc de code
Section de code pour le code de programme
Arborescence d'instructions contenant les instructions SCL prises en charge par la CPU
Vous entrez le code SCL pour votre instruction directement dans la section de code. Pour
des instructions plus complexes, faites simplement glisser les instructions SCL depuis
l'arborescence d'instructions et dposez-les dans votre programme. Vous pouvez galement
utiliser un diteur de texte quelconque pour crer un programme SCL et importer ensuite ce
fichier dans STEP 7.

99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
158 Manuel systme, 11/2011, A5E02486682-05
Vous pouvez dclarer les types de paramtres suivants dans la section d'interface du bloc
de code SCL :
Input, Output, InOut et Ret_Val : Ces paramtres dfinissent les variables d'entre, les
variables de sortie et la valeur en retour pour le bloc de code. Le nom de variable que
vous entrez ici est utilis localement lors de l'excution du bloc de code. En rgle
gnrale, vous n'utilisez pas le nom de variable globale de la table de variables.
Static (FB uniquement ; la figure ci-dessus concerne une FC) : Les variables statiques
sont utilises pour stocker des rsultats intermdiaires statiques dans le bloc de donnes
d'instance. Les donnes statiques sont conserves jusqu' leur crasement, qui peut
avoir lieu aprs plusieurs cycles. Les noms des blocs qui sont appels dans ce bloc de
code comme multi-instance sont galement stocks dans les donnes locales statiques.
Temp : Ces paramtres sont les variables temporaires utilises lors de l'excution du
bloc de code.
Si vous appelez le bloc de code SCL depuis un autre bloc de code, les paramtres du bloc
de code SCL apparaissent comme entres ou sorties.

Dans cet exemple, les variables pour "Start" et "On" (depuis la table de variables du projet)
correspondent "StartStopSwitch" et "RunYesNo" dans la table de dclaration du
programme SCL.
Construction d'une expression SCL
Une expression SCL est une formule permettant de calculer une valeur. Cette expression
est compose d'oprandes et d'oprateurs (tels que *, /, + ou -). Les oprandes peuvent tre
des variables, des constantes ou des expressions.
L'valuation de l'expression se fait dans un certain ordre qui est dfini par les facteurs
suivants :
Chaque oprateur a une priorit prdfinie, l'opration de priorit la plus haute tant
excute en premier.
Si les oprateurs sont d'gale priorit, ils sont traits de gauche droite.
Vous utilisez des parenthses pour dsigner une srie d'oprateurs devant tre valus
ensemble.
Le rsultat d'une expression peut tre utilis pour affecter une valeur une variable utilise
par votre programme, comme condition devant tre utilise par une instruction de contrle
ou en tant que paramtres pour une autre instruction SCL ou pour appeler un bloc de code.
Tableau 6- 2 Oprateurs dans SCL
Type Opration Oprateur Priorit
Parenthses (expression) ( , ) 1
Mathmatique Puissance ** 2
99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 159
Type Opration Oprateur Priorit
Signe (plus unaire) + 3
Signe (moins unaire) - 3
Multiplication * 4
Division / ou DIV 4
Modulo MOD 4
Addition + 5
Soustraction - 5
Infrieur < 6
Infrieur ou gal <= 6
Suprieur > 6
Suprieur ou gal >= 6
Egal = 7
Comparaison
Diffrent de <> 7
Ngation (unaire) NOT 3
ET logique AND ou & 8
OU exclusif logique XOR 9
Logique sur bits
OU logique OR 10
Affectation Affectation := 11
En tant que langage de programmation volu, SCL utilise des instructions standard pour
les tches de base :
Instruction d'affectation : :=
Fonctions mathmatiques : +, -, * et /
Adressage de variables globales : "<nom variable>" (nom de la variable ou du bloc de
donnes entre guillemets)
Adressage de variables locales : #<nom variable> (nom de la variable prcd du
symbole "#")
Les exemples suivants montrent diffrentes expressions pour divers usages :

"C" := #A+#B;
Affecte la somme de deux variables locales
une variable globale.
"Data_block_1".Tag := #A;
Affectation une variable de bloc de donnes
IF #A > #B THEN "C" := #A;
Condition pour l'instruction IF-THEN
"C" := SQRT (SQR (#A) + SQR (#B));
Paramtres pour l'instruction SQRT
Les oprateurs arithmtiques peuvent traiter divers types de donnes numriques. Le type
de donnes du rsultat est dtermin par le type de donnes des oprandes les plus
significatifs. Par exemple, une multiplication qui utilise un oprande INT et un oprande
REAL donne une valeur REAL en rsultat.
99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
160 Manuel systme, 11/2011, A5E02486682-05
Instructions de contrle
Une instruction de contrle est un type spcifique d'expression SCL qui excute les tches
suivantes :
Aiguillage dans un programme
Sections de rptition du code de programme SCL
Saut d'autres parties du programme SCL
Excution conditionnelle
Parmi les instructions de contrle SCL, on trouve IF-THEN, CASE-OF, FOR-TO-DO,
WHILE-DO, REPEAT-UNTIL, CONTINUE, GOTO et RETURN.
Une seule instruction occupe typiquement une ligne de code. Vous pouvez entrer plusieurs
instructions sur une ligne ou vous pouvez subdiviser une instruction en plusieurs lignes de
code pour la rendre plus facile lire. Les sparateurs (tels que tabulations, sauts de ligne et
espaces supplmentaires) ne sont pas pris en compte lors du contrle de syntaxe. Une
instruction END met fin l'instruction de contrle.
L'exemple suivant montre une instruction de contrle FOR-TO-DO (les deux formes de
codage sont syntaxiquement correctes).

FOR x := 0 TO max DO sum := sum + value(x); END_FOR;
FOR x := 0 TO max DO
sum := sum + value(x);
END_FOR;
Une instruction de contrle peut galement tre munie d'un repre. Un repre est dlimit
par un deux-points au dbut de l'instruction :

Repre : <Instruction>;
L'aide en ligne de STEP 7 fournit des informations de rfrence compltes sur le langage de
programmation SCL.
Conditions
Une condition est une expression de comparaison ou une expression logique dont le rsultat
est de type BOOL (avec la valeur TRUE ou FALSE). L'exemple suivant montre diffrents
types de conditions.

#Temprature > 50
#Compteur <= 100
#CHAR1 < 'S'
Expression de relation
(#Alpha <> 12) AND NOT #Beta
Expression de comparaison et expression logique
5 + #Alpha
Expression arithmtique
Une condition peut utiliser des expressions arithmtiques :
La condition de l'expression est TRUE si le rsultat est une valeur quelconque diffrente
de zro.
La condition de l'expression est FALSE si le rsultat est gal zro.
99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 161
Adressage
Comme CONT et LOG, SCL permet l'utilisation de variables (adressage symbolique) ou
d'adresses absolues dans le programme utilisateur. SCL permet galement d'utiliser une
variable comme indice de tableau.

Adressage absolu
I[byteindex.bitindex]
MB[byteindex]

Dans ces exemples, "byteindex" et "bitindex" sont
des variables qui contiennent la valeur (Int) utilise
pour dterminer l'adresse laquelle accder.
Votre programme utilisateur peut modifier la valeur
de ces variables, ce qui modifie alors l'adresse
dans l'instruction ou l'expression.


Adressage symbolique
"PLC_Tag_1"
Variable dans la table de variables API
"Data_block_1".Tag_1
Variable dans un bloc de donnes
"Data_block_1".MyArray[#i]
Elment de tableau dans un tableau bloc de
donnes
Adressage index avec les instructions PEEK et POKE
SCL fournit galement les instructions PEEK et POKE qui vous permettent de lire et d'crire
dans des zones de donnes avec des variables qui fournissent des dcalages d'octet ou de
bit spcifiques pour l'opration.

PEEK(area:=_in_,
dbNumber:=_in_,
byteOffset:=_in_);
Lit l'octet dsign par byteOffset du bloc de
donnes ou de la zone d'E/S ou de mmoire
rfrence.
Example: MB100 := PEEK(area:=16#84,
dbNumber:=1, byteOffset:=#i);
PEEK_WORD(area:=_in_,
dbNumber:=_in_,
byteOffset:=_in_);
Lit le mot dsign par byteOffset du bloc de
donnes ou de la zone d'E/S ou de mmoire
rfrence.
Example: MW200 := PEEK(area:=16#84,
dbNumber:=1, byteOffset:=#i);
PEEK_DWORD(area:=_in_,
dbNumber:=_in_,
byteOffset:=_in_);
Lit le double mot dsign par byteOffset du
bloc de donnes ou de la zone d'E/S ou de
mmoire rfrence.
Example: MW200 := PEEK(area:=16#84,
dbNumber:=1, byteOffset:=#i);
PEEK_BOOL(area:=_in_,
dbNumber:=_in_,
byteOffset:=_in_,
bitOffset:=_in_);
Lit la valeur boolenne dsigne par bitOffset
et byteOffset du bloc de donnes ou de la
zone d'E/S ou de mmoire rfrence.
Example: MB100.0 := PEEK(area:=16#84,
dbNumber:=1, byteOffset:=#ii, bitOffset:=#j);
99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
162 Manuel systme, 11/2011, A5E02486682-05
POKE(area:=_in_,
dbNumber:=_in_,
byteOffset:=_in_,
value:=_in_);
Ecrit la valeur au dcalage byteOffset dsign
du bloc de donnes ou de la zone d'E/S ou de
mmoire rfrence.
Example: POKE(area:=16#84, dbNumber:=2,
byteOffset:=3, value:="Tag_1");
POKE_BOOL(area:=_in_,
dbNumber:=_in_,
byteOffset:=_in_,
bitOffset:=_in_,
value:=_in_);
Ecrit la valeur boolenne aux dcalages
bitOffset et byteOffset dsigns du bloc de
donnes ou de la zone d'E/S ou de mmoire
rfrence.
Example: POKE_BOOL(area:=16#84,
dbNumber:=2, byteOffset:=3, bitOffset:=5,
value:=0);
POKE_BLK(area_src:=_in_,
dbNumber_src:=_in_,
byteOffset_src:=_in_,
area_dest:=_in_,
dbNumber_dest:=_in_,
byteOffset_dest:=_in_,
count:=_in_);
Ecrit un nombre ("count") d'octets en
commenant au dcalage byteOffset dsign
du bloc de donnes ou de la zone d'E/S ou de
mmoire source rfrence au dcalage
byteOffset dsign du bloc de donnes ou de
la zone d'E/S ou de mmoire de destination
rfrence.
Example: POKE_BLK(area_src:=16#84,
dbNumber_src:=#src_db,
byteOffset_src:=#src_byte, area_dest:=16#84,
dbNumber_dest:=#src_db,
byteOffset_dest:=#src_byte, count:=10);
Pour les instructions PEEK et POKE, les valeurs suivantes sont possibles pour les
paramtres "area", "area_src" et "area_dest". Pour les zones autres que les blocs de
donnes, le paramtre dbNumber doit tre gal 0.

16#1 PI
16#2 PQ
16#81 I
16#82 Q
16#83 M
16#84 DB

Appel d'autres blocs de code depuis votre programme SCL
Pour appeler un autre bloc de code dans votre programme utilisateur, il vous suffit d'entrer le
nom (ou l'adresse absolue) du FB ou de la FC concerne avec ses paramtres. Pour un FB,
vous devez indiquer le DB d'instance appeler avec le FB.

<nom DB> (liste de paramtres)
Appel comme instance unique
<#nom instance> (liste de paramtres)
Appel comme multi-instance

"MyDB"(MyInput:=10, MyInOut:="Tag1");
99BConcepts de programmation
6.5 Langage de programmation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 163

<nom FC> (liste de paramtres)
Appel standard
<oprande>:=<nom FC> (liste de paramtres)
Appel dans une expression

"MyFC"(MyInput:=10, MyInOut:="Tag1");
Vous pouvez aussi faire glisser des blocs du navigateur du projet dans l'diteur de
programme SCL, puis achever l'affectation des paramtres.
6.5.4 EN et ENO pour CONT, LOG et SCL
Dtermination du "flux de courant" (EN et ENO) pour une instruction
Certaines instructions (telles que les instructions mathmatiques et de transfert) comportent
des paramtres EN et ENO. Ces paramtres font rfrence au flux de courant en CONT et
LOG et dterminent si l'instruction est ou non excute pendant ce cycle. SCL vous permet
galement d'activer le paramtre ENO pour un bloc de code.
EN (pour Enable In) est une entre boolenne. Un flux de courant (EN = 1) doit tre
prsent au niveau de cette entre pour que la bote d'instruction soit excute. Si l'entre
EN d'une bote CONT est connecte directement la barre conductrice gauche,
l'instruction sera toujours excute.
ENO (pour Enable Out) est une sortie boolenne. Si un flux de courant est prsent
l'entre EN d'une bote et que la fonction correspondante s'excute sans erreur, la sortie
ENO transmet le flux de courant (ENO = 1) l'lment suivant. Si une erreur est dtecte
lors de l'excution de la bote d'instruction, le flux de courant s'arrte (ENO = 0) la bote
qui a gnr l'erreur.
Tableau 6- 3 Oprandes pour EN et ENO
Editeur de
programmes
Entres/sorties Oprandes Type de donnes
CONT EN, ENO Flux de courant Bool
EN I, I:P, Q, M, DB, Temp, flux de courant Bool LOG
ENO Flux de courant Bool
EN
1
TRUE, FALSE Bool SCL
ENO
2
TRUE, FALSE Bool
1
L'utilisation de EN est disponible uniquement pour les FB.
2
L'utilisation de ENO avec le bloc de code SCL est facultative. Vous devez configurer le compilateur SCL afin qu'il active
ENO l'achvement du bloc de code.
Configuration de SCL pour l'activation de ENO
Pour vrifier l'excution d'instructions individuelles l'intrieur du code SCL, utilisez OK ou
NOT OK (Page 199) avec un IF-THEN ou une autre structure conditionnelle.
99BConcepts de programmation
6.6 Protection
Automate programmable S7-1200
164 Manuel systme, 11/2011, A5E02486682-05
Procdez comme suit pour configurer le compilateur SCL pour l'activation de ENO :
1. Slectionnez la commande "Paramtres" dans le menu "Outils".
2. Affichez le dtail des proprits "Programmation API" et slectionnez "SCL (Structured
Control Language)".
3. Slectionnez l'option "Activer ENO automatiquement".
Effet des paramtres Ret_Val et Status sur ENO
Certaines instructions, telles que les instructions de communication ou les instructions de
conversion de chane, fournissent un paramtre de sortie qui contient des informations sur le
traitement de l'instruction. Par exemple, certaines instructions fournissent un paramtre
Ret_Val (valeur en retour) qui est typiquement un type de donnes Int contenant des
informations d'tat dans une plage allant de -32768 +32767. D'autres instructions
fournissent un paramtre Status qui est typiquement un type de donnes Word contenant
des informations d'tat dans une plage allant des valeurs hexadcimales 16#0000
16#FFFF. La valeur numrique contenue dans un paramtre Ret_Val ou Status dtermine
l'tat de ENO pour l'instruction correspondante.
Ret_Val : Une valeur comprise entre 0 et 32767 met typiquement ENO 1 (ou VRAI).
Une valeur comprise entre -32768 et -1 met typiquement ENO 0 (ou FAUX). Pour
valuer Ret_Val, passez en reprsentation hexadcimale.
Status : Une valeur comprise entre 16#0000 et 16#7FFF met typiquement ENO 1 (ou
VRAI). Une valeur comprise entre 16#8000 et 16#FFFF met typiquement ENO 0 (ou
FAUX).
Les instructions s'excutant sur plus d'un cycle comportent souvent un paramtre Busy
(Bool) qui signale que l'instruction est active mais que l'excution n'est pas encore acheve.
Souvent, ces instructions fournissent aussi un paramtre Done (Bool) et un paramtre Error
(Bool). Done signale que l'instruction s'est acheve sans erreur et Error que l'instruction s'est
acheve avec une erreur.
Lorsque Busy vaut 1 (ou VRAI), ENO est gal 1 (ou VRAI).
Lorsque Done vaut 1 (ou VRAI), ENO est gal 1 (ou VRAI).
Lorsque Error vaut 1 (ou VRAI), ENO est gal 0 (ou FAUX).
6.6 Protection
6.6.1 Protection d'accs pour la CPU
La CPU fournit 3 niveaux de scurit permettant de limiter l'accs des fonctions
spcifiques. Lorsque vous configurez le niveau de scurit et le mot de passe pour une
CPU, vous limitez les fonctions et les zones de mmoire qui sont accessibles sans saisie
d'un mot de passe.
99BConcepts de programmation
6.6 Protection
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 165
Il y a distinction entre majuscules et minuscules dans le mot de passe.

Procdez comme suit pour
configurer le mot de passe :
1. Slectionnez la CPU dans la
"Configuration des appareils".
2. Dans la fentre d'inspection,
slectionnez l'onglet
"Proprits".
3. Slectionnez la proprit
"Protection" pour choisir le
niveau de protection et entrer
un mot de passe.

Chaque niveau permet d'accder certaines fonctions sans mot de passe. Par dfaut, il n'y
a pas de restriction d'accs ni de protection par mot de passe pour la CPU. Pour limiter
l'accs une CPU, vous configurez les proprits de la CPU et vous entrez le mot de passe.
L'entre du mot de passe via un rseau ne met pas en cause la protection par mot de passe
de la CPU. Une CPU protge par mot de passe n'autorise l'accs sans rserve qu' un seul
utilisateur un moment donn. La protection par mot de passe ne concerne pas l'excution
des instructions du programme utilisateur, fonctions de communication comprises. La saisie
du mot de passe correct permet d'accder toutes les fonctions.
Les communications API-API (par le biais d'instructions de communication dans les blocs de
code) ne sont pas rduites par le niveau de scurit dans la CPU. La fonctionnalit IHM
n'est pas non plus restreinte.
Tableau 6- 4 Niveaux de scurit pour la CPU
Niveau de scurit Restrictions d'accs
Pas de protection Autorise un accs intgral sans protection par mot de passe.
Protection en criture Permet l'accs IHM et toutes les formes de communication API-API sans protection par mot de
passe.
Un mot de passe est ncessaire pour modifier la CPU (criture) et pour changer le mode de la
CPU (MARCHE/ARRET).
Protection en
lecture/criture
Permet l'accs IHM et toutes les formes de communication API-API sans protection par mot de
passe.
Un mot de passe est ncessaire pour lire les donnes dans la CPU, modifier la CPU (criture) et
changer le mode de la CPU (MARCHE/ARRET).
99BConcepts de programmation
6.6 Protection
Automate programmable S7-1200
166 Manuel systme, 11/2011, A5E02486682-05
6.6.2 Protection du savoir-faire
Une protection "know-how" vous permet d'empcher l'accs non autoris un ou plusieurs
blocs de code (OB, FB, FC ou DB) dans votre programme. Vous crez un mot de passe
pour limiter l'accs au bloc de code. La protection par mot de passe empche de lire ou de
modifier le bloc de code sans autorisation. Sans mot de passe, vous pouvez lire uniquement
les informations suivantes sur le bloc de code :
Titre, commentaire et proprits du bloc
Paramtres transmis (IN, OUT, IN_OUT, renvoi)
Structure d'appel du programme
Variables globales dans les rfrences croises (sans information sur l'endroit o elles
sont utilises) ; les variables locales sont masques
Lorsque vous activez la protection "know-how" pour un bloc, le code l'intrieur de ce bloc
n'est accessible qu'aprs saisie du mot de passe.
Utilisez la Task Card "Proprits" du bloc de code pour configurer la protection "know-how"
pour ce bloc. Aprs avoir ouvert le bloc de code, slectionnez "Protection" dans les
proprits.


1. Dans les proprits du bloc de code,
cliquez sur le bouton "Protection" pour
afficher la bote de dialogue "Protection
Know-How".
2. Cliquez sur le bouton "Dfinir" pour entrer
le mot de passe.

Aprs avoir entr et confirm le mot de
passe, cliquez sur "OK".

99BConcepts de programmation
6.6 Protection
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 167
6.6.3 Protection contre la copie
Une fonction de scurit supplmentaire vous permet de lier le programme ou les blocs de
code une utilisation avec une carte mmoire ou une CPU spcifique. Cette fonction est
particulirement utile pour protger votre proprit intellectuelle. Lorsque vous liez un
programme ou un bloc un appareil spcifique, vous restreignez le programme ou le bloc
de code pour utilisation uniquement avec une carte mmoire ou une CPU spcifique. Cette
fonction vous permet de distribuer un programme ou un bloc de code lectroniquement (via
Internet ou par email) ou en envoyant une cartouche mmoire.
Utilisez la Task Card "Proprits" du bloc de code pour lier le bloc une CPU ou une carte
mmoire spcifique.
1. Aprs avoir ouvert le bloc de code, slectionnez "Protection".

2. Dans la liste droulante sous la tche "Protection contre la copie", slectionnez l'option
de liaison du bloc de code une carte mmoire ou une CPU spcifique.

3. Slectionnez le type de protection contre la copie et saisissez le numro de srie de la
carte mmoire ou de la CPU.


Remarque
Il y a distinction entre majuscules et minuscules dans le numro de srie.
99BConcepts de programmation
6.7 Chargement d'lments de votre programme dans la CPU
Automate programmable S7-1200
168 Manuel systme, 11/2011, A5E02486682-05
6.7 Chargement d'lments de votre programme dans la CPU
Vous pouvez charger les lments de votre projet de la console de programmation dans la
CPU. Lors du chargement d'un projet, la CPU sauvegarde le programme utilisateur (OB, FC,
FB et DB) en mmoire permanente.

Vous pouvez charger votre projet de la console de programmation dans votre CPU partir
de l'un des endroits suivants :
"Arborescence du projet" : Cliquez avec le bouton droit de la souris sur l'lment de
programme, puis cliquez sur la commande "Charger" du menu contextuel.
Menu "En ligne" : Cliquez sur la commande "Charger dans l'appareil".
Barre d'outils : Cliquez sur l'icne "Charger dans l'appareil".
6.8 Chargement partir de la CPU
6.8.1 Copie des lments du projet
Vous pouvez galement copier les blocs de programme depuis une CPU en ligne ou une
carte mmoire relie votre console de programmation.
99BConcepts de programmation
6.8 Chargement partir de la CPU
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 169

Prparez le projet hors ligne pour les blocs de programme
copis :
1. Ajoutez un appareil CPU qui correspond la CPU en
ligne.
2. Cliquez une fois sur le noeud de la CPU pour rendre le
dossier "Blocs de programme" visible.

Procdez comme suit pour charger les blocs de
programme de la CPU en ligne dans le projet hors ligne :
1. Cliquez sur le dossier "Blocs de programme" dans le
projet hors ligne.
2. Cliquez sur le bouton "Liaison en ligne".
3. Cliquez sur le bouton "Charger depuis la CPU".
4. Confirmez votre dcision dans la bote de dialogue
Charger depuis la CPU (Page 681).


Vous pouvez galement procder comme suit :
1. Dans le navigateur du projet, affichez le dtail du
noeud pour "Accs en ligne" afin de slectionner les
blocs de programme dans la CPU en ligne :
2. Affichez le dtail du noeud pour le rseau et double-
cliquez sur "Mettre jour les abonns accessibles".
3. Affichez le dtail du noeud pour la CPU.
4. Faites glisser le fichier "Blocs de programme" depuis la
CPU en ligne et dplacez-le dans le fichier "Blocs de
programme" de votre projet en ligne.
5. Dans la bote de dialogue "Tlchargement
prvisualisation", slectionnez "Continuer" et cliquez
ensuite sur le bouton "Tlchargement depuis
l'appareil".

Lorsque le tlchargement est termin, tous les blocs de
programme, blocs technologiques et variables sont
affichs dans la zone hors ligne.



Remarque
Vous pouvez copier les blocs de programme depuis la CPU en ligne vers un programme
existant. Le fichier "Blocs de programme" du projet hors ligne ne doit pas tre vide.
Cependant, le programme existant sera effac et remplac par le programme utilisateur de
la CPU en ligne.

99BConcepts de programmation
6.9 Dbogage et test du programme
Automate programmable S7-1200
170 Manuel systme, 11/2011, A5E02486682-05
6.8.2 Utilisation de la fonction de comparaison
Vous pouvez utiliser l'diteur de comparaison (Page 687) dans STEP 7 pour rechercher les
diffrences entre les projets en ligne et hors ligne. Cela peut tre utile avant d'effectuer un
chargement depuis la CPU.
6.9 Dbogage et test du programme
6.9.1 Visualisation et forage de donnes dans la CPU
Comme indiqu dans le tableau suivant, vous pouvez visualiser et forcer des valeurs dans la
CPU en ligne.
Tableau 6- 5 Visualisation et forage de donnes avec STEP 7
Editeur Visualisation Forage Forage permanent
Table de visualisation Oui Oui Non
Table de forage
permanent
Oui Non Oui
Editeur de programmes Oui Oui Non
Table des variables Oui Non Non
Editeur de DB Oui Non Non



Visualisation avec
une table de
visualisation

Visualisation avec l'diteur CONT
Reportez-vous au chapitre "Outils en ligne et de diagnostic" pour plus d'informations sur la
visualisation et le forage de donnes dans la CPU (Page 688).
99BConcepts de programmation
6.9 Dbogage et test du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 171
6.9.2 Tables de visualisation et tables de forage permanent
Vous pouvez utiliser des "tables de visualisation" pour visualiser et modifier les valeurs d'un
programme utilisateur excut par la CPU en ligne. Vous pouvez crer et sauvegarder
diffrentes tables de visualisation dans votre projet afin de prendre en charge des
environnements de test varis. Vous pouvez ainsi reproduire des tests pendant la mise en
service ou des fins de dpannage et de maintenance.
Avec une table de visualisation, vous pouvez surveiller la CPU et interagir avec elle alors
qu'elle excute le programme utilisateur. Vous pouvez afficher ou changer les valeurs non
seulement pour les variables des blocs de code et de donnes, mais galement pour les
zones de mmoire de la CPU, savoir les entres et sorties (I et Q), la priphrie d'entre
(I:P), les mmentos (M) et les blocs de donnes (DB).
Avec la table de visualisation, vous pouvez dbloquer les sorties physiques (Q:P) d'une CPU
l'tat ARRET. Vous pouvez, par exemple, affecter des valeurs spcifiques aux sorties
lorsque vous testez le cblage de la CPU.
STEP 7 fournit galement une table de forage permanent pour le forage permanent d'une
variable une valeur spcifique. Pour plus d'informations sur le forage, reportez-vous au
paragraphe traitant du forage de valeurs dans la CPU (Page 695) au chapitre "Outils en
ligne et de diagnostic".

Remarque
Les valeurs de forage permanent sont stockes dans la CPU et non dans la table de
visualisation.
Vous ne pouvez pas forcer une entre (adresse I), mais vous pouvez forcer une entre de
priphrie. Pour forcer une entre de priphrie, ajoutez ":P" l'adresse (par exemple,
"On:P").

6.9.3 Affichage de l'usage des rfrences croises
La fentre d'inspection affiche des informations sous forme de rfrences croises indiquant
la manire dont un objet slectionn est utilis dans l'ensemble du projet, comme p. ex. le
programme utilisateur, la CPU ou tout appareil IHM. La table des "Rfrences croises"
affiche les instances o un objet slectionn et utilis, de mme que les autres objets qui
l'utilisent. La fentre d'inspection contient galement les blocs qui sont exclusivement
accessibles en ligne dans les rfrences croises. Pour afficher les rfrences croises,
choisissez la commande "Afficher rfrences croises" (dans la vue du projet, les rfrences
croises font partie du menu "Outils").

Remarque
Il n'est pas ncessaire de fermer l'diteur pour voir les informations sur les rfrences
croises.

99BConcepts de programmation
6.9 Dbogage et test du programme
Automate programmable S7-1200
172 Manuel systme, 11/2011, A5E02486682-05
Vous avez la possibilit de trier les entres des rfrences croises. La liste des rfrences
croises fournit une vue d'ensemble de l'utilisation des adresses mmoire et des variables
dans le programme utilisateur.
Lorsque vous crez et modifiez un programme, vous obtenez une vue d'ensemble des
oprandes, variables et appels de blocs utiliss.
Vous pouvez, partir des rfrences croises, sauter directement l'occurrence
d'utilisation des oprandes et variables.
Durant un test du programme ou lors d'un dpannage, vous voyez quelle adresse de
mmoire est traite par quelle commande et dans quel bloc, quelle variable est utilise
dans quelle vue et quel bloc est appel par quel autre bloc.
Tableau 6- 6 lments de la rfrence croise
Colonne Description
Objet Nom de l'objet utilisant les objets de niveau infrieur ou qui est utilis par les objets
de niveau infrieur
Quantit Nombre d'utilisations
Adresse Toute adresse possible, p. ex. adresse de rseau.
Proprits Proprits spcifiques des objets rfrencs, p. ex. noms de variables dans des
dclarations multiinstances
En tant que Affiche des informations supplmentaires sur l'objet, p. ex. si un DB d'instance est
utilis en tant que modle ou instance multiple.
Accs Type d'accs l'oprande, savoir en lecture (R) et/ou en criture (W).
Adresse Adresse de l'oprande
Type Information sur le type et le langage utiliss pour crer l'objet.
Chemin Chemin de l'objet dans l'arborescence
6.9.4 Structure d'appel permettant de constater la hirarchie d'appel
La structure d'appel dcrit la hirarchie d'appel des blocs dans votre programme utilisateur.
Elle fournit une vue d'ensemble des blocs utiliss, des appels d'autres blocs, des relations
entre blocs, des donnes requises pour chaque bloc et de l'tat des blocs. Vous pouvez
ouvrir l'diteur de programmes et diter les blocs de la structure d'appel.
L'affichage de la structure d'appel fournit une liste des blocs utiliss dans le programme
utilisateur. STEP 7 met en vidence le premier niveau de la structure d'appel et affiche tout
bloc n'tant pas appel par un autre bloc dans le programme. Le premier niveau de la
structure d'appel affiche les OB ainsi que tous les FC, FB et DB qui ne sont pas appels par
un OB. Si un bloc de code appelle un autre bloc, le bloc appel est reprsent en retrait
sous le bloc appelant. La structure d'appel affiche uniquement les blocs qui sont appels par
un blocs de code.
Vous avez la possibilit d'afficher exclusivement les blocs entranant des conflits dans la
structure d'appel. Les conditions suivantes entranent des conflits :
Blocs excutant des appels avec des horodatages plus anciens ou plus rcents
Blocs appelant un bloc avec une interface modifie
99BConcepts de programmation
6.9 Dbogage et test du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 173
Blocs utilisant une variable avec une adresse et/ou un type de donnes modifis
Blocs n'tant pas appels directement ou indirectement par un OB.
Blocs appelant un bloc inexistant ou manquant
Vous pouvez regrouper plusieurs appels de bloc et blocs de donnes. Une liste droulante
indique les liens aux diffrentes adresses d'appel.
Vous pouvez galement effectuer un contrle de cohrence pour afficher les conflits
d'horodatage. Un changement d'horodatage d'un bloc durant ou aprs la compilation du
programme risque d'entraner des conflits d'horodatage, qui leur tour provoquent des
incohrences parmi les blocs appelants et les blocs appels.
Une recompilation des blocs de code permet de corriger la plupart des conflits
d'horodatage et d'interface.
Si la compilation ne permet pas de remdier aux incohrences, servez-vous du lien dans
la colonne "Dtails" pour aller la source du problme dans l'diteur de programmes.
Vous pouvez alors corriger manuellement toutes les incohrences.
Tous les blocs marqus en rouge doivent tre recompils.
99BConcepts de programmation
6.9 Dbogage et test du programme
Automate programmable S7-1200
174 Manuel systme, 11/2011, A5E02486682-05

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 175
Instructions de base 7
7.1 Instructions logiques sur bits
7.1.1 Contacts et bobines
CONT et LOG sont trs efficaces dans le traitement de la logique boolenne. Bien que SCL
soit particulirement efficace pour les calculs mathmatiques complexes et pour les
structures de commande de projet, vous pouvez aussi l'utiliser pour la logique boolenne.
Contacts CONT
Tableau 7- 1 Contacts fermeture et contacts ouverture
CONT SCL Description

IF in THEN
Statement;
ELSE
Statement;
END_IF;

IF NOT (in) THEN
Statement;
ELSE
Statement;
END_IF;
Contacts fermeture et contacts ouverture : Vous pouvez connecter
des contacts d'autres contacts et crer votre propre logique
combinatoire. Si le bit d'entre que vous indiquez utilise l'identificateur de
mmoire I (entre) ou Q (sortie), la valeur du bit est lue dans la mmoire
image du processus. Les signaux physiques dans votre processus de
commande sont cbls aux bornes I sur l'automate. La CPU lit les
signaux d'entre cbls et actualise en continu les valeurs d'tat
correspondantes dans la mmoire image des entres.
Vous pouvez demander la lecture directe d'une entre physique en
indiquant ":P" aprs le dcalage I (par exemple, "%I3.4:P"). En cas de
lecture directe, les valeurs de donnes binaires sont lues directement
dans l'entre physique et non dans la mmoire image. Une lecture
directe n'actualise pas la mmoire image.

Tableau 7- 2 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Bool Bit affect
Le contact fermeture est ferm (activ) lorsque la valeur du bit affect est gale 1.
Le contact ouverture est ferm (activ) lorsque la valeur du bit affect est gale 0.
Des contacts connects en srie crent des rseaux de logique ET.
Des contacts connects en parallle crent des rseaux de logique OU.
100BInstructions de base
7.1 Instructions logiques sur bits
Automate programmable S7-1200
176 Manuel systme, 11/2011, A5E02486682-05
Botes ET, OU et OU EXCLUSIF en LOG
En programmation LOG, les rseaux de contacts CONT sont transforms en rseaux de
botes ET (&), OU (>=1) et OU EXCLUSIF (x) dans lesquels vous pouvez indiquer des
valeurs binaires pour les entres et sorties des botes. Vous pouvez aussi tablir des
connexions d'autres botes logiques et crer vos propres combinaisons logiques. Une fois
que vous avez plac la bote dans votre rseau, vous pouvez faire glisser l'outil "Insrer
entre" de la barre d'outils "Favoris" ou de l'arborescence d'instructions vers le ct des
entres de la bote afin d'ajouter des entres. Vous pouvez aussi cliquer avec le bouton droit
de la souris sur le connecteur d'entre de la bote et slectionner "Insrer entre".
Les entres et les sorties de la bote peuvent tre connectes une autre bote logique ou
vous pouvez entrer une adresse binaire ou un mnmonique de bit pour une entre non
connecte. Lors de l'excution de la bote d'instruction, les tats des entres en cours sont
appliqus la logique binaire et, si elle est vraie, la sortie de la bote sera vraie.
Tableau 7- 3 Botes ET, OU et OU EXCLUSIF
LOG SCL
1
Description

out := in1 AND
in2;
Toutes les entres d'une bote ET doivent tre vraies pour que la sortie
soit vraie.

out := in1 OR
in2;
Il suffit qu'une entre d'une bote OU soit vraie pour que la sortie soit
vraie.

out := in1 XOR
in2;
Un nombre impair d'entres d'une bote OU EXCLUSIF doivent tre
vraies pour que la sortie soit vraie.
1
Pour SCL : Vous devez affecter le rsultat de l'opration une variable destine tre utilise par une autre instruction.

Tableau 7- 4 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN1, IN2 Bool Bit d'entre
100BInstructions de base
7.1 Instructions logiques sur bits
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 177
Inverseur logique NOT
Tableau 7- 5 Inverseur logique NOT
CONT LOG SCL Description


NOT
En programmation LOG, vous pouvez faire glisser l'outil "Inverser
l'entre binaire" de la barre d'outils "Favoris" ou de l'arborescence
d'instructions vers une entre ou une sortie afin de crer un inverseur
logique sur ce connecteur de bote.
Le contact NOT en CONT inverse l'tat logique de l'entre de flux de
courant.
S'il n'y a pas de flux de courant entrant dans le contact NOT, il y
a un flux de courant sortant.
S'il y a un flux de courant entrant dans le contact NOT, il n'y a
pas de flux de courant sortant.
Bobine et bote d'affectation de sortie
L'instruction Bobine de sortie crit une valeur pour un bit de sortie. Si le bit de sortie que
vous indiquez utilise l'identificateur de mmoire Q, la CPU met le bit de sortie dans la
mmoire image du processus 1 ou 0 conformment l'tat de flux de courant. Les
signaux de sortie pour vos actionneurs de commande sont cbls aux bornes Q de la CPU.
A l'tat MARCHE, la CPU lit en continu vos signaux d'entre, traite les tats des entres en
fonction de la logique de votre programme, puis ragit en donnant aux sorties de nouvelles
valeurs dans la mmoire image des sorties. Aprs chaque cycle d'excution du programme,
la CPU transfre le nouvel tat des sorties mmoris dans la mmoire image aux bornes de
sortie cbles.
Tableau 7- 6 Bobine de sortie (CONT) et bote d'affectation de sortie (LOG)
CONT LOG SCL Description


out := <expression
boolenne>;


out := NOT
<expression
boolenne>;
En programmation LOG, les bobines CONT sont
transformes en bote d'affectation (= et /=) dans
lesquelles vous indiquez une adresse de bit pour la sortie
de la bote. Les entres et sorties de la bote peuvent tre
connectes une autre bote logique ou vous pouvez
entrer une adresse de bit.
Vous pouvez demander l'criture directe dans une sortie
physique en indiquant ":P" aprs le dcalage Q (par
exemple, "%Q3.4:P"). En cas d'criture directe, les
valeurs de donnes binaires sont crites directement
dans la mmoire image des sorties et directement dans la
sortie physique.

100BInstructions de base
7.1 Instructions logiques sur bits
Automate programmable S7-1200
178 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 7 Types de donnes pour les paramtres
Paramtre Type de donnes Description
OUT Bool Bit affect
S'il y a flux de courant travers une bobine de sortie ou qu'une bote d'affectation "="
LOG est active, le bit de sortie est mis 1.
S'il n'y a pas de flux de courant travers une bobine de sortie ou qu'une bote
d'affectation "=" LOG n'est pas active, le bit de sortie est mis 0.
S'il y a flux de courant travers une bobine de sortie inverse ou qu'une bote "/=" LOG
est active, le bit de sortie est mis 0.
S'il n'y a pas de flux de courant travers une bobine de sortie inverse ou qu'une bote
"/=" LOG n'est pas active, le bit de sortie est mis 1.
7.1.2 Instructions Mise 1 et Mise 0
Mise 1 et Mise 0 d'1 bit
Tableau 7- 8 Instructions S et R
CONT LOG SCL Description

Non disponible Lorsque S (Mise 1) est activ, la valeur de donnes
l'adresse OUT est mise 1. Lorsque S n'est pas activ, OUT
n'est pas modifi.


Non disponible Lorsque R (Mise 0) est activ, la valeur de donnes
l'adresse OUT est mise 0. Lorsque R n'est pas activ, OUT
n'est pas modifi.
1
Pour CONT et LOG : Ces instructions peuvent tre places n'importe o dans le rseau.
2
Pour SCL : Vous devez crire du code pour reproduire cette fonction dans votre application.

Tableau 7- 9 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN (ou connexion contact/logique de porte) Bool Adresse de bit visualiser
OUT Bool Adresse de bit mettre 1 ou 0
100BInstructions de base
7.1 Instructions logiques sur bits
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 179
Mise 1 et Mise 0 champ de bits
Tableau 7- 10 Instructions SET_BF et RESET_BF :
CONT
1
LOG SCL Description


Non disponible Lorsque SET_BF est activ, la valeur 1 est affecte "n" bits
en commenant l'adresse OUT. Lorsque SET_BF n'est pas
activ, OUT n'est pas modifi.

Non disponible RESET_BF crit la valeur 0 dans "n" bits en commenant
l'adresse OUT. Lorsque RESET_BF n'est pas activ, OUT
n'est pas modifi.
1
Pour CONT et LOG : Ces instructions doivent tre l'extrme droite dans une branche.
2
Pour SCL : Vous devez crire du code pour reproduire cette fonction dans votre application.

Tableau 7- 11 Types de donnes pour les paramtres
Paramtre Type de donnes Description
OUT Bool Elment de dpart d'un champ de bits mettre 1 ou 0
(exemple : #MyArray[3])
n Constante (UInt) Nombre de bits crire
Bascule "mise 0, mise 1" et Bascule "mise 1, mise 0"
Tableau 7- 12 Instructions RS et SR :
CONT/LOG SCL Description

Non disponible L'opration RS est une bascule avec mise 1 prioritaire o la mise 1 domine.
Si les signaux de mise 1 (S1) et de mise 0 (R) sont tous deux vrais,
l'adresse de sortie OUT sera 1.

Non disponible L'opration SR est une bascule avec mise 0 prioritaire o la mise 0 domine.
Si les signaux de mise 1 (S) et de mise 0 (R1) sont tous deux vrais,
l'adresse de sortie OUT sera 0.
1
Pour CONT et LOG : Ces instructions doivent tre l'extrme droite dans une branche.
2
Pour SCL : Vous devez crire du code pour reproduire cette fonction dans votre application.

100BInstructions de base
7.1 Instructions logiques sur bits
Automate programmable S7-1200
180 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 13 Types de donnes pour les paramtres
Paramtre Type de donnes Description
S, S1 Bool Entre de mise 1 ; 1 indique la prdominance.
R, R1 Bool Entre de mise 0 ; 1 indique la prdominance.
OUT Bool Sortie binaire affecte "OUT"
Q Bool Suit l'tat du bit "OUT".
Le paramtre OUT correspond l'adresse de bit qui est mise 1 ou 0. La sortie Q
facultative reflte l'tat de signal de l'adresse "OUT".

Instruction S1 R bit "OUT"
RS 0 0 Etat prcdent
0 1 0
1 0 1
1 1 1
S R1
SR 0 0 Etat prcdent
0 1 0
1 0 1
1 1 0
7.1.3 Instructions Front montant et Front descendant
Tableau 7- 14 Dtection de front montant et de front descendant
CONT LOG SCL Description


Non
disponible
CONT : L'tat de ce contact est VRAI lorsqu'un front montant (0 1) est
dtect sur le bit "IN" affect. L'tat logique du contact est alors combin
l'tat du flux de courant entrant pour dfinir l'tat du flux de courant
sortant. Le contact P peut tre situ n'importe o dans le rseau, except
la fin d'une branche.
LOG : L'tat logique de la sortie est VRAI lorsqu'un front montant (0 1)
est dtect sur le bit d'entre affect. La bote P ne peut tre situe qu'au
dbut d'une branche.


Non
disponible
CONT : L'tat de ce contact est VRAI lorsqu'un front descendant (1 0)
est dtect sur le bit d'entre affect. L'tat logique du contact est alors
combin l'tat du flux de courant entrant pour dfinir l'tat du flux de
courant sortant. Le contact N peut tre situ n'importe o dans le rseau,
except la fin d'une branche.
LOG : L'tat logique de la sortie est VRAI lorsqu'un front descendant (1
0) est dtect sur le bit d'entre affect. La bote N ne peut tre situe
qu'au dbut d'une branche.
100BInstructions de base
7.1 Instructions logiques sur bits
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 181
CONT LOG SCL Description

Non
disponible
CONT : Le bit affect "OUT" est VRAI lorsqu'un front montant (0 1) est
dtect sur le flux de courant entrant dans la bobine. L'tat du flux de
courant entrant traverse toujours la bobine en tant qu'tat du flux de
courant sortant. La bobine P peut tre situe n'importe o dans le rseau.
LOG : Le bit affect "OUT" est VRAI lorsqu'un front montant (0 1) est
dtect sur l'tat logique au niveau de la connexion d'entre de la bote
ou sur l'affectation de bit d'entre si la bote est situe au dbut d'une
branche. L'tat logique d'entre traverse toujours la bote en tant qu'tat
logique de sortie. La bote P= peut tre situe n'importe o dans la
branche.

Non
disponible
CONT : Le bit affect "OUT" est VRAI lorsqu'un front descendant (1 0)
est dtect sur le flux de courant entrant dans la bobine. L'tat du flux de
courant entrant traverse toujours la bobine en tant qu'tat du flux de
courant sortant. La bobine N peut tre situe n'importe o dans le rseau.
LOG : Le bit affect "OUT" est VRAI lorsqu'un front descendant (1 0)
est dtect sur l'tat logique au niveau de la connexion d'entre de la
bote ou sur l'affectation de bit d'entre si la bote est situe au dbut
d'une branche. L'tat logique d'entre traverse toujours la bote en tant
qu'tat logique de sortie. La bote N= peut tre situe n'importe o dans la
branche.
1
Pour SCL : Vous devez crire du code pour reproduire cette fonction dans votre application.

Tableau 7- 15 Instructions P_TRIG et N_TRIG
CONT/LOG SCL Description

Non disponible Le flux de courant ou l'tat logique de la sortie Q est VRAI lorsqu'un front
montant (0 1) est dtect sur l'tat de l'entre CLK (LOG) ou sur le flux
de courant entrant CLK (CONT).
En CONT, l'instruction P_TRIG ne peut pas tre situe au dbut ou la
fin d'un rseau. En LOG, l'instruction P_TRIG peut tre situe n'importe
o, except la fin d'une branche.

Non disponible Le flux de courant ou l'tat logique de la sortie Q est VRAI lorsqu'un front
descendant (1 0) est dtect sur l'tat de l'entre CLK (LOG) ou sur le
flux de courant entrant CLK (CONT).
En CONT, l'instruction N_TRIG ne peut pas tre situe au dbut ou la
fin d'un rseau. En LOG, l'instruction N_TRIG peut tre situe n'importe
o, except la fin d'une branche.
1
Pour SCL : Vous devez crire du code pour reproduire cette fonction dans votre application.

Tableau 7- 16 Types de donnes pour les paramtres (contacts/bobines P et N, P=, N=, P_TRIG et N_TRIG)
Paramtre Type de
donnes
Description
M_BIT Bool Bit de mmento dans lequel l'tat prcdent de l'entre est sauvegard
IN Bool Bit d'entre dont le front de transition doit tre dtect
OUT Bool Bit de sortie qui indique qu'un front de transition a t dtect
100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
182 Manuel systme, 11/2011, A5E02486682-05
Paramtre Type de
donnes
Description
CLK Bool Flux de courant ou bit d'entre dont le front de transition doit tre dtect
Q Bool Sortie qui indique qu'un front a t dtect
Toutes les instructions sur front utilisent un bit de mmento (M_BIT) pour stocker l'tat
prcdent du signal d'entre surveill. Un front est dtect par comparaison de l'tat de
l'entre avec l'tat du bit de mmento. Si les tats indiquent un changement de l'entre dans
la direction concerne, un front est signal par criture de la valeur VRAI dans la sortie.
Sinon, FAUX est crit dans la sortie.

Remarque
Les instructions sur front valuent les valeurs de l'entre et du bit de mmento chaque fois
qu'elles sont excutes, premire excution comprise. Vous devez prendre en compte l'tat
initial de l'entre et du bit de mmento dans la conception de votre programme et soit
autoriser soit empcher la dtection de front lors du premier cycle.
Comme le bit de mmento doit tre conserv d'une excution la suivante, vous devez
utiliser pour chaque instruction sur front un bit unique qui ne doit pas servir un autre
endroit dans le programme. Evitez galement d'utiliser de la mmoire temporaire ou de la
mmoire pouvant tre affecte par d'autres fonctions systme, telles que l'actualisation des
E/S. Utilisez uniquement de la mmoire M, DB global ou statique (dans un DB d'instance)
pour les affectations de M_BIT.

7.2 Temporisations
Vous utilisez les temporisations pour crer des retards programms. Le nombre de
temporisations que vous pouvez utiliser dans votre programme utilisateur est limit
uniquement par la quantit de mmoire dans la CPU. Chaque temporisation utilise une
structure de DB de 16 octets de type de donnes IEC_Timer pour conserver les donnes de
la temporisation, cette structure tant indique au-dessus de la bote ou de la bobine. STEP
7 cre automatiquement le DB lorsque vous insrez l'instruction.
Tableau 7- 17 Temporisations
Botes CONT/LOG Bobines
CONT
SCL Description


"IEC_Timer_0_DB".TP(
IN:=_bool_in_,
PT:=_time_in_,
Q=>_bool_out_,
ET=>_time_out_);
La temporisation TP gnre une impulsion de
dure prdfinie.




"IEC_Timer_0_DB".TON (
IN:=_bool_in_,
PT:=_time_in_,
Q=>_bool_out_,
ET=>_time_out_);
La temporisation TON met la sortie Q 1 aprs un
temps de retard prdfini.


100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 183
Botes CONT/LOG Bobines
CONT
SCL Description


"IEC_Timer_0_DB".TOF (
IN:=_bool_in_,
PT:=_time_in_,
Q=>_bool_out_,
ET=>_time_out_);
La temporisation TOF met la sortie Q 0 aprs un
temps de retard prdfini.




"IEC_Timer_0_DB".TONR (
IN:=_bool_in_,
R:=_bool_in_
PT:=_time_in_,
Q=>_bool_out_,
ET=>_time_out_);
La temporisation TONR met la sortie Q 1 aprs
un temps de retard prdfini.

Le temps coul est
accumul sur plusieurs priodes de temps jusqu'
ce que l'entre R soit utilise pour rinitialiser le
temps coul.
LOG uniquement :


Pas d'quivalent SCL La bobine PT (Charger dure) charge une
nouvelle valeur de temps prdfinie dans la
temporisation IEC_Timer spcifie.
LOG uniquement :


Pas d'quivalent SCL La bobine RT (Rinitialiser temporisation)
rinitialise la temporisation IEC_Timer spcifie.
1
STEP 7 cre automatiquement le DB lorsque vous insrez l'instruction.
2
Dans les exemples SCL, "IEC_Timer_0_DB" est le nom du DB d'instance.

Tableau 7- 18 Types de donnes pour les paramtres
Paramtre Type de
donnes
Description
Bote : IN
Bobine : Flux de courant
Bool TP, TON et TONR :
Bote : 0=dsactiver la temporisation, 1=activer la temporisation
Bobine : pas de flux de courant=dsactiver la temporisation, flux de
courant=activer la temporisation
TOF :
Bote : 0=activer la temporisation, 1=dsactiver la temporisation
Bobine : pas de flux de courant=activer la temporisation, flux de
courant=dsactiver la temporisation
R Bool Bote TONR uniquement :
0=pas de rinitialisation
1=remettre le temps coul et le bit Q 0
Bote : PT
Bobine : "PRESET_Tag"
Time Bote ou bobine de temporisation : Entre valeur de temps prdfinie
100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
184 Manuel systme, 11/2011, A5E02486682-05
Paramtre Type de
donnes
Description
Bote : Q
Bobine : DBdata.Q
Bool Bote de temporisation : sortie de bote Q ou bit Q dans les donnes du DB
de temporisation
Bobine de temporisation : vous pouvez accder au bit Q uniquement dans
les donnes du DB de temporisation
Bote : ET
Bobine : DBdata.ET
Time Bote de temporisation : sortie de bote ET (temps coul) ou valeur de
temps ET dans les donnes du DB de temporisation
Bobine de temporisation : vous pouvez accder la valeur de temps ET
uniquement dans les donnes du DB de temporisation

Tableau 7- 19 Effet des modifications de valeur dans les paramtres PT et IN
Temporisation Modifications des paramtres de bote PT et IN et des paramtres de bobine correspondants
TP
La modification de PT n'a pas d'effet pendant que la temporisation s'excute.
La modification de IN n'a pas d'effet pendant que la temporisation s'excute.
TON
La modification de PT n'a pas d'effet pendant que la temporisation s'excute.
Le passage de IN FAUX pendant que la temporisation s'excute rinitialise et arrte la
temporisation.
TOF
La modification de PT n'a pas d'effet pendant que la temporisation s'excute.
Le passage de IN VRAI pendant que la temporisation s'excute rinitialise et arrte la
temporisation.
TONR
La modification de PT n'a pas d'effet pendant que la temporisation s'excute mais a un effet lorsque
la temporisation reprend.
Le passage de IN FAUX pendant que la temporisation s'excute arrte la temporisation mais ne la
rinitialise pas. Si IN repasse VRAI, la temporisation recommence s'couler partir de la valeur
de temps accumule.
Les valeurs PT (temps prdfini) et ET (temps coul) sont sauvegardes dans les donnes
DB IEC_TIMER spcifies en tant qu'entiers doubles signs reprsentant des millisecondes.
Les donnes TIME utilisent l'identificateur T# et peuvent tre entres en tant qu'units de
temps simple (T#200ms ou 200) ou units de temps composes (T#2s_200ms).
Tableau 7- 20 Taille et plage du type de donnes de TIME
Type de
donnes
Taille Plages valides
1

TIME 32 bits, stocks
comme donnes
DInt
T#-24d_20h_31m_23s_648ms T#24d_20h_31m_23s_647ms
Stocks comme -2 147 483 648 ms +2 147 483 647 ms
1
La plage ngative du type de donnes TIME indique ci-dessus ne peut pas tre utilise avec les temporisations. Les
valeurs ngatives de PT (temps prdfini) sont mises zro lorsque l'instruction de temporisation est excute. ET
(temps coul) est toujours une valeur positive.
100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 185
Exemple de bobine de temporisation
Les bobines de temporisation -(TP)-, -(TON)-, -(TOF)- et -(TONR)- doivent tre la dernire
instruction dans un rseau CONT. Comme illustr dans l'exemple de temporisation, un
contact dans un rseau suivant value le bit Q dans les donnes DB IEC_Timer de la bobine
de temporisation. De mme, vous devez accder l'lment ELAPSED dans les donnes
DB IEC_timer si vous souhaitez utiliser la valeur de temps coul dans votre programme.

La temporisation d'impulsion dmarre lors d'un front montant de la valeur de bit Tag_Input.
La temporisation s'coule pendant la dure indique par la valeur de temps Tag_Time.

Tant que la temporisation s'excute, l'tat de DB1.MyIEC_Timer.Q est gal 1 et la valeur
de Tag_Output est gale 1. Lorsque la valeur Tag_Time est coule, DB1.MyIEC_Timer.Q
est gal 0 et la valeur de Tag_Output est gale 0.
Bobines Rinitialiser temporisation -(RT)- et Charger dure -(PT)-
Ces bobines peuvent tre utilises avec des botes ou des bobines de temporisation et
peuvent tre places en position mdiane. L'tat du flux de courant sortant de la bobine est
toujours le mme que l'tat l'entre de la bobine. Lorsque la bobine -(RT)- est active,
l'lment de temps ELAPSED des donnes DB IEC_Timer indiques est remis 0. Lorsque
la bobine -(PT)- est active, l'lment de temps PRESET des donnes DB DB IEC_Timer
indiques est remis 0.

Remarque
Lorsque vous placez des temporisations dans un FB, vous pouvez slectionner l'option "Bloc
de donnes multi-instance". Les noms des structures de temporisation peuvent tre
diffrents avec des structures de donnes distinctes, mais les donnes de temporisation
sont stockes dans un bloc de donnes unique et ne ncessitent pas de bloc de donnes
spar pour chaque temporisation. Cela rduit le temps de traitement et l'espace mmoire
ncessaire pour la gestion des temporisations. Il n'y a pas d'interaction entre les structures
des donnes de temporisation dans le DB multi-instance partag.

100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
186 Manuel systme, 11/2011, A5E02486682-05
Fonctionnement des temporisations
Tableau 7- 21 Types de temporisations CEI
Temporisation Chronogramme
TP : temporisation sous forme d'impulsion
La temporisation TP gnre une impulsion de dure
prdfinie.
lN
Q
ET
PT
PT PT PT

TON : temporisation sous forme de retard la monte
La temporisation TON met la sortie Q 1 aprs un
temps de retard prdfini.
lN
Q
ET
PT
PT
PT

TOF : temporisation sous forme de retard la retombe
La temporisation TOF met la sortie Q 0 aprs un
temps de retard prdfini.
lN
Q
ET
PT
PT
PT

TONR : temporisation sous forme de retard la monte
mmoris
La temporisation TONR met la sortie Q 1 aprs un
temps de retard prdfini. Le temps coul est
accumul sur plusieurs priodes de temps jusqu' ce
que l'entre R soit utilise pour rinitialiser le temps
coul.
lN
Q
R
ET
PT

100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 187


Remarque
Dans la CPU, aucune ressource rserve n'est alloue une temporisation spcifique. Au
lieu de cela, chaque temporisation utilise sa propre structure de temporisation dans la
mmoire DB et une temporisation CPU interne s'excutant en continu pour effectuer la
synchronisation.

Lorsqu'une temporisation est dmarre en raison d'un front l'entre d'une instruction TP,
TON, TOF ou TONR, la valeur de la temporisation CPU interne s'excutant en continu est
copie dans l'lment START de la structure de DB alloue cette instruction de
temporisation. Cette valeur de dmarrage reste inchange tant que la temporisation
continue s'excuter et est utilise plus tard chaque fois que la temporisation est
actualise. A chaque fois que la temporisation est dmarre, une nouvelle valeur de
dmarrage est charge de la temporisation CPU interne dans la structure de la
temporisation.
Lorsqu'une temporisation est actualise, la valeur de dmarrage dcrite ci-dessus est
soustraite de la valeur en cours de la temporisation CPU interne pour dterminer le temps
coul. Le temps coul est alors compar la valeur prdfinie pour dterminer l'tat du bit
Q de la temporisation. Les lments ELAPSED et Q sont alors actualiss dans la structure
de DB alloue cette temporisation. Notez que le temps coul est limit la valeur
prdfinie (la temporisation ne continue pas cumuler le temps coul une fois la valeur
prdfinie atteinte).
Une temporisation est actualise uniquement lorsque :
une instruction de temporisation (TP, TON, TOF ou TONR) est excute,
l'lment ELAPSED de la structure de temporisation dans le DB est rfrenc
directement par une instruction,
l'lment Q de la structure de temporisation dans le DB est rfrenc directement par
une instruction.
100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
188 Manuel systme, 11/2011, A5E02486682-05
Programmation des temporisations
Vous devez tenir compte des consquences suivantes du fonctionnement des
temporisations lors de la planification et de la cration de votre programme utilisateur :
Plusieurs actualisations d'une temporisation peuvent avoir lieu dans le mme cycle. La
temporisation est actualise chaque fois que l'instruction de temporisation (TP, TON,
TOF, TONR) est excute et chaque fois que l'lment ELAPSED ou Q de la structure
de temporisation est utilis comme paramtre d'une autre instruction excute. Cela
constitue un avantage si vous voulez disposer des dernires donnes de temps
(sensiblement une lecture directe de la temporisation). Toutefois, si vous dsirez avoir
des valeurs cohrentes durant tout un cycle de programme, vous devez placer votre
instruction de temporisation avant toutes les autres instructions ayant besoin de ces
valeurs et utiliser des variables connectes aux sorties Q et ET de l'instruction de
temporisation plutt que les lments ELAPSED et Q de la structure de DB de
temporisation.
Il peut y avoir des cycles pendant lesquels une temporisation n'est pas actualise. Il est
possible de dmarrer une temporisation dans une fonction et de ne plus appeler cette
fonction pendant un ou plusieurs cycles. Si aucune autre instruction rfrenant les
lments ELAPSED ou Q de la structure de temporisation n'est excute, la
temporisation n'est pas actualise. Il n'y aura pas d'actualisation tant que l'instruction de
temporisation n'est pas rexcute ou qu'une autre instruction utilisant l'lment
ELAPSED ou Q de la structure de temporisation comme paramtre n'est pas excute.
Bien que cela ne soit pas typique, vous pouvez affecter la mme structure de
temporisation plusieurs instructions de temporisation. Mais en gnral, pour viter des
interactions imprvisibles, vous n'utiliserez qu'une instruction de temporisation (TP, TON,
TOF, TONR) par structure de temporisation.
Les temporisations auto-rinitialisation sont utiles pour dclencher des actions qui
doivent se produire priodiquement. Typiquement, vous crez des temporisations auto-
rinitialisation en plaant un contact ouverture qui rfrence le bit de temporisation
devant l'instruction de temporisation. Ce rseau de temporisation est typiquement situ
au-dessus d'un ou de plusieurs rseaux dpendants qui utilisent le bit de temporisation
pour dclencher des actions. Lorsque la temporisation expire (le temps coul atteint la
valeur prdfinie), le bit de temporisation est 1 pour un cycle, permettant ainsi la
logique de rseau dpendante pilote par le bit de temporisation de s'excuter. Lors de
l'excution suivante du rseau de temporisation, le contact ouverture est dsactiv, ce
qui rinitialise la temporisation et efface le bit de temporisation. Au cycle suivant, le
contact ouverture est activ ce qui redmarre la temporisation. Lors de la cration
d'une telle temporisation auto-rinitialisation, n'utilisez pas l'lment Q de la structure
de DB de temporisation comme paramtre pour le contact ouverture devant l'instruction
de temporisation, mais utilisez la variable connecte la sortie Q de l'instruction de
temporisation. En effet, il ne faut pas accder l'lment Q de la structure de DB de
temporisation, car cela provoque une actualisation de la temporisation et que, si la
temporisation est actualise en raison du contact ouverture, le contat rinitialisera
l'instruction de temporisation immdiatement. La sortie Q de l'instruction de temporisation
ne sera pas 1 pour un cycle et les rseaux dpendants ne s'excuteront pas.
100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 189
Conservation des donnes de temporisation aprs une transition MARCHE-ARRET-MARCHE ou une
mise hors tension puis sous tension de la CPU
Si une session MARCHE se termine par passage l'tat ARRET ou mise hors tension puis
sous tension de la CPU et qu'une nouvelle session MARCHE est dmarre, les donnes de
temporisation sauvegardes l'tat MARCHE prcdent sont perdues moins que la
structure de donnes de temporisation n'ait t dfinie comme rmanente (temporisations
TP, TON, TOF et TONR).
Lorsque vous acceptez les valeurs par dfaut dans la bote de dialogue d'options d'appel
aprs avoir insr une temporisation dans l'diteur de programmes, un DB d'instance qui ne
peut pas tre dfini comme rmanent vous est automatiquement affect. Pour assurer la
rmanence de vos donnes de temporisation, vous devez donc utiliser soit un DB global,
soit un DB multi-instance.
Affectation d'un DB global pour sauvegarder les donnes de temporisation comme donnes
rmanentes
Cette option fonctionne quel que soit l'endroit o se trouve la temporisation (OB, FC ou FB).
1. Crez un DB global :
Double-cliquez sur "Ajouter nouveau bloc" dans l'arborescence de projet.
Cliquez sur l'icne de bloc de donnes (DB).
Choisissez DB global comme type.
Vrifiez que la case "Optimis" est coche pour le type de DB si vous dsirez pouvoir
dfinir des lments individuels de ce DB comme rmanents. L'autre option de type
de DB "Standard - compatible avec S7-300/400" permet uniquement de dfinir tous
les lments de DB soit comme rmanents, soit comme non rmanents.
Cliquez sur OK.
2. Ajoutez une ou des structures de temporisation au DB :
Dans le nouveau DB global, ajoutez une nouvelle variable statique en utilisant le type
de donnes IEC_Timer.
Cochez la case dans la colonne "Rmanence" afin que cette structure soit rmanente.
Rptez cette procdure pour crer des structures pour toutes les temporisations que
vous voulez sauvegarder dans ce DB. Vous pouvez soit placer chaque structure de
temporisation dans un DB global unique, soit placer plusieurs structures de
temporisation dans le mme DB global. Vous pouvez galement placer d'autres
variables statiques en plus des temporisations dans ce DB global. Insrer plusieurs
structures de temporisation dans le mme DB global permet de rduire le nombre
total de vos blocs.
Renommez les structures de temporisation si vous le souhaitez.
3. Ouvrez dans l'diteur le bloc de programme dans lequel vous voulez placer une
temporisation rmanente (OB, FC ou FB).
4. Placez la temporisation l'emplacement dsir.
100BInstructions de base
7.2 Temporisations
Automate programmable S7-1200
190 Manuel systme, 11/2011, A5E02486682-05
5. Lorsque la bote de dialogue des options d'appel s'affiche, cliquez sur le bouton Annuler.
6. Au-dessus de la nouvelle temporisation, tapez le nom (sans utiliser l'icne d'aide la
navigation) du DB global et de la structure de temporisation que vous avez crs
auparavant (exemple : "Data_block_3.Static_1").
Affectation d'un DB multi-instance pour sauvegarder les donnes de temporisation comme donnes
rmanentes
Cette option ne fonctionne que si vous placez la temporisation dans un FB.
Cette option dpend du fait que le FB a ou non t cr avec accs "optimis" (accs
symbolique uniquement). Une fois le FB cr, vous ne pouvez plus modifier la case cocher
pour "Optimis". Vous devez faire le choix correct au moment o vous crez le FB, sur le
premier cran aprs avoir slectionn "Ajouter nouveau bloc" dans l'arborescence. Pour
vrifier comment l'attribut d'accs est configur pour un FB existant, cliquez avec le bouton
droit de la souris sur le FB dans l'arborescence de projet, slectionnez "Proprits", puis
slectionnez "Attributs".
Si le FB a t cr avec la case "Optimis" coche (accs symbolique uniquement) :
1. Ouvrez le FB dans l'diteur.
2. Placez la temporisation l'emplacement dsir dans le FB.
3. Lorsque la bote de dialogue des options d'appel s'affiche, cliquez sur l'icne
"Multiinstance". L'option Multiinstance n'est disponible que si l'instruction est insre dans
un FB.
4. Dans la bote de dialogue des options d'appel, renommez la temporisation si vous le
souhaitez.
5. Cliquez sur OK. L'instruction de temporisation apparat dans l'diteur et la structure
IEC_TIMER apparat dans l'interface de FB sous Statique.
6. Si ncessaire, ouvrez l'diteur d'interface de FB (vous devrez peut-tre cliquer sur la
petite flche pour agrandir la vue).
7. Sous Statique, localisez la structure de temporisation qui vient d'tre cre pour vous.
8. Dans la colonne Rmanence de cette structure de temporisation, changez la slection
"Rmanence". Plus tard, chaque fois que ce FB sera appel dans un autre bloc de
programme, un DB d'instance sera cr avec cette dfinition d'interface qui contient la
structure de temporisation dfinie comme rmanente.
Si le FB a t cr avec la case "Standard - compatible avec S7-300/400" coche (accs
symbolique et accs direct) :
1. Ouvrez le FB dans l'diteur.
2. Placez la temporisation l'emplacement dsir dans le FB.
3. Lorsque la bote de dialogue des options d'appel s'affiche, cliquez sur l'icne
"Multiinstance". L'option Multiinstance n'est disponible que si l'instruction est insre dans
un FB.
4. Dans la bote de dialogue des options d'appel, renommez la temporisation si vous le
souhaitez.
100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 191
5. Cliquez sur OK. L'instruction de temporisation apparat dans l'diteur et la structure
IEC_TIMER apparat dans l'interface de FB sous Statique.
6. Ouvrez le bloc qui utilisera ce FB.
7. Placez ce FB l'emplacement dsir. Cela entrane la cration d'un bloc de donnes
d'instance pour ce FB.
8. Ouvrez le bloc de donnes d'instance qui a t cr lorsque vous avez plac le FB dans
l'diteur.
9. Sous Statique, localisez la structure de temporisation qui vous intresse. Dans la colonne
Rmanence de cette structure de temporisation, cochez la case pour rendre cette
structure rmanente.
7.3 Compteurs
Tableau 7- 22 Compteurs
CONT/LOG SCL Description

"IEC_Counter_0_DB".CTU(
CU:=_bool_in,
R:=_bool_in,
PV:=_int_in,
Q=>_bool_out,
CV=>_int_out);

"IEC_Counter_0_DB".CTD(
CD:=_bool_in,
LD:=_bool_in,
PV:=_int_in,
Q=>_bool_out,
CV=>_int_out);

"IEC_Counter_0_DB".CTUD(
CU:=_bool_in,
CD:=_bool_in,
R:=_bool_in,
LD:=_bool_in,
PV:=_int_in,
QU=>_bool_out,
QD=>_bool_out,
CV=>_int_out);
Utilisez les compteurs pour compter des vnements de programme
internes et des vnements de processus externes. Chaque
compteur utilise une structure sauvegarde dans un bloc de donnes
afin de conserver les donnes du compteur. Vous affectez le bloc de
donnes lors du placement du compteur dans l'diteur.
CTU est un compteur de comptage.
CTD est un compteur de dcomptage.
CTUD est un compteur de comptage et de dcomptage.
1
Pour CONT et LOG : Slectionnez le type de donnes de la valeur de comptage dans la liste droulante sous le nom de
l'instruction.
2
STEP 7 cre automatiquement le DB lorsque vous insrez l'instruction.
3
Dans les exemples SCL, "IEC_Counter_0_DB" est le nom du DB d'instance.

100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
192 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 23 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
CU, CD Bool Compter ou dcompter, d'une valeur de 1
R (CTU, CTUD) Bool Remise zro de la valeur de comptage
LD (CTD, CTUD) Bool Commande de chargement pour la valeur prdfinie
PV SInt, Int, DInt, USInt, UInt, UDInt Valeur de comptage prdfinie
Q, QU Bool Vrai si CV >= PV
QD Bool Vrai si CV <= 0
CV SInt, Int, DInt, USInt, UInt, UDInt Valeur de comptage en cours
1
La plage numrique des valeurs de comptage dpend du type de donnes que vous slectionnez. Si la valeur de
comptage est un entier non sign, vous pouvez dcompter jusqu' zro ou compter jusqu' la limite de plage. Si la
valeur de comptage est un entier sign, vous pouvez dcompter jusqu' la limite entire ngative et compter jusqu' la
limite entire positive.
Le nombre de compteurs que vous pouvez utiliser dans votre programme utilisateur est
limit uniquement par la quantit de mmoire dans la CPU. Les compteurs utilisent la
quantit de mmoire suivante :
Un compteur utilise 3 octets pour les types de donnes SInt ou USInt.
Un compteur utilise 6 octets pour les types de donnes Int ou UInt.
Un compteur utilise 12 octets pour les types de donnes DInt ou UDInt.
Ces instructions utilisent des compteurs logiciels dont la vitesse de comptage maximale est
limite par la vitesse d'excution de l'OB dans lequel ils se trouvent. Il faut excuter l'OB
dans lequel se trouvent les instructions suffisamment souvent pour dtecter toutes les
transitions des entres CU ou CD. Utilisez l'instruction CTRL_HSC (Page 341) pour disposer
d'oprations de comptage plus rapides.

Remarque
Lorsque vous placez des compteurs dans un FB, vous pouvez slectionner l'option "DB
multi-instance". Les noms des structures de compteur peuvent alors tre diffrents avec des
structures de donnes distinctes, mais les donnes de compteur sont contenues dans un
seul DB et vous n'avez pas besoin d'un DB distinct pour chaque compteur. Cela rduit le
temps de traitement et l'espace mmoire ncessaire pour les compteurs. Il n'y a pas
d'interaction entre les structures de donnes de compteur dans le DB multi-instance partag.

100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 193
Fonctionnement des compteurs
Tableau 7- 24 Fonctionnement du compteur CTU
Compteur Fonctionnement
Le compteur CTU incrmente de 1 lorsque la valeur du paramtre CU
passe de 0 1. Le chronogramme illustre le fonctionnement d'un
compteur CTU avec une valeur de comptage entire non signe (PV =
3).
Si la valeur du paramtre CV (valeur de comptage en cours) est
suprieure ou gale la valeur du paramtre PV (valeur prdfinie),
le paramtre de sortie Q du compteur est gal 1.
Si la valeur du paramtre de rinitialisation R passe de 0 1, la
valeur de comptage en cours est remise 0.
CU
R
CV
Q
1
2
3
4
0 0


Tableau 7- 25 Fonctionnement du compteur CTD
Compteur Fonctionnement
Le compteur CTD dcrmente de 1 lorsque la valeur du
paramtre CD passe de 0 1. Le chronogramme illustre le
fonctionnement d'un compteur CTD avec une valeur de
comptage entire non signe (PV = 3).
Si la valeur du paramtre CV (valeur de comptage en
cours) est infrieure ou gale 0, le paramtre de sortie Q
du compteur est gal 1.
Si la valeur du paramtre LOAD passe de 0 1, la valeur
dans le paramtre PV (valeur prdfinie) est charge dans
le compteur en tant que nouvelle valeur de comptage en
cours CV.
CD
CV
Q
1
2
3 3
2
0 0
LOAD


100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
194 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 26 Fonctionnement du compteur CTUD
Compteur Fonctionnement
Le compteur CTUD incrmente
ou dcrmente de 1 en cas de
passage de 0 1 de l'entre de
comptage (CU) ou de
dcomptage (CD). Le
chronogramme illustre le
fonctionnement d'un compteur
CTUD avec une valeur de
comptage entire non signe
(PV = 4).
Si la valeur du paramtre CV
est suprieure ou gale la
valeur du paramtre PV
(valeur prdfinie), le
paramtre de sortie QU du
compteur est gal 1.
Si la valeur du paramtre CV
est infrieure ou gale
zro, le paramtre de sortie
QD du compteur est gal 1.
Si la valeur du paramtre
LOAD passe de 0 1, la
valeur dans le paramtre PV
est charge dans le
compteur en tant que
nouvelle valeur de comptage
en cours CV.
Si la valeur du paramtre de
rinitialisation R passe de 0
1, la valeur de comptage en
cours est remise 0.
CU
CD
CV
QU
QD
R
LOAD
0 0
1
2
3 3
4 4 4
5 5

Conservation des donnes de compteur aprs une transition MARCHE-ARRET-MARCHE ou une
mise hors tension puis sous tension de la CPU
Si une session MARCHE se termine par passage l'tat ARRET ou mise hors tension puis
sous tension de la CPU et qu'une nouvelle session MARCHE est dmarre, les donnes de
compteur sauvegardes l'tat MARCHE prcdent sont perdues moins que la structure
de donnes de compteur n'ait t dfinie comme rmanente (compteurs CTU, CTD et
CTUD).
Lorsque vous acceptez les valeurs par dfaut dans la bote de dialogue d'options d'appel
aprs avoir insr un compteur dans l'diteur de programmes, un DB d'instance qui ne peut
pas tre dfini comme rmanent vous est automatiquement affect. Pour assurer la
rmanence de vos donnes de compteur, vous devez donc utiliser soit un DB global, soit un
DB multi-instance.
100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 195
Affectation d'un DB global pour sauvegarder les donnes de compteur comme donnes rmanentes
Cette option fonctionne quel que soit l'endroit o se trouve le compteur (OB, FC ou FB).
1. Crez un DB global :
Double-cliquez sur "Ajouter nouveau bloc" dans l'arborescence de projet.
Cliquez sur l'icne de bloc de donnes (DB).
Choisissez DB global comme type.
Vrifiez que la case "Adressage symbolique uniquement" est coche si vous dsirez
pouvoir dfinir des lments individuels de ce DB comme rmanents.
Cliquez sur OK.
2. Ajoutez une ou des structures de compteur au DB :
Dans le nouveau DB global, ajoutez une nouvelle variable statique en utilisant l'un des
types de donnes de compteur. Veillez tenir compte du type que vous voulez utiliser
pour la valeur prdfinie et la valeur de comptage en cours.

Type de donnes compteur Type correspondant pour les valeurs
prdfinie et de comptage en cours
IEC_Counter INT
IEC_SCounter SINT
IEC_DCounter DINT
IEC_UCounter UINT
IEC_USCounter USINT
IEC_UDCounter UDINT
1. Cochez la case dans la colonne "Rmanence" afin que cette structure soit rmanente.
Rptez cette procdure pour crer des structures pour tous les compteurs que vous
voulez sauvegarder dans ce DB. Vous pouvez soit placer chaque structure de
compteur dans un DB global unique, soit placer plusieurs structures de compteur dans
le mme DB global. Vous pouvez galement placer d'autres variables statiques en
plus des compteurs dans ce DB global. Insrer plusieurs structures de compteur dans
le mme DB global permet de rduire le nombre total de vos blocs.
Renommez les structures de compteur si vous le souhaitez.
2. Ouvrez dans l'diteur le bloc de programme dans lequel vous voulez placer un compteur
rmanent (OB, FC ou FB).
3. Placez le compteur l'emplacement dsir.
4. Lorsque la bote de dialogue des options d'appel s'affiche, cliquez sur le bouton Annuler.
Vous devriez maintenant voir un nouveau compteur avec "???" juste au-dessus et en
dessous du nom d'instruction.
5. Au-dessus du nouveau compteur, tapez le nom (sans utiliser l'icne d'aide la
navigation) du DB global et de la structure de compteur que vous avez crs auparavant
(exemple : "Data_block_3.Static_1"). Le type correspondant de la valeur prdfinie et de
la valeur en cours est alors complt (exemple : UInt pour une structure IEC_UCounter).
100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
196 Manuel systme, 11/2011, A5E02486682-05
Affectation d'un DB multi-instance pour sauvegarder les donnes de compteur comme donnes
rmanentes
Cette option ne fonctionne que si vous placez le compteur dans un FB.
Cette option dpend du fait que le FB a ou non t cr avec accs symbolique uniquement.
Une fois le FB cr, vous ne pouvez plus modifier la case cocher pour "Adressage
symbolique uniquement". Vous devez faire le choix correct au moment o vous crez le FB,
sur le premier cran aprs avoir slectionn "Ajouter nouveau bloc" dans l'arborescence.
Pour vrifier la configuration de cette case pour un FB existant, cliquez avec le bouton droit
de la souris sur le FB dans l'arborescence de projet, slectionnez "Proprits", puis
slectionnez "Attributs".
Si le FB a t cr avec la case "Adressage symbolique uniquement" coche :
1. Ouvrez le FB dans l'diteur.
2. Placez le compteur l'emplacement dsir dans le FB.
3. Lorsque la bote de dialogue des options d'appel s'affiche, cliquez sur l'icne
"Multiinstance". L'option Multiinstance n'est disponible que si l'instruction est insre dans
un FB.
4. Dans la bote de dialogue des options d'appel, renommez le compteur si vous le
souhaitez.
5. Cliquez sur OK. L'instruction de compteur apparat dans l'diteur avec le type INT pour la
valeur prdfinie et la valeur de comptage et la structure IEC_COUNTER apparat dans
l'interface de FB sous Statique.
6. Si dsir, changez le type INT dans le compteur en l'un des autres types proposs. La
structure de compteur changera de manire correspondante.

Type indiqu dans l'instruction de compteur
(pour la valeur prdfinie et la valeur de
comptage)
Type de structure correspondante montr
dans l'interface de FB
INT IEC_Counter
SINT IEC_SCounter
DINT IEC_DCounter
UINT IEC_UCounter
USINT IEC_USCounter
UDINT IEC_UDCounter
1. Si ncessaire, ouvrez l'diteur d'interface de FB (vous devrez peut-tre cliquer sur la
petite flche pour agrandir la vue).
2. Sous Statique, localisez la structure de compteur qui vient d'tre cre pour vous.
3. Dans la colonne Rmanence de cette structure de compteur, changez la slection
"Rmanence". Plus tard, chaque fois que ce FB sera appel dans un autre bloc de
programme, un DB d'instance sera cr avec cette dfinition d'interface qui contient la
structure de compteur dfinie comme rmanente.
100BInstructions de base
7.3 Compteurs
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 197
Si le FB a t cr avec la case "Adressage symbolique uniquement" non coche :
1. Ouvrez le FB dans l'diteur.
2. Placez le compteur l'emplacement dsir dans le FB.
3. Lorsque la bote de dialogue des options d'appel s'affiche, cliquez sur l'icne
"Multiinstance". L'option Multiinstance n'est disponible que si l'instruction est insre dans
un FB.
4. Dans la bote de dialogue des options d'appel, renommez le compteur si vous le
souhaitez.
5. Cliquez sur OK. L'instruction de compteur apparat dans l'diteur avec le type INT pour la
valeur prdfinie et la valeur de comptage et la structure IEC_COUNTER apparat dans
l'interface de FB sous Statique.
6. Si dsir, changez le type INT dans le compteur en l'un des autres types proposs. La
structure de compteur changera de manire correspondante.

Type indiqu dans l'instruction de compteur
(pour la valeur prdfinie et la valeur de
comptage)
Type de structure correspondante montr
dans l'interface de FB
INT IEC_Counter
SINT IEC_SCounter
DINT IEC_DCounter
UINT IEC_UCounter
USINT IEC_USCounter
UDINT IEC_UDCounter
1. Ouvrez le bloc qui utilisera ce FB.
2. Placez ce FB l'emplacement dsir. Cela entrane la cration d'un bloc de donnes
d'instance pour ce FB.
3. Ouvrez le bloc de donnes d'instance qui a t cr lorsque vous avez plac le FB dans
l'diteur.
4. Sous Statique, localisez la structure de compteur qui vous intresse. Dans la colonne
Rmanence de cette structure de compteur, cochez la case pour rendre cette structure
rmanente.
100BInstructions de base
7.4 Comparaison
Automate programmable S7-1200
198 Manuel systme, 11/2011, A5E02486682-05
7.4 Comparaison
7.4.1 Comparaison
Tableau 7- 27 Instructions de comparaison
CONT LOG SCL Description


out := in1 == in2;
or
IF in1== in2,
THEN out := 1;
ELSE out := 0;
END_IF;
Compare deux valeurs ayant le mme type de
donnes. Lorsque la comparaison est vraie, le contact
de comparaison CONT est activ. Lorsque la
comparaison est vraie, la sortie de la bote de
comparaison LOG est VRAIE.
1
Pour CONT et LOG : Cliquez sur le nom de l'instruction ("==" par exemple) pour modifier le type de comparaison dans
la liste droulante. Cliquez sur "???" et slectionnez le type de donnes dans la liste droulante.

Tableau 7- 28 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, String, Char,
Time, DTL, constante
Valeurs comparer

Tableau 7- 29 Types de comparaison
Type de relation La comparaison est vraie si ...
== IN1 est gal IN2
<> IN1 est diffrent de IN2
>= IN1 est suprieur ou gal IN2
<= IN1 est infrieur ou gal IN2
> IN1 est suprieur IN2
< IN1 est infrieur IN2
100BInstructions de base
7.4 Comparaison
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 199
7.4.2 Instructions Valeur dans la plage et Valeur en dehors de la plage
Tableau 7- 30 Instructions Valeur dans la plage et Valeur en dehors de la plage
CONT/LOG SCL Description

out := IN_RANGE(min, val,
max);

out := OUT_RANGE(min, val,
max);
Teste si une valeur d'entre se situe ou non l'intrieur d'une plage
de valeurs indique.
Lorsque la comparaison est vraie, la sortie de la bote est VRAIE.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez le type de donnes dans la liste droulante.

Tableau 7- 31 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
MIN, VAL, MAX SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, constante Entres du comparateur
1
Les paramtres d'entre MIN, VAL et MAX doivent avoir le mme type de donnes.
La comparaison IN_RANGE est vraie si : MIN <= VAL <= MAX
La comparaison OUT_RANGE est vraie si : VAL < MIN ou VAL > MAX
7.4.3 Instructions Contrler validit et Contrler invalidit
Tableau 7- 32 Instructions Contrler validit et Contrler invalidit
CONT LOG SCL Description

Non disponible


Non disponible
Teste si une rfrence de donne d'entre est un nombre
rel valide selon la spcification IEEE 754.
Pour SCL, OK vous permet de vrifier les erreurs dans
l'excution d'une instruction. OK est une variable locale
prdfinie qui contient une valeur Bool. Vous pouvez
utiliser le mot-cl NOT en conjonction avec OK pour
valuer l'opration.
1
Pour CONT et LOG : Lorsque le rsultat du test est vrai, le contact CONT est activ et transmet le flux de courant.
Lorsque le rsultat du test est vrai, la sortie de la bote LOG est VRAIE.

100BInstructions de base
7.4 Comparaison
Automate programmable S7-1200
200 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 33 Types de donnes pour le paramtre
Paramtre Type de donnes Description
IN Real, LReal Donnes d'entre

Tableau 7- 34 Fonctionnement
Instruction Le test concernant le nombre rel est vrai si :
OK La valeur d'entre est un nombre rel valide
1
.
NOT_OK La valeur d'entre n'est pas un nombre rel valide
1
.
1
Une valeur Real ou LReal est invalide s'il s'agit de +/- INF (l'infini), NaN (pas un nombre) ou d'une valeur dnormalise.
Une valeur dnormalise est un nombre trs proche de zro. La CPU remplace la valeur dnormalise par un zro
dans les calculs.
Lorsque la CPU commence excuter un bloc de code SCL, la CPU dfinit OK VRAI. Une
erreur se produisant pendant l'excution d'une opration (par exemple, division par zro) fait
passer OK FAUX. Pendant l'excution du code SCL, des instructions peuvent interroger le
paramtre OK ou mettre OK VRAI ou FAUX.
Tableau 7- 35 Utilisation de OK pour vrifier le fonctionnement d'une opration
SCL Commentaire
OK := TRUE; // Mettre OK TRUE
Division:= 1 / "IN"; // Division
IF OK THEN // Vrifier que l'opration est
valide (ex. IN <>0).
... // Instructions pour une opration
valide.
ELSE // Opration invalide (ex. IN = 0).
... // Instructions grant une opration
invalide.
END_IF;
Vous pouvez configurer le compilateur SCL afin qu'il crive la valeur de OK dans le
paramtre de sortie ENO une fois l'excution du bloc de code acheve. Reportez-vous au
paragraphe sur EN et ENO (Page 163).
100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 201
7.5 Fonctions mathmatiques
7.5.1 Instruction Calculer
Tableau 7- 36 Instruction CALCULATE
CONT/LOG SCL Description

Utilisez les
expressions
mathmatiques
SCL standard
pour crer
l'quation.
L'instruction CALCULATE permet de crer une fonction mathmatique
qui opre sur les entres (IN1, IN2, .. INn) et fournit le rsultat dans
OUT, conformment l'quation que vous dfinissez.
Slectionnez d'abord un type de donnes. Toutes les entres et la
sortie doivent avoir le mme type de donnes.
Pour ajouter une autre entre, cliquez sur l'icne ct de la
dernire entre.

Tableau 7- 37 Types de donnes pour les paramtres
Paramtre Type de donnes
1

IN1, IN2, ..INn SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord
1
Les paramtres IN et OUT doivent avoir le mme type de donnes (avec conversion implicite des paramtres d'entre).
Par exemple, une valeur SINT pour une entre sera convertie en valeur INT ou REAL si OUT est un entier (INT) ou un
rel (REAL).
Cliquez sur l'icne du calculateur pour ouvrir la bote de dialogue et dfinir votre fonction
mathmatique. Vous entrez votre quation sous forme d'entres (telles que IN1 et IN2) et
d'oprations. Lorsque vous cliquez sur "OK" pour sauvegarder la fonction, le dialogue cre
automatiquement les entres pour l'instruction CALCULATE.
Un exemple et une liste des oprations mathmatiques que vous pouvez inclure sont
prsents au bas de l'diteur.

100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
202 Manuel systme, 11/2011, A5E02486682-05

Remarque
Vous devez galement crer une entre pour chaque constante dans votre fonction. La
valeur constante sera alors entre dans l'entre associe pour l'instruction CALCULATE.
Le fait d'entrer des constantes sous forme d'entres vous permet de copier l'instruction
CALCULATE d'autres endroits dans votre programme utilisateur sans avoir changer la
fonction. Vous pouvez alors modifier les valeurs ou les variables des entres pour
l'instruction sans modifier la fonction.

Lorsque CALCULATE est excut et que toutes les oprations individuelles dans le calcul
s'achvent avec succs, ENO est gal 1. Sinon, ENO est gal 0.
7.5.2 Instructions Addition, Soustraction, Multiplication et Division
Tableau 7- 38 Instructions Addition, Soustraction, Multiplication et Division
CONT/LOG SCL Description

out := in1 + in2;
out := in1 - in2;
out := in1 * in2;
out := in1 / in2;
ADD : Addition (IN1 + IN2 = OUT)
SUB : Soustraction (IN1 - IN2 = OUT)
MUL : Multiplication (IN1 * IN2 = OUT)
DIV : Division (IN1 / IN2 = OUT)
Une division sur des entiers tronque la partie fractionnaire du quotient afin
de produire une sortie entire.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 39 Types de donnes pour les paramtres (CONT et LOG)
Paramtre Type de donnes
1
Description
IN1, IN2 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, constante Entres de l'opration
mathmatique
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Sortie de l'opration
mathmatique
1
Les paramtres IN1, IN2 et OUTdoivent avoir le mme type de donnes.



Pour ajouter une entre ADD ou MUL, cliquez sur l'icne de cration ou cliquez
avec le bouton droit de la souris sur la ligne d'entre de l'un des paramtres IN
existants et slectionnez la commande "Insrer entre".
Pour supprimer une entre, cliquez avec le bouton droit de la souris sur la ligne d'entre de
l'un des paramtres IN existants (lorsqu'il y a plus d'entres que les deux entres d'origine)
et slectionnez la commande "Supprimer".
100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 203
Lorsqu'elle est valide (EN = 1), l'instruction mathmatique effectue l'opration spcifie sur
les valeurs d'entre (IN1 et IN2) et mmorise le rsultat dans l'adresse de mmoire indique
par le paramtre de sortie (OUT). Une fois l'opration acheve avec succs, l'instruction met
ENO 1.
Tableau 7- 40 Etat de ENO
ENO Description
1 Pas d'erreur
0 Le rsultat de l'opration mathmatique se situerait hors de la plage de nombres valide du type de
donnes slectionn. La partie la moins significative du rsultat qui tient dans la taille de destination est
renvoye.
0 Division par 0 (IN2 = 0) : Le rsultat est indfini et zro est renvoy.
0 Real/LReal : Si l'une des valeurs d'entre est NaN (pas un nombre), NaN est renvoy.
0 ADD Real/LReal : Si les deux valeurs d'entre sont l'infini avec des signes diffrents, il s'agit d'une
opration interdite et NaN est renvoy.
0 SUB Real/LReal : Si les deux valeurs d'entre sont l'infini avec le mme signe, il s'agit d'une opration
interdite et NaN est renvoy.
0 MUL Real/LReal : Si une valeur d'entre est zro et l'autre est l'infini, il s'agit d'une opration interdite et
NaN est renvoy.
0 DIV Real/LReal : Si les deux valeurs d'entre sont zro ou l'infini, il s'agit d'une opration interdite et NaN
est renvoy.
7.5.3 Instruction Modulo
Tableau 7- 41 Instruction MOD
CONT/LOG SCL Description

out := in1 MOD in2;
Vous pouvez utiliser l'instruction MOD pour renvoyer le reste d'une
division entire. La valeur dans l'entre IN1 est divise par la valeur dans
l'entre IN2 et le reste est renvoy dans la sortie OUT.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 42 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
IN1 et IN2 SInt, Int, DInt, USInt, UInt, UDInt, constante Entres de l'opration modulo
OUT SInt, Int, DInt, USInt, UInt, UDInt Sortie de l'opration modulo
1
Les paramtres IN1, IN2et OUTdoivent avoir le mme type de donnes.

100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
204 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 43 Valeurs de ENO
ENO Description
1 Pas d'erreur
0 Valeur IN2 = 0 ; la valeur zro est affecte OUT.
7.5.4 Instruction Ngation
Tableau 7- 44 Instruction NEG
CONT/LOG SCL Description

-(in);
L'instruction NEG inverse le signe arithmtique de la valeur dans le paramtre IN et
mmorise le rsultat dans le paramtre OUT.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 45 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
IN SInt, Int, DInt, Real, LReal, constante Entre de l'opration mathmatique
OUT SInt, Int, DInt, Real, LReal Sortie de l'opration mathmatique
1
Les paramtres IN et OUT doivent avoir le mme type de donnes.

Tableau 7- 46 Etat de ENO
ENO Description
1 Pas d'erreur
0 La valeur rsultante se situe hors de la plage de nombres valide du type de donnes slectionn.
Exemple pour SInt : NEG (-128) donne comme rsultat +128 qui dpasse le maximum du type de
donnes.
100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 205
7.5.5 Instructions Incrmenter et Dcrmenter
Tableau 7- 47 Instructions INC et DEC
CONT/LOG SCL Description

in_out := in_out + 1;
Incrmente une valeur entire signe ou non signe :
valeur IN_OUT +1 = valeur IN_OUT

in_out := in_out - 1;
Dcrmente une valeur entire signe ou non signe :
valeur IN_OUT - 1 = valeur IN_OUT
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 48 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN/OUT SInt, Int, DInt, USInt, UInt, UDInt Entre et sortie de l'opration mathmatique

Tableau 7- 49 Etat de ENO
ENO Description
1 Pas d'erreur
0 La valeur rsultante se situe hors de la plage de nombres valide du type de donnes slectionn.
Exemple pour SInt : INC (+127) donne comme rsultat +128 qui dpasse le maximum du type de
donnes.
7.5.6 Instruction Valeur absolue
Tableau 7- 50 Instruction ABS
CONT/LOG SCL Description

out := ABS(in);
Calcule la valeur absolue d'un nombre rel ou entier sign dans le paramtre
IN et mmorise le rsultat dans le paramtre OUT.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
206 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 51 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
IN SInt, Int, DInt, Real, LReal Entre de l'opration mathmatique
OUT SInt, Int, DInt, Real, LReal Sortie de l'opration mathmatique
1
Les paramtres IN et OUT doivent avoir le mme type de donnes.

Tableau 7- 52 Etat de ENO
ENO Description
1 Pas d'erreur
0 Le rsultat de l'opration mathmatique se situe hors de la plage de nombres valide du type de donnes
slectionn.
Exemple pour SInt : ABS (-128) donne comme rsultat +128 qui dpasse le maximum du type de
donnes.
7.5.7 Instructions Calculer le minimum et Calculer le maximum
Tableau 7- 53 Instructions MIN et MAX
CONT/LOG SCL Description

out:= MIN(
in1:=_variant_in_,
in2:=_variant_in_
[,...in32]);
L'instruction MIN compare la valeur de deux paramtres IN1 et
IN2 et affecte la valeur minimale (infrieure) au paramtre OUT.

out:= MAX(
in1:=_variant_in_,
in2:=_variant_in_
[,...in32]);
L'instruction MAX compare la valeur de deux paramtres IN1 et
IN2 et affecte la valeur maximale (suprieure) au paramtre
OUT.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 54 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
IN1, IN2
[...IN32]
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, constante Entres de l'opration mathmatique
(jusqu' 32 entres)
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Sortie de l'opration mathmatique
1
Les paramtres IN1, IN2 et OUT doivent avoir le mme type de donnes.

100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 207


Pour ajouter une entre , cliquez sur l'icne de cration ou cliquez avec le
bouton droit de la souris sur la ligne d'entre de l'un des paramtres IN existants
et slectionnez la commande "Insrer entre".
Pour supprimer une entre, cliquez avec le bouton droit de la souris sur la ligne d'entre de
l'un des paramtres IN existants (lorsqu'il y a plus d'entres que les deux entres d'origine)
et slectionnez la commande "Supprimer".
Tableau 7- 55 Etat de ENO
ENO Description
1 Pas d'erreur
0 Pour le type de donnes Real uniquement :
Une ou plusieurs entres ne sont pas des nombres rels (NaN).
La valeur OUT rsultante est +/- INF (l'infini).
7.5.8 Instruction Dfinir une limite
Tableau 7- 56 Instruction LIMIT
CONT/LOG SCL Description

LIMIT(MIN:=_variant_in_,
IN:=_variant_in_,
MAX:=_variant_in_,
OUT:=_variant_out_);
L'instruction Limit teste si la valeur du paramtre IN se situe
l'intrieur de la plage de valeurs indique par les paramtres MIN
et MAX and if not, clamps the value at MIN or MAX. et, si ce n'est
pas le cas, limite la valeur MIN ou MAX.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 57 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
MIN, INet MAX SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, constante Entres de l'opration
mathmatique
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Sortie de l'opration
mathmatique
1
Les paramtres MIN, IN, MAX et OUT doivent avoir le mme type de donnes.
Si la valeur du paramtre IN se situe l'intrieur de la plage indique, la valeur de IN est
mmorise dans le paramtre OUT. Si la valeur du paramtre IN se situe hors de la plage
indique, OUT prend la valeur du paramtre MIN (si la valeur de IN est infrieure la valeur
MIN) ou la valeur du paramtre MAX (si la valeur de IN est suprieure la valeur MAX).
100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
208 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 58 Etat de ENO
ENO Description
1 Pas d'erreur
0 Real : Si une ou plusieurs des valeurs de MIN, IN et MAX sont NaN (pas des nombres), NaN est renvoy.
0 Si MIN est suprieur MAX, la valeur IN est affecte OUT.
Exemples SCL :
MyVal := LIMIT(MIN:=10,IN:=53, MAX:=40); //Rsultat : MyVal = 40
MyVal := LIMIT(MIN:=10,IN:=37, MAX:=40); //Rsultat : MyVal = 37
MyVal := LIMIT(MIN:=10,IN:=8, MAX:=40); //Rsultat : MyVal = 10
7.5.9 Instructions mathmatiques virgule flottante
Vous utilisez les instructions virgule flottante pour programmer des oprations
mathmatiques avec le type de donnes Real ou LReal :
SQR : Carr (IN
2
= OUT)
SQRT : Racine carre (IN = OUT)
LN : Logarithme nprien (LN(IN) = OUT)
EXP : Fonction exponentielle (e
IN
= OUT), avec base e = 2,71828182845904523536
EXPT : Elever la puissance (IN1
IN2
= OUT)
Les paramtres IN1 et OUT de EXPT ont toujours le mme type de donnes, savoir
Real ou LReal. Vous pouvez slectionner le type de donnes pour l'exposant IN2 parmi
de nombreux types de donnes.
FRAC : Calculer le nombre de dcimales (partie fractionnaire du nombre virgule
flottante IN = OUT)
SIN : Sinus (sin(IN radians) = OUT)
ASIN : Arc sinus (arcsine(IN) = OUT radians), avec sin(OUT radians) = IN
COS : Cosinus (cos(IN radians) = OUT)
ACOS : Arc cosinus (arccos(IN) = OUT radians), avec cos(OUT radians) = IN
TAN : Tangente (tan(IN radians) = OUT)
ATAN : Arc tangente (arctan(IN) = OUT radians), avec tan(OUT radians) = IN
100BInstructions de base
7.5 Fonctions mathmatiques
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 209
Tableau 7- 59 Exemples d'instructions mathmatiques virgule flottante
CONT/LOG SCL Description

out := SQR(in);
ou
out := in * in;
Carr : IN
2
= OUT
Par exemple : Si IN est gal 9, alors OUT est gal 81.

out := EXPT(in1, in2);
ou
out := in1 ** in2;
Elever la puissance : IN1
IN2
= OUT
Par exemple : Si IN1 est gal 3 et IN2 est gal 2, alors OUT
est gal 9.
1
Pour CONT et LOG : Cliquez sur "???" (prs du nom de l'instruction) et slectionnez un type de donnes dans le menu
droulant.
2
Pour SCL : Vous pouvez aussi utiliser les oprateurs mathmatiques SCL de base pour crer les expressions
mathmatiques

Tableau 7- 60 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN, IN1 Real, LReal, constante Entres
IN2 SInt, Int, DInt, USInt, UInt,UDInt, Real, LReal, constante Entre exposant EXPT
OUT Real, LReal Sorties

Tableau 7- 61 Etat de ENO
ENO Instruction Situation d'erreur Rsultat (OUT)
1 Toutes Pas d'erreur Rsultat valide
Le rsultat dpasse la plage Real/LReal valide. +INF SQR
IN est +/- NaN (pas un nombre) +NaN
IN est ngatif. -NaN SQRT
IN est +/- INF (l'infini) ou +/- NaN. +/- INF ou +/- NaN
IN est 0.0, ngatif, -INF ou -NaN. -NaN LN
IN est +INF ou +NaN. +INF ou +NaN
Le rsultat dpasse la plage Real/LReal valide. +INF EXP
IN est +/- NaN. +/- NaN
SIN, COS, TAN IN est +/- INF ou +/- NaN. +/- INF ou +/- NaN
IN se situe en dehors de la plage valide de -1.0
+1.0.
+NaN ASIN, ACOS
IN est +/- NaN. +/- NaN
ATAN IN est +/- NaN. +/- NaN
FRAC IN est +/- INF ou +/- NaN. +NaN
0
EXPT IN1 est +INF et IN2 n'est pas -INF. +INF
100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
210 Manuel systme, 11/2011, A5E02486682-05
ENO Instruction Situation d'erreur Rsultat (OUT)
IN1 est ngatif ou -INF. +NaN si IN2 est Real/LReal,
-INF sinon
IN1 ou IN2 est +/- NaN. +NaN
IN1 est 0.0 et IN2 est Real/LReal (seulement). +NaN
7.6 Transfert
7.6.1 Instructions Copier valeur et Copier zone
Utilisez les instructions de transfert pour copier des lments de donnes une nouvelle
adresse mmoire et les convertir en un autre type de donnes. Les donnes source ne sont
pas modifies par le processus de transfert.
L'instruction MOVE copie un lment de donnes unique de l'adresse source indique
par le paramtre IN dans l'adresse de destination indique par le paramtre OUT.
Les instructions MOVE_BLK et UMOVE_BLK disposent d'un paramtre COUNT
supplmentaire. COUNT prcise combien d'lments de donnes doivent tre copis. Le
nombre d'octets par lment copi dpend du type de donnes affect aux noms de
variable des paramtres IN et OUT dans la table des variables API.
Tableau 7- 62 Instructions MOVE, MOVE_BLK et UMOVE_BLK
CONT/LOG SCL Description

out1 := in;
Copie un lment de donnes stock l'adresse indique dans une
ou plusieurs nouvelles adresses.
1


out := MOVE_BLK(
in:=_variant_in,
count:=_uint_in,
out=>_variant_out);
Copie de zone interruptible qui copie une zone d'lments de donnes
une nouvelle adresse.

out := UMOVE_BLK(
in:=_variant_in,
count:=_uint_in,
out=>_variant_out);
Copie de zone contigu qui copie une zone d'lments de donnes
une nouvelle adresse.
1
Instruction MOVE : Pour ajouter une autre sortie en CONT ou LOG, cliquez sur l'icne de cration ct du paramtre
de sortie. Pour SCL, utilisez des instructions d'affectation multiple. Vous pouvez galement utiliser l'une des structures
de boucle.

100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 211
Tableau 7- 63 Types de donnes pour l'instruction MOVE
Paramtre Type de donnes Description
IN SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word,
DWord, Char, Array, Struct, DTL, Time
Adresse de source
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word,
DWord, Char, Array, Struct, DTL, Time
Adresse de destination



Pour ajouter des sorties MOVE, cliquez sur l'icne de cration ou cliquez avec le
bouton droit de la souris sur la ligne de sortie de l'un des paramtres OUT
existants et slectionnez la commande "Insrer sortie".
Pour supprimer une sortie, cliquez avec le bouton droit de la souris sur la ligne de sortie de
l'un des paramtres OUT existants (lorsqu'il y a plus de sorties que les deux sorties
d'origine) et slectionnez la commande "Supprimer".
Tableau 7- 64 Types de donnes pour les instructions MOVE_BLK et UMOVE_BLK
Paramtre Type de donnes Description
IN SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Byte,
Word, DWord
Adresse de dbut de la source
COUNT UInt Nombre d'lments de donnes copier
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte,
Word, DWord
Adresse de dbut de la destination


Remarque
Rgles pour les oprations de copie de donnes
Pour copier le type de donnes Bool, utilisez SET_BF, RESET_BF, R, S ou la bobine de
sortie (CONT) (Page 178).
Pour copier un seul type de donnes simple, utilisez MOVE.
Pour copier un tableau de type de donnes simple, utilisez MOVE_BLK ou UMOVE_BLK.
Pour copier une structure, utilisez MOVE.
Pour copier une chane, utilisez S_MOVE (Page 261).
Pour copier un seul caractre dans une chane, utilisez MOVE.
Vous ne pouvez pas utiliser les instructions MOVE_BLK et UMOVE_BLK pour copier des
tableaux ou des structures dans les zones de mmoire I, Q ou M.

100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
212 Manuel systme, 11/2011, A5E02486682-05
Les instructions MOVE_BLK et UMOVE_BLK diffrent dans la faon dont les alarmes sont
traites :
Les vnements d'alarme sont mis en file d'attente et traits pendant l'excution de
MOVE_BLK. Utilisez l'instruction MOVE_BLK lorsque les donnes l'adresse de
destination de la copie ne sont pas utilises dans un sous-programme d'OB d'alarme ou
lorsque les donnes de destination n'ont pas besoin d'tre cohrentes si elles sont
utilises. Si le fonctionnement de MOVE_BLK est interrompu, le dernier lment de
donnes copi est complet et cohrent l'adresse de destination. Le fonctionnement de
MOVE_BLK reprend une fois l'OB d'alarme excut.
Les vnements d'alarme sont mis en file d'attente mais ne sont pas traits tant que
l'excution de UMOVE_BLK n'est pas acheve. Utilisez l'instruction UMOVE_BLK lorsque
l'opration de copie doit tre acheve et que les donnes de destination doivent tre
cohrentes avant l'excution d'un sous-programme d'OB d'alarme. Pour plus
d'informations, reportez-vous au paragraphe sur la cohrence des donnes (Page 153).
ENO est toujours vrai aprs l'excution de l'instruction MOVE.
Tableau 7- 65 Etat de ENO
ENO Situation d'erreur Rsultat
1 Pas d'erreur Tous les COUNT lments ont t
copis avec succs.
0 La plage source (IN) ou la plage de destination
(OUT) dpasse la zone de mmoire disponible.
Les lments qui entrent sont copis.
Il n'y a pas copie d'lments partiels.
7.6.2 Instructions FieldRead et FieldWrite

Remarque
STEP 7 V10.5 n'acceptait pas de variable comme indice de tableau, ni les tableaux
multidimensionnels. Les instructions FieldRead et FieldWrite rendaient possible l'utilisation
d'un indice variable pour les tableaux une dimension. STEP 7 V11 prend en charge les
variables comme indices de tableau et les tableaux multidimensionnels. Les instructions
FieldRead et FieldWrite sont incluses dans STEP 7 V11 pour assurer la compatibilit amont
avec les programmes qui utilisaient ces instructions.


100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 213
Tableau 7- 66 Instructions FieldRead et FieldWrite
CONT/LOG SCL Description

value :=
member[index];
L'instruction FieldRead lit l'lment de valeur d'indice INDEX dans le
tableau dont le premier lment est indiqu par le paramtre MEMBER.
La valeur de l'lment de tableau est transfre l'adresse indique
par le paramtre VALUE.

member[index]
:= value;
L'instruction FieldWrite transfre la valeur l'adresse indique par le
paramtre VALUE dans le tableau dont le premier lment est indiqu
par le paramtre MEMBER. La valeur est transfre dans l'lment de
tableau dont l'indice est indiqu par le paramtre INDEX.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 67 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
Index Entre DInt Numro d'indice de l'lment de tableau lire
ou dans lequel crire
Member
1
Entre Types d'lment de tableau :
Bool, Byte, Word, DWord, Char, SInt, Int,
Dint, USInt, UInt, UDInt, Real, LReal
Emplacement du premier lment dans un
tableau une dimension dfini dans un bloc
de donnes global ou une interface de bloc.
Par exemple : Si l'indice du tableau est donn
sous la forme [-2..4], l'indice du premier
lment est -2 et non 0.
Value
1
Sortie Bool, Byte, Word, DWord, Char, SInt, Int,
Dint, USInt, UInt, UDInt, Real, LReal
Pour FieldRead, emplacement dans lequel
l'lment de tableau indiqu est copi.
Pour FieldWrite, emplacement de la valeur
qui est copie dans l'lment de tableau
indiqu.
1
Le type de donnes de l'lment de tableau indiqu par le paramtre MEMBER et celui du paramtre VALUE doivent
tre identiques.
La sortie de validation ENO est gale 0 si l'une des conditions suivantes est vraie :
L'entre EN a l'tat de signal "0".
L'lment de tableau indiqu par le paramtre INDEX n'est pas dfini dans le tableau
dsign par le paramtre MEMBER.
Des erreurs, telles qu'un dbordement, se sont produites pendant le traitement.
100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
214 Manuel systme, 11/2011, A5E02486682-05
Accs des donnes par indexation de tableau
Pour accder aux lments d'un tableau au moyen d'une variable, il suffit d'utiliser la
variable comme indice de tableau dans la logique du programme. Le rseau ci-dessous, par
exemple, dfinit une sortie en fonction de la valeur boolenne, dsigne par la variable API
"Index", d'un tableau de boolens dans "Data_block_1".

La logique avec l'indice de tableau variable est quivalente l'ancienne mthode utilisant
l'instruction FieldRead :

Les instructions FieldWrite et FieldRead peuvent tre remplaces par la logique d'indexation
de tableau par une variable.
SCL ne dispose pas d'instructions FieldRead ou FieldWrite, mais prend en charge
l'adressage indirect d'un tableau avec une variable :
#Tag_1 := "Data_block_1".Bool_Array[#Index];
7.6.3 Instructions Complter
Tableau 7- 68 Instructions FILL_BLK et UFILL_BLK
CONT/LOG SCL Description

out := FILL_BLK(
in:=_variant_in,
count:=int,
out=>_variant_out);
L'instruction Complter zone remplit une zone d'adresses avec des
copies d'un lment de donnes indiqu.

out := UFILL_BLK(
in:=_variant_in,
count:=int
out=>_variant_out);
L'instruction Complter zone contigu remplit une zone d'adresses avec
des copies d'un lment de donnes indiqu.

100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 215
Tableau 7- 69 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN SInt, Int, DIntT, USInt, UInt, UDInt, Real, LReal, Byte, Word,
DWord
Adresse source des donnes
COUNT USInt, UInt Nombre d'lments de donnes copier
OUT SInt, Int, DIntT, USInt, UInt, UDInt, Real, LReal, Byte, Word,
DWord
Adresse de destination des donnes


Remarque
Rgles pour les oprations de remplissage de zone
Pour complter avec le type de donnes BOOL, utilisez SET_BF, RESET_BF, R, S ou la
bobine de sortie (CONT).
Pour complter avec un seul type de donnes simple, utilisez MOVE.
Pour complter un tableau avec un type de donnes simple, utilisez FILL_BLK ou
UFILL_BLK.
Pour complter un seul caractre dans une chane, utilisez MOVE.
Vous ne pouvez pas utiliser les instructions FILL_BLK et UFILL_BLK pour complter des
tableaux dans les zones de mmoire I, Q ou M.

Les instructions FILL_BLK et UFILL_BLK copient l'lment de donnes source IN dans la
destination dont l'adresse initiale est indique par le paramtre OUT. Le processus de copie
est rpt de manire complter un bloc d'adresses adjacentes jusqu' ce que le nombre
de copies soit gal au paramtre COUNT.
Les instructions FILL_BLK et UFILL_BLK diffrent dans la faon dont les alarmes sont
traites :
Les vnements d'alarme sont mis en file d'attente et traits pendant l'excution de
FILL_BLK. Utilisez l'instruction FILL_BLK lorsque les donnes l'adresse de destination
de la copie ne sont pas utilises dans un sous-programme d'OB d'alarme ou lorsque les
donnes de destination n'ont pas besoin d'tre cohrentes si elles sont utilises.
Les vnements d'alarme sont mis en file d'attente mais ne sont pas traits tant que
l'excution de UFILL_BLK n'est pas acheve. Utilisez l'instruction UFILL_BLK lorsque
l'opration de copie doit tre acheve et que les donnes de destination doivent tre
cohrentes avant l'excution d'un sous-programme d'OB d'alarme.
Tableau 7- 70 Etat de ENO
ENO Situation d'erreur Rsultat
1 Pas d'erreur L'lment IN a t copi avec succs dans
les COUNT destinations.
0 La plage de destination (OUT) dpasse
la zone de mmoire disponible.
Les lments qui entrent sont copis. Il n'y
a pas copie d'lments partiels.
100BInstructions de base
7.6 Transfert
Automate programmable S7-1200
216 Manuel systme, 11/2011, A5E02486682-05
7.6.4 Instruction Permutation
Tableau 7- 71 Instruction SWAP
CONT/LOG SCL Description

out := SWAP(in);
Inverse l'ordre des octets dans des lments de donnes deux et quatre
octets. L'ordre des bits l'intrieur de chaque octet n'est pas modifi. ENO est
toujours VRAI aprs l'excution de l'instruction SWAP.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 72 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Word, DWord Octets de donnes dans l'ordre
OUT Word, DWord Octets de donnes dans l'ordre inverse


Exemple 1 Paramtre IN = MB0
(avant excution)
Paramtre OUT = MB4
(aprs excution)
Adresse MB0 MB1 MB4 MB5
W#16#1234
WORD
12
OPFo
34
OPFa

34
OPFo
12
OPFa



Exemple 2 Paramtre IN = MB0
(avant excution)
Paramtre OUT = MB4
(aprs excution)
Adresse MB0 MB1 MB2 MB3 MB4 MB5 MB6 MB7
DW#16#
12345678
DWORD
12

OPFo
34 56 78

OPFa
78

OPFo
56 34 12

OPFa
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 217
7.7 Convertir
7.7.1 Instruction CONV
Tableau 7- 73 Instruction Convertir (CONV)
CONT/LOG SCL Description

out := <data type in>_TO_<data type out>(in);
Convertit un lment de donnes
d'un type de donnes dans un autre
type de donnes.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez les types de donnes dans le menu droulant.
2
Pour SCL : Construisez l'instruction de conversion en identifiant le type de donnes pour le paramtre d'entre et le
paramtre de sortie. Par exemple, DWORD_TO_REAL convertit une valeur double mot en une valeur relle.

Tableau 7- 74 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Chane de bits
1
, SInt, USInt, Int, UInt, DInt, UDInt, Real,
LReal, BCD16, BCD32
Valeur d'entre
OUT Chane de bits
1
, SInt, USInt, Int, UInt, DInt, UDInt, Real,
LReal, BCD16, BCE32
Valeur d'entre convertie au nouveau
type de donnes
1
L'instruction ne vous permet pas de slectionner des chanes de bits (octet, mot, double mot). Pour entrer un oprande
de type Byte, Word ou DWord comme paramtre de l'instruction, slectionnez un entier non sign ayant la mme
longueur en bits. Slectionnez, par exemple, USInt pour un octet, UInt pour un mot ou UDInt pour un double mot.
Une fois que vous avez slectionn le type de donnes (convertir de), une liste des
conversions possibles s'affiche dans la liste droulante (convertir en). Les conversions de et
en BCD16 sont limites au type de donnes Int. Les conversions de et en BCD32 sont
limites au type de donnes DInt.
Tableau 7- 75 Etat de ENO
ENO Description Rsultat OUT
1 Pas d'erreur Rsultat valide
0 IN est +/- INF ou +/- NaN. +/- INF ou +/- NaN
0 Le rsultat dpasse la plage valide pour le type de
donnes OUT.
OUT prend la valeur des octets de poids faible de
IN
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
218 Manuel systme, 11/2011, A5E02486682-05
7.7.2 Instructions de conversion pour SCL
Instructions de conversion pour SCL
Tableau 7- 76 Conversion partir de Byte, Word ou DWord
Type de
donnes
Instruction Rsultat
BYTE_TO_WORD, BYTE_TO_DWORD
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
BYTE_TO_SINT, BYTE_TO_USINT
La valeur est transfre dans le type de donnes cible.
Byte
BYTE_TO_INT, BYTE_TO_UINT,
BYTE_TO_DINT, BYTE_TO_UDINT
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
WORD_TO_BYTE
L'octet de poids faible de la valeur source est transfr
dans le type de donnes cible.
WORD _TO_DWORD
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
WORD _TO_SINT, WORD _TO_USINT
L'octet de poids faible de la valeur source est transfr
dans le type de donnes cible.
WORD _TO_INT, WORD _TO_UINT
La valeur est transfre dans le type de donnes cible.
Word
WORD _TO_DINT, WORD _TO_UDINT
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
DWORD_TO_BYTE, DWORD_TO_WORD,
DWORD_TO_SINT, DWORD_TO_USINT,
DWORD_TO_INT, DWORD_TO_UINT
L'octet de poids faible de la valeur source est transfr
dans le type de donnes cible.
DWord
DWORD_TO_DINT, DWORD_TO_UDINT,
DWORD_TO_REAL
La valeur est transfre dans le type de donnes cible.

Tableau 7- 77 Conversion partir d'un entier court (SInt ou USInt)
Type de
donnes
Instruction Rsultat
SINT_TO_BYTE
La valeur est transfre dans le type de donnes cible.
SINT_TO_WORD, SINT_TO_DWORD,
SINT_TO_INT, SINT_TO_DINT
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
SInt
SINT_TO_USINT, SINT_TO_UINT,
SINT_TO_UDINT, SINT_TO_REAL,
SINT_TO_LREAL, SINT_TO_CHAR,
SINT_TO_STRING
La valeur est convertie.
USINT_TO_BYTE
La valeur est transfre dans le type de donnes cible.
USINT_TO_WORD, USINT_TO_DWORD,
USINT_TO_INT, USINT_TO_UINT,
USINT_TO_DINT, USINT_TO_UDINT
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
USInt
USINT_TO_SINT, USINT_TO_REAL,
USINT_TO_LREAL, USINT_TO_CHAR,
USINT_TO_STRING
La valeur est convertie.

100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 219
Tableau 7- 78 Conversion partir d'un entier (Int ou UInt)
Type de
donnes
Instruction Rsultat
INT_TO_BYTE, INT_TO_DWORD,
INT_TO_SINT, INT_TO_USINT,
INT_TO_UINT, INT_TO_UDINT,
INT_TO_REAL, INT_TO_LREAL,
INT_TO_CHAR, INT_TO_STRING
La valeur est convertie.
INT_TO_WORD
La valeur est transfre dans le type de donnes cible.
Int
INT_TO_DINT
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.
UINT_TO_BYTE, UINT_TO_SINT,
UINT_TO_USINT, UINT_TO_INT,
UINT_TO_REAL, UINT_TO_LREAL,
UINT_TO_CHAR, UINT_TO_STRING
La valeur est convertie.
UINT_TO_WORD, UINT_TO_DATE
La valeur est transfre dans le type de donnes cible.
UInt
UINT_TO_DWORD, UINT_TO_DINT,
UINT_TO_UDINT
La valeur est transfre dans l'octet de poids faible du
type de donnes cible.

Tableau 7- 79 Conversion partir d'un entier double (Dint ou UDInt)
Type de
donnes
Instruction Rsultat
DINT_TO_BYTE, DINT_TO_WORD, DINT_TO_SINT,
DINT_TO_USINT, DINT_TO_INT, DINT_TO_UINT,
DINT_TO_UDINT, DINT_TO_REAL, DINT_TO_LREAL,
DINT_TO_CHAR, DINT_TO_STRING
La valeur est convertie. DInt
DINT_TO_DWORD, DINT_TO_TIME
La valeur est transfre dans le type
de donnes cible.
UDINT_TO_BYTE, UDINT_TO_WORD, UDINT_TO_SINT,
UDINT_TO_USINT, UDINT_TO_INT, UDINT_TO_UINT,
UDINT_TO_DINT, UDINT_TO_REAL, UDINT_TO_LREAL,
UDINT_TO_CHAR, UDINT_TO_STRING
La valeur est convertie. UDInt
UDINT_TO_DWORD, UDINT_TO_TOD
La valeur est transfre dans le type
de donnes cible.

Tableau 7- 80 Conversion partir d'un rel (Real ou LReal)
Type de
donnes
Instruction Rsultat
REAL_TO_DWORD, REAL_TO_LREAL
La valeur est transfre dans le type
de donnes cible.
Real
REAL_TO_SINT, REAL_TO_USINT, REAL_TO_INT,
REAL_TO_UINT, REAL_TO_DINT, REAL_TO_UDINT,
REAL_TO_TOD, REAL_TO_STRING
La valeur est convertie.
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
220 Manuel systme, 11/2011, A5E02486682-05
Type de
donnes
Instruction Rsultat
LReal
LREAL_TO_SINT, LREAL_TO_USINT, LREAL_TO_INT,
LREAL_TO_UINT, LREAL_TO_DINT, LREAL_TO_UDINT,
LREAL_TO_REAL, REAL_TO_STRING
La valeur est convertie.

Tableau 7- 81 Conversion partir de Time, DTL, TOD ou Date
Type de
donnes
Instruction Rsultat
Time
TIME_TO_DINT
La valeur est transfre dans le type de donnes cible.
DTL
DTL_TO_DATE, DTL_TO_TOD
La valeur est convertie.
TOD
TOD_TO_UDINT
La valeur est convertie.
Date
DATE_TO_UINT
La valeur est convertie.

Tableau 7- 82 Conversion partir de Char ou String
Type de
donnes
Instruction Rsultat
CHAR_TO_SINT, CHAR_TO_USINT,
CHAR_TO_INT, CHAR_TO_UINT,
CHAR_TO_DINT, CHAR_TO_UDINT
La valeur est convertie. Char
CHAR_TO_STRING
La valeur est transfre dans le premier
caractre de la chane.
STRING_TO_SINT, STRING_TO_USINT,
STRING_TO_INT, STRING_TO_UINT,
STRING_TO_DINT, STRING_TO_UDINT,
STRING_TO_REAL, STRING_TO_LREAL
La valeur est convertie. String
STRING_TO_CHAR
Le premier caractre de la chane est copi
dans Char.
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 221
7.7.3 Instructions Arrondir et Former un nombre entier
Tableau 7- 83 Instructions ROUND et TRUNC
CONT/LOG SCL Description

out := ROUND (in);
Convertit un nombre rel en entier. La partie fractionnaire du nombre rel
est arrondie la valeur entire la plus proche (IEEE, arrondir au plus
proche). Si le nombre se situe exactement mi-chemin entre deux entiers
(par exemple 10,5), le nombre est arrondi l'entier pair. Par exemple :
ROUND (10.5) = 10
ROUND (11.5) = 12

out := TRUNC(in);
TRUNC convertit un nombre rel en entier. La partie fractionnaire du
nombre rel est tronque zro (IEEE, arrondir zro).
1
Pour CONT et LOG : Cliquez sur "???" (prs du nom de l'instruction) et slectionnez un type de donnes dans le menu
droulant.

Tableau 7- 84 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Real, LReal Entre en virgule flottante
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Sortie arrondie ou tronque

Tableau 7- 85 Etat de ENO
ENO Description Rsultat OUT
1 Pas d'erreur Rsultat valide
0 IN est +/- INF ou +/- NaN. +/- INF ou +/- NaN
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
222 Manuel systme, 11/2011, A5E02486682-05
7.7.4 Instructions Arrondir l'entier suprieur et Arrondir l'entier infrieur
Tableau 7- 86 Instructions CEIL et FLOOR
CONT/LOG SCL Description

out := CEIL(in);
Convertit un nombre rel (Real ou LReal) au nombre entier le
plus proche suprieur ou gal au nombre rel slectionn
("arrondir +infini" IEEE).

out := FLOOR(in);
Convertit un nombre rel (Real ou LReal) au nombre entier le
plus proche infrieur ou gal au nombre rel slectionn
("arrondir -infini" IEEE).
1
Pour CONT et LOG : Cliquez sur "???" (prs du nom de l'instruction) et slectionnez un type de donnes dans le menu
droulant.

Tableau 7- 87 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Real, LReal Entre en virgule flottante
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Sortie convertie

Tableau 7- 88 Etat de ENO
ENO Description Rsultat OUT
1 Pas d'erreur Rsultat valide
0 IN est +/- INF ou +/- NaN. +/- INF ou +/- NaN
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 223
7.7.5 Instructions Mise l'chelle et Normaliser
Tableau 7- 89 Instructions SCALE_X et NORM_X
CONT/LOG SCL Description

out :=SCALE_X(min:=_in_,
value:=_in_,
max:=_in_);
ou
out := value (max - min) + min;
Met l'chelle le paramtre rel normalis
VALUE, avec 0.0 <= VALUE <= 1.0, dans le type
de donnes et la plage de valeurs indiqus par
les paramtres MIN et MAX :
OUT = VALUE (MAX - MIN) + MIN

out :=NORM_X(min:=_in_,
value:=_in_,
max:=_in_);
ou
out := (value - min) / (max - min);
Normalise le paramtre VALUE l'intrieur de la
plage de valeurs indique par les paramtres
MIN et MAX :
OUT = (VALUE - MIN) / (MAX - MIN),
avec 0.0 <= OUT <= 1.0
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 90 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
MIN SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Valeur d'entre pour le minimum de la
plage
VALUE SCALE_X: Real, LReal
NORM_X: SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal
Valeur d'entre mettre l'chelle ou
normaliser
MAX SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Valeur d'entre pour le maximum de la
plage
OUT SCALE_X: SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal
NORM_X: Real, LReal
Valeur de sortie mise l'chelle ou
normalise
1
Pour SCALE_X: Les paramtres MIN, MAXet OUTdoivent avoir le mme type de donnes.
Pour NORM_X: Les paramtres MIN, VALUEet MAXdoivent avoir le mme type de donnes.

100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
224 Manuel systme, 11/2011, A5E02486682-05

Remarque
Le paramtre VALUE de SCALE_X doit tre limit 0.0 <= VALUE <= 1.0
Si le paramtre VALUE est infrieur 0.0 ou suprieur 1.0 :
La mise l'chelle linaire peut produire des valeurs OUT qui sont infrieures la valeur
du paramtre MIN ou suprieures la valeur du paramtre MAX pour des valeurs OUT
qui se situent dans la plage de valeurs du type de donnes OUT. Dans ces cas,
l'excution de SCALE_X met ENO VRAI.
Il est possible de gnrer des nombres mis l'chelle qui ne sont pas dans la plage du
type de donnes OUT. Dans ces cas, la valeur du paramtre OUT est dfinie une
valeur intermdiaire gale la partie la moins significative du nombre rel mis l'chelle
avant la conversion finale au type de donnes OUT. Dans ce cas, l'excution de
SCALE_X met ENO FAUX.
Le paramtre VALUE de NORM_X doit tre limit MIN <= VALUE <= MAX
Si le paramtre VALUE est infrieur MIN ou suprieur MAX, la mise l'chelle linaire
peut produire des valeurs OUT normalises qui sont infrieures 0.0 ou suprieures 1.0.
Dans ce cas, l'excution de NORM_X met ENO VRAI.


Tableau 7- 91 Etat de ENO
ENO Situation d'erreur Rsultat OUT
1 Pas d'erreur Rsultat valide
0 Le rsultat dpasse la plage valide pour le type
de donnes OUT.
Rsultat intermdiaire : partie la moins significative d'un
nombre rel avant la conversion finale au type de donnes
OUT.
0 Paramtre MAX <= MIN SCALE_X : La partie la moins significative du nombre rel
VALUE complte la taille de OUT.
NORM_X : VALUE dans le type de donnes VALUE tendu
pour remplir une taille de double mot.
0 Paramtre VALUE = +/- INF ou +/- NaN VALUE est crit dans OUT
Exemple (CONT) : Normalisation et mise l'chelle d'une valeur d'entre analogique
Une entre analogique d'un module d'entres-sorties ou Signal Board analogique avec
entre en courant se situe dans la plage 0 27648 des valeurs valides. Supposons qu'une
entre analogique reprsente une temprature, avec la valeur 0 de l'entre analogique
correspondant -30.0 C et la valeur 27648 correspondant 70.0 C.
100BInstructions de base
7.7 Convertir
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 225
Pour transformer la valeur analogique en units physiques correspondantes, normalisez
l'entre une valeur comprise entre 0.0 et 1.0, puis mettez-la l'chelle entre -30.0 et 70.0.
La valeur rsultante est la temprature reprsente par l'entre analogique en degrs
Celsius :

Notez que si l'entre analogique tait celle d'un module d'entres-sorties ou Signal Board
analogique en tension, la valeur MIN pour l'instruction NORM_X serait -27648 et non 0.
Exemple (CONT) : Normalisation et mise l'chelle d'une valeur de sortie analogique
Une sortie analogique dfinir dans un module d'entres-sorties ou Signal Board
analogique avec sortie en courant doit se situer dans la plage 0 27648 des valeurs valides.
Supposons qu'une sortie analogique reprsente un rglage de temprature, avec la valeur 0
de la sortie analogique correspondant -30.0 C et la valeur 27648 correspondant 70.0
C. Pour convertir une valeur de temprature comprise entre -30.0 et 70.0 en mmoire une
valeur pour la sortie analogique qui se situe dans la plage 0 27648, vous devez normaliser
la valeur en units physiques une valeur comprise entre 0.0 et 1.0, puis la mettre
l'chelle la plage de la sortie analogique, c'est--dire 0 27648 :

Notez que si la sortie analogique tait destine un module d'entres-sorties ou Signal
Board analogique en tension, la valeur MIN pour l'instruction SCALE_X serait -27648 et non
0.
Vous trouverez des informations supplmentaires sur les reprsentations des entres
analogiques (Page 757) et des sorties analogiques (Page 757) en tension et en courant
dans les Caractristiques techniques.
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
226 Manuel systme, 11/2011, A5E02486682-05
7.8 Gestion du programme
7.8.1 Prsentation des instructions de contrle SCL
Le langage SCL (Structured Control Language) fournit trois types d'instructions de contrle
pour structurer votre programme utilisateur :
Instructions de slection : Une instruction de slection vous permet d'aiguiller le
droulement du programme vers diffrentes squences d'instructions.
Boucles : Vous pouvez programmer l'excution de boucles l'aide d'instructions
d'itration. Une instruction d'itration prcise quelles parties d'un programme doivent tre
rptes en fonction de certaines conditions.
Sauts dans le programme : Un saut dans le programme provoque le saut immdiat un
repre de saut indiqu et donc une autre instruction dans le mme bloc.
Ces instructions de contrle du programme utilisent la syntaxe du langage de
programmation PASCAL.
Tableau 7- 92 Types d'instructions de contrle SCL
Instruction de contrle Description
Instruction IF-THEN
(Page 227)
Permet d'aiguiller le droulement du programme vers une branche
d'une alternative selon qu'une condition est vraie ou fausse.
Instruction de
slection
Instruction CASE
(Page 228)
Permet l'excution slective d'une variante parmi n variantes en
fonction de la valeur d'une variable.
Instruction FOR
(Page 229)
Rpte une squence d'instructions tant que la variable de contrle
reste dans la plage de valeurs indique.
Instruction WHILE-DO
(Page 230)
Rpte une squence d'instructions tant qu'une condition d'excution
est satisfaite.
Boucle
Instruction REPEAT-
UNTIL (Page 231)
Rpte une squence d'instructions jusqu' ce qu'une condition
d'achvement apparaisse.
Instruction CONTINUE
(Page 232)
Sert abandonner l'excution de l'itration en cours de la boucle.
Instruction EXIT
(Page 233)
Sert quitter une boucle en n'importe quel point, que la condition
d'abandon soit remplie ou non.
Instruction GOTO
(Page 233)
Provoque le saut immdiat du programme un repre indiqu.
Saut dans le
programme
Instruction IF-THEN
(Page 227)
Permet de quitter le bloc en cours d'excution et de retourner au bloc
appelant.
Voir aussi
Instruction RETURN (Page 234)
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 227
7.8.2 Instruction IF-THEN
Une instruction IF-THEN est une instruction conditionnelle qui contrle le droulement du
programme en excutant un groupe d'instructions en fonction de l'valuation de la valeur
Bool d'une expression logique. Vous pouvez utiliser des crochets pour imbriquer ou
structurer l'excution de plusieurs instructions IF-THEN.
Tableau 7- 93 Elments de l'instruction IF-THEN
SCL Description
IF "condition" THEN
instruction_A;
instruction_B;
instruction_C;
;
Si "condition" est VRAI ou 1, le programme excute les instructions
suivantes jusqu' ce qu'il rencontre l'instruction END_IF.
Si "condition" est FAUX ou 0, le programme va l'instruction END_IF (
moins qu'il ne contienne des instructions ELSIF ou ELSE optionnelles).
[ELSIF "condition-n" THEN
instruction_N;
;]
L'instruction ELSIF
1
optionnelle fournit des conditions additionnelles
valuer. Par exemple, si "condition" dans l'instruction IF-THEN est FAUX, le
programme value "condition-n". Si "condition-n" est VRAI, le programme
excute "instruction_N".
[ELSE
instruction_X;
;]
L'instruction ELSE optionnelle fournit des instructions excuter lorsque
"condition" dans l'instruction IF-THEN est FAUX.
END_IF;
L'instruction END_IF met fin l'instruction IF-THEN.
1
Vous pouvez inclure plusieurs instructions ELSIF l'intrieur d'une instruction IF-THEN.

Tableau 7- 94 Variables pour l'instruction IF-THEN
Variables Description
"condition" Obligatoire. L'expression logique est soit vraie (TRUE ou 1), soit fausse (FALSE ou 0).
"instruction_A" Facultatif. Une ou plusieurs instructions excuter lorsque "condition" est VRAI.
"condition-n" Facultatif. Expression logique que l'instruction optionnelle ELSIF doit valuer.
"instruction_N" Facultatif. Une ou plusieurs instructions excuter lorsque "condition-n" de l'instruction ELSIF
est VRAI.
"instruction_X" Facultatif. Une ou plusieurs instructions excuter lorsque "condition" de l'instruction IF-THEN
est FAUX.
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
228 Manuel systme, 11/2011, A5E02486682-05
L'excution d'une instruction IF est rgie par les rgles suivantes :
La premire squence d'instructions dont l'expression logique est vraie (TRUE) est
excute. Les squences d'instructions restantes ne sont pas excutes.
Si aucune expression boolenne n'est vraie, c'est la squence d'instructions introduite
par ELSE qui est excute (ou aucune squence d'instructions s'il n'y a pas de branche
ELSE).
Le nombre d'instructions ELSIF possibles est illimit.


Remarque
L'avantage d'utiliser une ou plusieurs branches ELSIF plutt qu'une suite d'instructions IF
rside dans le fait que les expressions logiques qui suivent une expression value
comme vraie ne sont plus values. Cela permet de rduire la dure d'excution du
programme.
7.8.3 Instruction CASE
Tableau 7- 95 Elments de l'instruction CASE
SCL Description
CASE "Valeur_test" OF
"ListeValeurs": Instruction[; Instruction, ...]
"ListeValeurs": Instruction[; Instruction, ...]
[ELSE
Instruction-Else[; Instruction-Else, ...]]
END_CASE;
L'instruction CASE excute un groupe
d'instructions parmi plusieurs groupes en
fonction de la valeur d'une expression.

Tableau 7- 96 Paramtres
Paramtre Description
"Valeur_test" Obligatoire. Toute expression numrique de type de donnes Int
"ListeValeurs" Obligatoire. Valeur unique ou liste de valeurs ou de plages de valeurs spares par des
virgules (utilisez deux points pour dfinir une plage de valeurs : 2..8). L'exemple suivant
illustre les diffrents types de listes de valeurs :
1: Instruction_A;
2, 4: Instruction_B;
3, 5..7,9: Instruction_C;
Instruction Obligatoire. Une ou plusieurs instructions qui sont excutes lorsque "Valeur_test"
correspond une valeur quelconque dans la liste de valeurs.
Instruction-Else Facultatif. Une ou plusieurs instructions qui sont excutes s'il n'existe aucune occurrence
de "Valeur_test" dans la liste "ListeValeurs".
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 229
L'excution d'une instruction CASE est rgie par les rgles suivantes :
L'expression de slection doit renvoyer une valeur de type Int.
Lors de l'excution d'une instruction CASE, le programme vrifie si la valeur de
l'expression de slection figure dans la liste de valeurs spcifie. Si tel est le cas, la
section d'instructions affecte la liste est excute.
Si la valeur de l'expression de slection est introuvable, c'est la section d'instructions
suivant ELSE qui est excute ou aucune instruction s'il n'y a pas de branche ELSE.
Il est possible d'imbriquer des instructions CASE. Chaque instruction CASE imbrique doit
tre associe une instruction END_CASE.

CASE var1 OF
1 : var2 := "A";
2 : var2 := "B";
CASE var1 OF
65..90: var2 := "UpperCase";
97..122: var2 := "LowerCase";
END_CASE
ELSE
var1:= "SpecialCharacter";
END_CASE
7.8.4 Instruction FOR
Tableau 7- 97 Elments de l'instruction FOR
SCL Description
FOR "variable_contrle" := "dbut" TO "fin"
[BY "incrment"] DO
instruction;
;
END_FOR;
Une instruction FOR sert rpter une squence
d'instructions aussi longtemps qu'une variable de
contrle se trouve dans la plage de valeurs
spcifie. La dfinition d'une boucle avec FOR
comporte aussi l'indication d'une valeur initiale et
d'une valeur finale. Ces deux valeurs doivent avoir
le mme type que la variable de contrle.

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
230 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 98 Paramtres
Paramtre Description
"variable_contrle" Obligatoire. Entier (Int ou DInt) servant de compteur de boucle
"dbut" Obligatoire. Expression simple qui indique la valeur initiale de la variable de contrle.
"fin" Obligatoire. Expression simple qui indique la valeur finale de la variable de contrle.
"incrment" Facultatif. Quantit de laquelle la variable de contrle est modifie aprs chaque boucle.
"incrment" doit avoir le mme type de donnes que la variable de contrle. Si aucun
incrment n'est indiqu, la valeur des variables d'excution est augmente de 1 aprs
chaque boucle. Vous ne pouvez pas modifier la valeur de "incrment" pendant l'excution
de l'instruction FOR.
L'instruction FOR s'excute comme suit :
Au dbut de la boucle, la variable de contrle prend la valeur initiale (affectation initiale)
puis, chaque itration de la boucle, elle est incrmente (en cas d'incrment positif) ou
dcrmente (en cas d'incrment ngatif) de l'incrment indiqu, et ce jusqu' ce que la
valeur finale soit atteinte.
Aprs chaque excution de la boucle, la condition (valeur finale atteinte) est vrifie afin
de constater si elle est ou non remplie. Si la condition est remplie, la squence
d'instructions est excute. Sinon, la boucle et sa squence d'instructions sont sautes.
Rgles de formulation des instructions FOR :
La variable de contrle doit tre exclusivement du type de donnes Int ou DInt.
Vous pouvez omettre l'instruction BY [incrment]. Si aucun incrment est indiqu, la
valeur +1 est prise par dfaut.
Utilisez l'Instruction EXIT (Page 233) pour quitter la boucle quel que soit l'tat de l'expression
"condition". L'instruction EXIT excute l'instruction se trouvant immdiatement aprs
l'instruction END_FOR.
Utilisez l'Instruction CONTINUE (Page 232) pour sauter les instructions suivantes dans la
boucle FOR et aller immdiatement vrifier que la condition d'abandon de la boucle est
remplie ou non.
7.8.5 Instruction WHILE-DO
Tableau 7- 99 Instruction WHILE
SCL Description
WHILE "condition" DO
Instruction;
Instruction;
...;
END_WHILE;
L'instruction WHILE excute une srie d'instructions tant qu'une condition donne est
vraie (TRUE).
Vous pouvez imbriquer des boucles WHILE. L'instruction END_WHILE se rfre la
dernire instruction WHILE excute.

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 231
Tableau 7- 100 Paramtres
Paramtre Description
"condition" Obligatoire. Expression logique qui peut prendre la valeur VRAI ou FAUX (une condition "nulle"
est interprte comme fausse).
Instruction Facultatif. Une ou plusieurs instructions qui sont excutes tant que la condition est vraie.


Remarque
L'instruction WHILE value l'tat de "condition" avant d'excuter les instructions. Pour
excuter les instructions au moins une fois quel que soit l'tat de "condition", utilisez
l'instruction REPEAT.

L'excution d'une instruction WHILE est rgie par les rgles suivantes :
La condition d'excution est value avant chaque itration du corps de boucle.
Le corps de boucle suivant DO est rpt tant que la condition d'excution a la valeur
VRAI.
Ds que la condition d'excution prend la valeur FAUX, la boucle est saute et
l'instruction suivant la boucle est excute.
Utilisez l'Instruction EXIT (Page 233) pour quitter la boucle quel que soit l'tat de l'expression
"condition". L'instruction EXIT excute l'instruction se trouvant immdiatement aprs
l'instruction END_WHILE.
Utilisez l'instruction CONTINUE pour sauter les instructions suivantes dans la boucle WHILE
et aller immdiatement vrifier que la condition d'abandon de la boucle est remplie ou non.
7.8.6 Instruction REPEAT-UNTIL
Tableau 7- 101 Instruction REPEAT
SCL Description
REPEAT
Instruction;
;
UNTIL "condition"
END_REPEAT
L'instruction REPEAT excute un groupe d'instructions jusqu' ce qu'une condition
donne soit vraie (TRUE).
Vous pouvez imbriquer des boucles REPEAT. L'instruction END_REPEAT se rfre
toujours la dernire instruction REPEAT excute.

Tableau 7- 102 Paramtres
Paramtre Description
Instruction Facultatif. Une ou plusieurs instructions qui sont excutes jusqu' ce que la condition soit
vraie.
"condition" Obligatoire. Une ou plusieurs expressions des deux types suivants : Expression numrique ou
chane de caractres qui peut prendre la valeur VRAI ou FAUX. Une condition "nulle" est
interprte comme fausse.
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
232 Manuel systme, 11/2011, A5E02486682-05


Remarque
Avant d'valuer l'tat de "condition", l'instruction REPEAT excute une fois les instructions
dans la boucle (mme si "condition" est FAUX). Pour que l'tat de "condition" soit valu
avant l'excution des instructions, utilisez l'instruction WHILE.

Utilisez l'Instruction EXIT (Page 233) pour quitter la boucle quel que soit l'tat de l'expression
"condition". L'instruction EXIT excute l'instruction se trouvant immdiatement aprs
l'instruction END_REPEAT.
Utilisez l'Instruction CONTINUE (Page 232) pour sauter les instructions suivantes dans la
boucle REPEAT et aller immdiatement vrifier que la condition d'abandon de la boucle est
remplie ou non.
7.8.7 Instruction CONTINUE
Tableau 7- 103 Instruction CONTINUE
SCL Description
CONTINUE
Instruction;
;
L'instruction CONTINUE saute les instructions suivantes d'un programme de boucle
(FOR, WHILE, REPEAT) et va immdiatement vrifier que la condition d'abandon de la
boucle est remplie ou non. Si ce n'est pas le cas, la boucle continue.
L'excution d'une instruction CONTINUE est rgie par les rgles suivantes :
Cette instruction met immdiatement fin l'excution du corps de la boucle.
Selon que la condition de rptition de la boucle est remplie ou non, le corps de la boucle
est rexcut ou bien l'instruction d'itration est abandonne et l'instruction venant
immdiatement aprs est excute.
Dans une instruction FOR, la variable de contrle est incrmente de l'incrment indiqu
aussitt aprs une instruction CONTINUE.
Utilisez l'instruction CONTINUE exclusivement l'intrieur d'une boucle. Dans les boucles
imbriques, CONTINUE fait toujours rfrence la boucle dans laquelle il est directement
inclus. CONTINUE est typiquement utilis en combinaison avec une instruction IF.
S'il s'agit d'abandonner la boucle quel que soit le rsultat du test d'achvement, utilisez
l'instruction EXIT.
L'exemple suivant montre l'utilisation de l'instruction CONTINUE pour viter une division par
0 lors du calcul du pourcentage d'une valeur :
FOR x = 0 TO 10 DO
IF valeur[i] = 0 THEN CONTINUE; END_IF;
p := partie / valeur[i] * 100;
s := INT_TO_STRING(p);
pourcentage=CONCAT(IN1:=s, IN2:="%");
END_FOR;
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 233
7.8.8 Instruction EXIT
Tableau 7- 104 Instruction EXIT
SCL Description
EXIT
L'instruction EXIT permet de quitter une boucle (FOR, WHILE ou REPEAT) en n'importe quel point, que la
condition d'achvement soit remplie ou non.
L'excution d'une instruction EXIT est rgie par les rgles suivantes :
Cette instruction provoque l'abandon instantan de l'instruction d'itration qui entoure
immdiatement l'instruction EXIT.
L'excution du programme se poursuit aprs la fin de la boucle (par exemple, aprs
END_FOR).
Utilisez l'instruction EXIT l'intrieur d'une boucle. Dans les boucles imbriques, l'instruction
EXIT rend la main la boucle de niveau immdiatement suprieur.
FOR i = 0 TO 10 DO
CASE valeur[i, 0] OF
1..10: valeur [i, 1]:="A";
11..40:= valeur [i, 1]:="B";
41..100:= valeur [i, 1]:="C";
ELSE
EXIT;
END_CASE;
END_FOR;
7.8.9 Instruction GOTO
Tableau 7- 105 Instruction GOTO
SCL Description
GOTOJumpLabel
instruction;
... ;
JumpLabel: instruction;
L'instruction GOTO vite des instructions en sautant directement un repre dans
le mme bloc.
Le repre de saut ("JumpLabel") et l'instruction GOTO doivent tre dans le mme
bloc. Le nom d'un repre de saut ne peut tre affect qu'une fois l'intrieur d'un
bloc. Chaque repre de saut peut tre la cible de plusieurs instructions GOTO.
Il n'est pas possible d'entrer dans une boucle par un saut (FOR, WHILE ou REPEAT). Il est
possible de quitter une boucle par un saut.
Dans l'exemple suivant, selon la valeur de l'oprande "valeur_variable", l'excution du
programme reprend au point dfini par le repre de saut correspondant. Si "valeur_variable"
est gal 2, l'excution du programme se poursuit au repre de saut "MyLabel2" et vite
"MyLabel1".
CASE "valeur_variable" OF
1 : GOTO MyLabel1;
2 : GOTO MyLabel2;
ELSE GOTO MYLabel3
END_CASE;
MyLabel1: "variable_1" := 1;
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
234 Manuel systme, 11/2011, A5E02486682-05
MyLabel2: "variable_2" := 1;
MyLabel3: "variable_4" := 1;
7.8.10 Instruction RETURN
Tableau 7- 106 Instruction RETURN
SCL Description
Return;
L'instruction RETURN quitte sans condition le bloc de code en cours d'excution. L'excution du
programme revient au bloc appelant ou au systme d'exploitation (lors de la sortie d'un OB).
Exemple d'instruction RETURN :
IF "Erreur" <> 0 THEN
Return;
END_IF

Remarque
Aprs excution de la dernire instruction, le bloc de code revient automatiquement au bloc
appelant. N'insrez pas d'instruction RETURN la fin du bloc de code.

7.8.11 Instructions Saut et Repre de saut
Tableau 7- 107 Instructions JMP, JMPN et LABEL
CONT LOG SCL Description


Voir l'instruction GOTO
(Page 233).
S'il y a flux de courant vers la bobine JMP (CONT) ou
si l'entre de la bote JMP est vraie (LOG),
l'excution du programme continue avec la premire
instruction suivant le repre de saut indiqu.


S'il n'y a pas de flux de courant vers la bobine JMPN
(CONT) ou si l'entre de la bote JMPN est fausse
(LOG), l'excution du programme continue avec la
premire instruction suivant le repre de saut indiqu.

Destination pour une instruction de saut JMP ou
JMPN.
1
Vous crez vos noms de repre en tapant directement dans l'instruction LABEL. Utilisez l'icne d'aide des paramtres
pour slectionner les noms de repre disponibles pour le champ de nom de repre de JMP et JMPN. Vous pouvez
galement saisir un nom de repre directement dans l'instruction JMP ou JMPN.

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 235
Tableau 7- 108 Types de donnes pour les paramtres
Paramtre Type de donnes Description
Label_name Identificateur de repre Identificateur pour les instructions de saut et repre de destination
de saut correspondant
Chaque repre doit tre univoque l'intrieur d'un bloc de code.
Vous pouvez sauter l'intrieur d'un bloc de code, mais vous ne pouvez pas sauter d'un
bloc de code un autre bloc de code.
Vous pouvez sauter en avant ou en arrire.
Vous pouvez sauter au mme repre partir de plus d'un point dans le mme bloc de
code.
7.8.12 Instruction JMP_LIST
Tableau 7- 109 Instruction JMP_LIST
CONT/LOG

SCL Description

CASE k OF
0: GOTO dest0;
1: GOTO dest1;
2: GOTO dest2;
[n: GOTO destn;]
END_CASE;
L'instruction JMP_LIST agit comme un rpartiteur de sauts pour piloter
l'excution de sections de programme. Un saut est excut au repre
de programme correspondant la valeur de l'entre K. L'excution du
programme se poursuit avec les instructions qui suivent le repre de
saut de destination. Si la valeur de l'entre K dpasse le nombre de
repres - 1, aucun saut n'est effectu et le traitement se poursuit avec
le rseau suivant du programme.

Tableau 7- 110 Types de donnes pour les paramtres
Paramtre Type de donnes Description
K UInt Valeur de commande du rpartiteur de sauts
DEST0, DEST1, ..,
DESTn.
Repres de programme Repres de destination de saut correspondant des valeurs spcifiques
du paramtre K.
Si la valeur de K est gale 0, un saut est effectu au repre de
programme affect la sortie DEST0. Si la valeur de K est gale 1, un
saut est effectu au repre de programme affect la sortie DEST1 et
ainsi de suite. Si la valeur de l'entre K dpasse le nombre de repres - 1,
aucun saut n'est effectu et le traitement se poursuit avec le rseau
suivant du programme.

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
236 Manuel systme, 11/2011, A5E02486682-05

Pour CONT et LOG : Lorsque vous insrez initialement la bote JMP_LIST dans votre
programme, elle ne comporte que deux sorties de repre de saut. Vous pouvez ajouter ou
supprimer des destinations de saut.

Cliquez sur l'icne de cration l'intrieur de la bote ( gauche du dernier
paramtre DEST) pour ajouter de nouvelles sorties de repres de saut.

Cliquez avec le bouton droit de la souris sur une ligne de sortie et
slectionnez la commande "Insrer sortie".
Cliquez avec le bouton droit de la souris sur une ligne de sortie et
slectionnez la commande "Supprimer".
7.8.13 Instruction SWITCH
Tableau 7- 111 Instruction SWITCH
CONT/LOG SCL Description

Non disponible
L'instruction SWITCH agit comme un rpartiteur de sauts pour
piloter l'excution de sections de programme. La valeur de l'entre
K est compare aux valeurs affectes aux entres de
comparaison indiques et un saut est effectu au repre de
programme correspondant au premier test de comparaison qui est
vrai. Si aucune des comparaisons n'est vraie, il y a saut au repre
affect ELSE. L'excution du programme se poursuit avec les
instructions qui suivent le repre de saut de destination.
1
Pour CONT et LOG : Cliquez sous le nom de la bote et slectionnez un type de donnes dans le menu droulant.
2
Pour SCL : Utilisez un jeu de comparaisons IF-THEN.

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 237
Tableau 7- 112 Types de donnes pour les paramtres
Paramtre Type de donnes
1
Description
K SInt, Int, DInt, USInt, UInt, UDInt, Real,
LReal, Byte, Word, DWord, Time,
TOD, Date
Entre de valeur de comparaison commune
==, <>, <, <=, >. >= SInt, Int, DInt, USInt, UInt, UDInt, Real,
LReal, Byte, Word, DWord, Time,
TOD, Date
Entres de valeurs de comparaison distinctes pour des
types de comparaison spcifiques
DEST0, DEST1, ..,
DESTn, ELSE
Repres de programme Repres de destination de saut correspondant des
comparaisons spcifiques :
L'entre de comparaison la plus proche en dessous de
l'entre K est traite en premier et provoque un saut au
repre affect DEST0 si la comparaison entre la valeur K
et cette entre est vraie. Le test de comparaison suivant
utilise l'entre du dessous suivante et provoque un saut au
repre affect DEST1 si la comparaison est vraie, et ainsi
de suite avec les comparaisons restantes. Si aucune des
comparaisons n'est vraie, il y a saut au repre affect la
sortie ELSE.
1
L'entre K et les entres de comparaison (==, <>, <, <=, >, >=) doivent avoir le mme type de donnes.
Ajout et suppression d'entres et indication des types de comparaison
Lorsque la bote SWITCH CONT ou LOG est initialement insre dans votre programme,
elle comporte deux entres de comparaison. Vous pouvez affecter des types de
comparaison et ajouter des entres/destinations de saut comme illustr ci-dessous.


Cliquez sur un oprateur de comparaison dans la bote et
slectionnez un nouvel oprateur dans la liste droulante.

Cliquez sur l'icne de cration l'intrieur de la bote ( gauche du
dernier paramtre DEST ) pour ajouter de nouveaux paramtres de
destination pour la comparaison.

Cliquez avec le bouton droit de la souris sur une ligne d'entre et
slectionnez la commande "Insrer entre".
Cliquez avec le bouton droit de la souris sur une ligne d'entre et
slectionnez la commande "Supprimer".

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
238 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 113 Slection de type de donnes et oprations de comparaison autorises pour la
bote SWITCH
Type de donnes Comparaison Syntaxe de l'oprateur
Egal == Byte, Word, DWord
Diffrent <>
Egal ==
Diffrent <>
Suprieur ou gal >=
Infrieur ou gal <=
Suprieur >
SInt, Int, DInt, USInt, UInt,
UDInt, Real, LReal, Time, TOD,
Date
Infrieur <
Rgles de placement de la bote SWITCH
Aucune connexion d'instruction CONT/LOG devant l'entre de comparaison n'est
autorise.
Il n'existe pas d'entre ENO. On ne peut donc avoir qu'une instruction SWITCH dans un
rseau et l'instruction SWITCH doit tre la dernire opration du rseau.
7.8.14 Instruction de gestion d'excution RET
L'instruction RET optionnelle sert mettre fin l'excution du bloc en cours. Si et seulement
si il y a flux de courant vers la bobine RET (CONT) ou si l'entre de la bote RET est vraie
(CONT), l'excution du programme du bloc en cours est interrompue en ce point et les
instructions au-del de l'instruction RET ne sont pas excutes. Si le bloc en cours est un
OB, le paramtre "Return_Value" n'est pas pris en compte. Si le bloc en cours est une FC ou
un FB, la valeur du paramtre "Return_Value" est transmise au programme appelant en tant
que valeur ENO de la bote appele.
Vous n'avez pas besoin d'utiliser une instruction RET comme dernire instruction dans un
bloc ; cela est fait automatiquement pour vous. Vous pouvez avoir plusieurs instructions RET
l'intrieur d'un seul bloc.
Pour SCL, reportez-vous l'instruction RETURN (Page 234).
Tableau 7- 114 Instruction de gestion d'excution RET (Renvoyer la valeur)
CONT LOG SCL Description


RETURN;
Met fin l'excution du bloc en cours.

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 239
Tableau 7- 115 Types de donnes pour les paramtres
Paramtre Type de
donnes
Description
Return_Value Bool Le paramtre "Return_value" de l'instruction RET est affect la sortie ENO de la
bote d'appel de bloc dans le bloc appelant.
Modle d'tapes pour l'utilisation de l'instruction RET dans une FC :
1. Crez un nouveau projet et insrez-y une FC.
2. Editez la FC :
Ajoutez des instructions depuis l'arborescence d'instructions.
Ajoutez une instruction RET en indiquant l'une des valeurs suivantes pour le
paramtre "Return_Value" :
VRAI, FAUX ou une adresse de mmoire contenant la valeur de retour requise.
Ajoutez d'autres instructions.
3. Appelez la FC depuis le programme principal [OB1].
L'entre EN de la bote FC dans l'OB 1 doit tre vraie pour que l'excution de la FC
commence.
La valeur indique par l'instruction RET dans la FC sera prsente au niveau de la sortie
ENO de la bote FC dans le bloc OB 1 aprs l'excution de la FC pour laquelle le flux de
courant vers l'instruction RET est vrai.
7.8.15 Instruction Redclencher le temps de surveillance du cycle
Tableau 7- 116 RE_TRIGR, instruction
CONT/LOG SCL Description

RE_TRIGR();
RE_TRIGR (Redmarrer surveillance du temps de cycle) sert allonger le
temps maximum autoris avant que la temporisation de surveillance du cycle ne
gnre une erreur.
Utilisez l'instruction RE_TRIGR pour redmarrer la temporisation du cycle pendant un cycle
unique. Cela a pour effet d'allonger le temps de cycle maximum autoris d'une priode de
temps de cycle maximum, partir de la dernire excution de la fonction RE_TRIGR.
La CPU restreint l'usage de l'instruction RE_TRIGR au cycle du programme, par exemple
l'OB 1 et aux fonctions qui sont appeles dans le cycle du programme. Cela signifie que la
temporisation de surveillance du cycle est rinitialise et ENO = EN si RE_TRIGR est appel
dans n'importe quel OB de la liste des OB du cycle de programme.
ENO = FAUX et la temporisation de surveillance du cycle n'est pas rinitialise si
RE_TRIGR est excut partir d'un OB de dmarrage, d'un OB d'alarme ou d'un OB
d'erreur.
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
240 Manuel systme, 11/2011, A5E02486682-05
Dfinition du temps de cycle maximum de l'automate
Configurez la valeur du temps de cycle maximum sous "Temps de cycle" dans la
configuration des appareils.
Tableau 7- 117 Valeurs du temps de cycle
Surveillance du temps
de cycle
Valeur minimale Valeur maximale Valeur par dfaut
Temps de cycle
maximum
1 ms 6000 ms 150 ms
Expiration de la temporisation de surveillance du cycle
Une erreur est gnre si la temporisation de cycle maximum expire avant que le cycle ne
soit achev. Si le bloc de code de gestion d'erreur OB 80 est inclus dans le programme
utilisateur, la CPU excute l'OB 80 dans lequel vous pouvez insrer de la logique pour crer
une raction spcifique. En l'absence d'OB 80, la premire expiration n'est pas prise en
compte.
Si une deuxime expiration du temps de cycle maximum se produit pendant le mme cycle
du programme (2 fois la valeur du temps de cycle maximum), une erreur provoquant le
passage de la CPU l'tat ARRET est gnre.
A l'tat ARRET, l'excution de votre programme s'arrte alors que la communication
systme de la CPU et le diagnostic systme se poursuivent.
7.8.16 Instruction Commuter en STOP
Tableau 7- 118 Instruction STP
CONT/LOG SCL Description

STP();
STP (Arrter) fait passer la CPU l'tat ARRET. Lorsque la CPU est l'tat
ARRET, l'excution de votre programme et les actualisations physiques
depuis la mmoire image s'arrtent.
Pour plus d'informations, reportez-vous Configuration des sorties lors d'un passage de
MARCHE ARRET (Page 88).
Si EN = VRAI, la CPU passe l'tat ARRET, l'excution du programme s'arrte et l'tat de
ENO est sans objet. Sinon, EN = ENO = 0.
7.8.17 Instructions de traitement d'erreur
Les instructions de traitement d'erreur fournissent des informations sur les erreurs
d'excution des blocs de programme. Si vous ajoutez une instruction GetError ou GetErrorID
votre bloc de code, vous pouvez grer les erreurs de programme l'intrieur de votre bloc
de programme.
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 241
GetError
Tableau 7- 119 Instruction GetError
CONT/LOG SCL Description

Non disponible Signale qu'une erreur d'excution du bloc de programme s'est produite et remplit une
structure de donnes d'erreur prdfinie avec des informations d'erreur dtailles.

Tableau 7- 120 Types de donnes pour les paramtres
Paramtre Type de donnes Description
ERROR ErrorStruct Structure de donnes d'erreur : Vous pouvez renommer la structure mais pas les
lments l'intrieur de la structure.

Tableau 7- 121 Elments de la structure de donnes ErrorStruct
Elments de la structure Type de
donnes
Description
ERROR_ID Word Code d'erreur
FLAGS Byte Indique si une erreur s'est produite pendant un appel de bloc.
16#01: Erreur pendant un appel de bloc
16#00: Aucune erreur pendant un appel de bloc
REACTION Byte Raction par dfaut :
0: Ne pas tenir compte de l'erreur (erreur d'criture)
1: Poursuivre avec la valeur de remplacement "0" (erreur de
lecture)
2: Sauter l'instruction (erreur systme)
CODE_ADDRESS CREF Information sur l'adresse et le type de bloc
BLOCK_TYPE Byte Type de bloc o l'erreur s'est produite :
1: OB
2: FC
3: FB
CB_NUMBER UInt Numro du bloc de code
OFFSET UDInt Rfrence la mmoire interne
Mode d'accs : Les informations suivantes peuvent tre transmises
selon le type d'accs :
Mode (A) (B) (C) (D) (E)
0
1 Dcalag
e
MODE Byte
2 Zone
100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
242 Manuel systme, 11/2011, A5E02486682-05
Elments de la structure Type de
donnes
Description
3 Adresse Porte Numro
4 Zone Dcalag
e
5 Zone N DB Dcalag
e
6 N Ptr
/Acc
Zone N DB Dcalag
e
7 N Ptr
/Acc
N
empl./Port
e
Zone N DB Dcalag
e
OPERAND_NUMBER UInt Numro d'oprande de la commande machine
POINTER_NUMBER_
LOCATION
UInt (A) Pointeur interne
SLOT_NUMBER_SCOPE UInt (B) Zone de stockage en mmoire interne
DATA_ADDRESS NREF Information sur l'adresse d'un oprande
AREA Byte (C) Zone de mmoire
L : 16#40 4E, 86, 87, 8E, 8F, C0 CE
E : 16#81
A : 16#82
M : 16#83
DB : 16#84, 85, 8A, 8B
DB_NUMBER UInt (D) Numro du bloc de donnes
OFFSET UDInt (E) Adresse relative de l'oprande
GetErrorID
Tableau 7- 122 Instruction GetErrorID
CONT/LOG SCL Description

Non disponible Signale qu'une erreur d'excution du bloc de programme s'est produite et transmet
l'ID (code identificateur) de l'erreur.

Tableau 7- 123 Types de donnes pour les paramtres
Paramtre Type de donnes Description
ID Word Valeurs de l'identificateur d'erreur pour l'lment ERROR_ID de ErrorStruct

100BInstructions de base
7.8 Gestion du programme
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 243
Tableau 7- 124 Valeurs de Error_ID
ERROR_ID
hexadcimal
ERROR_ID
dcimal
Erreur d'excution du bloc de programme
0 0 Pas d'erreur
2503 9475 Pointeur non initialis
2522 9506 Erreur de lecture, oprande hors plage
2523 9507 Erreur d'criture, oprande hors plage
2524 9508 Erreur de lecture, zone invalide
2525 9509 Erreur d'criture, zone invalide
2528 9512 Erreur de lecture, alignement de donnes (alignement de bits incorrect)
2529 9513 Erreur d'criture, alignement de donnes (alignement de bits incorrect)
2530 9520 DB protg en criture
253A 9530 DB global inexistant
253C 9532 Mauvaise version ou FC inexistante
253D 9533 Instruction inexistante
253E 9534 Mauvaise version ou FB inexistant
253F 9535 Instruction inexistante
2575 9589 Erreur de profondeur d'imbrication de programme
2576 9590 Erreur d'allocation de donnes locales
2942 10562 Entre physique inexistante
2943 10563 Sortie physique inexistante
Fonctionnement
Par dfaut, la CPU ragit une erreur d'excution de bloc en consignant une erreur dans la
mmoire tampon de diagnostic. Toutefois, si vous placez une ou plusieurs instructions
GetError ou GetErrorID dans un bloc de code, ce bloc pourra grer les erreurs se produisant
l'intrieur du bloc. Dans ce cas, la CPU ne consigne pas d'erreur dans la mmoire tampon
de diagnostic. Au lieu de cela, l'information d'erreur est transmise la sortie de l'instruction
GetError ou GetErrorID. Vous pouvez lire les informations d'erreur dtailles avec
l'instruction GetError ou uniquement l'identificateur de l'erreur avec l'instruction GetErrorID.
Normalement, la premire erreur est la plus importante, les erreurs suivantes n'tant que
des consquences de la premire erreur.
La premire excution d'une instruction GetError ou GetErrorID l'intrieur d'un bloc renvoie
la premire erreur dtecte pendant l'excution du bloc. Cette erreur peut s'tre produite
n'importe quel endroit entre le dbut du bloc et l'excution de GetError ou GetErrorID. Les
excutions suivantes de GetError ou GetErrorID renvoient la premire erreur depuis
l'excution prcdente de GetError ou GetErrorID. L'historique des erreurs n'est pas
sauvegard et l'excution de l'une ou l'autre instruction rarme le systme d'automatisation
pour la capture de l'erreur suivante.
Vous pouvez ajouter le type de donnes ErrorStruct utilis par l'instruction GetError dans
l'diteur de bloc de donnes et les diteurs d'interface de bloc afin que la logique de votre
programme puisse accder ces valeurs. Slectionnez ErrorStruct dans la liste droulante
des types de donnes pour ajouter cette structure. Vous pouvez crer plusieurs structures
ErrorStruct en leur donnant des noms univoques. Il n'est pas possible de renommer les
lments d'une structure ErrorStruct.
100BInstructions de base
7.9 Oprations logiques sur mots
Automate programmable S7-1200
244 Manuel systme, 11/2011, A5E02486682-05
Situation d'erreur signale par ENO
Si EN = TRUE et GetError ou GetErrorID s'excute, alors :
ENO = VRAI signale une erreur d'excution de bloc de code et la prsence d'une erreur
de donnes ;
ENO = FAUX signale qu'aucune erreur d'excution de bloc de code ne s'est produite.
Vous pouvez connecter de la logique de programme de raction aux erreurs ENO qui
s'active si une erreur s'est produite. En prsence d'une erreur, le paramtre de sortie
mmorise les donnes d'erreur l o votre programme peut y accder.
Vous pouvez utiliser GetError et GetErrorID pour envoyer des informations d'erreur du bloc
en cours d'excution (bloc appel) un bloc appelant. Placez l'instruction dans le dernier
rseau du programme du bloc appel afin de renvoyer l'tat d'excution final au bloc appel.
7.9 Oprations logiques sur mots
7.9.1 Instructions AND, OR et XOR
Tableau 7- 125 Instructions AND, OR et XOR
CONT/LOG SCL Description
out := in1 AND in2;

AND : ET logique
out := in1 OR in2;
OR : OU logique

out := in1 XOR in2;
XOR : OU exclusif logique
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.



Pour ajouter une entre , cliquez sur l'icne de cration ou cliquez avec le bouton
droit de la souris sur la ligne d'entre de l'un des paramtres IN existants et
slectionnez la commande "Insrer entre".
Pour supprimer une entre, cliquez avec le bouton droit de la souris sur la ligne d'entre de
l'un des paramtres IN existants (lorsqu'il y a plus d'entres que les deux entres d'origine)
et slectionnez la commande "Supprimer".
Tableau 7- 126 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN1, IN2 Byte, Word, DWord Entres logiques
OUT Byte, Word, DWord Sortie logique
1
La slection du type de donnes donne le mme type de donnes aux paramtres IN1, IN2 et OUT.
100BInstructions de base
7.9 Oprations logiques sur mots
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 245
Les valeurs binaires correspondantes de IN1 et IN2 sont combines pour produire un
rsultat logique binaire qui est transmis au paramtre OUT. ENO est toujours VRAI aprs
l'excution de ces instructions.
7.9.2 Instruction Inverser
Tableau 7- 127 Instruction INV
CONT/LOG SCL Description

Non disponible
Calcule le complment un binaire du paramtre IN. Le complment
un est form en inversant chaque valeur de bit dans le paramtre IN
(changement de chaque 0 en 1 et de chaque 1 en 0). ENO est toujours
VRAI aprs l'excution de cette instruction.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 128 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord Elment de donnes inverser
OUT SInt, Int, DInt, USInt, UInt, UDInt, Byte, Word, DWord Sortie inverse
7.9.3 Instructions Encoder et Dcoder
Tableau 7- 129 Instructions ENCO et DECO
CONT/LOG SCL Description

out := ENCO(IN :=
<expression>);
Code un motif binaire en un nombre binaire.
L'instruction ENCO convertit le paramtre IN en un nombre
binaire correspondant la position du bit mis 1 le moins
significatif du paramtre IN et renvoie le rsultat dans le
paramtre OUT. Si le paramtre IN est soit 0000 0001 soit 0000
0000, la valeur 0 est renvoye dans le paramtre OUT. Si la
valeur du paramtre IN est 0000 0000, ENO est mis FAUX.

out := DECO(IN :=
<expression>);
Dcode un nombre binaire en un motif binaire.
L'instruction DECO dcode un nombre binaire dans le paramtre
IN en mettant 1 la position de bit correspondante dans le
paramtre OUT (tous les autres bits sont mis 0). ENO est
toujours VRAI aprs l'excution de l'instruction DECO.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

100BInstructions de base
7.9 Oprations logiques sur mots
Automate programmable S7-1200
246 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 130 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN ENCO : Byte, Word, DWord
DECO : UInt
ENCO : Motif binaire encoder
DECO : Valeur dcoder
OUT ENCO : Int
DECO : Byte, Word, DWord
ENCO : Valeur encode
DECO : Motif binaire dcod

Tableau 7- 131 Paramtre OUT pour ENCO
ENO Situation d'erreur Rsultat (OUT)
1 Pas d'erreur Numro de bit valide
0 IN est zro. OUT est mis zro.
La slection du type de donnes Byte, Word ou DWord pour le paramtre OUT de DECO
restreint la plage utile du paramtre IN. Si la valeur du paramtre IN dpasse la plage utile,
une opration modulo est excute pour extraire les bits les moins significatifs comme
illustr ci-dessous.
Plage du paramtre IN de DECO :
3 bits (valeurs 0-7) IN sont utiliss pour mettre 1 une position de bit dans un octet OUT
(Byte OUT).
4 bits (valeurs 0-15) IN sont utiliss pour mettre 1 une position de bit dans un mot OUT
(Word OUT).
5 bits (valeurs 0-31) IN sont utiliss pour mettre 1 une position de bit dans un double
mot OUT (DWord OUT).
Tableau 7- 132 Exemples
Valeur IN de DECO Valeur OUT de DECO (Dcoder une position de bit unique)
Min. IN 0 00000001 Byte OUT
8 bits Max. IN 7 10000000
Min. IN 0 0000000000000001 Word OUT
16 bits Max. IN 15 1000000000000000
Min. IN 0 00000000000000000000000000000001 DWord OUT
32 bits Max. IN 31 10000000000000000000000000000000
100BInstructions de base
7.9 Oprations logiques sur mots
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 247
7.9.4 Instructions Slectionner, Multiplexeur et Dmultiplexeur
Tableau 7- 133 Instruction SEL (Slectionner)
CONT/LOG SCL Description

out := SEL(
g:=_bool_in,
in0:-_variant_in,
in1:=_variant_in);
SEL affecte une valeur parmi deux valeurs d'entre au paramtre
OUT en fonction de la valeur du paramtre G.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.

Tableau 7- 134 Types de donnes pour l'instruction SEL
Paramtre Type de donnes
1
Description
G Bool
0 slectionne IN0
1 slectionne IN1
IN0, IN1 SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Entres
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Sortie
1
Les variables d'entre et la variable de sortie doivent avoir le mme type de donnes.
Codes d'erreur : ENO est toujours vrai aprs l'excution de l'instruction SEL.
Tableau 7- 135 Instruction MUX (Multiplexeur)
CONT/LOG SCL Description

out := MUX(
k:=_unit_in,
in0:=variant_in,
in1:=variant_in,

[...in32:=variant_in,]
inelse:=variant_in);
MUX copie une valeur parmi plusieurs valeurs d'entre dans le
paramtre OUT en fonction de la valeur du paramtre K. Si la valeur
du paramtre K dpasse (INn - 1), la valeur du paramtre ELSE est
copie dans le paramtre OUT.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.



Pour ajouter une entre , cliquez sur l'icne de cration ou cliquez avec le
bouton droit de la souris sur la ligne d'entre de l'un des paramtres IN
existants et slectionnez la commande "Insrer entre".
Pour supprimer une entre, cliquez avec le bouton droit de la souris sur la ligne d'entre de
l'un des paramtres IN existants (lorsqu'il y a plus d'entres que les deux entres d'origine)
et slectionnez la commande "Supprimer".
100BInstructions de base
7.9 Oprations logiques sur mots
Automate programmable S7-1200
248 Manuel systme, 11/2011, A5E02486682-05
Tableau 7- 136 Types de donnes pour l'instruction MUX
Paramtre Type de donnes Description
K UInt
0 slectionne IN0
1 slectionne IN1
n slectionne INn
IN0, IN1, .. INn SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Entres
ELSE SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Valeur de substitution d'entre
(optionnelle)
OUT SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Sortie
1
Les variables d'entre et la variable de sortie doivent avoir le mme type de donnes.

Tableau 7- 137 Instruction DEMUX (Dmultiplexeur)
CONT/LOG SCL Description

out := DEMUX(
k:=_unit_in,
in:=variant_in,
out0:=variant_in,
out1:=variant_in,

[...out32:=variant_in,]

outelse:=variant_in);
DEMUX copie la valeur de l'adresse affecte au paramtre IN dans
une sortie parmi plusieurs sorties. La valeur du paramtre K indique
la sortie slectionne comme destination de la valeur IN. Si la valeur
de K est suprieure au nombre (OUTn - 1), la valeur dans IN est
copie dans le paramtre ELSE.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez un type de donnes dans le menu droulant.
Pour ajouter une sortie, cliquez sur l'icne de cration ou cliquez avec le bouton droit de la
souris sur la ligne de sortie de l'un des paramtres OUT existants et slectionnez la
commande "Insrer sortie". Pour supprimer une sortie, cliquez avec le bouton droit de la
souris sur la ligne de sortie de l'un des paramtres OUT existants (lorsqu'il y a plus de
sorties que les deux sorties d'origine) et slectionnez la commande "Supprimer".


Pour ajouter une sortie, cliquez sur l'icne de cration ou cliquez avec le bouton
droit de la souris sur la ligne de sortie de l'un des paramtres OUT existants et
slectionnez la commande "Insrer sortie".
Pour supprimer une sortie, cliquez avec le bouton droit de la souris sur la ligne de sortie de
l'un des paramtres OUT existants (lorsqu'il y a plus de sorties que les deux sorties
d'origine) et slectionnez la commande "Supprimer".
100BInstructions de base
7.9 Oprations logiques sur mots
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 249
Tableau 7- 138 Types de donnes pour l'instruction DEMUX
Paramtre Type de donnes
1
Description
K UInt Valeur de slecteur :
0 slectionne OUT0
1 slectionne OUT1
n slectionne OUTn
IN SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Entre
OUT0, OUT1, ..
OUTn
SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Sorties
ELSE SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal, Byte, Word, DWord,
Time, Char
Sortie de substitution lorsque K
est suprieur (OUTn - 1)
1
La variable d'entre et les variables de sortie doivent avoir le mme type de donnes.

Tableau 7- 139 Etat de ENO pour les instructions MUX et DEMUX
ENO Situation d'erreur Rsultat OUT
1 Pas d'erreur MUX : La valeur de IN slectionne est copie dans
OUT.
DEMUX : La valeur de IN est copie dans la sortie
OUT slectionne.
MUX : K est suprieur au nombre d'entres -1
Pas de valeur ELSE fournie : OUT reste
inchang
Valeur ELSE fournie : la valeur de ELSE est
affecte OUT
0
DEMUX : K est suprieur au nombre de sorties -1
Pas de valeur ELSE fournie : les sorties restent
inchanges
Valeur ELSE fournie : la valeur de IN est copie
dans ELSE
100BInstructions de base
7.10 Dcalage et rotation
Automate programmable S7-1200
250 Manuel systme, 11/2011, A5E02486682-05
7.10 Dcalage et rotation
7.10.1 Instructions de dcalage
Tableau 7- 140 Instructions SHR et SHL
CONT/LOG SCL Description

out := SHR(
in:=_variant_in_,
n:=_uint_in);
out := SHL(
in:=_variant_in_,
n:=_uint_in);
Utilisez les instructions de dcalage (SHL et SHR) pour dcaler le
motif binaire du paramtre IN. Le rsultat est affect au paramtre
OUT. Le paramtre N indique le nombre de positions de bit
dcaler.
SHR : Dcaler le motif binaire vers la droite
SHL : Dcaler le motif binaire vers la gauche
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez les types de donnes dans le menu droulant.

Tableau 7- 141 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Byte, Word, DWord Motif binaire dcaler
N UInt Nombre de positions de bit dcaler
OUT Byte, Word, DWord Motif binaire aprs l'opration de dcalage
Pour N=0, aucun dcalage n'est effectu. La valeur IN est affecte OUT.
Des zros sont insrs dans les positions de bit vides par l'opration de dcalage.
Si le nombre de positions dcaler (N) dpasse le nombre de bits dans la valeur cible (8
pour Byte, 16 pour Word, 32 pour DWord), toutes les valeurs de bit d'origine sont
dcales et remplaces par des zros (zro est affect OUT).
ENO est toujours VRAI pour les instructions de dcalage.
Tableau 7- 142 Exemple SHL pour des donnes de type Word
Dcaler les bits d'un mot vers la gauche en insrant des zros par la droite (N = 1)
IN 1110 0010 1010 1101 Valeur OUT avant le premier dcalage : 1110 0010 1010 1101
Aprs le premier dcalage vers la gauche : 1100 0101 0101 1010
Aprs le deuxime dcalage vers la
gauche :
1000 1010 1011 0100
Aprs le troisime dcalage vers la gauche
:
0001 0101 0110 1000
100BInstructions de base
7.10 Dcalage et rotation
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 251
7.10.2 Instructions de rotation
Tableau 7- 143 Instructions ROR et ROL
CONT/LOG SCL Description

out := ROL(
in:=_variant_in_,
n:=_uint_in);
out := ROR(
in:=_variant_in_,
n:=_uint_in);
Utilisez les instructions de rotation (ROR et ROL) pour oprer une
rotation sur le motif binaire du paramtre IN. Le rsultat est affect au
paramtre OUT. Le paramtre N dfinit le nombre de positions de bit
faire tourner.
ROR : Rotation du motif binaire vers la droite
ROL : Rotation du motif binaire vers la gauche
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez les types de donnes dans le menu droulant.

Tableau 7- 144 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN Byte, Word, DWord Motif binaire devant faire l'objet de la rotation
N UInt Nombre de positions de bit faire tourner
OUT Byte, Word, DWord Motif binaire aprs l'opration de rotation
Pour N=0, aucune rotation n'est effectue. La valeur IN est affecte OUT.
Les donnes binaires objet de la rotation qui sortent d'un ct de la valeur cible sont
insres de l'autre ct de la valeur cible de sorte qu'aucune valeur binaire d'origine n'est
perdue.
Si le nombre de positions de bit faire tourner (N) dpasse le nombre de bits dans la
valeur cible (8 pour Byte, 16 pour Word, 32 pour DWord), la rotation est quand mme
excute.
ENO est toujours VRAI aprs l'excution des instructions de rotation.
Tableau 7- 145 Exemple ROR pour des donnes de type Word
Rotation de bits sortant par la droite et entrant par la gauche (N = 1)
IN 0100 0000 0000 0001 Valeur OUT avant la premire rotation : 0100 0000 0000 0001
Aprs la premire rotation vers la droite : 1010 0000 0000 0000
Aprs la deuxime rotation vers la droite : 0101 0000 0000 0000

100BInstructions de base
7.10 Dcalage et rotation
Automate programmable S7-1200
252 Manuel systme, 11/2011, A5E02486682-05

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 253
Instructions avances 8
8.1 Date et heure
8.1.1 Instructions sur la date et l'heure
Utilisez les instructions sur la date et l'heure pour programmer des calculs sur le calendrier
et l'heure.
T_CONV convertit le type de donnes d'une valeur de temps : (Time en DInt) ou (DInt en
Time)
T_ADD additionne des valeurs Time et DTL : (Time + Time = Time) ou (DTL + Time =
DTL)
T_SUB soustrait des valeurs Time et DTL : (Time - Time = Time) ou (DTL - Time = DTL)
T_DIFF fournit la diffrence entre deux valeurs DTL en tant que valeur Time : DTL - DTL
= Time
T_COMBINE combine une valeur Date et une valeur Time_and_Date pour crer une
valeur DTL.
Pour plus d'informations sur la structure des donnes DTL et Time, reportez-vous au
paragraphe sur les types de donnes "date et heure" (Page 98).
Tableau 8- 1 Instruction T_CONV (Convertir temps)
CONT/LOG SCL Description

out := T_CONV(
in:=_variant_in);
T_CONV convertit un type de donnes Time en type de donnes DInt
ou, l'inverse, un type de donnes DInten type de donnes Time.
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez les types de donnes dans le menu droulant.

Tableau 8- 2 Types de donnes pour les paramtres de T_CONV
Paramtre et type Type de donnes Description
IN IN DInt, Time Valeur d'entre Time ou DInt
OUT OUT DInt, Time Valeur convertie DInt ou Time

101BInstructions avances
8.1 Date et heure
Automate programmable S7-1200
254 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 3 Instructions T_ADD (Additionner temps) et T_SUB (Soustraire temps)
CONT/LOG SCL Description

out := T_ADD(
in1:=_variant_in,
in2:=_time_in);
T_ADD additionne la valeur d'entre IN1 (de type de donnes DTL ou
Time) la valeur d'entre IN2 de type Time. Le paramtre OUT fournit
le rsultat de type DTL ou Time. Deux oprations sont possibles selon
les types de donnes :
Time + Time = Time
DTL + Time = DTL

out := T_SUB(
in1:=_variant_in,
in2:=_time_in);
T_SUB soustrait la valeur IN2 de type Time de la valeur IN1 (de type
DTL ou Time). Le paramtre OUT fournit la valeur de diffrence en tant
que type de donnes DTL ou Time. Deux oprations sont possibles
selon les types de donnes :
Time - Time = Time
DTL - Time = DTL
1
Pour CONT et LOG : Cliquez sur "???" et slectionnez les types de donnes dans le menu droulant.

Tableau 8- 4 Types de donnes pour les paramtres de T_ADD et T_SUB
Paramtre et type Type de donnes Description
IN1
1
IN DTL, Time Valeur DTL ou Time
IN2 IN Time Valeur Time ajouter ou soustraire
OUT OUT DTL, Time Somme ou diffrence DTL ou Time
1
Slectionnez le type de donnes de IN1 dans la liste droulante disponible sous le nom de l'instruction. La slection du
type de donnes de IN1 dfinit galement le type de donnes du paramtre OUT.

Tableau 8- 5 Instruction T_DIFF (Diffrence de temps)
CONT/LOG SCL Description

out := T_DIFF(
in1:=_DTL_in,
in2:=_DTL_in);
T_DIFF soustrait la valeur DTL (IN2) de la valeur DTL (IN1). Le paramtre
OUT fournit la valeur de diffrence en tant que type de donnes Time.
DTL - DTL = Time

Tableau 8- 6 Types de donnes pour les paramtres de T_DIFF
Paramtre et type Type de donnes Description
IN1 IN DTL Valeur DTL
IN2 IN DTL Valeur DTL soustraire
OUT OUT Time Diffrence de temps de type Time
101BInstructions avances
8.1 Date et heure
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 255
Codes d'erreur : ENO = 1 signifie qu'aucune erreur ne s'est produite. Erreurs si ENO = 0 et
le paramtre OUT = 0 :
Valeur DTL invalide
Valeur Time invalide
Tableau 8- 7 Instruction T_COMBINE (Combiner valeurs de temps)
CONT/LOG SCL Description

out := CONCAT_DATE_TOD(
in1 := _Time_Of_Day_in,
in2 := _Time_Of_Day_in,
out => _DTL_out);
T_COMBINE combine une valeur Date et une
valeur Time_of_Day pour crer une valeur DTL.
1
Notez que l'instruction avance T_COMBINEcorrespond la fonction CONCAT_DATE_TODdans SCL.

Tableau 8- 8 Types de donnes pour les paramtres de T_COMBINE
Paramtre et type Type de donnes Description
IN1 IN Date La valeur Date combiner doit tre comprise entre
DATE#1990-01-01 et DATE#2089-12-31.
IN2 IN Time_of_Day Valeur Time_of_Day combiner
OUT OUT DTL Valeur DTL
8.1.2 Rgler et lire l'horloge systme
Utilisez les instructions d'horloge pour rgler et lire l'horloge systme de la CPU. Le type de
donnes DTL (Page 98) sert fournir des valeurs de date et d'heure.
Tableau 8- 9 Instructions pour l'heure systme
CONT/LOG SCL Description

ret_val := WR_SYS_T(
in:=_DTL_in_);
WR_SYS_T (Ecrire l'heure systme) rgle l'horloge temps rel de la
CPU l'aide de la valeur DTL dans le paramtre IN. Cette valeur de
temps n'inclut pas les dcalages pour le fuseau horaire local et l'heure
d't.

ret_val := RD_SYS_T(
out=>_DTL_out);
RD_SYS_T (Lire l'heure systme) lit l'heure systme en cours dans la
CPU. Cette valeur de temps n'inclut pas les dcalages pour le fuseau
horaire local et l'heure d't.

ret_val := RD_LOC_T(
out=>_DTL_out);
RD_LOC_T (Lire l'heure locale) fournit l'heure locale en cours de la
CPU sous forme de type de donnes DTL. Cette valeur correspond au
fuseau horaire local avec les ajustements appropris pour l'heure d't
(si configure).

101BInstructions avances
8.1 Date et heure
Automate programmable S7-1200
256 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 10 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN IN DTL Heure rgler dans l'horloge systme de la CPU
RET_VAL OUT Int Code d'erreur d'excution
OUT OUT DTL RD_SYS_T : Heure systme en cours de la CPU
RD_LOC_T : Heure locale en cours incluant tout ajustement
pour l'heure d't (si configure)
L'heure locale se calcule l'aide des dcalages de fuseau horaire et d'heure d't que
vous avez paramtrs dans l'onglet gnral "Heure" de la configuration d'appareil.
La configuration du fuseau horaire constitue un dcalage par rapport l'heure UTC ou
GMT.
La configuration de l'heure d't prcise le mois, la semaine, le jour et l'heure auxquels
l'heure d't entre en vigueur.
La configuration de l'heure standard prcise galement le mois, la semaine, le jour et
l'heure auxquels l'heure standard entre en vigueur.
Le dcalage de fuseau horaire est toujours appliqu la valeur de l'heure systme. Le
dcalage d'heure d't n'est appliqu que lorsque l'heure d't est en vigueur.


Remarque
Configuration du passage l'heure d't et l'heure d'hiver
La proprit "Heure" pour "Dbut de l'heure d't" de la configuration d'appareil de la
CPU doit tre votre heure locale.
Codes d'erreur : ENO = 1 signifie qu'aucune erreur ne s'est produite. ENO = 0 signifie
qu'une erreur d'excution s'est produite et un code d'erreur est fourni par la valeur
RET_VAL.
Tableau 8- 11 Codes d'erreur
RET_VAL (W#16#....) Description
0000 L'heure locale en cours est l'heure d'hiver.
0001 L'heure d't a t configure et l'heure locale en cours est l'heure d't.
8080 Heure locale non disponible
8081 Valeur de l'anne incorrecte
8082 Valeur du mois incorrecte
8083 Valeur du jour incorrecte
8084 Valeur de l'heure incorrecte
8085 Valeur des minutes incorrecte
8086 Valeur des secondes incorrecte
8087 Valeur des nanosecondes incorrecte
80B0 Dfaillance de l'horloge temps rel
101BInstructions avances
8.1 Date et heure
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 257
8.1.3 Instruction Compteur d'heures de fonctionnement
Tableau 8- 12 Instruction RTM
CONT/LOG SCL Description

RTM(NR:=_uint_in_,
MODE:=_byte_in_,
PV:=_dint_in_,
CQ=>_bool_out_,
CV=>_dint_out_);
L'instruction RTM (Compteur d'heures de fonctionnement) permet de
rgler, dmarrer, arrter et lire les compteurs d'heures de fonctionnement
dans la CPU.

Tableau 8- 13 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
NR IN UInt Numro du compteur d'heures de fonctionnement : (valeurs
possibles : 0..9)
MODE IN Byte Numro de mode d'excution RTM :
0 = Lire les valeurs (l'tat est alors crit dans CQ et la valeur
en cours dans CV)
1 = Dmarrer ( la dernire valeur du compteur)
2 = Arrter
4 = Rgler ( la valeur indique dans PV)
5 = Rgler ( la valeur indique dans PV) puis dmarrer
6 = Rgler ( la valeur indique dans PV) puis arrter
7 = Sauvegarder toutes les valeurs RTM de la CPU dans la
carte mmoire
PV IN DInt Valeur d'heures prdfinie pour le compteur d'heures de
fonctionnement indiqu
RET_VAL OUT Int Rsultat de la fonction / message d'erreur
CQ OUT Bool Etat du compteur d'heures de fonctionnement (1 = en cours
d'excution)
CV OUT DInt Valeur d'heures de fonctionnement en cours pour le compteur
indiqu
La CPU exploite jusqu' dix compteurs d'heures de fonctionnement pour suivre les heures
de fonctionnement des sous-systmes de commande critiques. Vous devez dmarrer les
compteurs d'heures individuels avec une instruction RTM pour chaque compteur. Tous les
compteurs d'heures de fonctionnement s'arrtent lorsque la CPU passe de l'tat MARCHE
l'tat ARRET. Vous pouvez galement arrter des compteurs d'heures individuellement
l'aide du mode d'excution 2 de RTM.
Lorsqu'une CPU passe de l'tat ARRET l'tat MARCHE, vous devez redmarrer les
compteurs d'heures avec une instruction RTM pour chaque compteur dmarr. Lorsque la
valeur d'un compteur d'heures de fonctionnement est suprieure 2147483647 heures, le
comptage s'arrte et l'erreur "Dbordement" est mise. Vous devez excuter l'instruction
RTM une fois pour chaque compteur d'heures que vous voulez rinitialiser ou modifier.
101BInstructions avances
8.1 Date et heure
Automate programmable S7-1200
258 Manuel systme, 11/2011, A5E02486682-05
Une coupure de courant ou une mise hors tension de la CPU dclenche une procdure
d'arrt qui enregistre les valeurs en cours des compteurs d'heures de fonctionnement en
mmoire rmanente. A la remise sous tension de la CPU, les valeurs des compteurs
d'heures de fonctionnement sauvegardes sont recharges dans les compteurs d'heures
sans perte des totaux d'heures de fonctionnement prcdents. Les compteurs d'heures de
fonctionnement doivent tre redmarrs pour comptabiliser de nouvelles heures de
fonctionnement.
Vous pouvez galement utiliser le mode d'excution 7 de RTM dans votre programme pour
sauvegarder les valeurs des compteurs d'heures de fonctionnement en carte mmoire. L'tat
de tous les compteurs d'heures l'instant o le mode 7 de RTM est excut est alors stock
dans la carte mmoire. Ces valeurs enregistres peuvent devenir incorrectes avec le temps
du fait des dmarrages et arrts ventuels des compteurs d'heures pendant une session
d'excution du programme. Vous devez priodiquement actualiser les valeurs en carte
mmoire pour capturer les vnments de fonctionnement importants. L'avantage de
stocker les valeurs RTM en carte mmoire est que vous pouvez insrer la carte mmoire
dans une CPU de remplacement o votre programme est les valeurs RTM sauvegardes
seront alors disponibles. Si vous n'aviez pas sauvegard les valeurs RTM dans la carte
mmoire, elles seraient perdues (dans une CPU de remplacement).

Remarque
Evitez les appels excessifs d'oprations d'criture en carte mmoire dans votre programme
Rduisez les oprations d'criture en carte mmoire flash au minimum pour allonger la
dure de vie de la carte mmoire.


Tableau 8- 14 Codes d'erreur
RET_VAL (W#16#....) Description
0 Pas d'erreur
8080 Numro de compteur d'heures de fonctionnement incorrect
8081 Une valeur ngative a t transmise au paramtre PV.
8082 Dbordement du compteur d'heures de fonctionnement
8091 Le paramtre d'entre MODE contient une valeur incorrecte.
80B1 Impossible de sauvegarder les valeurs en carte mmoire (MODE = 7)
101BInstructions avances
8.1 Date et heure
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 259
8.1.4 Instruction SET_TIMEZONE
Tableau 8- 15 Instruction SET_TIMEZONE
CONT/LOG SCL Description

"SET_TIMEZONE_DB"(
Timezone:=_struct_in,
DONE=>_bool_out_,
BUSY=>_bool_out_,
ERROR=>_bool_out_,
STATUS=>_word_out_);
Dfinit les paramtres de fuseau horaire
local et d'heure d't utiliss pour
convertir l'heure systme CPU en heure
locale.
2
Dans l'exemple SCL, "SET_TIMEZONE_DB" est le nom du DB d'instance.

Tableau 8- 16 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
REQ IN Bool REQ=1 : la fonction est excute
Timezone IN TimeTransformationRule Rgles pour la conversion de l'heure systme en
heure locale
DONE OUT Bool Fonction acheve
BUSY OUT Bool Fonction occupe
ERROR OUT Bool Erreur dtecte
STATUS OUT Word Rsultat de la fonction / message d'erreur
1
L'entre REQ n'est pas utilise en SCL.
Pour configurer manuellement les paramtres de fuseau horaire pour la CPU, utilisez les
proprits "Heure" de l'onglet "Gnral" de la configuration d'appareil.
Utilisez l'instruction SET_TIMEZONE pour configurer l'heure locale par programme. Les
paramtres de la structure "TimeTransformationRule" indiquent le fuseau horaire local et les
informations de temps pour la commutation automatique entre heure d'hiver et heure d't.
Tableau 8- 17 "Structure "TimeTransformationRule
Paramtre Type de
donnes
Description
Bias Int Diffrence de temps entre l'heure UTC et l'heure locale [min]
DaylightBias Int Diffrence de temps entre l'heure d'hiver et l'heure d't [min]
DaylightStartMonth USInt Mois de passage l'heure d't
DaylightStartWeek USInt Semaine de passage l'heure d't :
1 = Premire occurrence du jour de la semaine dans le mois
...
5 = Dernire occurrence du jour de la semaine dans le mois
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
260 Manuel systme, 11/2011, A5E02486682-05
Paramtre Type de
donnes
Description
DaylightStartWeekday USInt Jour de passage l'heure d't :
1 = dimanche
...
7 = samedi
DaylightStartHour USInt Heure de passage l'heure d't
StandardStartMonth USInt Mois de passage l'heure d'hiver
StandardStartWeek USInt Semaine de passage l'heure d'hiver :
1 = Premire occurrence du jour de la semaine dans le mois
...
5 = Dernire occurrence du jour de la semaine dans le mois
StandardStartWeekday USInt Jour de passage l'heure d'hiver :
1 = dimanche
...
7 = samedi
StandardStartHour USInt Heure de passage l'heure d'hiver
Time Zone Name STRING [80] Nom du fuseau :
(GMT +01:00) Amsterdam, Berlin, Berne, Rome, Stockholm, Vienne
8.2 Chanes de caractres et caractres
8.2.1 Prsentation des donnes chanes de caractres (type String)
Type de donnes STRING
Les donnes chanes de caractres (de type String) sont stockes sous forme d'un en-tte
de deux octets suivi de 254 octets au maximum de codes de caractres ASCII. Un en-tte
de chane de caractres contient deux longueurs. Le premier octet correspond la longueur
maximale qui est indique entre crochets lorsque vous initialisez une chane (254 par
dfaut). Le deuxime octet de l'en-tte est la longueur en cours qui est le nombre de
caractres valides dans la chane. La longueur en cours doit tre infrieure ou gale la
longueur maximale. Le nombre d'octets occups par le format String est suprieur de 2
octets la longueur maximale.
Initialisation des donnes String
Les donnes d'entre et de sortie String doivent tre initialises en tant que chanes valides
en mmoire avant excution de toute instruction sur chane.
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 261
Donnes String valides
Une chane valide a une longueur maximale qui doit tre suprieure zro mais infrieure
255. La longueur en cours doit tre infrieure ou gale la longueur maximale.
Il n'est pas possible d'affecter des chanes aux zones de mmoire I ou Q.
Pour plus d'informations, reportez-vous Format du type de donnes String (Page 98).
8.2.2 Instruction S_MOVE
Tableau 8- 18 Instruction Copier chane
CONT/LOG SCL Description

out := in;
Copier la chane de caractres source IN dans la destination OUT. L'excution de
S_MOVE n'affecte pas le contenu de la chane source.

Tableau 8- 19 Types de donnes pour les paramtres
Paramtre Type de donnes Description
IN String Chane de caractres source
OUT String Adresse cible
Si la longueur effective de la chane dans l'entre IN dpasse la longueur maximale d'une
chane stocke dans la sortie OUT, seule la partie de la chane IN qui tient dans la chane
OUT est copie.
8.2.3 Instructions de conversion de chane
8.2.3.1 Conversions de chane en valeur et de valeur en chane
Vous pouvez convertir des chanes de caractres numriques en valeurs numriques ou des
valeurs numriques en chanes de caractres numriques l'aide des instructions suivantes
:
S_CONV convertit une chane numrique en valeur numrique ou bien une valeur
numrique en chane numrique.
STRG_VAL convertit une chane numrique en valeur numrique avec des options de
format.
VAL_STRG convertit une valeur numrique en chane numrique avec des options de
format.
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
262 Manuel systme, 11/2011, A5E02486682-05
S_CONV (conversions chane en valeur)
Tableau 8- 20 Instruction de conversion de chane
CONT/LOG SCL Description

out :=
<Type>_TO_<Type>(in);
Convertit une chane de caractres en sa valeur correspondante
ou une valeur en sa chane de caractres correspondante.
L'instruction S_CONV ne comporte pas d'options de formatage de
la sortie. Cela rend S_CONV plus simple utiliser mais moins
souple que les instructions STRG_VAL et VAL_STRG.
1
Pour CONT / LOG : Cliquez sur "???" et slectionnez le type de donnes dans la liste droulante.
2
Pour SCL : Slectionnez S_CONV dans les instructions avances et rpondez aux messages concernant les types de
donnes pour la conversion. STEP 7 propose alors l'instruction de conversion approprie.

Tableau 8- 21 Types de donnes (chane en valeur)
Paramtre et type Type de donnes Description
IN IN String Chane de caractres
d'entre
OUT OUT String, Char, SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Valeur numrique de sortie
La conversion du paramtre chane IN commence au premier caractre et continue jusqu'
la fin de la chane ou jusqu'au premier caractre rencontr qui n'est pas "0" "9", "+", "-" ou
".". La valeur rsultante est fournie l'adresse indique dans le paramtre OUT. Si la valeur
numrique en sortie ne tient pas dans la plage du type de donnes de OUT, le paramtre
OUT est mis 0 et ENO est dfini FAUX. Sinon, le paramtre OUT contient un rsultat
valide et ENO est dfini VRAI.
Rgles de format concernant la chane d'entre :
Si un sparateur dcimal est utilis dans la chane IN, vous devez utiliser le caractre ".".
Les virgules "," utilises comme sparateurs des milliers gauche du sparateur dcimal
sont autorises mais ne sont pas prises en compte.
Les espaces en tte ne sont pas pris en compte.
Les reprsentations en virgule flottante et en virgule fixe sont toutes deux prises en
charge. Les caractres "e" et "E" sont identifis comme notation exponentielle.
S_CONV (conversions valeur en chane)
Tableau 8- 22 Types de donnes (valeur en chane)
Paramtre et type Type de donnes Description
IN IN String, Char, SInt, Int, DInt, USInt, UInt, UDInt, Real, LReal Valeur numrique d'entre
OUT OUT String Chane de caractres de
sortie
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 263
Un paramtre IN entier, entier non sign ou nombre virgule flottante est converti en sa
chane de caractres correspondante dans OUT. Le paramtre OUT doit rfrencer une
chane valide pour que la conversion soit excute. Une chane valide comprend la longueur
de chane maximale dans le premier octet, la longueur de chane en cours dans le deuxime
octet et les caractres de la chane en cours dans les octets suivants. La chane convertie
remplace les caractres dans la chane OUT en commenant au premier caractre et l'octet
de longueur en cours de la chane OUT est ajust. L'octet de longueur maximale de la
chane OUT n'est pas modifi.
Le nombre de caractres remplacs dpend du type de donnes et de la valeur numrique
du paramtre IN. Le nombre de caractres remplacs doit tenir dans la longueur de la
chane du paramtre OUT. La longueur de chane maximale (premier octet) de la chane
OUT doit tre suprieure ou gale au nombre maximum attendu de caractres convertis. Le
tableau suivant montre les longueurs de chane maximales requises pour chaque type de
donnes pris en charge.
Tableau 8- 23 Longueurs maximales des chanes de caractres pour chaque type de donnes
Type de
donnes de
IN
Nombre maximum de caractres
convertis dans la chane OUT
Exemple Longueur de chane totale incluant les
octets de longueur maximale et en cours
USInt 3 255 5
SInt 4 -128 6
UInt 5 65535 7
Int 6 -32768 8
UDInt 10 4294967295 12
DInt 11 -2147483648 13
Rgles de format concernant la chane de sortie :
Les valeurs crites dans le paramtre OUT n'utilisent pas de signe "+" en tte.
La reprsentation en virgule fixe est utilise (et non la notation exponentielle).
Le point "." est utilis pour reprsenter le sparateur dcimal lorsque le paramtre IN est
de type de donnes Real.
Instruction STRG_VAL
Tableau 8- 24 Instruction Chane en valeur
CONT/LOG SCL Description

"STRG_VAL"(
in:=_string_in,
format:=_word_in,
p:=uint_in,
out=>_variant_out);
Convertit une chane de caractres numrique en sa
reprsentation entire ou virgule flottante
correspondante.
1
Pour CONT / LOG : Cliquez sur "???" et slectionnez le type de donnes dans la liste droulante.

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
264 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 25 Types de donnes pour l'instruction STRG_VAL
Paramtre et type Type de donnes Description
IN IN String Chane de caractres ASCII convertir
FORMAT IN Word Options de format de sortie
P IN UInt, Byte, USInt IN : Indice pointant sur le premier caractre
convertir (premier caractre = 1)
OUT OUT SInt, Int, DInt, USInt, UInt, UDInt,
Real, LReal
Valeur numrique convertie
La conversion commence dans la chane IN au dcalage de caractre P et continue jusqu'
la fin de la chane ou jusqu'au premier caractre rencontr qui n'est pas "+", "-", ".", ",", "e",
"E" ou "0" "9". Le rsultat est plac l'adresse indique dans le paramtre OUT.
Les donnes String doivent tre initialises avant l'excution en tant que chane valide en
mmoire.
Le paramtre FORMAT pour l'instruction STRG_VAL est dfini ci-dessous. Les positions de
bit inutilises doivent tre mises zro.
Tableau 8- 26 Format de l'instruction STRG_VAL
Bit
16
Bit 8 Bit 7 Bit 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 f r


f = format de notation 1= notation exponentielle
0 = notation virgule fixe
r = format du sparateur
dcimal
1 = "," (virgule)
0 = "." (point)

Tableau 8- 27 Valeurs du paramtre FORMAT
FORMAT (W#16#) Format de notation Reprsentation du sparateur
dcimal
0000 (par dfaut) "."
0001
Virgule fixe
","
0002 "."
0003
Exponentielle
","
0004 FFFF Valeurs illicites
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 265
Rgles pour la conversion STRG_VAL :
Si le point "." est utilis comme sparateur dcimal, les virgules "," gauche du
sparateur dcimal sont considres comme caractres de sparation des milliers. Les
virgules sont autorises mais ne sont pas prises en compte.
Si la virgule "," est utilise comme sparateur dcimal, les points "." gauche du
sparateur dcimal sont considrs comme caractres de sparation des milliers. Ces
points sont autoriss mais ne sont pas pris en compte.
Les espaces en tte ne sont pas pris en compte.
Instruction VAL_STRG
Tableau 8- 28 Instruction Valeur en chane
CONT/LOG SCL Description

"VAL_STRG"(
in:=_variant_in,
size:=_usint_in,
prec:=_usint_in,
format:=_word_in,
p:=uint_in,
out=>_string_out);
Convertit une valeur entire, entire non signe ou virgule
flottante en sa reprsentation chane de caractres
correspondante.
1
Pour CONT / LOG : Cliquez sur "???" et slectionnez le type de donnes dans la liste droulante.

Tableau 8- 29 Types de donnes pour l'instruction VAL_STRG
Paramtre et type Type de donnes Description
IN IN SInt, Int, DInt, USInt, UInt,
UDInt, Real, LReal
Valeur convertir
SIZE IN USInt Nombre de caractres crire dans la chane OUT
PREC IN USInt Prcision ou taille de la partie fractionnaire. Cela n'inclut
pas le sparateur dcimal.
FORMAT IN Word Options de format de sortie
P IN UInt, Byte, USInt IN : Indice pointant sur le premier caractre de la chane
OUT remplacer (premier caractre = 1)
OUT OUT String Chane convertie
La valeur reprsente par le paramtre IN est convertie en une chane rfrence par le
paramtre OUT. Le paramtre OUT doit tre une chane valide pour que la conversion soit
excute.
La chane convertie remplacera les caractres dans la chane OUT en commenant au
dcalage de caractres P et en allant jusqu'au nombre de caractres indiqu par le
paramtre SIZE. Le nombre de caractres dans SIZE doit tenir dans la longueur de la
chane OUT, le comptage commenant la position de caractre P. Cette instruction est
utile pour insrer des nombres dans une chane de texte. Vous pouvez, par exemple, insrer
le nombre "120" dans la chane "Pression pompe = 120 psi".
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
266 Manuel systme, 11/2011, A5E02486682-05
Le paramtre PREC indique la prcision ou le nombre de chiffres pour la partie fractionnaire
de la chane. Si la valeur du paramtre IN est un entier, PREC indique la position du
sparateur dcimal. Par exemple, si la valeur de donnes est 123 et que PREC est gal 1,
le rsultat sera "12.3". La prcision maximale accepte pour le type de donnes Real est de
7 chiffres.
Si le paramtre P est suprieur la taille en cours de la chane OUT, des espaces sont
ajouts jusqu' la position P et le rsultat est ajout la fin de la chane. La conversion
s'arrte si la longueur maximale de la chane OUT est atteinte.
Le paramtre FORMAT pour l'instruction VAL_STRG est dfini ci-dessous. Les positions de
bit inutilises doivent tre mises zro.
Tableau 8- 30 Format de l'instruction VAL_STRG
Bit
16
Bit 8 Bit 7 Bit 0
0 0 0 0 0 0 0 0 0 0 0 0 0 s f r


s = signe du nombre 1= utiliser les caractres "+" et "-" pour le signe
0 = utiliser le caractre "-" uniquement
f = format de notation 1= notation exponentielle
0 = notation virgule fixe
r = format du sparateur dcimal 1 = "," (virgule)
0 = "." (point)

Tableau 8- 31 Valeurs du paramtre FORMAT
FORMAT (WORD) Signe du nombre Format de notation Reprsentation du
sparateur dcimal
W#16#0000 "."
W#16#0001
Virgule fixe
","
W#16#0002 "."
W#16#0003
"-" uniquement
Exponentielle
","
W#16#0004 "."
W#16#0005
Virgule fixe
","
W#16#0006 "."
W#16#0007
"+" et "-"
Exponentielle
","
W#16#0008 W#16#FFFF Valeurs illicites

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 267
Rgles de format concernant la chane OUT :
Des espaces sont ajouts l'extrme gauche de la chane lorsque la chane convertie
est infrieure la taille prcise.
Lorsque le bit de signe du paramtre FORMAT est FAUX, les valeurs de type de
donnes entier non sign et entier sign sont crites dans la mmoire tampon de sortie
sans tre prcdes du signe "+". Le signe "-" est utilis si ncessaire.
<espaces en tte><chiffres sans zros en tte>'.'<chiffres PREC>
Lorsque le bit de signe est VRAI, les valeurs de type de donnes entier non sign et
entier sign sont toujours crites dans la mmoire tampon de sortie avec un caractre de
signe en tte.
<espaces en tte><signe><chiffres sans zros en tte>'.'<chiffres PREC>
Lorsque la notation exponentielle est paramtre dans FORMAT, les valeurs de type de
donnes Real sont crites comme suit dans la mmoire tampon de sortie :
<espaces en tte><signe><chiffre> '.' <chiffres PREC>'E' <signe><chiffres sans zro en
tte>
Lorsque la notation en virgule fixe est paramtre dans FORMAT, les valeurs de type de
donnes entier, entier non sign et rel sont crites comme suit dans la mmoire tampon
de sortie :
<espaces en tte><signe><chiffres sans zros en tte>'.'<chiffres PREC>
Les zros en tte gauche du sparateur dcimal sont supprims (except le chiffre
ct du sparateur dcimal).
Les valeurs droite du sparateur dcimal sont arrondies pour correspondre au nombre
de chiffres droite du sparateur dcimal indiqu par le paramtre PREC.
La taille de la chane de sortie doit tre au minimum de trois octets suprieure au nombre
de chiffres droite du sparateur dcimal.
Les valeurs sont alignes droite dans la chane de sortie.
Situations d'erreur signales par ENO
Lorsqu'une erreur se produit pendant l'opration de conversion, les rsultats suivants sont
renvoys :
ENO est mis 0.
OUT est mis 0 ou dfini comme montr dans les exemples de conversion de chane en
valeur.
OUT reste inchang ou est dfini comme montr dans les exemples o OUT est une
chane.
Tableau 8- 32 Etat de ENO
ENO Description
1 Pas d'erreur
0 Paramtre illicite ou invalide ; par exemple, accs un DB qui n'existe pas.
0 Chane illicite : la longueur maximale de la chane est 0 ou 255.
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
268 Manuel systme, 11/2011, A5E02486682-05
ENO Description
0 Chane illicite : la longueur en cours est suprieure la longueur maximale.
0 La valeur numrique convertie est trop grande pour le type de donnes spcifi pour OUT.
0 La taille de chane maximale du paramtre OUT doit tre suffisamment grande pour recevoir le nombre de
caractres indiqu par le paramtre SIZE, en commenant la position de caractre indique par le
paramtre P.
0 Valeur P illicite : P = 0 ou P est suprieur la longueur de chane en cours.
0 Le paramtre SIZE doit tre suprieur au paramtre PREC.

Tableau 8- 33 Exemples de conversion de chane en valeur S_CONV
Chane IN Type de donnes de
OUT
Valeur OUT ENO
"123" Int ou DInt 123 VRAI
"-00456" Int ou DInt -456 VRAI
"123.45" Int ou DInt 123 VRAI
"+2345" Int ou DInt 2345 VRAI
"00123AB" Int ou DInt 123 VRAI
"123" Real 123.0 VRAI
"123.45" Real 123.45 VRAI
"1.23e-4" Real 1.23 VRAI
"1.23E-4" Real 1.23 VRAI
"12,345.67" Real 12345.67 VRAI
"3.4e39" Real 3.4 VRAI
"-3.4e39" Real -3.4 VRAI
"1.17549e-38" Real 1.17549 VRAI
"12345" SInt 0 FAUX
"A123" Sans objet 0 FAUX
"" Sans objet 0 FAUX
"++123" Sans objet 0 FAUX
"+-123" Sans objet 0 FAUX

Tableau 8- 34 Exemples de conversion de valeur en chane S_CONV
Type de donnes Valeur IN Chane OUT ENO
UInt 123 "123" VRAI
UInt 0 "0" VRAI
UDInt 12345678 "12345678" VRAI
Real -INF "INF" FAUX
Real +INF "INF" FAUX
Real NaN "NaN" FAUX

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 269
Tableau 8- 35 Exemples de conversion STRG_VAL
Chane IN FORMAT
(W#16#....)
Type de donnes
de OUT
Valeur OUT ENO
"123" 0000 Int ou DInt 123 VRAI
"-00456" 0000 Int ou DInt -456 VRAI
"123.45" 0000 Int ou DInt 123 VRAI
"+2345" 0000 Int ou DInt 2345 VRAI
"00123AB" 0000 Int ou DInt 123 VRAI
"123" 0000 Real 123.0 VRAI
"-00456" 0001 Real -456.0 VRAI
"+00456" 0001 Real 456.0 VRAI
"123.45" 0000 Real 123.45 VRAI
"123.45" 0001 Real 12345.0 VRAI
"123,45" 0000 Real 12345.0 VRAI
"123,45" 0001 Real 123.45 VRAI
".00123AB" 0001 Real 123.0 VRAI
"1.23e-4" 0000 Real 1.23 VRAI
"1.23E-4" 0000 Real 1.23 VRAI
"1.23E-4" 0002 Real 1.23E-4 VRAI
"12,345.67" 0000 Real 12345.67 VRAI
"12,345.67" 0001 Real 12.345 VRAI
"3.4e39" 0002 Real +INF VRAI
"-3.4e39" 0002 Real -INF VRAI
"1.1754943e-38"
(et infrieur)
0002 Real 0.0 VRAI
"12345" Sans objet SInt 0 FAUX
"A123" Sans objet Sans objet 0 FAUX
"" Sans objet Sans objet 0 FAUX
"++123" Sans objet Sans objet 0 FAUX
"+-123" Sans objet Sans objet 0 FAUX
Les exemples suivants de conversions VAL_STRG sont bass sur une chane OUT
initialise comme suit :
"Current Temp = xxxxxxxxxx C"
Le caractre "x" reprsente des espaces allous pour la valeur convertie.
Tableau 8- 36 Exemples de conversion VAL_STRG
Type de
donnes
Valeur IN P SIZE FORMAT
(W#16#....)
PREC Chane OUT ENO
UInt 123 16 10 0000 0
Current Temp =
xxxxxxx123 C
VRAI
UInt 0 16 10 0000 2
Current Temp =
xxxxxx0.00 C
VRAI
UDInt 12345678 16 10 0000 3
Current Temp =
x12345.678 C
VRAI
UDInt 12345678 16 10 0001 3
Current Temp =
x12345,678 C
VRAI
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
270 Manuel systme, 11/2011, A5E02486682-05
Type de
donnes
Valeur IN P SIZE FORMAT
(W#16#....)
PREC Chane OUT ENO
Int 123 16 10 0004 0
Current Temp =
xxxxxx+123 C
VRAI
Int -123 16 10 0004 0
Current Temp =
xxxxxx-123 C
VRAI
Real -0.00123 16 10 0004 4
Current Temp = xxx-
0.0012 C
VRAI
Real -0.00123 16 10 0006 4
Current Temp = -
1.2300E-3 C
VRAI
Real -INF 16 10 Sans objet 4
Current Temp =
xxxxxx-INF C
FAUX
Real +INF 16 10 Sans objet 4
Current Temp =
xxxxxx+INF C
FAUX
Real NaN 16 10 Sans objet 4
Current Temp =
xxxxxxxNaN C
FAUX
UDInt 12345678 16 6 Sans objet 3
Current Temp =
xxxxxxxxxx C
FAUX
8.2.3.2 Conversions de chane en caractres et de caractres en chane
Chars_TO_Strg copie un tableau d'octets de caractres ASCII dans une chane de
caractres.
Strg_TO_Chars copie une chane de caractres ASCII dans un tableau d'octets de
caractres.

Remarque
Seuls les types de tableaux de base zro (Array [0..n] of Char ou Array [0..n] of Byte) sont
autoriss comme paramtre d'entre Chars pour l'instruction Chars_TO_Strg ou comme
paramtre d'entre/sortie Chars pour l'instruction Strg_TO_Chars .


Tableau 8- 37 Instruction Chars_TO_Strg
CONT/LOG SCL Description

Chars_TO_Strg(
Chars:=_variant_in_,
pChars:=_dint_in_,
Cnt:=_uint_in_,
Strg=>_string_out_);
L'ensemble ou une partie d'un tableau de caractres est copi
dans une chane.
La chane de sortie doit tre dclare avant l'excution de
Chars_TO_Strg. La chane est alors crase par l'excution de
l'instruction Chars_TO_Strg.
Il est possible d'utiliser des chanes de toutes les longueurs
maximales acceptes (1..254).
La longueur de chane maximale n'est pas modifie par
l'instruction Chars_TO_Strg . La copie du tableau dans la chane
s'arrte lorsque la longueur de chane maximale est atteinte.
Une valeur de caractre nul ($00) ou 16#00 dans le tableau de
caractres constitue un dlimiteur qui met fin la copie de
caractres dans la chane.

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 271
Tableau 8- 38 Types de donnes pour les paramtres (Chars_TO_Strg)
Paramtre et type Type de donnes Description
Chars IN Variant Le paramtre Chars est un pointeur dsignant un tableau de
caractres de base zro [0..n] convertir en chane. Le
tableau peut tre dclar dans un DB ou sous forme de
variables locales dans l'interface de bloc.
Exemple : "DB1".MyArray dsigne les lments de MyArray
[0..10] of Char dans le DB1.
pChars IN Dint Numro d'lment du premier caractre du tableau copier.
L'lment [0] du tableau est pris par dfaut.
Cnt IN UInt Nombre de caractres copier ; 0 signifie tous les caractres.
Strg OUT String Chane cible

Tableau 8- 39 Instruction Strg_TO_Chars
CONT/LOG SCL Description

Strg_TO_Chars(
Strg:=_string_in_,
pChars:=_dint_in_,
Cnt=>_uint_out_,
Chars:=_variant_inout_);
La chane d'entre complte Strg est copie dans un
tableau de caractres indiqu par le paramtre IN_OUT
Chars.
L'opration crase les octets en commenant l'lment du
tableau indiqu par le paramtre pChars.
Il est possible d'utiliser des chanes de toutes les longueurs
maximales acceptes (1..254).
Aucun dlimiteur de fin n'est crit ; c'est vous de vous en
charger. Pour placer un dlimiteur de fin juste aprs le
dernire caractre crit dans le tableau, utilisez le numro
d'lment de tableau suivant [pChars+Cnt].

Tableau 8- 40 Types de donnes pour les paramtres (Strg_TO_Chars)
Paramtre et type Type de donnes Description
Strg IN String Chane de caractres source
pChars IN DInt Numro d'lment de tableau pour le premier caractre de la
chane crit dans le tableau cible
Chars IN_OUT Variant Le paramtre Chars est un pointeur dsignant un tableau de
caractres de base zro [0..n] copier depuis la chane
d'entre. Le tableau peut tre dclar dans un DB ou sous
forme de variables locales dans l'interface de bloc.
Exemple : "DB1".MyArray dsigne les lments de MyArray
[0..10] of Char dans le DB1.
Cnt OUT UInt Nombre de caractres copis

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
272 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 41 Etat de ENO
ENO Description
1 Pas d'erreur
0 Chars_TO_Strg : Tentative de copier dans la chane de sortie plus d'octets de caractres que ne l'autorise
l'octet de longueur maximale dans la dclaration de la chane
0 Chars_TO_Strg : La valeur de caractre nul (16#00) a t trouve dans le tableau de caractres d'entre.
0 Strg_TO_Chars : Tentative de copier dans le tableau de sortie plus d'octets de caractres que ne l'autorise
la limite de nombre d'lments
8.2.3.3 Conversions de ASCII en hexadcimal et de hexadcimal en ASCII
Utilisez les instructions ATH (ASCII en hexadcimal) et HTA (Hexadcimal en ASCII) pour
effectuer des conversions entre octets de caractres ASCII (caractres 0 9 et majuscules
A F uniquement) et les quartets hexadcimaux correspondants.
Tableau 8- 42 Instruction ATH
CONT/LOG SCL Description

ret_val := ATH(
in:=_variant_in_,
n:=_int_in_,
out=>_variant_out_);
Convertit des caractres ASCII en chiffres hexadcimaux
condenss.

Tableau 8- 43 Types de donnes pour l'instruction ATH
Type de paramtre Type de donnes Description
IN IN Variant Pointeur dsignant le tableau d'octets de caractres ASCII
N IN UInt Nombre d'octets de caractres ASCII convertir
RET_VAL OUT Word Code d'erreur d'excution
OUT OUT Variant Pointeur dsignant le tableau d'octets hexadcimaux convertis
La conversion commence l'emplacement indiqu par le paramtre IN et se poursuit sur N
octets. Le rsultat est plac l'emplacement indiqu par OUT. Seuls les caractres ASCII
valides 0 9 et majuscules A F peuvent tre convertis. Tout autre caractre est converti
en un zro.
Les caractres cods ASCII de 8 bits sont convertis en quartets hexadcimaux. Deux
caractres ASCII peuvent tre stocks dans un octet unique.
Les paramtres IN et OUT correspondent des tableaux d'octets et non des donnes de
type String hexadcimales. Les caractres ASCII sont convertis et placs dans la sortie
hexadcimale dans l'ordre o ils sont lus. S'il y a un nombre impair de caractres ASCII, le
quartet de droite du dernier chiffre hexadcimal converti est complt avec des zros.
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 273
Tableau 8- 44 Codes d'erreur de ATH
RET_VAL (W#16#....) Description ENO
0000 Pas d'erreur VRAI
0007 Caractre d'entre ATH invalide FAUX

Tableau 8- 45 Exemples de conversion d'ASCII en hexadcimal (ATH)
Octets caractres dans IN N Valeur OUT ENO
'0123' 4 W#16#0123 VRAI
'123AFx1a23' 10 DW#16#123AF01023 FAUX
'a23' 3 W#16#A230 VRAI

Tableau 8- 46 Instruction HTA
CONT/LOG SCL Description

ret_val := HTA(
in:=_variant_in_,
n:=_uint_in_,
out=>_variant_out_);
Convertit des chiffres hexadcimaux condenss en octets de
caractres ASCII correspondants.

Tableau 8- 47 Types de donnes pour l'instruction HTA
Paramtre et type Type de
donnes
Description
IN IN Variant Pointeur dsignant le tableau d'octets d'entre
N IN UInt Nombre d'octets convertir (chaque octet d'entre comporte deux
quartets ce qui produit 2N caractres ASCII)
RET_VAL OUT Word Code d'erreur d'excution
OUT OUT Variant Pointeur dsignant le tableau d'octets de caractres ASCII
La conversion commence l'emplacement indiqu par le paramtre IN et se poursuit sur N
octets. Chaque quartet est converti en un unique caractre ASCII de 8 bits, ce qui produit 2N
octets de caractres ASCII de sortie. Les 2N octets de la sortie sont crits sous forme de
caractres ASCII de 0 9 et A F majuscules. Le paramtre OUT correspond un tableau
d'octets et non une chane de caractres.
Les quartets des octets hexadcimaux sont convertis en caractres dans l'ordre o ils sont
lus (le quartet de gauche d'un octet hexadcimal est converti le premier, suivi par le quartet
de droite de ce mme octet).
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
274 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 48 Exemples de conversion de hexadcimal en ASCII (HTA)
Valeur IN N Octets caractres dans
OUT
ENO (ENO est toujours VRAI aprs l'excution de HTA)
W#16#0123 2 '0123' VRAI
DW#16#123AF012 4 '123AF012' VRAI

Tableau 8- 49 Codes d'erreur de ATH and HTA
RET_VAL
(W#16#....)
Description ENO
0000 Pas d'erreur VRAI
0007 Caractre d'entre ATH invalide : Un caractre qui n'tait pas un caractre ASCII 0
9, a f minuscule ou A F majuscule a t trouv.
FAUX
8101 Pointeur d'entre illicite ou invalide ; par exemple, accs un DB qui n'existe pas. FAUX
8120 La chane d'entre a un format invalide, c'est--dire max=0, max=255, valeur en
cours>max ou longueur alloue dans le pointeur < max.
FAUX
8182 Mmoire tampon d'entre trop petite pour N FAUX
8151 Type de donnes interdit pour la mmoire tampon d'entre FAUX
8301 Pointeur de sortie illicite ou invalide ; par exemple, accs un DB qui n'existe pas. FAUX
8320 La chane de sortie a un format invalide, c'est--dire max=0, max=255, valeur en
cours>max ou longueur alloue dans le pointeur < max.
FAUX
8382 Mmoire tampon de sortie trop petite pour N FAUX
8351 Type de donnes interdit pour la mmoire tampon de sortie FAUX
8.2.4 Instructions sur chane
Votre programme de commande peut utiliser les instructions sur chane et sur caractre
suivantes pour crer des messages destins aux afficheurs et aux journaux du processus.
8.2.4.1 LEN
Tableau 8- 50 Instruction Longueur
CONT/LOG SCL Description

out := LEN(in);
LEN (Longueur) transmet la longueur en cours de la chane IN la sortie OUT.
Une chane vide a une longueur de zro.

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 275
Tableau 8- 51 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN IN String Chane d'entre
OUT OUT Int, DInt, Real, LReal Nombre de caractres valides dans la chane d'entre IN

Tableau 8- 52 Etat de ENO
ENO Situation d'erreur OUT
1 Pas de chane invalide Longueur de chane valide
La longueur en cours de IN dpasse la longueur maximale de IN.
La longueur maximale de IN n'entre pas dans la zone de mmoire alloue.
0
La longueur maximale de IN est 255 (longueur interdite).
La longueur en cours est
mise 0.
8.2.4.2 CONCAT
Tableau 8- 53 Instruction Concatner des chanes
CONT/LOG SCL Description

out := CONCAT(in1, in2);
CONCAT (Concatner des chanes) combine les chanes IN1 et
IN2 pour former une nouvelle chane dans OUT. Aprs la
concatnation, la chane IN1 est la partie gauche et la chane IN2
la partie droite de la chane combine.

Tableau 8- 54 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN1 IN String Chane d'entre 1
IN2 IN String Chane d'entre 2
OUT OUT String Chane combine (chane 1 + chane 2)

Tableau 8- 55 Etat de ENO
ENO Situation d'erreur OUT
1 Pas d'erreur dtecte Caractres valides
La chane rsultante aprs concatnation est plus grande que la longueur
maximale de la chane OUT.
Les caractres de la chane
rsultante sont copis jusqu' ce
que la longueur maximale de
OUT soit atteinte.
0
La longueur en cours de IN1 dpasse la longueur maximale de IN1, la
longueur en cours de IN2 dpasse la longueur maximale de IN2 ou la
longueur en cours de OUT dpasse la longueur maximale de OUT (chane
invalide).
La longueur en cours est mise
0.
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
276 Manuel systme, 11/2011, A5E02486682-05
ENO Situation d'erreur OUT
La longueur maximale de IN1, IN2 ou OUT n'entre pas dans la zone de
mmoire alloue.
La longueur maximale de IN1 ou IN2 est 255 ou la longueur maximale de
OUT est 0 ou 255.
8.2.4.3 LEFT, RIGHT et MID
Tableau 8- 56 Instructions Lire les caractres de gauche d'une chane, Lire les caractres de droite d'une chane et Lire les
caractres du milieu d'une chane
CONT/LOG SCL Description

out := LEFT(in, L);
LEFT (Lire les caractres de gauche d'une chane) renvoie une sous-
chane constitue des L premiers caractres du paramtre chane IN.
Si L est suprieur la longueur en cours de la chane IN, la chane
IN entire est renvoye dans OUT.
Si l'entre est une chane vide, une chane vide est renvoye dans
OUT.

out := MID(in, L, p);
MID (Lire les caractres du milieu d'une chane) renvoie la partie
mdiane d'une chane. La sous-chane mdiane fait L caractres de
long et commence la position de caractre P (incluse).
Si la somme de L et de P dpasse la longueur en cours de la chane
IN, une sous-chane commenant la position de caractre P et allant
jusqu' la fin de la chane IN est renvoye.

out := RIGHT(in, L);
RIGHT (Lire les caractres de droite d'une chane) renvoie les L
derniers caractres d'une chane.
Si L est suprieur la longueur en cours de la chane IN, la chane
IN entire est renvoye dans le paramtre OUT.
Si l'entre est une chane vide, une chane vide est renvoye dans
OUT.

Tableau 8- 57 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN IN String Chane d'entre
L IN Int Longueur de la sous-chane crer :
LEFT utilise le nombre de caractres les plus gauche dans la
chane.
RIGHT utilise le nombre de caractres les plus droite dans la
chane.
MID utilise le nombre de caractres partir de la position P
dans la chane.
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 277
Paramtre et type Type de donnes Description
P IN Int MID uniquement : Position du premier caractre de la sous-chane
copier
P= 1 pour la position de caractre de dbut de la chane IN
OUT OUT String Chane de sortie

Tableau 8- 58 Etat de ENO
ENO Situation d'erreur OUT
1 Pas d'erreur dtecte Caractres valides
L ou P est infrieur ou gal 0.
P est suprieur la longueur maximale de IN.
La longueur en cours de IN dpasse la longueur maximale de IN ou la
longueur en cours de OUT dpasse la longueur maximale de OUT.
La longueur maximale de IN ou OUT n'entre pas dans la zone de
mmoire alloue.
La longueur maximale de IN ou OUT est 0 ou 255.
La longueur en cours est mise
0.
La longueur (L) de la sous-chane copier est suprieure la longueur
maximale de la chane OUT.
Les caractres sont copis
jusqu' ce que la longueur
maximale de OUT soit atteinte.
MID uniquement : L ou P est infrieur ou gal 0.
MID uniquement : P est suprieur la longueur maximale de IN
La longueur en cours est mise
0.
La longueur en cours de IN1 dpasse la longueur maximale de IN1 ou la
longueur en cours de IN2 dpasse la longueur maximale de IN2 (chane
invalide).
La longueur maximale de IN1, IN2 ou OUT n'entre pas dans la zone de
mmoire alloue.
0
La longueur maximale de IN1, IN2 ou OUT est 0 ou 255 (longueur
interdite).
La longueur en cours est mise
0.
8.2.4.4 DELETE
Tableau 8- 59 Instruction Supprimer des caractres dans une chane
CONT/LOG SCL Description

out := DELETE(in, L, p);
Supprime L caractres dans la chane IN. La suppression des
caractres commence la position P (incluse) et la sous-chane
restante est renvoye dans le paramtre OUT.
Si L est gal zro, la chane d'entre est renvoye dans
OUT.
Si la somme de L et de P est suprieure la longueur de la
chane d'entre, la chane est efface jusqu' la fin.

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
278 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 60 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN IN String Chane d'entre
L IN Int Nombre de caractres supprimer
P IN Int Position du premier caractre supprimer. Le premier caractre
de la chane IN correspond au numro de position 1.
OUT OUT String Chane de sortie

Tableau 8- 61 Etat de ENO
ENO Situation d'erreur OUT
1 Pas d'erreur dtecte Caractres valides
P est suprieur la longueur en cours de IN IN est copi dans OUT sans
qu'aucun caractre ne soit
supprim.
La chane rsultante aprs suppression des caractres est plus grande
que la longueur maximale de la chane OUT.
Les caractres de la chane
rsultante sont copis jusqu' ce
que la longueur maximale de
OUT soit atteinte.
L est infrieur 0 ou P est infrieur ou gal 0.
La longueur en cours de IN dpasse la longueur maximale de IN ou la
longueur en cours de OUT dpasse la longueur maximale de OUT.
La longueur maximale de IN ou OUT n'entre pas dans la zone de mmoire
alloue.
0
La longueur maximale de IN ou OUT est 0 ou 255.
La longueur en cours est mise
0.
8.2.4.5 INSERT
Tableau 8- 62 Instruction Insrer des caractres dans une chane
CONT/LOG SCL Description

out := INSERT(in1, in2, p);
Insre la chane IN2 dans la chane IN1. L'insertion commence
aprs le caractre la position P.

Tableau 8- 63 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN1 IN String Chane d'entre 1
IN2 IN String Chane d'entre 2
101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 279
Paramtre et type Type de donnes Description
P IN Int Dernire position de caractre dans la chane IN1 avant le point
d'insertion de la chane IN2.
Le premier caractre de la chane IN1 correspond au numro de
position 1.
OUT OUT String Chane rsultante

Tableau 8- 64 Etat de ENO
ENO Situation d'erreur OUT
1 Pas d'erreur dtecte Caractres valides
P est suprieur la longueur de IN1. IN2 est concatn IN1 immdiatement
aprs le dernier caractre de IN1.
P est infrieur 0. La longueur en cours est mise 0.
La chane rsultante aprs insertion est plus grande que la
longueur maximale de la chane OUT.
Les caractres de la chane rsultante
sont copis jusqu' ce que la longueur
maximale de OUT soit atteinte.
La longueur en cours de IN1 dpasse la longueur maximale de IN1,
la longueur en cours de IN2 dpasse la longueur maximale de IN2
ou la longueur en cours de OUT dpasse la longueur maximale de
OUT (chane invalide).
La longueur maximale de IN1, IN2 ou OUT n'entre pas dans la zone
de mmoire alloue.
0
La longueur maximale de IN1 ou IN2 est 255 ou la longueur
maximale de OUT est 0 ou 255.
La longueur en cours est mise 0.
8.2.4.6 REPLACE
Tableau 8- 65 Instruction Remplacer des caractres dans une chane
CONT/LOG SCL Description

out := REPLACE(
in1:=_string_in_,
in2:=_string_in_,
L:=_int_in_,
p:=_int_in);
Remplace L caractres dans la chane IN1. La substitution
commence la position de caractre P (incluse) de la chane IN1,
les caractres de substitution provenant de la chane IN2.

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
280 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 66 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN1 IN String Chane d'entre
IN2 IN String Chane de caractres de substitution
L IN Int Nombre de caractres remplacer
P IN Int Position du premier caractre remplacer
OUT OUT String Chane rsultante
Si le paramtre L est gal zro, la chane IN2 est insre la position P de la chane IN1
sans qu'aucun caractre de la chane IN1 ne soit effac.
Si P est gal 1, les L premiers caractres de la chane IN1 sont remplacs par les
caractres de la chane IN2.
Tableau 8- 67 Etat de ENO
ENO Situation d'erreur OUT
1 Pas d'erreur dtecte Caractres valides
P est suprieur la longueur de IN1. IN2 est concatn IN1 immdiatement
aprs le dernier caractre de IN1.
P pointe l'intrieur de IN1 mais il reste moins de L caractres
dans IN1.
IN2 remplace les derniers caractres de
IN1 en commenant la position P.
La chane rsultante aprs substitution est plus grande que la
longueur maximale de la chane OUT.
Les caractres de la chane rsultante
sont copis jusqu' ce que la longueur
maximale de OUT soit atteinte.
La longueur maximale de IN1 est 0. IN2 Les caractres de IN2 sont copis
dans OUT
L est infrieur 0 ou P est infrieur ou gal 0.
La longueur en cours de IN1 dpasse la longueur maximale de IN1,
la longueur en cours de IN2 dpasse la longueur maximale de IN2
ou la longueur en cours de OUT dpasse la longueur maximale de
OUT.
La longueur maximale de IN1, IN2 ou OUT n'entre pas dans la zone
de mmoire alloue.
0
La longueur maximale de IN1 ou IN2 est 255 ou la longueur
maximale de OUT est 0 ou 255.
La longueur en cours est mise 0.
8.2.4.7 FIND
Tableau 8- 68 Instruction Trouver des caractres dans une chane
CONT/LOG SCL Description

out := FIND(
in1:=_string_in_,
in2:=_string_in);
Renvoie la position de la sous-chane indique par IN2 l'intrieur de
la chane IN1. La recherche commence par la gauche. La position de
caractre de la premire occurrence de la chane IN2 est renvoye
dans OUT. Si la chane IN2 est introuvable dans la chane IN1, zro
est renvoy.

101BInstructions avances
8.2 Chanes de caractres et caractres
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 281
Tableau 8- 69 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
IN1 IN String Recherche l'intrieur de cette chane
IN2 IN String Chane recherche
OUT OUT Int Position de caractre dans la chane IN1 de la premire occurrence
de la chane recherche

Tableau 8- 70 Etat de ENO
ENO Situation d'erreur OUT
1 Pas d'erreur dtecte Position de caractre valide
IN2 est plus grand que IN1
La longueur en cours de IN1 dpasse la longueur maximale de IN1 ou la
longueur en cours de IN2 dpasse la longueur maximale de IN2 (chane
invalide).
La longueur maximale de IN1 ou IN2 n'entre pas dans la zone de
mmoire alloue.
0
La longueur maximale de IN1 ou IN2 est 255.
La position de caractre est mise
0.
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
282 Manuel systme, 11/2011, A5E02486682-05
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
8.3.1 RDREC et WRREC
Vous pouvez utiliser les instructions RDREC (Lecture enregistrement) et WRREC (Ecriture
enregistrement) avec PROFINET, PROFIBUS et AS-i.
Tableau 8- 71 Instructions RDREC et WRREC
CONT/LOG SCL Description

"RDREC_DB"(
req:=_bool_in_,
ID:=_word_in_,
index:=_dint_in_,
mlen:=_uint_in_,
valid=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_dword_out_,
len=>_uint_out_,
record:=_variant_inout_);
Utilisez l'instruction RDREC pour lire
l'enregistrement de numro INDEX dans
le composant dsign par le paramtre
ID, par exemple un chssis central ou un
composant dcentralis (PROFIBUS DP
ou PROFINET IO). Indiquez dans MLEN
le nombre maximum d'octets lire. La
longueur de la zone cible RECORD doit
donc tre d'au moins MLEN octets.

"WRREC_DB"(
req:=_bool_in_,
ID:=_word_in_,
index:=_dint_in_,
len:=_uint_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_dword_out_,
record:=_variant_inout_);
Utilisez l'instruction WRREC pour
transfrer l'enregistrement RECORD de
numro INDEX dans un esclave
DP/priphrique PROFINET IO dsign
par ID, par exemple un module dans le
chssis central ou un composant
dcentralis (PROFIBUS DP ou
PROFINET IO).
Indiquez dans LEN la longueur en octets
de l'enregistrement transmettre. La
longueur de la zone source RECORD doit
donc tre d'au moins LEN octets.
1
STEP 7 cre automatiquement le DB lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "RDREC_DB" et "WRREC_DB" sont les noms des DB d'instance.

101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 283
Tableau 8- 72 Types de donnes pour les paramtres de RDREC et WRREC
Paramtre et type Type de donnes Description
REQ IN Bool REQ = 1 : Transfrer un enregistrement
ID IN HW_IO (Word) Adresse logique de l'esclave DP/composant PROFINET IO
(module ou sous-module) :
Pour un module de sorties, le bit 15 doit tre 1 (par
exemple, pour l'adresse 5 : ID:= DW#16#8005).
Pour un module d'entres-sorties, la plus petite des deux
adresses doit tre indique.
Remarque : L'ID d'appareil peut tre dtermine de l'une des
deux faons suivantes :
Via les slections suivantes dans la vue du rseau :
Appareil (bote grise)
"Proprits" de l'appareil
"Identificateur matriel"
Remarque : Tous les appareils n'affichent toutefois pas
leur identificateur matriel.
Via les slections suivantes dans la vue du projet :
Variables API
Table de variables par dfaut
Onglet Constantes systme
Tous les identificateurs matriels d'appareils configurs sont
affichs.
INDEX IN Byte, Word, USInt,
UInt, SInt, Int, DInt
Numro de l'enregistrement
MLEN IN Byte, USInt, UInt Longueur maximale en octets des informations de
l'enregistrement lire (RDREC)
VALID OUT Bool Un nouvel enregistrement valide a t reu (RDREC). Le bit
VALID est VRAI pour un cycle lorsque la dernire demande
s'est acheve sans erreur.
DONE OUT Bool L'enregistrement a t transfr (WRREC). Le bit DONE est
VRAI pour un cycle lorsque la dernire demande s'est acheve
sans erreur.
BUSY OUT Bool
BUSY = 1 : L'opration de lecture (RDREC) ou d'criture
(WRREC) n'est pas encore termine.
BUSY = 0 : La transmission de l'enregistrement est acheve.
ERROR OUT Bool ERROR = 1 : Une erreur de lecture (RDREC) ou d'criture
(WRREC) s'est produite. Le bit ERROR est VRAI pour un cycle
lorsque la dernire demande s'est acheve avec une erreur. La
valeur de code d'erreur dans le paramtre STATUS ne vaut que
pendant le cycle o ERROR est VRAI.
STATUS OUT DWord Etat du bloc ou information d'erreur
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
284 Manuel systme, 11/2011, A5E02486682-05
Paramtre et type Type de donnes Description
LEN OUT (RDREC)
IN (WRREC)
UInt
Longueur des informations lues de l'enregistrement
(RDREC)
Longueur maximale en octets de l'enregistrement crire
(WRREC)
RECORD IN_OUT Variant
Zone cible pour l'enregistrement lu (RDREC)
Enregistrement (WRREC)
Les instructions RDREC et WRREC ont un fonctionnement asynchrone, c'est--dire que le
traitement s'tend sur plusieurs appels d'instruction. Lancez la tche en appelant RDREC ou
WRREC avec REQ gal 1.
L'tat de la tche est indiqu dans le paramtre de sortie BUSY et dans les deux octets
centraux du paramtre de sortie STATUS. Le transfert de l'enregistrement est achev
lorsque le paramtre de sortie BUSY a la valeur FALSE.
La valeur TRUE (pendant un cycle seulement) du paramtre de sortie VALID (RDREC) ou
DONE (WRREC) signifie que l'enregistrement a t transfr avec succs dans la zone cible
RECORD (RDREC) ou dans l'appareil cible (WRREC). Pour RDREC, le paramtre de sortie
LEN contient la longueur des donnes lues en octets.
Le paramtre de sortie ERROR indique (pendant un cycle seulement lorsque ERROR =
TRUE) qu'une erreur de transmission d'enregistrement s'est produite. Si c'est le cas, le
paramtre de sortie STATUS contient les informations d'erreur correspondantes (pendant un
cycle seulement lorsque ERROR = TRUE).
Les enregistrements sont dfinis par le fabricant de l'appareil. Reportez-vous la
documentation du fabricant concernant l'appareil pour obtenir plus de dtails sur un
enregistrement.

Remarque
Si un esclave DPV1 est configur au moyen d'un fichier GSD (GSD version 3 ou plus) et que
l'interface DP du matre DP est paramtre "S7 compatible", vous ne pourrez pas lire
d'enregistrements des modules d'entres-sorties dans le programme utilisateur avec
"RDREC" ou crire dans les modules d'entres-sorties avec "WRREC". Dans ce cas, le
matre DP accde au mauvais emplacement (emplacement configur + 3).
Solution : Dfinissez l'interface du matre DP "DPV1".

Remarque
Les interfaces des instructions "RDREC" et "WRREC" sont identiques aux FB "RDREC" et
"WRREC" dfinis dans la publication "PROFIBUS Guideline PROFIBUS Communication and
Proxy Function Blocks according to IEC 61131-3".

Remarque
Si vous utilisez "RDREC" ou "WRREC" pour lire ou crire un enregistrement pour
PROFINET IO, des valeurs ngatives dans les paramtres INDEX, MLEN et LEN sont
interprtes en tant qu'entiers de 16 bits non signs.

101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 285
8.3.2 RALRM
Vous pouvez utiliser l'instruction RALRM (Lecture d'alarme) avec PROFINET et PROFIBUS.
Tableau 8- 73 Instruction RALRM
CONT/LOG SCL Description

"RALRM_DB"(
mode:=_int_in_,
f_ID:=_word_in_,
mlen:=_uint_in_,
new=>_bool_out_,
status=>_dword_out_,
ID=>_word_out_,
len=>_uint_out_,
tinfo:=_variant_inout_,
ainfo:=_variant_inout_);
Utilisez l'instruction RALRM (Lecture d'alarme) pour lire des
informations de diagnostic d'alarme en provenance d'un
esclave DP ou d'un priphrique PROFINET IO.
Les informations dans les paramtres de sortie contiennent les
informations de dclenchement de l'OB appel, ainsi que des
informations de la source de l'alarme.
Appelez RALRM uniquement dans l'OB d'alarme qui a t
dclench par le systme d'exploitation de la CPU en raction
l'alarme d'E/S que vous dsirez analyser.
1
STEP 7 cre automatiquement le DB lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "RALRM_DB" est le nom du DB d'instance.

Tableau 8- 74 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
MODE IN Byte, USInt, SInt, Int Etat de fonctionnement
F_ID IN HW_IO (Word) Adresse de dbut logique du composant (module) dont il faut recevoir
les alarmes
Remarque : L'ID d'appareil peut tre dtermine de l'une des deux
faons suivantes :
Via les slections suivantes dans la vue du rseau :
Appareil (bote grise)
"Proprits" de l'appareil
"Identificateur matriel"
Remarque : Tous les appareils n'affichent toutefois pas leur
identificateur matriel.
Via les slections suivantes dans la vue du projet :
Variables API
Table de variables par dfaut
Onglet Constantes systme
Tous les identificateurs matriels d'appareils configurs sont
affichs.
MLEN IN Byte, USInt, UInt Longueur maximale en octets des informations d'alarme recevoir
NEW OUT Bool Une nouvelle alarme a t reue.
STATUS OUT DWord Code d'erreur du matre DP
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
286 Manuel systme, 11/2011, A5E02486682-05
Paramtre et type Type de donnes Description
ID OUT HW_IO (Word) Adresse de dbut logique du composant (module) dont on a reu une
alarme. Le bit 15 contient l'ID d'E/S :
0 pour une adresse d'entre
1 pour une adresse de sortie
Remarque : La description du paramtre F_ID explique comment
dterminer l'ID d'appareil.
LEN OUT DWord, UInt, UDInt,
DInt, Real, LReal
Longueur des informations d'alarme reues
TINFO IN_OUT Variant Informations sur la tche : Plage cible pour les informations de
dclenchement et de gestion d'OB
AINFO IN_OUT Variant Informations sur l'alarme : Zone cible pour les informations d'en-tte et
les informations d'alarme supplmentaires. Indiquez une longueur d'au
moins MLEN octets pour AINFO.


Remarque
Si vous appelez "RALRM" dans un OB dont l'vnement dclencheur n'est pas une alarme
d'E/S, l'instruction fournira des informations rduites dans ses sorties.
Veillez utiliser des DB d'instance diffrents lorsque vous appelez "RALRM" dans diffrents
OB. Si vous valuez des donnes rsultant d'un appel "RALRM" en dehors de l'OB d'alarme
associ, utilisez un DB d'instance distinct pour chaque vnement dclencheur d'OB.

Remarque
L'interface de l'instruction "RALRM" est identique au FB "RALRM" dfini dans la publication
"PROFIBUS Guideline PROFIBUS Communication and Proxy Function Blocks according to
IEC 61131-3".

Appel de RALRM
Vous pouvez appeler l'instruction RALRM dans trois modes diffrents (MODE).
Tableau 8- 75 Modes de fonctionnement de l'instruction RALRM
MODE Description
0 Montre le composant qui a dclench l'alarme dans le paramtre de sortie ID et met le paramtre de sortie
NEW VRAI.
1 Ecrit dans tous les paramtres de sortie, indpendamment du composant ayant dclench l'alarme.
2 Vrifie si le composant indiqu dans le paramtre d'entre F_ID a dclench l'alarme.
Si ce n'est pas lui, NEW est mis FAUX.
Si c'est lui, NEW est mis VRAI et il y a criture dans tous les autres paramtres de sortie.
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 287


Remarque
Si vous dfinissez une zone de destination trop courte pour TINFO ou AINFO, RALRM ne
pourra pas renvoyer les informations compltes. Reportez-vous l'aide en ligne de STEP 7
pour obtenir des informations sur l'interprtation des mmoires tampons TINFO et AINFO
renvoyes.

8.3.3 Paramtre STATUS pour RDREC, WRREC et RALRM
Le paramtre de sortie STATUS contient des informations d'erreur sous forme d'un tableau
ARRAY[1...4] OF BYTE ayant la structure suivante :
Tableau 8- 76 Tableau de sortie STATUS
Elment de
tableau
Nom Description
STATUS[1] Function_Num
B#16#00 en l'absence d'erreur
ID de fonction de PDU DPV1 : Si une erreur se produit, , B#16#80 une
opration logique OU est excute avec B#16#80 (pour la lecture
d'enregistrement : B#16#DE ; pour l'criture d'enregistrement : B#16#DF). Si
aucun lment de protocole DPV1 n'est utilis, B#16#C0 est transmis.
STATUS[2] Error_Decode Emplacement du code d'erreur
STATUS[3] Error_Code_1 Code d'erreur
STATUS[4] Error_Code_2 Extension de code d'erreur spcifique du fabricant

Tableau 8- 77 Valeurs de STATUS[2]
Error_decode
(B#16#....)
Source Description
00 7F CPU Pas d'erreur ni d'avertissement
80 DPV1 Erreur selon CEI 61158-6
81 8F CPU B#16#8x montre une erreur dans le x-ime paramtre d'appel de l'instruction.
FE, FF Profil DP Erreur spcifique du profil

101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
288 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 78 Valeurs de STATUS[3]
Error_decode
(B#16#....)
Error_code_1
(B#16#....)
Explication (DVP1) Description
00 00 Pas d'erreur ni d'avertissement
00 Rserv, rejet Appel initial ; pas de transfert d'enregistrement actif
01 Rserv, rejet Appel initial ; un transfert d'enregistrement a commenc
70
02 Rserv, rejet Appel intermdiaire ; un transfert d'enregistrement est
encore actif
90 Rserv, acceptation Adresse de dbut logique invalide
92 Rserv, acceptation Type incorrect de pointeur Variant
93 Rserv, acceptation Le composant DP adress via ID ou F_ID n'est pas
configur.
96 "RALRM (Page 285)" ne peut pas fournir les informations
de dclenchement d'OB, les informations de gestion, les
informations d'en-tte ou les informations d'alarme
additionnelles.
Pour les OB 4x, 55, 56, 57, 82 et 83, vous pouvez utiliser
l'instruction "DPNRM_DG (Page 294)" pour lire de
manire asynchrone la trame de message de diagnostic
en cours de l'esclave DP concern (informations
d'adresse dans les informations de dclenchement
d'OB).
A0 Erreur de lecture Acquittement ngatif pendant la lecture dans le module
A1 Erreur d'criture Acquittement ngatif pendant l'criture dans le module
A2 Dfaillance du module Erreur de protocole DP, couche 2 (par exemple,
dfaillance d'esclave ou problmes de bus)
A3 Rserv, acceptation
PROFIBUS DP : Erreur de protocole DP avec DDLM
(Direct Data Link Mapper) ou interface
utilisateur/utilisateur
PROFINET IO : Erreur CM gnrale
A4 Rserv, acceptation Communication interrompue sur le bus de
communication
A5 Rserv, acceptation -
A7 Rserv, acceptation Module ou esclave DP occup (erreur temporaire)
A8 Conflit de version Le module ou l'esclave DP signale des versions non
compatibles.
A9 Fonction non prise en
charge
Fonction non prise en charge par le module ou l'esclave
DP
AA AF Spcifique utilisateur Le module ou l'esclave DP signale une erreur spcifique
du fabricant dans son application. Consultez la
documentation du fabricant du module ou de l'esclave
DP.
80
B0 Indice invalide L'enregistrement est inconnu dans le module ; numro
d'enregistrement incorrect 256
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 289
Error_decode
(B#16#....)
Error_code_1
(B#16#....)
Explication (DVP1) Description
B1 Erreur de longueur
d'criture
L'information de longueur dans le paramtre RECORD
est incorrecte.
Pour "RALRM" : Erreur de longueur dans AINFO
Remarque : Reportez-vous au systme d'information
en ligne de STEP 7 pour obtenir des informations sur
l'interprtation des mmoires tampons "AINFO"
renvoyes.
Pour "RDREC (Page 282)" et "WRREC (Page 282)" :
Erreur de longueur dans MLEN
B2 Emplacement incorrect L'emplacement configur n'est pas occup.
B3 Conflit de type Le type du module rel ne correspond pas au type de
module spcifi.
B4 Zone invalide Le module ou l'esclave DP signale un accs une zone
invalide.
B5 Conflit d'tat Le module ou l'esclave DP n'est pas prt.
B6 Accs refus Le module ou l'esclave DP refuse l'accs.
B7 Plage invalide Le module ou l'esclave DP signale une plage invalide
pour un paramtre ou une valeur.
B8 Paramtre invalide Le module ou l'esclave DP signale un paramtre invalide.
B9 Type invalide Le module ou l'esclave DP signale un tyoe invalide :
Pour "RDREC (Page 282)" : Mmoire tampon trop
petite (impossible de lire les sous-ensembles)
Pour "WRREC (Page 282)" : Mmoire tampon trop
petite (impossible d'crire les sous-ensembles)
BA BF Spcifique utilisateur Le module ou l'esclave DP signale une erreur spcifique
du fabricant lors de l'accs. Consultez la documentation
du fabricant du module ou de l'esclave DP.
C0 Conflit de limite de
lecture
Pour "WRREC (Page 282)" : L'criture des donnes
n'est possible que lorsque la CPU est l'tat ARRET.
Remarque : Cela signifie que les donnes ne peuvent
pas tre crites par le programme utilisateur. Vous
pouvez uniquement crire les donnes en ligne avec
une PG/un PC.
Pour "RDREC (Page 282)" : Le module transmet
l'enregistrement mais soit il n'y a pas de donnes, soit
les donnes peuvent uniquement tre lues lorsque la
CPU est l'tat ARRET.
Remarque : Si les donnes peuvent uniquement tre
lues lorsque la CPU est l'tat ARRET, aucune
valuation par le programme utilisateur n'est possible.
Dans ce cas, vous pouvez uniquement lire les
donnes en ligne avec une PG/un PC.
C1 Conflit de limite
d'criture
Les donnes de la prcdente demande d'criture dans
le module pour le mme enregistrement n'ont pas encore
t traites par le module.
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
290 Manuel systme, 11/2011, A5E02486682-05
Error_decode
(B#16#....)
Error_code_1
(B#16#....)
Explication (DVP1) Description
C2 Ressource occupe Le module traite actuellement le nombre maximum de
tches possibles pour une CPU.
C3 Ressource non
disponible
Les ressources d'exploitation requises sont actuellement
occupes.
C4 Erreur temporaire interne. La tche n'a pas pu tre
excute.
Relancez la tche. Si cette erreur se produit souvent,
vrifiez que votre installation ne prsente pas de sources
d'interfrence lectrique.
C5 Le module ou l'esclave DP n'est pas disponible.
C6 Le transfert d'enregistrement a t annul du fait d'une
annulation de classe de priorit.
C7 Tche interrompue en raison d'un dmarrage chaud ou
froid du matre DP.
C8 CF Le module ou l'esclave DP signale une erreur de
ressource spcifique du fabricant. Consultez la
documentation du fabricant du module ou de l'esclave
DP.
Dx Spcifique utilisateur Spcifique de l'esclave DP. Consultez la description de
l'esclave DP.
00 FF Erreur dans le premier paramtre d'appel (pour "RALRM
(Page 285)" : MODE)
81
00 Mode de fonctionnement interdit
82 00 FF Erreur dans le deuxime paramtre d'appel
00 FF Erreur dans le huitime paramtre d'appel (pour "RALRM
(Page 285)" : TINFO)
Remarque : Reportez-vous au systme d'information en
ligne de STEP 7 pour obtenir des informations sur
l'interprtation des mmoires tampons "TINFO"
renvoyes.
01 ID de syntaxe illicite
23 Structure de quantit dpasse ou zone de destination
trop petite
24 ID de plage illicite
32 Numro de DB/DI en dehors de la plage utilisateur
88
3A Numro de DB/DI nul pour l'ID de zone DB/DI ou DB/DI
indiqu inexistant
00 FF Erreur dans le neuvime paramtre d'appel (pour
"RALRM (Page 285)" : AINFO)
Remarque : Reportez-vous au systme d'information en
ligne de STEP 7 pour obtenir des informations sur
l'interprtation des mmoires tampons "AINFO"
renvoyes.
01 ID de syntaxe illicite
23 Structure de quantit dpasse ou zone de destination
trop petite
89
24 ID de plage illicite
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 291
Error_decode
(B#16#....)
Error_code_1
(B#16#....)
Explication (DVP1) Description
32 Numro de DB/DI en dehors de la plage utilisateur
3A Numro de DB/DI nul pour l'ID de zone DB/DI ou DB/DI
indiqu inexistant
8A 00 FF Erreur dans le dixime paramtre d'appel
8F 00 FF Erreur dans le quinzime paramtre d'appel
FE, FF 00 FF Erreur spcifique du profil
Elment de tableau STATUS[4]
En prsence d'erreurs DPV1, le matre DP transmet STATUS[4] la CPU et l'instruction.
En l'absence d'erreur DPV1, cette valeur est mise 0, aux exceptions suivantes prs pour
RDREC :
STATUS[4] contient la longueur de la zone cible de RECORD si MLEN > longueur de la
zone cible de RECORD.
STATUS[4] est gal MLEN si longueur relle de l'enregistrement < MLEN < longueur
de la zone cible de RECORD.
STATUS[4] est gal 0 si STATUS[4] > 255 ; devrait tre dfini.
Dans PROFINET IO, STATUS[4] a la valeur 0.
8.3.4 DPRD_DAT et DPWR_DAT
Vous pouvez utiliser les instructions DPRD_DAT (Lecture de donnes cohrentes) et
DPWR_DAT (Ecriture de donnes cohrentes) avec PROFINET et PROFIBUS.
Tableau 8- 79 Instructions DPRD_DAT et DPWR_DAT
CONT/LOG SCL Description

ret_val := DPRD_DAT(
laddr:=_word_in_,
record=>_variant_out_);
Utilisez l'instruction DPRD_DAT pour lire les donnes
cohrentes d'un esclave norme DP/priphrique
PROFINET IO. Si aucune erreur ne survient pendant le
transfert de donnes, les donnes lues sont entres dans
la zone cible dfinie par le paramtre RECORD. La zone
cible doit avoir la mme longueur que celle que vous avez
configure avec STEP 7 pour le module slectionn.
Lorsque vous appelez l'instruction DPRD_DAT , vous
pouvez accder uniquement aux donnes d'un module /
identificateur DP l'adresse de dbut configure.

ret_val := DPWR_DAT(
laddr:=_word_in_,
record:=_variant_in_);
Utilisez l'instruction DPWR_DAT pour crire les donnes
dans RECORD de manire cohrente dans l'esclave
norme DP/priphrique PROFINET IO adress. La zone
source doit avoir la mme longueur que celle que vous
avez configure avec STEP 7 pour le module slectionn.
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
292 Manuel systme, 11/2011, A5E02486682-05
La CPU prend en charge jusqu' 64 octets de donnes cohrentes. Vous devez utiliser les
instructions DPRD_DAT et DPWR_DAT pour des zones de donnes cohrentes suprieures
64 octets. Si ncessaire, ces instructions peuvent tre utilises pour des zones de
donnes partir de 1 octet. Le code d'erreur W#16#8090 est renvoy si l'accs est refus.

Remarque
Si vous utilisez les instructions DPRD_DAT et DPWR_DAT avec des donnes cohrentes,
vous devez supprimer ces dernires de l'actualisation automatique de la mmoire image.
Reportez-vous "Concepts API : Excution du programme utilisateur" (Page 67) pour plus
d'informations.


Tableau 8- 80 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
LADDR IN HW_IO (Word)
Adresse de dbut configure de la zone I du module dans lequel les
donnes seront lues (DPRD_DAT)
Adresse de dbut configure de la mmoire image des sorties du
module dans lequel les donnes seront crites (DPWR_DAT)
Il faut entrer les adresses en format hexadcimal (ainsi, l'adresse d'entre
ou de sortie 100 correspond LADDR:=W#16#64).
RECORD OUT Variant Zone de destination pour les donnes utilisateur lues (DPRD_DAT) ou
zone source pour les donnes utilisateur crire (DPWR_DAT). Cette
zone doit tre exactement de la taille que vous avez configure pour le
module slectionn avec STEP 7. Seul le type de donnes Byte est
autoris.
RET_VAL OUT Int Si une erreur se produit pendant que la fonction est active, la valeur en
retour contient un code d'erreur.
Fonctionnement de DPRD_DAT
La zone de destination doit avoir la mme longueur que celle configure pour le module
slectionn avec STEP 7. Si aucune erreur ne se produit pendant le transfert de donnes,
les donnes qui ont t lues sont entres dans la zone de destination identifie par
RECORD.
Si vous effectuez la lecture dans un esclave norme DP de conception modulaire ou ayant
plusieurs identificateurs DP, vous pouvez uniquement accder aux donnes d'un module /
identificateur DP chaque appel de l'instruction DPRD_DAT, en indiquant l'adresse de
dbut configure.
Fonctionnement de DPWR_DAT
Vous transfrez les donnes se trouvant dans RECORD de manire cohrente dans
l'esclave norme DP/priphrique PROFINET IO adress. Les donnes sont transfres de
manire synchrone, c'est--dire que l'opration d'criture est acheve l'achvement de
l'instruction.
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 293
La zone source doit avoir la mme longueur que celle que vous avez configure pour le
module slectionn avec STEP 7.
Si l'esclave norme DP est de conception modulaire, vous ne pouvez accder qu' un module
de l'esclave DP.
Tableau 8- 81 Codes d'erreur de DPRD_DAT et DPWR_DAT
Code d'erreur Description
0000 Pas d'erreur
808x Erreur systme avec le coupleur DP externe
8090 L'un des cas suivants s'est produit :
Vous n'avez pas configur de module pour l'adresse de base logique indique.
Vous n'avez pas tenu compte de la restriction concernant la longueur des donnes cohrentes.
Vous n'avez pas entr l'adresse de dbut dans le paramtre LADDR en format hexadcimal.
8092 Un type autre que Byte est indiqu dans la rfrence Any.
8093 Il n'existe pas de module DP/priphrique PROFINET IO dans lequel vous pouvez lire
(DPRD_DAT) ou crire (DPWR_DAT) des donnes cohrentes l'adresse logique indique dans
LADDR.
80A0 Erreur d'accs dtecte pendant l'accs des priphriques IO (DPRD_DAT).
80A1 Erreur d'accs dtecte pendant l'accs des priphriques IO (DPWR_DAT).
80B0 Dfaillance d'esclave sur le coupleur DP externe
80B1 La longueur de la zone de destination (DPRD_DAT) ou source (DPWR_DAT) indique n'est pas
identique la longueur des donnes utilisateur configure avec STEP 7 Basic.
80B2, 80B3, 80C2,
80Fx
Erreur systme avec le coupleur DP externe (DPRD_DAT et DPWR_DAT)
87xy, 808x Erreur systme avec le coupleur DP externe (DPRD_DAT)
85xy Erreur systme avec le coupleur DP externe (DPWR_DAT)
80C0 Les donnes n'ont pas encore t lues par le module (DPRD_DAT).
80C1 Les donnes de la tche d'criture prcdente sur le module n'ont pas encore t traites par le
module (DPWR_DAT).
8xyy
1
Informations d'erreur gnrales
Reportez-vous "Instructions avances, priphrie dcentralise : Informations d'erreur
pour RDREC, WRREC et RALRM" (Page 287) pour plus d'informations sur les codes
d'erreur gnraux.

Remarque
Si vous accdez des esclaves DPV1, les informations d'erreur de ces esclaves peuvent
tre transmises du matre DP l'instruction.

101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
294 Manuel systme, 11/2011, A5E02486682-05
8.3.5 DPNRM_DG
Vous pouvez utiliser l'instruction DPNRM_DG (Lecture de donnes de diagnostic) avec
PROFIBUS.
Tableau 8- 82 Instruction DPNRM_DG
CONT/LOG SCL Description

ret_val := DPNRM_DG(
req:=_bool_in_,
laddr:=_word_in_,
record=>_variant_out_,
busy=>_bool_out_);
Utilisez l'instruction DPNRM_DG pour lire les donnes de diagnostic
en cours d'un esclave DP dans le format spcifi par EN 50 170
Volume 2, PROFIBUS. Les donnes qui ont t lues sont entres
dans la zone de destination indique par RECORD lorsque le
transfert de donnes s'est effectu sans erreur.

Tableau 8- 83 Types de donnes pour les paramtres de l'instruction DPNRM_DG
Paramtre et type Type de
donnes
Description
REQ IN Bool REQ=1 : Demande de lecture
LADDR IN HW_DPSLAVE Adresse de diagnostic configure de l'esclave DP : doit tre l'adresse
de la station et non celle du priphrique I/O Slectionnez la station (et
non l'image du priphrique) dans la vue de rseau de la configuration
de l'appareil afin de dterminer l'adresse de diagnostic.
Entrez les adresses au format hexadcimal. L'adresse de diagnostic
1022 signifie par exemple LADDR:=W#16#3FE.
RET_VAL OUT Int Si une erreur se produit pendant que la fonction est active, la valeur en
retour contient un code d'erreur. En l'absence d'erreur, la longueur des
donnes effectivement transfres est fournie dans RET_VAL.
RECORD OUT Variant Zone de destination pour les donnes de diagnostic qui ont t lues.
Seul le type de donnes Byte est autoris. La longueur minimum de
l'enregistrement lire ou de la zone de destination est 6. La longueur
maximum de l'enregistrement envoyer est 240.
Les esclaves norme peuvent fournir plus de 240 octets de donnes de
diagnostic, avec un maximum de 244 octets. Dans ce cas, les 240
premiers octets sont transfrs dans la zone de destination et le bit de
dbordement est mis 1 dans les donnes.
BUSY OUT Bool BUSY=1 : La tche de lecture n'est pas encore acheve.
Vous dmarrez la tche de lecture en mettant le paramtre d'entre REQ 1 dans l'appel de
l'instruction DPNRM_DG. La tche de lecture est excute de manire asynchrone ; en
d'autres termes, elle ncessite plusieurs appels de l'instruction DPNRM_DG. L'tat de la
tche est indiqu par les paramtres de sortie RET_VAL et BUSY.
Tableau 8- 84 Structure des donnes de diagnostic esclave
Octet Description
0 Etat de station 1
1 Etat de station 2
2 Etat de station 3
101BInstructions avances
8.3 Priphrie dcentralise (PROFINET, PROFIBUS ou AS-i)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 295
Octet Description
3 Numro de la station matre
4 ID de fournisseur (octet de poids fort)
5 ID de fournisseur (octet de poids faible)
6 ... Informations de diagnostic supplmentaires spcifiques de l'esclave

Tableau 8- 85 Codes d'erreur de l'instruction DPNRM_DG
Code d'erreur Description Restriction
0000 Pas d'erreur -
7000 Premier appel avec REQ=0 : Pas de transfert de donnes actif ; BUSY a la
valeur 0.
-
7001 Premier appel avec REQ=1 : Pas de transfert de donnes actif ; BUSY a la
valeur 1.
E/S dcentralises
7002 Appel intermdiaire (REQ non significatif) : Un transfert de donnes est
dj actif ; BUSY a la valeur 1.
E/S dcentralises
8090 Adresse de base logique indique invalide : Il n'y a pas d'adresse de base. -
8092 Le type indiqu dans la rfrence Any n'est pas Byte. -
8093
Cette instruction n'est pas autorise pour le module indiqu par LADDR
(les modules S7 DP pour le S7-1200 sont autoriss).
LADDR spcifie le priphrique I/O au lieu de spcifier la station.
Slectionnez la station (et non l'image du priphrique) dans la vue de
rseau de la configuration de l'appareil afin de dterminer l'adresse de
diagnostic pour LADDR.
-
80A2
Erreur de protocole DP, couche 2 (par exemple, dfaillance d'esclave
ou problmes de bus)
Pour l'ET200S, l'enregistrement ne peut pas tre lu en mode DPV0.
E/S dcentralises
80A3 Erreur de protocole DP avec l'interface utilisateur/utilisateur E/S dcentralises
80A4 Problme de communication sur le bus de communication L'erreur se produit entre la
CPU et le coupleur DP
externe.
80B0
L'instruction n'est pas possible pour le type de module.
Le module ne reconnat pas l'enregistrement.
Le numro d'enregistrement 241 est interdit.
-
80B1 La longueur indique dans le paramtre RECORD est incorrecte. longueur indique > longueur
de l'enregistrement
80B2 L'emplacement configur n'est pas occup. -
80B3 Le type du module rel ne correspond pas au type de module demand. -
80C0 Il n'y a pas d'informations de diagnostic. -
80C1 Les donnes de la prcdente tche d'criture dans le module pour le
mme enregistrement n'ont pas encore t traites par le module.
-
80C2 Le module traite actuellement le nombre maximum de tches possibles
pour une CPU.
-
80C3 Les ressources requises (mmoire, etc.) sont actuellement occupes. -
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
296 Manuel systme, 11/2011, A5E02486682-05
Code d'erreur Description Restriction
80C4 Erreur temporaire interne. La tche n'a pas pu tre traite.
Relancez la tche. Si cette erreur se produit frquemment, vrifiez que
votre systme ne prsente pas de sources d'interfrence lectrique.
-
80C5 E/S dcentralises non disponibles E/S dcentralises
80C6 Le transfert d'enregistrement a t arrt en raison d'une annulation de
classe de priorit (redmarrage ou arrire-plan).
E/S dcentralises
8xyy
1
Codes d'erreur gnraux
Reportez-vous "Instructions avances, priphrie dcentralise : Informations d'erreur
pour RDREC, WRREC et RALRM" (Page 287) pour plus d'informations sur les codes
d'erreur gnraux.
8.4 Alarmes
8.4.1 Instructions ATTACH et DETACH
Vous pouvez activer et dsactiver des sous-programmes d'alarme dclenchs sur
vnement par le biais des instructions ATTACH et DETACH.
Tableau 8- 86 Instructions ATTACH et DETACH
CONT/LOG SCL Description

ret_val := ATTACH(
ob_nr:=_int_in_,
event:=_event_att_in_,
add:=_bool_in_);
ATTACH active l'excution d'un sous-
programme d'OB d'alarme pour un vnement
d'alarme de processus.

ret_val := DETACH(
ob_nr:=_int_in_,
event:=_event_att_ in);
DETACH dsactive l'excution d'un sous-
programme d'OB d'alarme pour un vnement
d'alarme de processus.

101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 297
Tableau 8- 87 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
OB_NR IN OB_ATT Identificateur de bloc d'organisation : Faites votre choix parmi les OB
d'alarme de processus disponibles qui ont t crs via la fonction
"Ajouter nouveau bloc". Double-cliquez sur le champ de paramtre,
puis cliquez sur l'icne d'aide pour voir les OB disponibles.
EVENT IN EVENT_ATT Identificateur d'vnement : Faites votre choix parmi les vnements
d'alarme de processus disponibles qui ont t activs dans la
configuration d'appareil de l'automate pour les entres TOR ou les
compteurs rapides. Double-cliquez sur le champ de paramtre, puis
cliquez sur l'icne d'aide pour voir les vnements disponibles.
ADD
(ATTACH
uniquement)
IN Bool
ADD = 0 (valeur par dfaut) : Cet vnement remplace toutes les
associations d'vnement prcdentes pour cet OB.
ADD = 1 : Cet vnement est ajout aux associations
d'vnement prcdentes pour cet OB.
RET_VAL OUT Int Code d'erreur d'excution
Evnements alarme de processus
La CPU prend en charge les vnements alarme de processus suivants :
Evnements front montant (toutes les entres TOR intgres de la CPU et toutes les
entres TOR SB)
Un front montant se produit lorsque l'entre TOR passe de l'tat dsactiv l'tat
activ en raction un changement du signal provenant de l'appareil de terrain
connect l'entre.
Evnements front descendant (toutes les entres TOR intgres de la CPU et toutes les
entres TOR SB)
Un front descendant se produit lorsque l'entre TOR passe de l'tat activ l'tat
dsactiv.
Evnments valeur en cours = valeur de rfrence (CV = RV) de compteur rapide
(compteurs HSC 1 6)
Une alarme CV = RV pour un compteur rapide est gnre lorsque la valeur de
comptage en cours passe d'une valeur adjacente la valeur correspondant
exactement une valeur de rfrence dfinie prcdemment.
Evnements inversion du sens HSC (compteurs HSC 1 6)
Un vnement inversion du sens se produit lorsque le systme dtecte que le HSC
est pass de l'incrmentation la dcrmentation ou de la dcrmentation
l'incrmentation.
Evnements rinitialisation externe HSC (compteurs HSC 1 6)
Certains modes HSC autorisent la dfinition d'une entre TOR en tant qu'entre de
rinitialisation externe qui est utilise pour remettre zro la valeur de comptage du
compteur rapide. Un vnement rinitialisation externe se produit pour un tel
compteur rapide lorsque cette entre passe de l'tat dsactiv l'tat activ.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
298 Manuel systme, 11/2011, A5E02486682-05
Activation des vnements alarme de processus dans la configuration des appareils
Les alarmes de processus doivent tre actives pendant la configuration des appareils.
Vous devez cocher la case d'activation de l'vnement dans la configuration d'appareil pour
une voie d'entre TOR ou un compteur rapide si vous voulez associer cet vnement
pendant la configuration ou au moment de l'excution.
Options cocher dans la configuration d'appareil de l'automate :
Entre TOR
Activer la dtection du front montant
Activer la dtection du front descendant
Compteur rapide (HSC)
Activer ce compteur rapide
Gnrer une alarme pour un vnement de type valeur de comptage gale valeur
de rfrence
Gnrer une alarme pour un vnement de rinitialisation externe
Gnrer une alarme pour un vnement d'inversion de sens
Ajout de nouveaux OB d'alarme de processus votre programme
Par dfaut, aucun OB n'est associ un vnement lorsque l'vnement est activ pour la
premire fois. Cela est signal par la mention "<non connect>" dans la configuration des
alarmes de processus. Seuls des OB d'alarme de processus peuvent tre associs un
vnement d'alarme de processus. Tous les OB d'alarme de processus existants
apparaissent dans la liste droulante "Alarme de processus :" . Si aucun OB n'est list, vous
devez crer un OB de type "alarme de processus" de la manire suivante. Dans la branche
"Blocs de programme" de l'arborescence de projet :
1. Double-cliquez sur "Ajouter nouveau bloc", slectionnez "Bloc d'organisation (OB)", puis
choisissez "Alarme de processus".
2. Vous pouvez optionnellement renommer l'OB, slectionner le langage de programmation
(CONT ou LOG) et slectionner le numro de bloc (commutez en manuel et choisissez
un numro de bloc diffrent de celui suggr).
3. Editez l'OB pour y ajouter la raction programme que vous voulez excuter lorsque
l'vnement se produit. Vous pouvez appeler des FC et des FB partir de cet OB,
jusqu' une profondeur d'imbrication de quatre.
Paramtre OB_NR
Tous les OB d'alarme de processus existants apparaissent dans la liste droulante "Alarme
de processus :" de la configuration d'appareil et dans la liste droulante du paramtre
OB_NR de ATTACH / DETACH.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 299
Paramtre EVENT
Lorsqu'un vnement d'alarme de processus est activ, un nom d'vnement par dfaut
unique est affect cet vnement particulier. Vous pouvez modifier ce nom d'vnement
en ditant la bote d'dition "Nom d'vnement :", mais ce doit tre un nom unique. Ces
noms d'vnement deviennent des noms de variable dans la table de variables "Constantes"
et apparaissent dans la liste droulante du paramtre EVENT des botes d'instruction
ATTACH et DETACH. La valeur de la variable est un numro interne utilis pour identifier
l'vnement.
Fonctionnement gnral
Chaque vnement d'alarme de processus peut tre associ un OB d'alarme de
processus qui sera mis en file d'attente pour excution lorsque l'vnement d'alarme de
processus se produit. L'association OB-vnement peut se faire au moment de la
configuration ou l'excution.
Vous pouvez associer un OB un vnement activ ou l'en dissocier au moment de la
configuration. Pour associer un OB un vnement lors de la configuration, vous devez
utiliser la liste droulante "Alarme de processus :" (cliquez sur la flche descendante
droite) et slectionner un OB dans la liste des OB d'alarme de processus disponibles.
Slectionnez le nom de l'OB appropri dans la liste ou slectionnez "<non connect>" pour
annuler l'association.
Vous pouvez galement associer ou dissocier un vnement d'alarme de processus activ
pendant l'excution. Utilisez les instructions de programme ATTACH ou DETACH pendant
l'excution - plusieurs reprises si vous le dsirez - pour associer un vnement d'alarme
activ l'OB appropri ou pour l'en dissocier. En l'absence d'association un OB (par
slection de "<non connect>" dans la configuration des appareils ou par excution d'une
instruction DETACH), l'vnement d'alarme de processus activ n'est pas pris en compte.
Fonctionnement de DETACH
Utilisez l'instruction DETACH pour dissocier un vnement particulier ou tous les
vnements d'un OB particulier. Si un vnement EVENT est indiqu, seul cet vnement
est dissoci de l'OB de numro OB_NR indiqu ; tout autre vnement actuellement associ
ce numro d'OB OB_NRlui reste associ. Si aucun vnement EVENT n'est indiqu, tous
les vnements actuellement associs au numro d'OB OB_NR en sont dissocis.
Codes d'erreur
Tableau 8- 88 Codes d'erreur
RET_VAL (W#16#....) ENO Description
0000 1 Pas d'erreur
0001 1 Rien dissocier (DETACH uniquement)
8090 0 OB inexistant
8091 0 Type d'OB erron
8093 0 Evnement inexistant
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
300 Manuel systme, 11/2011, A5E02486682-05
8.4.2 Alarmes cycliques
8.4.2.1 SET_CINT (Rgler alarme cyclique)
Tableau 8- 89 SET_CINT (Rgler alarme cyclique)
CONT/LOG SCL Description

ret_val := SET_CINT(
ob_nr:=_int_in_,
cycle:=_udint_in_,
phase:=_udint_in_);
Permet de dfinir l'excution cyclique interrompant le
cycle du programme pour l'OB d'alarme indiqu.

Tableau 8- 90 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
OB_NR IN OB_CYCLIC Numro d'OB (noms symboliques accepts)
CYCLE IN UDInt Intervalle de temps, en microsecondes
PHASE IN UDInt Dphasage, en microsecondes
RET_VAL OUT Int Code d'erreur d'excution
Exemples de paramtres de temps :
Si le temps CYCLE est gal 100 s, l'OB d'alarme rfrenc par OB_NR interrompt le
cycle du programme toutes les 100 s. L'OB d'alarme s'excute puis rend le contrle au
cycle du programme au niveau du point d'interruption.
Si le temps CYCLE est gal 0, l'vnement d'alarme est dsactiv et l'OB d'alarme
n'est pas excut.
Le dphasage PHASE est un temps de retard dfini qui se produit avant que l'intervalle
de temps CYCLE ne commence. Le dphasage peut vous servir grer l'instant
d'excution des OB de priorit infrieure.
Si des OB de priorit diffrente sont appels dans le mme intervalle de temps, l'OB de
priorit infrieure n'est appel qu'une fois le traitement de l'OB de priorit suprieure achev.
Le dbut de l'excution de l'OB de priorit infrieure peut donc tre dcal selon la dure de
traitement des OB de priorit suprieure.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 301
MARCHE
t t t t
t t t t
OB
de priorit
suprieure
OB
de priorit
infrieure
Appel d'OB sans dphasage

Si vous voulez dmarrer l'excution d'un OB de faible priorit selon un rythme fixe,
dfinissez un temps de dphasage qui est suprieur la dure de traitement des OB de
priorit suprieure.
dphasage
MARCHE
t t t t
t t t t
OB
de priorit
suprieure
OB
de priorit
infrieure
Appel d'OB avec dphasage

Tableau 8- 91 Codes d'erreur
RET_VAL (W#16#....) Description
0000 Pas d'erreur
8090 L'OB n'existe pas ou a un type incorrect.
8091 Intervalle de temps invalide
8092 Dphasage invalide
80B2 Aucun vnement n'est associ l'OB.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
302 Manuel systme, 11/2011, A5E02486682-05
8.4.2.2 QRY_CINT (Interroger alarme cyclique)
Tableau 8- 92 QRY_CINT (Interroger alarme cyclique)
CONT/LOG SCL Description

ret_val := QRY_CINT(
ob_nr:=_int_in_,
cycle=>_udint_out_,
phase=>_udint_out__,
status=>_word_out_);
Permet d'obtenir les valeurs des paramtres et
l'tat d'excution d'un OB d'alarme cyclique. Les
valeurs renvoyes sont celles qui taient en
vigueur au moment de l'excution de QRY_CINT.

Tableau 8- 93 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
OB_NR IN OB_CYCLIC Numro d'OB (noms symboliques comme OB_MyOBName accepts)
RET_VAL OUT Int Code d'erreur d'excution
CYCLE OUT UDInt Intervalle de temps, en microsecondes
PHASE OUT UDInt Dphasage, en microsecondes
STATUS OUT Word Code d'tat de l'alarme cyclique :
Bits 0 4 : voir le tableau pour STATUS ci-dessous
Autres bits : toujours 0

Tableau 8- 94 Paramtre STATUS
Bit Valeur Description
0 A l'tat MARCHE de la CPU 0
1 Pendant le dmarrage
0 L'alarme est valide. 1
1 L'alarme est inhibe via l'instruction DIS_IRT.
0 L'alarme n'est pas active ou a expir. 2
1 L'alarme est active.
0 L'OB identifi par OB_NR n'existe pas. 4
1 L'OB identifi par OB_NR existe.
Autres bits Toujours 0
Si une erreur se produit, RET_VAL contient le code d'erreur appropri et le paramtre
STATUS est gal 0.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 303
Tableau 8- 95 Paramtre RET_VAL
RET_VAL (W#16#....) Description
0000 Pas d'erreur
8090 L'OB n'existe pas ou a un type incorrect.
80B2 Aucun vnement n'est associ l'OB.
8.4.3 Alarmes temporises
Vous pouvez dmarrer et annuler le traitement des alarmes temporises l'aide des
instructions SRT_DINT et CAN_DINT et interroger l'tat des alarmes l'aide de l'instruction
QRY_DINT. Chaque alarme temporise est un vnement unique qui se produit aprs le
temps de retard indiqu. Si l'vnement d'alarme temporise est annul avant que le temps
de retard n'ait expir, l'interruption du programme ne se produit pas.
Tableau 8- 96 Instructions SRT_DINT, CAN_DINT et QRY_DINT
CONT/LOG SCL Description

ret_val := SRT_DINT(
ob_nr:=_int_in_,
dtime:=_time_in_,
sign:=_word_in_);
SRT_DINT dmarre une alarme temporise qui
excute un OB lorsque le temps de retard indiqu
par le paramtre DTIME s'est coul.

ret_val := CAN_DINT(
ob_nr:=_int_in_);
CAN_DINT annule une alarme temporise qui a
dj dmarr. L'OB d'alarme temporise n'est pas
excut dans ce cas.

ret_val := QRY_DINT(
ob_nr:=_int_in_,
status=>_word_out_);
QRY_DINT interroge l'tat de l'alarme temporise
indique par le paramtre OB_NR.

Tableau 8- 97 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
OB_NR IN OB_DELAY Bloc d'organisation (OB) dmarrer aprs un temps de retard. Faites
votre choix parmi les OB d'alarme temporise disponibles qui ont t
crs via la fonction "Ajouter nouveau bloc" de l'arborescence de
projet. Double-cliquez sur le champ de paramtre, puis cliquez sur
l'icne d'aide pour voir les OB disponibles.
DTIME
1
IN Time Valeur du temps de retard (1 60000 ms)
SIGN
1
IN Word Non utilis par le S7-1200 : Toute valeur est accepte. Il faut indiquer
une valeur pour viter les erreurs.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
304 Manuel systme, 11/2011, A5E02486682-05
Paramtre et type Type de
donnes
Description
RET_VAL OUT Int Code d'erreur d'excution
STATUS OUT Word Instruction QRY_DINT : Etat de l'OB d'alarme temporise indiqu. Voir
le tableau ci-dessous.
1
Uniquement pour SRT_DINT
Fonctionnement
L'instruction SRT_DINT indique un temps de retard, dmarre la temporisation de temps de
retard interne et associe un sous-programme d'OB d'alarme temporise l'vnement
d'expiration du temps de retard. Lorsque le temps de retard indiqu s'est coul, une
interruption du programme est gnre, ce qui dclenche l'excution de l'OB d'alarme
temporise associ. Vous pouvez annuler une alarme temporise en cours de traitement
avant que le temps de retard indiqu n'ait expir en excutant l'instruction CAN_DINT. Le
nombre total d'vnements d'alarme temporise et d'alarme cyclique actifs ne doit pas
dpasser quatre.
Ajout de sous-programmes d'OB d'alarme temporise votre projet
Seuls des OB d'alarme temporise peuvent tre affects aux instructions SRT_DINT et
CAN_DINT. Aucun OB d'alarme temporise n'existe dans un nouveau projet. Vous devez
ajouter ces OB d'alarme temporise votre projet. Procdez comme suit pour crer un OB
d'alarme temporise :
1. Double-cliquez sur "Ajouter nouveau bloc" dans la branche "Blocs de programme" de
l'arborescence de projet, slectionnez "Bloc d'organisation (OB)", puis choisissez "Alarme
temporise".
2. Vous avec la possibilit de renommer l'OB, de slectionner le langage de programmation
ou de slectionner le numro de bloc. Commutez en numrotation manuelle si vous
voulez utiliser un numro de bloc diffrent de celui affect automatiquement.
3. Editez le sous-programme de l'OB d'alarme temporise et crez une raction
programme que vous voulez excuter lorsque l'vnement d'alarme temporise se
produit. Vous pouvez appeler des FB et des FC partir de l'OB d'alarme temporise,
avec une profondeur d'imbrication maximale de quatre.
4. Les noms des OB d'alarme temporise nouvellement affects seront disponibles lorsque
vous diterez le paramtre OB_NR des instructions SRT_DINT et CAN_DINT.
Paramtre STATUS de QRY_DINT :
Tableau 8- 98 En prsence d'une erreur (REL_VAL <> 0), STATUS = 0.
Bit Valeur Description
0 A l'tat MARCHE 0
1 Pendant le dmarrage
0 L'alarme est valide. 1
1 L'alarme est inhibe.
101BInstructions avances
8.4 Alarmes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 305
Bit Valeur Description
0 L'alarme n'est pas active ou a expir.
2
1 L'alarme est active.
0 Il n'existe pas d'OB de numro OB_NR. 4
1 Il existe un OB de numro OB_NR.
Autres bits Toujours 0
Codes d'erreur
Tableau 8- 99 Codes d'erreur pour SRT_DINT, CAN_DINT et QRY_DINT
RET_VAL (W#16#...) Description
0000 Pas d'erreur
8090 Paramtre OB_NR incorrect
8091 Paramtre DTIME incorrect
80A0 L'alarme temporise n'a pas dmarr.
8.4.4 Alarmes asynchrones
Utilisez les instructions DIS_AIRT et EN_AIRT pour inhiber et valider le traitement des
alarmes.
Tableau 8- 100 Instructions DIS_AIRT et EN_AIRT
CONT/LOG SCL Description

DIS_AIRT();
DIS_AIRT retarde le traitement de nouveaux vnements d'alarme. Vous pouvez
excuter DIS_AIRT plus d'une fois dans un OB.

EN_AIRT();
EN_AIRT valide le traitement d'vnements d'alarme que vous aviez
pralablement inhib l'aide de l'instruction DIS_AIRT. Chaque excution de
DIS_AIRT doit tre annule par une excution de EN_AIRT.
Les excutions de EN_AIRT doivent se produire dans le mme OB ou dans toute
FC ou tout FB appel par cet OB pour que les alarmes soient ractives pour cet
OB.

Tableau 8- 101 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
RET_VAL OUT Int Nombre de retards = nombre d'excutions DIS_AIRT dans la file
d'attente
101BInstructions avances
8.5 Diagnostic (PROFINET ou PROFIBUS)
Automate programmable S7-1200
306 Manuel systme, 11/2011, A5E02486682-05
Les excutions de DIS_AIRT sont comptabilises par le systme d'exploitation. Chacune
d'elles reste en vigueur jusqu' ce qu'elle soit expressment annule par une instruction
EN_AIRT ou jusqu' ce que l'OB en cours ait t intgralement trait. Si, par exemple, vous
avez dsactiv les alarmes cinq fois via cinq excutions de DIS_AIRT, vous devez annuler
ces dernires avec cinq excutions de EN_AIRT pour que le traitement des alarmes soit
nouveau activ.
Une fois les vnements d'alarme ractivs, les alarmes qui se sont produites alors que
DIS_AIRT tait en vigueur sont traites ou les alarmes sont traites ds que l'OB en cours a
t excut.
Le paramtre RET_VAL indique le nombre de fois o le traitement des alarmes a t inhib,
ce nombre correspondant au nombre d'excutions de DIS_AIRT en file d'attente. Le
traitement des alarmes n'est ractiv que lorsque le paramtre RET_VAL est gal 0.
8.5 Diagnostic (PROFINET ou PROFIBUS)
8.5.1 Instruction LED
Tableau 8- 102 Instruction LED
CONT/LOG SCL Description

ret_val := LED(
laddr:=_word_in_,
LED:=_uint_in_);
Utilisez l'instruction LED pour lire l'tat des DEL sur une CPU ou une
interface. L'tat de la DEL indique est renvoy dans la sortie
RET_VAL.

Tableau 8- 103 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
LADDR IN HW_IO Numro d'identification de la CPU ou de l'interface
1

Numro identificateur de la DEL
1 RUN/STOP Couleur 1 = vert, couleur 2 = jaune
2 Dfaut Couleur 1 = rouge
3 Maintenance Couleur 1 = jaune
4 Redondance Sans objet
5 Lien Couleur 1 = vert
LED IN UInt
6 Tx/Rx Couleur 1 = jaune
RET_VAL OUT Int Etat de la DEL
1
Vous pouvez, par exemple, slectionner la CPU ("PLC_1", par exemple) ou l'interface PROFINET dans la liste
droulante du paramtre.

101BInstructions avances
8.5 Diagnostic (PROFINET ou PROFIBUS)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 307
Tableau 8- 104 Etat de RET_VAL
RET_VAL (W#16#...) Description
0 La DEL n'existe pas.
1 La DEL est teinte.
2 La DEL est allume en couleur 1 (feu fixe).
3 La DEL est allume en couleur 2 (feu fixe).
4 La DEL clignote en couleur 1 2 Hz.
5 La DEL clignote en couleur 2 2 Hz.
6 La DEL clignote alternativement en couleur 1 et 2 2 Hz.
7 La DEL est allume en couleur 1 (Tx/Rx).
8 La DEL est allume en couleur 2 (Tx/Rx).
Etat de DEL 0 9
9 L'tat de la DEL n'est pas disponible.
8091 L'appareil identifi par LADDR n'existe pas.
8092 L'appareil identifi par LADDR ne comporte pas de DEL.
8093 L'identificateur de DEL n'est pas dfini.
80Bx La CPU identifie par LADDR ne prend pas en charge l'instruction LED.
8.5.2 Instruction DeviceStates
Tableau 8- 105 Instruction DeviceStates
CONT/LOG SCL Description

ret_val := DeviceStates(
laddr:=hw_io_in_,
mode:=_uint_in_,
state:=_variant_inout_);
Permet d'extraire les tats de fonctionnement des
priphriques IO d'un sous-systme IO. Cette
information correspond la vue de diagnostic
STEP 7.

Tableau 8- 106 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
LADDR IN HW_IOSYSTEM Adresse logique (identificateur pour le systme IO)
MODE IN UInt Type d'tat :
1: Stations configures
2: Stations dfaillantes
3: Stations dsactives
4: Stations existantes
101BInstructions avances
8.5 Diagnostic (PROFINET ou PROFIBUS)
Automate programmable S7-1200
308 Manuel systme, 11/2011, A5E02486682-05
Paramtre et type Type de donnes Description
RET_VAL OUT Int Code d'erreur d'excution
STATE
1
InOut Variant Mmoire tampon contenant l'tat d'erreur de chaque priphrique :
Bit rcapitulatif : bit 0 =1 si l'un des bits d'tat des
priphriques IO est 1.
Bit d'tat : tat du priphrique IO de numro de station n en
fonction du mode slectionn. Par exemple, MODE = 2 et bit 3
= 1 signifient que la station 3 est dfaillante.
1
Pour PROFIBUS DP, la longueur des informations d'tat est de 128 bits. Pour PROFIBUS IO, cette longueur est de
1024 bits.
Aprs l'excution, le paramtre STATE contient l'tat d'erreur de chaque priphrique IO
sous forme de liste de bits (pour les paramtres LADDR et MODE indiqus).
Le type de donnes utilis pour le paramtre STATE peut tre tout type de donnes binaire
(Bool, Byte, Word ou DWord) ou un tableau de type binaire.
Tableau 8- 107 Codes d'erreur
RET_VAL (W#16#...) Description
0 Pas d'erreur
8091 LADDR n'existe pas.
8092 LADDR ne correspond pas un systme IO.
80Bx L'instruction DeviceStates n'est pas prise en charge par la CPU pour cette adresse LADDR.
8452 Les donnes d'tat compltes sont trop grandes pour STATE. Le paramtre STATE contient
un rsultat partiel.
8.5.3 Instruction ModuleStates
Tableau 8- 108 Instruction ModuleStates
CONT/LOG SCL Description

ret_val := ModuleStates(
laddr:=_word_in_,
mode:=_uint_in,
state:=_variant_inout);
Permet d'extraire les tats de fonctionnement
des modules d'E/S de priphriques IO. Cette
information correspond la vue de diagnostic
STEP 7.

101BInstructions avances
8.5 Diagnostic (PROFINET ou PROFIBUS)
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 309
Tableau 8- 109 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
LADDR IN HW_IOSYSTEM Adresse logique (identificateur pour le priphrique IO)
MODE IN UInt Type d'tat :
1: Modules configurs
2: Modules dfaillants
3: Modules dsactivs
4: Modules existants
RET_VAL OUT Int Etat (code d'erreur)
STATE
1
InOut Variant Mmoire tampon contenant l'tat d'erreur de chaque priphrique
Bit rcapitulatif : bit 0 =1 si l'un des bits d'tat des
priphriques IO est 1.
Bit d'tat : tat du priphrique IO de numro de station n en
fonction du mode slectionn. Par exemple, MODE = 2 et bit 3
= 1 signifient que la station 3 est dfaillante.
1
La longueur requise dpend du priphrique IO, avec 128 bits au maximum.

Tableau 8- 110 Codes d'erreur
RET_VAL ( W#16#...) Description
0 Pas d'erreur
8091 L'appareil identifi par LADDR n'existe pas.
8092 L'appareil identifi par LADDR ne correspond pas un priphrique IO.
80Bx L'instruction ModuleStates n'est pas prise en charge par cette CPU pour cette adresse
LADDR.
8452 Les donnes d'tat compltes sont trop grandes pour STATE. Le paramtre STATE contient
un rsultat partiel.
8.5.4 Instruction GET_DIAG
Tableau 8- 111 Instruction GET_DIAG
CONT/LOG SCL Description

ret_val := GET_DIAG(
mode:=_uint_in_,
laddr:=_word_in_,
cnt_diag=>_uint_out_,
diag:=_variant_inout_,
detail:=_variant_inout_);
Permet de lire les informations de diagnostic
du priphrique spcifi.

101BInstructions avances
8.5 Diagnostic (PROFINET ou PROFIBUS)
Automate programmable S7-1200
310 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 112 Types de donnes pour les paramtres
Paramtre et type Type de donnes Description
MODE IN UInt Mode
LADDR IN HW_ANY (Word) Numro d'identification du priphrique
DIAG InOut Variant Information de diagnostic selon le mode de diagnostic
DETAIL InOut Variant Dtails du diagnostic selon le mode de diagnostic
RET_VAL OUT Int Rsultat de l'excution / message d'erreur
CNT_DIAG OUT UInt Nombre de dtails de diagnostic renvoys
Le priphrique est slectionn au moyen du paramtre d'entre LADDR. Le paramtre
d'entre MODE permet de slectionner le type d'information de diagnostic renvoye.
Tableau 8- 113 Paramtre MODE
Entre MODE Sortie DIAG Sortie CNT_DIAG Sortie DETAIL
0 Liste de bits des modes pris en charge en
tant que double mot DWord
0 Nant
1 Etat de diagnostic comme source
d'information de diagnostic (DIS)
0 Nant
2 Noeud de navigation de diagnostic (DNN) 0 Nant

Tableau 8- 114 Structure de la source d'information de diagnostic (DIS)
DIS : Struct;
OwnState: UInt;
MaintenanceState: DWord;
IOState: Word;
ComponentStateDetail: DWord;
OperatingState: UInt;
End_Struct

Tableau 8- 115 Structure du noeud de navigation de diagnostic (DNN)
DNN : Struct;
SubordinateState: UInt;
SubordinateIOState: Word;
DNNmode: Word;
End_Struct

101BInstructions avances
8.6 Impulsion
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 311
Tableau 8- 116 Codes d'erreur
RET_VAL (W#16#...) Description
0 Pas d'erreur
n Les n dtails de diagnostic existants n'ont pas pu tous tre fournis.
8080 Mode non pris en charge
8081 Le type de donnes dans le paramtre DIAG n'est pas pris en charge avec le mode indiqu.
8082 Le type de donnes dans le paramtre DETAIL n'est pas pris en charge avec le mode
indiqu.
8090 L'appareil identifi par LADDR n'existe pas.
8091 La voie n'existe pas.
80C1 Manque de ressources pour des excutions en parallle
8.6 Impulsion
8.6.1 Instruction CTRL_PWM
Tableau 8- 117 Instruction CTRL_PWM (Modulation de largeur d'impulsion)
CONT/LOG SCL Description

"CTRL_PWM_DB"(
PWM:=_word_in_,
enable:=_bool_in_,
busy=>_bool_out_,
status=>_word_out_);
Fournit une sortie priode fixe avec un rapport
cyclique variable. La sortie PWM s'excute en continu
une fois qu'elle a t lance la frquence indique
(priode). On fait varier la largeur d'impulsion de la
manire ncessaire pour influer sur la commande
souhaite.
1
STEP 7 cre automatiquement le DB lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "CTRL_PWM_DB" est le nom du DB d'instance.
CTRL_HSC

Tableau 8- 118 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
PWM IN HW_PWM
(Word)
Identificateur PWM : les noms des gnrateurs d'impulsions activs
deviennent des variables dans la table de variables "Constantes" et
sont disponibles pour utilisation comme paramtre PWM. (valeur par
dfaut : 0) 0)
ENABLE IN Bool 1=dmarrer le gnrateur d'impulsions
0 = arrter le gnrateur d'impulsions
BUSY OUT Bool Fonction occupe (valeur par dfaut : 0) 0)
STATUS OUT Word Code d'erreur d'excution (valeur par dfaut : 0) 0)
101BInstructions avances
8.6 Impulsion
Automate programmable S7-1200
312 Manuel systme, 11/2011, A5E02486682-05
L'instruction CTRL_PWM stocke les informations de paramtres dans le DB. L'utilisateur ne
peut pas modifier sparment les paramtres du bloc de donnes qui sont grs par
l'instruction CTRL_PWM.
Indiquez le gnrateur d'impulsions activ utiliser en spcifiant son nom de variable
comme paramtre PWM.
Lorsque l'entre EN est VRAI, l'instruction PWM_CTRL dmarre ou arrte le gnrateur
d'impulsions PWM identifi conformment la valeur de l'entre ENABLE. La dure de
l'impulsion est prcise par la valeur dans l'adresse de mot de sortie Q associe.
Etant donn que la CPU traite la requte une fois que l'instruction CTRL_PWM est excute,
le paramtre BUSY signalera toujours FAUX. Si une erreur est dtecte, ENO est mis
FAUX et le paramtre STATUS contient un code d'erreur.
La largeur d'impulsion est dfinie la valeur initiale paramtre dans la configuration des
appareils lorsque la CPU passe l'tat MARCHE. Vous crivez des valeurs dans l'adresse
de mot Q indique dans la configuration des appareils (Adresses de sortie / Adresse de
dpart) selon vos besoins pour modifier la dure d'impulsion. Vous utilisez une instruction de
transfert, de conversion, mathmatique ou une bote PID pour crire la dure d'impulsion
dsire dans le mot Q appropri. Vous devez utiliser la plage valide de la valeur de mot Q
(pourcentage, millimes, dix millimes ou format analogique S7).

Remarque
Les E/S TOR affectes PWM et PTO ne peuvent pas tre forces
Les E/S TOR utilises par la modulation de largeur d'impulsion (PWM) et la sortie de trains
d'impulsions (PTO) sont affectes pendant la configuration des appareils. Lorsque des
adresses d'E/S TOR sont affectes ces appareils, les valeurs dans les adresses d'E/S
affectes ne peuvent pas tre forces par la fonction de forage permanent de la table de
visualisation.


Tableau 8- 119 Valeurs du paramtre STATUS
STATUS Description
0 Pas d'erreur
80A1 L'identificateur PWM n'accde pas un nom de gnrateur d'impulsions valide.

Tableau 8- 120 Codes d'erreur communs
Code d'erreur
1
Description
8022 Zone trop petite pour l'entre
8023 Zone trop petite pour la sortie
8024 Zone d'entre illicite
8025 Zone de sortie illicite
8028 Affectation illicite de bit d'entre
8029 Affectation illicite de bit de sortie
101BInstructions avances
8.6 Impulsion
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 313
Code d'erreur
1
Description
8030 La zone de sortie est un DB en lecture seule.
803A DB inexistant
1
Si l'une des erreurs communes se produit pendant l'excution d'un bloc de code, la CPU passe l'tat ARRET moins
que vous n'ayez utilis l'instruction GetError ou GetErrorID dans ce bloc de code pour crer une raction programme
l'erreur.
8.6.2 Fonctionnement des sorties d'impulsions




Temps de cycle

Largeur d'impulsion
La largeur d'impulsion peut tre exprime sous forme
de centimes de la priode (0 100), de millimes (0
1000), de dix millimes (0 10000) ou de format
analogique S7.
La largeur d'impulsion peut varier de 0 (pas
d'impulsion, toujours dsactive) la pleine chelle
(pas d'impulsion, toujours active).
Comme la sortie PWM peut varier de 0 la pleine chelle, elle fournit une sortie TOR qui
est, en de nombreuses faons, identique une sortie analogique. Vous pouvez, par
exemple, utiliser cette sortie PWM pour commander la vitesse d'un moteur de l'arrt la
pleine vitesse ou pour commander la position d'une soupape de "ferme" "compltement
ouverte".
Deux gnrateurs d'impulsions sont disponibles pour commander les fonctions de sortie
d'impulsions rapides : PWM et PTO (Sortie de trains d'impulsions). PTO est utilis par les
instructions de commande de mouvement. Vous pouvez affecter chaque gnrateur
d'impulsions PWM ou PTO, mais pas aux deux en mme temps.
101BInstructions avances
8.6 Impulsion
Automate programmable S7-1200
314 Manuel systme, 11/2011, A5E02486682-05
Les deux gnrateurs d'impulsions sont mapps sur des sorties TOR spcifiques comme
dcrit dans le tableau suivant. Vous pouvez utiliser les sorties CPU intgres ou les sorties
du Signal Board optionnel. Les numros des sorties sont indiqus dans le tableau suivant
(sur la base de la configuration par dfaut des sorties). Si vous avez modifi la numrotation
des sorties, les numros des sorties seront ceux que vous avez dfinis. Quoi qu'il en soit,
PTO1/PWM1 utilise les deux premires sorties TOR et PTO2/PWM2 utilise les deux sorties
TOR suivantes, sur la CPU ou sur le Signal Board enfich. Notez que PWM ne ncessite
qu'une sortie alors que PTO peut optionnellement utiliser deux sorties par voie. Si une sortie
n'est pas utilise pour une fonction d'impulsion, elle est disponible pour d'autres usages.

IMPORTANT
Les sorties de trains d'impulsions ne peuvent pas tre utilises par d'autres instructions
dans le programme utilisateur
Lorsque vous configurez les sorties de la CPU ou du Signal Board en tant que gnrateurs
d'impulsions (pour les instructions PWM ou de commande de mouvement de base), les
adresses des sorties correspondantes (Q0.0, Q0.1, Q4.0 et Q4.1) sont supprimes de la
mmoire Q et ne peuvent pas tre utilises d'autres fins dans le programme utilisateur. Si
votre programme utilisateur crit une valeur dans une sortie utilise comme gnrateur
d'impulsions, la CPU n'crit pas cette valeur dans la sortie physique.

Tableau 8- 121 Affectations par dfaut des sorties aux gnrateurs d'impulsions
Description Impulsion Sens
Intgre la CPU Q0.0 Q0.1 PTO 1
Signal Board Q4.0 Q4.1
Intgre la CPU Q0.0 -- PWM 1
Signal Board Q4.0 --
Intgre la CPU Q0.2 Q0.3 PTO 2
Signal Board Q4.2 Q4.3
Intgre la CPU Q0.2 -- PWM 2
Signal Board Q4.2 --
101BInstructions avances
8.6 Impulsion
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 315
8.6.3 Configuration d'une voie d'impulsion pour PWM
Pour prparer le fonctionnement de PWM, configurez d'abord une voie d'impulsion dans la
configuration des appareils en slectionnant la CPU, le gnrateur d'impulsions (PTO/PWM)
et soit PWM1 soit PWM2. Activez le gnrateur d'impulsions (case cocher). Si un
gnrateur d'impulsions est activ, un nom par dfaut unique est affect ce gnrateur
d'impulsions particulier. Vous pouvez modifier ce nom en l'ditant dans la bote d'dition
"Nom :", mais ce doit tre un nom unique. Les noms des gnrateurs d'impulsions activs
deviennent des variables dans la table de variables "Constantes" et sont disponibles pour
utilisation comme paramtre PWM de l'instruction CTRL_PWM.

IMPORTANT
La frquence d'impulsion maximale des gnrateurs d'impulsions pour les sorties TOR est
de 100 kHz (pour la CPU), de 20 kHz (pour un SB) et de 200 kHz (pour un SB rapide).
Toutefois, STEP 7 ne vous avertit pas si vous configurez un axe avec une vitesse ou une
frquence maximale qui dpasse cette limitation matrielle. Afin d'viter tout problme avec
votre application, assurez-vous toujours de ne pas dpasser la frquence d'impulsion
maximale du matriel.

Vous pouvez renommer le gnrateur d'impulsions, ajouter un commentaire et affecter des
paramtres comme suit.
Gnrateur d'impulsions utilis comme suit : PWM ou PTO (choisissez PWM)
Source de sortie : Intgre la CPU ou SB
Unit de temps : millisecondes ou microsecondes
Format de dure d'impulsion :
Centimes (0 100)
Millimes (0 1000)
Dix millimes (0 10000)
Format analogique S7 (0 27648)
Priode : Entrez la valeur de la priode. Cette valeur ne peut tre modifie que dans la
Configuration des appareils.
Dure d'impulsion initiale : Entrez la valeur initiale de la dure d'impulsion. La valeur de la
dure d'impulsion peut tre modifie pendant l'excution.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
316 Manuel systme, 11/2011, A5E02486682-05
Entrez l'adresse de dbut pour configurer les adresses de sortie. Entrez l'adresse de mot Q
dans laquelle vous voulez placer la valeur de dure d'impulsion.

IMPORTANT
Les sorties de trains d'impulsions ne peuvent pas tre utilises par d'autres instructions
dans le programme utilisateur
Lorsque vous configurez les sorties de la CPU ou du Signal Board en tant que gnrateurs
d'impulsions (pour les instructions PWM ou de commande de mouvement de base), les
adresses des sorties correspondantes (Q0.0, Q0.1, Q4.0 et Q4.1) sont supprimes de la
mmoire Q et ne peuvent pas tre utilises d'autres fins dans le programme utilisateur. Si
votre programme utilisateur crit une valeur dans une sortie utilise comme gnrateur
d'impulsions, la CPU n'crit pas cette valeur dans la sortie physique.

L'adresse par dfaut est QW1000 pour PWM1 et QW1002 pour PWM2. La valeur cette
adresse commande la dure de l'impulsion et est initialise la valeur "Dure d'impulsion
initiale" indique ci-avant chaque fois que la CPU passe de l'tat ARRET l'tat MARCHE.
Vous modifiez cette valeur de mot Q pendant l'excution pour modifier la largeur d'impulsion.
8.7 Consignation de donnes
Votre programme de commande peut utiliser les instructions Data log pour stocker des
valeurs de donnes d'excution dans des fichiers journaux permanents. Les fichiers
journaux sont stocks en mmoire flash (CPU ou carte mmoire). Les donnes des journaux
sont stockes en format CSV standard (valeurs spares par une virgule). Les
enregistrements sont organiss sous forme de fichier journal circulaire d'une dimension
prdtermine.
Vous utiliserez les instructions Data log dans votre programme pour crer, ouvrir, crire un
enregistrement et fermer les fichiers journaux. Vous dcidez des valeurs du programme qui
seront consignes en crant une mmoire tampon qui dfinit un enregistrement de journal
unique. Votre mmoire tampon de donnes sert de stockage temporaire pour un nouvel
enregistrement de journal. Les nouvelles valeurs en cours doivent tre copies par
programme dans la mmoire tampon pendant l'excution. Une fois toutes les valeurs de
donnes en cours actualises, vous pouvez excuter l'instruction DataLogWrite pour
transfrer les donnes de la mmoire tampon dans un enregistrement de journal.
Utilisez le serveur Web API intgr pour grer vos fichiers journaux. Tlchargez des
enregistrements rcents ou tous les enregistrements, effacez des enregistrements ou
supprimez des fichiers journaux l'aide de la page Web standard pour les journaux de
donnes. Lorsqu'un fichier journal a t transfr dans votre PC, vous pouvez en analyser
les donnes l'aide de tableurs standard tels que Microsoft Excel.
8.7.1 Structure des enregistrements de journaux
Les paramtres DATA et HEADER de l'instruction DataLogCreate dfinissent le type de
donnes et la description d'en-tte de colonne de tous les lments de donnes d'un
enregistrement de journal.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 317
Paramtre DATA pour l'instruction DataLogCreate
Le paramtre DATA dsigne de la mmoire utilise comme tampon temporaire pour un
nouvel enregistrement de journal et doit correspondre une adresse M ou DB.
Vous pouvez affecter un DB entier (driv d'un type de donnes API que vous affectez la
cration du DB) ou une partie d'un DB (l'lment de DB indiqu peut tre tout type de
donnes, structure de donnes, type de donnes API ou tableau de donnes).
Les structures sont limites un niveau d'imbrication unique. Le nombre total d'lments de
donnes dclars doit correspondre au nombre de colonnes indiqu dans le paramtre
HEADER. Le nombre maximum d'lments de donnes que vous pouvez affecter est 253
(avec horodatage) ou 255 (sans horodatage). Cette limitation maintient votre enregistrement
en de de la limite de colonne de 256 d'une feuille Microsoft Excel.
Le paramtre DATA peut indiquer des lments de donnes rmanents ou non rmanents
dans un DB de type "standard" (compatible avec S7-300/400) ou "optimis".
Pour crire un enregistrement de journal DATA, vous devez d'abord charger de nouvelles
valeurs du processus dans l'enregistrement DATA temporaire, puis excuter l'instruction
DataLogWrite qui enregistre les nouvelles valeurs de l'enregistrement dans le fichier journal.
Paramtre HEADER pour l'instruction DataLogCreate
Le paramtre HEADER dsigne les noms d'en-tte de colonne dans la ligne suprieure de la
matrice de donnes code dans le fichier CSV. Les donnes HEADER doivent se situer en
mmoire DB ou M et les caractres doivent respecter les rgles du format CSV standard
avec des virgules sparant chaque nom de colonne. Les types de donnes possibles sont la
chane, le tableau d'octets ou le tableau de caractres. Les tableaux de caractres ou
d'octets permettent d'avoir une taille plus importante, les chanes tant limites 255 octets
au maximum. Le paramtre HEADER est facultatif. Si HEADER n'est pas paramtr, aucune
ligne d'en-tte n'est cre dans le fichier journal.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
318 Manuel systme, 11/2011, A5E02486682-05
8.7.2 Instructions de gestion des journaux de donnes
8.7.2.1 DataLogCreate
Tableau 8- 122 Instruction DataLogCreate
CONT/LOG SCL Description

"DataLogCreate_DB"(
req:=_bool_in_,
records:=_udint_in_,
format:=_uint_in_,
timestamp:=_uint_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_,
name:=_string_inout_,
ID:=_dword_inout_,
header:=_variant_inout_,
data:=_variant_inout_);
Cre et initialise un fichier journal. Le
fichier est cr dans le rpertoire
\DataLogs de l'API sous le nom indiqu
par le paramtre NAME et les oprations
d'criture y sont implicitement autorises.
Vous pouvez utiliser les instructions Data
log pour stocker par programme les
donnes d'excution du processus dans
la mmoire flash de la CPU.
STEP 7 cre automatiquement le DB
d'instance associ lorsque vous insrez
l'instruction.
2
Dans l'exemple SCL, "DataLogCreate_DB" est le nom du DB d'instance.

Tableau 8- 123 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
REQ IN Bool Un front montant dclenche l'opration. (valeur par dfaut : faux)
RECORDS IN UDint Nombre maximum d'enregistrements que le journal circulaire peut contenir
avant que l'entre la plus ancienne ne soit crase.
L'enregistrement d'en-tte n'est pas inclus. L'API doit disposer d'une
mmoire de chargement suffisante pour que le journal soit cr avec
succs. (valeur par dfaut : 1)
FORMAT IN UInt Format du journal de donnes :
0: Format interne (non pris en charge)
1: Valeurs spares par des virgules "csv-eng" (valeur par dfaut)
TIMESTAMP IN UInt Format d'horodatage des donnes. Des en-ttes de colonne pour les
champs date et heure ne sont pas ncessaires. L'horodatage utilise l'heure
systme (UTC : temps universel coordonn) et non l'heure locale.
0: Pas d'horodatage
1: Horodatage (valeur par dfaut)
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 319
Paramtre et type Type de
donnes
Description
NAME IN Variant Nom du journal de donnes. Vous indiquez ce nom. Cette variante accepte
seulement le type de donnes String et peut uniquement se situer en
mmoire locale, DB ou M. (valeur par dfaut : ' ')
Cette rfrence chane est galement utilise comme nom du fichier journal.
Vous devez respecter les restrictions concernant les noms dans le systme
de fichiers Windows. Ainsi, les caractres \ / : * ? " < > | et l'espace ne sont
pas autoriss.
ID IN_OUT DWord Identificateur numrique du journal de donnes. Vous mmorisez cette
valeur gnre dont vous aurez besoin avec les autres instructions de
journaux de donnes. Le paramtre ID est uniquement utilis comme sortie
dans l'instruction DataLogCreate. (valeur par dfaut : 0)
L'accs symbolique ce paramtre n'est pas autoris.
HEADER IN_OUT Variant Pointeur dsignant les noms d'en-tte de colonne du journal dans la ligne
suprieure de la matrice de donnes code dans le fichier CSV. (Valeur par
dfaut : nul).
Les donnes HEADER doivent se situer en mmoire DB ou M.
Les caractres doivent respecter les rgles du format CSV standard avec
des virgules sparant chaque nom de colonne. Les types de donnes
possibles sont la chane, le tableau d'octets ou le tableau de caractres. Les
tableaux de caractres ou d'octets permettent d'avoir une taille plus
importante, les chanes tant limites 255 octets au maximum.
Le paramtre HEADER est facultatif. Si HEADER n'est pas paramtr,
aucune ligne d'en-tte n'est cre dans le fichier journal.
DATA IN_OUT Variant Pointeur dsignant une structure, un type de donnes utilisateur (UDT) ou
un tableau pour les donnes des enregistrements. Les donnes des
enregistrements doivent se situer en mmoire DB ou M.
Le paramtre DATA indique les lments de donnes individuels (colonnes)
d'un enregistrement de journal et leur type de donnes. Les structures sont
limites un niveau d'imbrication unique. Le nombre d'lments de
donnes dclars doit correspondre au nombre de colonnes indiqu dans le
paramtre HEADER. Le nombre maximum d'lments de donnes que
vous pouvez affecter est 253 (avec horodatage) ou 255 (sans horodatage).
Cette limitation maintient votre enregistrement en de de la limite de
colonne de 256 d'une feuille Microsoft Excel.
DONE OUT Bool Le bit DONE est VRAI pour un cycle lorsque la dernire demande s'est
acheve sans erreur. (valeur par dfaut : faux)
BUSY OUT Bool
0 : Pas d'opration en cours
1 : Opration en cours
ERROR OUT Bool Le bit ERROR est VRAI pour un cycle lorsque la dernire demande s'est
acheve avec une erreur. La valeur de code d'erreur dans le paramtre
STATUS ne vaut que pendant le cycle o ERROR est VRAI.
STATUS OUT Word Code d'erreur d'excution (valeur par dfaut : 0)
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
320 Manuel systme, 11/2011, A5E02486682-05
Le fichier journal est cr avec une taille fixe prdtermine base sur les paramtres
RECORDS et DATA. Les enregistrements sont organiss sous forme de fichier journal
circulaire. De nouveaux enregistrements sont ajouts au fichier journal jusqu' ce que le
nombre maximum d'enregistrements indiqu dans le paramtre RECORDS soit sauvegard.
L'enregistrement suivant se substituera alors l'enregistrement le plus ancien. Une nouvelle
opration d'criture crasera l'enregistrement le plus ancien suivant et ainsi de suite.

Remarque
Si vous voulez viter l'crasement d'enregistrements, vous pouvez crer un nouveau journal
sur la base du journal en cours avec l'instruction DataLogNewFile lorsque le journal en cours
a atteint le nombre maximum d'enregistrements. Les nouveaux enregistrements seront alors
sauvegards dans le nouveau fichier journal. L'ancien fichier journal avec ses donnes
enregistres sont conservs dans la mmoire flash de la CPU.

Utilisation de la mmoire :
Les journaux ne consomment que de la mmoire de chargement.
Aucune limite n'est dfinie pour le nombre total de journaux. La taille de tous les journaux
combins est limite par les ressources de mmoire de chargement disponibles. Huit
journaux au maximum peuvent tre ouverts simultanment.
Le nombre maximum possible pour le paramtre RECORDS est la limite des nombres
UDint (4 294 967 295). La limite effective pour le paramtre RECORD dpend de la taille
d'un enregistrement individuel, de la taille des autres journaux et des ressources de
mmoire de chargement disponibles. En outre, Microsoft Excel limite le nombre de lignes
dans une feuille Excel.


Remarque
L'excution d'une instruction DataLogCreate s'tend sur de nombreux cycles du
programme. La dure relle ncessaire la cration d'un fichier journal dpend de la
structure d'un enregistrement et du nombre d'enregistrements. La logique de votre
programme doit surveiller et capturer la transition l'tat VRAI du bit DONE de
DataLogCreate avant que le nouveau journal ne puisse tre utilis pour d'autres
oprations sur les journaux.
Tableau 8- 124 Valeurs de ERROR et STATUS
ERROR STATUS (W#16#....) Description
0 0000 Pas d'erreur
0 7000 Appel sans front de REQ : BUSY = 0, DONE = 0
0 7001 Premier appel avec front de REQ (fonctionne) : BUSY = 1, DONE = 0
0 7002 n-ime appel (fonctionne) : BUSY = 1, DONE = 0
1 8070 Toute la mmoire d'instance interne est utilise.
1 807F Erreur interne
1 8090 Nom de fichier invalide
1 8091 Le paramtre NAME ne fait pas rfrence une chane de caractres.
1 8093 Le journal de donnes existe dj.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 321
ERROR STATUS (W#16#....) Description
1 8097 La longueur de fichier demande dpasse le maximum du systme de fichiers.
1 80B3 Mmoire de chargement disponible insuffisante
1 80B4 Cartouche mmoire protge en criture
1 80C1 Trop de fichiers ouverts : huit fichiers journaux ouverts sont autoriss au
maximum.
1 8253 Nombre d'enregistrements invalide
1 8353 Format slectionn invalide
1 8453 Horodatage slectionn invalide
1 8B24 Allocation de zone HEADER invalide : Pointe par exemple sur la mmoire locale
1 8B51 Type de donnes du paramtre HEADER invalide
1 8B52 Trop d'lments de donnes dans le paramtre HEADER
1 8C24 Affectation de zone DATA invalide : Pointe par exemple sur la mmoire locale
1 8C51 Type de donnes du paramtre DATA invalide
1 8C52 Trop d'lments de donnes dans le paramtre DATA
8.7.2.2 DataLogOpen
Tableau 8- 125 Instruction DataLogOpen
CONT/LOG SCL Description

"DataLogOpen_DB"(
req:=_bool_in_,
mode:=_uint_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_,
name:=_string_inout_,
ID:=_dword_inout_);
Ouvre un fichier journal pr-existant. Un journal doit tre
ouvert pour que vous puissiez y crire de nouveaux
enregistrements. Les journaux peuvent tre ouverts et
ferms de faon individuelle. Huit journaux au maximum
peuvent tre ouverts en mme temps.
STEP 7 cre automatiquement le DB d'instance associ
lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "DataLogOpen_DB" est le nom du DB d'instance.

Tableau 8- 126 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
REQ IN Bool Un front montant dclenche l'opration. (valeur par dfaut : faux)
MODE IN UInt Mode de fonctionnement :
0 : Ajouter aux donnes existantes (valeur par dfaut)
1 : Effacer tous les enregistrements existants
NAME IN Variant Nom d'un journal existant. Cette variante accepte seulement le type de
donnes String et peut uniquement se situer en mmoire locale, DB ou
M. (valeur par dfaut : ' ')
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
322 Manuel systme, 11/2011, A5E02486682-05
Paramtre et type Type de
donnes
Description
ID IN_OUT DWord Identificateur numrique d'un journal de donnes (valeur par dfaut : 0)
Remarque : L'accs symbolique ce paramtre n'est pas autoris.
DONE OUT Bool Le bit DONE est VRAI pour un cycle lorsque la dernire demande s'est
acheve sans erreur. (valeur par dfaut : faux)
BUSY OUT Bool
0 : Pas d'opration en cours
1 : Opration en cours
ERROR OUT Bool Le bit ERROR est VRAI pour un cycle lorsque la dernire demande s'est
acheve avec une erreur. La valeur de code d'erreur dans le paramtre
STATUS ne vaut que pendant le cycle o ERROR est VRAI.
STATUS OUT Word Code d'erreur d'excution (valeur par dfaut : 0)
Vous pouvez indiquer soit le nom NAME, soit l'identificateur numrique ID (ID en tant que
paramtre d'entre) d'un journal pr-existant. Si vous indiquez les deux paramtres et que
l'ID valide indiqu correspond bien au journal dsign par NAME, l'ID est utilis et le nom
NAME n'est pas pris en compte.
Le nom indiqu dans NAME doit tre le nom d'un journal cr avec l'instruction
DataLogCreate. Si vous indiquez uniquement le paramtre NAME et que NAME dsigne un
journal valide, l'ID correspondant est renvoy (ID en tant que paramtre de sortie).

Remarque
Utilisation gnrale des fichiers journaux
Les fichiers journaux sont automatiquement ouverts aprs les instructions DataLogCreate
et DataLogNewFile.
Les fichiers journaux sont automatiquement ferms lors d'un passage de l'API de l'tat
MARCHE l'tat ARRET ou lors d'une mise hors tension puis sous tension de l'API.
Un fichier journal doit tre ouvert pour qu'une nouvelle opration DataLogWrite soit
possible.
Huit fichiers journaux au plus peuvent tre ouverts un moment donn. Il peut exister
plus de huit fichiers journaux, mais certains d'entre eux doivent tre ferms pour qu'il n'y
en ait pas plus de huit ouverts.


Tableau 8- 127 Valeurs de ERROR et STATUS
ERROR STATUS (W#16#) Description
0 0000 Pas d'erreur
0 0002 Avertissement : Fichier journal dj ouvert par ce programme d'application
0 7000 Appel sans front de REQ : BUSY = 0, DONE = 0
0 7001 Premier appel avec front de REQ (fonctionne) : BUSY = 1, DONE = 0
0 7002 n-ime appel (fonctionne) : BUSY = 1, DONE = 0
1 8070 Toute la mmoire d'instance interne est utilise.
1 8090 La dfinition de journal est incompatible avec le fichier journal existant.
1 8091 Le paramtre NAME ne fait pas rfrence une chane de caractres.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 323
ERROR STATUS (W#16#) Description
1 8092 Le journal n'existe pas.
1 80C0 Le fichier journal est verrouill.
1 80C1 Trop de fichiers ouverts : huit fichiers journaux ouverts sont autoriss au
maximum.
8.7.2.3 DataLogClose
Tableau 8- 128 Instruction DataLogClose
CONT/LOG SCL Description

"DataLogClose_DB"(
req:=_bool_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_,
ID:=_dword_inout_);
Ferme un fichier journal ouvert. Les oprations
DataLogWrite sur un fichier journal ferm provoquent
une erreur. Aucune opration d'criture dans ce journal
n'est autorise tant qu'une nouvelle opration
DataLogOpen n'est pas excute.
Un passage l'tat ARRET ferme tous les fichiers
journaux ouverts.
STEP 7 cre automatiquement le DB d'instance associ
lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "DataLogClose_DB" est le nom du DB d'instance.

Tableau 8- 129 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
REQ IN Bool Un front montant dclenche l'opration. (valeur par dfaut : faux)
ID IN_OUT DWord Identificateur numrique d'un journal de donnes. Utilis uniquement comme
entre pour l'instruction DataLogClose (valeur par dfaut : 0)
Remarque : L'accs symbolique ce paramtre n'est pas autoris.
DONE OUT Bool Le bit DONE est VRAI pour un cycle lorsque la dernire demande s'est
acheve sans erreur.
BUSY OUT Bool
0 : Pas d'opration en cours
1 : Opration en cours
ERROR OUT Bool Le bit ERROR est VRAI pour un cycle lorsque la dernire demande s'est
acheve avec une erreur. La valeur de code d'erreur dans le paramtre
STATUS ne vaut que pendant le cycle o ERROR est VRAI.
STATUS OUT Word Code d'erreur d'excution (valeur par dfaut : 0)

101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
324 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 130 Valeurs de ERROR et STATUS
ERROR STATUS (W#16#) Description
0 0000 Pas d'erreur
0 0001 Le journal n'est pas ouvert.
0 7000 Appel sans front de REQ : BUSY = 0, DONE = 0
0 7001 Premier appel avec front de REQ (fonctionne) : BUSY = 1, DONE = 0
0 7002 n-ime appel (fonctionne) : BUSY = 1, DONE = 0
1 8092 Le journal n'existe pas.
8.7.2.4 DataLogWrite
Tableau 8- 131 Instruction DataLogWrite
CONT/LOG SCL Description

"DataLogWrite_DB"(
req:=_bool_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_,
ID:=_dword_inout_);
Ecrit un enregistrement dans le journal spcifi. Le journal
cible pr-existant doit tre ouvert pour qu'une opration
DataLogWrite soit autorise.
STEP 7 cre automatiquement le DB d'instance associ
lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "DataLogWrite_DB" est le nom du DB d'instance.

Tableau 8- 132 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
REQ IN Bool Un front montant dclenche l'opration. (valeur par dfaut : faux)
ID IN_OUT DWord Identificateur numrique du journal de donnes. Utilis uniquement comme
entre pour l'instruction DataLogWrite (valeur par dfaut : 0)
Remarque : L'accs symbolique ce paramtre n'est pas autoris.
DONE OUT Bool Le bit DONE est VRAI pour un cycle lorsque la dernire demande s'est
acheve sans erreur.
BUSY OUT Bool
0 : Pas d'opration en cours
1 : Opration en cours
ERROR OUT Bool Le bit ERROR est VRAI pour un cycle lorsque la dernire demande s'est
acheve avec une erreur. La valeur de code d'erreur dans le paramtre
STATUS ne vaut que pendant le cycle o ERROR est VRAI.
STATUS OUT Word Code d'erreur d'excution (valeur par dfaut : 0)
L'adresse et la structure de donnes de la mmoire tampon d'enregistrements sont dfinies
par le paramtre DATA d'une instruction DataLogCreate. Vous devez charger par
programme les valeurs du processus en cours d'excution dans la mmoire tampon, puis
excuter l'instruction DataLogWrite pour copier les nouvelles donnes de la mmoire
tampon dans le journal.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 325
Le paramtre ID identifie un journal et une configuration d'enregistrement. Le nombre ID est
gnr la cration d'un journal.
S'il y a des enregistrements vides dans le fichier journal circulaire, l'criture se fait dans
l'enregistrement vide disponible suivant. Si tous les enregistrements sont pleins,
l'enregistrement le plus ancien est cras.

PRUDENCE
Perte potentielle de donnes de journaux pendant une coupure de courant affectant la
CPU
Si une coupure de courant se produit pendant une opration DataLogWrite qui n'est pas
encore acheve, l'enregistrement en cours de transfert dans le journal peut tre perdu.


Tableau 8- 133 Valeurs de ERROR et STATUS
ERROR STATUS (W#16#) Description
0 0000 Pas d'erreur
0 0001 Indique que le journal est plein. Chaque journal est cr avec un nombre
maximumv dfini d'enregistrements. Le dernier enregistrement du nombre
maximum a t crit. La prochaine opration d'criture crasera donc
l'enregistrement le plus ancien.
0 7000 Appel sans front de REQ : BUSY = 0, DONE = 0
0 7001 Premier appel avec front de REQ (fonctionne) : BUSY = 1, DONE = 0
0 7002 n-ime appel (fonctionne) : BUSY = 1, DONE = 0
1 8070 Toute la mmoire d'instance interne est utilise.
1 8092 Le journal n'existe pas.
1 80B0 Le fichier journal n'est pas ouvert (uniquement pour le mode d'ouverture
explicite).
8.7.2.5 DataLogNewFile
Tableau 8- 134 Instruction DataLogNewFile
CONT/LOG SCL Description

"DataLogNewFile_DB"(
req:=_bool_in_,
records=:_udint_in_,
done=>_bool_out_,
busy=>_bool_out_,
error=>_bool_out_,
status=>_word_out_,
name=:_DataLog_out_,
ID:=_dword_inout_);
Permet votre programme de crer un
nouveau fichier journal sur la base d'un
fichier journal existant.
STEP 7 cre automatiquement le DB
d'instance associ lorsque vous insrez
l'instruction.
2
Dans l'exemple SCL, "DataLogNewFile_DB" est le nom du DB d'instance.

101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
326 Manuel systme, 11/2011, A5E02486682-05
Tableau 8- 135 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
REQ IN Bool Un front montant dclenche l'opration. (valeur par dfaut : faux)
RECORDS IN UDInt Nombre maximum d'enregistrements que le journal circulaire peut contenir
avant que l'entre la plus ancienne ne soit crase. (valeur par dfaut : 1) 1)
L'enregistrement d'en-tte n'est pas inclus. La CPU doit disposer d'une
mmoire de chargement suffisante pour que le journal soit cr avec
succs.
NAME IN Variant Nom du journal de donnes. Vous indiquez ce nom. Cette variante accepte
seulement le type de donnes String et peut uniquement se situer en
mmoire locale, DB ou M. (valeur par dfaut : ' ') ' ')
Cette rfrence chane est galement utilise comme nom du fichier journal.
Vous devez respecter les restrictions concernant les noms dans le systme
de fichiers Windows. Ainsi, les caractres \ / : * ? " < > | et l'espace ne sont
pas autoriss.
ID IN_OUT DWord Identificateur numrique du journal de donnes (valeur par dfaut : 0):
Au moment de l'excution, l'entre ID identifie un journal de donnes
valide. La configuration du nouveau journal est reprise de ce journal.
Aprs l'excution, le paramtre ID devient une sortie qui renvoie l'ID du
fichier journal nouvellement cr.
Remarque : L'accs symbolique ce paramtre n'est pas autoris.
DONE OUT Bool Le bit DONE est VRAI pour un cycle lorsque la dernire demande s'est
acheve sans erreur.
BUSY OUT Bool
0 : Pas d'opration en cours
1 : Opration en cours
ERROR OUT Bool Le bit ERROR est VRAI pour un cycle lorsque la dernire demande s'est
acheve avec une erreur. La valeur de code d'erreur dans le paramtre
STATUS ne vaut que pendant le cycle o ERROR est VRAI.
STATUS OUT Word Code d'erreur d'excution (valeur par dfaut : 0) 0)
Vous pouvez excuter l'instruction DataLogNewFile lorsqu'un journal est rempli ou est
considr comme achev et que vous ne voulez perdre aucune des donnes qui y sont
contenues. Un nouveau fichier journal vide ayant la structure du fichier journal plein peut tre
cr. L'enregistrement d'en-tte est repris dans le journal d'origine, ainsi que les proprits
du journal d'origine (mmoire tampon d'enregistrements DATA, format des donnes et
horodatage). Le fichier journal d'origine est implicitement ferm et le nouveau fichier journal
est implicitement ouvert.
Dclenchement via les paramtres de DataLogWrite : Votre programme doit surveiller les
paramtres ERROR et STATUS de chaque opration DataLogWrite. Lorsque le dernier
enregistrement est crit et qu'un journal est plein, le bit ERROR de DataLogWrite est gal
1 et le mot DataLogWrite STATUS est gal 1. Ces valeurs de ERROR et de STATUS ne
sont valables que pendant un cycle, aussi votre logique de surveillance doit-elle utiliser
ERROR = 1 comme dclencheur pour capturer la valeur de STATUS puis tester que
STATUS est gal 1 (journal plein).
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 327
Fonctionnement de DataLogNewFile : Lorsque la logique de votre programme reoit le
signal "journal plein", elle active une opration DataLogNewFile. Vous devez excuter
DataLogNewFile avec l'ID d'un journal existant et ouvert (dj plein) mais avec un nouveau
paramtre NAME unique. Une fois l'opration DataLogNewFile excute, une nouvelle
valeur ID correspondant au nom du nouveau journal est renvoye (en tant que paramtre de
sortie). Le nouveau fichier journal est implicitement ouvert et est prt recevoir de nouveaux
enregistrements. Les nouvelles oprations DataLogWrite destines au nouveau fichier
journal doivent utiliser la valeur ID renvoye par l'opration DataLogNewFile.

Remarque
L'excution d'une instruction DataLogNewFile s'tend sur de nombreux cycles du
programme. La dure relle ncessaire la cration d'un fichier journal dpend de la
structure d'un enregistrement et du nombre d'enregistrements. La logique de votre
programme doit surveiller et capturer la transition l'tat VRAI du bit DONE de
DataLogNewFile avant que le nouveau journal ne puisse tre utilis pour d'autres oprations
sur les journaux.


Tableau 8- 136 Valeurs de ERROR et STATUS
ERROR STATUS (W#16#) Description
0 0000 Pas d'erreur
0 7000 Appel sans front de REQ : BUSY = 0, DONE = 0
0 7001 Premier appel avec front de REQ (fonctionne) : BUSY = 1, DONE = 0
0 7002 n-ime appel (fonctionne) : BUSY = 1, DONE = 0
1 8070 Toute la mmoire d'instance interne est utilise.
1 8090 Nom de fichier invalide
1 8091 Le paramtre NAME ne fait pas rfrence une chane de caractres.
1 8092 Le journal n'existe pas.
1 8093 Le journal de donnes existe dj.
1 8097 La longueur de fichier demande dpasse le maximum du systme de fichiers.
1 80B3 Mmoire de chargement disponible insuffisante
1 80B4 La cartouche mmoire est protge en criture.
1 80C1 Trop de fichiers ouverts
8.7.3 Utilisation des journaux de donnes
Les fichiers journaux sont stocks en format "valeurs spares par des virgules" (*.csv) en
mmoire flash permanente. Vous pouvez visualiser les journaux de donnes l'aide du
serveur Web de l'API ou en retirant la carte mmoire de l'API et en l'insrant dans un lecteur
de carte PC standard.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
328 Manuel systme, 11/2011, A5E02486682-05
Visualisation de journaux de donnes avec le serveur Web API
Si le port PROFINET de l'API et un PC sont connects un rseau, vous pouvez utiliser un
navigateur Web PC tel que Microsoft Internet Explorer ou Mozilla Firefox pour accder au
serveur Web API intgr. L'API peut tre l'tat MARCHE ou ARRET lorsque vous utilisez
le serveur Web API. Si l'API est l'tat MARCHE, votre programme de commande continue
s'excuter pendant que le serveur Web API transfre les donnes de journaux via le
rseau.
Accs par le serveur Web :
1. Activez le serveur Web dans la configuration d'appareil pour la CPU cible (Page 508).
2. Connectez votre PC l'API via le rseau PROFINET (Page 508).
3. Ouvrez une session sur le serveur Web intgr (Page 510).
4. Tlchargez les enregistrements rcents ou tous les enregistrements, effacez des
enregistrements ou supprimez des fichiers journaux l'aide de la page Web standard
pour les journaux de donnes (Page 520).
5. Une fois qu'une copie d'un fichier journal a t charge dans votre PC, vous pouvez
ouvrir le fichier .csv avec un tableur tel que Microsoft Excel.
Visualisation de journaux de donnes sur une carte mmoire API
Si une carte mmoire S7-1200 de type "programme" est insre dans la CPU S7-1200, vous
pouvez enlever la carte mmoire et l'insrer dans une fente de carte SD (Secure Digital) ou
MMC (MultiMediaCard) standard sur un PC ou une PG. L'API est l'tat ARRET lorsque la
carte mmoire est retire et le programme de commande ne s'excute pas.
Servez-vous de l'explorateur de fichiers Windows pour naviguer jusqu'au rpertoire \DataLog
sur la carte mmoire. Tous vos fichiers journaux \*.csv se trouvent dans ce rpertoire.
Faites une copie des fichiers journaux que vous placerez sur un lecteur local de votre PC.
Puis, utilisez Microsoft Excel pour ouvrir une copie locale d'un fichier *.csv et non le fichier
original stock sur la carte mmoire.

PRUDENCE
Vous pouvez copier des fichiers journaux sur une carte mmoire S7-1200 l'aide d'un
lecteur PC, mais ne modifiez pas ni ne supprimez ces fichiers.
La page standard du serveur Web pour les journaux de donnes est l'outil recommand
pour la visualisation, le tlchargement (copie), l'effacement (des donnes) et la
suppression des fichiers journaux. Le serveur Web gre les fichiers en carte mmoire pour
vous et permet d'viter les modifications ou suppressions accidentelles de donnes.
La navigation directe dans le systme de fichiers de la carte mmoire via l'explorateur
Windows prsente un risque car vous pouvez supprimer ou modifier accidentellement les
journaux de donnes ou d'autres fichiers systme, ce qui pourrait altrer des fichiers ou
rendre la carte mmoire inutilisable.

101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 329
Visualisation de journaux dans un navigateur Web
Mme si vous n'utilisez pas le serveur Web, vous pouvez visualiser les journaux directement
dans un navigateur Web, tel qu'Internet Explorer ou Mozilla Firefox. Il suffit d'entrer le texte
suivant dans la barre d'adresse de votre navigateur avec l'adresse IP de votre CPU et le
nom rel du fichier journal que vous avez indiqu dans STEP 7 au lieu de "MyDataLog" :

http://192.168.0.1/DataLog.html?FileName=MyDataLog.csv
Les adresses fixes des fichiers journaux permettent galement d'accder ces derniers par
le biais d'outils de collecte de fichiers de tiers.
8.7.4 Limites de taille des fichiers journaux
Les fichiers journaux partagent la mmoire de chargement de l'API avec le programme, les
donnes de programme, les donnes de configuration, les pages Web personnalises et les
donnes systme API. Un grand programme utilisant la mmoire de chargement interne
requiert une part importante de la mmoire de chargement, les fichiers journaux pouvant
alors manquer d'espace. Dans ce cas, vous pouvez utiliser une carte programme pour
augmenter la taille de la mmoire de chargement. Les CPU S7-1200 peuvent utiliser soit la
mmoire de chargement interne, soit la mmoire de chargement externe, mais pas les deux
simultanment.
Reportez-vous au chapitre sur les cartes mmoire pour plus de dtails sur la cration d'une
carte programme (Page 115).
Rgle de la taille maximale pour un fichier journal
La taille maximale d'un fichier journal ne doit pas dpasser 25% de la taille de la mmoire de
chargement (interne ou externe). Si votre application a besoin de plus d'entres de journal,
utilisez l'instruction "DataLogNewFile" pour crer un nouveau fichier une fois tous les
enregistrements du premier fichier remplis. Le tableau suivant prsente les tailles maximales
pour un fichier journal.
Tableau 8- 137 Taille de la mmoire de chargement et taille maximale pour un fichier journal
Zone de donnes CPU 1211 CPU 1212 CPU 1214 Stockage des donnes
Mmoire de chargement
interne
mmoire flash
1 Mo
(250 Ko max. pour
un fichier journal)
1 Mo
(250 Ko max. pour
un fichier journal)
2 Mo
(500 Ko max. pour
un fichier journal)
Mmoire de chargement
externe
cartes mmoire flash
"programme" optionnelles
2 Mo ou 24 Mo selon la taille de la carte SD
(500 Ko max. pour un fichier journal avec une carte 2 Mo)
(6 Mo max. pour un fichier journal avec une carte 24 Mo)
Programme utilisateur et
donnes de programme,
donnes de configuration,
journaux, pages Web
personnalises plus donnes
systme API
Dtermination de la taille de l'espace libre en mmoire de chargement
1. Etablissez une liaison en ligne entre STEP 7 et l'API S7-1200 cible.
2. Chargez le programme auquel vous voulez ajouter des oprations lies aux journaux de
donnes.
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
330 Manuel systme, 11/2011, A5E02486682-05
3. Crez les pages Web personnalises optionnelles dont vous avez besoin (les pages Web
standard qui donnent accs aux journaux de donnes sont stockes dans le firmware de
l'API et n'utilisent pas la mmoire de chargement).
4. Utilisez les outils en ligne et de diagnostic pour connatre la taille de la mmoire de
chargement et le pourcentage d'espace libre en mmoire de chargement (Page 686).
5. Multipliez la taille de la mmoire de chargement par le pourcentage d'espace libre pour
connatre l'espace actuellement libre en mmoire de chargement.
Rgle de la taille maximale pour l'ensemble des journaux
La quantit d'espace libre en mmoire de chargement varie pendant le fonctionnement
normal au fur et mesure que le systme d'exploitation utilise et libre de la mmoire. Nous
vous conseillons de limiter la taille combine de tous les fichiers journaux la moiti de
l'espace libre disponible.
Calcul des besoins de mmoire pour un enregistrement de journal unique
Les donnes des journaux sont stockes sous forme d'octets caractres dans le format de
fichier CSV (valeurs spares par des virgules). Le tableau suivant montre le nombre
d'octets ncessaires pour le stockage de chaque type de donnes.
Tableau 8- 138 Tailles de donnes CSV
Type de
donnes
Nombre d'octets (octets de donnes plus octet de virgule de sparation)
Bool 2
Byte 5
Word 7
DWord 12
Char 4
String 257 (taille fixe) quel que soit le nombre de caractres de texte effectifs
caractres de la chane + remplissage automatique avec des espaces = 254
octets
guillemets ouvrant et fermant + virgule = 3 octets
254 + 3 = 257 octets
USInt 5
UInt 7
UDInt 12
SInt 5
Int 7
DInt 12
Real 16
LReal 25
Time 15
DTL 24
101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 331
Le paramtre DATA de DataLogCreate dsigne une structure qui indique le nombre de
champs de donnes et le type de donnes de chaque champ pour un enregistrement de
donnes. Le tableau ci-dessus indique les octets ncessaires dans le fichier CSV pour
chaque type de donnes. Multipliez le nombre d'occurrences d'un type de donnes prcis
par le nombre d'octets qu'il ncessite. Rptez cette opration pour chaque type de donnes
dans l'enregistrement et additionnez les nombres d'octets obtenus pour avoir la taille totale
de l'enregistrement. Ajoutez un octet comme caractre de fin de ligne.
taille d'un enregistrement de journal = somme des octets ncessaires pour tous les champs
de donnes + 1 (caractre de fin de ligne)
Calcul des besoins de mmoire pour la totalit du fichier journal
Le paramtre RECORDS de l'instruction DataLogCreate dfinit le nombre maximum
d'enregistrements dans un fichier journal. Lors de la cration d'un fichier journal, la taille de
mmoire maximale est alloue.
taille du fichier journal = (nombre d'octets dans un enregistrement) x (nombre
d'enregistrements)
8.7.5 Exemple de programme pour les journaux de donnes
Cet exemple de programme pour les journaux de donnes ne montre pas toute la logique de
programme ncessaire pour rcuprer des valeurs chantillons d'un processus dynamique,
mais prsente les oprations cls des instructions de journaux de donnes. La structure et le
nombre de fichiers journaux que vous utilisez dpendent des exigences de commande de
votre processus.

Remarque
Utilisation gnrale des fichiers journaux
Les fichiers journaux sont automatiquement ouverts aprs les instructions DataLogCreate
et DataLogNew File.
Les fichiers journaux sont automatiquement ferms lors d'un passage de l'API de l'tat
MARCHE l'tat ARRET ou lors d'une mise hors tension puis sous tension de l'API.
Un fichier journal doit tre ouvert pour qu'une opration DataLogWrite soit possible.
Huit fichiers journaux au plus peuvent tre ouverts un moment donn. Il peut exister
plus de huit fichiers journaux, mais certains d'entre eux doivent tre ferms pour qu'il n'y
en ait pas plus de huit ouverts.


101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
332 Manuel systme, 11/2011, A5E02486682-05
Exemple de programme de journal de donnes
Des noms de journaux, un texte d'en-tte et la structure MyData sont crs titre d'exemple
dans un bloc de donnes. Les trois variables MyData stockent temporairement de nouvelles
valeurs chantillons. On transfre les valeurs chantillons du processus situes ces
adresses de DB dans un fichier journal en excutant l'instruction DataLogWrite.

Rseau 1 Un front montant de REQ dmarre l'opration de cration du journal.

Rseau 2 Capturer la sortie DONE de DataLogCreate car elle n'est valable que pendant un
cycle.

101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 333
Rseau 3 Un front montant dclenche le stockage de nouvelles valeurs du processus dans
la structure MyData.

Rseau 4 L'tat de l'entre EN indique lorsque l'opration DataLogCreate est acheve. Une
opration de cration s'tend sur plusieurs cycles et doit tre acheve avant l'excution
d'une opration d'criture. Un front montant l'entre REQ est l'vnement qui dclenche
une opration d'criture valide.

Rseau 5 Fermer le journal de donnes une fois le dernier enregistrement crit. Aprs
l'excution de l'opration DataLogWrite qui crit le dernier enregistrement, l'tat plein du
fichier journal est signal par la mise 1 de la sortie STATUS de DataLogWrite.

101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
334 Manuel systme, 11/2011, A5E02486682-05
Rseau 6 Un front montant l'entre REQ de DataLogOpen simule l'enfoncement par un
utilisateur d'un bouton sur une IHM qui ouvre un fichier journal. Si vous ouvrez un fichier
journal dont tous les enregistrements sont pleins, l'opration DataLogWrite suivante
crasera l'enregistrement le plus ancien. Vous voudrez peut-tre conserver l'ancien journal
et, pour ce faire, crer un nouveau journal comme illustr au rseau 7.

Rseau 7 Le paramtre ID est un paramtre d'entre/sortie (IN/OUT). Vous fournissez
d'abord la valeur ID du journal existant dont vous voulez copier la structure. Une fois
l'opration DataLogNewFile acheve, une nouvelle valeur ID unique pour le nouveau journal
est renvoye dans l'adresse de rfrence ID. La capture ncessaire du bit DONE = VRAI
n'est pas montre (voir les rseaux 1, 2 et 4 pour un exemple de logique pour le bit DONE).

101BInstructions avances
8.7 Consignation de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 335
Fichiers journaux crs par l'exemple de programme visualiss via le serveur Web de la CPU S7-
1200

Tableau 8- 139 Exemples de fichiers .csv tlchargs visualiss dans Microsoft Excel
Deux enregistrements crits dans un
fichier de cinq enregistrements au
maximum

Cinq enregistrements dans un fichier
journal de cinq enregistrements au
maximum

Une sixime opration d'criture pour
l'criture d'un enregistrement
supplmentaire dans le fichier ci-dessus
qui est plein provoque l'crasement de
l'enregistrement 1 le plus ancien par
l'enregistrement 6. Une nouvelle
opration d'criture provoquera
l'crasement de l'enregistrement 2 par
l'enregistrement 7, et ainsi de suite.
101BInstructions avances
8.8 Gestion des blocs de donnes
Automate programmable S7-1200
336 Manuel systme, 11/2011, A5E02486682-05
8.8 Gestion des blocs de donnes
8.8.1 READ_DBL, WRIT_DBL (Lecture ou criture dans un DB en mmoire de
chargement)
Tableau 8- 140 Instructions READ_DBL et WRIT_DBL
CONT/LOG Description

READ_DBL(
req:=_bool_in_,
srcblk:=_variant_in_,
busy=>_bool_out_,
dstblk=>_variant_out_);
Permet de copier les valeurs initiales
d'un DB ou une partie de ces valeurs
de la mmoire de chargement dans un
DB cible en mmoire de travail.
Le contenu de la mmoire de
chargement n'est pas modifi pendant
l'opration de copie.

WRIT_DBL(
req:=_bool_in_,
srcblk:=_variant_in_,
busy=>_bool_out_,
dstblk=>_variant_out_);
Permet de copier les valeurs en cours
d'un DB ou une partie de ces valeurs
de la mmoire de travail dans un DB
cible en mmoire de chargement.
Le contenu de la mmoire de travail
n'est pas modifi pendant l'opration
de copie.

Tableau 8- 141 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
REQ IN BOOL Un signal de niveau haut dmarre l'opration si BUSY = 0.
SRCBLK IN VARIANT READ_DBL : Pointeur dsignant le bloc de donnes source en
mmoire de chargement
WRIT_DBL : Pointeur dsignant le bloc de donnes source en mmoire
de travail
RET_VAL OUT INT Code d'erreur d'excution
BUSY OUT BOOL BUSY = 1 signale que l'opration de lecture/criture n'est pas acheve.
DSTBLK OUT VARIANT READ_DBL : Pointeur dsignant le bloc de donnes de destination en
mmoire de travail
WRIT_DBL : Pointeur dsignant le bloc de donnes de destination en
mmoire de chargement
101BInstructions avances
8.8 Gestion des blocs de donnes
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 337
Typiquement, un DB est stock la fois dans la mmoire de chargement (mmoire flash) et
dans la mmoire de travail (mmoire vive). Les valeurs initiales sont toujours stockes en
mmoire de chargement et les valeurs en cours sont toujours stockes en mmoire de
travail. On peut utiliser READ_DBL pour copier un ensemble de valeurs initiales de la
mmoire de chargement dans les valeurs en cours d'un DB en mmoire de travail auquel
votre programme fait rfrence. Vous pouvez utiliser WRIT_DBL pour actualiser les valeurs
initiales stockes en mmoire de chargement interne ou dans une carte mmoire avec les
valeurs en cours dans la mmoire de travail.

Remarque
Limitez les oprations d'criture en mmoire flash via WRIT_DBL
L'instruction WRIT_DBL effectue des oprations d'criture en mmoire flash (mmoire de
chargement interne ou carte mmoire). Il convient d'utiliser cette instruction pour des mises
jour exceptionnelles, telles qu'une modification du processus de production.

Les blocs de donnes utiliss par READ_DBL et WRIT_DBL doivent avoir pralablement t
crs par STEP 7 pour que vous puissiez utiliser ces instructions. Si le DB source est cr
avec le type "standard", le DB de destination doit galement tre de type "standard". Si le
bloc de donnes source est cr avec le type "optimis", le bloc de donnes de destination
doit galement tre de type "optimis".
S'il s'agit de DB standard, vous pouvez indiquer un nom de variable ou une valeur P#. La
valeur P# vous permet d'indiquer et de copier un nombre quelconque d'lments de la taille
prcise (octet, mot ou double mot). Vous pouvez ainsi copier tout ou partie d'un DB. S'il
s'agit de DB optimiss, vous pouvez uniquement indiquer un nom de variable ; vous ne
pouvez pas utiliser l'oprateur P#. Si vous indiquez un nom de variable pour des DB
standard ou optimiss (ou pour d'autres types de mmoire de travail), c'est ce qui est
dsign par cette variable qui est copi. Il peut s'agit d'un type utilisateur, d'un tableau ou
d'un lment de base. Le type Struct peut uniquement tre utilis par ces instructions si le
DB est standard, pas s'il est optimis. Vous devez utiliser un type de donnes utilisateur
(UDT) pour une structure en mmoire optimise. Seul un type de donnes utilisateur garantit
que les "types de donnes" sont exactement identiques la fois pour la structure source et
la structure cible.

Remarque
Utilisation d'une structure (type de donnes Struct) dans un DB "optimis"
Lorsque vous utilisez un type de donnes Struct avec des DB "optimiss", vous devez
d'abord crer un type de donnes utilisateur (UDT) pour la structure Struct. Vous configurez
alors les deux DB - source et destination - avec le type UDT. Le type UDT garantit que les
types de donnes l'intrieur de la structure Struct restent cohrents pour les deux DB.
Pour les DB "standard", vous utilisez la structure Struct sans crer d'UDT.

READ_DBL et WRIT_DBL s'excutent de manire asynchrone par rapport au cycle du
programme. Le traitement s'tend sur plusieurs appels de READ_DBL et WRIT_DBL. Vous
dmarrez la tche de transfert de DB en appelant l'instruction avec REQ = 1, puis vous
surveillez les sorties BUSY et RET_VAL pour dterminer si le transfert de donnes est
achev et correct.
101BInstructions avances
8.8 Gestion des blocs de donnes
Automate programmable S7-1200
338 Manuel systme, 11/2011, A5E02486682-05
Pour garantir la cohrence des donnes, ne modifiez pas la zone de destination pendant le
traitement de READ_DBL ou la zone source pendant le traitement de WRIT_DBL (c'est--
dire tant que le paramtre BUSY est VRAI).
Restrictions concernant les paramtres SRCBLK et DSTBLK :
Un bloc de donnes doit avoir t cr avant de pouvoir tre rfrenc.
La longueur d'un pointeur VARIANT de type BOOL doit tre divisible par 8.
La longueur d'un pointeur VARIANT de type STRING doit tre identique dans les
pointeurs source et destination.
Recettes et informations de configuration de machine
Vous pouvez utiliser les instructions READ_DBL et WRIT_DBL pour grer les recettes et les
informations de configuration de machine. Vous disposez ainsi d'une autre mthode pour
assurer la rmanence de valeurs qui ne changent pas souvent, bien que vous deviez veiller
limiter le nombre d'critures pour viter l'usure prmature de la mmoire flash. Dans les
faits, cela permet d'augmenter la quantit de mmoire rmanente au-del de la quantit
normale prise en charge pour les mises hors tension, au moins pour les valeurs qui ne
changent pas souvent. Vous pouvez, par exemple, sauvegarder des informations de recette
ou de configuration de machine de la mmoire de travail dans la mmoire de chargement
l'aide de l'instruction WRIT_DBL et transfrer ce type d'informations de la mmoire de
chargement dans la mmoire de travail l'aide de l'instruction READ_DBL.
Tableau 8- 142 Codes d'erreur
RET_VAL
(W#16#...)
Description
0000 Pas d'erreur
0081 Avertissement : La zone source est plus petite que la zone de destination. Les donnes source sont
copies dans leur intgralit, les octets surnumraires dans la zone de destination restant inchangs.
7000 Appel avec REQ = 0 : BUSY = 0
7001 Premier appel avec REQ = 1 (fonctionne) : BUSY = 1
7002 n-ime appel (fonctionne) : BUSY = 1
8051 Erreur de type de bloc de donnes
8081 La zone source est plus grande que la zone de destination. La zone de destination est compltement
remplie et les octets restants de la source ne sont pas pris en compte.
8251 Erreur de type de bloc de donnes source
82B1 Bloc de donnes source manquant
82C0 Le DB source est en cours d'dition par une autre instruction ou une fonction de communication.
8551 Erreur de type de bloc de donnes de destination
85B1 Bloc de donnes de destination manquant
85C0 Le DB de destination est en cours d'dition par une autre instruction ou une fonction de communication.
80C3 Plus de 50 instructions READ_DBL ou 50 instructions WRIT_DBL sont actuellement en file d'attente
pour excution.
101BInstructions avances
8.9 Codes d'erreur communs pour les instructions avances
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 339
8.9 Codes d'erreur communs pour les instructions avances
Tableau 8- 143 Codes d'erreur communs pour les instructions avances
Code d'erreur (W#16#....)
1
Description
8022 Zone trop petite pour l'entre
8023 Zone trop petite pour la sortie
8024 Zone d'entre illicite
8025 Zone de sortie illicite
8028 Affectation illicite de bit d'entre
8029 Affectation illicite de bit de sortie
8030 La zone de sortie est un DB en lecture seule.
803A DB inexistant
1
Si l'une de ces erreurs se produit pendant l'excution d'un bloc de code, la CPU passe l'tat ARRET moins que
vous n'ayez utilis l'instruction GetError ou GetErrorID dans ce bloc de code et cr une raction programme
l'erreur.

101BInstructions avances
8.9 Codes d'erreur communs pour les instructions avances
Automate programmable S7-1200
340 Manuel systme, 11/2011, A5E02486682-05

Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 341
Instructions technologiques 9
9.1 Compteur rapide
Tableau 9- 1 Instruction CTRL_HSC
CONT/LOG SCL Description

"CTRL_HSC_0_DB" (
hsc:=_hw_hsc_in_,
dir:=_bool_in_,
cv:=_bool_in_,
rv:=_bool_in_,
period:=_bool_in_,
new_dir:=_int_in_,
new_cv:=_int_in_,
new_rv:=_dint_in_,
new_period:=_int_in_,
busy:=_bool_out_,
status:=_word_out_);
Chaque instruction CTRL_HSC utilise une structure
sauvegarde dans un DB afin de conserver les
donnes. Vous affectez le DB lors du placement de
l'instruction CTRL_HSC dans l'diteur.
1
STEP 7 cre automatiquement le DB lorsque vous insrez l'instruction.
2
Dans l'exemple SCL, "CTRL_HSC_0_DB" est le nom du DB d'instance.

Tableau 9- 2 Types de donnes pour les paramtres
Paramtre et type Type de
donnes
Description
HSC IN HW_HSC Identificateur de compteur rapide
DIR
1, 2
IN Bool 1 = Demande de nouveau sens de comptage
CV
1
IN Bool 1 = Demande de paramtrage d'une nouvelle valeur de
compteur
RV
1
IN Bool 1 = Demande de paramtrage d'une nouvelle valeur de
rfrence
PERIOD
1
IN Bool 1 = Demande de paramtrage d'une nouvelle valeur de priode
(uniquement pour le mode de mesure de frquence)
NEW_DIR IN Int Nouveau sens de comptage : 1= incrmentation, -1=
dcrmentation
NEW_CV IN DInt Nouvelle valeur de compteur
NEW_RV IN DInt Nouvelle valeur de rfrence
NEW_PERIOD IN Int Nouvelle valeur de priode en secondes : 0.01, 0.1 ou 1
(uniquement pour le mode de mesure de frquence)
102BInstructions technologiques
9.1 Compteur rapide
Automate programmable S7-1200
342 Manuel systme, 11/2011, A5E02486682-05
Paramtre et type Type de
donnes
Description
BUSY
3
OUT Bool Fonction occupe
STATUS OUT Word Code d'erreur d'excution
1
Si vous ne demandez pas l'actualisation d'une valeur de paramtre, les valeurs d'entre correspondantes ne sont pas
prises en compte.
2
Le paramtre DIR n'est valide que si le sens de comptage configur a la valeur "Programme utilisat. (commande de
sens interne)". Vous dterminez comment utiliser ce paramtre dans la configuration d'appareil HSC.
3
Pour un compteur rapide sur la CPU ou le Signal Board, le paramtre BUSY a toujours la valeur 0.
Vous configurez les paramtres pour chaque HSC dans la configuration d'appareil pour la
CPU : mode de comptage, connexions d'E/S, affectation d'alarme et fonctionnement en tant
que compteur rapide ou en tant qu'appareil de mesure de la frquence d'impulsion.
Certains des paramtres du HSC peuvent tre modifis par votre programme utilisateur pour
fournir une commande par programme du processus de comptage :
Dfinir le sens de comptage une valeur NEW_DIR
Dfinir la valeur de comptage en cours une valeur NEW_CV
Dfinir la valeur de rfrence une valeur NEW_RV
Dfinir la valeur de la priode (pour le mode de mesure de frquence) une valeur
NEW_PERIOD
Si les valeurs des mmentos boolens suivants sont mises 1 lors de l'excution de
l'instruction CTRL_HSC, la valeur NEW_xxx correspondante est charge dans le compteur.
Plusieurs demandes (plus d'un mmento est mis 1 au mme moment) sont traites lors
d'une excution unique de l'instruction CTRL_HSC.
DIR = 1 constitue une demande de chargement d'une valeur NEW_DIR ; 0 = pas de
modification
CV = 1 constitue une demande de chargement d'une valeur NEW_CV ; 0 = pas de
modification
RV = 1 constitue une demande de chargement d'une valeur NEW_RV ; 0 = pas de
modification
PERIOD = 1 constitue une demande de chargement d'une valeur NEW_PERIOD ; 0 =
pas de modification
L'instruction CTRL_HSC se place typiquement dans un OB d'alarme de processus qui est
excut lorsque l'vnement d'alarme de processus de compteur se produit. Par exemple, si
un vnement CV=RV dclenche l'alarme de compteur, un OB d'alarme de processus
excute l'instruction CTRL_HSC et peut modifier la valeur de rfrence en chargeant une
valeur NEW_RV.
La valeur de comptage en cours n'est pas disponible dans les paramtres CTRL_HSC.
L'adresse de mmoire image qui contient la valeur de comptage en cours est dfinie
pendant la configuration matrielle du compteur rapide. Vous pouvez vous servir de logique
de programme pour lire directement la valeur de comptage. La valeur renvoye votre
programme correspondra au comptage correct l'instant o le compteur a t lu. Le
compteur continuera compter les vnements rapides. Ainsi, la valeur de comptage en
cours pourrait changer avant que votre programme n'ait termin un processus bas sur une
ancienne valeur en cours.
102BInstructions technologiques
9.1 Compteur rapide
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 343
Codes d'erreur : En cas d'erreur, ENO est mis 0 et la sortie STATUS contient un code
d'erreur.
Tableau 9- 3 Valeurs de STATUS (W#16#)
STATUS Description
0 Pas d'erreur
80A1 L'identificateur HSC n'accde pas un compteur rapide.
80B1 Valeur incorrecte dans NEW_DIR
80B2 Valeur incorrecte dans NEW_CV
80B3 Valeur incorrecte dans NEW_RV
80B4 Valeur incorrecte dans NEW_PERIOD
80C0 Plusieurs accs au compteur rapide
9.1.1 Fonctionnement du compteur rapide
Les compteurs rapides (HSC) comptent des vnements se produisant plus rapidement que
la vitesse d'excution de l'OB. Si les vnements compter surviennent en de de la
vitesse d'excution de l'OB, vous pouvez utiliser des compteurs CTU, CTD ou CTUD. Si les
vnements surviennent plus rapidement que la vitesse d'excution de l'OB, utilisez un
compteur rapide. L'instruction CTRL_HSC autorise la modification de certains des
paramtres HSC par le programme utilisateur.
Vous pouvez, par exemple, utiliser un compteur rapide comme entre pour un codeur
angulaire incrmental. Le codeur angulaire fournit un nombre dfini de valeurs de comptage
par tour et une impulsion de rinitialisation par tour. Les horloges et l'impulsion de
rinitialisation du codeur angulaire constituent les entres du compteur rapide.
La premire de plusieurs valeurs prdfinies est charge dans le compteur rapide et les
sorties sont actives pour la dure o la valeur de comptage en cours est infrieure la
valeur prdfinie en vigueur. Le compteur rapide fournit une alarme lorsque la valeur en
cours est gale la valeur prdfinie, lorsqu'une rinitialisation se produit et lorsque le sens
de comptage change.
Une nouvelle valeur prdfinie est charge et l'tat suivant des sorties est activ chaque
fois que l'vnement d'alarme "Valeur en cours gale valeur prdfinie" se produit.
Lorsque l'vnement d'alarme "Rinitialisation" survient, la premire valeur prdfinie ainsi
que le premier tat des sorties sont activs et le cycle se rpte.
Comme les alarmes se produisent une frquence bien infrieure la vitesse de comptage
du compteur rapide, il est possible de raliser une commande prcise des oprations
rapides qui a un impact relativement mineur sur le cycle de la CPU. La mthode
d'association d'alarmes des programmes d'alarme permet d'effectuer chaque chargement
d'une nouvelle valeur prdfinie dans un programme d'alarme distinct, ce qui facilite la
commande. Mais vous pouvez aussi traiter tous les vnements d'alarme dans un
programme d'alarme unique.
102BInstructions technologiques
9.1 Compteur rapide
Automate programmable S7-1200
344 Manuel systme, 11/2011, A5E02486682-05
Tableau 9- 4 Frquence maximale (kHz)
HSC Monophase Biphase et quadrature de phase A/B
CPU 100 kHz 80 kHz
SB rapide 200 kHz 160 kHz
HSC1
SB 30 kHz 20 kHz
CPU 100 kHz 80 kHz
SB rapide 200 kHz 160 kHz
HSC2
SB 30 kHz 20 kHz
HSC3 CPU 100 kHz 80 kHz
HSC4 CPU 30 kHz 20 kHz
CPU 30 kHz 20 kHz
SB rapide 200 kHz 160 kHz
HSC5
SB 30 kHz 20 kHz
CPU 30 kHz 20 kHz
SB rapide 200 kHz 160 kHz
HSC6
SB 30 kHz 20 kHz
Slection des fonctions du HSC
Tous les compteurs rapides fonctionnent de la mme manire dans un mode donn. Il existe
quatre types fondamentaux de compteurs rapides :
Compteur monophase avec gestion interne du sens de comptage
Compteur monophase avec gestion externe du sens de comptage
Compteur biphase avec deux entres d'horloge
Compteur en quadrature de phase A/B
Vous pouvez utiliser chaque type de compteur rapide avec ou sens entre de rinitialisation.
Si vous activez l'entre de rinitialisation (avec certaines restrictions, voir le tableau suivant),
la valeur en cours est efface et le reste jusqu' ce que vous dsactiviez l'entre de
rinitialisation.
Fonction frquence : Certains modes HSC permettent de configurer (type de comptage)
le compteur rapide afin qu'il renvoie la frquence et non une valeur de comptage
d'impulsions en cours. Trois priodes de mesure de frquence diffrentes sont
disponibles : 0,01, 0,1 ou 1,0 seconde.
La priode de mesure de frquence dtermine quel rythme le compteur rapide calcule
et renvoie une nouvelle valeur de frquence. La frquence renvoye est une valeur
moyenne dtermine par le nombre total de comptages pendant la dernire priode de
mesure. Si la frquence change rapidement, la valeur renvoye est une valeur
intermdiaire entre la frquence la plus leve et la frquence la plus faible apparaissant
pendant la priode de mesure. La frquence est toujours indique en hertz (impulsions
par seconde) quel que soit le paramtrage de la priode de mesure de frquence.
102BInstructions technologiques
9.1 Compteur rapide
Automate programmable S7-1200
Manuel systme, 11/2011, A5E02486682-05 345
Modes et entres du compteur : Le tableau suivant montre les entres utilises pour les
fonctions d'horloge, de gestion du sens de comptage