Vous êtes sur la page 1sur 296

 Blocs de programme pour CP S7 ___________________

Avant-propos

Généralités sur le
SIMATIC NET ___________________
maniement 1

___________________
Blocs de programme pour
Industrial Ethernet 2
SIMATIC NET
___________________
Blocs de programme pour
PROFINET IO (S7-300) 3

Blocs de programme pour CP S7 ___________________


Blocs de programme pour
PROFINET CBA 4
SIMATIC NET
___________________
Blocs de programme pour
PROFIBUS 5
Manuel de programmation
___________________
Blocs de programme pour
PROFIBUS FMS 6

___________________
Historique du document A

_______________
Bibliographie ____
B

10/2012
C79000-G8977-C229-07
Mentions légales
Signalétique d'avertissement
Ce manuel donne des consignes que vous devez respecter pour votre propre sécurité et pour éviter des
dommages matériels. Les avertissements servant à votre sécurité personnelle sont accompagnés d'un triangle de
danger, les avertissements concernant uniquement des dommages matériels sont dépourvus de ce triangle. Les
avertissements sont représentés ci-après par ordre décroissant de niveau de risque.

DANGER
signifie que la non-application des mesures de sécurité appropriées entraîne la mort ou des blessures graves.

ATTENTION
signifie que la non-application des mesures de sécurité appropriées peut entraîner la mort ou des blessures
graves.

PRUDENCE
signifie que la non-application des mesures de sécurité appropriées peut entraîner des blessures légères.

IMPORTANT
signifie que la non-application des mesures de sécurité appropriées peut entraîner un dommage matériel.
En présence 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 prévient des risques de dommages corporels, le
même avertissement peut aussi contenir un avis de mise en garde contre des dommages matériels.
Personnes qualifiées
L’appareil/le système décrit dans cette documentation ne doit être manipulé que par du personnel qualifié pour
chaque tâche spécifique. La documentation relative à cette tâche doit être observée, en particulier les consignes
de sécurité et avertissements. Les personnes qualifiées sont, en raison de leur formation et de leur expérience,
en mesure de reconnaître les risques liés au maniement de ce produit / système et de les éviter.
Utilisation des produits Siemens conforme à leur destination
Tenez compte des points suivants:

ATTENTION
Les produits Siemens ne doivent être utilisés que pour les cas d'application prévus dans le catalogue et dans la
documentation technique correspondante. S'ils sont utilisés en liaison avec des produits et composants d'autres
marques, ceux-ci doivent être recommandés ou agréés par Siemens. Le fonctionnement correct et sûr des
produits suppose un transport, un entreposage, une mise en place, un montage, une mise en service, une
utilisation et une maintenance dans les règles de l'art. Il faut respecter les conditions d'environnement
admissibles ainsi que les indications dans les documentations afférentes.

Marques de fabrique
Toutes les désignations repérées par ® sont des marques déposées de Siemens AG. Les autres désignations
dans ce document peuvent être des marques dont l'utilisation par des tiers à leurs propres fins peut enfreindre les
droits de leurs propriétaires respectifs.
Exclusion de responsabilité
Nous avons vérifié la conformité du contenu du présent document avec le matériel et le logiciel qui y sont décrits.
Ne pouvant toutefois exclure toute divergence, nous ne pouvons pas nous porter garants de la conformité
intégrale. Si l'usage de ce manuel devait révéler des erreurs, nous en tiendrons compte et apporterons les
corrections nécessaires dès la prochaine édition.

Siemens AG Numéro de référence du document: C79000-G8977-C229 Copyright © Siemens AG 2008 - 2012.


Industry Sector Ⓟ 10/2012 Sous réserve de modifications techniques Tous droits réservés
Postfach 48 48
90026 NÜRNBERG
ALLEMAGNE
Avant-propos

Informations sur ce manuel

Groupe cible et motivation


Pour élaborer votre programme utilisateur, vous disposez de blocs de programme
préfabriqués (FC et FB) comme interface aux services de communication. Ce manuel vous
donne la description exhaustive des blocs de programme disponibles pour les CP S7
SIMATIC NET. Il complète les descriptions fournies par l'aide en ligne des outils de
configuration de STEP 7.
Ce manuel est destiné aux programmeurs de STEP 7 ainsi qu'au personnel de maintenance.

Composition du manuel
Le manuel est structuré suivant les types de réseau et les services de communication.
Tous les blocs de programme sont décrits dans les chapitres ci-après :
● Signification
● Interface d'appel
● Mode de fonctionnement
● Explication des paramètres formels
● Indications
Des informations complémentaires spécifiques peuvent s'y ajouter.

Champ d'application du manuel


La présente version du manuel est valable pour les versions suivantes du logiciel de
configuration STEP 7 :
● STEP 7 V5.5
● STEP 7 Professional V11.0

Remarque
STEP 7 - désignation synonyme
La désignation STEP 7 est utilisée ci-après dans le manuel comme synonyme des
désignations STEP 7 V5.5 ou STEP 7 Professional

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 3
Avant-propos

Remarque
Types de CP et services de communication
Veuillez noter que chaque bloc de programme prend en charge des services de
communication bien définis. Leur utilisation est par conséquent limitée aux types de CP
qui prennent en charge les services de communication en question.

Désignation "bloc de programme"


La désignation "bloc de programme" est utilisée dans ce manuel comme synonyme
générique des termes suivants :
● FC (fonction) / FB (bloc fonctionnel)
Pour les désignations utilisées sous STEP 7 V5.5 qui prennent en compte le type
particulier de bloc de programme. Ces types de bloc subsistent inchangés sous STEP 7
Professional mais ils ne sont affichés dans les bibliothèques que sous forme de
mnémonique.
● Instruction
Pour la désignation utilisée sous STEP 7 Professional des blocs de programme internes
système.

Remarque
Fourniture STEP 7 / STEP 7 Professional
La fourniture des bibliothèques STEP 7 V5.5 peut se distinguer de celle de STEP 7
Professional.
Les récapitulatifs de blocs de programme présentés dans ce manuel indiquent pour
quelles familles d'appareils (S7-300 et S7-400) ils sont disponibles. Les récapitulatifs
n'indiquent pas s'ils sont contenus dans les bibliothèques respectives de STEP 7 V5.5 ou
STEP 7 Professional.

Nouveautés dans cette édition


Cette édition du manuel contient des corrections rédactionnelles. Vous trouverez les
principales modifications dans les chapitres suivants :

Chapitre Modification / Complément


PROFIenergy (Page 172) Désignation des blocs de programme
PROFIenergy pour les S7-300 sous STEP 7
Professional
Capacité fonctionnelle / Besoins en ressources Capacité fonctionnelle / Besoins en ressources
des blocs de programme (Ethernet) (Page 140) des blocs de programme
Capacités fonctionnelles / Ressources requises
par les FB (PROFIBUS FMS) (Page 288)
Mode de fonctionnement de la fonction ping Réaction des CP SIMATIC NET aux
(Page 64) télégrammes ICMP

Blocs de programme pour CP S7 SIMATIC NET


4 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Avant-propos

Documentation remplacée
Le présent manuel remplace l'édition 07/2012.

Documentation CP sur le DVD Manual Collection (nº de réf. A5E00069051)


Chaque CP S7 est accompagné du DVD SIMATIC NET Manual Collection. Ce DVD, mis à
jour régulièrement, contient les manuels et descriptions à jour au moment de la publication.

Informations sur les dernières versions des blocs (FC/FB)


Utilisez toujours les versions les plus récentes des blocs pour vos nouveaux programmes
utilisateur. Vous trouvez des informations sur les versions de blocs de programme actuels
ainsi que sur les blocs actuels sur Internet sous le numéro d'article suivant :
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)
En cas de remplacement d'un module, veuillez vous conformer aux instructions données
dans la partie spécifique à l'appareil du manuel de votre CP S7.

Historique des versions pour les blocs de programme (FC/FB) et pour les CP S7 de SIMATIC NET
Le document "Historique des versions et téléchargements actuels pour les CP S7 SIMATIC
NET" renseigne sur tous les CP S7 pour SIMATIC NET livrables jusqu'à ce jour
(Ind.Ethernet, PROFIBUS et IE/PB-Link) ainsi que sur les blocs de programme (FC/FB).
Vous trouverez une édition toujours à jour de ces documents sur Internet sous le numéro
d'article suivant :
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

CD SIMATIC NET Quick Start : exemples portant sur la communication


Le CD de prise en main Quick Start, à commander séparément, est une mine d'exemples de
programmation et de configuration.
Vous pouvez la commander directement sur Internet sous le numéro d'article ci-après :
21827955 (http://support.automation.siemens.com/WW/view/de/21827955)

Informations complémentaires sur SIMATIC S7 et STEP 7 / STEP 7 Professional


Les documents complémentaires sur le logiciel de configuration STEP 7 / STEP 7
Professional du système d'automatisation SIMATIC figurent sous forme électronique dans
votre installation de STEP 7.
Vous trouverez en outre des informations sur les systèmes d'automatisation SIMATIC sur le
CD Quickstart et sur les pages des services en ligne Customer Support sur Internet :
● sous (http://www.automation.siemens.com/net/index_00.htm)
(informations d'ordre général sur SIMATIC NET)
● sous (http://support.automation.siemens.com/WW/view/de)
(informations produit et fichiers téléchargeables)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 5
Avant-propos

Glossaire SIMATIC NET


Vous trouverez une explication des termes techniques figurant dans cette documentation
dans le glossaire SIMATIC NET.
Le glossaire SIMATIC NET se trouve ici :
● SIMATIC NET Manual Collection
Le DVD est joint à certains produits SIMATIC NET.
● Sur Internet sous le numéro d'article :
50305045 (http://support.automation.siemens.com/WW/view/fr/50305045)

Blocs de programme pour CP S7 SIMATIC NET


6 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Sommaire

Avant-propos ............................................................................................................................................. 3
1 Généralités sur le maniement .................................................................................................................. 13
1.1 Blocs de programme pour Ind. Ethernet / PROFINET ................................................................13
1.2 Blocs de programme pour PROFIBUS ........................................................................................15
1.3 Paramétrage des appels de blocs de programme.......................................................................17
1.4 Paramètres pour affecter les CP et liaisons (paramètres d'entrée).............................................18
1.5 Paramètres pour indiquer une zone de données de la CPU (paramètres d'entrée) ...................19
1.6 Informations d'état (paramètres de sortie) ...................................................................................20
2 Blocs de programme pour Industrial Ethernet.......................................................................................... 21
2.1 Blocs de programme pour services de communication ouverts (Interface
SEND/RECEIVE) .........................................................................................................................21
2.1.1 Blocs de programme et leur utilisation en bref ............................................................................21
2.1.2 AG_SEND / AG_LSEND / AG_SSEND .......................................................................................25
2.1.2.1 Signification et appel - AG_SEND / AG_LSEND / AG_SSEND...................................................25
2.1.2.2 Mode de travail - AG_SEND / AG_LSEND / AG_SSEND ...........................................................26
2.1.2.3 Explication des paramètres formels - AG_SEND / AG_LSEND / AG_SSEND............................29
2.1.2.4 Indications AG_SEND, AG_LSEND et AG_SSEND ....................................................................30
2.1.3 AG_RECV / AG_LRECV / AG_SRECV .......................................................................................32
2.1.3.1 Signification et appel - AG_RECV / AG_LRECV / AG_SRECV...................................................32
2.1.3.2 Mode de travail de AG_RECV / AG_LRECV / AG_SRECV.........................................................33
2.1.3.3 Explication des paramètres formels - AG_RECV / AG_LRECV / AG_SRECV............................39
2.1.3.4 Indications de AG_RECV, AG_LRECV et AG_SRECV ...............................................................41
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE..........................................43
2.2.1 Blocs de programme et leur utilisation en bref ............................................................................43
2.2.2 AG_LOCK ....................................................................................................................................45
2.2.2.1 Signification et appel - AG_LOCK................................................................................................45
2.2.2.2 Explication des paramètres formels - AG_LOCK.........................................................................46
2.2.2.3 Indications du bloc AG_LOCK .....................................................................................................46
2.2.3 AG_UNLOCK ...............................................................................................................................47
2.2.3.1 Signification et appel - AG_UNLOCK ..........................................................................................47
2.2.3.2 Explication des paramètres formels - AG_UNLOCK ...................................................................48
2.2.3.3 Indications du bloc AG_UNLOCK ................................................................................................48
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système ..................................49
2.3.1 AG_CNTRL ..................................................................................................................................49
2.3.1.1 Signification et appel - AG_CNTRL .............................................................................................49
2.3.1.2 Mode de travail de AG_CNTRL ...................................................................................................51
2.3.1.3 Explication des paramètres formels - AG_CNTRL ......................................................................52
2.3.1.4 Indications de AG_CNTRL...........................................................................................................53
2.3.1.5 Commandes et résultats de la tâche - AG_CNTRL .....................................................................54
2.3.2 AG_CNTEX ..................................................................................................................................61
2.3.2.1 Signification et appel - AG_CNTEX .............................................................................................61

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 7
Sommaire

2.3.2.2 Mode de fonctionnement de AG_CNTEX ................................................................................... 63


2.3.2.3 Mode de fonctionnement de la fonction ping .............................................................................. 64
2.3.2.4 Explication des paramètres formels - AG_CNTEX ..................................................................... 66
2.3.2.5 Indications de AG_CNTEX.......................................................................................................... 67
2.3.2.6 Commandes et résultats de la tâche - AG_CNTEX.................................................................... 69
2.4 Blocs de programme pour services FTP..................................................................................... 76
2.4.1 Généralités sur FTP .................................................................................................................... 76
2.4.2 FTP_CMD - bloc de programme universel pour services FTP ................................................... 77
2.4.2.1 Signification et appel - FTP_CMD............................................................................................... 77
2.4.2.2 Paramètres d'entrée - FTP_CMD................................................................................................ 79
2.4.2.3 Paramètres de sortie et informations d'état - FTP_CMD ............................................................ 84
2.4.2.4 Migration de FC 40-44 vers FTP_CMD....................................................................................... 87
2.4.3 FTP_CONNECT.......................................................................................................................... 88
2.4.3.1 Signification et appel - FTP_CONNECT ..................................................................................... 88
2.4.3.2 Explication des paramètres formels - FTP_CONNECT .............................................................. 89
2.4.4 FTP_STORE ............................................................................................................................... 91
2.4.4.1 Signification et appel - FTP_STORE........................................................................................... 91
2.4.4.2 Explication des paramètres formels - FTP_STORE ................................................................... 92
2.4.5 FTP_RETRIEVE.......................................................................................................................... 93
2.4.5.1 Signification et appel - FTP_RETRIEVE ..................................................................................... 93
2.4.5.2 Explication des paramètres formels - FTP_RETRIEVE.............................................................. 94
2.4.6 FTP_DELETE.............................................................................................................................. 95
2.4.6.1 Signification et appel - FTP_DELETE ......................................................................................... 95
2.4.6.2 Explication des paramètres formels - FTP_DELETE.................................................................. 96
2.4.7 FTP_QUIT ................................................................................................................................... 97
2.4.7.1 Signification et appel - FTP_QUIT .............................................................................................. 97
2.4.7.2 Explication des paramètres formels - FTP_QUIT ....................................................................... 97
2.4.8 Paramètres pour affecter les CP et liaisons (paramètres d'entrée)............................................ 98
2.4.9 Informations d'état (paramètres de sortie) .................................................................................. 99
2.4.10 Bloc de données DB de fichier.................................................................................................. 102
2.4.10.1 Structure des blocs de données (DB fichier) pour les services FTP - mode client FTP........... 102
2.4.10.2 Structure des blocs de données (DB fichier) pour les services FTP - mode serveur FTP ....... 104
2.5 Blocs de programme pour liaisons programmées et configuration IP ...................................... 107
2.5.1 Mode de fonctionnement........................................................................................................... 108
2.5.2 Marche à suivre......................................................................................................................... 110
2.5.3 Bloc de données de configuration (CONF_DB) ........................................................................ 111
2.5.4 Bloc de données de configuration - Exemple ........................................................................... 112
2.5.5 Bloc de paramètres pour données système (configuration IP)................................................. 115
2.5.6 Blocs de paramètres pour types de liaison ............................................................................... 116
2.5.6.1 Bloc de paramètres pour liaison TCP ....................................................................................... 117
2.5.6.2 Bloc de paramètres pour liaison UDP....................................................................................... 118
2.5.6.3 Bloc de paramètres pour liaison ISO-on-TCP........................................................................... 119
2.5.6.4 Bloc de paramètres pour liaisons de courrier électronique....................................................... 120
2.5.6.5 Bloc de paramètres pour liaison FTP........................................................................................ 121
2.5.7 Types de sous-bloc ................................................................................................................... 122
2.5.8 IP_CONFIG - signification et appel ........................................................................................... 126
2.5.9 Mode de travail de IP_CONFIG ................................................................................................ 128
2.5.10 Explication des paramètres formels - IP_CONFIG ................................................................... 130
2.5.11 Numéros de port réservés - IP_CONFIG .................................................................................. 131
2.5.12 Indications IP_CONFIG............................................................................................................. 131
2.6 Blocs de programme pour CP ERPC........................................................................................ 134

Blocs de programme pour CP S7 SIMATIC NET


8 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Sommaire

2.6.1 LOGICAL_TRIGGER pour le déclenchement logique ...............................................................134


2.6.2 Fonctionnement LOGICAL_TRIGGER ......................................................................................135
2.6.3 Explication des paramètres formels - LOGICAL_TRIGGER .....................................................136
2.6.4 Indications LOGICAL_TRIGGER ...............................................................................................138
2.6.5 Le bloc de données de configuration.........................................................................................139
2.7 Capacité fonctionnelle / Besoins en ressources des blocs de programme (Ethernet) ..............140
3 Blocs de programme pour PROFINET IO (S7-300) ............................................................................... 143
3.1 Blocs de programme et leur utilisation en bref ..........................................................................143
3.2 PROFINET IO - transmission de données et analyse d'alarmes ..............................................145
3.2.1 PNIO_SEND...............................................................................................................................145
3.2.1.1 Signification et appel - PNIO_SEND..........................................................................................145
3.2.1.2 Explication des paramètres formels - PNIO_SEND...................................................................147
3.2.1.3 Indications du bloc PNIO_SEND................................................................................................151
3.2.2 PNIO_RECV...............................................................................................................................153
3.2.2.1 Signification et appel - PNIO_RECV..........................................................................................153
3.2.2.2 Explication des paramètres formels - PNIO_RECV...................................................................155
3.2.2.3 Indications du bloc PNIO_RECV................................................................................................159
3.2.3 Comportement général des FC pour PROFINET IO .................................................................161
3.2.4 Cohérence des données............................................................................................................162
3.2.5 Valeurs de substitution...............................................................................................................163
3.2.6 PNIO_RW_REC .........................................................................................................................164
3.2.6.1 Signification et appel - PNIO_RW_REC ....................................................................................164
3.2.6.2 Explication des paramètres formels - PNIO_RW_REC .............................................................165
3.2.6.3 Indications du bloc PNIO_RW_REC ..........................................................................................166
3.2.7 PNIO_ALARM ............................................................................................................................168
3.2.7.1 Signification et appel - PNIO_ALARM .......................................................................................168
3.2.7.2 Explication des paramètres formels - PNIO_ALARM ................................................................169
3.2.7.3 Indications du bloc PNIO_ALARM .............................................................................................171
3.3 PROFIenergy .............................................................................................................................172
3.3.1 Blocs de programme PROFIenergy pour le CP 300..................................................................173
3.3.2 PE_START_END_CP ................................................................................................................175
3.3.2.1 Signification et appel - PE_START_END_CP............................................................................175
3.3.2.2 Explication des paramètres formels de PE_START_END_CP..................................................177
3.3.2.3 Visualisations de PE_START_END_CP ....................................................................................178
3.3.3 PE_CMD_CP..............................................................................................................................179
3.3.3.1 Signification et appel - PE_CMD_CP.........................................................................................179
3.3.3.2 Explication des paramètres formels de PE_CMD_CP...............................................................181
3.3.3.3 Indications de PE_CMD_CP ......................................................................................................184
3.3.4 Données de réponse..................................................................................................................185
3.3.5 PE_I_DEV_CP............................................................................................................................192
3.3.5.1 Signification et appel - PE_I_DEV_CP.......................................................................................192
3.3.5.2 Explication des paramètres formels de PE_I_DEV_CP.............................................................193
3.3.5.3 Indications de PE_I_DEV_CP ....................................................................................................195
3.3.6 Blocs de programme complémentaires pour PE_I_DEV_CP ....................................................195
3.3.6.1 Récapitulatif des FC...................................................................................................................195
3.3.6.2 Liaison des FC au bloc PE_I_DEV_CP......................................................................................197
3.3.6.3 Paramètres communs des FC ...................................................................................................198
3.3.6.4 Paramètres individuels des FC ..................................................................................................198
3.3.7 DS3_WRITE_CP / PE_DS3_Write_ET200S_CP .......................................................................204
3.3.7.1 Signification et appel - DS3_WRITE_CP ...................................................................................204

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 9
Sommaire

3.3.7.2 Explication des paramètres formels de DS3_WRITE_CP ........................................................ 205


3.3.7.3 Indications de DS3_WRITE_CP................................................................................................ 206
3.4 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFINET) ........ 206
4 Blocs de programme pour PROFINET CBA .......................................................................................... 209
4.1 PN_InOut / PN_InOut_Fast - signification et appel ................................................................... 209
4.2 Explication des paramètres formels - PN_InOut / PN_InOut_Fast ........................................... 211
4.3 Indications des blocs PN_InOut et PN_InOut_Fast .................................................................. 211
4.4 Appel de PN_InOut / PN_InOut_Fast déclenché par temporisation - recommandation pour
l'emploi ...................................................................................................................................... 214
5 Blocs de programme pour PROFIBUS .................................................................................................. 215
5.1 Blocs de programme pour services de communication ouverts (Interface
SEND/RECEIVE) ...................................................................................................................... 215
5.1.1 Utilisation en bref ...................................................................................................................... 215
5.1.2 AG_SEND / AG_LSEND ........................................................................................................... 217
5.1.2.1 Signification et appel - AG_SEND / AG_LSEND....................................................................... 217
5.1.2.2 Mode de travail - AG_SEND / AG_LSEND ............................................................................... 219
5.1.2.3 Explication des paramètres formels - AG_SEND / AG_LSEND ............................................... 220
5.1.2.4 Indications AG_SEND et AG_LSEND....................................................................................... 222
5.1.3 AG_RECV / AG_LRECV ........................................................................................................... 224
5.1.3.1 Signification et appel - AG_RECV / AG_LRECV....................................................................... 224
5.1.3.2 Mode de travail - AG_RECV / AG_LRECV ............................................................................... 225
5.1.3.3 Explication des paramètres formels - AG_RECV / AG_LRECV ............................................... 227
5.1.3.4 Indications de AG_RECV et AG_LRECV.................................................................................. 228
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300 ................................... 230
5.2.1 Utilisation en bref ...................................................................................................................... 230
5.2.2 DP_SEND.................................................................................................................................. 231
5.2.2.1 Signification et appel - DP_SEND............................................................................................. 231
5.2.2.2 Mode de travail - DP_SEND...................................................................................................... 232
5.2.2.3 Explication des paramètres formels - DP_SEND...................................................................... 234
5.2.2.4 Indications de DP_SEND .......................................................................................................... 235
5.2.3 DP_RECV.................................................................................................................................. 236
5.2.3.1 Signification et appel - DP_RECV............................................................................................. 236
5.2.3.2 Mode de travail - DP_RECV...................................................................................................... 237
5.2.3.3 Explication des paramètres formels - DP_RECV...................................................................... 239
5.2.3.4 Indications DP_RECV ............................................................................................................... 240
5.2.3.5 DPSTATUS - DP_RECV ........................................................................................................... 241
5.2.4 DP_DIAG................................................................................................................................... 243
5.2.4.1 Signification et appel - DP_DIAG .............................................................................................. 243
5.2.4.2 Mode de travail - DP_DIAG....................................................................................................... 244
5.2.4.3 Explication des paramètres formels - DP_DIAG ....................................................................... 246
5.2.4.4 Types de tâche - DP_DIAG....................................................................................................... 248
5.2.4.5 Tampon en anneau pour données de diagnostic - DP_DIAG................................................... 250
5.2.4.6 Indications de DP_DIAG ........................................................................................................... 250
5.2.5 DP_CTRL .................................................................................................................................. 253
5.2.5.1 Signification et appel - DP_CTRL ............................................................................................. 253
5.2.5.2 Mode de travail - DP_CTRL ...................................................................................................... 254
5.2.5.3 Explication des paramètres formels - DP_CTRL ...................................................................... 255
5.2.5.4 Mode de travail - DP_CTRL ...................................................................................................... 257

Blocs de programme pour CP S7 SIMATIC NET


10 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Sommaire

5.2.5.5 Command Mode et Group Select - DP_CTRL...........................................................................260


5.2.5.6 Indications de DP_CTRL............................................................................................................261
5.3 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFIBUS) .........264
6 Blocs de programme pour PROFIBUS FMS .......................................................................................... 267
6.1 Utilisation en bref .......................................................................................................................267
6.2 Paramètres de bloc FMS ...........................................................................................................268
6.3 IDENTIFY...................................................................................................................................271
6.3.1 Signification et appel - IDENTIFY ..............................................................................................271
6.3.2 Mode de travail - IDENTIFY.......................................................................................................272
6.4 READ .........................................................................................................................................273
6.4.1 Signification et appel - READ.....................................................................................................273
6.4.2 Mode de travail de READ ..........................................................................................................274
6.5 REPORT ....................................................................................................................................276
6.5.1 Signification et appel - REPORT................................................................................................276
6.5.2 Mode de travail de REPORT .....................................................................................................277
6.6 STATUS .....................................................................................................................................278
6.6.1 Signification et appel - STATUS ................................................................................................278
6.6.2 Mode de travail de STATUS ......................................................................................................279
6.7 WRITE........................................................................................................................................280
6.7.1 Signification et appel - WRITE ...................................................................................................280
6.7.2 Mode de travail de WRITE.........................................................................................................281
6.8 Indications et messages d'erreur - blocs FMS...........................................................................282
6.8.1 Erreurs détectées localement ....................................................................................................284
6.8.2 Erreurs signalées par le partenaire FMS ...................................................................................286
6.9 Capacités fonctionnelles / Ressources requises par les FB (PROFIBUS FMS) .......................288
A Historique du document......................................................................................................................... 291
A.1 Historique du document .............................................................................................................291
B Bibliographie.......................................................................................................................................... 295
Index...................................................................................................................................................... 297

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 11
Sommaire

Blocs de programme pour CP S7 SIMATIC NET


12 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Généralités sur le maniement 1
1.1 Blocs de programme pour Ind. Ethernet / PROFINET

Livraison - bibliothèque de blocs


Les blocs de programme SIMATIC NET sont fournis avec le logiciel de configuration STEP
7, sauf indication contraire.

Remarque
Fourniture STEP 7 / STEP 7 Professional
La fourniture des bibliothèques STEP 7 V5.5 peut se distinguer de celle de STEP 7
Professional.

Le tableau ci-après indique les numéros de bloc utilisés à la livraison.


La colonne SIMATIC_NET_CP indique en outre dans quel dossier les blocs sont rangés.
Notez bien qu'il faut utiliser des blocs de programme différents pour les automates S7-300 et
S7-400 (bibliothèques distinctes).

Service de communication / Bloc de programme Bibliothèque pour SIMATIC NET


domaine fonctionnel
SIMATIC_NET_CP
CP 300 CP 400
SEND / RECEIVE AG_SEND FC5 x x
(Services de communication AG_LSEND FC50 x 2) x
ouverts) AG_SSEND FC53 x 3)
AG_RECV FC6 x x
AG_LRECV FC60 x 2) x
AG_SRECV FC63 x 3)
AG_LOCK FC7 x x
AG_UNLOCK FC8 x x
AG_CNTRL FC10 x 3) x 3)
AG_CNTEX FB10 x 3) x 3)
Liaison de communication IP_CONFIG FB55 x x
programmées et configuration
IP
Communication S7 4) BSEND FB12 x
BRCV FB13 x
PUT FB15 x
GET FB14 x
USEND FB8 x

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 13
Généralités sur le maniement
1.1 Blocs de programme pour Ind. Ethernet / PROFINET

Service de communication / Bloc de programme Bibliothèque pour SIMATIC NET


domaine fonctionnel
SIMATIC_NET_CP
CP 300 CP 400
URCV FB9 x
C_CNTRL FC62 x
FTP (CP Advanced) FTP_CMD FB40 x x
FTP_CONNECT FC40 x x
FTP_STORE FC41 x x
FTP_RETRIEVE FC42 x x
FTP_DELETE FC43 x x
FTP_QUIT FC44 x x
PROFINET CBA PN_InOut 1) FB88 1) x 1) x 1)
PN_InOut_Fast 1) FB90 1) x 1)
PROFINET IO PNIO_SEND FC11 x
PNIO_RECV FC12 x
PNIO_RW_REC FB52 x
PNIO_ALARM FB54 x
PE_START_END_CP FB85 x
PE_CMD_CP FB86 x
PE_I_DEV_CP FB87 x
DS3_WRITE_CP FB53 x
(STEP 7 V5.5)
PE_DS3_Write_ET200S_CP 5) FB88 x
(STEP 7 Professional)

Légende :
1) Le bloc FB88 / FB90, fourni avec l'outil d'ingénierie SIMATIC iMap, est inscrit dans la bibliothèque système
PROFINET lors de l'installation du complément STEP 7.
2) À ne pas utiliser pour les CP actuels et ne figurant plus dans la bibliothèque "SIMATIC_NET_CP" actuelle.
3) Suivant le type de CP.
4) Décrit dans la documentation de STEP 7.
5) La description détaillée du bloc de programme PE_DS3_Write_ET200S_CP pour STEP 7 Professional se trouve ci-
après dans le présent document sous la description du bloc de programme DS3_WRITE_CP pour STEP 7 V5.5 qui est
fonctionnellement identique.

Quelle version du bloc utiliser ?


Les descriptions qui suivent mentionnent aussi les différences de comportement selon la
version de bloc. Veuillez tenir compte de l'identificateur de version des blocs que vous
utilisez.

Blocs de programme pour CP S7 SIMATIC NET


14 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Généralités sur le maniement
1.2 Blocs de programme pour PROFIBUS

Les bibliothèques de blocs SIMATIC NET installées avec STEP 7 contiennent les versions
de bloc actuelles au moment de la mise sur le marché de STEP 7.

Remarque
Il est recommandé d'utiliser toujours les versions les plus récentes des blocs quel que soit le
type de module mis en œuvre.
Les informations sur les versions les plus récentes des blocs ainsi que ces blocs eux-mêmes
sont téléchargeables sur le site Internet Customer Support sous le numéro d'article suivant :
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)
Cette recommandation implique que vous utilisez la version de firmware actuelle du type de
module en question.

Blocs de programme après un échange de module


Ce cas décrit l'échange d'un module contre un autre de version éventuellement plus récente.

Remarque
Veillez, quand vous remplacez un module, à n'utiliser dans le programme utilisateur que les
blocs autorisés pour le type de CP configuré.
Il est recommandé d'utiliser toujours les versions les plus récentes des blocs quel que soit le
type de module mis en œuvre.
Cette recommandation implique que vous utilisez la version de firmware actuelle du type de
module en question.

Les manuels spécifiques renseignent sur la compatibilité de CP S7 avec les blocs de


programme correspondants.

1.2 Blocs de programme pour PROFIBUS

Livraison - bibliothèque de blocs


Les blocs de programme SIMATIC NET sont fournis avec le logiciel de configuration STEP
7, sauf indication contraire.

Remarque
Fourniture STEP 7 / STEP 7 Professional
La fourniture des bibliothèques STEP 7 V5.5 peut se distinguer de celle de STEP 7
Professional.

Le tableau ci-après indique les numéros de bloc utilisés à la livraison.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 15
Généralités sur le maniement
1.2 Blocs de programme pour PROFIBUS

La colonne SIMATIC_NET_CP indique en outre dans quel dossier les blocs sont rangés.
Veuillez noter qu'il faut utiliser des blocs de programme différents pour les automates S7-
300 et S7-400 (bibliothèques distinctes).

Service de communication / domaine Bloc de programme Bibliothèque pour SIMATIC NET


fonctionnel
SIMATIC_NET_CP
CP 300 CP 400
PROFIBUS DP DP_SEND FC1 x
DP_RECV FC2 x
DP_DIAG FC3 x
DP_CTRL FC4 x
SEND / RECEIVE AG_SEND FC5 x x
(Service de communication ouverts) AG_LSEND FC50 x 2)
AG_RECV FC6 x x
AG_LRECV FC60 x 2)
Communication S7 1) BSEND FB12 x 1)

BRCV FB13 x 1)

PUT FB15 x 1)

GET FB14 x 1)

USEND FB8 x 1)

URCV FB9 x 1)

C_CNTRL FC62 x 1)

PROFIBUS FMS IDENTIFY FB2 x x


READ FB3 x x
REPORT FB4 x x
STATUS FB5 x x
WRITE FB6 x x

1) Décrit dans la documentation STEP 7. Les SFB à utiliser pour les S7-400 sont mis à disposition par la bibliothèque
STEP 7.
2) Peut être utilisé, mais n'a pas de fonction particulière sous PROFIBUS.

Quelle version du bloc utiliser ?


Les descriptions qui suivent mentionnent aussi les différences de comportement selon la
version de bloc. Veuillez tenir compte de l'identificateur de version des blocs que vous
utilisez.

Blocs de programme pour CP S7 SIMATIC NET


16 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Généralités sur le maniement
1.3 Paramétrage des appels de blocs de programme

Les bibliothèques de blocs SIMATIC NET installées avec STEP 7 contiennent les versions
de bloc actuelles au moment de la mise sur le marché de STEP 7.

Remarque
Il est recommandé d'utiliser toujours les versions les plus récentes des blocs quel que soit le
type de module mis en œuvre.
Les informations sur les versions les plus récentes des blocs ainsi que ces blocs eux-mêmes
sont téléchargeables sur le site Internet Customer Support sous le numéro d'article suivant :
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)
Cette recommandation implique que vous utilisez la version de firmware actuelle du type de
module en question.

Blocs de programme après un remplacement de module


Ce cas décrit le remplacement d'un module par un autre de version éventuellement plus
récente.

Remarque
Veillez, quand vous remplacez un module, à n'utiliser dans le programme utilisateur que les
blocs autorisés pour le type de CP configuré.
Il est recommandé d'utiliser toujours les versions les plus récentes des blocs quel que soit le
type de module mis en œuvre.
Cette recommandation implique que vous utilisez la version de firmware actuelle du type de
module en question.

Les manuels renseignent sur la compatibilité entre les CP S7 et les blocs de programme
correspondants.

1.3 Paramétrage des appels de blocs de programme

Informations générales concernant l'appel et le paramétrage


Avant la description détaillée des blocs de programme, cette section donne des informations
générales sur l'appel et le paramétrage.
Des informations générales peuvent être entrées ici à propos des groupes de paramètres ci-
après que possèdent tous les blocs de programme :

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 17
Généralités sur le maniement
1.4 Paramètres pour affecter les CP et liaisons (paramètres d'entrée)

● Paramètres pour affecter les CP et liaisons (paramètres d'entrée)


● Paramètres pour indiquer une zone de données de la CPU (paramètres d'entrée)
● Informations d'état (paramètres de sortie)

IMPORTANT
Appeler les blocs de communication pour S7-300
Il n'est pas permis d'appeler les blocs de communication pour S7-300 (bibliothèque de
blocs SIMATIC NET pour S7-300 sous STEP 7) dans plusieurs niveaux d'exécution ! Si
vous appelez un bloc de communication dans l'OB1 et dans l'OB35, par exemple, il se
pourrait que son exécution soit interrompue par l'OB respectif de priorité supérieure.
Quand vous appelez les blocs dans plusieurs OB, vous devez faire le nécessaire dans
la programmation pour qu'un bloc de communication en cours d'exécution ne soit pas
interrompu par un autre bloc de communication (par ex. au moyen de la SFC
Inhiber/valider alarmes).

1.4 Paramètres pour affecter les CP et liaisons (paramètres d'entrée)


Dans l'appel d'un bloc de programme, vous fournissez l'adresse de début du module CP S7
dans le paramètre CPLADDR ou LADDR. Vous trouverez l'adresse de début du CP S7 lors
de la configuration du CP dans le paramètre "Adresse/Entrée".
Pour les tâches orientées liaison, vous devez spécifier en plus la liaison à utiliser en
indiquant son ID de liaison. Vous trouverez cette indication sous "Paramètres de bloc" dans
le dialogue des propriétés de la liaison (voir Indications dans NetPro).

Reprise automatique des paramètres de bloc (décrite ici pour STEP 7 V5.5.)
Afin de garantir le paramétrage correct des appels de bloc, STEP 7 offre dans l'éditeur
CONT/LIST/LOG la possibilité de reprendre automatiquement tous les paramètres
significatifs de la configuration matérielle (HW Config) et de la configuration des liaisons
(NetPro).
Pour cela, faites comme suit pour paramétrer le bloc dans le programme utilisateur :
1. Sélectionnez l'appel du bloc et ses paramètres de bloc.
2. Avec le bouton droit de la souris, choisissez la commande de menu "Liaisons...".
3. Selon le type de bloc, vous pouvez sélectionner dans une liste la liaison et / ou le module
prévus pour le bloc.
4. Confirmez votre sélection ; les valeurs de paramètre disponibles sont alors écrites autant
que possible dans l'appel du bloc.

Blocs de programme pour CP S7 SIMATIC NET


18 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Généralités sur le maniement
1.5 Paramètres pour indiquer une zone de données de la CPU (paramètres d'entrée)

Comportement en cas d'entrée d'une adresse erronée


Si la CPU S7 ne peut pas joindre le CP PROFIBUS à l'adresse de début de module
spécifiée ou si elle ne peut pas l'identifier comme CP, les erreurs décrites ci-dessous se
produisent.

Cause Réaction ou indication


Aucun module n'est adressable La CPU reste à l'état STOP avec erreur système ; dans ce cas,
ni identifiable à l'adresse de CP analysez le tampon de diagnostic de la CPU.
indiquée.
L'adresse de CP désigne un Indication d'erreur possible dans le paramètre STATUS du bloc de
autre type de module. communication :
8184H Erreur système
80B0H Ce module ne connaît pas cet enregistrement.
80C0H Impossible de lire l'enregistrement.
80C3H Ressource (mémoire) occupée.
80D2H L'adresse de base logique est fausse.

Remarque
Si vous adressez par erreur non pas un CP mais un autre type de module, les erreurs qui en
découlent ne sont pas signalées par des messages d'erreur des blocs de programme.

1.5 Paramètres pour indiquer une zone de données de la CPU


(paramètres d'entrée)

Indication de la zone de données dans la CPU


Lors de l'appel d'un bloc de programme, vous transférez l'adresse et la longueur de la zone
de données de la CPU dans laquelle les données utiles doivent être mises à disposition ou
enregistrées ou qui peut contenir des informations de paramétrage complémentaires.
C'est le type de données Pointeur ANY qui est utilisé pour adresser cette zone. Vous
trouverez de plus amples informations concernant ce type de données dans l'aide en ligne
de STEP 7.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 19
Généralités sur le maniement
1.6 Informations d'état (paramètres de sortie)

1.6 Informations d'état (paramètres de sortie)

Exploiter les indications d'état


Pour exploiter l'état, il faut exploiter les paramètres suivants dans le programme utilisateur :
● DONE ou NDR
Ces paramètres (DONE pour les tâches d'émission ou NDR pour les tâches de réception)
signalent l'achèvement (positif) d'une tâche.
● ERROR
Signale que la tâche n'a pas pu être exécutée correctement.
● STATUS
Ce paramètre donne des informations détaillées sur l'exécution de la tâche. Il est
possible que des indications d'état soient fournies déjà durant l'exécution de la tâche
(DONE=0 et ERROR=0).

Remarque
Sachez que les indications d'état DONE, NDR, ERROR, STATUS sont actualisées à
chaque appel de bloc.

Indications d'état au démarrage du CP


Au démarrage/redémarrage du CP Ethernet (après actionnement du commutateur p. ex.),
les paramètres de sortie du FC sont réinitialisés comme suit :
● DONE = 0
● NDR = 0
● ERROR = 0
● STATUS =
– 8180H pour AG_RECV / AG_LRECV
– 8181 H pour AG_SRECV
– 8181H pour AG_SEND /AG_LSEND / AG_SSEND

Blocs de programme pour CP S7 SIMATIC NET


20 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet 2
2.1 Blocs de programme pour services de communication ouverts
(Interface SEND/RECEIVE)

2.1.1 Blocs de programme et leur utilisation en bref

Généralités
Les blocs de programme suivants sont disponibles pour la transmission de données au
niveau de l'interface SEND/RECEIVE :

Bloc de programme utilisable pour 1) Signification


S7-300 S7-400
AG_SEND (FC5) x x pour l'émission de données
AG_RECV (FC6) x x pour la réception de données
AG_LSEND (FC50) x pour l'émission de données
AG_LRECV (FC60) x pour la réception de données
AG_SSEND (FC53) x pour l'émission de données
AG_SRECV (FC63) x pour la réception de données

1) Remarques concernant les blocs de programme pour S7-300 et S7-400


● Pour S7-300 :
– Sur les versions récentes des CP Ethernet, on utilise exclusivement les blocs de
programme AG_SEND et AG_RECV ; la longueur de données peut aller jusqu'à 8192
octets.
– Dans les CP de S7-300 (jusqu'au 6GK7 343–1EX10–0XE0 avec version du firmware
V2.2), vous devez utiliser le FC60 au lieu du FC6 sur les liaisons TCP. Pour le CP
343-1 (EX10), vous pouvez utiliser le FC5/FC6 jusqu'à la version V3.0 du bloc.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 21
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

● Pour S7-400 :
– Pour les blocs de programme AG_SEND / AG_RECV, la longueur de données par
tâche est limitée à <= 240 octets.
Les enregistrements plus longs (jusqu'à 8192 octets) peuvent être transmis à l'aide
des FC AG_LSEND ou AG_LRECV.
– Les blocs de programme AG_SSEND et AG_SRECV servent à transmettre les
données plus rapidement en utilisant une communication optimisée entre la CPU et le
CP dans la station S7. Cette communication rapide reste sans effet sur la
communication LAN.
– Sur S7–400, il n'est pas possible d'utiliser le FC6 sur les liaisons TCP, mais seulement
le FC60 ou le FC63.

Informations complémentaires
Veuillez consulter le manuel du CP S7 que vous utilisez pour vous renseigner sur la zone de
données supportée. Vous trouverez un récapitulatif des versions de FC/FB dans l'historique
des blocs SIMATIC NET.

Emploi
Le schéma ci-dessous montre l'emploi des blocs de programme décrits ici pour le transfert
bidirectionnel de données via une liaison configurée.

&38 (WKHUQHW&3 (WKHUQHW&3 &38

3URJUDPPH 3URJUDPPH
XWLOLVDWHXU XWLOLVDWHXU
67(3 67(3

=RQHVGHGRQQ«HV =RQHVGHGRQQ«HV
XWLOLVDWHXU XWLOLVDWHXU

$*B6(1' «PHWWUH UHFHYRLU $*B5(&9


/LDLVRQ
$*B5(&9 UHFHYRLU «PHWWUH $*B6(1'

Remarque
Sauf indication contraire, les explications données sur cette page et sur les suivantes
s'appliquent aux blocs AG_SEND / AG_LSEND et AG_RECV / AG_LRECV.

Blocs de programme pour CP S7 SIMATIC NET


22 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Exemples de programme
Les exemples de programme ci-après, disponibles sur Internet sous le numéro d'article
suivant, vous seront d'une aide précieuse
● Exemple de programme pour l'interface SEND/RECEIVE avec les blocs FC5 (AG_SEND)
et FC6 (AG_RECV) pour S7-300 :
17853532 (http://support.automation.siemens.com/WW/view/de/17853532)
● Exemple de programme pour l'interface SEND-RECEIVE avec les blocs FC50
(AG_LSEND) et FC60 (AG_LRECV) pour S7-400 :
18513371 (http://support.automation.siemens.com/WW/view/de/18513371)

Indication de la zone de données dans la CPU


Dans l'appel d'un bloc FC, vous fournissez l'adresse et la longueur de la zone de données
dans la CPU. Veuillez noter que la longueur maximale de la zone de données dépend du
type de bloc et de la version de bloc utilisés.
● AG_SEND et AG_RECV
Avec ces blocs, vous pouvez émettre ou recevoir 240 octets au maximum jusqu'à la
version V3.0 du bloc. Les versions actuelles autorisent pour S7-300 une zone de
données jusqu'à 8192 octets. Pour S7-400, il faut continuer à utiliser les FC AG_LSEND /
AG_LRECV pour transmettre les zones de données plus grandes.
● AG_LSEND / AG_LRECV
Pour les CP de S7-400 ainsi que pour les anciennes versions de S7-300, les zones de
données plus grandes ne peuvent être transmises qu'avec les FC AG_LSEND ou
AG_LRECV. Veuillez consulter l'information produit du CP pour vous renseigner sur la
zone de données supportée.
● AG_SSEND / AG_SRECV
Avec les CP de S7-400 qui supportent la communication PROFINET en collaboration
avec des CPU à partir de la version 5.1, il est possible de transmettre des données à une
vitesse plus élevée au moyen des FC AG_SSEND et AG_SRECV (sauf avec le CP
443−1 Advanced 6GK7 443–1EX41–0XE0).
Consultez le manuel de votre CP (paragraphe "Conditions de mise en œuvre") pour
savoir quels types de CP sont supportés par les CPU à partir de la version 5.1.
Le tableau ci-après indique les valeurs limites pour les différents types de liaison.

FC Transport ISO ISO-on-TCP TCP UDP


AG_LSEND (S7-400) 8192 octets 8192 octets 8192 octets 2048 octets
AG_SEND (S7-300)
AG_SEND (S7-400) 240 octets 240 octets 240 octets 240 octets
AG_LRECV (S7-400) 8192 octets 8192 octets 8192 octets 2048 octets
AG_RECV (S7-300)
AG_RECV (S7-400) 240 octets 240 octets 240 octets 240 octets
AG_SSEND (S7-400) 1452 octets 1452 octets 1452 octets 1452 octets
AG_SRECV (S7-400)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 23
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Remarque
À propos de la longueur de la zone de données transmissible avec les anciennes versions
des CP Ethernet, veuillez tenir compte des indications données par l'information produit ou
le manuel du CP Ethernet que vous utilisez .

Utilisation sans en-tête de tâche


Dans le cas d'une liaison spécifiée, les paramètres d'adresse et de tâche sont définis par la
configuration de la liaison. Par conséquent, le programme utilisateur ne fournit que les
données utiles dans la zone de données UDP pour l'émission avec AG_SEND / AG_LSEND
/ AG_SSEND ou les reçoit avec AG_RECV / AG_LRECV / AG_SRECV.

Utilisation avec en-tête de tâche


Les liaisons UDP libres exigent un en-tête de tâche dans la zone de données utilisateur.
Le schéma ci-dessous montre la structure du tampon de tâches ainsi que la signification et
le positionnement (octet de poids fort / octet de poids faible) des paramètres dans l'en-tête
de tâche.

=RQHGHGRQQ«HVXWLOLVDWHXU
7DPSRQGH 3RUW  + +LJK%\WH  (% + /RZ%\WH  %\WH
W¤FKHV (+ % + %\WH
$GUHVVH,3
 +  + %\WH
(QW¬WHGHW¤FKH

2FWHWGHGRQQ«HV 2FWHWGHGRQQ«HV %\WH

'RQQ«HV
XWLOHV

2FWHWGHGRQQ«HV 2FWHWGHGRQQ«HV %\WH

Figure 2-1 Emission et réception programmée via une liaison UDP libre

● Dans la figure (entrées en hexadécimal), l'adresse IP prise pour exemple est :


142.11.40.35;
● Pour l'adresse de port 1003, par exemple, il faut écrire : pour l'octet de poids fort : 03H ;
pour l'octet de poids faible : EBH.
● La zone de données utilisateur peut englober jusqu'à 2048 octets. Il est possible de
transmettre jusqu'à 2042 octets de données utiles. 6 octets sont réservés à l'en-tête de
tâche.
Veuillez noter que la longueur de données spécifiée dans l'appel de bloc (paramètre
LEN) doit englober l'en-tête et les données utiles !

Blocs de programme pour CP S7 SIMATIC NET


24 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Modifier les paramètres d'appel seulement après la confirmation de la tâche

Remarque
Après avoir lancé la tâche, vous n'êtes autorisé à modifier les paramètres d'appel sur
l'interface d'appel des blocs de programme AG_SEND et AG_RECV qu'après confirmation
de l'exécution de la tâche par le bloc de programme avec DONE=1 ou ERROR=1.
Si vous ne respectez pas cette obligation, il peut arriver que l'exécution soit abandonnée
avec erreur.

Indication d'état sur l'interface d'appel du FC ; particularité des versions de FC (seulement pour S7-
300) *)
Avec les FC AG_SEND (FC 5) et AG_RECV (FC 6), vous recevez les indications ci-dessous
dans les cas suivants :
● le CP est en STOP
● la liaison n'est pas configurée
● la liaison n'est pas établie
● la liaison est coupée
Indications :
● AG_SEND :
DONE=0 ; ERROR=1 ; Status=8183H
● AG_RECV :
DONE=0 ; ERROR=0 ; Status=8180H
ou
DONE=0 ; ERROR=1 ; Status=8183H
*) s'applique aux FC à partir de la version 4.0

2.1.2 AG_SEND / AG_LSEND / AG_SSEND

2.1.2.1 Signification et appel - AG_SEND / AG_LSEND / AG_SSEND

Signification du bloc
Les blocs de programme AG_SEND / AG_LSEND / AG_SSEND remettent des données au
CP Ethernet qui les transmet via une liaison configurée.
La zone de données indiquée peut être une zone de mémentos ou une zone de bloc de
données.
L'exécution sans erreur est signalée quand la zone de données utilisateur a pu être envoyée
dans sa totalité via Ethernet.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 25
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Remarque :
sauf indication contraire, toutes les indications ci-après s'appliquent aux FC AG_SEND,
AG_LSEND et AG_SSEND.

Interface d'appel
Interface d'appel en représentation LOG

$*B6(1'$*B/6(1'$*B66(1'

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 6(1'

,17 /(1

Exemple en représentation LIST

LIST Explication
call fc 5 ( //Appel de bloc
ACT := M 10.0, //Lancement de la tâche par bit de mémento
ID := MW 12, //ID de liaison selon configuration
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
SEND := P#db99.dbx10.0 byte 240, //Tampon avec données d'émission
LEN := MW 14, //Longueur des données émises
DONE := M 10.1, //Indication d'exécution
ERROR := M 10.2, //Indication d'erreur
STATUS := MW 16 ); //Indication d'état

Remarque
Si vous voulez utiliser le FC53 AG_SSEND, vous devez sélectionner le mode de
fonctionnement "SPEED SEND/RECV" comme propriété dans la configuration de la liaison.

2.1.2.2 Mode de travail - AG_SEND / AG_LSEND / AG_SSEND

Mode de fonctionnement
Les organigrammes suivants montrent le déroulement normal dans le temps d'une
transmission de données déclenchée dans le programme utilisateur par le bloc AG_SEND.
Le mode de fonctionnement du FC dépend du type de CP utilisé.
● Cas 1 : déroulement avec FC5, FC50, FC53 dans les CP de S7–400
Dans S7–400, le CP exécute la transmission de toute la zone de données, quelle que soit
sa longueur, après le premier appel du bloc.

Blocs de programme pour CP S7 SIMATIC NET


26 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

● Cas 2 : déroulement avec FC5 dans les CP de S7–300


Dans S7 300, la transmission se fait en plusieurs segments de données (240 octets de
données utiles chaque fois) et plusieurs appels du FC sont nécessaires pour la
transmission complète.

Cas 1 : déroulement avec FC5, FC50, FC53 dans les CP de S7–400


La tâche d'émission est exécutée dès que le paramètre ACT = 1 est transféré.
Ensuite, vous devez transférer le paramètre ACT = 0 dans un appel supplémentaire au
moins.
L'indication d'état dans les paramètres de sortie DONE, ERROR et STATUS est actualisée à
chaque appel de bloc et peut être exploitée. Pour actualiser l'indication d'état sans nouvelle
tâche d'émission, il suffit de lancer un nouvel appel de bloc avec le paramètre ACT = 0.

3URJUDPPHXWLOLVDWHXU (WKHUQHW&3 3DUWHQDLUHGHFRPPXQLFD


F\FOHGHOD&38 WLRQ

9DORULVHU$*B6(1'
DYHFGRQQ«HV
;

$&7 

$*B6(1'
7¤FKHHQFRXUV

9DORULVHU$*B6(1'
$&7  /DWUDQVPLVVLRQGH
;

YLD(WKHUQHWHVWHQ
$*B6(1' FRXUV

7¤FKHHQFRXUV

$*B6(1'
7¤FKHWHUPLQ«HVDQVHUUHXU

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Cas 2 : déroulement avec FC5 dans les CP de S7–300


La tâche d'émission débute dès que le paramètre ACT = 1 est transféré.
Contrairement à ce qui se passe dans le cas 1, le protocole utilisé ici exige un nouvel appel
du FC pour chaque transmission d'un segment de données (240 octets de données utiles).
Selon la longueur des données utiles, vous devez donc appeler de nouveau le FC avec
ACT=0 jusqu'à ce que la transmission complète soit signalée ; un appel supplémentaire au
moins est nécessaire. La transmission au partenaire de communication se fait en segments
de 240 octets de longueur respective.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 27
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

L'indication d'état dans les paramètres de sortie DONE, ERROR et STATUS est actualisée à
chaque appel de bloc et peut être exploitée.

3URJUDPPHXWLOLVDWHXU (WKHUQHW&3 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

9DORULVHU$*B6(1'
DYHFGRQQ«HV
;

$&7 

$*B6(1'
3ULVHHQFKDUJHGXEORF
7¤FKHHQFRXUV
GDQVOHWDPSRQG
«PLVVLRQ

9DORULVHU$*B6(1'
$&7 

$*B6(1'
7¤FKHHQFRXUV 3ULVHHQFKDUJHGXEORF
GDQVOHWDPSRQ
G
«PLVVLRQ

$*B6(1'
7¤FKHHQFRXUV 3ULVHHQFKDUJHGXEORFQ
GDQVOHWDPSRQ
G
«PLVVLRQ

/DWUDQVPLVVLRQ /
HQUHJLVWUHPHQW;
YLD(WKHUQHWHVWHQFRXUV HVWWUDQVPLV
$*B6(1'
7¤FKHWHUPLQ«HVDQVHUUHXU

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Remarque
En principe, il est possible d'appeler le FC plusieurs fois dans un cycle de CPU afin
d'accélérer le déroulement d'une tâche. Mais n'oubliez pas que ceci représentera une
charge pour le cycle de la CPU (différente selon le type de CPU) !

Blocs de programme pour CP S7 SIMATIC NET


28 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

2.1.2.3 Explication des paramètres formels - AG_SEND / AG_LSEND / AG_SSEND

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction
AG_SEND / AG_LSEND / AG_SSEND :

Paramètre Déclaration Type de Plage de valeurs Description


données
ACT INPUT BOOL 0,1 Quand le FC est appelé avec ACT = 1, les octets LEN
provenant de la zone de données indiquée par le
paramètre SEND sont envoyés.
Quand le FC est appelé avec ACT = 0, les indications
d'état DONE, ERROR et STATUS sont mises à jour.
ID INPUT INT 1, 2...64 Le paramètre ID spécifie le numéro de la liaison
(S7-400)
1, 2...16
(S7-300)
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
SEND INPUT ANY Indication de l'adresse et de la longueur
L'adresse de la zone de données renvoie :
 soit à une zone de mémentos
 soit à une zone de bloc de données
LEN INPUT INT Pour Transport ISO et Nombre d'octets à envoyer depuis la zone de données
ISO-on-TCP / TCP : au moyen de la tâche. Ce nombre peut être situé entre
1, 2...8192 ou jusqu'à 1 et "Longueur indiquée dans le paramètre SEND".
la "Longueur indiquée  Tenir compte du type de bloc :
dans le paramètre
– Pour S7-300
SEND")
Les versions actuelles du FC AG_SEND
permettent de transmettre jusqu'à 8192 octets
Pour UDP : (2048 octets pour UDP).
1, 2...2048 ou jusqu'à – pour S7-400
la "Longueur indiquée Avec le FC AG_SEND, la zone de données est
dans le paramètre systématiquement limitée à 240 octets maxi.
SEND")
À savoir pour S7-400 :
 Performance améliorée pour les enregistrements
courts :
les enregistrements de longueur inférieure ou égale
à 240 octets sont transmis avec une performance
supérieure ! et quel que soit le type de bloc utilisé
(AG_SEND/AG_LSEND).
 Avec AG_SSEND, la zone de données est limitée à
1452 octets maxi.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 29
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Paramètre Déclaration Type de Plage de valeurs Description


données
DONE OUTPUT BOOL 0: tâche en cours Le paramètre d'état indique si la tâche a été exécutée
1 : tâche exécutée sans erreur.
Tant que DONE = 0, il n'est pas possible de lancer une
autre tâche. Le CP met DONE à 0 lorsqu'il accepte la
tâche.
Pour sa signification en corrélation avec les paramètres
ERROR et STATUS, voir sous Indications AG_SEND,
AG_LSEND et AG_SSEND (Page 30)
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les paramètres
DONE et STATUS, voir sous Indications AG_SEND,
AG_LSEND et AG_SSEND (Page 30)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les paramètres
DONE et ERROR, voir sous Indications AG_SEND,
AG_LSEND et AG_SSEND (Page 30)

2.1.2.4 Indications AG_SEND, AG_LSEND et AG_SSEND

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

DONE ERROR STATUS Signification


1 0 0000H Tâche terminée sans erreur.
0 0 0000H Pas de tâche en cours.
0 0 8181H Tâche en cours.
0 1 7000H Cette indication n'est possible que pour S7-400 : le FC a été appelé avec ACT=0, mais
la tâche n'est pas traitée.
0 1 8183H La configuration manque ou bien le service ISO/TCP n'a pas encore été lancé sur le
CP Ethernet.
0 1 8184H  Un type de données illicite a été spécifié pour le paramètre SEND.
 Erreur système (la zone de données source est erronée).
0 1 8185H Paramètre LEN plus grand que la zone source SEND.

Blocs de programme pour CP S7 SIMATIC NET


30 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

DONE ERROR STATUS Signification


0 1 8186H Paramètre ID non valable.
 ID != 1, 2....16 (S7-300)
 ID != 1, 2....64.(S7-400)
0 1 8302H Ressources de réception insuffisantes sur la station cible, la station cible ne peut pas
traiter les données reçues suffisamment vite ou n'a pas mis de ressources de réception
à disposition.
0 1 8304H La liaison n'est pas établie. Ne relancer la tâche d'émission qu'après un temps d'attente
>100 ms.
0 1 8311H La station cible n'est pas accessible à l'adresse Ethernet indiquée.
0 1 8312H Erreur Ethernet sur le CP.
0 1 8F22H Zone source non valable, par ex. :
zone inexistante dans le DB
paramètre LEN < 0
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH Zone non chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la
zone de périphérie.
0 1 8F44H L'accès à un paramètre à lire au cours du traitement de bloc est verrouillé.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
par ex. paramètre LEN = 0 .
0 1 8090H  Il n'existe pas de module possédant cette adresse de début.
 Le FC utilisé n'est pas compatible avec la famille du système (il faut utiliser des FC
différents pour S7-300 et S7-400).
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H Dans la référence ANY, l'indication du type est différente de BYTE
(seulement pour S7-400).
0 1 80A4H La liaison de bus de communication entre CPU et CP n'est pas établie
(pour les nouvelles versions de CPU).
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H L'indication de longueur (dans le paramètre LEN) est erronée.
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Les ressources (mémoire) de la CPU sont temporairement occupées.
0 1 80C4H Erreur de communication (survient temporairement, une répétition dans le programme
utilisateur est donc judicieuse)
0 1 80D2H L'adresse de début du module est erronée.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 31
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Voir aussi
/4/ (Page 296)

2.1.3 AG_RECV / AG_LRECV / AG_SRECV

2.1.3.1 Signification et appel - AG_RECV / AG_LRECV / AG_SRECV

Signification du bloc
Le bloc de programme FC AG_RECV / AG_LRECV / AG_SRECV reçoit du CP Ethernet les
données transmises via une liaison configurée.
La zone indiquée pour cette prise en charge des données peut être une zone de mémentos
ou une zone de bloc de données.
L'exécution sans erreur est signalée quand les données du CP Ethernet ont pu être prises
en charge.
Remarque :
sauf indication contraire, toutes les indications ci-après s'appliquent aux FC AG_RECV et
AG_LRECV / AG_SRECV.

Appel
Interface d'appel en représentation LOG

$*B5(&9$*B/5(&9$*B65(&9

1'5 %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 5(&9 /(1 ,17

Exemple en représentation LIST

Blocs de programme pour CP S7 SIMATIC NET


32 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

LIST Explications
call fc 6 ( //Appel du bloc
ID := MW 40, //ID de liaison selon configuration
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
RECV := P#M 0.0 BYTE 100, //Tampon pour données reçues
NDR := DB 110.DBX 0.6, //Indication de réception
ERROR := DB 110.DBX 0.7, //Indication d'erreur
STATUS := DB 110.DBW 2, //Indication d'état
LEN := DB 110.DBW 4 ); //Longueur des données reçues

Remarque
Si vous voulez utiliser le FC63 AG_SRECV, vous devez sélectionner le mode de
fonctionnement "SPEED SEND/RECV" comme propriété dans la configuration de la liaison.

2.1.3.2 Mode de travail de AG_RECV / AG_LRECV / AG_SRECV

Mode de fonctionnement
Les organigrammes suivants montrent le déroulement normal dans le temps d'une réception
de données déclenchée dans le programme utilisateur par le bloc AG_RECV.
Chaque tâche AG_RECV du programme utilisateur est acquittée par le CP Ethernet à l'aide
d'une indication dans les paramètres de sortie NDR, ERROR et STATUS.
Le mode de fonctionnement du FC dépend du type de CP utilisé et des types de liaison.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 33
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

● Cas 1 : déroulement avec FC6 dans les CP de S7-300


Les types actuels de CP offrent une transmission de données optimisée pour l'interface
SEND/RECEIVE. Elle permet un débit nettement plus élevé à l'interface entre CPU et
CP, surtout pour les enregistrements volumineux.
● Cas 2 : déroulement avec FC6 et FC60 dans les CP de S7-400
Avec FC6 / FC60 AG_RECV, le comportement dans S7 400 dépend du protocole utilisé.
– Cas 2a : déroulement avec les liaisons ISO-Transport, ISO-on-TCP, UDP
Avec ces types de liaison, le CP transmet la zone de données au moyen d'un ou de
plusieurs appels du bloc FC6 /FC60, selon sa longueur.
– Cas 2b : déroulement avec les liaisons TCP
Avec la liaison TCP, c'est la longueur indiquée dans le pointeur ANY du paramètre
RECV qui est décisive. Une tâche FC6 /FC60 est terminée avec l'indication NDR=1
dès que la quantité de données correspondant à la longueur indiquée a été écrite
dans le tampon de réception.
● Cas 3 : déroulement avec FC63 dans les CP de S7-400
Avec FC63 AG_SRECV, le comportement dans S7 400 dépend du protocole utilisé.
– Cas 3a : déroulement avec les liaisons ISO-Transport, ISO-on-TCP, UDP
Avec ces types de liaison, le CP transmet toute la zone de données, quelle que soit sa
longueur, après le premier appel du bloc.
– Cas 3b : déroulement avec les liaisons TCP
Avec la liaison TCP, les données présentes dans le CP sont prises en charge à
chaque appel jusqu'à la longueur maximale fixée pour la tâche.
Il faut répéter l'appel jusqu'à ce qu'un enregistrement soit stocké entièrement et de
manière cohérente dans le tampon de réception. La prise en charge intégrale de
l'enregistrement est indiquée par le paramètre NDR=1 dans l'un des appels suivants
du FC.

Blocs de programme pour CP S7 SIMATIC NET


34 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Cas 1 : déroulement avec FC6 dans les CP de S7-300


En appelant le FC6, le programme utilisateur prépare le tampon pour les données à recevoir
et ordonne au CP d'y écrire les données reçues.
Le protocole utilisé ici demande, pour la transmission dans le tampon de réception, un
nouvel appel du FC pour chaque segment de données (240 octets de données utiles).
Selon la longueur des données utiles, le FC doit être appelé jusqu'à ce que la transmission
intégrale soit indiquée par le paramètre NDR=1.
L'indication d'état dans les paramètres de sortie NDR, ERROR et STATUS est actualisée à
chaque appel du bloc et peut être exploitée.

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

$*B5(&9
,OQ
\DHQFRUHDXFXQHGRQQ«H
/DWUDQVPLVVLRQGH
$

SDUH[RFWHWV 
YLD(WKHUQHWHVWHQ
$*B5(&9
FRXUV
,OQ
\DHQFRUHDXFXQHGRQQ«H

$*B5(&9
7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
$

/DWUDQVPLVVLRQGH
%

SDUH[RFWHWV YLD
(WKHUQHWHVWHQFRXUV
$*B5(&9
,OQ
\DHQFRUHDXFXQHGRQQ«H

$*B5(&9
7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
%

$*B5(&9
/DWUDQVPLVVLRQGH
&

YLD(WKHUQHWHVWHQFRXUV

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 35
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Cas 2a : déroulement avec FC6 et FC60 dans les CP de S7-400 (liaisons ISO-Transport, ISO-on-
TCP, UDP)
En appelant le FC, le programme utilisateur prépare le tampon pour les données à recevoir
et ordonne au CP d'y écrire toutes les données disponibles.
Dès qu'un enregistrement a été stocké entièrement et de manière cohérente dans le tampon
de réception, le paramètre NDR=1 l'indique dans l'un des appels suivants du FC.
L'indication d'état dans les paramètres de sortie NDR, ERROR et STATUS est actualisée à
chaque appel du bloc et peut être exploitée.

3URJUDPPHXWLOLVDWHXU (WKHUQHW&3 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

$*B5(&9 /DWUDQVPLVVLRQGH
$

,OQ
\DHQFRUHDXFXQHGRQQ«H YLD(WKHUQHWHVWHQFRXUV

$*B5(&9
7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
$

/DWUDQVPLVVLRQGH
%

YLD(WKHUQHWHVWHQFRXUV
$*B5(&9
,OQ
\DHQFRUHDXFXQHGRQQ«H

$*B5(&9
7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
%

$*B5(&9
/DWUDQVPLVVLRQGH
&

YLD(WKHUQHWHVWHQFRXUV

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Blocs de programme pour CP S7 SIMATIC NET


36 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Cas 2b : déroulement avec FC6 et FC60 dans les CP de S7-400 (seulement pour des liaisons TCP)
Avec la liaison TCP, c'est la longueur indiquée dans le pointeur ANY du paramètre RECV
qui est décisive. Une tâche FC6 /FC60 est terminée avec l'indication NDR=1 dès que la
quantité de données correspondant à la longueur indiquée a été écrite dans le tampon de
réception.
L'exemple choisi montre le cas où, avec un FC60, la longueur a été paramétrée à 400 octets
dans le pointeur ANY.

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

$*B5(&9
,OQ
\DHQFRUHDXFXQHGRQQ«H

/DWUDQVPLVVLRQGH
$

$*B5(&9 SDUH[RFWHWV 
YLD(WKHUQHWHVWHQ
,OQ
\DHQFRUHDXFXQHGRQQ«H FRXUV

$*B5(&9
7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
$

/DWUDQVPLVVLRQGH
%

SDUH[RFWHWV YLD
(WKHUQHWHVWHQFRXUV
$*B5(&9
,OQ
\DHQFRUHDXFXQHGRQQ«H

$*B5(&9
7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
%

$*B5(&9
/DWUDQVPLVVLRQGH
&

YLD(WKHUQHWHVWHQFRXUV

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 37
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Cas 3a : déroulement avec FC63 dans les CP de S7-400 (liaisons ISO-Transport, ISO-on-TCP, UDP)
En appelant le FC, le programme utilisateur prépare le tampon pour les données à recevoir
et ordonne au CP d'y écrire toutes les données jusqu'à la fin de la transmission, c.-à-d.
quand la longueur indiquée par le pointeur ANY est atteinte.
Dès que l'enregistrement a été stocké entièrement et de manière cohérente dans le tampon
de réception, le paramètre NDR=1 l'indique dans l'un des appels suivants du FC.
La longueur maximale des données à recevoir est de 1452 octets. La taille du tampon de
réception doit toujours être réglée sur cette valeur.
L'indication d'état dans les paramètres de sortie NDR, ERROR et STATUS est actualisée à
chaque appel du bloc et peut être exploitée.

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

$*B5(&9
/DWUDQVPLVVLRQGH
$

7RXWHVOHVGRQQ«HV YLD(WKHUQHWHVWHQ
SURYHQDQWGH FRXUV
O
HQUHJLVWUHPHQW$VRQW
UDQJ«HVGDQVOH
WDPSRQ 7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
$

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

Blocs de programme pour CP S7 SIMATIC NET


38 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Cas 3b : déroulement avec FC63 dans les CP de S7-400 (seulement pour des liaisons TCP)
En appelant le FC, le programme utilisateur prépare le tampon pour les données à recevoir
et ordonne au CP d'y écrire toutes les données momentanément disponibles. Tant que les
données n'ont pas été stockées entièrement dans le tampon, le message délivré est "Tâche
en cours" (8181H).
Le nouvel appel du FC sert à ranger dans le tampon les données actuellement disponibles.
Quand l'enregistrement a été stocké entièrement et de manière cohérente dans le tampon
de réception, le paramètre NDR=1 l'indique dans l'un des appels suivants du FC.
La longueur maximale des données à recevoir est de 1452 octets. La taille du tampon de
réception doit toujours être réglée sur cette valeur.
L'indication d'état dans les paramètres de sortie NDR, ERROR et STATUS est actualisée à
chaque appel du bloc et peut être exploitée.

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

$*B5(&9

67$786 
/DWUDQVPLVVLRQGH
$

YLD(WKHUQHWHVWHQ
FRXUV
$*B5(&9
'RQQ«HVGLVSRQLEOHVGDQVOHWDPSRQ 7¤FKHWHUPLQ«HVDQVHUUHXU

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
$

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

2.1.3.3 Explication des paramètres formels - AG_RECV / AG_LRECV / AG_SRECV

Explication des paramètres formels


Le tableau ci-après décrit tous les paramètres formels de la fonction
AG_RECV / AG_LRECV / AG_SRECV :

Paramètre Déclaration Type de Valeurs admises Description


données
ID INPUT INT 1, 2...64 (S7-400) Le paramètre ID spécifie le numéro de la liaison
1, 2...16 (S7-300) transport ISO.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 39
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Paramètre Déclaration Type de Valeurs admises Description


données
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
RECV INPUT ANY Indication de l'adresse et de la longueur
L'adresse de la zone de données renvoie :
 soit à une zone de mémentos
 soit à une zone de bloc de données
Pour l'indication de longueur, sachez que :
La transmission d'enregistrements allant jusqu'à 212
octets sera plus performante si vous limitez également
la longueur à 212 octets dans le paramètre RECV.
Pour FC63 AG_SRECV, sachez que :
Avec FC63 AG_SRECV, vous devez toujours donner à
RECV la longueur de tampon maximale qui est 1452
octets. Autrement, l'erreur suivante peut se produire
dans certains cas :
NDR=0 ; ERROR=1 ; STATUS=8185H
NDR OUTPUT BOOL 0: - Ce paramètre indique si de nouvelles données ont été
1 : nouvelles données prises en charge.
Pour sa signification en corrélation avec les
paramètres ERROR et STATUS, voir sous Indications
de AG_RECV, AG_LRECV et AG_SRECV (Page 41)
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les
paramètres NDR et STATUS, voir sous Indications de
AG_RECV, AG_LRECV et AG_SRECV (Page 41)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres NDR et ERROR, voir sous Indications de
AG_RECV, AG_LRECV et AG_SRECV (Page 41)
LEN OUTPUT INT Pour Transport ISO et Indique le nombre d'octets que le CP Ethernet a pris
ISO-on-TCP : en charge dans la zone de données.
1, 2...8192 Tenir compte du type de bloc :
 Pour S7-300
Pour UDP : Les versions actuelles du FC AG_RECV permettent
1, 2...2048 de transmettre jusqu'à 8192 octets (2048 octets
pour UDP).
 Pour S7-400
Avec le FC AG_RECV, la zone de données est
limitée à 240 octets maxi.
Avec le FC AG_SRECV, elle est limitée à 1452
octets maxi.

Blocs de programme pour CP S7 SIMATIC NET


40 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

2.1.3.4 Indications de AG_RECV, AG_LRECV et AG_SRECV

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de NDR, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 2- 1 Indications de AG_RECV / AG_LRECV / AG_SRECV

NDR ERROR STATUS Signification


1 0 0000H Nouvelles données prises en charge.
0 0 8180H Il n'y a encore aucune donnée (pas avec AG_SRECV).
0 0 8181H Tâche en cours.
0 1 8183H  La configuration manque.
 Le service transport ISO n'a pas encore été lancé sur le CP Ethernet.
 La liaison n'est pas établie.
0 1 8184H  Type de données spécifié illicite pour le paramètre RECV.
 Erreur système.
0 1 8185H Tampon cible (RECV) trop petit.
0 1 8186H Paramètre ID non valable.
ID != 1, 2....16 (S7-300).
ID != 1, 2....64.(S7-400)
0 1 8304H La liaison n'est pas établie. Ne relancer la tâche de réception qu'après un temps
d'attente >100 ms.
0 1 8F23H Zone source non valable, par ex. :
zone inexistante dans le DB.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actuel protégé en écriture.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actuel protégé en écriture.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH La zone cible n'est pas chargée (DB).
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la
zone de périphérie.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 41
Blocs de programme pour Industrial Ethernet
2.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

NDR ERROR STATUS Signification


0 1 8F45H L'adresse du paramètre à écrire est verrouillée dans la piste d'accès.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H  Il n'existe pas de module avec cette adresse de début ou la CPU est en STOP.
 Le FC utilisé n'est pas compatible avec la famille du système (il faut utiliser des FC
différents pour S7-300 et S7-400).
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H Dans la référence ANY, l'indication du type est différente de BYTE
(seulement pour S7-400).
0 1 80A0H Acquittement négatif à la lecture du module.
0 1 80A4H La liaison de bus de communication entre CPU et CP n'est pas établie
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H Causes possibles :
 La zone cible n'est pas valide.
 La zone cible est trop petite.
 La zone cible des données reçues n'est pas assez grande.
Solution : Effectuez un nouvel appel de réception avec la taille de tampon de réception
maximale. Ceci vaut indépendamment du type de liaison (unicast/multicast/broadcast)
et de la famille d'automates (S7-300 / S7-400).
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Les ressources (mémoire) de la CPU sont temporairement occupées.
0 1 80C4H Erreur de communication
survient temporairement, une répétition dans le programme utilisateur est donc
judicieuse.
0 1 80D2H L'adresse de début du module est erronée.

Voir aussi
/4/ (Page 296)

Blocs de programme pour CP S7 SIMATIC NET


42 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

2.2.1 Blocs de programme et leur utilisation en bref

Généralités
Les blocs de programme suivants sont disponibles pour coordonner l'accès dans le cadre de
la fonction FETCH/WRITE :

Bloc de programme utilisable pour Signification


S7-300 S7-400
AG_LOCK (FC7) x x Verrouillage de l'accès externe au
données avec FETCH/WRITE.
AG_UNLOCK (FC8) x x Déverrouillage de l'accès externe au
données par FETCH/WRITE.

Tenir compte de la configuration


Quand vous utilisez les blocs de programme AG_LOCK et AG_UNLOCK, il faut entrer les
indications suivantes dans la configuration pour les CP dans des stations S7-400 :
● Sous "Propriétés > Adresses"
Sélectionner l'option "Réglage de l'adresse pour LOCK/UNLOCK" si elle est proposée.

Mode de fonctionnement
Ces blocs de programme permettent de coordonner l'accès aux zones de mémoire système
afin d'éviter que des données incohérentes soient générées et transmises. Pour cela, le
contrôle est assuré par le programme utilisateur dans la CPU S7 qui peut, au besoin,
verrouiller par un appel AG_LOCK un accès FETCH/WRITE externe. Après un laps de
temps donné ou après que le propre accès en lecture/écriture est achevé, l'accès externe
peut être déverrouillé par une tâche AG_UNLOCK.
En outre, il est possible de limiter ce verrouillage à la liaison FETCH/WRITE spécifiée dans
l'appel. Si vous configurez plusieurs liaisons FETCH/WRITE, vous pouvez les utiliser
précisément pour certaines zones de mémoire système, par exemple, et réaliser ainsi une
coordination d'accès sélective.
Le schéma ci-après montre le déroulement habituel dans le temps d'une coordination
d'accès à la mémoire, commandée dans le programme utilisateur par AG_LOCK et
AG_UNLOCK.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 43
Blocs de programme pour Industrial Ethernet
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38

^
$*B/2&.
&\FOHQ /2&.(' 

/
DFFªV)(7&+:5,7(

^
DX'%[HVWHQFRXUV
$*B/2&.
&\FOHQ
/2&.(' 

&\FOHQ

^
 7UDLWHPHQWGHVGRQQ«HV
GDQV'%[
$*B/2&.
/2&.('  )(7&+:5,7(

)(7&+:5,7(UHMHW«

^
$*B81/2&.

&\FOHQP
67$786 [
/
DFFªV)(7&+:5,7(
DX'%[HVWHQFRXUV

7HPSV 7HPSV 7HPSV

La tâche de verrouillage doit d'abord être surveillée dans le programme utilisateur via
l'indication dans le paramètre retourné LOCKED. Tant que LOCKED=0, il faut présumer
qu'un accès FETCH/WRITE externe est encore en cours.
LOCKED=1 indique que le verrouillage est actif ; il est alors possible de modifier des
données depuis le programme utilisateur.
L'indication d'état est mise à jour à chaque appel du bloc.

Blocs de programme pour CP S7 SIMATIC NET


44 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

2.2.2 AG_LOCK

2.2.2.1 Signification et appel - AG_LOCK

Signification du bloc
Le bloc AG-LOCK permet de verrouiller l'échange de données par FETCH ou WRITE via la
liaison sélectionnée à l'aide du paramètre ID. La sortie LOCKED indique si le verrouillage a
été effectué ou pas. Si le verrouillage a échoué, il faut lancer de nouveau la tâche dans un
prochain cycle de la CPU.
La sortie STATUS indique l'état du CP pour cette liaison.

Appel
Interface d'appel en représentation LOG

$*B/2&.

,' /2&.('

/$''5 67$786

Exemple en représentation LIST

LIST Explication
call fc 7 ( //Appel du bloc
ID := DB 100.DBW 2, //ID de liaison selon configuration
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
LOCKED := DB 100.DBX 0.6, //Indication d'état du verrouillage d'accès
STATUS := DB 100.DBW 4 ); //Indication d'état

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 45
Blocs de programme pour Industrial Ethernet
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

2.2.2.2 Explication des paramètres formels - AG_LOCK

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction AG_LOCK :

Paramètre Déclaration Type de Plage de valeurs Description


données
ID INPUT INT 1,2...16 pour S7-300 Le paramètre ID spécifie le numéro de la liaison
1,2...64 pour S7-400
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
LOCKED OUTPUT BOOL 0: pas (encore) Indication de l'état du verrouillage d'accès demandé
verrouillé sur la liaison FETCH/WRITE spécifiée.
1 : verrouillé
STATUS OUTPUT WORD Indication d'état
Pour sa signification, voir sous
Indications du bloc AG_LOCK (Page 46)

2.2.2.3 Indications du bloc AG_LOCK

Indications
Le tableau ci-après renseigne sur l'indication STATUS à exploiter par le programme
utilisateur.

Tableau 2- 2 Indications de AG_LOCK

STATUS Signification
7000H Le CP ne traite aucune tâche
7001H FETCH en cours
7002H WRITE en cours
8183H FETCH/WRITE non configuré pour cette liaison (seulement pour S7-400)
8186H Numéro d'ID hors de la plage autorisée (par ex. 1...64 pour CP Industrial Ethernet de S7-400)
80A4H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les nouvelles versions de CPU)
80B0H Le module ne connaît pas cet enregistrement.
80B1H L'indication de longueur (dans le paramètre LEN) est erronée.
80B2H La liaison de bus de communication entre CPU et CP n'est pas établie
80C0H Impossible de lire l'enregistrement.
80C1H L'enregistrement indiqué est en cours de traitement.
80C2H Engorgement des tâches.
80C3H Les ressources (mémoire) de la CPU sont temporairement occupées.

Blocs de programme pour CP S7 SIMATIC NET


46 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

STATUS Signification
80C4H Erreur de communication
survient temporairement, une répétition dans le programme utilisateur est donc judicieuse.
80D2H L'adresse de début du module est erronée.

2.2.3 AG_UNLOCK

2.2.3.1 Signification et appel - AG_UNLOCK

Signification du bloc
Le bloc AG_UNLOCK autorise l'accès externe aux zones de la mémoire utilisateur de la
CPU S7. L'accès est ensuite possible avec FETCH et WRITE via la liaision sélectionnée à
l'aide du paramètre ID.
L'accès avait été verrouillé auparavant par AG_LOCK.

Appel
Interface d'appel en représentation LOG

$*B81/2&.

,' 67$786

/$''5

Exemple en représentation LIST

LIST Explication
call fc 8 ( //Appel du bloc
ID := DB 100.DBW 2, //ID de liaison selon configuration
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
STATUS := DB 100.DBW 4 ); //Indication d'état

Mode de travail
Pour déverrouiller la liaison, le FC doit remettre le bit de requête LOCK à zéro. Le FC
indique en outre l'état actuel par des messages d'erreur.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 47
Blocs de programme pour Industrial Ethernet
2.2 Blocs de programme pour coordonner l'accès avec FETCH/WRITE

2.2.3.2 Explication des paramètres formels - AG_UNLOCK

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction AG_UNLOCK :

Paramètre Déclaration Type de Valeurs admises Description


données
ID INPUT INT 1,2...16 pour S7-300 Le paramètre ID spécifie le numéro de la liaison (voir
1,2...64 pour S7-400 configuration).
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
STATUS OUTPUT WORD Indication d'état
Pour sa signification, voir sous
Indications du bloc AG_UNLOCK (Page 48)

2.2.3.3 Indications du bloc AG_UNLOCK

Indications
Le tableau ci-après renseigne sur l'indication STATUS à exploiter par le programme
utilisateur.

Tableau 2- 3 Indications de AG_UNLOCK

STATUS Signification
7000H Le CP ne traite aucune tâche
7001H FETCH en cours
7002H WRITE en cours
8183H FETCH/WRITE non configuré pour cette liaison (seulement pour S7-400)
8186H Numéro d'ID hors de la plage autorisée (par ex. 1...64 pour CP Industrial Ethernet de S7-400)
80A4H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les nouvelles versions de CPU)
80B0H Le module ne connaît pas cet enregistrement.
80B1H L'indication de longueur (dans le paramètre LEN) est erronée.
80B2H La liaison de bus de communication entre CPU et CP n'est pas établie
80C0H Impossible de lire l'enregistrement.
80C1H L'enregistrement indiqué est en cours de traitement.
80C2H Engorgement des tâches.
80C3H Les ressources (mémoire) de la CPU sont temporairement occupées.
80C4H Erreur de communication
survient temporairement, une répétition dans le programme utilisateur est donc judicieuse
80D2H L'adresse de début du module est erronée.

Blocs de programme pour CP S7 SIMATIC NET


48 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

2.3 Blocs de programme pour diagnostic des liaisons et diagnostic


système

2.3.1 AG_CNTRL

2.3.1.1 Signification et appel - AG_CNTRL

Signification et mode de fonctionnement


Le bloc de programme AG_CNTRL donne la possibilité de diagnostiquer des liaisons. Au
besoin, il permet de renouveler l'établissement de liaison à l'aide du bloc AG_CNTRL.

Remarque
AG_CNTRL et AG_CNTEX
Le bloc de programme AG_CNTEX offre des fonctions complémentaires par rapport au bloc
de programme AG_CNTRL.
Toutes les fonctions du bloc AG_CNTRL sont contenues dans AG_CNTEX et utilisables de
manière identique au niveau de l'interface du programme utilisateur.

Les actions suivantes peuvent être exécutées au moyen de commandes paramétrables :


● Lecture des informations de liaison
Les informations d'état vous permettent de décider, pour toutes les liaisons ou pour
certaines liaisons du CP, s'il est judicieux de réinitialiser des liaisons.
● Réinitialisation de liaisons configurées
Vous pouvez réinitialiser certaines liaisons ou toutes les liaisons d'un CP.
● Coupure d'une liaison active et nouvel établissement
Les commandes du bloc FC AG_CNTRL sont autorisées seulement pour les liaisons
SEND/RECV qui utilisent les protocoles ISO / RFC / TCP / UDP.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 49
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Interface d'appel
Interface d'appel en représentation LOG

$*B&175/

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

,17 &0' 5(68/7 ':25'

5(68/7 ':25'

Exemple en représentation LIST

LIST Explication
call fc 10 ( //Appel du bloc AG_CNTRL
ACT := M1.0, //Lancement de la tâche
ID := MW8, //ID de liaison selon configuration
LADDR := W#16#100, //Adresse de module selon configuration matérielle
CMD := MW6, //Identificateur de commande
DONE := M20.1, //Indication d'exécution
ERROR := M20.2, //Indication d'erreur
STATUS := MW22, //Indication d'état
RESULT1 := MD24, //Résultat 1 de la tâche
RESULT2 := MD28 ); //Résultat 2 de la tâche

Voir aussi
Article FAQ ID 33414377 (http://support.automation.siemens.com/WW/view/de/33414377)

Blocs de programme pour CP S7 SIMATIC NET


50 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

2.3.1.2 Mode de travail de AG_CNTRL

Mode de travail
Le schéma suivant montre un déroulement typique de tâches AG_CNTRL dans le
programme utilisateur.

3URJUDPPHXWLOLVDWHXU (WKHUQHW&3
F\FOHGH&38

(VZLUGHLQ(UHLJQLVHUNDQQW
GDVGHQ$EEUXFKXQG1HXDXI
EDXHLQHU9HUELQGXQJVLQQYROO
PDFKW

$VVLJQHUGHVYDOHXUV¢
$*B&175/SRXU
LQWHUURJDWLRQG
«WDW
$&7 &0' 
,'  OLDLVRQ

$*B&175/ 6WDWXVDEIUDJH 
/
LQWHUURJDWLRQG
«WDWGHOD
(WDWGHODOLDLVRQ,' OLDLVRQHVWDFTXLWW«

$VVLJQHUGHVYDOHXUV¢
$*B&175/SRXU
U«LQLWLDOLVDWLRQ
$&7 &0' 
,'  OLDLVRQ
$*B&175/ 5HVHW.RPPDQGR 
$FTXLWWHPHQWG
DFFHSWDWLRQGH 5HTX¬WHGHU«LQLWLDOLVDWLRQHQ
W¤FKH FRXUV
5(68/7ಯ(WDEOLVVHPHQWGH /
LGHQWLILFDWHXUGHU«LQLWLDOLVDWLRQ
OLDLVRQG«FOHQFK«ರ
ELWGDQV5(68/7 HVWPLV¢

(QWU«HGHWDPSRQGHGLDJQRVWLF

/DOLDLVRQHVW«WDEOLH
$VVLJQHUGHVYDOHXUV¢ HWU«LQLWLDOLV«H
$*B&175/SRXU /
LGHQWLILFDWHXU ELWGDQV
LQWHUURJDWLRQG
«WDW 5(68/7 UHVWH¢
$&7 &0' 
,'  OLDLVRQ

$*B&175/ 6WDWXVDEIUDJH 
/
LQWHUURJDWLRQG
«WDWHVW
DFTXLWW«H
O
LGHQWLILFDWHXUGHU«LQL
(WDWGHODOLDLVRQ,' WLDOLVDWLRQ ELWGDQV
5(68/7
$FTXLWWHPHQW HVWHQVXLWHUHPLV¢
5(68/7%+
ಯ5«LQLWLDOLVDWLRQH[«FXW«Hರ

7HPSV 7HPSV


7UDQVIHUWGHVSDUDPªWUHV'21((552567$786HW5(68/7

L'organigramme montre qu'on commence par interroger l'état de la liaison, puis que la
coupure de la liaison est ordonné au moyen d'une commande Reset dans une deuxième
tâche.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 51
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

À cette occasion, le repère de réinitialisation est mis à 1 dans le CP (bit15 dans RESULT1).
Ceci permettra de reconnaître, lors d'une interrogation d'état ultérieure, si la liaison avait été
réinitialisée en raison d'une tâche Reset. Ce repère de réinitialisation ne sera remis à 0 dans
le CP qu'après une interrogation d'état (ou par suite d'une commande CN_CLEAR_RESET
explicite).

Remarque
Il faut que ACT=1 dans l'appel du bloc ; en cas d'appel avec ACT=0, la fonction n'est pas
appelée et le bloc est quitté immédiatement.
Le résultat de la tâche étant fourni de manière synchrone à l'appel avec le FC10, le bloc
peut être appelé de nouveau dans le même cycle.

2.3.1.3 Explication des paramètres formels - AG_CNTRL

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction AG_CNTRL :

Paramètre Déclaration Type de Valeurs admises Description


données
ACT INPUT BOOL 0, 1 Le FC doit être appelé avec ACT=1.
En cas d'appel avec ACT=0, la fonction n'est pas
appelée et le bloc est quitté immédiatement.
ID INPUT INT  1, 2, .., n, Le paramètre ID spécifie le numéro de la liaison Vous
ou trouverez ce numéro de liaison dans la configuration. n
est le nombre maximal de liaisons et il dépend du
 0 produit (S7-300 ou S7-400).
Dans un appel s'appliquant à toutes les liaisons
(fonction _ALL avec CMD 3 ou 4), il faut indiquer 0
comme ID.
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
CMD INPUT INT Commande adressée au FC AG_CNTRL.
DONE OUTPUT BOOL 0: Le paramètre d'état indique si la tâche a été exécutée
la tâche est encore en sans erreur.
cours ou pas encore Pour sa signification en corrélation avec les
lancée paramètres ERROR et STATUS, voir sous Indications
1: de AG_CNTRL (Page 53)
tâche exécutée Nota :
quand DONE=1, il est possible d'exploiter RESULT.

Blocs de programme pour CP S7 SIMATIC NET


52 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Paramètre Déclaration Type de Valeurs admises Description


données
ERROR OUTPUT BOOL 0: pas d'erreur Indication d'erreur
1: Erreur Pour sa signification en corrélation avec les
paramètres DONE et STATUS, voir sous Indications
de AG_CNTRL (Page 53)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres DONE et ERROR, voir sous Indications de
AG_CNTRL (Page 53)
RESULT1 OUTPUT DWORD Retour conformément à la commande adressée au FC
AG_CNTRL.
RESULT2 OUTPUT DWORD À n'exploiter que pour S7-400 :
partie 2 du retour conformément à la commande
adressée au FC AG_CNTRL.

2.3.1.4 Indications de AG_CNTRL

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.
Il faut exploiter en outre les résultats des commandes dans les paramètres RESULT1/2
conformément à "Commandes et résultats de la tâche - AG_CNTRL (Page 54) ".

Tableau 2- 4 Indications de AG_CNTRL

DONE ERROR STATUS Signification


1 0 0000H Une tâche (CMD) a été transmise correctement au CP (par ex. RESET) ou un état a
été lu correctement sur le CP.
Les paramètres RESULT1/2 peuvent être exploités.
0 0 0000H Aucun appel du bloc n'a encore eu lieu ou le bloc a été appelé avec ACT=0.
0 0 8181H Tâche en cours.
L'appel du bloc doit être répété avec les mêmes paramètres jusqu'à ce que DONE ou
ERROR soit signalé.
0 1 8183H La configuration manque ou bien le service n'a pas encore été lancé sur le CP
Ethernet.
0 1 8186H Le paramètre ID n'est pas valable. L'ID admissible dépend de la commande
sélectionnée.
0 1 8187H Le paramètre CMD n'est pas valable.
0 1 8188H Erreur de séquence dans la commande de ACT (nota : cette indication ne se présente
pas dans la version produit du CP / du firmware).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 53
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

DONE ERROR STATUS Signification


0 1 8189H La version de CP / le firmware utilisé(e) ne supporte pas le FC10.
Cette indication est fournie en cas d'appel sur un CP3431-EX20 avec une version de
firmware à partir de V1.3.9 ; pour les autres types de CP, elle est remplacée par
l'indication 80B0H.
Nota : le FC10 en version V1.0 est supporté par les CP à partir du CP 343-1
EX21/GX21 ; sur ces derniers, cette indication n'apparaît pas.
0 1 8090H  Il n'existe pas de module possédant cette adresse de début.
ou
 Le FC utilisé n'est pas compatible avec la famille du système (il faut utiliser des FC
différents pour S7-300 et S7-400).
ou
 La fonction n'est pas supportée par ce module.
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie Dans le
système H, la CPU associée se trouve à l'état STOP.
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Les ressources (mémoire) de la CPU sont temporairement occupées.
0 1 80C4H Erreur de communication.
L'erreur survient temporairement, une répétition dans le programme utilisateur est donc
judicieuse.
0 1 80D2H L'adresse de début du module est erronée.

2.3.1.5 Commandes et résultats de la tâche - AG_CNTRL

Commandes et exploitation des résultats de la tâche


Les tableaux suivants indiquent les commandes possibles et les résultats exploitables dans
les paramètres RESULT1/2.

Remarque
Exploitation des commandes des anciens types de CP ou anciennes versions de firmware
Les commandes décrites ci-après sont prises en charge par les types de CP et versions de
firmware actuels. Tenez compte des informations complémentaires sur Internet fournies
sous le numéro d'article ci-après :
33414377 (http://support.automation.siemens.com/ww/view/de/33414377)

Blocs de programme pour CP S7 SIMATIC NET


54 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Tableau 2- 5 Commandes adressées au FC AG_CNTRL.

CMD Signification
0 NOP – no operation
Le bloc est parcouru sans qu'une tâche soit adressée au CP.
RESULT (pour CMD = 0) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H Déroulement sans erreur
RESULT2 0000 0000H Valeur par défaut

CMD Signification
1 CN_STATUS – connection status
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit
RESULT1 0000 000*H Bits 0 à 3 : indications pour la direction d'émission
(valeurs exclues : 0x2)
Bit 0 Type de liaison
 0: pas de liaison d'émission ou de réception
 1: liaison réservée aux tâches d'émission et de
réception
Bit 1 Etat de la tâche actuelle
 0: pas de tâche d'émission en cours
 1: tâche d'émission en cours
Bits 2+3 Tâche précédente :
 00: aucune information disponible sur la tâche
d'émission précédente
 01: tâche d'émission précédente terminée sans erreur
 10: tâche d'émission précédente terminée avec erreur

CMD Signification
1 CN_STATUS – connection status (Suite pour CMD=1)
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 55
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
RESULT1 0000 00*0H Bits 4 à 7 : indications pour la direction de réception
(valeurs exclues : 0x2)
Bit 4 Type de liaison
 0: pas de liaison d'émission ou de réception
 1: liaison réservée aux tâches d'émission et de
réception
Bit 5 Etat de la tâche actuelle
 0: pas de tâche de réception en cours
 1: tâche de réception en cours
Bits 6+7 Tâche précédente :
 00: aucune information disponible sur la tâche de
réception précédente
 01: tâche de réception précédente terminée sans
erreur
 10: tâche de réception précédente terminée avec
erreur

CMD Signification
1 CN_STATUS – connection status (Suite pour CMD=1)
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit
RESULT1 0000 0*00H Bits 8 à 11 : indications pour FETCH/WRITE
(valeurs exclues :0x3,0x7,0x8,0xB,0xF)
Bit 8 Type de liaison
 0: pas une liaison FETCH
 1: liaison réservée pour tâches FETCH
Bit 9 Type de liaison
 0: pas une liaison WRITE
 1: liaison réservée pour tâches WRITE

Blocs de programme pour CP S7 SIMATIC NET


56 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
Bit 10 Etat de la tâche (FETCH/WRITE)
 0: Etat de la tâche OK
 1: Etat de la tâche NOT OK.
Cet identificateur est mis à 1 dans les cas suivants :
– La tâche a reçu un acquittement négatif de la
CPU.
– La tâche n'a pu être remise à la CPU, car la
liaison se trouvait à l'état "LOCKED".
– La tâche a été refusée, car l'en-tête
FETCH/WRITE n'était pas construit correctement.
Bit 11 Etat de la tâche FETCH/WRITE
 0: aucune tâche en cours
 1: une tâche de LAN en cours

CMD Signification
1 CN_STATUS – connection status (Suite pour CMD=1)
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit
RESULT1 0000 *000H Bits 12 à 15 : informations générales sur le CP
(valeurs exclues : 0x3,0xB)
Bits 12 + 13 Informations sur l'état de liaison :
(disponibles seulement pour les liaisons SEND/RECV qui
utilisent les protocoles ISO/RFC/TCP ; pour UDP, les
informations internes correspondantes sont fournies)
 00: La liaison est coupée
 01: La liaison est en cours d'établissement
 10: La liaison est en cours de coupure
 11: La liaison est établie
Bit 14 Informations sur le CP
 0: CP en STOP
 1: CP en RUN
Bit 15 Identificateur de réinitialisation
 0: Le FC10 n'a pas encore réinitialisé de liaison ou
l'identificateur a été remis à 0.
 1: Le bloc Control a réinitialisé une liaison.
RESULT1 **** 0000H Bits 16 à 31 : réservés
0 – réservé à des extensions ultérieures
RESULT2 0000 0000H - réservé à des extensions ultérieures -

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 57
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
2 CN_RESET – connection reset
Cette commande remet à 0 la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
La réinitialisation de la liaison provoque sa coupure et son rétablissement (actif ou passif, selon la
configuration). Les données reçues au moment de la coupure de la liaison mais pas encore réceptionnées par
le programme utilisateur sont effacées.
De plus, une entrée générée dans le tampon de diagnostic mentionne le résultat de la tâche.
RESULT (pour CMD = 2) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche Reset a été transmise correctement au CP.
La coupure de la liaison et le rétablissement suivant ont
été déclenchés.
0000 0002H La tâche Reset n'a pas pu être transmise au CP, car ce
service n'est pas démarré dans le CP (par ex. CP en
STOP).
RESULT2 0000 0000H Valeur par défaut

CMD Signification
3 CN_STATUS_ALL – all connections status
Cette commande fournit dans les paramètres RESULT1/2 (8 octets au total d'informations groupées) l'état de
toutes les liaisons (établie/coupée).
Le paramètre ID doit avoir la valeur "0" (il est testé à 0).
Le CP est sélectionné au moyen du paramètre LADDR.
Pour obtenir des informations de détail sur une liaison coupée ou non configurée, on peut lancer au besoin un
nouvel appel d'état avec CMD=1 et s'appliquant à la liaison en question.
RESULT (pour CMD = 3) Signification
Paramètre Valeur hexa/plage
RESULT1 **** ****H 32 bits : liaisons 1 à 32
 0 - liaisons coupées / non configurées
 1 - liaisons établies
RESULT2 **** ****H 32 bits : liaisons 33 à 64
 0 - liaisons coupées / non configurées
 1 - liaisons établies

Blocs de programme pour CP S7 SIMATIC NET


58 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
4 CN_RESET_ALL – all connections reset
Cette commande réinitialise toutes les liaisons.
Le paramètre ID doit avoir la valeur "0" (il est testé à 0).
Le CP est sélectionné au moyen du paramètre LADDR.
La réinitialisation des liaisons provoque leur coupure et leur rétablissement (actif ou passif, selon la
configuration). Les données reçues au moment de la coupure de la liaison mais pas encore réceptionnées par
le programme utilisateur sont effacées.
De plus, une entrée générée dans le tampon de diagnostic mentionne le résultat de la tâche.
RESULT (pour CMD = 4) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche Reset a été transmise correctement au CP. La
coupure de toutes les liaisons et leur rétablissement
suivant ont été déclenchés.
RESULT1 0000 0002H La tâche Reset n'a pas pu être transmise au CP, car ce
service n'est pas démarré dans le CP (par ex. CP en
STOP).
RESULT2 0000 0000H Valeur par défaut

CMD Signification
5 CN_CLEAR_RESET – remise à 0 de l'identificateur de réinitialisation
Cette commande remet à 0 l'identificateur de réinitialisation (bit 15 dans RESULT1) pour la liaison sélectionnée
par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Cette tâche s'exécute aussi automatiquement à la lecture de l'état de la liaison (CMD=1) ; la tâche décrite ici,
qui peut être lancée séparément, n'est donc nécessaire que dans des cas spéciaux.
RESULT (pour CMD = 5) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche Clear a été transmise correctement au CP.
RESULT1 0000 0002H La tâche Clear n'a pas pu être transmise au CP, car ce
service n'est pas démarré dans le CP (par ex. CP en
STOP).
RESULT2 0000 0000H Valeur par défaut

CMD Signification
6 CN_DISCON − connection disconnect
Cette commande remet à zéro la liaison sélectionnée par ID et LADDR.
La remise à zéro de la liaison est obtenue par sa coupure.
Les données éventuellement mémorisées dans la pile sont alors perdues sans avis préalable. Ensuite, la
liaison n'est pas rétablie automatiquement. Elle peut être établie de nouveau au moyen de la tâche Control
CN_STARTCON. L'entrée générée dans le tampon de diagnostic mentionne le résultat de la tâche.
RESULT (pour CMD = 6) Signification
Paramètre Valeur hexa/plage

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 59
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
RESULT1 0000 0001H La tâche a été transmise correctement au CP. La
coupure de la liaison a été engagée.
RESULT1 0000 0002H La tâche n'a pas pu être transmise au CP, car ce service
n'est pas démarré dans le CP (par ex. CP en STOP).
RESULT2 0000 0000H Valeur par défaut

CMD Signification
7 CN_STARTCON − start connection
Cette commande établit une liaison qui a été sélectionnée avec ID et LADDR et coupée auparavant au moyen
de la tâche Control CN_DISCON. L'entrée générée dans le tampon de diagnostic mentionne le résultat de la
tâche.
RESULT (pour CMD = 7) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche d'établissement de liaison a été transmise
correctement au CP. L'établissement de la liaison a été
engagé.
RESULT1 0000 0002H La tâche d'établissement de liaison n'a pas pu être
transmise au CP, car ce service n'est pas démarré dans
le CP (par ex. CP en STOP).
RESULT2 0000 0000H Valeur par défaut

Voir aussi
Tenez compte des informations complémentaires dans les FAQ sous le numéro d'article ci-
après : 33414377 (http://support.automation.siemens.com/ww/view/de/33414377)

Blocs de programme pour CP S7 SIMATIC NET


60 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

2.3.2 AG_CNTEX

2.3.2.1 Signification et appel - AG_CNTEX

Signification et mode de fonctionnement


Le bloc de programme AG_CNTEX permet de diagnostiquer des liaisons et d'interroger des
appareils du réseau à l'aide d'une commande ping. Au besoin, AG_CNTEX permet de
réinitialiser l'établissement d'une liaison.

Remarque
AG_CNTRL et AG_CNTEX
Le bloc de programme AG_CNTEX offre des fonctions complémentaires par rapport au bloc
de programme AG_CNTRL.
Toutes les fonctions du bloc AG_CNTRL sont contenues dans AG_CNTEX et utilisables de
manière identique au niveau de l'interface du programme utilisateur.

Les actions suivantes peuvent être exécutées au moyen de commandes paramétrables :


● Lecture des informations de liaison
Les informations d'état vous permettent de décider, pour toutes les liaisons ou pour
certaines liaisons du CP, s'il est judicieux de réinitialiser des liaisons.
● Réinitialisation de liaisons configurées
Vous pouvez réinitialiser certaines liaisons ou toutes les liaisons d'un CP.
● Coupure d'une liaison active et nouvel établissement
● Lecture des types de liaison configurés dans le CP (extension par rapport à AC_CNTRL)
● Envoi de commandes PING (extension par rapport à AC_CNTRL)
Vous pouvez vérifier si un abonné défini du réseau est accessible.
Les commandes du bloc de programme AG_CNTEX sont autorisées seulement pour les
liaisons SEND/RECV qui utilisent les protocoles ISO / RFC / TCP / UDP.

Remarque
Disponibilité dans la bibliothèque de blocs
Si le bloc de programme AG_CNTEX n'est pas encore disponible dans la bibliothèque de
blocs SIMATIC_NET_CP, installez la dernière bibliothèque de blocs SIMATIC NET en date ;
vous la trouverez sur Internet sous le numéro d'article suivant :
8797900 (http://support.automation.siemens.com/WW/view/de/8797900)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 61
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Interface d'appel
Interface d'appel en représentation LOG

$*B&17(;

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

,17 &0' 5(68/7 ':25'

$1< 3,1* 5(68/7 ':25'

Exemple en représentation LIST

LIST Explication
call fb 10, DB10 ( //Appel du bloc AG_CNTEX
ACT := DB11.DBX0.0, //Lancement de la tâche
ID := DB11.DBW2, //ID de liaison selon configuration
LADDR := DB11.DBW4, //Adresse de module selon configuration matérielle
CMD := DB11.DBW6, //Identificateur de commande
PING := P#DB11.DBX8.0, //Zone de données avec données ping
DONE := DB11.DBX16.0, //Indication d'exécution
ERROR := DB11.DBX16.1, //Indication d'erreur
STATUS := DB11.DBW18, //Indication d'état
RESULT1 := DB11.DBD20, //Résultat 1 de la tâche
RESULT2 := DB11.DBD24); //Résultat 2 de la tâche

Blocs de programme pour CP S7 SIMATIC NET


62 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

2.3.2.2 Mode de fonctionnement de AG_CNTEX

Mode de fonctionnement
L'organigramme suivant montre un déroulement typique de tâches AG_CNTEX dans le
programme utilisateur. Vous trouverez plus loin un autre organigramme à titre d'exemple
pour les commandes ping.

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW
F\FOHGH&38

/
«Y«QHPHQWG«WHFW«MXVWLILHOD
FRXSXUHHWOHU«WDEOLVVHPHQW
G
XQHOLDLVRQ

$VVLJQHUGHVYDOHXUV¢
$*B&17(;SRXU
LQWHUURJDWLRQG
«WDW
$&7 &0' 
,'  OLDLVRQ

/
LQWHUURJDWLRQG
«WDWGHOD
(WDWGHODOLDLVRQ,' OLDLVRQHVWDFTXLWW«

$VVLJQHUGHVYDOHXUV¢
$*B&17(;SRXU
U«LQLWLDOLVDWLRQ
$&7 &0' 
,'  OLDLVRQ
$*B&17(; FRPPDQGHGH
U«LQLWLDOLVDWLRQ
$FTXLWWHPHQWG
DFFHSWDWLRQGH 5HTX¬WHGHU«LQLWLDOLVDWLRQHQ
W¤FKH FRXUV
5(68/7ಯ(WDEOLVVHPHQWGH /
LGHQWLILFDWHXUGHU«LQLWLDOLVD
OLDLVRQG«FOHQFK«ರ WLRQ ELWGDQV5(68/7 
HVWPLV¢
(QWU«HGHWDPSRQGHGLDJQRVWLF

/DOLDLVRQHVW«WDEOLH
$VVLJQHUGHVYDOHXUV¢ HWU«LQLWLDOLV«H
$*B&17(;SRXU /
LGHQWLILFDWHXU ELWGDQV
LQWHUURJDWLRQG
«WDW 5(68/7 UHVWH¢
$&7 &0' 
,'  OLDLVRQ
$*B&17(; LQWHUURJDWLRQ
G
«WDW
/
LQWHUURJDWLRQG
«WDWHVW
DFTXLWW«H
(WDWGHODOLDLVRQ,' O
LGHQWLILFDWHXUGHU«LQL
WLDOLVDWLRQ ELWGDQV
$FTXLWWHPHQW 5(68/7
HVWHQVXLWHUHPLV¢
5(68/7%+
ಯ5«LQLWLDOLVDWLRQH[«FXW«Hರ

7HPSV 7HPSV


7UDQVIHUWGHVSDUDPªWUHV'21((552567$786HW5(68/7

L'organigramme montre qu'on commence par interroger l'état de la liaison, puis que la
coupure de la liaison est ordonné au moyen d'une commande Reset dans une deuxième
tâche.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 63
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

À cette occasion, l'identificateur de réinitialisation est mis à 1 dans le CP (bit15 dans


RESULT1). Ceci permettra de reconnaître, lors d'une interrogation d'état ultérieure, si la
liaison avait été réinitialisée en raison d'une tâche Reset. Cet identificateur de réinitialisation
ne sera remis à 0 dans le CP qu'après une interrogation d'état ou par suite d'une commande
CN_CLEAR_RESET explicite.

Remarque
ACT doit être à 1 lors de l'appel du bloc. En cas d'appel avec ACT=0, la fonction n'est pas
appelée et le bloc est quitté immédiatement.
Le résultat de la tâche étant fourni de manière synchrone à l'appel du bloc AG_CNTEX, le
bloc peut être appelé de nouveau dans le même cycle.

2.3.2.3 Mode de fonctionnement de la fonction ping

Mode de fonctionnement / Séquence d'appel


La description ci-après indique comment utiliser les commandes CMD=8 et CMD=9 pour
lancer une commande ping.
La commande ping CMD=8 fait que le CP envoie successivement 4 requêtes ping sur le
réseau à l'adresse IP indiquée dans la tâche. Le CP attend l'écho de la commande ping
pendant le délai que vous avez défini dans le bloc de la tâche ping.
Le CP enregistre les temps de réponse et les inscrits dans les paramètres RESULT 1/2.
Les deux paramètres RESULT 1/2 peuvent être interrogés avec la commande ping CMD=9.
Dès que la réponse à la 4e requête ping a été reçue ou que le temps de surveillance défini a
été dépassé, l'exécution est confirmée dans le paramètre DONE=1. Le résultat ping peut
alors être interrogé durant au maximum 30 secondes ; après quoi les entrées de RESULT
sont périmées.

Remarque
Ping présuppose qu'une liaison a été configurée
La commande ping présuppose qu'au moins une liaison a été configurée pour l'interface
SEND/RECEIVE (TCP, ISO-on-TCP, ISO-Transport, UDP).

La figure ci-après présente l'organigramme typique d'une requête ping avec l'interrogation du
résultat ping correspondant.

Blocs de programme pour CP S7 SIMATIC NET


64 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

3URJUDPPHXWLOLVDWHXU &3(WKHUQHW 6WDWLRQDYHFDGUHVVH,3;<


F\FOHGH&38

$VVLJQHUGHVYDOHXUV¢$*B&17(;
SRXUUHTX¬WH3,1*
$&7 &0' ,' 
3,1* ,3 ;<7,0(287 PV

&DOO)%
3,1*;<
7LPHRXWHQFRXUV
PV
+5 
HU«FKR3,1*
$VVLJQHUGHVYDOHXUV¢$*B&17(;
SRXUUHTX¬WHGHU«VXOWDWV3,1* 3,1*;<
$&7 &0' 
7LPHRXWHQFRXUV
3,1* ,3 ;< PV
H«FKR3,1*
&DOO)%
+ 3,1*;<
7LPHRXWHQFRXUV
PV
H«FKR3,1*

3,1*;<
7LPHRXWHQFRXUV
PV
H«FKR3,1*

&DOO)%
+55 U«VXOWDW VPD[

([SORLWDWLRQGHVU«VXOWDWV3,1*
5(68/7 (FKR(FKR
5(68/7 (FKR(FKR

7HPSV 7HPSV 7HPSV


7UDQVIHUWGHVSDUDPªWUHV'21((552567$786HW5(68/7

Plusieurs requêtes ping simultanées


Vous pouvez envoyer jusqu'à 4 requêtes ping simultanément à différentes adresses IP.
Vous devez pour ce faire utiliser le même DB d'instance pour les requêtes PING. D'autres
requêtes ping ne sont ensuite possibles qu'après traitement d'au moins une des requêtes
ping en cours.
L'envoi simultané d'un nombre excessif de requêtes ping se solde par un message d'erreur
(paramètre STATUS = 828AH).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 65
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Quand le traitement des requêtes ping est-il achevé ?


Le traitement des requêtes ping est achevé dès que l'une des conditions suivantes est
remplie :
● le résultat ping a été lu ;
● le résultat ping n'a pas été lu mais plus de 30 secondes se sont écoulées depuis la mise
à disposition du résultat ping.

Réponses des CP SIMATIC NET aux télégrammes ICMP


Pour réduire l'activité des CP en réponse à des requêtes ping de l'AG_CNTEX, les CP
SIMATIC NET pour S7-300/S7-400 répondent au maximum dix fois en l'espace de 100
millisecondes à des télégrammes ICMP.

2.3.2.4 Explication des paramètres formels - AG_CNTEX

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction AG_CNTEX :

Paramètre Déclaration Type de Plage de valeurs Description


données
ACT INPUT BOOL 0, 1 Le FB doit être appelé par ACT=1.
En cas d'appel avec ACT=0, la fonction n'est pas
appelée et le bloc est quitté immédiatement.
ID INPUT INT  1, 2, .., n, Le paramètre ID spécifie le numéro de la liaison Vous
ou trouverez ce numéro de liaison dans la configuration. n
est le nombre maximal de liaisons et il dépend du
 0 produit (S7-300 ou S7-400).
Dans un appel s'adressant à toutes les liaisons, l'ID à
indiquer est l'ID 0. Ceci vaut pour :
 les fonctions CN_STATUS_ALL (CMD3) et
CN_RESET_ALL (CMD4)
 commande ping avec CMD 8 et CMD 9
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
CMD INPUT INT Commande adressée au FB AG_CNTEX
PING INPUT ANY Renvoi à un bloc de données (DB p. ex.) qui contient la
structure de données de la commande ping.
Le bloc de données contient l'adresse IP ainsi que
facultativement les indications de temps de
surveillance et de nombre d'octets à transmettre dans
la requête ping.
Voir Structure de données ci-après

Blocs de programme pour CP S7 SIMATIC NET


66 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Paramètre Déclaration Type de Plage de valeurs Description


données
DONE OUTPUT BOOL 0: Le paramètre d'état indique si la tâche a été exécutée
la tâche est encore en sans erreur.
cours ou pas encore Pour sa signification en corrélation avec les
lancée paramètres ERROR et STATUS, voir sous Indications
1: de AG_CNTEX (Page 67)
tâche exécutée Nota :
quand DONE=1, il est possible d'exploiter RESULT.
ERROR OUTPUT BOOL 0: pas d'erreur Indication d'erreur
1: Erreur Pour sa signification en corrélation avec les
paramètres DONE et STATUS, voir sous Indications
de AG_CNTEX (Page 67)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres DONE et ERROR, voir sous Indications de
AG_CNTEX (Page 67)
RESULT1 OUTPUT DWORD Retour conformément à la commande adressée à
AG_CNTEX.
RESULT2 OUTPUT DWORD Partie 2 du retour conformément à la commande
adressée à AG_CNTEX.

Bloc de données PING


Le paramètre PING renvoie à un bloc de données possédant la structure suivante :

Paramètre Type de données Plage de valeurs Nota


Adresse IP ARRAY [1..4] of byte
TIMEOUT INT 1..60000 ms Mention facultative ; valeur
par défaut = 1000 ms
Size INT 1..1000 octets Mention facultative ; valeur
par défaut = 32 octets

2.3.2.5 Indications de AG_CNTEX

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.
Il faut exploiter en outre les résultats des commandes dans les paramètres RESULT1/2
conformément à Commandes et résultats de la tâche - AG_CNTEX (Page 69).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 67
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

Tableau 2- 6 Indications de AG_CNTEX

DONE ERROR STATUS Signification


1 0 0000H Une tâche (CMD) a été transmise correctement au CP (par ex. RESET) ou un état a
été lu correctement sur le CP.
Les paramètres RESULT1/2 peuvent être exploités.
0 0 0000H Aucun appel du bloc n'a encore eu lieu ou le bloc de programme a été appelé avec
ACT=0.
0 0 8181H Tâche en cours.
L'appel du bloc doit être répété avec les mêmes paramètres jusqu'à ce que DONE ou
ERROR soit signalé.
0 1 8183H La configuration manque ou bien le service n'a pas encore été lancé sur le CP
Ethernet.
0 1 8184H Erreur système ou type de paramètre erroné. Cause possible :
 Le type de données du pointeur ANY pour le paramètre PING est incorrect.
 Le pointeur ANY renvoie à une adresse de bit impaire.
0 1 8186H Le paramètre ID n'est pas valable. L'ID admissible dépend de la commande
sélectionnée.
0 1 8187H Le paramètre CMD n'est pas valable.
0 1 8090H Significations possibles :
 Il n'existe pas de module possédant cette adresse de début ;
 Le bloc de programme utilisé n'est pas compatible avec la famille du système (il
faut utiliser des blocs de programme différents pour S7-300 et S7-400) ;
 La fonction n'est pas supportée par ce module.
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H L'adresse de début du module est erronée.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie Dans le
système H, la CPU associée se trouve à l'état STOP.
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Les ressources (mémoire) de la CPU sont temporairement occupées.
0 1 80C4H Erreur de communication.
L'erreur survient temporairement, une répétition dans le programme utilisateur est donc
judicieuse.
0 1 8286H La valeur pour l'indication "Timeout" dans le bloc de données PING est hors de la
plage des valeurs admissibles.
0 1 8287H L'adresse IP spécifiée dans le DB ping est réservée et donc illicite.
0 1 8288H L'indication n'apparaît que pour la commande PING d'interrogation de résultat.
Significations possibles :
 La commande ping n'a pas atteint l'adresse IP (parce que le CP a été arrêté après
l'envoi de la commande ping de requête p. ex.) ;
 Le résultat ping a déjà été lu ;
 Le résultat ping n'a pas été lu pendant le délai maximal de 30 secondes.

Blocs de programme pour CP S7 SIMATIC NET


68 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

DONE ERROR STATUS Signification


0 1 8289H Le volume de données de la requête ping dépasse la valeur maximale admissible
(maximum 1000 octets ; voir structure de données de la commande PING)
0 1 828AH 4 requêtes ping sont déjà en cours de traitement. De nouvelles requêtes pourront être
traitées qu'après traitement des requêtes en cours.
0 1 828BH Une requête PING est déjà en cours de traitement pour l'adresse IP spécifiée. Utilisez
la commande PING d'interrogation de résultat pour clore le traitement en cours.

2.3.2.6 Commandes et résultats de la tâche - AG_CNTEX

Commandes et exploitation des résultats de la tâche


Les tableaux suivants indiquent les commandes possibles et les résultats exploitables dans
les paramètres RESULT1/2.

Remarque
Exploitation des commandes des anciens types de CP ou anciennes versions de firmware
Les commandes décrites ci-après sont prises en charge par les types de CP et versions de
firmware actuels. Tenez compte des informations complémentaires sur Internet fournies
sous le numéro d'article ci-après :
33414377 (http://support.automation.siemens.com/ww/view/fr/33414377)

Tableau 2- 7 Commandes adressées au FC AG_CNTRL.

CMD Signification
0 NOP – no operation
Le bloc est parcouru sans qu'une tâche soit adressée au CP.
RESULT (pour CMD = 0) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H Déroulement sans erreur
RESULT2 0000 0000H Valeur par défaut

CMD Signification
1 CN_STATUS – connection status
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 69
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
RESULT1 0000 000*H Bits 0 à 3 : indications pour la direction d'émission
(valeurs exclues : 0x2)
Bit 0 Type de liaison
 0: pas de liaison d'émission ou de réception
 1: liaison réservée aux tâches d'émission et de
réception
Bit 1 Etat de la tâche actuelle
 0: pas de tâche d'émission en cours
 1: tâche d'émission en cours
Bits 2+3 Tâche précédente :
 00: aucune information disponible sur la tâche
d'émission précédente
 01: tâche d'émission précédente terminée sans erreur
 10: tâche d'émission précédente terminée avec erreur

CMD Signification
1 CN_STATUS – connection status (Suite pour CMD=1)
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit
RESULT1 0000 00*0H Bits 4 à 7 : indications pour la direction de réception
(valeurs exclues : 0x2)
Bit 4 Type de liaison
 0: pas de liaison d'émission ou de réception
 1: liaison réservée aux tâches d'émission et de
réception
Bit 5 Etat de la tâche actuelle
 0: pas de tâche de réception en cours
 1: tâche de réception en cours
Bits 6+7 Tâche précédente :
 00: aucune information disponible sur la tâche de
réception précédente
 01: tâche de réception précédente terminée sans
erreur
 10: tâche de réception précédente terminée avec
erreur

Blocs de programme pour CP S7 SIMATIC NET


70 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
1 CN_STATUS – connection status (Suite pour CMD=1)
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit
RESULT1 0000 0*00H Bits 8 à 11 : indications pour FETCH/WRITE
(valeurs exclues :0x3,0x7,0x8,0xB,0xF)
Bit 8 Type de liaison
 0: pas une liaison FETCH
 1: liaison réservée pour tâches FETCH
Bit 9 Type de liaison
 0: pas une liaison WRITE
 1: liaison réservée pour tâches WRITE
Bit 10 Etat de la tâche (FETCH/WRITE)
 0: Etat de la tâche OK
 1: Etat de la tâche NOT OK.
Cet identificateur est mis à 1 dans les cas suivants :
– La tâche a reçu un acquittement négatif de la
CPU.
– La tâche n'a pu être remise à la CPU, car la
liaison se trouvait à l'état "LOCKED".
– La tâche a été refusée, car l'en-tête
FETCH/WRITE n'était pas construit correctement.
Bit 11 Etat de la tâche FETCH/WRITE
 0: aucune tâche en cours
 1: une tâche de LAN en cours

CMD Signification
1 CN_STATUS – connection status (Suite pour CMD=1)
Cette commande fournit l'état de la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Si le bit 15 (identificateur de réinitialisation) était à 1, il est remis automatiquement à 0 (ce comportement
équivaut à la tâche CN_CLEAR_RESET - voir CMD = 5).
RESULT (pour CMD = 1) Valeur / signification
Paramètre Valeur hexa/plage Bit
RESULT1 0000 *000H Bits 12 à 15 : informations générales sur le CP
(valeurs exclues : 0x3,0xB)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 71
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
Bits 12 + 13 Informations sur l'état de liaison :
(disponibles seulement pour les liaisons SEND/RECV qui
utilisent les protocoles ISO/RFC/TCP ; pour UDP, les
informations internes correspondantes sont fournies)
 00 : la liaison est coupée
 01: La liaison est en cours d'établissement
 10: La liaison est en cours de coupure
 11: La liaison est établie
Bit 14 Informations sur le CP
 0: CP en STOP
 1: CP en RUN
Bit 15 Identificateur de réinitialisation
 0: AG_CNTEX n'a pas encore réinitialisé de liaison ou
le repère a été remis à 0.
 1: L'instruction AG_CNTEX a déclenché une
réinitialisation de liaison.
RESULT1 **** 0000H Bits 16 à 31 : réservés
0 – réservé à des extensions ultérieures
RESULT2 0000 0000H - réservé à des extensions ultérieures -

CMD Signification
2 CN_RESET – connection reset
Cette commande remet à 0 la liaison sélectionnée par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
La réinitialisation de la liaison provoque sa coupure et son rétablissement (actif ou passif, selon la
configuration). Les données reçues au moment de la coupure de la liaison mais pas encore réceptionnées par
le programme utilisateur sont effacées.
De plus, une entrée générée dans le tampon de diagnostic mentionne le résultat de la tâche.
RESULT (pour CMD = 2) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche Reset a été transmise correctement au CP.
La coupure de la liaison et le rétablissement suivant ont
été déclenchés.
0000 0002H La tâche Reset n'a pas pu être transmise au CP, car ce
service n'est pas démarré dans le CP (par ex. CP en
STOP).
RESULT2 0000 0000H Valeur par défaut

Blocs de programme pour CP S7 SIMATIC NET


72 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
3 CN_STATUS_ALL – all connections status
Cette commande fournit dans les paramètres RESULT1/2 (8 octets au total d'informations groupées) l'état de
toutes les liaisons (établie/coupée).
Le paramètre ID doit avoir la valeur "0" (il est testé à 0).
Le CP est sélectionné au moyen du paramètre LADDR.
Pour obtenir des informations de détail sur une liaison coupée ou non configurée, on peut lancer au besoin un
nouvel appel d'état avec CMD=1 et s'appliquant à la liaison en question.
RESULT (pour CMD = 3) Signification
Paramètre Valeur hexa/plage
RESULT1 **** ****H Pour chaque liaison :
32 bits valables comme suit :  0 - liaisons coupées / non configurées
 Pour S7-400 : bit 0-31 pour  1 - liaisons établies
liaison 1 - 32
 Pour S7-300 : bit 0-15 pour
liaison 1 - 16
RESULT2 **** ****H Pour chaque liaison :
32 bits valables comme suit :  0 - liaisons coupées / non configurées
 Pour S7-400 : bit 0-31 pour  1 - liaisons établies
liaison 33 - 64

CMD Signification
4 CN_RESET_ALL – all connections reset
Cette commande réinitialise toutes les liaisons.
Le paramètre ID doit avoir la valeur "0" (il est testé à 0).
Le CP est sélectionné au moyen du paramètre LADDR.
La réinitialisation des liaisons provoque leur coupure et leur rétablissement (actif ou passif, selon la
configuration). Les données reçues au moment de la coupure de la liaison mais pas encore réceptionnées par
le programme utilisateur sont effacées.
De plus, une entrée générée dans le tampon de diagnostic mentionne le résultat de la tâche.
RESULT (pour CMD = 4) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche Reset a été transmise correctement au CP. La
coupure de toutes les liaisons et leur rétablissement
suivant ont été déclenchés.
RESULT1 0000 0002H La tâche Reset n'a pas pu être transmise au CP, car ce
service n'est pas démarré dans le CP (par ex. CP en
STOP).
RESULT2 0000 0000H Valeur par défaut

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 73
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
5 CN_CLEAR_RESET – remise à 0 de l'identificateur de réinitialisation
Cette commande remet à 0 l'identificateur de réinitialisation (bit 15 dans RESULT1) pour la liaison sélectionnée
par ID.
Le CP est sélectionné au moyen du paramètre LADDR.
Cette tâche s'exécute aussi automatiquement à la lecture de l'état de la liaison (CMD=1) ; la tâche décrite ici,
qui peut être lancée séparément, n'est donc nécessaire que dans des cas spéciaux.
RESULT (pour CMD = 5) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche Clear a été transmise correctement au CP.
RESULT1 0000 0002H La tâche Clear n'a pas pu être transmise au CP, car ce
service n'est pas démarré dans le CP (par ex. CP en
STOP).
RESULT2 0000 0000H Valeur par défaut

CMD Signification
6 CN_DISCON − connection disconnect
Cette commande remet à zéro la liaison sélectionnée par ID et LADDR.
La remise à zéro de la liaison est obtenue par sa coupure.
Les données éventuellement mémorisées dans la pile sont alors perdues sans avis préalable. Ensuite, la
liaison n'est pas rétablie automatiquement. Elle peut être établie de nouveau au moyen de la tâche Control
CN_STARTCON. L'entrée générée dans le tampon de diagnostic mentionne le résultat de la tâche.
RESULT (pour CMD = 6) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche a été transmise correctement au CP. La
coupure de la liaison a été engagée.
RESULT1 0000 0002H La tâche n'a pas pu être transmise au CP, car ce service
n'est pas démarré dans le CP (par ex. CP en STOP).
RESULT2 0000 0000H Valeur par défaut

CMD Signification
7 CN_STARTCON − start connection
Cette commande établit une liaison qui a été sélectionnée avec ID et LADDR et coupée auparavant au moyen
de la tâche Control CN_DISCON. L'entrée générée dans le tampon de diagnostic mentionne le résultat de la
tâche.
RESULT (pour CMD = 7) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H La tâche d'établissement de liaison a été transmise
correctement au CP. L'établissement de la liaison a été
engagé.
RESULT1 0000 0002H La tâche d'établissement de liaison n'a pas pu être
transmise au CP, car ce service n'est pas démarré dans
le CP (par ex. CP en STOP).
RESULT2 0000 0000H Valeur par défaut

Blocs de programme pour CP S7 SIMATIC NET


74 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.3 Blocs de programme pour diagnostic des liaisons et diagnostic système

CMD Signification
8 PING_REQUEST - Envoi d'une requête ping
Cette commande envoie une requête ping au CP. A la suite de quoi le CP envoie 4 requêtes d'écho ping à
l'adresse IP spécifiée.
RESULT (pour CMD = 8) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 0001H Les requêtes ping ont été transmises avec succès au CP.
RESULT2 0000 0002H La requête ping n'a pas pu être remise au CP car le
service requis du CP n'était pas accessible.
Cause possible : CP en mode STOP.

CMD Signification
9 PING_RESULT - Interrogation des résultats ping
Cette commande envoie une interrogation de résultats ping au CP. Le CP transmet les résultats des 4
requêtes d'écho ping dans le paramètre RESULT.
L'appel n'est réussi que si le CP a achevé le traitement des 4 requêtes d'écho ping.
RESULT (pour CMD = 9) Signification
Paramètre Valeur hexa/plage
RESULT1 **** ****H 1. Mot :
temps de réponse en ms à la 1ère requête d'écho ping.
2. Mot :
temps de réponse en ms à la 2ème requête d'écho ping.
Exemple :
0005 FFFFH
Echo 1 -> reçu au bout de 5 ms
Echo 2 -> pas d'écho pendant le timeout défini
RESULT2 **** ****H 1. Mot :
temps de réponse en ms à la 3ème requête d'écho ping.
2. Mot :
temps de réponse en ms à la 4ème requête d'écho ping.
Exemple :
0002 3456H
Echo 3 -> reçu au bout de 2 ms
Echo 4 -> reçu au bout de 13398 ms
Plages de valeur pour mots de données dans RESULT1 / RESULT 2 :
0000H inutilisé
0001H ... EA60H Temps de réponse en ms
0001H = 1 ms
EA60H = 60000 ms
EA61H ... FFFEH inutilisé
FFFFH Timeout : pas d'écho durant le timeout défini.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 75
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

CMD Signification
10 CONN_TYPE - Type de liaison
Cette commande demande au CP de spécifier le type de liaison actuel pour l'ID de liaison indiqué.
RESULT (pour CMD = 10) Signification
Paramètre Valeur hexa/plage
RESULT1 0000 000*H La requête délivre pour les types de liaisons possibles les
valeurs suivantes :
0: pas de liaison configurée
1 : liaison UDP
2 : liaison SMTP
3 : liaison TCP
4 : liaison UDP libre
5 : liaison FTP
6 : liaison transport ISO
7 : liaison ISO-on-TCP
RESULT2 0000 0000H Valeur par défaut

Voir aussi
Tenez compte des informations complémentaires dans les FAQ sous le numéro d'article ci-
après : 33414377 (http://support.automation.siemens.com/ww/view/fr/33414377)

2.4 Blocs de programme pour services FTP

2.4.1 Généralités sur FTP

Blocs FB / FC pour services FTP (client FTP)


La liste ci-après indique les blocs de programme disponibles pour les services client FTP.

Remarque
Veuillez noter que les services client FTP ne peuvent pas être exécutés par les anciennes
CPU SIMATIC S7-300, p. ex. par les CPU 312 ou CPU 315-1AF01, parce qu'elles ne
prennent pas en charge le SFC 24.
En cas d'utilisation de FC40 - FC44 avec un S7-300 : Le CP a besoin pour exécuter les FC
FTP du FC5 (AG_SEND) fourni ; le FC5 ne peut pas être renommé dans cette application.

Blocs de programme pour CP S7 SIMATIC NET


76 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Bloc de programme utilisable pour Signification


S7-300 S7-400
FTP_CMD (FB40) ● ● Exécution intégrale de séquences de tâche FTP.

FTP_CONNECT ● ● Etablissement d'une liaison FTP du client au serveur.


(FC40)
FTP_STORE (FC41) ● ● Transmission d'un DB du client au serveur.
FTP_RETRIEVE ● ● Transmission d'un fichier du serveur au client.
(FC42)
FTP_DELETE (FC43) ● ● Effacement d'un fichier sur le serveur.
FTP_QUIT (FC44) ● ● Coupure d'une liaison établie par ID.

Utilisation des blocs de programme


Sur les types de CP récents utilisez de préférence le FB40. En cas de besoin et s'ils sont
disponibles dans la bibliothèque STEP 7, vous pouvez utiliser à titre de remplacement les
FC40...FC44.

Condition - liaison FTP configurée


Pour exécuter une séquence de tâche FTP entre une station S7 comme client FTP et un
serveur FTP, vous devez configurer une liaison FTP. Configurez d'abord pour ce faire une
liaison TCP non spécifiée avec l'attribut "utiliser protocole FTP".

Voir aussi
Migration de FC 40-44 vers FTP_CMD (Page 87)

2.4.2 FTP_CMD - bloc de programme universel pour services FTP

2.4.2.1 Signification et appel - FTP_CMD

Signification
Le bloc FB40 permet d'établir des liaisons FTP et de transmettre des fichiers depuis et vers
un serveur FTP.
Le FB40 remplace les fonctions FTP FC40 à FC44 utilisées jusqu'ici. Dans le FB40, les
différences entre ces fonctions sont reproduites au moyen d'un paramètre de commande.
Le FB40 présente les avantages suivants :

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 77
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

● simplification dans le programme utilisateur : l'exécution est commandée par une variable
et ne demande plus différents appels de fonction ;
● fonction supplémentaire "APPEND"
"APPEND" permet d'ajouter des données à un fichier existant ;
● fonction supplémentaire "RETR_PART"
"RETR_PART" permet de lire des zones de données sélectivement dans un fichier.
● Fonction complémentaire "CONNECT_TLS_PRIVATE"
"CONNECT_TLS_PRIVATE" permet d'établir des liaisons sécurisées SSL
● La fonction AG_SEND (FC5) n'est pas nécessaire au traitement.

Validité
Le FB40 peut être employé à partir des types de module suivants :
● A partir du CP 343-1 Advanced (GX30* / GX31)
● A partir du CP 443-1 Advanced (GX20* / GX30)
*) La fonction "CONNECT_TLS_PRIVATE" n'est pas utilisable.

Interface d'appel
Interface d'appel en représentation LOG

)73B&0'

,17 ,' '21( %22/

:25' /$''5 (5525 %22/

%<7( &0' 67$786 :25'

$1< 1$0(B675

,17 ),/(B'%B15

':25' 2))6(7

':25' /(1

Exemple d'appel en représentation LIST

Blocs de programme pour CP S7 SIMATIC NET


78 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

LIST Explication
CALL FB 40, DB 40 ( // Appel du bloc
ID := 4, // ID de liaison FTP selon configuration
LADDR := W#16#3FFD, // Adresse de module selon configuration
CMD := B#16#3, // La commande FTP à exécuter
NAME_STR := P#DB44.DBX 170.0 BYTE 220, // Adresse et longueur de la zone de données cible
FILE_DB_NR := 42, // Numéro du bloc de données
OFFSET := DW#16#0, // (sans signification dans l'exemple)
LEN := DW#16#0, // (sans signification dans l'exemple)
DONE := M 420.1, // Paramètre d'état
ERROR := M 420.2, //Indication d'erreur
STATUS := MW 422); //Indication d'état

Fonctions système appelées


Les fonctions système suivantes sont appelées depuis le bloc de programme FTP_CMD :
SFC 1, SFC 20, SFC 24, SFC 58, SFC 59

Remarque
Veuillez noter que les anciennes CPU SIMATIC S7-300, par ex. CPU 312 ou CPU 315-
1AF01, ne peuvent pas exécuter les services client FTP puisqu'elles ne supportent pas le
SFC 24.

2.4.2.2 Paramètres d'entrée - FTP_CMD

Explication des paramètres d'entrée


Vous devez valoriser les paramètres d'entrée suivants dans chaque appel du bloc FTP :

Tableau 2- 8 Paramètres formels du FB40 (FTP_CMD) - paramètres d'entrée

Paramètre Déclaration Type Plage de valeurs Signification / remarque


ID INPUT INT Pour S7-300 : 1, Les tâches FTP sont exécutées via des
2...16 liaisons FTP. Ce paramètre identifie la liaison
Pour S7-400 : 1, utilisée.
2...64
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7,
l'adresse de début du module s'affiche.
Indiquez cette adresse ici.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 79
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Paramètre Déclaration Type Plage de valeurs Signification / remarque


CMD INPUT BYTE Voir tableau ci- Commandes FTP exécutées avec l'appel du
dessous - FB 40. Vous trouverez plus d'informations à la
Commandes FTP suite de ce tableau.
dans le paramètre Quand une commande n'est pas supportée par
"CMD" le firmware du CP, un message d'erreur le
signale avec STATUS = 8F6BH.
Exemples de commandes FTP :
 RETRIEVE : B#16#3
 CONNECT_TLS_PRIVATE : B#16#11
NAME_STR INPUT ANY Seul "BYTE" est L'adresse indiquée renvoie à une zone de bloc
autorisé comme de données. Il faut indiquer ici l'adresse et la
VARTYPE. longueur de la zone de données dans laquelle
sont écrites les indications de cible.
 Pour CMD = 1, 17 :

pour cette commande, le paramètre


"NAME_STR" spécifie le serveur FTP à
adresser avec la liaison FTP, à l'aide des
attributs suivants :
- adresse IP du serveur FTP
- nom d'utilisateur
- mot de passe pour la connexion

Il faut indiquer ces valeurs en trois chaînes


de caractères consécutives dans la zone
cible du pointeur ANY.
 Pour CMD = 2, 3, 4, 6, 7 :

pour ces commandes, le paramètre


"NAME_STR" spécifie le nom de fichier sur
le serveur FTP, c.-à-d. la source ou la cible
des données. Il faut indiquer ce nom de
fichier comme chaîne de caractères dans la
zone cible du pointeur ANY.
 Pour CMD = 5 : paramètre insignifiant.
Vous trouverez des exemples de contenus ci-
dessous.
FILE_DB_NR INPUT INT Le bloc de données indiqué ici contient le DB
de fichier à lire ou à écrire.
Ce paramètre n'a de signification que pour
CMD = 2, 3, 6 et 7.

Blocs de programme pour CP S7 SIMATIC NET


80 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Paramètre Déclaration Type Plage de valeurs Signification / remarque


OFFSET INPUT DWORD Seulement pour CMD = 7 :
décalage en octets à partir duquel le fichier est
à lire.
LEN INPUT DWORD Seulement pour CMD = 7 :
longueur partielle, nombre d'octets lus à partir
de la valeur indiquée par "OFFSET".
Particularités :
 Avec "DW#16#FFFFFFFF", c'est le reste
disponible du fichier qui est lu.

Résultat OK (DONE = 1, STATUS = 0) si


aucune autre erreur ne survient.
 Quand OFFSET > longueur du fichier
d'origine :

La longueur du fichier cible est indiquée


dans ce cas comme suit dans le paramètre
ACT_LENGTH du DB de fichier : 0 octet
dans la CPU.

Résultat OK (DONE = 1, STATUS = 0) si


aucune autre erreur ne survient.
 Quand OFFSET + LEN > longueur du
fichier d'origine (et LEN ≠ 0xFFFFFFFF) :

La longueur du fichier cible est indiquée


dans ce cas comme suit dans le paramètre
ACT_LENGTH du DB de fichier : octets
disponibles à partir de "OFFSET".

Résultat OK (DONE = 1, STATUS = 0) si


aucune autre erreur ne survient.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 81
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Commandes FTP dans le paramètre "CMD"


Le tableau suivant donne la signification des commandes du paramètre "CMD" et indique les
paramètres d'entrée à valoriser dans chaque cas. Les paramètres ID et LADDR doivent
toujours être positionnés pour identifier la liaison.

Tableau 2- 9 Commandes FTP dans le paramètre "CMD"

CMD Paramètres d'entrée Signification / maniement


significatifs (en plus de ID
et LADDR)
0 (NOOP) - Le FC appelé n'exécute aucune action. Avec cette valeur du
paramètre, les indications d'état sont les suivantes :
 DONE=1 ; ERROR=0 ; STATUS=0
1 (CONNECT) NAME_STR Par cette commande, le client FTP établit une liaison FTP à un
serveur FTP (port 21).
Cette liaison est disponible pour toutes les autres commandes FTP
sous l'ID de liaison attribuée ici. Des données sont alors échangées
avec le serveur FTP spécifié pour cet utilisateur.
2 (STORE) NAME_STR Avec cet appel de fonction, un bloc de données (DB de fichier) est
FILE_DB_NR transmis du client FTP (CPU S7) au serveur FTP.
Attention : si le fichier (DB de fichier) existe déjà sur le serveur FTP, il
sera écrasé.
3 (RETRIEVE) NAME_STR Avec cet appel de fonction, un fichier est transmis du serveur FTP au
FILE_DB_NR client FTP (CPU S7).
Attention : si le bloc de données (DB de fichier) sur le client FTP
contient déjà un fichier, il sera écrasé.
4 (DELETE) NAME_STR Avec cet appel de fonction, vous supprimez un fichier sur le serveur
FTP.
5 (QUIT) - Avec cet appel de fonction, vous coupez la liaison FTP désignée par
l'ID.
6 (APPEND) NAME_STR De manière analogue à "STORE", la commande "APPEND" (ajouter)
FILE_DB_NR stocke un fichier sur le serveur FTP. Mais avec "APPEND", le fichier
existant sur le serveur FTP n'est pas écrasé, le nouveau contenu à
mémoriser s'y ajoute.
Si le fichier n'existe pas sur le serveur FTP, il est créé.

Blocs de programme pour CP S7 SIMATIC NET


82 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

CMD Paramètres d'entrée Signification / maniement


significatifs (en plus de ID
et LADDR)
7 (RETR_PART) NAME_STR Avec la commande "RETR_PART" (lire une partie), vous pouvez
FILE_DB_NR demander un extrait d'un fichier se trouvant sur le serveur FTP.
OFFSET Avec les fichiers très volumineux, ceci vous permet de restreindre la
LEN lecture à la partie dont vous avez besoin.
Pour cela, vous devez connaître la structure du fichier.
Indiquez l'extrait souhaité à l'aide des deux paramètres "OFFSET" et
"LEN" du FB 40.
17 (CONNECT_TLS_ NAME_STR Par la commande " CONNECT_TLS_PRIVATE", le client FTP établit
PRIVATE) une liaison FTP sécurisée SSL (FTPS) à un serveur FTP (port 21).
Les données de la liaison de contrôle tout comme la liaison de
données sont sécurisées.
Cette liaison est disponible pour toutes les autres commandes FTP
sous l'ID de liaison attribuée ici. Des données sont alors échangées
avec le serveur FTP spécifié pour cet utilisateur.
Conditions :
 Les options de sécurité des données doivent être activées sur le
CP.
 Des certificats doivent être fournis dans la configuration du CP
pour la liaison FTP sécurisée par SSL.

Exemples de contenus du paramètre "NAME_STR"


Cet enregistrement de paramètre a les contenus suivants :

Tableau 2- 10 Contenu de l'enregistrement de paramètre pour CMD = 1, 17

Adresse Nom Type 1) Exemple Signification


relative 2)
0.0 ip_address STRING[100] ’142.11.25.135’ Adresse IP du serveur FTP.
102.0 username STRING[32] 'utilisateur' Nom d'utilisateur pour la connexion
au serveur FTP.
136.0 password STRING[32] 'mot_de_passe' Mot de passe pour la connexion au
serveur FTP.
1) La longueur de chaîne indiquée est la longueur maximale respective.
2) Les valeurs indiquées se rapportent aux longueurs de chaîne indiquées sous "Type".

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 83
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Tableau 2- 11 Contenu de l'enregistrement de paramètre pour CMD = 2, 3, 4, 6, 7

Adresse Nom Type 1) Exemple Signification


relative 2)
170.0 filename STRING[220] 'install1/chaudiere2/pression.da Nom du fichier source ou cible
ou t' Nota :
STRING[212] Lorsque CMD=7 (RETR_PART), la
longueur du nom de fichier est
limitée à 212 caractères.
1) La longueur de chaîne indiquée est la longueur maximale respective.
2) Les valeurs indiquées se rapportent aux longueurs de chaîne indiquées sous "Type".

2.4.2.3 Paramètres de sortie et informations d'état - FTP_CMD

Introduction
Pour exploiter l'état, il faut exploiter les paramètres suivants dans le programme utilisateur :

Tableau 2- 12 Paramètres formels du FB40 (FTP_CMD) - paramètres de sortie

Paramètre Déclaration Type Plage de valeurs Signification / remarque


DONE OUTPUT BOOL 0: - Le paramètre d'état indique si la
1 : tâche exécutée tâche a été exécutée sans erreur.
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Ce paramètre signale quand la
tâche n'a pas pu être exécutée
correctement.
STATUS OUTPUT WORD Voir le tableau ci-après Indication d'état
Ce paramètre donne des
informations détaillées sur
l'exécution de la tâche.

Les paramètres DONE, ERROR et STATUS sont mis à jour à chaque appel du bloc.

Exemple
Durant l'exécution d'une tâche, le FB 40 fournit les indications suivantes :
● DONE=0
● ERROR=0
● STATUS=8181H
Signification : la tâche est encore en cours.

Blocs de programme pour CP S7 SIMATIC NET


84 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Exploiter les indications d'état

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez consulter également
le manuel de référence STEP 7 "Fonctions système et fonctions standard". Vous y trouverez
des informations au chapitre "Evaluation d'erreur avec le paramètre de sortie RET_VAL".

Tableau 2- 13 FB 40 : signification du paramètre STATUS en collaboration avec DONE et ERROR

DONE ERROR STATUS Signification


0 0 0000H Pas de tâche en cours.
1 0 0000H Tâche terminée sans erreur.
0 0 8181H Tâche en cours.
Indication continue de 8181H :
le CP n'est pas validé pour le bloc FB 40 (une commande CMD 6,
CMD 7 ou CMD 17 illicite pour la version du firmware a été appelée).
0 1 8090H  Il n'existe pas de module possédant cette adresse de début.
 Le bloc utilisé n'est pas compatible avec la famille du système (il
faut utiliser des blocs différents pour S7-300 et S7-400).
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H L'indication de type dans le pointeur ANY est différente de Byte.
0 1 80A4H La liaison de bus de communication entre CPU et CP n'est pas établie
(pour les nouvelles versions de CPU).
Ceci peut être dû, par exemple :
 à un manque de configuration des liaisons
 au dépassement du nombre maximal de CP exploitables en
parallèle
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H Zone cible incorrecte ;
par ex. zone cible > 240 octets.
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie
(pour les anciennes versions de CPU).
(Pour les nouvelles versions de CPU, voir 80A4H)
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement; une répétition
dans le programme utilisateur est donc judicieuse).
0 1 80D2H L'adresse de début du module est erronée.
0 1 8183H La configuration ne correspond pas aux paramètres de la tâche.
0 1 8184H Un type de données illicite a été spécifié pour le paramètre
NAME_STR.
0 1 8186H Paramètre ID non valable. ID = 1, 2....64

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 85
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

DONE ERROR STATUS Signification


0 1 8302H Aucune ressource de réception disponible sur la station cible.
0 1 8F22H Zone source incorrecte ; par exemple :
zone inexistante dans le DB
0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop
court).
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB
0 1 8F3AH Zone non chargée (DB).
0 1 8F50H DB de fichier, DB 0 ou DB inexistant
0 1 8F51H DB de fichier, zone de données spécifiée plus grande que la zone
existante
0 1 8F52H DB de fichier en mémoire à lecture seule
0 1 8F53H Longueur maxi du DB de fichier < longueur réelle
0 1 8F54H Le DB de fichier ne contient pas de données valides.
0 1 8F55H Bit d'état d'en-tête : Locked
0 1 8F56H Le bit NEW dans l'en-tête du DB de fichier n'a pas été remis à zéro.
0 1 8F57H Le client FTP n'a pas le droit d'écrire dans le DB de fichier, mais
seulement le serveur FTP (bit d'état d'en-tête : WriteAccess).
0 1 8F60H Données utilisateur incorrectes, par ex. adresse IP du serveur FTP
incorrecte
0 1 8F61H Accès au serveur FTP impossible
0 1 8F62H Significations possibles :
 La tâche n'est pas supportée par le serveur FTP ou elle est
refusée.
 Le serveur FTP ne prend pas en charge de liaisons sécurisées
SSL.
0 1 8F63H Le transfert du fichier a été abandonné par le serveur FTP.
0 1 8F64H Erreur sur la liaison de contrôle FTP ; les données n'ont pas pu être
émises ou reçues ; après une telle erreur, il faut établir de nouveau la
liaison de contrôle FTP.
0 1 8F65H Erreur sur la liaison de données FTP ; les données n'ont pu être
émises ou reçues. Il faut appeler la tâche de nouveau.
L'erreur peut être due, par ex. avec la fonction RETRIEVE (CMD=3),
au fait que le fichier concerné est déjà ouvert sur le serveur FTP.
0 1 8F66H Erreur à la lecture/écriture des données de/sur la CPU (par ex. DB
inexistant ou trop petit).
0 1 8F67H Erreur dans le client FTP sur le CP ; par ex. lors d'une tentative
d'ouverture d'un nombre de liaisons FTP supérieur au nombre max.
possible.
0 1 8F68H La tâche a été refusée par le client FTP.
L'erreur peut être due, par ex. avec la fonction RETRIEVE (CMD=3),
au fait que la valeur du paramètre MAX_LENGTH a été choisie trop
petite dans l'en-tête du DB de fichier.

Blocs de programme pour CP S7 SIMATIC NET


86 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

DONE ERROR STATUS Signification


0 1 8F69H La liaison FTP se trouve dans un état incorrect, par ex. :
 La liaison est appelée sans avoir été coupée auparavant (avec la
même ID de liaison).
 La liaison est coupée alors qu'elle l'était déjà.
 Une commande STORE est émise sur une liaison non établie.
0 1 8F6AH La liaison n'a pas pu être établie en raison d'un manque temporaire de
ressources.
Solution : répéter l'appel du bloc.
0 1 8F6BH Causes possibles :
 Valeur erronée du paramètre CMD
 Une commande du FB 40 n'est pas supportée.

Cause possible : firmware incorrect du CP


Solution : mise à jour du firmware (avec les anciens CP, utiliser les
fonctions FC 40 à FC 44 au lieu du FB 40).
0 1 8F6CH Une valeur > 7FFF FFFH a été indiquée dans le paramètre OFFSET.
0 1 8F6DH Le client FTP ne prend pas en charge de liaisons sécurisées SSL.
0 1 8F6EH La signature du certificat n'est pas valide.
0 1 8F6FH Causes possibles :
 Dans le certificat, la mention de date/heure "notBefore" contient
une valeur non valide.
 Le certificat n'est pas valide : l'entrée "notBefore" contient une
date/heure postérieure à la date/heure actuelle.
0 1 8F70H Causes possibles :
 Dans le certificat, la mention de date/heure "notAfter" contient une
valeur non valide.
 Le certificat n'est pas valide : l'entrée "notAfter" contient une
date/heure antérieure à la date/heure actuelle.
0 1 8F71H Le certificat d'émetteur d'un certificat non digne de confiance est
introuvable
0 1 8F72H Le certificat CA d'origine n'est pas valide. Soit il ne s'agit pas d'un
certificat CA, soit ses extensions ne sont pas compatibles avec le but
recherché.
0 1 8F73H Le certificat CA d'origine n'est pas identifié comme digne de confiance
pour le but recherché.
0 1 8F74H Des erreurs diverses sont survenues lors de la vérification du certificat.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.

2.4.2.4 Migration de FC 40-44 vers FTP_CMD

Comparaison du bloc fonctionnel FB40 avec les anciennes fonctions FC40 à 44


Tous les CP à fonctionnalités FTP supportent les fonctions FC40 à 44. Il n'est donc pas
nécessaire de modifier les programmes utilisateur existants.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 87
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Mais si vous souhaitez passer des fonctions FTP FC40 à 44 au bloc fonctionnel FB40, vous
devrez modifier votre programme utilisateur.
Le tableau suivant indique quelles commandes du FB40 correspondent aux fonctions FC40
à 44.
● Les équivalences sont marquées d'un "X".
● Les disparités sont marquées d'un "-".

Commandes du paramètre "CMD" du bloc FTP_CMD


Anciennes CMD = 1 CMD = 2 CMD = 3 CMD = 4 CMD = 5 CMD = 6
fonctions FTP CMD = 7
FC40 à 44 CMD = 17
FC40 X 1)
FC41 X 2)
FC42 X 3)
FC43 X 4)
FC44 X
-

1)...4) Les paramètres des FC 40 à 43 et de CMD 1 à 4 (FB 40) ne sont pas identiques

(voir tableau ci-après).

Le tableau suivant énumère les paramètres qui spécifient la fonction respective dans les
FC40 à FC43 et dans les commandes du FB40.

Paramètre du FC Paramètre du FTP_CMD (avec CMD 1 à 4)


FC40 : LOGIN → CMD = 1 : NAME_STR
FC41 : FILE_NAME → CMD = 2 : NAME_STR
FC42 : FILE_NAME → CMD = 3 : NAME_STR
FC43 : FILE_NAME → CMD = 4 : NAME_STR
FC40 à 43 : BUFFER_DB_NR → néant (remplacé par DB d'instance)

2.4.3 FTP_CONNECT

2.4.3.1 Signification et appel - FTP_CONNECT

Signification
Par l'appel de cette fonction, le client FTP établit une liaison FTP à un serveur FTP.

Blocs de programme pour CP S7 SIMATIC NET


88 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Pour cela, il faut communiquer au serveur FTP l'adresse IP, le nom d'utilisateur (username)
et (si nécessaire) le mot de passe associé au nom d'utilisateur.
Le client FTP exécutera tous les autres accès sur la base de ce nom d'utilisateur lorsque
vous utiliserez la même ID de liaison FTP. Des données sont alors échangées avec le
serveur FTP spécifié pour cet utilisateur.

Interface d'appel

)73B&211(&7

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< /2*,1

,17 %8))(5B'%B15

Exemple d'appel en représentation LIST

LIST Explication
call fc40 ( //Appel de FTP_CONNECT
ACT := M 420.0, // Lancement du contrat par bit de mémento
ID := 4, //ID de liaison FTP selon configuration
LADDR := W#16#3FFD, // Adresse de module selon configuration
LOGIN := P#DB40.DBX 0.0 BYTE 170, //Indication du LOGIN dans DB 40
BUFFER_DB_NR := 9, // Zone tampon pour le service FTP
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

2.4.3.2 Explication des paramètres formels - FTP_CONNECT

Explication des paramètres d'appel généraux


Les paramètres généraux ont la même signification pour tous les appels de fonction FTP ; ils
sont donc tous décrits dans un seul paragraphe.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 89
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Explication des paramètres formels spécifiques à un appel

Tableau 2- 14 Paramètres formels pour FTP_CONNECT

Paramètre Déclaration Type de Description


données
LOGIN INPUT ANY Ce paramètre spécifie le serveur FTP à adresser via la liaison FTP
(seul autorisé (pour plus de détails, voir le tableau ci-après).
comme Il faut indiquer ici l'adresse et la longueur de la zone de données dans
VARTYPE : laquelle sont écrites les indications de cible.
BYTE) L'adresse indiquée renvoie à une zone de bloc de données.
C'est le type de données Pointeur ANY qui est utilisé pour adresser
cette zone. Pour plus d'informations sur ce type de données, veuillez
vous référer à l'aide en ligne de STEP 7, rubrique "Format du type de
paramètre ANY".
BUFFER_DB_NR INPUT INT Indiquez ici un bloc de données qui sert au client FTP de zone
tampon pour le transfert FTP.
Vous pouvez utiliser le même bloc de données comme zone tampon
pour toutes les tâches FTP.
Nota :
la longueur du DB réservé à cet effet doit être d'au moins 255 octets !

Paramètre LOGIN
Cet enregistrement de paramètre a le contenu suivant pour FTP_CONNECT :

Adresse Nom Type 1) Exemple Signification


relative 2)
0.0 ip_address STRING[100] '142.11.25.135' Adresse IP du serveur FTP.
102.0 username STRING[32] 'utilisateur' Nom d'utilisateur pour la connexion au
serveur FTP.
136.0 password STRING[32] 'mot_de_passe' Mot de passe pour la connexion au
serveur FTP.
170.0 filename STRING[220] 'install1/chaudiere2/pression.dat' Nom du fichier source ou cible 3)
1) La longueur de chaîne indiquée est la longueur maximale possible
2) Les valeurs indiquées se rapportent aux longueurs de chaîne indiquées sous "Type".
3) Ces lignes sont sans signification pour cet appel.

Blocs de programme pour CP S7 SIMATIC NET


90 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.4 FTP_STORE

2.4.4.1 Signification et appel - FTP_STORE

Signification
Avec cet appel de fonction, un bloc de données (DB de fichier) est transmis du client FTP
(CPU S7) au serveur FTP.
Pour cela, vous devez indiquer le bloc de données qui contient le fichier. Il faut préciser
également le nom de chemin et de fichier sous lequel créer le fichier sur le serveur FTP.
Si le fichier (DB de fichier) existe déjà sur le serveur FTP, il sera écrasé.

Interface d'appel
FTP_STORE

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

ANY FILE_NAME

INT BUFFER_DB_NR

INT FILE_DB_NR

Exemple d'appel en représentation LIST

LIST Explication
call fc41 ( //Appel de FTP_STORE
ACT := M 420.0, // Lancement du contrat par bit de mémento
ID := 4, // ID de liaison FTP selon configuration
LADDR := W#16#3FFD, // Adresse de module selon configuration
FILE_NAME := P#DB40.DBX 170.0 BYTE 220, // Indication du fichier cible dans DB 40
BUFFER_DB_NR := 9, // Zone tampon pour le service FTP
FILE_DB_NR := 42, // N° de DB du fichier source
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 91
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.4.2 Explication des paramètres formels - FTP_STORE

Explication des paramètres d'appel généraux


Les paramètres généraux ont la même signification pour tous les appels de fonction FTP ; ils
sont donc tous décrits dans un seul paragraphe.

Explication des paramètres formels spécifiques à un appel

Tableau 2- 15 Paramètres formels pour FTP_STORE

Paramètre Déclaration Type de données Description


FILE_NAME INPUT ANY Ce paramètre spécifie la cible des données
(seul autorisé (pour plus de détails, voir le tableau ci-après).
comme VARTYPE Il faut indiquer ici l'adresse et la longueur de la zone de
: données dans laquelle sont écrites les indications de cible.
BYTE) L'adresse indiquée renvoie à une zone de bloc de données.
C'est le type de données Pointeur ANY qui est utilisé pour
adresser cette zone. Pour plus d'informations sur ce type de
données, veuillez vous référer à l'aide en ligne de STEP 7,
rubrique "Format du type de paramètre ANY".
BUFFER_DB_NR INPUT INT Indiquez ici un bloc de données qui sert au client FTP de zone
tampon pour le transfert FTP.
Vous pouvez utiliser le même bloc de données comme zone
tampon pour toutes les tâches FTP.
Nota :
la longueur du DB réservé à cet effet doit être d'au moins 255
octets !
FILE_DB_NR INPUT INT Le bloc de données indiqué ici contient le DB de fichier à lire.

Paramètre FILE_NAME
Cet enregistrement de paramètre a le contenu suivant pour FTP_STORE :

Adresse Nom Type 1) Exemple Signification


relative 2)
0.0 ip_address STRING[100] '142.11.25.135' Adresse IP du serveur FTP. 3)
102.0) username STRING[32] 'utilisateur' Nom d'utilisateur pour la connexion au
serveur FTP. 3)
136.0 password STRING[32] 'mot_de_passe' Mot de passe pour la connexion au serveur
FTP. 3)
170.0 filename STRING[220] 'install1/chaudiere2/pression.d Nom du fichier source ou cible
at'
1) La longueur de chaîne indiquée est la longueur maximale possible
2) Les valeurs indiquées se rapportent aux longueurs de chaîne indiquées sous "Type".
3) Ces lignes sont sans signification pour cet appel.

Blocs de programme pour CP S7 SIMATIC NET


92 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.5 FTP_RETRIEVE

2.4.5.1 Signification et appel - FTP_RETRIEVE

Signification
Avec cet appel de fonction, un fichier est transmis du serveur FTP au client FTP (CPU S7).
Pour cela, vous devez indiquer le bloc de données dans lequel le fichier doit être stocké. Il
faut préciser également le nom de chemin et de fichier sous lequel le fichier est enregistré
sur le serveur FTP.
Si le bloc de données (DB de fichier) sur le client FTP contient déjà un fichier, il sera écrasé.

Interface d'appel
FTP_RETRIEVE

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

ANY FILE_NAME

INT BUFFER_DB_NR

INT FILE_DB_NR

Exemple d'appel en représentation LIST

LIST Explication
call fc42 ( //Appel de FTP_RETRIEVE
ACT := M 420.0, // Lancement du contrat par bit de mémento
ID := 4, // ID de liaison FTP selon configuration
LADDR := W#16#3FFD, // Adresse de module selon configuration
FILE_NAME := P#DB40.DBX 170.0 BYTE 220, // Indication du fichier source dans DB 40
BUFFER_DB_NR := 9, // Zone tampon pour le service FTP
FILE_DB_NR := 42, // N° de DB du fichier cible
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 93
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.5.2 Explication des paramètres formels - FTP_RETRIEVE

Explication des paramètres d'appel généraux


Les paramètres généraux ont la même signification pour tous les appels de fonction FTP ; ils
sont donc tous décrits dans un seul paragraphe.

Explication des paramètres formels spécifiques à un appel

Tableau 2- 16 Paramètres formels pour FTP_RETRIEVE

Paramètre Déclaration Type de Description


données
FILE_NAME INPUT ANY Ce paramètre spécifie la source des données
(seul (pour plus de détails, voir le tableau ci-après).
autorisé Il faut indiquer ici l'adresse et la longueur de la zone de données
comme dans laquelle sont écrites les indications de cible.
VARTYPE :
L'adresse indiquée renvoie à une zone de bloc de données.
BYTE)
C'est le type de données Pointeur ANY qui est utilisé pour adresser
cette zone. Pour plus d'informations sur ce type de données,
veuillez vous référer à l'aide en ligne de STEP 7, rubrique "Format
du type de paramètre ANY".
BUFFER_DB_NR INPUT INT Indiquez ici un bloc de données qui sert au client FTP de zone
tampon pour le transfert FTP.
Vous pouvez utiliser le même bloc de données comme zone
tampon pour toutes les tâches FTP.
Nota :
la longueur du DB réservé à cet effet doit être d'au moins 255 octets
!
FILE_DB_NR INPUT INT Le bloc de données indiqué ici contient le DB de fichier où écrire
(cible des données).

Paramètre FILE_NAME
Cet enregistrement de paramètre a le contenu suivant pour FTP_RETRIEVE :

Adresse Nom Type 1) Exemple Signification


relative 2)
0.0 ip_address STRING[100] '142.11.25.135' Adresse IP du serveur FTP. 3)
102.0 username STRING[32] 'utilisateur' Nom d'utilisateur pour la connexion au
serveur FTP. 3)

Blocs de programme pour CP S7 SIMATIC NET


94 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Adresse Nom Type 1) Exemple Signification


relative 2)
136.0 password STRING[32] 'mot_de_passe' Mot de passe pour la connexion au serveur
FTP. 3)
170.0 filename STRING[220] 'install1/chaudiere2/pression.d Nom du fichier source ou cible
at'
1) La longueur de chaîne indiquée est la longueur maximale possible
2) Les valeurs indiquées se rapportent aux longueurs de chaîne indiquées sous "Type".
3) Ces lignes sont sans signification pour cet appel.

2.4.6 FTP_DELETE

2.4.6.1 Signification et appel - FTP_DELETE

Signification
Avec cet appel de fonction, vous supprimez un fichier sur le serveur FTP.

Interface d'appel
FTP_DELETE

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

ANY FILE_NAME

INT BUFFER_DB_NR

Exemple d'appel en représentation LIST

LIST Explication
call fc43 ( //Appel de FTP_DELETE
ACT := M 420.0, // Lancement du contrat par bit de mémento
ID := 4, // ID de liaison FTP selon configuration
LADDR := W#16#3FFD, // Adresse de module selon configuration
FILE_NAME := P#DB40.DBX 170.0 BYTE 220, // Indication du fichier cible dans DB 40
BUFFER_DB_NR := 9, // Zone tampon pour le service FTP
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 95
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.6.2 Explication des paramètres formels - FTP_DELETE

Explication des paramètres d'appel généraux


Les paramètres généraux ont la même signification pour tous les appels de fonction FTP ; ils
sont donc tous décrits dans un seul paragraphe.

Explication des paramètres formels spécifiques à un appel

Tableau 2- 17 Paramètres formels pour FTP_DELETE

Paramètre Déclaration Type de Description


données
FILE_NAME INPUT ANY Ce paramètre spécifie la cible des données
(seul autorisé (pour plus de détails, voir le tableau ci-après).
comme Il faut indiquer ici l'adresse et la longueur de la zone de données
VARTYPE : dans laquelle sont écrites les indications de cible.
BYTE) L'adresse indiquée renvoie à une zone de bloc de données.
C'est le type de données Pointeur ANY qui est utilisé pour
adresser cette zone. Pour plus d'informations sur ce type de
données, veuillez vous référer à l'aide en ligne de STEP 7,
rubrique "Format du type de paramètre ANY".
BUFFER_DB_NR INPUT INT Indiquez ici un bloc de données qui sert au client FTP de zone
tampon pour le transfert FTP.
Vous pouvez utiliser le même bloc de données comme zone
tampon pour toutes les tâches FTP.
Nota :
la longueur du DB réservé à cet effet doit être d'au moins 255
octets !

Paramètre LOGIN
Cet enregistrement de paramètre a le contenu suivant pour FTP_DELETE :

Adresse Nom Type 1) Exemple Signification


relative 2)
0.0 ip_address STRING[100] '142.11.25.135' Adresse IP du serveur FTP. 3)
102.0 username STRING[32] 'utilisateur' Nom d'utilisateur pour la connexion au
serveur FTP. 3)
136.0 password STRING[32] 'mot_de_passe' Mot de passe pour la connexion au
serveur FTP. 3)
170.0 filename STRING[220] 'install1/chaudiere2/pression.d Nom du fichier source ou cible
at'
1) La longueur de chaîne indiquée est la longueur maximale possible
2) Les valeurs indiquées se rapportent aux longueurs de chaîne indiquées sous "Type".
3) Ces lignes sont sans signification pour cet appel.

Blocs de programme pour CP S7 SIMATIC NET


96 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.7 FTP_QUIT

2.4.7.1 Signification et appel - FTP_QUIT

Signification
Avec cet appel de fonction, vous coupez la liaison FTP désignée par l'ID.

Interface d'appel
FTP_QUIT

BOOL ACT DONE BOOL

INT ID ERROR BOOL

WORD LADDR STATUS WORD

Exemple d'appel en représentation LIST

LIST Explication
call fc44 ( //Appel de FTP_QUIT
ACT := M 420.0, // Lancement du contrat par bit de mémento
ID := 4, // ID de liaison FTP selon configuration
LADDR := W#16#3FFD, // Adresse de module selon configuration
DONE := M 420.1,
ERROR := M 420.2,
STATUS := MW 422);

Remarque
La sortie de FC44 doit recevoir un mot de mémento comme valeur. La saisie de DBx.DWy
provoque l'apparition d'un message d'erreur (seulement pour S7-300).

2.4.7.2 Explication des paramètres formels - FTP_QUIT

Explication des paramètres d'appel généraux


Les paramètres généraux ont la même signification pour tous les appels de fonction FTP ; ils
sont donc tous décrits dans un seul paragraphe.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 97
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.8 Paramètres pour affecter les CP et liaisons (paramètres d'entrée)

Paramètres pour affecter les CP et liaisons (paramètres d'entrée)


Chaque appel de bloc FTP doit être valorisé non seulement par les paramètres d'entrée
spécifiques à la tâche, mais aussi par les paramètres d'entrée généraux suivants :

Paramètre Déclaration Type 1) Valeurs admises Signification


ACT INPUT BOOL 0,1 Ce paramètre contient le bit d'initialisation pour lancer la
tâche.
 Quand ACT = 1, la tâche est exécutée.
Durant cette exécution, le FC fournit les indications
suivantes :
– DONE=0
– ERROR=0
– STATUS=8181H
 Quand ACT = 0, le FC appelé n'exécute pas d'action ; les
indications d'état sont positionnées comme suit pour cette
valeur du paramètre :
– DONE=0
– ERROR=1
– STATUS=8F70H
Remarque / recommandation :
Dans votre application, il serait bon de prévoir l'exécution
conditionnelle des appels de FTP, par ex. en exploitant les
indications. Il n'est pas indiqué de commander l'appel au
moyen du bit ACT.
Le bit ACT doit être à 1 jusqu'à ce que le bit DONE signale
l'achèvement de l'exécution.
ID INPUT INT 1,2...64 Les tâches FTP sont exécutées via des liaisons FTP. Ce
paramètre identifie la liaison utilisée.
LADDR INPUT WORD Adresse de début du module
Dans l'appel d'un bloc FC, vous fournissez l'adresse de début
du module CP ADVANCED dans le paramètre LADDR.
Vous trouverez l'adresse de début du CP ADVANCED dans la
configuration de ce module, sous "Propriétés > Adresses >
Entrées".

Blocs de programme pour CP S7 SIMATIC NET


98 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

IMPORTANT

Veillez impérativement à n'appeler qu'un seul bloc de programme client FTP par ID
utilisateur tant que ACT est à 1.
Il ne faut donc pas par exemple que FTP_STORE et FTP_RETRIEVE soit exécutés
simultanément sur la même liaison FTP. Cette exigence est conforme à la fonctionnalité
FTP normale.
Sinon, vous ne pourrez pas vous fier à l'exactitude des paramètres de sortie (bit DONE, bit
ERROR et mot d'état STATUS).

2.4.9 Informations d'état (paramètres de sortie)

Informations d'état (paramètres de sortie)


Pour exploiter l'état, il faut exploiter les paramètres suivants dans le programme utilisateur :

Paramètre Déclaration Type 1) Valeurs admises Signification


DONE OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche a été exécutée sans
1: tâche exécutée erreur.
ERROR OUTPUT BOOL 0: - Indication d'erreur
1: erreur Ce paramètre signale quand la tâche n'a pas pu être exécutée
correctement.
STATUS OUTPUT WORD Voir le tableau ci- Indication d'état
après Ce paramètre donne des informations détaillées sur l'exécution
de la tâche.

Remarque
Avec FC FTP_QUIT, n'utilisez que le Mot de mémento comme type de données pour le
paramètre STATUS (ne s'applique qu'au CP 343-1 IT).

Exemple
Durant l'exécution d'une tâche, le FC fournit les indications suivantes :
● DONE=0
● ERROR=0
● STATUS=8181H

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 99
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Exploiter les indications d'état


Sachez que les indications d'état DONE, ERROR, STATUS sont actualisées à chaque appel
de bloc.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez consulter également
le manuel de référence STEP 7 "Fonctions système et fonctions standard". Vous y trouverez
des informations au chapitre "Evaluation d'erreur avec le paramètre de sortie RET_VAL".

DONE ERROR STATUS Signification


1 0 0000H Tâche terminée sans erreur.
0 0 0000H Pas de tâche en cours.
0 0 8181H Tâche en cours.
0 1 8090H  Il n'existe pas de module possédant cette adresse de début.
 Le FC utilisé n'est pas compatible avec la famille du système (il faut utiliser des FC
différents pour S7-300 et S7-400).
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H L'indication de type dans le pointeur ANY est différente de Byte.
0 1 80A4H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les
versions de CPU récentes).
Ceci peut être dû, par exemple :
 à un manque de configuration des liaisons
 au dépassement du nombre maximal de CP exploitables en parallèle.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H  Zone cible incorrecte ;
par ex. zone cible > 240 octets.
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les
anciennes versions de CPU ; sinon 80A4H, voir à cet endroit pour plus d'informations).
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement logique indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le programme
utilisateur est donc judicieuse).
0 1 80D2H L'adresse de début du module est erronée.
0 1 8183H La configuration ne correspond pas aux paramètres de la tâche.
0 1 8184H Type de données spécifié illicite pour le paramètre FILE_NAME / LOGIN.
0 1 8186H Paramètre ID non valable. ID != 1,2....64.
0 1 8F22H Zone source incorrecte ; par exemple :
zone inexistante dans le DB
0 1 8F24H Erreur de zone à la lecture d'un paramètre.

Blocs de programme pour CP S7 SIMATIC NET


100 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

DONE ERROR STATUS Signification


0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH Zone non chargée (DB).
0 1 8F50H DB de fichier, DB 0 ou DB inexistant
0 1 8F51H DB de fichier, zone de données spécifiée plus grande que la zone existante
0 1 8F52H DB de fichier en mémoire à lecture seule
0 1 8F53H Longueur maxi du DB de fichier < longueur réelle
0 1 8F54H Le DB de fichier ne contient pas de données valides
0 1 8F55H Bit d'état d'en-tête : Locked
0 1 8F56H Le bit NEW dans l'en-tête du DB de fichier n'a pas été remis à zéro.
0 1 8F57H Le client FTP n'a pas le droit d'écrire dans le DB de fichier, mais seulement le serveur
FTP (bit d'état d'en-tête : WriteAccess)
0 1 8F5AH DB tampon, DB 0 ou DB inexistant
0 1 8F5BH DB tampon, zone de données trop petite
0 1 8F5CH DB tampon en mémoire à lecture seule
0 1 8F60H Données utilisateur incorrectes, par ex. adresse IP du serveur FTP incorrecte
0 1 8F61H Accès au serveur FTP impossible
0 1 8F62H La tâche n'est pas supportée par le serveur FTP ou elle est refusée.
0 1 8F63H Le transfert du fichier a été abandonné par le serveur FTP.
0 1 8F64H Erreur sur la liaison de contrôle FTP ; les données n'ont pas pu être émises ou reçues ;
après une telle erreur, il faut établir de nouveau la liaison de contrôle FTP.
0 1 8F65H Erreur sur la liaison de données FTP ; les données n'ont pas pu être émises ou reçues
; il faut appeler de nouveau la tâche (FTP_STORE ou FTP_RETRIEVE).
L'erreur peut être due, par ex. dans le cas de FTP_RETRIEVE, au fait que le fichier
concerné est déjà ouvert sur le serveur FTP.
0 1 8F66H Erreur à la lecture/écriture des données de/sur la CPU (par ex. DB inexistant ou trop
petit).
0 1 8F67H Erreur dans le client FTP sur le CP, par ex. lors d'une tentative d'ouvrir plus de 10
liaisons FTP.
0 1 8F68H La tâche a été refusée par le client FTP.
L'erreur peut être due, par ex. dans le cas de FTP_RETRIEVE, au fait que la valeur
spécifiée pour le paramètre MAX_LENGTH dans l'en-tête de DB est trop basse.
0 1 8F69H Liaison FTP dans un état erroné pour cet appel, par ex. en cas de double appel
Connect ou de Retrieve sans Connect préalable (avec la même ID de liaison).
0 1 8F6AH La liaison n'a pas pu être établie en raison d'un manque temporaire de ressources.
Remède : répéter l'appel du bloc.
0 1 8F6CH La liaison n'a pas pu être établie ; le client FTP prend uniquement en charge des
liaisons sécurisées SSL.
Remède : Utiliser le bloc de programme FTP_CMD.
0 1 8F70H Appel d'un bloc de client FTP avec ACT = 0
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 101
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

2.4.10 Bloc de données DB de fichier

2.4.10.1 Structure des blocs de données (DB fichier) pour les services FTP - mode client FTP

Mode de fonctionnement
Vous devez créer des blocs de données sur la CPU de votre station S7 pour la transmission
de donnnées via FTP (DB de fichiers). Ces blocs de données doivent être conformes à une
structure définie afin qu'ils puissent être manipulés par les services FTP au même titre que
des fichiers transmissibles. Ils se composent des sections suivantes
● Section 1 : En-tête de DB de fichier (structure invariable avec une longueur de 20 octets)
● Section 2 : Données utiles (longueur et structure variables)

En-tête de DB de fichier pour mode client FTP


Remarque : L'en-tête de DB de fichier décrit ici est quasi identique à l'en-tête de DB de
fichier décrit pour le mode serveur FTP. Les différences se rapportent aux paramètres
● WRITE_ACCESS
● FTP_REPLY_CODE

Paramètres Type Valeur / Signification Alimentation


EXIST BOOL Le bit EXIST indique la présence L'instruction FTP dele met EXIST à 0 ;
ou non de données valides dans L'instruction FTP store met EXIST à 1 ;
la zone de données utiles.
L'instruction FTP retrieve traite le
contrat uniquement si EXIST=1.
 0:
Le DB de fichier ne contient
pas de données utiles valides
("Fichier inexistant").
 1:
Le DB de fichier contient des
données utiles valides
("Fichier existant").

Blocs de programme pour CP S7 SIMATIC NET


102 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Paramètres Type Valeur / Signification Alimentation


LOCKED BOOL Le bit LOCKED sert à interdire Les instructions FTP store et retr
l'accès au DB de fichier. mettent LOCKED à 1 durant le
traitement.
 0:
L'accès au DB de fichier est La règle suivante d'applique à toute
possible. opération d'écriture issue du
programme utilisateur :
 1:
Le programme utilisateur de la CPU S7
L'accès au DB de fichier est
peut mettre LOCKED à 1 ou à 0 durant
bloqué. l'accès en écriture à des fins de
garantie de cohérence.
Marche à suivre recommandée dans le
programme utilisateur :
1. Interroger le bit LOCKED ;
si = 0
2. Mettre le bit WRITEACCESS à 0
3. Interroger le bit LOCKED ;
si = 0
4. Mettre le bit LOCKED à 1
5. Ecrire les données
6. Mettre le bit LOCKED à 0
NEW BOOL Le bit NEW indique si le données L'instruction FTP store met NEW à 1
ont été modifiées depuis la après traitement
dernière opération de lecture. Le programme utilisateur sur la CPU
 0: S7 doit, après lecture des données,
Le contenu du DB de fichier remettre NEW à zéro pour autoriser
est resté inchangé depuis la une nouvelle instruction retr.
dernière opération d'écriture.
Le programme utilisateur de la
CPU S7 a enregistré la
dernière modification.
 1:
Le programme utilisateur de la
CPU S7 n'a pas encore
enregistré la dernière
opération d'écriture.
WRITE_ACCESS BOOL 0: Le bit est mis à une valeur
Le programme utilisateur (blocs d'initailisation lors de la configuration
client FTP) possède le droit du DB.
d'écriture pour les DB de fichiers Recommandation :
de la CPU S7.
Si possible, ne modifiez pas ce bit !
1: Une adaptation à des cas particuliers
Le programme utilisateur (blocs est possible durant le fonctionnement.
client FTP) ne possède pas de
droit d'écriture pour les DB de
fichiers de la CPU S7.
ACT_LENGTH DINT Longueur actuelle de la zone de La longueur actuelle est mise à jour
données utiles. après toute opération d'écriture.
Le contenu de ce champ n'est
invalide que si EXIST = 1.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 103
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Paramètres Type Valeur / Signification Alimentation


MAX_LENGTH DINT Longueur maximale de la zone de Il convient de définir la longueur
données utiles (longueur totale du maximale lors e la configuration du DB.
DB moins 20 octets d'en-tête). La valeur peut également être modifiée
durant le fonctionnement par le
programme utilisateur.
FTP_REPLY_CODE INT Nombre non signé (16 bits) qui Est mis à jour par le client FTP lors du
contient le dernier code Reply de traitement d'instruction FTP.
FTP sous forme de valeur binaire.
Le contenu de ce champ n'est
invalide que si EXIST = 1.
DATE_TIME DATE_AND_TIME Date et heure de la dernière La date/heure actuelle est mise à jour
modification du fichier. après toute opération d'écriture.
Le contenu de ce champ n'est Si la fonction "Retransmission de la
invalide que si EXIST = 1. date/heure" est utilisée, cette entrée
correspond à la date/heure
retransmise.
Si la fonction "Retransmission de la
date/heure" n'est pas utilisée, l'entrée
est la date/heure relative. La référence
est dans ce cas l'instant de démarrage
du CP IT (la valeur d'initialisation est le
1/1/1994 0.0 heure).

2.4.10.2 Structure des blocs de données (DB fichier) pour les services FTP - mode serveur FTP

Mode de fonctionnement
Vous devez créer des blocs de données sur la CPU de votre station S7 pour la transmission
de donnnées via FTP (DB fichiers). Ces blocs de données doivent être conformes à une
structure définie afin qu'ils puissent être manipulés par les services FTP au même titre que
des fichiers transmissibles. Ils se composent des sections suivantes
● Section 1 : En-tête de DB fichier (longueur (20 octets) et structure invariables)
● Section 2 : Données utiles (longueur et structure variables)

En-tête de DB fichier pour mode serveur FTP


Remarque : L'en-tête de DB fichier décrit ici est quasi identique à l'en-tête de DB fichier
décrit pour le mode client FTP. Les différences se rapportent aux paramètres
● WRITE_ACCESS
● FTP_REPLY_CODE

Blocs de programme pour CP S7 SIMATIC NET


104 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Paramètres Type Valeur / Signification Alimentation


EXIST BOOL Le bit EXIST indique la L'instruction FTP dele met EXIST à 0 ;
présence ou non de L'instruction FTP store met EXIST à 1 ;
données valides dans la
zone de données utiles.
L'instruction FTP retrieve
traite le contrat uniquement
si EXIST=1.
 0:
Le DB fichier ne
contient pas de
données utiles valides
("Fichier inexistant").
 1:
Le DB fichier contient
des données utiles
valides ("Fichier
existant").
LOCKED BOOL Le bit LOCKED sert à Les instructions FTP store et retr mettent
interdire l'accès au DB LOCKED à 1 durant le traitement.
fichier. La règle suivante d'applique à toute
 0: opération d'écriture issue du programme
L'accès au DB fichier utilisateur :
est possible. Le programme utilisateur de la CPU S7 peut
mettre LOCKED à 1 ou à 0 durant l'accès
 1:
en écriture à des fins de garantie de
L'accès au DB fichier
cohérence.
est bloqué.
Marche à suivre recommandée dans le
programme utilisateur :
1. Interroger le bit LOCKED ;
si = 0
2. Mettre le bit WRITEACCESS à 0
3. Interroger le bit LOCKED ;
si = 0
4. Mettre le bit LOCKED à 1
5. Ecrire les données
6. Mettre le bit LOCKED à 0

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 105
Blocs de programme pour Industrial Ethernet
2.4 Blocs de programme pour services FTP

Paramètres Type Valeur / Signification Alimentation


NEW BOOL Le bit NEW indique si le L'instruction FTP store met NEW à 1 après
données ont été modifiées traitement
depuis la dernière Le programme utilisateur sur la CPU S7 doit
opération de lecture. mettre NEW à 0 après la lecture des
 0: données afin d'autoriser un nouveau store
Le contenu du DB ou pour pouvoir supprimer le fichier à l'aide
fichier est resté de l'instruction FTP dele.
inchangé depuis la
dernière opération
d'écriture. Le
programme utilisateur
de la CPU S7 a
enregistré la dernière
modification.
 1:
Le programme
utilisateur de la CPU S7
n'a pas encore
enregistré la dernière
opération d'écriture.
WRITE_ACCESS BOOL 0: Le bit est mis à une valeur d'initailisation
Le client FTP sur PG/PC lors de la configuration du DB.
n'est pas autorisé à écrire Recommandation :
sur les DB fichiers de la
Si possible, ne modifiez pas ce bit ! Une
CPU S7.
adaptation à des cas particuliers est
1: possible durant le fonctionnement.
Le client FTP sur PG/PC
est autorisé à écrire sur les
DB fichiers de la CPU S7.
ACT_LENGTH DINT Longueur actuelle de la La longueur actuelle est mise à jour après
zone de données utiles. toute opération d'écriture.
Le contenu de ce champ
n'est invalide que si EXIST
= 1.
MAX_LENGTH DINT Longueur maximale de la Il convient de définir la longueur maximale
zone de données utiles lors e la configuration du DB.
(longueur totale du DB La valeur peut également être modifiée
moins 20 octets d'en-tête). durant le fonctionnement par le programme
utilisateur.

Blocs de programme pour CP S7 SIMATIC NET


106 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Paramètres Type Valeur / Signification Alimentation


FTP_REPLY_CODE INT Ce paramètre est sans Est mis à “0" par le serveur FTP.
signification en mode
serveur FTP.
DATE_TIME DATE_AND_TIME Date et heure de la La date/heure actuelle est mise à jour après
dernière modification du toute opération d'écriture.
fichier. Si la fonction "Retransmission de la
Le contenu de ce champ date/heure" est utilisée, cette entrée
n'est invalide que si EXIST correspond à la date/heure retransmise.
= 1. Si la fonction "Retransmission de la
date/heure" n'est pas utilisée, l'entrée est la
date/heure relative. La référence est dans
ce cas l'instant de démarrage du CP IT (la
valeur d'initialisation est le 1/1/1994 0.0
heure).

2.5 Blocs de programme pour liaisons programmées et configuration IP


Dans certains domaines d'application, il peut être utile de réaliser la configuration des
liaisons de communication et la configuration IP du CP non pas via l'interface de
configuration de STEP 7 mais par programmation à l'aide d'une application spécifique.
On trouve de tels cas d'application typiques chez les constructeurs de machines de série p.
ex. qui souhaitent mettre à la disposition de leurs clients une interface utilisateur simple tout
en devant adapter les services de communication aux entrées de commandes. On ne
souhaite pas, dans ce cas, que l'utilisateur final soit obligé de savoir se servir de STEP 7.
Le bloc fonctionnel FB55 est destiné à de telles applications pour réaliser la configuration
des liaisons au niveau de l'interface SEND/RECEIVE de même que la configuration IP. Le
FB55 est conçu pour une transmission flexible à un CP Ethernet de blocs de données
contenant des données de configuration.

Remarque
Veuillez tenir compte à propos des fonctions décrites ici des caractéristiques (types de
liaison pris en charge) du type de CP que vous utilisez ; vous trouverez des informations à
ce propos dans le manuel des appareils.

Informations complémentaires
Vous trouverez des informations complémentaires sur les sujets suivants dans /1/
(Page 296) :
● Propriétés des types de liaison configurables ;
● Informations sur la configuration de la protection d'accès IP ;
● Informations sur les voluments de données et les capacités fonctionnelles.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 107
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.1 Mode de fonctionnement

Interaction de la programmation et de la configuration


Vous pouvez réaliser la configuration des liaisons à l'interface SEND/RECEIVE ainsi que la
configuration IP du CP sous STEP 7 ou bien les faire configurer par le programme utilisateur
lors du fonctionnement de la station S7. Un panachage de ces variantes au sein d'un CP
n'est pas possible !

Principe de la configuration programmée


Un bloc fonctionnel, appelé dans le programme utilisateur, permet de transmettre au CP les
données de configuration des liaisons de communication ainsi que la configuration IP
(données système du CP).

%ORFGHGRQQ«HVGHFRQILJXUDWLRQ

)%,3B&21),* 'RQQ«HV
V\VWªPHGX&3

/LDLVRQ
GRQQ«HVGHFRQILJXUDWLRQ
WUDQVPLVHVDX&3
/LDLVRQ

/LDLVRQQ

QPD[ 

Le DB de configuration peut être chargé à tout moment sur le CP. Les liaisons et données
de configuration valables auparavant (adresse IP, masque de sous-réseau, routeur par
défaut, serveur d'horodatage NTP et autres paramètres) sont alors écrasées.
Les données de configuration indiquent au CP Ethernet que les liaisons de communication
seront configurées par le programme utilisateur.

Remarque
Les fonctions ne pourront être exécutées que si la protection d'accès aux modules a été
configurée "Non verrouillé" : Voir boîte de dialogue des propriétés du CP, onglet "Options"
(par sur chaque CP).
Il faut par ailleurs que l'option "Créer l'adresse IP dans le programme utilisateur" (voir
dialogue des propriétés du CP ou de l'interface Ethernet du CP, onglet "Configuration IP").

Blocs de programme pour CP S7 SIMATIC NET


108 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Les données de configuration indiquent au CP Ethernet que les liaisons de communication


seront configurées par le programme utilisateur.

Remarque
Dès que le programme utilisateur transmet les données de liaison à l'aide du bloc de liaisons
FB55 IP_CONFIG, la CPU basculera le CP pendant un court instant sur ARRÊT. Le CP
reprend les données système (adresse IP comprise) et les nouvelles données de liaison et
les traite durant le démarrage (MARCHE).

Capacités fonctionnelles
Il est possible de spécifier au maximum 64 liaisons dans le bloc de programme
CP_CONFIG. L'important est cependant le nombre maximal de liaisons prises en charge par
le type de CP que vous utilisez.

Particularité / Restrictions
● Contrôle de cohérence uniquement sous STEP 7
La configuration de liaisons sous STEP 7 s'accompagne de contrôles de cohérence qui
ne sont pas possibles ou difficilement réalisables en cas de configuration programmée !
● Configuration de liaison requise sur le partenaire
Lors de la configuration de liaisons spécifiées sous STEP 7, la liaison du partenaire est
configurée implicitement ; ceci n'est pas possible lors de la configuration programmée !
Les liaisons appropriées des partenaires doivent être configurées.
● Configuration de la protection d'accès IP
La protection d'accès IP permet de limiter la communication via le CP de la station S7
locale à des partenaires possédant une adresse IP bien déterminée. Ce paramétrage est
également valable pour les liaisons de communication programmées. Vous devez soit
désactiver la protection d'accès IP sous STEP 7 (= paramétrage par défaut) soit autoriser
les partenaires de communication.
● DHCP / DNS sont pris en charge
La configuration programmée autorise également un adressage IP via DHCP (et DNS
pour le service de courrier électronique).
L'utilisation d'un serveur DHCP sera définie dans ce cas dans le FB55 (pas dans la
configuration).
● Pas d'informations de liaison lors du chargement
Lors du chargement des données de la station S7 sous STEP 7, les données de la
configuration programmée ne sont pas incluses.
● Configuration de liaison sur CP dotés de plusieurs interfaces
Dans le cas de CP à plusieurs interfaces (interface Gigabit p. ex.), vérifiez dans le
manuel du CP la prise en charge de la configuration de liaison des deux interfaces.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 109
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

● PROFINET IO pas possible simultanément


Les appareils utilisés comme contrôleur ou périphérique PROFINET IO n'autorisent pas
la configuration de liaison via le FB55 décrit ci-dessus.
● Pas d'emploi de IP_CONFIG en cas d'utilisation du CP avec des liaison S7 à haute
disponibilité
Si vous configurez sur le CP des liaisons S7 à haute disponibilité, n'employez pas le bloc
de programme IP_CONFIG pour la configuration IP du CP.

2.5.2 Marche à suivre

Conditions préalables
Les opérations décrites ici présupposent :
● que vous ayez créé dans vos projets STEP 7 la station S7 locale ainsi que les stations
partenaires requises.
● Que vous sachiez avec quels autres types de station vous devez établir des liaisons.
Vous devrez créer pour ces dernières des objets génériques dans vos projets STEP 7.

Configuration des propriétés du CP


Paramétrez les propriétés du CP sous "Configuration IP" : Sélectionnez l'option "Créer
l'adresse IP dans le programme utilisateur".

Programmation de la configuration de liaison


Procédez d'unemanière générale comme suit pour configurer des liaisons via le programme
utilisateur :
1. Créez les sous-bloc des données système et données de liaison dans le DB de
configuration.
2. Définissez les propriétés de la liaison dans le DB de configuration.
3. Programmez l'interface FB55 dans le programme utilisateur.
4. Utilisez les FC de l'interface SEND/RECEIVE pour les services de communication
ouverts dans le programme utilisateur.

Blocs de programme pour CP S7 SIMATIC NET


110 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.3 Bloc de données de configuration (CONF_DB)

Signification
Le bloc de données de configuration (CONF_DB) contient toutes les données de la liaison
ainsi que les données de configuration (adresse IP, masque de sous-réseau, routeur par
défaut, serveur d'horodatage NTP et autres paramètres) d'un CP Ethernet. Le bloc de
connées de configuration (CONF_DB) est transmis au CP avec le bloc fonctionnel FB55.

Structure du bloc / des données


La figure ci-dessous représente :
● la structuration au moyen des blocs de paramètres et des sous-blocs
– Chaque liaison de même que les données système particulières sont décrites par des
blocs de paramètres de structure identique.
– Les divers paramètres sont caractérisés par des sous-blocs.
● la zone de décalage
Le CONF_DB peut débuter à n'importe quel endroit d'un bloc de données grâce à une
zone de décalage. L'adresse (c.-à-d. le décalage) doit simplement être paire.

%ORFGHGRQQ«HV
GHFRQILJXUDWLRQ

=RQHGH
G«FDODJHQ
&21)B'% %ORFGHSDUDPªWUHVSRXUGRQQ«HVV\VWªPH
,GHQWLILDQWB'% PLVHHQU«VHDXGX&3 HWOLDLVRQV

'RQQ«HVV\VWªPH 7\SH
GX&3 ,' SRXUGRQQ«HV
V\VWªPH 
/LDLVRQ
1RPEUHBVRXVEORFV 6RXVEORF
/LDLVRQ 6RXVEORF

6RXVEORF 3DUDPªWUH

/LDLVRQQ
6RXVEORFQ


① Les blocs de paramètres sont décrits ci-après dans Bloc de paramètres pour données système (configuration IP)
(Page 115)
② Les types de sous-blocs sont décrits ci-après dans Blocs de paramètres pour types de liaison (Page 116)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 111
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Voir aussi
Types de sous-bloc (Page 122)

2.5.4 Bloc de données de configuration - Exemple


L'exemple ci-après présente un bloc de données de configuration avec un bloc de
paramètres pour données système et un bloc de paramètres pour une liaison TCP.

CONF_DB

LIST
DATA_BLOCK DB271
TITLE=IP_CONFIG pour une liaison nTCP active,
AUTHOR : SIMATIC //CP-Daten : IP=200.12.1.144, Router=200.12.1.80
FAMILY : AS300 //Données de liaison : Destination IP-Addr=200.12.1.99,
NAME : ipconf //Port local = 4001, port distant = 5001, établissement de liaison=actif
VERSION : 1.0 //07-Jun-2005
STRUCT
DB_TYP : INT := 1;
// --------------------------------------------------------- Données système ------
sys_pb : INT:=0; // Type de sous-bloc : Données système du CP
sys_id : INT:= 0; // ID de paramètres système, toujours 0
sys_sb_cnt: INT:= 3; //Nombre de sous-blocs dans le bloc de paramètres
ip_addr: SUB_IP_V4; système

ip_netmask: SUB_NETMASK; // Adresse IP du CP

ip_router: SUB_DEF_ROUTER; // Masque de sous-réseau du CP


// Routeur par défaut
// --------------------------------------------------------- tcp VB 01 --------
tcp_pb_01 : int := 1; // Type de sous-bloc : Liaison TCP
tcp_id_01 : int := 1; // 1. TCP_VB
tcp_sb_cnt_01 : int := 6; // 6 éléments par liaison TCP
tcp_vb_ip_01 : SUB_IP_V4; // Adresse IP du partenaire
tcp_loc_01 : SUB_LOC_PORT; //
tcp_rem_01 : SUB_REM_PORT; //
tcp_vb_01_name : CON_NAME_L; //
tcp_vb_01_kbus : SUB_KBUS_ADDR; // uniquement pour S7-400
rq_01 : ACT_CN_REQ; //
//----------------------------------
END_STRUCT ;
BEGIN

tcp_loc_01.port := 4001; // Définition des ports, si la valeur


tcp_rem_01.port := 5001; // s'écarte de la définition !

Blocs de programme pour CP S7 SIMATIC NET


112 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

LIST
END_DATA_BLOCK

Viennent ensuite les définitions de type utilisées dans l'exemple de DB.

Définitions de type pour le sous-bloc "Données système"

LIST
// Structure de données IP Config
TYPE "SUB_IP_V4"
STRUCT
id : int := 1; // ID for IP, V4-Addr.
len: int := 8; // Sub Block Length
b_3 : BYTE := b#16#C8; // IP_High 200.
b_2 : BYTE := b#16#0C; // IP_ 12.
b_1 : BYTE := b#16#01; // IP_ 1.
b_0 : BYTE := b#16#90; // IP_Low 144
END_STRUCT;
END_TYPE
TYPE "SUB_NETMASK"
STRUCT
id : int := 2; // ID for Sub Net Mask
len: int := 8; // Sub Block Length
b_3 : BYTE := b#16#FF; // SNM_High
b_2 : BYTE := b#16#FF; // SNM_
b_1 : BYTE := b#16#FF; // SNM_
b_0 : BYTE := b#16#00; // SNM_Low
END_STRUCT;
END_TYPE
TYPE "SUB_DEF_ROUTER"
STRUCT
id : int := 8; // ID_4_Router
len: int := 8; // Sub Block Length
r_3 : BYTE := b#16#C8; // R_High
r_2 : BYTE := b#16#0C; // R_
r_1 : BYTE := b#16#01; // R_
r_0 : BYTE := b#16#50; // R_Low
END_STRUCT;
END_TYPE

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 113
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Définitions de type pour le sous-bloc "Liaison TCP"

LIST
TYPE "SUB_LOC_PORT"
STRUCT
id : int := 9; // ID_4_LOC_PORT
len: int := 6; // Sub Block Length
port: int := 2001; // Loc. Port
END_STRUCT;
END_TYPE
TYPE "SUB_REM_PORT"
STRUCT
id : int :=10; // ID_4_REM_PORT
len: int := 6; // Sub Block Length
port: int := 2002; // Rem. Port
END_STRUCT;
END_TYPE
TYPE "CON_NAME_L" // 24 characters
STRUCT
id : int := 18; // ID for CON Name
len: int := 28; // 4+len(n[0..x]
c : ARRAY [1..24] of CHAR := ‘V’,’B’,’_’,’N’,’a’,’m’,’e’,’_’,’2’,’4’,’C’,’h’,’a’,’r’,
‘a’,’c’,’t’,’e’,’r’,’s’,’_’,’0’,’0’,’1’;
END_STRUCT;
END_TYPE
TYPE "SUB_KBUS_ADDR"
STRUCT
id : int := 21; // ID for KBUS-Address
len: int := 5; //
addr: BYTE := B#16#04; // =R0/S4
END_STRUCT
END_TYPE
TYPE "ACT_CN_REQ"
STRUCT
id : int := 22; // ID for CON REQ Mode
len: int := 5; // Sub Block Length
w : BYTE := b#16#1; // = Active
END_STRUCT;

Remarque :
Les structures mentionnées ici doivent encore être inscrites dans la table des mnémoniques.
Exemple pour l'entrée SUB_IP_V4 :

Blocs de programme pour CP S7 SIMATIC NET


114 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Mnémonique Adresse Type de données


SUB_IP_V4 UDT 100 UDT 100

Voir aussi
Types de sous-bloc (Page 122)

2.5.5 Bloc de paramètres pour données système (configuration IP)

Signification
Vous trouverez ci-après le bloc de paramètres pour données système, valable pour la
configuration IP du CP, ainsi que les sous-blocs à mentionner.
Vous n'aurez pas besoin, selon l'application, de tous les types de sous-bloc - vous trouverez
des informations à ce sujet dans le tableau.

Structure
Pour les CP à plusieurs interfaces, la structure de bloc de paramètres décrite ci-après ne
s'appplique qu'à l'interface PROFINET.

 Type = 0

 ID = 0

 Nombre_sous-blocs = n

 Sous-bloc 1

 Sous-bloc 2

 Sous-bloc n
...

Sous-blocs utilisables

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
1 SUB_IP_V4 Adresse IP locale ++
2 SUB_NETMASK - ++
8 SUB_DEF_ROUTER - +
4 SUB_DNS_SERV_ADDR *) Ce sous-bloc peut survenir de 0 à 4 fois. La première +
entrée est le Primary DNS Server.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 115
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
14 SUB_DHCP_ENABLE 0: pas de DHCP +
1: DHCP
15 SUB_CLIENT_ID - +
Remarque : Utile uniquement si SUB_DHCP_ENABLE = 1
30**) SUB_DEVICE_NAME Nom d'appareil selon les conventions PROFINET IO +
Entrez un nom d'appareil afin d'identifier l'appareil dans le
réseau à des fins d'analyse et de diagnostic.
*) Ce type de sous-bloc est uniquement utilisée pour les liaisons de courrier électronique.
**) ID pris en charge que par certains types de CP.
***) ++ = obligatoire ; + = facultatif

Voir aussi
Types de sous-bloc (Page 122)

2.5.6 Blocs de paramètres pour types de liaison

Généralités
Vous trouverez dans ce qui suit des informations sur les valeurs à entrer dans les blocs de
paramètres et sur les sous-blocs à employer avec un type de liaison donné.
Vous n'aurez pas besoin, selon l'application, de tous les types de sous-bloc - vous trouverez
également des informations à ce sujet dans le tableau.

ID de liaison
Le paramètre ID qui prècède, avec l'indication de type, chaque bloc de paramètres de
liaison, est particulièrement important.
Dans le cas de liaisons programmées, vous pourrez autoriser cet ID dans le cadre des
valeurs admises. Vous devrez alors utiliser cet ID au niveau de l'interface d'appel des FC
pour l'interface SEND/RECV pour identifier la liaison.
Valeurs admises pour l'ID de liaison :
● S7-400 : 1,2...64
● S7-300 : 1,2...16

Blocs de programme pour CP S7 SIMATIC NET


116 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.6.1 Bloc de paramètres pour liaison TCP

Structure
Entrez les paramètres dans le bloc de paramètres pour liaisons TCP comme suit :

 Type = 1 -> ①

 ID = ID de liaison -> ②

 Nombre_sous-blocs = n

 Sous-bloc 1

 Sous-bloc 2

 Sous-bloc n
...

Légende :
① Indication du type de liaison
② référence de liaison attribuable par l'utilisateur ; à spécifier dans AG_SEND / AG_RECV.
Valeurs admises pour l'ID de liaison :
pour S7-400 : 1, 2...64
pour S7-300 : 1,2...16

Sous-blocs utilisables

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
1 SUB_IP_V4 Adresse IP du partenaire ++ *)
9 SUB_LOC_PORT - ++
10 SUB_REM_PORT - ++ **)
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE - +
21 SUB_KBUS_ADR Pour les CP de S7-300 cette valeur ++ (pour S7-400)
invariable est 2 et n'est donc pas à
spécifier.
22 SUB_CON_ESTABL - ++
*) facultatif pour les liaisons passives.
***) ++ = obligatoire ; + = facultatif

Voir aussi
Types de sous-bloc (Page 122)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 117
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.6.2 Bloc de paramètres pour liaison UDP

Structure
Entrez les paramètres dans le bloc de paramètres pour liaisons UDP comme suit :

 Type = 2 -> ①

 ID = ID de liaison -> ②

 Nombre_sous-blocs = n

 Sous-bloc 1

 Sous-bloc 2

 Sous-bloc n
...

Légende :
① Indication du type de liaison
② référence de liaison attribuable par l'utilisateur ; à spécifier dans AG_SEND / AG_RECV.
Valeurs admises pour l'ID de liaison :
pour S7-400 : 1, 2...64
pour S7-300 : 1,2...16

Sous-blocs utilisables

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
1 SUB_IP_V4 Adresse IP du partenaire ++
9 SUB_LOC_PORT - ++
10 SUB_REM_PORT - ++
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE - +
21 SUB_KBUS_ADR Pour les CP de S7-300 cette ++ (pour S7-400)
valeur invariable est 2 et n'est donc
pas à spécifier.
23 SUB_ADDR_IN_DATABLOCK Si vous spécifiez avec ce +
paramètre l'option "liaison UDP
libre", les paramètres SUB_IP_V4
et SUB_REM_PORT sont
désactivés.
***) ++ = obligatoire ; + = facultatif

Voir aussi
Types de sous-bloc (Page 122)

Blocs de programme pour CP S7 SIMATIC NET


118 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.6.3 Bloc de paramètres pour liaison ISO-on-TCP

Structure
Entrez les paramètres dans le bloc de paramètres pour liaisons ISO-on-TCP comme suit :

 Type = 3 -> ①

 ID = ID de liaison -> ②

 Nombre_sous-blocs = n

 Sous-bloc 1

 Sous-bloc 2

 Sous-bloc n
...

Légende :
① Indication du type de liaison
② référence de liaison attribuable par l'utilisateur ; à spécifier dans AG_SEND / AG_RECV.
Plage de valeurs pour l'ID de liaison :
pour S7-400 : 1, 2...64
pour S7-300 : 1,2...16

Sous-blocs utilisables

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
1 SUB_IP_V4 Adresse IP du partenaire ++ *)

11 SUB_LOC_TSAP - ++
12 SUB_REM_TSAP - ++ *)
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE - +
21 SUB_KBUS_ADR Pour les CP de S7-300 cette valeur ++ (pour S7-400)
invariable est 2 et n'est donc pas à
spécifier.
22 SUB_CON_ESTABL - ++
*) facultatif en cas de liaison passive (si vous indiquez l'adresse IP, vous devez également indiquer le
TSAP.)
***) ++ = obligatoire ; + = facultatif

Voir aussi
Types de sous-bloc (Page 122)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 119
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.6.4 Bloc de paramètres pour liaisons de courrier électronique

Signification
Pour émettre des messages électroniques, il faut configurer d'une manière générale une
liaison de courrier électronique par CP Advanced. La spécification de la liaison de courrier
électronique définit le serveur de messagerie qui distribue tous les messages émis par le CP
Advanced.

Structure
Entrez les paramètres dans le bloc de paramètres pour liaisons de courrier électronique
comme suit :

 Type = 4 -> ①

 ID = ID de liaison -> ②

 Nombre_sous-blocs = n

 Sous-bloc 1

 Sous-bloc 2

 Sous-bloc n
...

Légende :
① Indication du type de liaison
② référence de liaison attribuable par l'utilisateur ; à spécifier dans AG_SEND / AG_RECV.
Valeurs admises pour l'ID de liaison :
pour S7-400 : 1, 2...64
pour S7-300 : 1,2...16

Blocs de programme pour CP S7 SIMATIC NET


120 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Sous-blocs utilisables

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
1 SUB_IP_V4 Adresse IP du serveur de messagerie ++ / + *)
via lequel les messages sont envoyés.
L'adresse IP peut être spécifiée de
manière absolue ou symbolique.
La spécification symbolique présuppose
que le CP Advanced connaisse
l'adresse du Domain Name Server
(DNS). Une entrée adéquate devra
donc être prévue lors de la configuration
du CP Advanced sous STEP 7 ; pour
plus de détails veuillez vous référer à
l'aide en ligne de HW Config.
3 SUB_DNS_NAME Nom DNS du serveur de messagerie ++ / + *)
13 SUB_EMAIL_SENDER Adresse de message de l'expéditeur ++
18 SUB_CONNECT_NAME - +
21 SUB_KBUS_ADR Pour les CP de S7-300 cette valeur ++ (pour S7-400)
invariable est 0 et n'est donc pas à
spécifier.
22 SUB_CON_ESTABL - ++
*) Les paramètres SUB_IP_V4 et SUB_DNS_NAME s'excluent mutuellement ; vous ne pouvez
spécifier que l'un des deux paramètres.
***) ++ = obligatoire ; + = facultatif

Remarque
Les ports de serveur de messagerie sont des "well known ports" qu'il n'est pas nécessaire
de spécifier.

Voir aussi
Types de sous-bloc (Page 122)

2.5.6.5 Bloc de paramètres pour liaison FTP

Signification
Pour pouvoir exécuter les séquences de tâches FTP entre la station S7 client FTP et un
serveur FTP, le CP Advanced doit établir une liaison à la CPU S7. Nous nommerons cette
liaison ici liaison FTP.
Les liaison FTP sont des liaisons TCP qui sont mises en mode "FTP" par le paramètre
SUB_LOC_MODE.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 121
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Structure
Entrez les paramètres dans le bloc de paramètres pour liaisons FTP comme suit :

 Type = 1 -> ①

 ID = ID de liaison -> ②

 Nombre_sous-blocs = n

 Sous-bloc 1

 Sous-bloc 2

 Sous-bloc n
...

Légende :
① Indication du type de liaison
② référence de liaison attribuable par l'utilisateur ; à spécifier dans AG_SEND / AG_RECV.
Valeurs admises pour l'ID de liaison :
pour S7-400 : 1, 2...64
pour S7-300 : 1,2...16

Sous-blocs utilisables

Sous-bloc Paramètre
ID Type Particularités / Notes Emploi ***)
18 SUB_CONNECT_NAME - +
19 SUB_LOC_MODE en l'occurrence : 0x01 = protocole FTP ++
21 SUB_KBUS_ADR Pour les CP de S7-300 cette valeur ++ (pour S7-400)
invariable est 0 et n'est donc pas à
spécifier.
***) ++ = obligatoire ; + = facultatif

Voir aussi
Types de sous-bloc (Page 122)

2.5.7 Types de sous-bloc


Les paramètres requis varient en fonction du bloc de paramètres. Chaque paramètre est
décrit par un sous-bloc. Les sous-blocs requis sont spécifiés dans les descriptions relatives
aux données système et aux types de liaison dans les chapitres ci-avant.
Chaque sous-bloc est constitué d'une section de paramètre spécifique ainsi que d'un en-tête
(4 octets).

Blocs de programme pour CP S7 SIMATIC NET


122 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Exemple
L'extrait d'un CONF_DB ci-après présente la structure d'un sous-bloc en prenant pour
exemple le type de sous-bloc SUB_NETMASK.

Adresse Nom Type Valeur de Commentaire


début
+14.0 Sub_Block_2 STRUCT // Sous-bloc 2 type
SUB_NETMASK
+0.0 Sub_Block_ID INT 2 // ID de sous-bloc
+2.0 Sub_Block_Len INT 8 // Longueur totale du sous-bloc
en octets
+4.0 Paramètre STRUCT Zone de paramètre
SUB_NETMASK
+0.0 Valeur_1 BYTE B#16#FF
+1.0 Valeur_2 BYTE B#16#FF
+2.0 Valeur_3 BYTE B#16#FF
+3.0 Valeur_4 BYTE B#16#0
=4.0 END_STRUCT
=8.0 END_STRUCT

Les types de sous-bloc suivants sont disponibles :

ID de Type de sous-bloc Longueur de sous-bloc Signification du paramètre


sous-bloc 1) (en octets)
1 SUB_IP_V4 4+4 Adresse IP selon IPv4
2 SUB_NETMASK 4+4 Masque de sous-réseau
3 SUB_DNS_NAME Longueur de nom DNS Nom DNS
+4
4 SUB_DNS_SERV_ADDR 4+4 Adresse de serveur DNS
8 SUB_DEF_ROUTER 4+4 Adresse IP du routeur par défaut
9 SUB_LOC_PORT 2+4 Port local
10 SUB_REM_PORT 2+4 Port distant, également pour liaisons de
courrier électronique
11 SUB_LOC_TSAP Longueur de TSAP + 4 TSAP local *
12 SUB_REM_TSAP Longueur de TSAP + 4 TSAP distant *
13 SUB_EMAIL_SENDER Longueur de l'adresse Adresse de message de l'expéditeur
de message de
l'expéditeur + 4
14 SUB_DHCP_ENABLE 2+4 Obtenir l'adresse IP d'un serveur DHCP.
 Plage de valeurs :

0 = pas de DHCP

1 = DHCP
(facultatif)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 123
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

ID de Type de sous-bloc Longueur de sous-bloc Signification du paramètre


sous-bloc 1) (en octets)
15 SUB_CLIENT_ID Longueur de l'ID client (facultatif)
+4
18 SUB_CONNECT_NAME Longueur du nom + 4 Nom de la liaison Valeurs possibles : a...z,
A...Z, 0...9, -, _
19 SUB_LOC_MODE 1+4 Mode local de la liaison
 Plage de valeurs :

0x00 = SEND/RECV

0x01 = protocole FTP (uniquement pour


liaison TCP)

0x10 = mode d'adressage S5 pour


FETCH/WRITE *)

0x20 = SPEED SEND/RECV


(uniquement autorisé pour CP 443-1
Advanced)

0x80 = FETCH *)

0x40 = WRITE *)
Le paramétrage par défaut lorsque ce
paramètre n'est pas spécifié est
SEND/RECV.
Remarque :
FETCH / WRITE nécessitent le paramétrage
d'un établissement de liaison passif (voir
sous SUB_CON_ESTABL).
20 SUB_REM_MODE 1+4 Paramétrage du mode sur le partenaire de
communication.
(n'est pas pris en charge)
21 SUB_KBUS_ADR 5  Pour S7-400

Adresse du bus de communication de la


CPU
 Pour S7-300

A entrer comme valeur fixe de l'adresse


d'emplacement : 2
22 SUB_CON_ESTABL 1+4 Type d'établissement de liaison
Cette option définit si l'établissement de
liaison par la station S7 est actif ou passif.
 Plage de valeurs :

0 = passif

1 = actif

Blocs de programme pour CP S7 SIMATIC NET


124 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

ID de Type de sous-bloc Longueur de sous-bloc Signification du paramètre


sous-bloc 1) (en octets)
23 SUB_ADDR_IN_DATA-BLOCK 1+4 Sélection d'une liaison UDP libre.
L'abonné distant est inscrit par le programme
utilisateur, lors de l'appel AG_SEND, dans
l'en-tête de tâche du tampon de tâches. Ceci
permet d'accéder à n'importe quel abonné
du réseau Ethernet/LAN/WAN.
 Plage de valeurs :

1 = liaison UDP libre

0 = autre
Ce paramètre n'est utile que pour une liaison
UDP.
24 SUB_NTP_SERVER 4+4 Ce sous-bloc définit un serveur NTP auprès
duquel le CP se procure la date/heure via le
protocole NTP.
Si un ou plusieurs serveurs NTP ont été
définis, il est possible de spécifier jusqu'à 4
sous-blocs à ID 24.
Les sous-blocs à ID 24 doivent être
uniquement incorporés au bloc de
paramètres système de type 0 / ID 0.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 125
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

ID de Type de sous-bloc Longueur de sous-bloc Signification du paramètre


sous-bloc 1) (en octets)
30 SUB_DEVICE_NAME Longueur du nom + 4 Nom d'appareil selon les conventions
PROFINET IO
Le nom d'appareil doit être conforme aux
conventions DNS, c.-à-d.
 Limitation à 127 caractères (lettres,
chiffres, trait d'union ou point)
 Un élément du nom d'appareil, c.-à-d.
une chaîne de caractère entre deux
points, ne doit pas dépasser 63
caractères.
 Les caractères spéciaux tels que trémas,
parenthèses, trait de soulignement, barre
oblique, espace, etc. sont interdits. Le
seul caractère spécial autorisé est le trait
d'union.
 Le nom d'appareil ne doit pas débuter ni
se terminer par les caractères "-" ou ".".
 Le nom d'appareil ne doit pas débuter
par des chiffres.
 Le nom d'appareil ne doit pas être de
type n.n.n.n (n = 0...999).
 Le nom d'appareil ne doit pas débuter
par la chaîne de caractères "port-xyz-"
(x,y,z = 0...9).
1) Nota : les numéros d'ID ne figurant pas ici ne sont pas encore utilisés.

* Pour sous-blocs 11 et 12 : si la longueur de sous-bloc est égale à un nombre impair d'octets, un octet complémentaire est
rajouté pour que le sous-bloc suivant possède à nouveau une adresse à nombre d'octets pair. L'octet complémentaire
n'est pas affiché dans la longueur du sous-bloc, mais doit être pris en compte dans la longueur totale du bloc de
données.

Voir aussi
Bloc de données de configuration - Exemple (Page 112)

2.5.8 IP_CONFIG - signification et appel

Signification du bloc
Le FB55 transmet au CP, dans un bloc de données (DB de configuration), la configuration IP
spécifiée ainsi que les données de liaison. Le DB de configuration contient toutes les
données de liaison nécessaires à la configuration des liaisons de l'interface SEND/RECEIVE
d'un CP Ethernet.

Blocs de programme pour CP S7 SIMATIC NET


126 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Vous pouvez recourir à cette variante des liaisons de communication programmées au lieu
de configurer les liaisons avec STEP 7.
La transmission au CP se fait en plusieurs segments, suivant la taille du DB de
configuration. Vous devez donc appeler de nouveau le FB jusqu'à ce qu'il signale
l'achèvement de la transmission par le bit DONE=1.

Appel
Interface d'appel en représentation LOG

,3B&21),*

%22/ $&7 '21( %22/

:25' /$''5 (5525 %22/

$1< &21)B'% 67$786 :25'

,17 /(1 (;7B67$786 :25'

Exemple en représentation LIST

LIST Explication
call fb 55 ( //Appel du bloc IP_CONFIG
ACT := M 10.0, //Lancement de la tâche par bit de mémento
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
CONF_DB:= P#db99.dbx10.0 byte 240, //Bloc de données avec données de liaison
LEN := MW 14, //Longueur des données de liaison
DONE := M 10.1, //Indication d'exécution
ERROR := M 10.2, //Indication d'erreur
STATUS := MW 16, //Indication d'état
EXT_STATUS := MW 18); //Cause d'erreur dans les données de liaison

Remarque
Pas d'emploi du FB55 en cas d'utilisation du CP avec des liaision S7 à haute disponibilité
Si vous configurez sur le CP des liaisons S7 à haute disponibilité, n'employez pas de FB55
pour la configuration IP du CP.

Remarque
Veillez à ne pas effectuer de double adressage
Si vous utilisez le FB55, veillez particulièrement à n'attribuer que des adresses IP uniques. Il
se peut qu'en cas de détection d'une adresse double, le CP ne soit pas activé sur le réseau.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 127
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.9 Mode de travail de IP_CONFIG

Maniement dans le programme utilisateur


Lors de l'utilisation du FB55, vous devez distinguer les applications suivantes :
● Application standard
Appelez le FB55 dans l'OB de démarrage (OB100). Le CP a alors déjà obtenu, au
démarrage de l'OB1, sa configuration IP et le cas échéant sa configuration de liaison.
● Utilisation dans des systèmes à haute disponibilité (systèmes H)
La marche à suivre recommandée ci-après vous permet, en cas d'activation de la
redondance du système H de configurer également le CP du système redondant via le
FB55.

Remarque
CPU à l'état MARCHE
Dans un système H, vous ne pouvez configurer un CP avec un FB55 que si la CPU
correspondante se trouve à l'état MARCHE.

Dans le système H, seul un rack est mis en marche dans un premier temps. Ceci a pour
conséquence que la CPU ne peut accéder qu'à sa propre périphérie (CP). C'est pourquoi
vous ne pouvez paramétrer avec le FB55 dans l'OB de démarrage (OB100) que les CP
de ce rack.
Pour pouvoir également paramétrer des CP dans le rack redondant, nous vous
recommandons de procéder comme suit :
1. Programmez dans l'OB100 les appels FB55 pour tous les CP devant obtenir une
configuration par le FB55.
2. Au démarrage des divers FB55, enregistrez l'information signalant la configuration ou non
des divers CP.
3. Lorsque le système H active la branche redondante, l'OB72 (erreur de redondance CPU)
est automatiquement appelé. Veillez à ce qu'au cours de l'exécution de l'OB72, une
information d'état spécifiant les FB de configuration (FB55) à appeler soit enregistrée.
4. Appelez ensuite dans l'OB1, au moyen de cette information d'état préalablement
enregistrée, les FB55 nécessaires à la configuration des CP du système redondant.
Remarque :
Vous pouvez, d'une manière générale, renouveler dans l'OB72 les appels de FB55 qui
n'ont pas abouti lors de l'exécution de l'OB100. S'agissant cependant d'un FB nécessitant
plusieurs appels, cela prolongerait la durée d'exécution de l'OB. C'est la raison pour
laquelle nous recommandons la méthode dans l'OB1.

Mode de travail
Le diagramme séquentiel ci-après illustre le déroulement normal dans le temps d'une
configuration IP et d'une configuration de liaison lancée dans le programme utilisateur par
IP_CONFIG.
La tâche est exécutée dès que le paramètre ACT = 1 est transféré.

Blocs de programme pour CP S7 SIMATIC NET


128 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

Ensuite, en raison de la transmission du CONF_DB segment par segment, vous devez


appeler de nouveau la tâche avec ACT =1 jusqu'à ce que son achèvement soit signalé par
les paramètres DONE, ERROR et STATUS.
S'il faut transmettre à nouveau une configuration de liaison ultérieurement, un appel au
moins doit transférer auparavant le paramètre ACT = 0.

3URJUDPPHXWLOLVDWHXU (WKHUQHW&3
F\FOHGHOD&38

9DORULVHU&21)B'%
DYHFGRQQ«HV

0HWWUH$&7 

&DOO,3B&21),*
W¤FKHHQFRXUV

 /H&3UH©RLWGHVGRQQ«HV
V\VWªPH \FRPSULV
O
DGUHVVH,3 
&21)B'%HVWWUDQVPLV
VHJPHQWSDUVHJPHQW &DOO,3B&21),*  /HVOLDLVRQVVRQWFRQILJX

U«HVVXUOH&3
W¤FKHHQFRXUV

&DOO,3B&21),*
7¤FKHWHUPLQ«HVDQVHUUHXU

0HWWUH$&7 

&DOO,3B&21),*

7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Remarque
Les données communiquées au moyen du DB de configuration et stockées dans le CP n'y
sont pas protégées contre une chute de tension ; il faut les charger de nouveau dans le CP
après une interruption de la tension !

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 129
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.10 Explication des paramètres formels - IP_CONFIG

Explication des paramètres formels


Le tableau ci-après décrit tous les paramètres formels pour l'interface d'appel du bloc
fonctionnel IP_CONFIG :

Paramètre Déclaration Type de Valeurs admises Description


données
ACT INPUT BOOL 0,1 Quand le FB est appelé avec ACT = 1, le DBxx est
envoyé au CP.
Quand le FB est appelé avec ACT = 0, les indications
d'état DONE, ERROR et STATUS sont mises à jour.
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche dans le tableau de
configuration. Indiquez cette adresse ici.
CONF_DB INPUT ANY Ce paramètre désigne l'adresse de début de la zone
de données de configuration dans un bloc de données
(type de données : BYTE).
LEN INPUT INT Indication de longueur en octets pour la zone de
données de configuration.
DONE OUTPUT BOOL 0: - Ce paramètre indique si la zone de données de
1 : tâche avec configuration a été entièrement transmise.
transmission de Notez bien que, selon la taille de la zone de données
données terminée. de configuration, le FB doit être lancé plusieurs fois
(dans plusieurs cycles) jusqu'à ce que l'indication
DONE=1 signale l'achèvement.
Pour sa signification en corrélation avec les
paramètres ERROR et STATUS, voir sous Indications
IP_CONFIG (Page 131)
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les
paramètres DONE et STATUS, voir sous Indications
IP_CONFIG (Page 131)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres DONE et ERROR, voir sous Indications
IP_CONFIG (Page 131)
EXT_ OUTPUT WORD Ce paramètre indique, en cas d'exécution erronée de
STATUS la tâche, quel paramètre du DB de configuration a été
reconnu comme cause d'erreur.
Octet de poids fort : indice du bloc de paramètres
Octet de poids faible : indice du sous-bloc dans le bloc
de paramètres

Blocs de programme pour CP S7 SIMATIC NET


130 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

2.5.11 Numéros de port réservés - IP_CONFIG

Numéros de port réservés


Les numéros de port locaux suivants sont réservés ; ne les utilisez pas dans la configuration
des liaisons.

Tableau 2- 18 Numéros de port réservés

Protocole Numéro de port Service


TCP 20, 21 FTP
TCP 25 SMTP
TCP 80 HTTP
TCP 102 RFC1006
TCP 135 RPC-DCOM
HTTPS 443 Security
Sur les CP à fonction de
sécurité des données
TCP 502 ASA Application Protocol
UDP 161 SNMP_REQUEST
UDP 34964 PN IO
UDP 65532 NTP
UDP 65533 NTP
UDP 65534 NTP
UDP 65535 NTP

2.5.12 Indications IP_CONFIG

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Tableau 2- 19 Indications de FB55 IP_CONFIG

DONE ERROR STATUS Signification


Indications générales sur l'exécution de la tâche
1 0 0000H Tâche terminée sans erreur
0 0 8181H Tâche en cours.
Erreurs qui ont été détectées sur l'interface entre CPU et CP.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 131
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

DONE ERROR STATUS Signification


0 1 80A4H  Erreur de communication sur le bus de communication
ou
 Erreur de données : il n'est pas réglé que la configuration se fasse au moyen du
programme utilisateur.
0 1 80B1H Le nombre de données à émettre dépasse la limite supérieure autorisée pour ce
service (limite supérieure = 16 Ko)
0 1 80C4H Erreur de communication
L'erreur peut survenir temporairement, une répétition dans le programme utilisateur est
donc judicieuse.
0 1 80D2H Erreur de configuration
Le module utilisé ne supporte pas ce service.
Erreurs qui ont été détectées en exploitant le FB dans la CPU ou sur l'interface entre CPU et CP.
0 1 8183H Le CP refuse le numéro d'enregistrement demandé.
0 1 8184H Erreur système ou type de paramètre illicite (type de données du pointeur ANY
CONF_DB incorrect)
(Actuellement, seul le type de données Byte est accepté)
0 1 8185H La valeur du paramètre LEN est supérieure au CONF_DB diminué de l'en-tête réservé
(4 octets) ou l'indication de longueur est fausse.
0 1 8186H Paramètre illicite détecté
Le pointeur ANY CONF_DB ne renvoie pas à un bloc de données.
0 1 8187H Etat incorrect du FB
Eventuellement, des données ont été écrasées dans l'en-tête du CONF_DB.
Autres erreurs qui ont été détectées sur l'interface entre CPU et CP.
0 1 8A01H L'indication d'état est incorrecte dans l'enregistrement lu (valeur >= 3).
0 1 8A02H Aucune tâche n'est en cours sur le CP, mais le FB a attendu un acquittement pour
tâche achevée.
0 1 8A03H Aucune tâche n'est en cours sur le CP et le CP n'est pas prêt ; le FB a lancé une
première tâche de lecture d'enregistrement.
0 1 8A04H Aucune tâche n'est en cours sur le CP et le CP n'est pas prêt ; mais le FB a attendu un
acquittement pour la tâche achevée.
0 1 8A05H Une tâche est en cours, mais l'acquittement n'a pas encore eu lieu ; le FB a pourtant
lancé une première tâche de lecture d'enregistrement.
0 1 8A06H Une tâche est terminée ; le FB a pourtant lancé une première tâche de lecture
d'enregistrement.
Erreurs qui ont été détectées en exploitant le FB dans le CP.
0 1 8B01H Erreur de communication.
Impossible de transmettre le DB.
0 1 8B02H Erreur de paramètre
Bloc de paramètres en double
0 1 8B03H Erreur de paramètre
Ce sous-bloc n'est pas autorisé dans le bloc de paramètres.
0 1 8B04H Erreur de paramètre
La longueur indiquée dans le FB ne concorde pas avec la longueur des blocs de
paramètres ou sous-blocs.

Blocs de programme pour CP S7 SIMATIC NET


132 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.5 Blocs de programme pour liaisons programmées et configuration IP

DONE ERROR STATUS Signification


0 1 8B05H Erreur de paramètre
La longueur du bloc de paramètres est incorrecte.
0 1 8B06H Erreur de paramètre
La longueur du sous-bloc est incorrecte.
0 1 8B07H Erreur de paramètre
L'ID du bloc de paramètres est incorrecte.
0 1 8B08H Erreur de paramètre
L'ID du sous-bloc est incorrecte.
0 1 8B09H Erreur système.
La liaison n'existe pas.
0 1 8B0AH Erreur de données
Le contenu du sous-bloc n'est pas correct.
0 1 8B0BH Erreur de structure
Un sous-bloc est mentionné deux fois.
0 1 8B0CH Erreur de données
Le bloc de paramètres ne contient pas tous les paramètres nécessaires.
0 1 8B0DH Erreur de données
Le CONF_DB ne contient pas de bloc de paramètres pour données système.
0 1 8B0EH Erreur de données / erreur de structure
Le type de CONF_DB est incorrect.
0 1 8B0FH Erreur système.
Le CP n'a pas assez de ressources pour pouvoir traiter CONF_DB dans son entier.
0 1 8B10H Erreur de données
il n'est pas réglé que la configuration se fasse au moyen du programme utilisateur.
0 1 8B11H Erreur de données
Le type indiqué pour le bloc de paramètres est incorrect.
0 1 8B12H Erreur de données
Le nombre de liaisons indiqué est trop élevé (soit le nombre total, soit pour un certain
type ; par ex. il n'y a qu'une seule liaison e-mail possible).
0 1 8B13H Erreur interne au CP
0 1 8B14H Le niveau de protection actif ne permet pas l'action pour modification.
Autres erreurs qui ont été détectées sur les interfaces de programme dans la CPU (erreurs de SFC).
0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, protégé en écriture.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, protégé en écriture.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH Zone cible non chargée (DB).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 133
Blocs de programme pour Industrial Ethernet
2.6 Blocs de programme pour CP ERPC

DONE ERROR STATUS Signification


0 1 8F42H Retard d'acquittement à la lecture d'un paramètre depuis la zone de périphérie.
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 1 8F44H L'accès à un paramètre à lire au cours du traitement de bloc est verrouillé.
0 1 8F45H L'accès à un paramètre à écrire au cours du traitement de bloc est verrouillé.
0 1 8F7FH Erreur interne
Une référence ANY illicite a été détectée, par exemple.

2.6 Blocs de programme pour CP ERPC

2.6.1 LOGICAL_TRIGGER pour le déclenchement logique

Signification du bloc fonctionnel


Le bloc fonctionnel FB56 LOGICAL_TRIGGER est prévu pour l'utilisation d'un
déclenchement logique pour la communication ERPC.
Pour lancer un déclenchement logique, il faut appeler le bloc de programme
LOGICIAL_TRIGGER dans l'OB1 du programme utilisateur sur la CPU.
D'autres blocs sont nécessaires pour l'appel du bloc de programme LOGICAL_TRIGGER :
● Un DB d'instance généré automatiquement
● Un bloc de données "CONF_DB"
Ce DB de configuration contient les données de configuration du déclenchement logique.
Le DB de configuration doit être créé et configuré dans le projet STEP 7.
Si vous voulez appeler plusieurs déclencheurs logiques, vous devez mettre à disposition
plusieurs DB de configuration.
Les numéros du FB56 et du DB d'instance peuvent être modifiés.

Validité
Le bloc de programme LOGICAL_TRIGGER est utilisable avec les types de module suivants
:
● CP 343-1 ERPC

Blocs de programme pour CP S7 SIMATIC NET


134 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.6 Blocs de programme pour CP ERPC

Appel
Interface d'appel en représentation LOG

/2*,&$/B75,**(5

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

,17 &21)B'%

,17 &QI/HYHO

Tableau 2- 20 Exemple en représentation LIST

call fb 56, DatabaseInstanceDB ( //Appel du FB56 dans la zone de données


ACT := TRUE, //Déclenchement de la tâche par la valeur = 1
ID := 1 //ID de déclenchement (valeurs admises : 1...16)
LADDR := W#16#100, //Adresse de début de module
CONF_DB:= 1, //Bloc de données de configuration (ici : DB 1)
CnfLevel:= 1, //Mode d'acquittement (ici : 1)
DONE := M 1.1, //Indication d'exécution
ERROR := M 1.2, //Indication d'erreur
STATUS := MW 2); //Indication d'état

2.6.2 Fonctionnement LOGICAL_TRIGGER

Mode de fonctionnement
Le tableau ci-après montre les étapes d'un appel de déclenchement par le programme
utilisateur de la CPU.

Etape Signification
1 Le FB56 LOGICAL_TRIGGER est appelé à l'emplacement prévu du programme
utilisateur de la CPU avec le DB d'instance adéquat et le bloc de données CONF_DB
configuré.
 Si le bloc FB56 LOGICAL_TRIGGER est appelé par ACT = 1, les données
momentanées du déclenchement sont lues et transmises au firmware du CP.
 Si le FB56 LOGICAL_TRIGGER est appelé par ACT = 0, les indications d'état
DONE, ERROR et STATUS sont mises à jour.
2 Le FB56 LOGICAL_TRIGGER lit les données de déclenchement momentanées.
3 Le FB56 LOGICAL_TRIGGER génère la PDU qui est transmise au firmware du CP
avec les données de déclenchement momentanées.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 135
Blocs de programme pour Industrial Ethernet
2.6 Blocs de programme pour CP ERPC

Etape Signification
4 Le firmware du CP génère un télégramme de données et le transmet à l'application
ERPC.
5 L'application ERPC transmet le télégramme de données aux abonnés ERP (système
ERP ou MES).

2.6.3 Explication des paramètres formels - LOGICAL_TRIGGER

Explication des paramètres formels


Le tableau ci-après décrit tous les paramètres formels de l'interface d'appel du bloc
fonctionnel FB56 LOGICAL_TRIGGER :

Paramètre Déclaration Type de Valeurs admises Description


données
ACT INPUT BOOL 0 Si le FB est appelé par ACT = 0, les indications d'état
DONE, ERROR et STATUS sont mises à jour.
1 Si le FB est appelé par ACT = 1, les données
momentanées du déclenchement sont lues et
transmises au CP.
ID INPUT INT ID de déclenchement
Cette valeur identifie le déclenchement logique
configuré dans le Workbench ILS.
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP sous STEP 7, l'adresse
de début du module s'affiche. Indiquez cette adresse
ici.
CONF_DB INPUT INT Ce bloc de données contient les données de
configuration des déclenchements logiques configurés.

Blocs de programme pour CP S7 SIMATIC NET


136 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.6 Blocs de programme pour CP ERPC

Paramètre Déclaration Type de Valeurs admises Description


données
CnfLevel INPUT INT 0: Acquittement de Mode d'acquittement
transport Le mode d'acquittement est indiqué par la valeur de
1: Acquittement de STATUS dans les indications du FB56.
bout en bout
 0 = acquittement de transport (STATUS = 0000H)

Signale que la tâche a été exécutée avec succès


dès que les données ont été remises à l'application
ERPC.

Cela ne veut pas forcément dire que le télégramme


de données a été transmis à l'abonné ERP
(système ERP ou MES) ou que l'application ERPC
n'a pas détectée ultérieurement une erreur.
 1 = acquittement de bout en bout
(STATUS = 0001H)
La tâche n'est acquittée qu'après contrôle des
données par l'application ERPC.

La variable "TriggerResponse" du DB de
configuration (DB_CONF) signale que l'accès à
l'abonné ERP était possible ou que l'application
ERPC se trouve en mode Store-and-Forward.

Le temps d'exécution de la tâche est plus long avec


un acquittement de bout en bout qu'avec un
acquittement de transport.
DONE OUTPUT BOOL 0: Tâche en cours. Ce paramètre signale l'exécution correcte de la tâche
1: Tâche terminée de transmission de la zone de données de
configuration.
DONE est mis à 0 par le CP lors de l'acceptation de la
tâche. Tant que DONE = 0, il n'est pas possible de
déclencher une nouvelle tâche.
Pour sa signification en relation avec les paramètres
ERROR et STATUS, voir le tableau "Indications FB56
LOGICAL_TRIGGER".
ERROR OUTPUT BOOL 0: - Indication d'erreur
1: Erreur Pour sa signification en relation avec les paramètres
DONE et STATUS, voir le tableau "Indications FB56
LOGICAL_TRIGGER".
STATUS OUTPUT WORD Voir tableau Indication d'état
"Indications FB56 Pour sa signification en relation avec les paramètres
LOGICAL_TRIGGER". DONE et ERROR, voir le tableau "Indications FB56
LOGICAL_TRIGGER".

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 137
Blocs de programme pour Industrial Ethernet
2.6 Blocs de programme pour CP ERPC

2.6.4 Indications LOGICAL_TRIGGER

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Tableau 2- 21 Indications FB56 LOGICAL_TRIGGER

DONE ERROR STATUS Signification


Indications sur l'exécution de la tâche
1 0 0000H Tâche terminée sans erreur. Le déclenchement logique s'est terminé avec succès.
1 0 0001H Tâche terminée sans erreur. Impossible d'accéder à la base de données (mode Store-
and-Forward).
0 0 8181H Tâche en cours.
0 1 7000H Le FB56 a été appelé par ACT = 0. La tâche n'est cependant pas exécutée.
Appelez le bloc au moins une fois par ACT = 1.
Indications concernant la configuration et l'exécution du déclenchement logique
0 1 80D2H Le CP utilisé ne prend pas en charge la communication ERPC (type de CP erroné).
0 1 8183H Le CP utilisé ne prend pas en charge la communication ERPC (type de CP erroné).
0 1 8187H Etat invalide du FB56 (LOGICAL_TRIGGER_STATE inconnu).
Appelez à nouveau le bloc.
0 1 8A01H Le nombre de déclenchements logiques configurés est égale à 0.
0 1 8A02H Il n'existe pas de configuration dans le DB de configuration pour ce déclenchement
logique.
Vérifiez la configuration Workbench ILS.
0 1 8A03H La structure du DB de configuration est incorrecte. Le "header identifier" ne possède
pas la bonne valeur.
Corrigez dans le DB de configuration la valeur de la variable "ident" (voir manuel du CP
ERPC).
0 1 8A04H La structure du DB de configuration est incorrecte.
Chargez à nouveau la configuration Workbench ILS sur le CP, créez à nouveau le (les)
DB de configuration et configurez-le (voir manuel du CP ERPC).
0 1 8A05H Le DB de configuration configuré n'existe pas sur la CPU.
0 1 8A06H Lors d'un appel subséquent, un déclenchement en cours d'exécution a été appelé avec
un autre ID.
Vérifier l'"ID" dans les blocs fonctionnels FB56 appelés.
0 1 8A08H Les données de configuration du DB de configuration sont inexistantes ou incomplètes.
Si l'erreur survient uniquement au démarrage de la station S7, il se peut que les
données de configuration du déclenchement logique n'aient pas encore été
intégralement transmises au DB de configuration.
Si l'erreur persiste, contrôlez la configuration des mnémoniques ERPC.
0 1 8A09H Une erreur inconnue a été signalée dans le DB de configuration.
0 1 8A0AH Le déclenchement logique ne peut pas être activé car une nouvelle configuration de
déclenchement est en cours de chargement.
0 1 8A0BH Erreur de transmission de l'horodatage de l'enregistrement de données actuel
(données de CPU).

Blocs de programme pour CP S7 SIMATIC NET


138 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.6 Blocs de programme pour CP ERPC

DONE ERROR STATUS Signification


0 1 8A0CH Le DB de configuration a été généré avec la propriété "Unlinked".
Rectifiez les propriétés d'objet du bloc.
0 1 8A0DH Erreur de paramètre d'entrée CONF_DB du FB56. Le paramètre a la valeur "0" ou est
supérieur au numéro de DB maximal admissible pour la CPU.
0 1 8A0EH L'ID de déclenchement transmis est hors de la plage admissible de 1...16.
Rectifiez la valeur dans l'appel du FB56 dans le programme utilisateur.
0 1 8A0FH Le mode d'acquittement spécifié (CnfLevel) est invalide.
Rectifiez la valeur dans l'appel du FB56 dans le programme utilisateur.
0 1 8BxxH Erreur de recopie des valeurs momentanées de variable dans la PDU du
déclenchement logique. Les deux derniers chiffres (xx) indiquent le numéro de la
variable.
Contrôlez la configuration du mnémonique concerné dans la table des mnémoniques
de la CPU et dans la liste des mnémoniques ERPC du dialogue des propriétés du CP.
0 1 8C01H L'indication interne d'état du FB56 est invalide.
Chargez à nouveau la configuration Workbench ILS sur le CP, créez à nouveau le (les)
DB de configuration et configurez-le (voir manuel du CP ERPC).
0 1 8C02H La valeur retournée par l'acquittement de bout en bout est invalide.
Chargez à nouveau la configuration Workbench ILS sur le CP, créez à nouveau le (les)
DB de configuration et configurez-le (voir manuel du CP ERPC).
0 1 8C03 H Le déclenchement logique contient plus de 255 variables.
0 1 8C06 H Erreur de lecture d'enregistrement de données.
0 1 8D03 H Le firmware signale un timeout lors d'une action de base de données.
0 1 8D04H L'application de base de données signale une erreur générale lors de l'acquittement de
l'action momentanée.
0 1 8E01H Le DB de configuration configuré dans la CPU n'est pas assez grand.
Modifiez la taille du DB de configuration.
0 1 8EXXH Le code d'état avec des valeurs de XXH dans la plage de 02H..FFH reproduit des
images d'une réponse de déclenchement interne.
Si de telles valeurs surviennent, elles sont destinées au S.A.V.

2.6.5 Le bloc de données de configuration

Mise à disposition du bloc de données de configuration "CONF_DB"


Si vous utilisez la fonction ERPC "déclenchement logique", vous devez créer sous STEP 7
un bloc de données (DB) pour les données de configuration du déclenchement logique et
l'indiquer dans les paramètres d'appel du FB56. Le FB56 accède au CONF_DB. Le
CONF_DB n'a sinon pas de signification pour le programme utilisateur.

Programmation du bloc de données de configuration


Pour identifier le DB qui vient d'être créé, ouvrez le DB et définissez dans les deux
premières lignes libres le "header identifier" et la taille du DB.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 139
Blocs de programme pour Industrial Ethernet
2.7 Capacité fonctionnelle / Besoins en ressources des blocs de programme (Ethernet)

Ouvrez le DB sous STEP 7 et configurez les deux premières lignes libres avec les variables
"ident" et "data" comme suit :

Adresse Nom Type Valeur de début Commentaire (facultatif)


*) STRUCT *)
*) ident DWORD DW#16#45525043 header identifier
*) data array[1..2048] Taille du DB (voir
avertissement ci-après)
*) Byte

*) END_STRUCT *)
*) Les valeurs sont entrées par le programme

Remarque
Taille de DB
La taille de DB recommandée est 2 048 octets. Si, durant la mise en service, il s'avère que
cette valeur est insuffisante, augmentez-la. Si la valeur est insuffisante, le FB56
LOGICAL_TRIGGER le signale par une erreur et l'indication STATUS "8A05H".

2.7 Capacité fonctionnelle / Besoins en ressources des blocs de


programme (Ethernet)

Besoin en ressources

Remarque
Tenez compte de la version des blocs. Les versions de bloc fournies actuellement peuvent
être différentes des versions de bloc indiquées ici. Le besoin en ressources peut être
différent pour les blocs d'une autre version.
Vous trouverez des informations sur les versions de bloc actuelles sous le numéro d'article :
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Blocs de programme pour CP S7 SIMATIC NET


140 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour Industrial Ethernet
2.7 Capacité fonctionnelle / Besoins en ressources des blocs de programme (Ethernet)

Tableau 2- 22 Indications pour FC / FB avec S7-400

NOM Version Nº de Besoins en Besoins en MC7 [octets] Données


FC/FB mémoire de mémoire centrale locales [octets]
chargement [octets]
[octets]
AG_SEND 1.2 FC5 732 576 540 20
AG_RECV 1.2 FC6 656 522 486 20
AG_LOCK 1.0 FC7 272 200 164 6
AG_UNLOCK 1.0 FC8 256 186 150 6
AG_CNTRL 1.0 FC10 2048 1610 1574 178
AG_CNTEX 1.0 FB10 7002 6036 6000 78
AG_LSEND 3.1 FC50 1044 846 810 52
AG_LRECV 3.1 FC60 1190 992 956 58
AG_SSEND 1.2 FC53 1928 1618 1582 154
AG_SRECV 1.2 FC63 1882 1584 1548 158
IP_CONFIG 1.3 FB55 1864 1576 1540 76
FTP_CMD 2.0 FB40 2400 2084 2048 154
FTP_CONNECT 1.0 FC40 1482 1236 1200 86
FTP_STORE 1.0 FC41 1794 1514 1478 102
FTP_RETRIEVE 1.0 FC42 1934 1642 1606 106
FTP_DELETE 1.0 FC43 1478 1232 1196 86
FTP_QUIT 1.0 FC44 968 796 760 46

Tableau 2- 23 Indications pour FC / FB avec S7-300

NOM Version Nº de FC/FB Besoins en Besoins en MC7 [octets] Données


mémoire de mémoire centrale locales
chargement [octets] [octets]
[octets]
AG_SEND 4.2 FC5 1976 1664 1628 50
AG_RECV 4.7 FC6 1440 1206 1170 40
AG_LOCK 4.0 FC7 748 636 600 34
AG_UNLOCK 4.0 FC8 712 604 568 32
AG_CNTRL 1.4 FC10 1418 1152 1116 82
AG_CNTEX 1.0 FB10 4594 4006 3970 78
IP_CONFIG 1.3 FB55 2406 1984 1948 62
FTP_CMD 1.0 FB40 2590 2240 2204 70
FTP_CONNECT 1.1 FC40 928 774 738 68
FTP_STORE 1.1 FC41 1232 1046 1010 74
FTP_RETRIEVE 1.1 FC42 1306 1114 1078 84
FTP_DELETE 1.1 FC43 922 770 734 68
FTP_QUIT 1.1 FC44 452 370 334 28
LOGICAL_TRIGGER 1.0 FB56 4294 3648 3612 98

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 141
Blocs de programme pour Industrial Ethernet
2.7 Capacité fonctionnelle / Besoins en ressources des blocs de programme (Ethernet)

Blocs de programme pour CP S7 SIMATIC NET


142 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300) 3
3.1 Blocs de programme et leur utilisation en bref

Blocs de programme pour la transmission de données utiles


Pour la transmission cyclique de données à l'interface PROFINET IO, vous disposez des
blocs de programme ci-dessous. La signification des blocs de programme n'est pas la même
selon que le CP est utilisé comme contrôleur PROFINET IO ou comme périphérique
PROFINET IO dans une station S7.

Bloc de programme utilisable pour Signification


S7-300 S7-400
PNIO_SEND (FC11) x - Selon le mode de fonctionnement du
CP :
 avec contrôleur PROFINET IO

envoi des données de sortie du


process aux périphériques
PROFINET IO
 avec périphérique PROFINET IO
acheminement des données
d'entrée du process au contrôleur
PROFINET IO
PNIO_RECV (FC12) x - Selon le mode de fonctionnement du
CP :
 avec contrôleur PROFINET IO
réception des données d'entrée du
process des périphériques
PROFINET IO
 avec périphérique PROFINET IO
réception des données de sortie du
process du contrôleur PROFINET
IO

Pour les CP fonctionnant parallèlement en tant que contrôleur et périphérique PROFINET


IO, vous disposez des FC à partir de la version 2.0.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 143
Blocs de programme pour PROFINET IO (S7-300)
3.1 Blocs de programme et leur utilisation en bref

Blocs de programme pour la transmission d'enregistrements et d'informations d'alarme


Pour la transmission de données acyclique à l'interface PROFINET IO (enregistrements,
informations d'alarme), vous disposez des FB ci-dessous. Les deux blocs ne sont utilisables
qu'en mode contrôleur PROFINET IO.

Bloc de programme utilisable pour Signification


S7-300 S7-400
PNIO_RW_REC (FB52) x -  lecture d'un enregistrement
(depuis un périphérique
PROFINET IO)
 écriture d'un enregistrement
(sur un périphérique
PROFINET IO)
PNIO_ALARM (FB54) x - Réception des informations d'alarme
des périphériques PROFINET IO

Blocs de programme pour PROFIenergy


Les FB ci-après sont mis à disposition pour les fonctions PROFIenergy.

Bloc de programme utilisable pour Signification


S7-300 S7-400
PE_START_END_CP (FB85) x - Démarrage / fin d'une pause
d'économie d'énergie
(sur le contrôleur PROFINET IO)
PE_CMD_CP (FB86) x - Démarrage / fin d'une pause
d'économie d'énergie et lecture des
données d'énergie du périphérique
(sur le contrôleur PROFINET IO)
PE_I_DEV_CP (FB87) x - Exécution des commandes
PROFIenergy du contrôleur
(sur périphérique PROFINET IO)
Nécessite des fonctions
complémentaires FC 0...FC 8
(bibliothèque par défaut)
DS3_WRITE_CP (FB53) x - Transmission de données
PROFIenergy à un ET 200S
(sur le contrôleur PROFINET IO)
Pas de bloc PROFIenergy

Blocs de programme pour CP S7 SIMATIC NET


144 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2.1 PNIO_SEND

3.2.1.1 Signification et appel - PNIO_SEND

Signification et mode de fonctionnement


Le bloc de programme PNIO_SEND sert à transférer des données dans les modes
contrôleur et périphérique PROFINET IO du CP.
● Fonctionnement comme contrôleur PROFINET IO
Le bloc transmet les données de process (sorties) d'une zone de sortie spécifiée au CP
pour retransmission à des périphériques PROFINET IO. Le bloc délivre l'indication d'état
IO Consumer Status (IOCS) des sorties des périphériques PROFINET IO.
● Fonctionnement comme périphérique PROFINET IO
Le bloc lit dans le périphérique PROFINET IO les entrées de process prétraitées de la
CPU et il les transfère au contrôleur PROFINET IO (adresses d'entrée configurées) ; de
plus, le bloc fournit comme indication d'état le IO Consumer Status (IOCS) du contrôleur
PROFINET IO.
Les données de process prétraitées sont mises à disposition dans un DB ou dans une zone
de mémentos.

Compléments
● à partir de la version de bloc V2.0
PNIO_SEND prend en charge le fonctionnement parallèle d'un contrôleur et d'un
périphérique PROFINET IO Vous indiquez pour quel mode le FC est appelé au moyen du
paramètre supplémentaire MODE.
● à partir de la version de bloc V3.0
Le paramètre MODE offre les options de transmission de l'IO Consumer Status suivantes
:
– limitation à l'information d'état groupée dans le paramètre CHECK_IOCS, optimisée
pour une transmission plus rapide ;
ou
– des informations détaillées complémentaires dans le paramètre IO Consumer Status.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 145
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Interface d'appel (à partir de la version de bloc 2.0)


Interface d'appel en représentation LOG

31,2B6(1'

:25' &3/$''5 ,2&6 $1<

%<7( 02'( '21( %22/

,17 /(1 (5525 %22/

$1< 6(1' 67$786 :25'

&+(&.B,2&6 %22/

Exemple en représentation LIST

LIST Explication
call fc 11 ( //Appel de PNIO_SEND
CPLADDR:=W#16#0100, //Adresse du module dans la configuration matérielle
MODE :=B#16#80, //Fonctionnement en mode contrôleur ou périphérique ;
//Les bits d'état IOCS ne sont pas transmis
LEN :=20, //Longueur de la zone de données
IOCS :=P#DB10.DBX20.0 BYTE 3, //Un bit Status dans le DB10 par octet de données émises
DONE :=M 70.0, //Adresse pour paramètre en retour DONE
ERROR :=M 70.1, //Adresse pour paramètre en retour ERROR
STATUS :=MW 72, //Adresse pour paramètre en retour STATUS
CHECK_IOCS :=M 70.2, //Adresse pour paramètre en retour CHECK_IOCS
SEND :=P#DB10.DBX0.0 BYTE 20 ); //Zone de données à transmettre depuis DB10
//(20 octets)

Blocs de programme pour CP S7 SIMATIC NET


146 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2.1.2 Explication des paramètres formels - PNIO_SEND

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels du FC11 :

Paramètre Déclaration Type de Valeurs admises Description


données
CPLADDR INPUT WORD - Adresse de début du module
MODE INPUT BYTE Peuvent être indiqués pour Indication du mode de fonctionnement du
(paramètre à XYH : CP par :
partir de la  X0H : Y = indication du mode de fonctionnement
version 2.0) IO Controller ou IO Device ;
– Mode IO Controller
X = spécifie la transmission du message
– Mode IO-Device (quand
groupé dans CHECK_IOCS seule ou
il n'y a pas de
accompagnée de bits d'état
fonctionnement
complémentaires dans IOCS.
parallèle)
– Il y a compatibilité avec
le bloc FC de la version Remarques sur la compatibilité :
1.0.  La version 1.0 du FC peut être encore
 X1H : utilisée quand le CP n'est pas exploité
en parallèle comme IO Controller et IO
Mode Device IO (en
Device.
fonctionnement parallèle)
 La version 2.0 du FC se comporte
 0YH
comme la version 1.0 avec MODE=0.
Les bits d'état sont transmis  La version 3.0 du FC se comporte
dans IOCS. comme la version 2.0 avec MODE=0 et
 8YH MODE=1.

Limitation au message
groupé dans CHECK_IOCS
; pas de bits d'état dans
IOCS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 147
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
SEND IN_OUT ANY L'adresse de la zone de Indication de l'adresse et de la longueur
(seul BYTE données renvoie : Mode IO Controller :
est
 soit à une zone de la longueur doit être conforme à la longueur
autorisé
mémentos totale configurée pour la périphérie
comme
soit à une zone de bloc de décentralisée, les adresses manquantes
VARTYPE) 
étant également transmises.
données
La longueur peut être aussi inférieure à la
longueur totale de la périphérie
décentralisée, par ex. quand le bloc est
appelé plusieurs fois dans un OB. Mais elle
doit être égale à la longueur totale dans un
appel au moins.
Mode Device IO :
la structure des données résulte de l'ordre
des emplacements configurés sur le
segment du Controller PROFINET IO pour
les modules d'entrées de ce Device
PROFINET IO et de leur longueur sans
adresses manquantes.
Remarques :
 Le bloc commence à transmettre les
données à l'adresse 0 quelle que soit la
façon dont vous avez configuré les
adresses (indépendamment de la plus
petite adresse configurée).
 Il n'est pas permis d'indiquer une zone
de périphérie, car vous devez d'abord
vérifier que IOCS est GOOD avant de
pouvoir prendre des données en charge
dans la périphérie.

Blocs de programme pour CP S7 SIMATIC NET


148 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
LEN INPUT INT Valeur > 0 Longueur en octets de la zone de données à
La longueur totale maximale transmettre.
des zones de données à La transmission des données débute
transmettre est indiquée dans la toujours impérativement à l'adresse 0,
partie spécifique B du présent indépendamment de la configuration.
manuel au chapitre Veuillez noter que l'adresse IO "0" est prise
"Caractéristiques de en compte avec la longueur=1.
performance". Elle peut être Mode IO Controller :
différente en mode Controller et
en mode Device.  Il faut indiquer ici la plus haute adresse
configurée des périphériques. Les
différentes zones ne sont pas
rassemblées.
Quand le bloc est appelé plusieurs fois,
LEN peut être aussi inférieure à
l'adresse la plus haute. Il faut que
l'adresse la plus haute soit indiquée
dans un appel au moins (voir paramètre
"SEND").
 Les données sont transmises dans
l'ordre des adresses logiques (comme
pour PROFIBUS DP).

Mode Device IO :
 Les données sont transmises dans
l'ordre des emplacements comme les
modules d'entrée sont configurés pour
ce Device PROFINET IO sur le segment
du Controller PROFINET IO.

Nota :
vous devez faire le nécessaire pour
garantir la cohérence entre la longueur
programmée ici et la configuration du
Controller PROFINET IO. Pour le
Device, c'est toute la longueur de la
zone de données qui est transmise, y
compris les adresses éventuellement
manquantes.
DONE OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche a été
1 : nouvelles données prises en exécutée sans erreur.
charge
ERROR OUTPUT BOOL 0: -1: Erreurs Indication d'erreur
STATUS OUTPUT WORD - Indication d'état

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 149
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
CHECK_ OUTPUT BOOL 0: tous les IOCS sont GOOD Message groupé indiquant s'il est
IOCS 1: au moins un IOCS est BAD nécessaire d'exploiter la zone d'état IOCS
CHECK_IOCS est toujours fourni
indépendamment du paramètre MODE.
IOCS OUTPUT ANY (seul L'adresse de la zone de IO Consumer Status
BYTE est données renvoie : Un bit d'état est transmis pour chaque octet
autorisé de données utiles.
 soit à une zone de
comme
mémentos Condition : La transmission est demandée
VARTYPE)
 soit à une zone de bloc de dans le paramètre MODE (MODE=0 ou
MODE=1). Ce paramètre n'est significatif
données
que dans ce mode.
Longueur :
La longueur indiquée dépend de la longueur
pour la longueur maximale, dans le paramètre LEN (un bit par octet)
veuillez vous référer à la partie
spécifique B du présent manuel, = (longueur LEN + 7/8)
chapitre "Caractéristiques de Mode Controller :
performance". Elle peut être les adresses manquantes sont transmises
différente en mode Controller et conformément au paramètre SEND.
en mode Device. Les adresses manquantes sont transmises
avec l'état GOOD.
Mode Device :
les adresses manquantes ne sont pas
transmises.

Le bloc commence à transmettre l'état pour


l'adresse 0.
Nota :
la longueur minimale du pointeur ANY est
(longueur LEN + 7/8).

Remarque
Attente de la confirmation d'exécution
N'exécutez les actions ci-après qu'après signalisation par le bloc de DONE = 1 ou de
ERROR = 1 :
 analyse des paramètres de sortie ;
 modification du paramètre MODE.

Remarque
Vous devez partir de la supposition que l'état IOCS fourni ne sera pas synchrone avec les
données (paramètre SEND), mais en retard d'un cycle du programme utilisateur. Par
conséquent, les données utilisateur et l'IOCS ne sont pas cohérents.

Blocs de programme pour CP S7 SIMATIC NET


150 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2.1.3 Indications du bloc PNIO_SEND

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 3- 1 Indications de PNIO_SEND

DONE ERROR STATUS Signification


0 0 8180H  Transfert de données en cours
ou
 Le CP est à l'état STOP
0 0 8181H Le module ne supporte pas la version 2.0 du bloc.
Solution : utiliser la version 1.0.
1 0 0000H Les nouvelles données ont été transférées sans erreur.
0 1 8183H  Manque de configuration PROFINET IO
ou
 Le paramètre CPLADDR est erroné ;
ou
 Le CP est à l'état ARRÊT ;
ou
 La valorisation de MODE ne va pas avec la configuration du module ou valorisation
erronée du paramètre MODE.
De plus, en mode Device :
 La liaison est interrompue entre le Controller PROFINET IO et le Device
PROFINET IO
ou
 Impossible d'accéder au Controller PROFINET IO
ou
 Longueurs totales incohérentes (configuration et paramètre LEN)
0 1 8184H Erreur système ou type de paramètre illicite
0 1 8185H Le paramètre LEN est supérieur à la zone Source SEND ou le tampon cible (IOCS) est
trop petit.
0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 151
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

DONE ERROR STATUS Signification


0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F3AH La zone cible n'est pas chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 1 8F44H L'accès à un paramètre à lire au cours du traitement de bloc est verrouillé.
0 1 8F45H L'accès à un paramètre à écrire au cours du traitement de bloc est verrouillé.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H Il n'existe pas de module possédant cette adresse.
0 1 80A0H Acquittement négatif à la lecture depuis le module.
0 1 80A1H Acquittement négatif à l'écriture sur le module.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H  La longueur d'enregistrement indiquée est erronée.
ou
 Le CP passe à l'état STOP.
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le programme
utilisateur est donc judicieuse).

Blocs de programme pour CP S7 SIMATIC NET


152 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2.2 PNIO_RECV

3.2.2.1 Signification et appel - PNIO_RECV

Signification et mode de travail


Le bloc de programme PNIO_RECV sert à recevoir des données dans les modes contrôleur
et périphérique PROFINET IO du CP.
● Fonctionnement comme contrôleur PROFINET IO
Le bloc prend en charge, dans les zones d'entrée indiquées, les données de process des
périphériques PROFINET IO (entrées du contrôleur) ainsi que l'état IO Provider Status
(IOPS) des périphériques PROFINET IO.
● Fonctionnement comme périphérique PROFINET IO
Le bloc prend en charge les données transférées par le contrôleur PROFINET IO
(adresses de sortie configurées) ainsi que l'état IO Provider Status (IOPS) du contrôleur
PROFINET IO et il les écrit dans les zones de données de la CPU réservées aux sorties
du process, dans le périphérique PROFINET IO.

Compléments
● à partir de la version de bloc V2.0
PNIO_RECV prend en charge le fonctionnement parallèle d'un contrôleur et d'un
périphérique PROFINET IO. Vous indiquez pour quel mode le FC est appelé au moyen
du paramètre supplémentaire MODE.
● à partir de la version de bloc V3.0
le paramètre MODE offre les options de transmission de l'IO Provider Status suivantes :
– limitation à l'information d'état groupée dans le paramètre CHECK_IOPS, optimisée
pour une transmission plus rapide ;
ou
– des informations détaillées complémentaires dans le paramètre IO Provider Status.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 153
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Interface d'appel (à partir de la version de bloc 2.0)


Interface d'appel en représentation LOG

31,2B5(&9

:25' &3/$''5 ,236 $1<

%<7( 02'( 1'5 %22/

,17 /(1 (5525 %22/

67$786 :25'

&+(&.B,236 %22/

$''B,1)2 :25'

$1< 5(&9

Exemple en représentation LIST

LIST Explication
call fc 12 ( //Appel de PNIO_RECV
CPLADDR :=W#16#0100, //Adresse du module dans la configuration matérielle
MODE :=B#16#80, //Fonctionnement en mode contrôleur ou périphérique ;
//Les bits d'état IOCS ne sont pas transmis
LEN :=7, //Longueur de la zone de données
IOPS :=P#DB11.DBX7.0 BYTE 1, //Un bit Status dans le DB11 par octet de données reçuess
NDR :=M 74.0, //Adresse pour paramètre en retour NDR
ERROR :=M 74.1, //Adresse pour paramètre en retour ERROR
STATUS :=MW76, //Adresse pour paramètre en retour STATUS
CHECK_IOPS :=M74.2, //Adresse pour paramètre en retour CHECK_IOPS
ADD_INFO :=MW 26, //Information de diagnostic
RECV :=P#DB11.DBX0.0 BYTE 7 ); //Données reçues dans DB11 (7 octets)

Voir aussi
Cohérence des données (Page 162)
Valeurs de substitution (Page 163)

Blocs de programme pour CP S7 SIMATIC NET


154 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2.2.2 Explication des paramètres formels - PNIO_RECV

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels du FC12 :

Paramètre Déclaration Type de Valeurs admises Description


données
CPLADDR INPUT WORD - Adresse de début du module
MODE INPUT BYTE Vous pouvez spécifier dans le Indication du mode de fonctionnement du CP
(paramètre à paramètre MODE = XYH des par :
partir de la valeurs signifiant : Y = indication du mode de fonctionnement IO
version 2.0)  X0H: Controller ou IO Device ;
– Mode IO Controller X = spécifie la transmission du message
groupé dans CHECK_IOPS seule ou
– Mode IO-Device (quand
accompagnée de bits d'état complémentaires
il n'y a pas de
dans IOPS.
fonctionnement
parallèle) Remarques sur la compatibilité :
– Il y a compatibilité avec  La version 1.0 du FC peut être encore
le bloc FC de la version utilisée quand le CP n'est pas exploité en
1.0. parallèle comme IO Controller et IO
 X1H: Device.

Mode IO Device (en  La version 2.0 du FC se comporte comme


fonctionnement parallèle) la version 1.0 avec MODE=0.

 0YH  La version 3.0 du FC se comporte comme


la version 2.0 avec MODE=0 et MODE=1.
Les bits d'état sont transmis
dans IOPS.

 8YH
Limitiation au message
groupé dans CHECK_IOPS
; pas de bits d'état dans
IOPS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 155
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
RECV IN_OUT ANY (seul L'adresse de la zone de Indication de l'adresse et de la longueur
BYTE est données renvoie : Mode IO Controller :
autorisé
 soit à une zone de la longueur doit être conforme à la longueur
comme
mémentos totale configurée pour la périphérie
VARTYPE)
 soit à une zone de bloc de décentralisée, les adresses manquantes
étant également transmises.
données
La longueur peut être aussi inférieure à la
longueur totale de la périphérie
décentralisée, par ex. quand le bloc est
appelé plusieurs fois dans un OB. Mais elle
doit être égale à la longueur totale dans un
appel au moins.
Mode Device IO :
la structure des données résulte de l'ordre
des emplacements configurés sur le segment
du Controller PROFINET IO pour les
modules de sorties de ce Device PROFINET
IO et de leur longueur sans adresses
manquantes.
Remarques :
 Le bloc commence à transmettre les
données à l'adresse 0 quelle que soit la
façon dont vous avez configuré les
adresses (indépendamment de la plus
petite adresse configurée).
 Il n'est pas permis d'indiquer une zone de
périphérie, car vous devez d'abord vérifier
que IOPS est GOOD avant de pouvoir
prendre des données en charge dans la
périphérie.

Blocs de programme pour CP S7 SIMATIC NET


156 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
LEN INPUT INT Valeur > 0 Longueur en octets de la zone de données à
La longueur totale maximale transmettre.
des données à transmettre est La transmission des données débute toujours
indiquées au chapitre impérativement à l'adresse 0,
"Caractéristiques de indépendamment de la configuration.
performance" de la Veuillez noter que l'adresse IO "0" est prise
documentation du CP. en compte avec la longueur=1.
La longueur totale maximale Mode IO Controller :
peut être différente en mode
 Il faut indiquer ici la plus haute adresse
Controller et en mode Device.
configurée des Devices. Les différentes
zones ne sont pas rassemblées.
Quand le bloc est appelé plusieurs fois,
LEN peut être aussi inférieure à l'adresse
la plus haute. Il faut que l'adresse la plus
haute soit indiquée dans un appel au
moins (voir paramètre "RECV").
 Les données sont transmises dans l'ordre
des adresses logiques (comme pour
PROFIBUS DP).

Mode Device IO :
 Les données sont transmises dans l'ordre
des emplacements comme les modules
d'entrée sont configurés pour ce Device
PROFINET IO sur le segment du
Controller PROFINET IO.
 Nota :
vous devez faire le nécessaire pour
garantir la cohérence entre la longueur
programmée ici et la configuration du
Controller PROFINET IO. Pour le Device,
c'est toute la longueur de la zone de
données qui est transmise, y compris les
adresses éventuellement manquantes.
NDR OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche a été
1 : données prises en charge exécutée sans erreur.
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur
STATUS OUTPUT WORD - Indication d'état
CHECK_ OUTPUT BOOL 0: tous les IOPS sont GOOD Message groupé indiquant s'il est nécessaire
IOPS 1: au moins un IOPS est BAD d'exploiter la zone d'état IOPS
Le message groupé CHECK_IOPS est
toujours fourni indépendamment du
paramètre MODE.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 157
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
IOPS OUTPUT ANY (seul L'adresse de la zone de IO Provider Status
BYTE est données renvoie : Un bit d'état est transmis pour chaque octet
autorisé de données utiles.
 soit à une zone de
comme
mémentos Condition : La transmission est demandée
VARTYPE)
 soit à une zone de bloc de dans le paramètre MODE (MODE=0 ou
MODE=1). Ce paramètre n'est significatif que
données
dans ce mode.
Longueur :
La longueur indiquée dépend de la longueur
pour la longueur maximale, dans le paramètre RECV (un bit par octet)
veuillez vous référer à la partie
spécifique B du présent = (longueur LEN + 7/8)
manuel, chapitre Mode Controller :
"Caractéristiques de les adresses manquantes sont transmises
performance". Elle peut être conformément au paramètre RECV.
différente en mode Controller et
Les adresses manquantes sont transmises
en mode Device.
avec l'état GOOD.
Mode Device :
les adresses manquantes ne sont pas
transmises.
Le bloc commence à transmettre l'état pour
l'adresse 0.
Nota :
 La longueur minimale du pointeur ANY
est (longueur LEN + 7/8)
ADD_INFO OUTPUT WORD Informations de diagnostic Extension de paramètre
supplémentaires Nota :
Mode Controller : le paramètre ADD_INFO est aussi mis à jour
quand il n'y a pas d'adresse INPUT
 0: pas d'alarme
configurée dans le Controller PROFINET IO.
 >0: nombre d'alarmes Dans ce cas, le bloc PNIO_RECV est appelé
présentes avec une longueur LEN > 0 (par ex.
En mode Device, le paramètre LEN = 1 octet). Il transmet alors une adresse
est toujours = 0. vide de 1 octet.
Cette extension de paramètre est utilisable
pour les CP avec un firmware à partir de la
version (FW) :
 CP 343−1 (EX30) à partir de FW V2.0
 CP 343−1 Lean (CX10) à partir de FW
V2.0
 CP 343−1 Advanced (GX30) à partir de
FW V1.0
Avec les versions plus anciennes du
firmware, ce paramètre est réservé.

Blocs de programme pour CP S7 SIMATIC NET


158 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Remarque
Attente de la confirmation d'exécution
N'exécutez les actions ci-après qu'après signalisation par le bloc de DONE = 1 ou de
ERROR = 1 :
 analyse des paramètres de sortie ;
 modification du paramètre MODE.

3.2.2.3 Indications du bloc PNIO_RECV

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de NDR, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 3- 2 Indications de PNIO_RECV

NDR ERROR STATUS Signification


0 0 8180H  Prise en charge des données en cours
ou
 Le CP est à l'état STOP
0 0 8181H Le module ne supporte pas la version 2.0 du bloc.
Solution : utiliser la version 1.0.
1 0 0000H Les nouvelles données ont été prises en charge sans erreur.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 159
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

NDR ERROR STATUS Signification


0 1 8183H  Manque de configuration PROFINET IO
ou
 Le paramètre CPLADDR est erroné ;
ou
 Le CP est à l'état STOP
ou
 La valorisation de MODE ne va pas avec la configuration du module ou valorisation
erronée du paramètre MODE.
De plus, en mode Device :
 La liaison est interrompue entre le Controller PROFINET IO et le Device
PROFINET IO
ou
 Impossible d'accéder au Controller PROFINET IO
ou
 Longueurs totales incohérentes (configuration et paramètre LEN)
0 1 8184H Erreur système ou type de paramètre illicite
0 1 8185H Le tampon cible (RECV ou IOCS) est trop petit.
0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actuel en lecture seule.
0 1 8F31H Le paramètre se trouve dans le second bloc de données actuel en lecture seule.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F3AH La zone cible n'est pas chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 1 8F44H L'accès à un paramètre à lire au cours du traitement des blocs est verrouillé.
0 1 8F45H L'accès à un paramètre à écrire au cours du traitement des blocs est verrouillé.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H Il n'existe pas de module possédant cette adresse.
0 1 80A0H Acquittement négatif à la lecture depuis le module.
0 1 80A1H Acquittement négatif à l'écriture sur le module.
0 1 80B0H Le module ne connaìt pas cet enregistrement.
0 1 80B1H  La longueur d'enregistrement indiquée est erronée.
ou
 Le CP passe à l'état STOP.
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.

Blocs de programme pour CP S7 SIMATIC NET


160 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

NDR ERROR STATUS Signification


0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le programme
utilisateur est donc judicieuse).

3.2.3 Comportement général des FC pour PROFINET IO

IO Consumer Status (IOCS) et IO Provider Status (IOPS)


Pour chacun des deux partenaires de communication, CPU/CP d'une part et Device IO
d'autre part, les données sont accompagnées d'une information d'état GOOD ou BAD. Cette
information d'état est transmise parallèlement aux données. L'état du partenaire qui émet les
données s'appelle IOPS (IO Provider Status), l'état du partenaire qui les reçoit s'appelle
IOCS (IO Consumer Status).
L'état IOPS et l'état IOCS ne sont pas forcément identiques. Il peut arriver, par exemple, que
la CPU du S7-300 se trouve à l'état Stop (Output Disable ou aucun bloc PROFINET IO en
cours d'exécution). Dans ce cas, le CP en tant que Controller PROFINET IO communique
l'état BAD aux Devices IO.
Vos recevez un message groupé qui indique s'il est nécessaire ou non d'exploiter
l'information d'état. Vous aurez également à décider, via le paramètre MODE, si des
informations d'état détaillées sont à transmettre à l'interface d'appel. Vous accélérez
l'exécution de la tâche si vous vous contentez du message groupé.

Corrélation entre appel du bloc et données IO


● CP comme Controller PROFINET IO
En tant que Controller PROFINET IO, le CP ne surveille pas l'appel cyclique des blocs
PNIO_SEND/RECV. Quand les blocs ne sont pas appelés, les dernières données IO et
IOCS/IOPS transmises restent valables.
● CP comme Device PROFINET IO
FC11 et FC12 possèdent chacun leur propre chien de garde. La liaison au Controller
PROFINET IO est coupée en fonction du cycle de la CPU si l'un des deux blocs n'est
plus appelé après la phase d'initialisation.

Optimiser la transmission de données (uniquement en mode Controller PROFINET IO)


Il est possible d'appeler les blocs avec une longueur (paramètre LEN) inférieure à la
longueur totale configurée des données d'E/S sur le segment PNIO.
Vous pouvez mettre cette particularité à profit et transmettre les données à durée critique
dans chaque cycle de CPU, tandis que les autres données ne sont pas transmises dans
chaque cycle.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 161
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Exemple :
ne transmettez, par exemple, dans chaque cycle que la première zone des données (à
durée critique) et tous les deux cycles la longueur totale des données d'E/S configurées.
Pour cela, vous devez placer les données à durée critique dans la zone inférieure (à partir
de l'adresse d'E/S 0) lors de la configuration.

3.2.4 Cohérence des données


La zone des données d'entrée et de sortie du PROFINET IO Controller est toujours
transférée intégralement ce qui en assure la cohérence.
● CP comme Controller PROFINET IO
Indépendamment de ce fait, vous avez la possibilité, par le biais de l'indication de
longueur dans l'appel de bloc, de lire ou de transmettre de manière cohérente une zone
de données d'entrée ou de sortie plus petite que celle configurée.
Remarque : sachez pourtant qu'en ce qui concerne les "données utiles IO" au sein d'un
système PROFINET IO, la cohérence des données n'est assurée qu'au sein des différents
emplacements IO. Ceci est indépendant du fait que les blocs décrits ici assurent un transfert
de données cohérent entre CPU et Controller IO.

Appel du bloc
Pour assurer la cohérence des données, vous ne pouvez cependant accéder aux données
IO qu'une fois le bloc terminé sans erreur (paramètre de sortie NDR = TRUE). Vous devez
vérifier en plus que l'état IOCS ou IOPS des données est GOOD.

Blocs de programme pour CP S7 SIMATIC NET


162 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Exemple
Normalement (selon la longueur totale des données IO), le bloc sera exécuté durant
plusieurs cycles du programme utilisateur, jusqu'à ce que l'indicateur DONE/NDR = 1.

$SSHOHUOHFRPSRVDQW31,2B5(&9MXVTX
¢FHTXH1'5 

&RQWU¶OHUO
«WDW,236GHVGRQQ«HVUH©XHV GHV,2
'HYLFHV OHFDV«FK«DQWWUDLWHPHQWG
HUUHXU

0HWWUHHQIRUPHHWWUDLWHUOHVGRQQ«HVSU«SDUHUQRXYHOOHV
GRQQ«HVGHVRUWLH

$SSHOHUOHFRPSRVDQW31,2B6(1'
MXVTX
¢FHTXH'21( 

&RQWU¶OHUOHVYDOHXUVG
«WDWUH©XHVGHV,2'HYLFHVOHFDV
«FK«DQWWUDLWHPHQWG
HUUHXU

Remarque : Le cycle du programme utilisateur et celui de l'échange de données IO entre


PROFINET IO Controller et PROFINET IO Devices sont interdépendants.

3.2.5 Valeurs de substitution

Cas d'utilisation
Utiliser des valeurs de substitution est possible dans les deux cas suivants :
● valeurs de substitution à la mise en route (passage de la CPU de STOP à RUN)
● valeurs de substitution en cas d'incidents (débrochage/enfichage ou
défaillance/rétablissement de la station)

Valeurs de substitution à la mise en route


Vous pouvez initialiser les sorties avec des valeurs de substitution en activant un mémento
(mémento "de mise en route") dans l'OB de mise en route. Vous exploitez alors ce mémento
"de mise en route" dans le fonctionnement cyclique (OB1) pour appeler le cas échéant le
bloc PNIO_SEND avec les valeurs d'initialisation.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 163
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Valeurs de substitution en cas d'incidents (uniquement en mode Controller PROFINET IO)


En cas d'incident (Device/module défaillant), vous pouvez déterminer le module défaillant en
interrogeant les informations d'état IOCS / IOPS. Vous avez ensuite la possibilité d'utiliser
des valeurs de substitution.

3.2.6 PNIO_RW_REC

3.2.6.1 Signification et appel - PNIO_RW_REC

Signification et mode de fonctionnement


En mode Controller PROFINET IO, le bloc FB 52 sert non seulement à "lire un
enregistrement", mais aussi à "écrire un enregistrement". Le FB 52 ne peut exécuter qu'une
des deux fonctions à la fois. C'est le paramètre WRITE_REC qui permet de commander la
fonction "Lire un enregistrement" ou "Ecrire un enregistrement".
Les CP prennent uniquement en charge I&M0 et I&M1.
Exemple : le repère essentiel et le repère d'emplacement peuvent être communiqués au CP
au moyen de la fonction "Ecrire un enregistrement" (dans la mesure où ces paramètres n'ont
pas été déjà réglés dans STEP 7, dans le dialogue des propriétés du CP). On utilise à cet
effet l'enregistrement de maintenance "IM1" avec l'indice AFF1H.
L'enregistrement I&M0 avec l'indice AFF0H (référence, numéro de série, version) est en
lecture seule.
Vous trouverez des détails sur les enregistrements supportés et sur leur composition à
l'adresse Internet suivante :
http://support.automation.siemens.com/WW/view/de/19289930

Interface d'appel
Interface d'appel en représentation LOG

PNIO_RW_REC

WORD CPLADDR

BOOL WRITE_REC

WORD ID DONE BOOL

WORD INDEX ERROR BOOL

STATUS WORD

INT LEN

ANY RECORD

Blocs de programme pour CP S7 SIMATIC NET


164 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Exemple en représentation LIST

LIST Explication
CALL FB 52, DB 52 ( //Appel de PNIO_RW_REC
CPLADDR := W#16#0110, //Adresse de module issue de la configuration matérielle
WRITE_REC := M 1.1, //Type de tâche
ID := W#16#86A, //Adresse logique du module à adresser
INDEX := W#16#8000, //Numéro d'enregistrement
DONE := M 1.3, //Adresse du paramètre en retour DONE
ERROR := M 1.1, //Adresse du paramètre en retour ERROR
STATUS := MW 12, //Adresse du paramètre en retour STATUS
LEN := MW 16, // Longueur de l'enregistrementen octets
RECORD := P#DB3.DBX0.0 BYTE 80 ); //Cible ou source de l'enregistrement
//(ici 80 octets max.)

3.2.6.2 Explication des paramètres formels - PNIO_RW_REC

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels du FB 52 :

Paramètre Déclaration Type de Valeurs admises Description


données
CPLADDR INPUT WORD - Adresse de début du module
WRITE_RE INPUT BOOL 0: lire enregistrement Type de tâche ;
C 1 : écrire enregistrement il ne faut pas modifier ce paramètre
durant l'exécution du bloc.
ID INPUT WORD Adresse logique du composant
PROFINET IO (module ou cartouche).
Pour un module de sortie, il faut que le
bit 15 soit mis à 1
(ex. pour l'adresse de sortie 5 :
ID:=DW#16#8005).
Pour un module mixte, il faut indiquer la
plus basse des deux adresses.
INDEX INPUT WORD Voir dans les informations du Numéro de l'enregistrement que
fabricant quels numéros l'utilisateur souhaite lire ou écrire.
d'enregistrement sont supportés
par le module ou la cartouche.
DONE OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche a
1 : enregistrement transféré sans été exécutée sans erreur.
erreur
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur
STATUS OUTPUT WORD - Indication d'état

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 165
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
LEN IN_OUT INT La longueur maximale est de  Lire enregistrement :
480 octets. pur paramètre OUTPUT ; une fois la
lecture effectuée correctement,
indique la longueur de
l'enregistrement lu ; autrement 0.
 Ecrire enregistrement :
pur Paramètre d'entrée (INPUT) ;
l'utilisateur indique ici la longueur de
l'enregistrement à écrire. Cette
longueur doit s'accorder avec la
définition de l'enregistrement.
RECORD IN_OUT ANY (BYTE, L'adresse de la zone de  Lire enregistrement :
WORD et données renvoie : pur paramètre OUTPUT ; une fois la
DWORD sont lecture effectuée correctement, les
 soit à une zone de
autorisés
mémentos données de l'enregistrement y sont
comme
soit à une zone de bloc de rangées. Quand le pointeur ANY est
VARTYPE) 
données trop court, il est transmis autant de
données que possible.
La longueur du pointeur ANY
doit être supérieure ou égale à la  Ecrire enregistrement :
définition de l'enregistrement. pur paramètre INPUT ; l'utilisateur y
range les données de
l'enregistrement à écrire. La longueur
du pointeur ANY doit être au moins
égale à l'indication du paramètre
LEN.

3.2.6.3 Indications du bloc PNIO_RW_REC

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Blocs de programme pour CP S7 SIMATIC NET


166 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Tableau 3- 3 Indications de PNIO_RW_REC

DONE ERROR STATUS Signification


0 0 8180H Transfert de données en cours
1 0 0000H Enregistrement transféré sans erreur
0 1 8183H  Absence de configuration PROFINET IO Controller
 CPLADDR erroné
ou
 CP à l'état de fonctionnement STOP
0 1 8184H Erreur système ou type de paramètre illicite
0 1 8185H Tampon cible (RECORD) trop petit.
0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F3AH La zone cible n'est pas chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 1 8F44H L'accès à un paramètre à lire au cours du traitement de bloc est verrouillé.
0 1 8F45H L'accès à un paramètre à écrire au cours du traitement de bloc est verrouillé.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H Il n'existe pas de module possédant cette adresse.
0 1 80A0H Acquittement négatif à la lecture depuis le module.
0 1 80A1H Acquittement négatif à l'écriture sur le module.
0 1 80A3H Erreur générale de gestion du contexte PROFINET IO
0 1 80A9H Le PROFINET IO Device ou le module signale un type illicite.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H  La longueur d'enregistrement indiquée est erronée ;
ou
 Le CP passe à l'état STOP.
0 1 80B2H L'adresse logique ou l'emplacement configuré n'est pas occupé(e).
0 1 80B4H Le PROFINET IO Device ou le module signale un accès à une zone illicite.
0 1 80B6H Le PROFINET IO Device ou le module refuse l'accès,
0 1 80B8H Le module signale un paramètre illicite.
0 1 80B9H Le type de bloc et / ou la version sont illicite.
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'accès en écriture à l'enregistrement est momentanément illicite. L'enregistrement est
en cours de traitement ou a été défini comme invariable dans la configuration.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 167
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

DONE ERROR STATUS Signification


0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le programme
utilisateur est donc judicieuse).

3.2.7 PNIO_ALARM

3.2.7.1 Signification et appel - PNIO_ALARM

Signification et mode de travail


Le bloc FB 54 est utilisé pour exploiter les alarmes par un CP 343-1 fonctionnant comme
Controller PROFINET IO et il doit être appelé dans son programme utilisateur quand le
paramètre ADD_INFO y est différent de 0 dans le FC12. Après la transmission complète et
sans erreur de tous les paramètres OUTPUT du FB 54, les alarmes reçues sont acquittées
automatiquement.
Les alarmes sont transmises dans le programme utilisateur dans l'ordre chronologique de
leur signalisation. Les anciennes, pas encore signalées au programme utilisateur et qui sont
rendues caduques par des alarmes plus récentes, ne sont pas supprimées par les
nouvelles.

Remarque
Tant que le bloc n'a pas été appelé, les alarmes sont acquittées automatiquement de
manière interne au CP.
Quand le FB 54 a été appelé une fois (au moins) dans le programme utilisateur, il doit
continuer à être appelé pour acquitter les alarmes présentes. C'est le cas quand le FC 12
indique une valeur différente de "0" dans son paramètre ADD_INFO.
Quand le FB 54 n'est plus appelé dans le programme utilisateur après un ou plusieurs
appels, les alarmes ne sont pas acquittées et la mise à jour correcte de la mémoire image
des E/S n'est pas garantie. Ceci peut être le cas après une alarme signalant le
rétablissement d'une station, par exemple. La nécessité d'appeler le FB 54 ne peut être
annulée que par un démarrage du CP (coupure de tension).

Blocs de programme pour CP S7 SIMATIC NET


168 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Interface d'appel
Interface d'appel en représentation LOG

PNIO_ALARM

WORD CPLADDR DONE BOOL

ERROR BOOL

NEW BOOL

DWORD MODE STATUS WORD

ANY TINFO ID WORD

ANY AINFO LEN INT

Exemple en représentation LIST

LIST Explication
CALL FB 54, DB 54 ( //Appel de PNIO_ALARM
CPLADDR:= W#16#0110, //Adresse de module issue de la configuration matérielle
DONE := M 1.1, //Adresse du paramètre en retour DONE
ERROR := M 1.2, //Adresse du paramètre en retour ERROR
NEW := M 1.3, //TRUE: Une nouvelle alarme a été reçue
STATUS := MW 12, //Code d'erreur
ID := MW14, //Adresse de début logique du composant signalant
LEN := MW 16, //Longueur des informations d'alarme reçues (AINFO)
MODE := MD 18, //RÉSERVÉ (valeur toujours = 0)
TINFO := P#DB4.DBX0.0 BYTE 32, //task information
AINFO := P#DB4.DBX32.0 BYTE 532 ); //alarm information

3.2.7.2 Explication des paramètres formels - PNIO_ALARM

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels du FB 54 :

Paramètre Déclaration Type de Valeurs admises Description


données
CPLADDR INPUT WORD - Adresse de début du module ayant
causé l'erreur
DONE OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche
1 : informations d'alarme a été exécutée sans erreur.
transmises sans erreur Quand DONE = 1, il faut vérifier en
plus le paramètre NEW.
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 169
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

Paramètre Déclaration Type de Valeurs admises Description


données
NEW OUTPUT BOOL 0: transmission de données en DONE = 1 et NEW = 1 signalent une
cours ou pas de nouvelle alarme nouvelle alarme reçue.
1: nouvelle alarme reçue et
acquittée
STATUS OUTPUT WORD - Indication d'état
ID OUTPUT WORD Adresse de début logique du
composant PNIO (module ou
cartouche) qui a déclenché l'alarme.
Pour un module de sortie, le bit 15 est
mis à 1(ex. pour l'adresse de sortie 5 :
ID:=DW#16#8005).
Pour un module mixte, la plus basse
des deux adresses est indiquée.
LEN OUTPUT INT Longueur des informations d'alarme
reçues (AINFO)
MODE IN_OUT DWORD 0 Réservé
TINFO IN_OUT ANY (BYTE, L'adresse de la zone de (task information)
WORD et données renvoie : Zone cible pour les informations de
DWORD sont gestion d'alarme.
 soit à une zone de
autorisés
mémentos Les informations de déclenchement de
comme
soit à une zone de bloc de l'OB d'erreur (en-tête d'OB = octets
VARTYPE) 
0...19 de TINFO) sont reproduites,
données
autant que possible, par le firmware du
La longueur du pointeur ANY CP.
doit être >= 32 octets.
Voir aussi 1)
AINFO IN_OUT ANY (BYTE, L'adresse de la zone de (alarm information)
WORD et données renvoie : Zone cible pour informations d'en-tête
DWORD sont et informations complémentaires
 soit à une zone de
autorisés d'alarme. Quand le pointeur ANY
mémentos
comme AINFO est trop petit, les informations
VARTYPE)  soit à une zone de bloc de sont tronquées.
données
Voir aussi 1)
La longueur du pointeur ANY
doit être supérieure ou égale aux
informations complémentaires
d'alarme à attendre, 1432 octets
maxi (voir paramètre LEN)

1) Manuelde référence "STEP 7 - Fonctions standard et fonctions système pour SIMATIC


S7-300 et S7-400", Réception d'une alarme avec le SFB 54 "RALRM" /4/ (Page 296)

Blocs de programme pour CP S7 SIMATIC NET


170 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.2 PROFINET IO - transmission de données et analyse d'alarmes

3.2.7.3 Indications du bloc PNIO_ALARM

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, NEW, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

DONE NEW ERROR STATUS Signification


0 0 0 8180H Transfert de données en cours
1 1 0 0000H Données d'alarme transmises correctement et alarme acquittée
1 0 0 0000H Pas de données d'alarme
0 0 1 8183H  Absence de configuration PROFINET IO Controller
 CPLADDR erroné
ou
 CP à l'état de fonctionnement STOP
0 0 1 8184H Erreur système ou type de paramètre illicite
0 0 1 8185H Tampon cible (TINFO ou AINFO) trop petit.
0 0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 0 1 8F3AH La zone cible n'est pas chargée (DB).
0 0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 0 1 8F44H L'accès à un paramètre à lire au cours du traitement de bloc est verrouillé.
0 0 1 8F45H L'accès à un paramètre à écrire au cours du traitement de bloc est verrouillé.
0 0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 0 1 8090H Il n'existe pas de module possédant cette adresse.
0 0 1 80A0H Acquittement négatif à la lecture depuis le module.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 171
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

DONE NEW ERROR STATUS Signification


0 0 1 80A1H Acquittement négatif à l'écriture sur le module.
0 0 1 80B0H Le module ne connaît pas cet enregistrement.
0 0 1 80B1H  La longueur d'enregistrement indiquée est erronée.
ou
 Le CP passe à l'état STOP.
0 0 1 80C0H Impossible de lire l'enregistrement.
0 0 1 80C1H L'enregistrement logique indiqué est en cours de traitement.
0 0 1 80C2H Engorgement des tâches.
0 0 1 80C3H Ressources (mémoire) occupées.
0 0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le
programme utilisateur est donc judicieuse).

3.3 PROFIenergy

PROFIenergy
Les fonctions PROFIenergy sous PROFINET servent à la gestion de l'énergie d'installations.
En font partie les fonctions d'arrêt planifié ou spontané d'appareils de terrain, d'unités ou de
parties d'installation à des fins d'économies d'énergie. L'arrêt intervient pendant les périodes
non productives ou les pauses de production. Les données d'énergie et de diagnostic
peuvent être lues sur des appareils qui sont intégrés au concept d'énergie et qui prennent en
charge ces fonctions.

Contrôleur PROFIenergy
Les commandes d'arrêt proviennent de l'automate de niveau supérieur ou, sous PROFINET
IO, du contrôleur IO.
Sur un SIMATIC S7-300, le contrôleur PROFIenergy peut être le CP ou une CPU S7-300 à
fonction PROFIenergy.

Périphériques PROFIenergy
Les commandes du contrôleur PROFIenergy sont traitées par les périphériques IO à
fonction PROFIenergy pour couper les appareils de terrain connectés.
Dans le contexte des blocs de programme PROFIenergy, un périphérique IO à fonction
PROFIenergy est désigné par périphérique PROFIenergy. Sur un SIMATIC S7-300, le
périphérique PROFIenergy peut être le CP ou une CPU S7-300 à fonction PROFIenergy.

I-Devices
Sur SIMATIC S7, un périphérique intelligent (I-Device) peut également posséder des
périphériques PROFIenergy subordonnés. Dans ce cas, le périphérique intelligent possède
également la fonction d'un contrôleur PROFIenergy.

Blocs de programme pour CP S7 SIMATIC NET


172 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Modes d'économie d'énergie et PE_MODE_ID


De nombreux appareils ne prennent en charge que les états de fonctionnement
"Opérationnel" (sous tension) et "Pause" (hors tension). Des états d'économie d'énergie
échelonnés comprenant divers modes d'économie d'énergie peuvent être configurés pour
les appareils qui le permettent ou pour des groupes d'unités dans l'automate du périphérique
PROFIenergy. Avec PROFIenergy, ces divers états de consommation d'énergie peuvent
être affectés aux appareils de terrain à couper.
Les divers états de consommation d'énergie sont appelés "modes d'économie d'énergie". Un
"PE_MODE_ID" particulier est alors défini pour chaque mode d'économie d'énergie.

Programmation des propriétés des modes d'économie d'énergie


Les détails des modes d'économie d'énergie (appareil de terrain adressé, durée de la pause,
etc.) sont programmés dans le programme utilisateur de la CPU du périphérique
PROFIenergy.

3.3.1 Blocs de programme PROFIenergy pour le CP 300

Réalisation des fonctions PROFIenergy sur le S7-300


Dans l'automate SIMATIC S7-300, les fonctions PROFIenergy de la CPU sont mises à
disposition pour le contrôleur IO et le périphérique IO par des blocs de programme.
Veuillez noter que la CPU S7-300 et le CP 300 utilisent des blocs de programme
PROFIenergy différents.

Spécification PROFIenergy
Les fonctions des blocs de programme PROFIenergy du CP 300 se basent sur la
spécification suivante de la PROFIBUS Nutzerorganisation e.V. (PNO) :
Common Application Profile PROFIenergy, Technical Specification for PROFINET,
Version 1.0, January 2010, Order No. 3.802

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 173
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Blocs de programme PROFIenergy pour le CP 300


Les blocs de programme PROFIenergy sont appelés par le programme utilisateur de la
CPU. Les blocs de programme PROFIenergy ci-après sont disponibles pour les fonctions
PROFIenergy du CP 300 :
● CP 300 comme contrôleur IO
– PE_START_END_CP
Bloc de programme qui sert à démarrer les pauses d'alimentation en énergie et à y
mettre fin de même qu'à paramétrer des modes d'économie d'énergie définis pour le
périphérique PROFIenergy.
– PE_CMD_CP
Bloc de programme pour le démarrage et l'arrêt de pauses d'alimentation en énergie
ainsi que pour le paramétrage de modes d'économie d'énergie définis et la requête de
valeurs de mesure d'énergie pour le périphérique PROFIenergy.
Ces deux blocs de programme peuvent être utilisés l'un pour l'autre. Par rapport au bloc
PE_START_END_CP le bloc PE_CMD_CP possède des fonctions complémentaires pour
l'intégration de valeurs de mesure d'énergie.
Le bloc de programme doit être appelé séparément pour chaque périphérique
PROFIenergy.
– DS3_WRITE_CP
Ne fait pas partie des blocs de programme PROFIenergy, mais complète les fonctions
PROFIenergy pour un ET 200S.
DS3_WRITE_CP permet de définir le comportement de commutation d'au maximum 8
emplacements (en l'occurrence : modules d'alimentation) de l'ET 200S.
● CP 300 comme périphérique IO :
– PE_I_DEV_CP
Reçoit toutes les commandes PROFIenergy et permet au programme utilisateur
d'exécuter les fonctions PROFIenergy.
Met à la disposition du contrôleur IO les télégrammes de réponse du périphérique IO.
PE_I_DEV_CP est appelé cycliquement par le programme utilisateur du périphérique
IO.
– Blocs de programme complémentaires (FC 0...FC 8) pour PE_I_DEV_CP :
Ces FC mettent les données de réponse à la disposition pour PE_I_DEV_CP. Les FC
doivent être appelés dans le programme utilisateur et connectés au PE_I_DEV_CP.
Si le périphérique PROFIenergy est un périphérique intelligent et s'il possède lui-même
des périphériques PROFIenergy subordonnés, les blocs PE_START_END_CP et
PE_CMD_CP sont appelés dans la CPU du périphérique intelligent pour les
périphériques PROFIenergy subordonnés.

Blocs de programme pour CP S7 SIMATIC NET


174 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Blocs système et blocs de programme pour la transmission d'enregistrements


Les commandes PROFIenergy et informations d'état sont échangées entre le contrôleur IO
et le périphérique IO par lecture et écriture d'enregistrements. Ceci s'effectue à l'aide de
RDREC et de RWREC.
Les enregistrements PROFIenergy sont décrits ci-après sous les données de réponse des
divers blocs de programme.

Remarque
Appels de bloc
PE_START_END_CP, PE_CMD_CP, PE_I_DEV_CP et DS3_WRITE_CP ne doivent pas être
appelés simultanément. Le bloc de programme suivant ne peut être appelé que si l'un de
ces blocs de programme a signalé "Pas d'erreur" (VALID = 1) ou "Erreur" (ERROR = 1).
Le bloc de programme PNIO_RW_REC ne doit également pas être appelé en même temps
que PE_START_END_CP, PE_CMD_CP, PE_I_DEV_CP ou DS3_WRITE_CP.

3.3.2 PE_START_END_CP

3.3.2.1 Signification et appel - PE_START_END_CP

Signification et mode de fonctionnement


PE_START_END_CP et PE_CMD_CP peuvent être utilisés l'un pour l'autre.
PE_START_END_CP est utilisé sur le contrôleur IO. Il déclenche sur le périphérique
PROFIenergy une pause d'économie d'énergie ou termine la pause.
Ce bloc de programme s'utilise de préférence sur les contrôleurs IO dont les périphériques
IO associés sont uniquement connectés à des appareils de terrain qui ne fournissent pas de
données d'énergie.
Les modes d'économie d'énergie sont configurés dans le programme utilisateur de la CPU
du périphérique IO. Le mode d'économie d'énergie effectivement adopté est signalé en
retour, après exécution de PE_START_END_CP, par le périphérique IO et émis dans le
paramètre PE_MODE_ID.
Le paramètre Pause_Time spécifie au périphérique IO la durée de la pause d'économie
d'énergie. Sur le périphérique IO, le bloc de programme PE_I_DEV_CP vérifie que la durée
spécifiée de la pause est suffisante et qu'elle est réalisable.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 175
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Séquence

3(B67$57B(1'B&3
3(B&0'B&3 3(B,B'(9B&3
&RQWU¶OHXU352),HQHUJ\ 3«ULSK«ULTXH352),HQHUJ\

7¤FKHG
«FULWXUH

1(: 
5«SRQVHG
«FULWXUH SRVLWLYH

7¤FKHGHOHFWXUH

5«SRQVHGHOHFWXUH Q«JDWLYH
UHVVRXUFHRFFXS«H bV

PV

7¤FKHGHOHFWXUH

5«SRQVHGHOHFWXUH SRVLWLYH
bV

7HPSRULVDWLRQ 7HPSRULVDWLRQ

Figure 3-1 Diagramme séquentiel des tâches d'écriture/lecture de PE_START_END_CP et de


PE_CMD_CP

PE_START_END_CP envoie via WRREC une commande PROFIenergy sous forme de


tâche d'écriture au périphérique IO. Le PE_START_END_CP attend ensuite l'acquittement
du périphérique IO. Pour ce faire le bloc de programme RDREC lit l'enregistrement
d'acquittement toutes les 100 millisecondes.
Tant que l'acquittement du périphérique IO n'a pas été reçu, la tâche de lecture est réitérée
toutes les 100 millisecondes pendant une durée de 10 secondes.
Les données de réponse du périphérique IO sont lues avec le RDREC.

Blocs de programme pour CP S7 SIMATIC NET


176 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Interface d'appel en représentation LOG

3(B67$57B(1'B&3

:25' &3/$''5 3(B02'(B,' %<7(

%22/ 67$57 9$/,' %22/

%22/ (1' %86< %22/

:25' ,' (5525 %22/

7,0( 3$86(B7,0( 67$786 :25'

Interface d'appel en représentation LIST

LIST Explication
call fb 85 ( //Appeler le bloc de programme PE_START_END_CP;
CPLADDR :=W#16#0100, //Adresse du module de la configuration matérielle;
START :=M100.0, //Adresse pour signal "Début de la pause";
END :=M100.1, //Adresse pour Signal "Fin de la pause";
ID :=W#16#110, //Adresse de l'appareil cible;
PAUSE_TIME :=T#10S //Indication du temps de pause comme temporisation CEI;
VALID :=M100.2 //Adresse pour paramètre de retour VALID;
BUSY :=M110.0, //Adresse pour paramètre de retour BUSY;
ERROR :=M110.1, //Adresse pour paramètre de retour ERROR;
STATUS :=MW128, //Adresse pour paramètre de retour STATUS;
PE_MODE_ID :=MB111 ); //Adresse pour l'ID du mode d'économie d'énergie

3.3.2.2 Explication des paramètres formels de PE_START_END_CP

Explication des paramètres formels de PE_START_END_CP

Paramètre Déclaration Type de Plage de valeurs Description


données
CPLADDR INPUT WORD I, Q, M, D, L, const. Adresse de début de module du CP
START INPUT BOOL  1 = commande active Un front montant active la commande
"Start_Pause" (démarrer la pause
 0 = commande inactive
d'économie d'énergie)
END INPUT BOOL  1 = commande active Un front montant active la commande
"End_Pause" (mettre fin à la pause
 0 = commande inactive
d'économie d'énergie)
ID INPUT WORD Adresse logique du périphérique
PROFIenergy de destination
PAUSE_ INPUT TIME T#-24D_20H_31M_23S_648MS Durée CEI par incréments de 1 ms, entier
TIME à signé
T#24D_20H_31M_23S_647MS

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 177
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de valeurs Description


données
PE_MODE_ OUTPUT BYTE  00h : Hors tension (pause) ID du mode d'économie d'énergie adopté
ID par le périphérique IO après exécution de
 01h...FEh : Configurable
la commande.
 FFh : Opérationnel
VALID OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche a
1: Exécution terminée avec été exécutée sans erreur.
succès
BUSY OUTPUT BOOL 0: Exécution terminée, Indication de l'état d'exécution du bloc de
abandonnée ou pas encore programme
commencée
1: Exécution en cours
ERROR OUTPUT BOOL 0: - Indication d'erreur
1: Erreur Pour sa signification en corrélation avec le
paramètre STATUS, voir Visualisations de
PE_START_END_CP (Page 178).
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec le
paramètre ERROR, voir Visualisations de
PE_START_END_CP (Page 178).

3.3.2.3 Visualisations de PE_START_END_CP

Visualisations de PE_START_END_CP
PE_START_END_CP repose sur le bloc de programme PNIO_RW_REC et fournit toutes les
visualisations de PNIO_RW_REC, voir Visualisations du bloc PNIO_RW_REC.
Il fournit en outre les indications spécifiques PROFIenergy ci-après. Les indications d'erreur
de STATUS ne valent qu'en relation avec ERROR = 1.

Tableau 3- 4 Visualisations spécifiques de PE_START_END_CP

STATUS Signification
Erreurs spécifiques de bloc
8080h Front montant simultanément pour START et END
8081h Conflit de longueur entre CMD_PARAM et CMD_PARAM_LEN
Erreurs spécifiques PROFIenergy
FE01h Service_Request_ID invalide
FE02h Request_Reference invalide
FE03h CMD_MODIFIER invalide
FE04h Indications invalides sur la structure de données d'une commande (Data_Structure_Identifier_RQ) dans le
télégramme pour l'enregistrement PROFIenergy d'écriture
FE05h Indications invalides sur la structure de données d'une commande (Data_Structure_Identifier_RS) dans le
télégramme pour l'enregistrement PROFIenergy de lecture
FE06h Mode d'économie d'énergie (PE_Mode_ID) non pris en charge

Blocs de programme pour CP S7 SIMATIC NET


178 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

STATUS Signification
FE07h Réponse plus longue que la longueur de transfert max.
FE08h Nombre de commandes invalide
FE09h Block Type invalide (voir en-tête de télégramme)
FE0Ah Block Length invalide (voir en-tête de télégramme)
FE0Bh Block Version invalide (voir en-tête de télégramme)
FE50h Pas de mode d'économie d'énergie approprié (PE_Mode_ID)
FE51h La valeur de PAUSE_TIME n'est pas prise en charge.
FE52h PE_Mode_ID non pris en charge

Des détails sur les paramètres des erreurs spécifiques PROFIenergy sont fournis au
chapitre Données de réponse (Page 185).

Voir aussi
Indications du bloc PNIO_RW_REC (Page 166)

3.3.3 PE_CMD_CP

3.3.3.1 Signification et appel - PE_CMD_CP

Signification et mode de fonctionnement


PE_CMD_CP et PE_START_END_CP peuvent être utilisés l'un pour l'autre.
PE_CMD_CP, utilisé sur le contrôleur IO, déclenche sur le périphérique PROFIenergy
associé une pause d'économie d'énergie ou met fin à une pause. PE_CMD_CP permet en
outre de lire d'autres informations et des valeurs de mesure d'énergie sur les périphériques
IO.
Ce bloc de programme s'utilise de préférence sur les contrôleurs IO dont les périphériques
IO associés sont connectés à des appareils de terrain qui fournissent des valeurs de mesure
d'énergie.
Vous trouverez le diagramme séquentiel des tâches d'écriture/lecture de PE_CMD_CP au
chapitre Signification et appel - PE_START_END_CP (Page 175).
Des "Service_Request_ID" sont affectés aux différentes commandes qui sont transmises au
périphérique IO avec le bloc de programme. Les Service_Request_ID 01...05 et 16 sont
affectés avec le paramètre CMD.
Le paramètre CMD_MODIFIER précise les deux commandes 04 (Query_Modes) et 16
(Query_Measurement).
Le paramètre CMD_PARA affecte à certaines commandes des valeurs destinées à des
paramètres définis à l'aide d'un pointeur Any. Le paramètre CMD_PARA_LEN définit la
longueur de ces paramètres.
Le paramètre RESPONSE_DATA pointe sur la zone des données de réponse du
périphérique IO.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 179
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Interface d'appel en représentation LOG

3(B&0'B&3

:25' &3/$''5 9$/,' %22/

%22/ 5(4 %86< %22/

:25' ,' (5525 %22/

%<7( &0' 67$786 :25'

%<7( &0'B02',),(5

$1< &0'B3$5$

,17 &0'B3$5$B/(1

$1< 5(63216(B'$7$ $1<

Interface d'appel en représentation LIST

LIST Explication
call fb 86 ( //Appeler le bloc de programme PE_CMD_CP;
CPLADDR :=W#16#0100, //Adresse du module de la configuration matérielle;
REQ :=M220.0, //Adresse pour signal de front pour l'exécution du bloc;
ID :=W#16#110, //Adresse de l'appareil cible;
CMD :=MB222, //Service_Request_ID de la commande PROFIenergy;
CMD_MODIFIER :=MB224, //Modificateur de la commande PROFIenergy;
CMD_PARA :=MD240, //Pointeur sur le paramètre du modificateur;
CMD_PARA_LEN :=MW226, //Longueur du paramètre de CMD_PARA;
VALID :=M220.2 //Adresse pour paramètre de retour VALID;
BUSY :=M220.1, //Adresse pour paramètre de retour BUSY;
ERROR :=M220.3, //Adresse pour paramètre de retour ERROR;
STATUS :=MW228, //Adresse pour paramètre de retour STATUS;
RESPONSE_DATA //Adresse pour les données de réponse du périphérique IO
:=P#DB400.DBX0.0 BYTE 244 );

Voir aussi
Explication des paramètres formels de PE_CMD_CP (Page 181)

Blocs de programme pour CP S7 SIMATIC NET


180 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

3.3.3.2 Explication des paramètres formels de PE_CMD_CP

Explication des paramètres formels de PE_CMD_CP

Paramètre Déclaration Type de Plage de valeurs Description


données
CPLADDR INPUT WORD I, Q, M, D, L, const. Adresse de début de module du CP
REQ INPUT BOOL Déclenche sur front montant le transfert des
commandes PROFIenergy.
ID INPUT WORD Adresse logique du périphérique
PROFIenergy de destination
CMD INPUT BYTE  01: Start_Pause Service_Request_ID de la commande
PROFIenergy.
 02: End_Pause
La signification des commandes est fournie
 03: Query_Modes à la suite du tableau.
 04: PEM_Status
 05: PE_Identity
 16: Query_Measurement
CMD_ INPUT BYTE Pour "Start_Pause" : 00 Modifier de la commande PROFIenergy,
MODIFIER Pour "End_Pause" : 00 signification :
Pour "Query_Modes" :  Commande "Query_Modes"
 01: List_Energy_Saving – Modifier 01 : Lit tous les mode
_Modes d'économie d'énergie pris en charge
(PE_Mode_ID).
 02: Get_Mode
– Modifier 02 Lit les paramètres du
Pour "PEM_Status" : 00 PE_Mode_ID sélectionné.
Pour "PE_Identity" : 00
 Commande "Query_Measurement"
Pour "Query_Measurement" :
– Modifier 01 : Lit les Measurement_ID
 01: configurés.
Get_Measurement_List – Modifier 02 : Lit les mesures des
 02: Measurement_ID sélectionnés.
Get_Measurement_Values Vous trouverez des informations sur les
paramètres au chapitre Données de
réponse (Page 185) dans la section
correspondant à la commande.
Modifier 00 signifie "pas d'options".

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 181
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de valeurs Description


données
CMD_PARA INPUT ANY Pointeur Any vers les paramètres de
commandes
 Pour la commande 01 Start_Pause :
"Pause_Time"
 Pour la commande 02 End_Pause : sans
signification
 Pour la commande 03 Query_Modes :
– Pour Modifier 01 : sans signification
– Pour Modifier 02 Get_Mode :
"PE_Mode_ID"
 Pour la commande 04 PEM_Status :
sans signification
 Pour la commande 05 PE_Identity : sans
signification
 Pour la commande 16
Query_Measurement :
– Pour Modifier 01 : sans signification
– Pour Modifier 02
Get_Measurement_Values :
Pointeur ANY vers la structure de
données avec paramètres "Count" et
"Measurement_ID"
Vous trouverez des informations sur les
paramètres au chapitre Données de
réponse (Page 185) dans la section
correspondant à la commande.
Inscription de la zone de données complète
de l'enregistrement à écrire
(Service_Data_Request). Longueur max. :
234 octets
CMD_PARA INPUT INT Longueur effective des paramètres en
_LEN CMD_PARA. Longueur max. : 234 octets
RESPONSE INOUT ANY Pointeur vers l'adresse des données de
_DATA réponse du périphérique IO (télégramme
complet, y compris l'en-tête de bloc)
Nota :
Si la zone choisie est trop petite, seul le
nombre d'octets configuré est enregistré.
VALID OUTPUT BOOL 0: - Le paramètre d'état du bloc de programme
1: Exécution terminée avec indique si la tâche a été exécutée sans
succès erreur.
BUSY OUTPUT BOOL 0: Exécution pas encore Indication de l'état d'exécution du bloc de
commencée, terminée ou programme
abandonnée
1: Exécution en cours

Blocs de programme pour CP S7 SIMATIC NET


182 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de valeurs Description


données
ERROR OUTPUT BOOL 0: - Indication d'erreur
1: Erreur Pour sa signification en corrélation avec le
paramètre STATUS, voir Indications de
PE_CMD_CP (Page 184).
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec le
paramètre ERROR, voir Indications de
PE_CMD_CP (Page 184).

Service_Request_IDs et signification des commandes PROFIenergy


Les commandes PROFIenergy avec Service_Request_ID 01...05 et 16 signifient :
● 01 = Start_Pause
Commande permettant de démarrer une pause d'économie d'énergie.
Le périphérique IO sélectionne le mode d'économie d'énergie configuré. Le mode
d'économie d'énergie est signalé en retour au contrôleur dans les données de réponse.
● 02 = End_Pause
Commande permettant de mettre fin à une pause d'économie d'énergie
● 03 = Query_Modes
Interroge les modes d'économie d'énergie configurés sur le périphérique IO ainsi que
toutes les informations de temps et d'énergie associées.
Les informations lues sont précisées par le paramètre CMD_MODIFIER.
– List_Energy_Saving_Modes
Lit tous les modes PROFIenergy pris en charge du périphérique IO.
– Get_Mode
Lit les données du mode PROFIenergy sélectionné.
● 04 = PEM_Status
Interrogation du mode d'économie d'énergie effectivement adopté par l'appareil de terrain
ou par le groupe d'unités.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 183
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

● 05 = PE_Identity
Interroge les services PROFIenergy pris en charge par le périphérique IO.
● 16 = Query_Measurement
Interroge les données d'énergie du périphérique IO.
Les informations lues sont précisées par le paramètre CMD_MODIFIER.
– Get_Measurement_List
Lit tous les Measurement_ID configurés sur le périphérique IO.
– Get_Measurement_Values
Lit les mesures d'énergie des Measurement_ID sélectionnés.

Commandes pour différentes classes d'appareils


Les appareils intégrables dans des concepts PROFIenergy, sont répartis en trois classes
auxquelles le contrôleur IO accède avec différentes commandes :
● Modules IO, actionneurs, départs-moteurs
Commandes prises en charge :
– Start_Pause, End_Pause
– Query_Modes, PEM_Status, PE_Identify
● Appareils de mesure de grandeurs électriques
Commandes prises en charge :
– Query_Measurement
● Variateurs de fréquence
Commandes prises en charge :
– Start_Pause, End_Pause
– Query_Modes, PEM_Status, PE_Identify
– Query_Measurement
Les variateurs de fréquence peuvent également être interrogés pour obtenir des
données de grandeurs électriques acquises par ces appareils.

3.3.3.3 Indications de PE_CMD_CP

Indications de PE_CMD_CP
PE_CMD_CP repose sur le bloc de programme PNIO_RW_REC et fournit tous les
visualisation de PNIO_RW_REC, voir Visualisation du bloc PNIO_RW_REC.
Il fournit en outre les indications spécifiques PROFIenergy ci-après. Les indications d'erreur
de STATUS ne valent qu'en relation avec ERROR = 1.

Blocs de programme pour CP S7 SIMATIC NET


184 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Tableau 3- 5 Indications spécifiques de PE_CMD_CP

STATUS Signification
Erreurs spécifiques de bloc
8081h Conflit de longueur entre CMD_PARAM et CMD_PARAM_LEN
Erreurs spécifiques PROFIenergy
FE01h Service_Request_ID invalide
FE02h Request_Reference invalide
FE03h CMD_MODIFIER invalide
FE04h Indications invalides sur la structure de données d'une commande (Data_Structure_Identifier_RQ) dans le
télégramme pour l'enregistrement PROFIenergy d'écriture
FE05h Indications invalides sur la structure de données d'une commande (Data_Structure_Identifier_RS) dans le
télégramme pour l'enregistrement PROFIenergy de lecture
FE06h Mode d'économie d'énergie (PE_Mode_ID) non pris en charge
FE07h Réponse plus longue que la longueur de transfert max.
FE08h Nombre de commandes invalide
FE09h Block Type invalide (voir en-tête de télégramme)
FE0Ah Block Length invalide (voir en-tête de télégramme)
FE0Bh Block Version invalide (voir en-tête de télégramme)
FE50h Pas de mode d'économie d'énergie approprié (PE_Mode_ID)
FE51h La valeur de PAUSE_TIME n'est pas prise en charge.
FE52h PE_Mode_ID non pris en charge

Des détails sur les paramètres des erreurs spécifiques PROFIenergy sont fournis au
chapitre Données de réponse (Page 185).

Voir aussi
Indications du bloc PNIO_RW_REC (Page 166)

3.3.4 Données de réponse

Structure des données de réponse


Les tableaux ci-après indiquent la structure de l'enregistrement (80A0h) des données de
réponse de PE_START_END_CP et PE_CMD_CP.
Le tableau suivant fournit un récapitulatif de la structure de l'enregistrement des données de
réponse retournées conformément à la spécification PROFIenergy. La composition de la
zone "Service Data Response" est décrite ensuite pour les diverses commandes
PROFIenergy.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 185
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Tableau 3- 6 Structure des données de réponse

Définitions de bloc Attributs Valeur Type de Description


données
Block Header BlockType 0801h Unsigned16
BlockLength Unsigned16 Longueur de télégramme (sans
les champs "BlockType" et
"BlockLength")
BlockVersionHigh 01h Unsigned8
BlockVersionLow 00h Unsigned8
Response Header Service_Request_ID 01h...FFh Unsigned8 01h : Start_Pause
02h : End_Pause
03h : Query_Modes
04h : PEM_Status
05h : PE_Identify
06h...09h : - réservé -
10h : Query_Measurement
11h...CF : - réservé -
D0h...FFh : spécifique fabricant
Request_Reference 01h...FFh Unsigned8 Numéro d'identification de la
requête (réfléchi dans la
réponse du périphérique IO)
Service Header Status 01h...FFh Unsigned8 00h : - réservé -
Response 01h : Terminé
02h : Terminé avec erreur
03h : Données incomplètes
04h...CFh : - réservé -
D0h...FFh : En fonction du
Service_Request_ID
Data_Structure_Identifier_RS 01h...FFh Unsigned8 00h : - réservé -
01h...FFh : Structure de
données en fonction du
Service_Request_ID
FFh : error
Service Data Données de réponse du
Response périphérique IO
Selon la commande
PROFIenergy (décrite ci-après)

Blocs de programme pour CP S7 SIMATIC NET


186 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Signification de "Service Data Request" et "Service Data Response"


Les sections ci-après expliquent, pour les diverses commandes PROFIenergy, les valeurs
des paramètres lors des requêtes adressées par le contrôleur IO au périphérique IO
(Service Data Request) et la structure des données de réponse du périphérique IO (Service
Data Response).
● Service Data Request
Valeurs de paramètre lors de la requête du contrôleur IO
● Service Data Response
Structure des données de réponse du périphérique IO

Commande PROFIenergy "Start_Pause"


● Service Data Request
– CMD = 01
– CMD_MODIFIER = 00
– CMD_PARA_LEN = 04
– CMD_PARA = Pointeur Any vers la valeur de "Pause_Time" (type de données "TIME")
Durée CEI par incréments de 1 ms, entier signé
Valeur : T#-24D_20H_31M_23S_648MS à T#24D_20H_31M_23S_647MS
● Service Data Response

Paramètre Valeur Type de données


PE_Mode_ID * 01h...FFh Unsigned8
- réservé - 00h Unsigned8

* Numéro d'identification du mode d'économie d'énergie

Commande PROFIenergy "End_Pause"


● Service Data Request
– CMD = 02
– CMD_MODIFIER = 00
– CMD_PARA_LEN = 00
– CMD_PARA = sans signification
● Service Data Response

Paramètre Valeur Type de données


Time_to_operate * Unsigned32

* Temps attendu pour faire basculer le périphérique PROFIenergy sur "Opérationnel"


(ready_to_operate)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 187
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Commande PROFIenergy "Query_Modes" – List_Energy_Saving_Modes


● Service Data Request
– CMD = 03
– CMD_MODIFIER = 01
– CMD_PARA_LEN = 00
– CMD_PARA = sans signification
● Service Data Response

Paramètre Valeur Type de données


Number_of_PE_Mode_IDs * 01h Unsigned8
PE_Mode_IDs Unsigned8-Array of
Number_of_PE_Mode_IDs (Unique ID
for mode)

* Nombre de modes d'économie d'énergie

Commande PROFIenergy "Query_Modes" – Get_Mode


● Service Data Request
– CMD = 03
– CMD_MODIFIER = 02
– CMD_PARA_LEN = 01
– CMD_PARA = Pointeur Any vers la valeur de PE_MODE_ID (unsigned8)
● Service Data Response

Paramètre Valeur Type de données


PE_Mode_ID 01h...FFh Unsigned8
PE_Mode_Attributes * 00h...01h Unsigned8
Time_min_Pause Unsigned32
Time_to_Pause Unsigned32
Time_to_operate Unsigned32
Time_min_length_of_stay Unsigned32
Time_max_length_of_stay Unsigned32
Mode_Power_Consumption Float32
Energy_Consumption_to_pause Float32
Energy_Consumption_to_operate Float32

* Codage du bit 0:
0 = Uniquement valeurs de mesure de temps et d'énergie statiques disponibles.
1 = Valeurs de mesure de temps et d'énergie dynamiques disponibles.
Bit 1...7 : réservé

Blocs de programme pour CP S7 SIMATIC NET


188 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Commande PROFIenergy "PEM_Status"


● Service Data Request
– CMD = 04
– CMD_MODIFIER = 00
– CMD_PARA_LEN = 00
– CMD_PARA = sans signification
● Service Data Response

Paramètre Valeur Type de données


PE_Mode_ID_Source * 00h Unsigned8
01h...FEh
FFh
PE_Mode_ID_Destination * 00h Unsigned8
01h...FEh
FFh
Time_to_operate Unsigned32
Remaining_time_to_destination Unsigned32
Mode_Power_Consumption Float32
Energy_Consumption_to_Destination Float32
Energy_Consumption_to_operate Float32

* Valeurs possibles pour "PE_Mode_ID_Source" et "PE_Mode_ID_Destination":


00h : PE_Power_off (hors tension )
01h...FEh : Configurable
FFh : PE_Ready_to_operate (opérationnel)

Commande PROFIenergy "PE_Identify"


● Service Data Request
– CMD = 05
– CMD_MODIFIER = 00
– CMD_PARA_LEN = 00
– CMD_PARA = sans signification
● Service Data Response

Paramètre Valeur Type de données


Count * 6 Unsigned8
Start_Pause ** 01h Unsigned8
End_Pause 02h Unsigned8
Query_Modes 03h Unsigned8
PEM_Status 04h Unsigned8

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 189
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Valeur Type de données


PE_Identify 05h Unsigned8
Query_Measurement *** 10h Unsigned8

* Nombre de commandes PROFIenergy prises en charge


** Service_Request_ID de la première commande PROFIenergy prise en charge
*** Service_Request_ID de la dernière commande PROFIenergy prise en charge

Commande PROFIenergy "Query_Measurement" – Get_Measurement_List


● Service Data Request
– CMD = 16
– CMD_MODIFIER = 01
– CMD_PARA_LEN = 00
– CMD_PARA = sans signification
● Service Data Response

Paramètre Valeur Type de données


Count * Unsigned8
- réservé - Unsigned8
Measurement_ID ** Unsigned16
Accuracy_Domain 1 Unsigned8
Accuracy_Class 2 Unsigned8
Range 3 Float32

Measurement_ID *** Unsigned16
Accuracy_Domain 1 Unsigned8
Accuracy_Class 2 Unsigned8
Range 3 Float32

* Nombre de Measurement_ID
** Premier Measurement_ID pris en charge
*** Dernier Measurement_ID pris en charge
1 Domaine de précision (plage 1...4):
0 = réservé
1 = pourcent de la plage de mesure
2 = pourcents de la valeur de mesure actuelle
3 = précision selon CEI 61557-12
4 = précision selon EN 50470-3 chapitre 8
2 Classe de précision (plage 1...15):
0 = réservé
1 (0,01%) ... 15 (>20%)
3 Plage de mesure si Accuracy_Domain = 1 ; sinon indéfini

Blocs de programme pour CP S7 SIMATIC NET


190 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Commande PROFIenergy "Query_Measurement" – Get_Measurement_Values


● Service Data Request
– CMD = 16
– CMD_MODIFIER = 02
– CMD_PARA_LEN = longueur de la structure de données en octets
– CMD_PARA = Pointeur Any vers la structure de données composée comme suit :

Paramètre Valeur Type de données


Count * Unsigned8
- réservé - Unsigned8
Measurement_ID ** Unsigned16

Measurement_ID *** Unsigned16

* Nombre de Measurement_ID
** Première mesure interrogée
** Dernière mesure interrogée

● Service Data Response

Paramètre Valeur Type de données


Count * Unsigned8
- réservé - Unsigned8
Length_of_Structure 0002h...FFFFh Unsigned16
Measurement_Data_Structure_ID 1 = valeur simple Unsigned8
Measurement_ID ** 00h...FFh Unsigned16
Status_of_Measurement_Value 1 = valide Unsigned8
2 = non
disponible
3=
temporairement
non disponible
Transmission_Data_Type Float32
End_of_demand Unsigned32 ou Unsigned16
Length_of_Structure Unsigned16
Measurement_Data_Structure_ID Unsigned8
Measurement_ID *** Unsigned16
Status_of_Measurement_Value Unsigned8
Transmission_Data_Type Float32
End_of_demand Unsigned32 ou Unsigned16

* Nombre de Measurement_ID
** Première mesure interrogée
** Dernière mesure interrogée

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 191
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

3.3.5 PE_I_DEV_CP

3.3.5.1 Signification et appel - PE_I_DEV_CP

Signification et mode de fonctionnement


Le bloc de programme PE_I_DEV_CP est utilisé sur le périphérique PROFIenergy où il
exécute les commandes PROFIenergy du contrôleur IO. Les enregistrements PROFIenergy
transmis par le contrôleur IO (80A0h) sont retransmis par le firmware du CP à
PE_I_DEV_CP. Les données PROFIenergy du périphérique IO sont à leur tour transmises
par PE_I_DEV_CP via l'enregistrement PROFIenergy (80A0h) au contrôleur IO à titre de
réponse.
Les données de réponse de PE_I_DEV_CP sont générées par les fonctions
complémentaires FC 0 à FC 8, voir chapitre Blocs de programme complémentaires pour
PE_I_DEV_CP (Page 195).

Interface d'appel en représentation LOG

3(B,B'(9B&3

:25' &3/$''5 &0' ,17

%22/ 5(6(7 &0'B02',),(5 ,17

%22/ 9$/,' &0'B3$5$ $1<

,1'(; ,17

1(: %22/

(5525 %22/

67$786 :25'

$1< 5(63216(B'$7$ $1<

Interface d'appel en représentation LIST

LIST Explication
call fb 87 ( //Appel du bloc de programme PE_I_DEV_CP ;
CPLADDR :=W#16#0100, //Adresse de module issue de la configuration matérielle ;
RESET :=M1.0, //Signal de mise à zéro du bloc ;
VALID :=M1.3, //Signal de transfert de données au contrôleur ;
CMD :=MW222, //Service_Request_ID de la commande PROFIenergy ;
CMD_MODIFIER :=MW224, //Modifier de la commande PROFIenergy ;
CMD_PARA :=MD230, //Pointeur vers le paramètre du Modifier ;
INDEX :=MW228, //Numéro de l'enregistrement PROFIenergy ;
NEW :=M1.1, //Etat d'exécution du bloc ;
ERROR :=M1.2, //Adresse du paramètre en retour ERROR ;
STATUS :=MW2, //Adresse du paramètre en retour STATUS ;

Blocs de programme pour CP S7 SIMATIC NET


192 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

LIST Explication
RESPONSE_DATA //Adresse pour les données de réponse du périphérique IO
:=P#DB400.DBX0.0 BYTE 244 );

3.3.5.2 Explication des paramètres formels de PE_I_DEV_CP

Explication des paramètres formels de PE_I_DEV_CP

Paramètre Déclaration Type de Plage de valeurs Description


données
CPLADDR INPUT WORD I, Q, M, D, L, const. Adresse de début de module du CP
RESET INPUT BOOL Met l'exécution du bloc de programme à
zéro.
NEW est mis à 0.
VALID INPUT BOOL Si les données de réponse ont été inscrites
dans la zone de mémoire voulue du
périphérique IO, le programme utilisateur
doit positionner VALID = 1. Le bloc de
programme met ensuite les données à la
disposition du contrôleur IO.
NEW est mis à 0.
CMD OUTPUT INT  01: Start_Pause Service-ID de la commande PROFIenergy
 02: End_Pause
 03: Query_Modes
 04: PEM_Status
 05: PE_Identity
 16: Query_Measurement

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 193
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de valeurs Description


données
CMD_ OUTPUT INT  Modifier pour Start_Pause : Modifier des commandes PROFIenergy
MODIFIER 00 Signification des Modifiers pour les
 Modifier pour End_Pause : commandes :
00  Commande "Query_Modes",
 Query_Modes, Modifier :
Modifier : – 01 (List_Energy_Saving_Modes):
– 01 (List_Energy_ Lit tous les modes PROFIenergy pris
Saving_Modes) en charge

– 02 (Get_Mode) – 02 (Get_Mode):
Lit les données du mode
 Modifier pour PEM_Status : PROFIenergy sélectionné.
00
 Commande "Query_Measurement",
 Modifier pour PE_Identity : Modifier :
00
– 01 (Get_Measurement_List):
 Query_Measurement, Lit tous les Measurement_ID
Modifier : configurés.
– 01 (Get_Measurement – 02 (Get_Measurement_Values):
_List) Lit les mesures des Measurement_ID
– 02 (Get_Measurement sélectionnés.
_Values)
CMD_PARA OUTPUT ANY Pointeur Any vers les paramètres pour les
Modifier de commande suivants (cf.
paramètre CMD_MODIFIER) :
 pour Get_Mode :
PE_Mode_ID (ID du mode d'économie
d'énergie) Longueur = 1
 pour "Get_Measurement_Values" :
mesures des Measurement_IDs
Longueur = max. 236 octets
(télégramme complet de la commande
de contrôleur sans en-tête)
INDEX OUTPUT INT Numéro de l'enregistrement PROFIenergy
(80A0h)
NEW OUTPUT BOOL 0: Exécution pas encore Indication de l'état d'exécution du bloc de
commencée, terminée ou programme
abandonnée
1: Exécution en cours
ERROR OUTPUT BOOL 0: - Indication d'erreur
1: Erreur Pour sa signification en corrélation avec le
paramètre STATUS, voir Indications de
PE_I_DEV_CP (Page 195).

Blocs de programme pour CP S7 SIMATIC NET


194 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de valeurs Description


données
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec le
paramètre ERROR, voir Indications de
PE_I_DEV_CP (Page 195).
RESPONSE INOUT ANY Voir "Données de réponse" du Pointeur vers la zone de données de la
_DATA bloc de programme réponse du périphérique IO (télégramme
complet, y compris en-tête).
La zone de données doit concorder avec la
zone de données des blocs de programme
complémentaires FC 0 - FC 8 (paramètre
"DATA_ERRORRSP").
Taille recommandée : 244 octets min. Si la
zone de données est trop petite, seules les
données des octets configurés seront
transférées.

3.3.5.3 Indications de PE_I_DEV_CP

Indications de PE_I_DEV_CP
PE_I_DEV_CP repose sur le bloc de programme PNIO_RW_REC et fournit tous les
visualisation de PNIO_RW_REC, voir Visualisation du bloc PNIO_RW_REC.

Voir aussi
Indications du bloc PNIO_RW_REC (Page 166)

3.3.6 Blocs de programme complémentaires pour PE_I_DEV_CP

3.3.6.1 Récapitulatif des FC

Fonction
Les blocs de programme complémentaires FC 0 à FC 8 prennent en charge la mise à
disposition des données de réponse que PE_I_DEV_CP transfère au contrôleur :
● Il existe un bloc de programme distinct (FC 1 - FC 8) pour les données de réponse de
chaque commande PROFIenergy.
● FC 0 génère une réponse négative commune pour toutes les commandes PROFIenergy.
Les FC sont appelés dans le programme utilisateur. Il sont mis à disposition sous STEP 7
V5.5 dans la bibliothèque par défaut dans le dossier "PROFIenergy.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 195
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Les FC possèdent quelques paramètres communs et des paramètres individuels. Certains


des paramètres communs des FC sont connectés à des paramètres de PE_I_DEV_CP. Pour
certains paramètres d'entrée individuels des FC, les données de réponse sont entrées en
texte clair par l'utilisateur ou enregistrés dans la zone de mémoire du périphérique IO.

Récapitulatif des FC
Les blocs de programme complémentaires suivants sont mis à disposition :

Tableau 3- 7 Récapitulatif des FC complémentaires

Numéro Nom
FC 0 PE_ERROR_RSP
FC 1 PE_START_RSP
FC 2 PE_END_RSP
FC 3 PE_LIST_MODES_RSP
FC 4 PE_GET_MODE_RSP
FC 5 PE_PEM_STATUS_RSP
FC 6 PE_IDENTIFY_RSP
FC 7 PE_MEASUREMENT_LIST_RSP
FC 8 PE_MEASUREMENT_VALUE_RSP

Voir aussi
Paramètres individuels des FC (Page 198)

Blocs de programme pour CP S7 SIMATIC NET


196 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

3.3.6.2 Liaison des FC au bloc PE_I_DEV_CP

Liaison des FC au bloc de programme PE_I_DEV_CP

%ORFVGHSURJUDPPH
3(B,B'(9B&3 )&)&
&3/$''5 ,1
5(6(7 ,1 ,1 SDUDPªWUHV
8WLOLVDWHXU
VS«FLILTXHV&0'
8WLOLVDWHXU &0'B3$5$ 287

,1'(; 287 287 (5525

(5525 287 287 67$786

67$786 287 ,1 $&7,9$7( 8WLOLVDWHXU

,1 9$/,' 9$/,' 287

,1287 5(63216(B'$7$ '$7$B(5525563 ,1287

287 &0' &0' ,1

8WLOLVDWHXU 287 &0'B02',),(5 &0'B02',),(5 ,1

8WLOLVDWHXU 287 1(: 1(: ,1

([SORLWDWLRQHWU«DFWLRQGHO
XWLOLVDWHXU (QWU«HGHO
XWLOLVDWHXU

Figure 3-2 Liaison des FC au bloc PE_I_DEV_CP

Remarque
La liaison des blocs de programme est impérativement requise
PE_I_DEV_CP doit être connecté aux FC 0...FC 8 au niveau des paramètres sur fond bleu
clair qui sont affectés par des flèches rouges aux paramètres correspondants des FC.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 197
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

3.3.6.3 Paramètres communs des FC

Paramètres commun des blocs de programme complémentaires FC 0 - FC 8

Paramètre Déclaration Type de Plage de valeurs Description


données
Paramètre d'entrée
ACTIVATE INPUT BOOL Fait que, sur un front montant, le bloc copie
les paramètres d'entrée dans la zone de
données "DATA_ERRORRSP". Est ensuite
remis à zéro par le bloc.
Doit être activé par l'utilisateur en l'espace
de 10 secondes après détection d'un front
positif par le PE_I_DEV_NEW.
PE_I_DEV_NEW INPUT BOOL Doit être connecté au paramètre de sortie
NEW de PE_I_DEV_CP.
Le bloc n'est exécuté que s'il est à 1.
CMD INPUT INT Doit être connecté au paramètre de sortie
CMD de PE_I_DEV_CP.
CMD_MODIFIER INPUT INT Doit être connecté au paramètre de sortie
CMD_MODIFIER de PE_I_DEV_CP.
Paramètre de sortie
DATA_ERRORRSP OUTPUT ANY Pointeur vers la zone de données dans
laquelle sont enregistrées les données de
réponse (télégramme de réponse complet, y
compris en-tête).
Doit être connecté au paramètre de sortie
RESPONSE_DATA de PE_I_DEV_CP.
Taille recommandée : 244 octets min.
VALID OUTPUT BOOL 0: - Est ensuite remis à un par le bloc.
1: Pas d'erreur Doit être connecté au paramètre d'entrée
VALID de PE_I_DEV_CP.
ERROR OUTPUT BOOL 0: Pas d'erreur Indication d'erreur
1: Erreur
STATUS OUTPUT WORD 0: Pas d'erreur Indication d'état
80B1h : Erreur dans l'indication ANY (zone
erronée p. ex.)

3.3.6.4 Paramètres individuels des FC

Paramètres individuels des FC 0 à FC 8


Vous trouverez ci-après la description des paramètres individuels des FC.

Blocs de programme pour CP S7 SIMATIC NET


198 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

PE_ERROR_RSP
Génère une réponse négative si la commande PROFIenergy requérante n'est généralement
ou temporairement pas prise en charge. La réponse négative est indépendante de la
commande requérante.

Tableau 3- 8 Paramètres individuels de FC 0 PE_ERROR_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
ERROR_CODE INPUT BYTE Code d'erreur

PE_START_RSP
Démarre une pause d'économie d'énergie. Génère la réponse à la commande
"Start_Pause". Signale en retour le mode d'économie d'énergie adopté par l'appareil.

Tableau 3- 9 Paramètres individuels de FC 1 PE_START_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
PE_Mode_ID INPUT BYTE ID du mode d'économie d'énergie que
l'appareil ou le groupe d'unités adopte.

Signalisation en retour par PE_Mode_ID du mode d'économie d'énergie adopté par l'appareil
de terrain ou le groupe d'unités.

PE_END_RSP
Génère la réponse à la commande "End_Pause".

Tableau 3- 10 Paramètres individuels de FC 2 PE_END_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
Time_to_Operate INPUT DWORD Temps nécessaire pour passer du mode
d'économie d'énergie actuel à "Opérationnel"
(Ready_to_Operate).

PE_LIST_MODES_RSP
Génère la réponse à la commande "Query_Modes" > Modifier "List_Modes" (liste des modes
d'économie d'énergie pris en charge).
Les ID des modes d'économie d'énergie sont à définir dans le programme utilisateur.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 199
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Tableau 3- 11 Paramètres individuels de FC 3 PE_LIST_MODES_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
Number_of_PE_Mode_IDs INPUT BYTE Nombre de modes d'économie d'énergie pris
en charge
PE_Mode_ID INPUT ANY  00h Pointeur vers la zone dans laquelle sont
enregistrés les modes d'économie d'énergie.
 01h...FEh
En tant qu'utilisateur, vous devez enregistrer
 FFh ici les ID des modes d'économie d'énergie. Un
ID de mode d'économie d'énergie se configure
au format Unsigned8. Plage admissible : 1 à
254 octets.

Si les appareils d'un groupe doivent réagir différemment à des pauses de durées différentes,
vous pouvez configurer à cette fin des modes d'économie d'énergie (PE_Mode) différents.
Affectez aux différents modes d'économie d'énergie des PE_Mode_ID différents.
Valeurs possible pour "PE_Mode_ID" :
● 00h : PE_Power_off (hors tension)
● 01h...FEh : configurable ou spécifique fabricant
● FFh : PE_Ready_to_operate (opérationnel)

PE_GET_MODE_RSP
Génère la réponse à la commande "Query_Modes" > Modifier "Get_Mode".

Tableau 3- 12 Paramètres individuels de FC 4 PE_GET_MODE_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
PE_Mode_ID INPUT BYTE ID de mode d'économie d'énergie utilisé
actuellement
Time_Min_Pause * INPUT Unsigned32 Durée min. de pause pour ce mode
d'économie d'énergie PE Il s'agit de la somme
des trois paramètres :
 Time_to_Pause
 Time_to_operate
 Time_min_length_of_stay
Time_to_Pause * INPUT Unsigned32 Durée à compter du front de démarrage
jusqu'à ce que le mode d'économie d'énergie
requis soit atteint.
Time_to_operate * INPUT Unsigned32 Durée max. d'activation jusqu'à
PE_ready_to_operate
Time_to_operate peut être utilisé directement
pour les calculs correspondants. La valeur
peut être soit une valeur MAX statique soit être
calculée dynamiquement par le périphérique
PE.

Blocs de programme pour CP S7 SIMATIC NET


200 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de Description


données valeurs
Time_min_length_of_stay * INPUT Unsigned32 Durée minimale de séjour du périphérique PE
dans ce PE_Mode.
Time_max_length_of_stay * INPUT Unsigned32 Durée maximale de séjour du périphérique PE
dans ce PE_Mode.
Mode_Power INPUT Float32 Consommation d'énergie dans le PE_Mode
_Consumption ** actuel [kW]
Energy_Consumption INPUT Float32 Consommation d'énergie de
_to_pause ** PE_ready_to_operate au PE_Mode actuel
[kWh]
Energy_Consumption INPUT Float32 Consommation d'énergie du PE_Mode actuel
_to_operate ** au PE_ready_to_operate [kWh]

* Le profil PROFIenergy ne spécifie pas de format de temps invalide.


Si la durée est illimité, on peut spécifier la valeur max. FFFFFFFFh.
Si la durée est nulle, on peut utiliser 00h.
** Si la valeur de consommation d'énergie n'est pas définie, vous pouvez spécifier 0,0 (Float32).

PE_PEM_STATUS_RSP
Génère la réponse à la commande "PEM_STATUS".

Tableau 3- 13 Paramètres individuels de FC 5 PE_PEM_STATUS_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
PE_Mode_ID_Source INPUT BYTE  00h ID du mode d'économie d'énergie
effectivement adopté
 01h...FEh
 FFh
PE_Mode_ID_Destination INPUT BYTE  00h ID du mode d'économie d'énergie spécifié par
le contrôleur
 01h...FEh
 FFh
Time_to_operate * INPUT Unsigned32 Durée max. d'activation jusqu'à
PE_ready_to_operate
Time_to_operate peut être utilisé directement
pour les calculs correspondants. La valeur
peut être soit une valeur MAX statique soit être
calculée dynamiquement par le périphérique
PE.
Remaining_time_to INPUT Unsigned32 Facultatif : temps restant jusqu'au PE_Mode
_destination * requis, Valeur dynamique ou valeur MAX
statique
Mode_Power INPUT Float32 Consommation d'énergie dans le PE_Mode
_Consumption ** actuel [kW]

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 201
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

Paramètre Déclaration Type de Plage de Description


données valeurs
Energy_Consumption INPUT Float32 Consommation d'énergie jusqu'au PE_Mode
_to_Destination ** requis [kWh]
Energy_Consumption INPUT Float32 Consommation d'énergie du PE_Mode actuel
_to_operate ** au PE_ready_to_operate [kWh]

* Le profil PROFIenergy ne spécifie pas de format de temps invalide.


Si la durée est illimité, on peut spécifier la valeur max. FFFFFFFFh.
Si la durée est nulle, on peut utiliser 00h.
** Si la valeur de consommation d'énergie n'est pas définie, vous pouvez spécifier 0,0 (Float32).
Valeurs possibles pour "PE_Mode_ID_Source" et "PE_Mode_ID_Destination" :
● 00h : PE_Power_off (hors tension)
● 01h...FEh : configurable ou spécifique fabricant
● FFh : PE_Ready_to_operate (opérationnel)

PE_IDENTIFY_RSP
Génère la réponse à la commande "PE_Identify".
En tant qu'utilisateur, vous devez spécifier les commandes PROFIenergy prises en charge.

Tableau 3- 14 Paramètres individuels de FC 6 PE_IDENTIFY_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
Count INPUT BYTE 0...6 Nombre de commandes PROFIenergy prises
en charge
Start_Pause INPUT BOOL 0...1  1: Commande prise en charge
 0: Commande non prise en charge
End_Pause INPUT BOOL 0...1  1: Commande prise en charge
 0: Commande non prise en charge
Query_Modes INPUT BOOL 0...1  1: Commande prise en charge
 0: Commande non prise en charge
PEM_Status INPUT BOOL 0...1  1: Commande prise en charge
 0: Commande non prise en charge
PEM_Identify INPUT BOOL 0...1  1: Commande prise en charge
 0: Commande non prise en charge
Query_Measurement INPUT BOOL 0...1  1: Commande prise en charge
 0: Commande non prise en charge

Blocs de programme pour CP S7 SIMATIC NET


202 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

PE_MEASUREMENT_LIST_RSP
Génère la réponse à la commande "Query_Measurement" > Modifier
"Get_Measurement_List".

Tableau 3- 15 Paramètres individuels de FC 7 PE_MEASUREMENT_LIST_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
Count INPUT BYTE Nombre d'ID de valeur de mesure
(Measurement_ID) pris en charge
Measurement_List INPUT ANY Pointeur vers la zone de données avec les ID
de valeur de mesure pris en charge.
En tant qu'utilisateur, vous devez enregistrer
dans cette zone de données les ID de valeur
de mesure.
Il est possible de transférer au maximum 29 ID
de valeur de mesure par télégramme.
Pour la structure des tableaux (arrays) voir
chapitre Données de réponse (Page 185) >
"Query_Measurement" –
Get_Measurement_List.

PE_MEASUREMENT_VALUE_RSP
Génère la réponse à la commande "Query_Measurement" > Modifier
"Get_Measurement_Values".

Tableau 3- 16 Paramètres individuels de FC 8 PE_MEASUREMENT_VALUE_RSP

Paramètre Déclaration Type de Plage de Description


données valeurs
Count INPUT BYTE Nombre de Measurement_Values prises en
charge
Measurement_Values INPUT ANY Pointeur vers la zone de données valeurs de
mesure (Measurement_Values).
En tant qu'utilisateur, vous devez enregistrer
dans cette zone de données les valeurs de
mesure.
Il est possible de transférer au maximum 116
valeurs de mesure par télégramme.
Pour la structure des tableaux (arrays) voir
chapitre Données de réponse (Page 185) >
"Query_Measurement" –
Get_Measurement_List.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 203
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

3.3.7 DS3_WRITE_CP / PE_DS3_Write_ET200S_CP


La description ci-après du bloc de programme DS3_WRITE_CP vaut également pour le
PE_DS3_Write_ET200S_CP pour STEP 7 Professional qui est fonctionnellement identique.

3.3.7.1 Signification et appel - DS3_WRITE_CP

Signification et mode de fonctionnement


Le bloc DS3_WRITE_CP est utilisé sur la CPU d'un CP 300 fonctionnant comme contrôleur
PROFIenergy pour transmettre à un ET 200S les paramètres de commutation de modules
d'alimentation. Permet de définir le comportement de commutation d'au maximum 8
emplacements (en l'occurrence : modules d'alimentation).
DS3_WRITE_CP n'est pas un bloc de programme PROFIenergy.

Interface d'appel en représentation LOG

'6B:5,7(B&3

:25' &3/$''5 %86< %22/

%22/ (1$%/( '21( %22/

:25' ,' (5525 %22/

,17 6/27B12B 67$786 :25'

,17 )81&B



,17 6/27B12B

,17 )81&B

Interface d'appel en représentation LIST

LIST Explication
CALL FB 53, DB 53 ( //Appeler le bloc de programme DS3_WRITE_CP;
CPLADDR := W#16#0110, //Adresse du module de la configuration matérielle;
ENABLE := M 1.1, //Adresse pour signal de front pour l'exécution du bloc;
ID := W#16#86A, //Adresse de l'emplacement de tête du périphérique IO;
SLOT_NO_1 := W#16#1000, //Adresse logique du module d'alimentation 1;
FUNC_1 := M 2.1, //Adresse de la valeur du comportement de commutation du module
... d'alimentation 1;
... //...
BUSY := M 1.2, //...
DONE := M 1.3, //Adresse pour paramètre de retour BUSY;
ERROR := M 1.4, //Adresse pour paramètre de retour DONE;
STATUS := MW 12 ); //Adresse pour paramètre de retour ERROR;
//Adresse pour paramètre de retour STATUS

Blocs de programme pour CP S7 SIMATIC NET


204 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.3 PROFIenergy

3.3.7.2 Explication des paramètres formels de DS3_WRITE_CP

Explication des paramètres formels de DS3_WRITE_CP

Paramètre Déclaration Type de Plage de valeurs Description


données
CPLADDR INPUT WORD I, Q, M, D, L, const. Adresse de début de module du CP
ENABLE INPUT BOOL Commence, sur front montant, à exécuter le
bloc de programme.
ID INPUT WORD Adresse logique de l'emplacement d'en-tête
du périphérique IO
SLOT_NO_1 INPUT INT Numéro d'emplacement du premier module
d'alimentation
FUNC_1 INPUT INT Définition du comportement de commutation
du module d'alimentation pour ce qui est du
démarrage et de la fin de la pause
d'économie d'énergie
 0 (FALSE)
– PAUSE_START :
pas d'influence (le module
d'alimentation reste opérationnel)
– PAUSE_STOP :
Remet le module d'alimentation en
marche
 1 (TRUE)
– PAUSE_START :
Arrête le module d'alimentation.
– PAUSE_STOP :
Remet le module d'alimentation en
marche
... INPUT INT
... INPUT INT
SLOT_NO_8 INPUT INT Numéro d'emplacement du huitième module
d'alimentation
FUNC_8 INPUT INT Voir "FUNC_1"
BUSY OUTPUT BOOL 0: Exécution pas encore Indication de l'état d'exécution du bloc de
commencée, terminée ou programme
abandonnée
1: Exécution en cours
DONE OUTPUT BOOL 0: - Le paramètre d'état indique si la tâche a été
1: Enregistrement transféré exécutée sans erreur.
sans erreur
ERROR OUTPUT BOOL 0: - Indication d'erreur
1: Erreur
STATUS OUTPUT WORD Indication d'état

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 205
Blocs de programme pour PROFINET IO (S7-300)
3.4 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFINET)

Pour la signification de DONE, ERROR et STATUS voir Indications de DS3_WRITE_CP


(Page 206).

3.3.7.3 Indications de DS3_WRITE_CP

Indications de DS3_WRITE_CP
DS3_WRITE_CP repose sur le bloc de programme PNIO_RW_REC et fournit tous les
visualisation de PNIO_RW_REC, voir Visualisation du bloc PNIO_RW_REC.

Voir aussi
Indications du bloc PNIO_RW_REC (Page 166)

3.4 Capacité fonctionnelle / Besoins en ressources des blocs de


programme (PROFINET)

Besoin en ressources

Remarque
Tenez compte de la version des blocs. Les versions de bloc fournies actuellement peuvent
être différentes des versions de bloc indiquées ici. Le besoin en ressources peut être
différent pour les blocs d'une autre version.
Vous trouverez des informations sur les versions de bloc actuelles sous le numéro d'article :
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Tableau 3- 17 Indications pour FC / FB avec S7-400

NOM Version Nº de Besoins en Besoins en MC7 [octets] Données


FC/FB mémoire de mémoire centrale locales [octets]
chargement [octets]
[octets]
PN_InOut 1.3 FB88 2678 2234 2198 48
PN_InOut_Fast 1.0 FB90 2906 2266 2230 48

Blocs de programme pour CP S7 SIMATIC NET


206 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET IO (S7-300)
3.4 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFINET)

Tableau 3- 18 Indications pour FC / FB avec S7-300

NOM Version Nº de Besoins en Besoins en MC7 [octets] Données


FC/FB mémoire de mémoire centrale locales [octets]
chargement [octets]
[octets]
PN_InOut 1.5 FB88 2470 2066 2030 54
PNIO_SEND 3.0 FC11 1420 1182 1146 46
PNIO_RECV 3.0 FC12 1270 1052 1016 46
PNIO_RW_REC 1.1 FB52 1636 1378 1342 62
PNIO_ALARM 1.1 FB54 1168 960 924 62
PE_START_END_C 1.0 FB85 3286 2808 2772 92
P
PE_CMD_CP 1.0 FB86 3750 3264 3228 358
PE_I_DEV_CP 1.0 FB87 3192 2902 2866 114
DS3_WRITE_CP 1.0 FB53 1716 1408 1372 84

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 207
Blocs de programme pour PROFINET IO (S7-300)
3.4 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFINET)

Blocs de programme pour CP S7 SIMATIC NET


208 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET CBA 4
4.1 PN_InOut / PN_InOut_Fast - signification et appel

Signification et mode de fonctionnement


Le bloc FB88 / FB90 a pour tâche de transmettre des données du DB d'interface dans le CP
et du CP dans le DB d'interface. Le DB d'interface est l'interface au programme utilisateur.
Pour cela, il faut appeler le FB88 / FB90 cycliquement. Il est également possible d'appeler le
FB88 / FB90 plusieurs fois dans un cycle.
Au niveau de l'interface, le FB88 / FB90 doit recevoir uniquement l'adresse de module du
CP.
Pour garantir la cohérence des données, vous devez attendre que la tâche soit terminée
(DONE=1 ou ERROR=1) avant de modifier les données à transmettre ou de commencer à
lire les données reçues.
La transmission est achevée ou terminée avec erreur dès que DONE=1 ou ERROR=1. Les
données peuvent alors être exploitées ou repositionnées. Une nouvelle transmission n'aura
lieu qu'au prochain appel.
Faites le nécessaire dans votre programme utilisateur pour que le FB88 / FB90 ne soit
appelé de nouveau, après une transmission achevée, qu'une fois toutes les données
d'entrée prises en charge et toutes les données de sortie écrites dans le DB d'interface.
En principe, il est permis de déclencher par temporisation l'appel des blocs FB88 / FB90.
Vous trouverez plus loin des informations sur ce mode de fonctionnement.

Différences entre FB88 et FB90


Les blocs fonctionnels FB90 et FB88 se comportent pour une grande part de manière
identique à l'interface au programme utilisateur. Vous pouvez utiliser le FB90 avec certains
types de CP/CPU de S7-400 ; tenez compte des indications données par le manuel du CP.
Quand le FB90 est autorisé pour le type de CP utilisé, il est conseillé de l'employer. Vous
obtiendrez ainsi des temps de réaction plus courts qu'avec le FB88. Mais respectez les
conditions secondaires de l'emploi.
Dans le détail, il faut savoir que :
● les paramètres d'interface sont identiques ;
● le FB90 dispose de quelques indications supplémentaires dans le paramètre STATUS ;

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 209
Blocs de programme pour PROFINET CBA
4.1 PN_InOut / PN_InOut_Fast - signification et appel

● pour quelques erreurs, les indications du paramètre STATUS ne sont pas les mêmes
avec FB88 et avec FB90 ;
● il y a des différences dans les capacités fonctionnelles du DB d'interface (voir le manuel
respectif).

Remarque
Vous trouverez des informations détaillées sur la composition et sur le maniement du DB
d'interface dans la documentation de SIMATIC iMap.

Remarque
En cas de chargement après coup de blocs du programme utilisateur, la cohérence des
données n'est garantie que si la CPU a été mise en STOP auparavant.

Livraison - bibliothèque de blocs


Les blocs FB88 et FB90 sont fournis avec SIMATIC iMap. Il y a des types de bloc différents
pour S7-300 et pour S7-400.
Après l'installation de SIMATIC iMap, les blocs de programme sont disponibles dans la
bibliothèque STEP 7 "PROFINET System/CP300/Blocks" ou "PROFINET System-
Library/CP400/Blocks".

Interface d'appel
Interface d'appel en représentation LOG

PN_InOut / PN_InOut_Fast

WORD LADDR DONE BOOL

ERROR BOOL

STATUS WORD

Exemple d'appel en représentation LIST

LIST Explication
Call FB 88 , DB88 ( //Appel du bloc avec l'instance DB88
LADDR := W#16#0120,
DONE := M 99.1,
ERROR := M 99.0,
STATUS := MW 104);

Blocs de programme pour CP S7 SIMATIC NET


210 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET CBA
4.2 Explication des paramètres formels - PN_InOut / PN_InOut_Fast

4.2 Explication des paramètres formels - PN_InOut / PN_InOut_Fast

Explication des paramètres formels


Le tableau ci-après explique tous les paramètres formels du FB88 / FB90 :

Paramètre Déclaration Type de Description


données
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début du module s'affiche
dans le tableau de configuration. Indiquez cette adresse ici.
Ne modifiez pas ce paramètre car un seul CP du rack prend en
charge le mode avec PROFINET CBA.
DONE OUTPUT BOOL Signale l'achèvement (positif) de l'exécution d'une tâche.
ERROR OUTPUT BOOL Signale quand la tâche n'a pas pu être exécutée sans erreur.
STATUS OUTPUT WORD Ce paramètre donne des informations détaillées sur l'exécution de la
tâche. Il est possible que des indications d'état soient fournies déjà
durant l'exécution de la tâche (DONE=0 et ERROR=0).

4.3 Indications des blocs PN_InOut et PN_InOut_Fast

Exploiter les indications d'état


Sachez que les indications d'état DONE, ERROR, STATUS sont mises à jour à chaque
appel de bloc.
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Tableau 4- 1 Indications de PN_InOut (FB88) et PN_InOut_Fast (FB90)

DONE ERROR STATUS Signification


1 0 0000H Tâche terminée sans erreur.
0 0 0000H Aucune tâche en cours de traitement ; le bloc peut être appelé.
0 0 8181H  Tâche en cours.
ou
 (FB90 seulement) : Etablissement en cours de la liaison au module adressé (voir
aussi sous 8090H).
0 1 8183H (uniquement pour S7-300)
Le service n'a pas encore été démarré, la prise en charge des données n'est pas
encore possible.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 211
Blocs de programme pour PROFINET CBA
4.3 Indications des blocs PN_InOut et PN_InOut_Fast

DONE ERROR STATUS Signification


0 1 8184H  DB d'instance erroné, dû en général à une opération d'écriture non autorisée du
programme utilisateur dans le DB d'instance.
ou
 (FB90 seulement)
Tâche d'émission ou de réception erronée.
0 1 8085H (FB90 seulement)
Le DB d'interface est erroné.
0 1 8090H (uniquement pour S7-400)
Erreur de paramétrage
L'adresse de module indiquée est fausse ; elle désigne un emplacement d'enfichage
vide.
Nota (FB90 seulement) :
dans les cas suivants, STATUS indique la valeur 8181H (tâche en cours), mais en
réalité aucune communication n'a lieu :
 L'adresse désigne un emplacement qui est occupé par un autre type de module.
 Le module adressé n'est pas configuré pour le fonctionnement PROFINET CBA.
0 1 80A1H (FB90 seulement)
Erreurs de communication possibles :
 La liaison établie dans la station au module adressé va être coupée.
 La capacité fonctionnelle pour liaisons de la CPU est dépassée.
 L'interface est réinitialisée.
0 1 80B0H (uniquement pour S7-300)
Erreur de bloc : le numéro d'enregistrement est erroné.
Cet état peut se produire aussi après les opérations suivantes :
 démarrage ou redémarrage après mise hors tension/sous tension
 démarrage ou redémarrage de la CPU
0 1 80B1H (uniquement pour S7-300)
Erreur de bloc : longueur d'enregistrement ou offset erroné.
0 1 80B3H (uniquement pour S7-300)
Erreur de paramètre : adresse de CP erronée
0 1 80C1H (uniquement pour S7-300)
Erreur temporaire : l'enregistrement indiqué est en cours de traitement.
0 1 80C2H (uniquement pour S7-300)
Erreur temporaire : engorgement de tâches ; l'enregistrement ne peut pas encore être
lu.
0 1 80C3H (uniquement pour S7-300)
Erreur temporaire : ressources (mémoire) occupées.
0 1 80C4H (uniquement pour S7-300)
Erreur de communication : survient temporairement, une répétition dans le programme
utilisateur est donc judicieuse.

Blocs de programme pour CP S7 SIMATIC NET


212 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFINET CBA
4.3 Indications des blocs PN_InOut et PN_InOut_Fast

DONE ERROR STATUS Signification


0 1 80D0H (uniquement pour S7-300)
Erreur de configuration :
le nombre maximal de blocs de données d'entrée et de sortie est dépassé ; le DB
d'interface est trop grand.
0 1 80D1H (uniquement pour S7-300)
Erreur de configuration
Causes possibles :
 L'interface du composant configuré ne concorde pas avec celle utilisée dans le
programme (sorties).
 Un module erroné a été enfiché ; le service PROFINET n'est pas supporté.
0 1 80D2H (uniquement pour S7-300)
Erreur de configuration
Causes possibles :
 L'interface du composant configuré ne concorde pas avec celle utilisée dans le
programme (entrées).
 Un module erroné a été enfiché ; le service PROFINET n'est pas supporté.
 Erreur de paramètre : adresse de CP erronée.
0 1 8322H (FB90 seulement)
Le DB d'interface est erroné.
0 1 8332H (FB90 seulement)
Le numéro du DB d'interface est trop élevé.
0 1 833AH (FB90 seulement)
L'accès au DB d'interface n'est pas possible (par ex. parce que le DB d'interface a été
effacé).
0 1 8623H (FB90 seulement)
Le DB d'interface est erroné.
0 1 863AH (FB90 seulement)
L'accès au DB d'interface n'est pas possible (par ex. parce que le DB d'interface a été
effacé).

Avec l'onglet "Appels" du dialogue des propriétés du FB décrit ici, vous pouvez afficher les
SFC utilisés et significatifs pour l'analyse d'erreur.

Remarque
Pour les entrées mentionnant sous STATUS un codage 8FxxH (pour S7-300) ou 8xxxH
(pour S7-400), veuillez consulter également le manuel de référence STEP 7 "Fonctions
système et fonctions standard". Vous y trouverez des informations au chapitre "Evaluation
d'erreur avec le paramètre de sortie RET_VAL".

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 213
Blocs de programme pour PROFINET CBA
4.4 Appel de PN_InOut / PN_InOut_Fast déclenché par temporisation - recommandation pour l'emploi

Indications d'état au démarrage du CP


Au démarrage/redémarrage du CP PROFINET (par ex. après actionnement du
commutateur), les paramètres de sortie du bloc sont réinitialisés comme suit :
● DONE = 0
● ERROR = 0
● STATUS = 8181H

4.4 Appel de PN_InOut / PN_InOut_Fast déclenché par temporisation -


recommandation pour l'emploi

Appel déclenché par temporisation - recommandation pour l'emploi


Quand votre application demande que la transmission des données CBA soit déclenchée
par temporisation plutôt que cycliquement ou sur événement, nous vous recommandons de
procéder comme suit pour appeler les blocs FB88 / FB90.
En cas d'appel déclenché par temporisation, vous devez faire attention au fait que le bloc,
après qu'il a été démarré, doit être appelé de nouveau jusqu'à la mise à 1 du drapeau DONE
(confirmation de l'achèvement). Pour que les données CBA puissent être copiées sans
grande interruption de la CPU au CP, il convient que ces appels suivants aient lieu le plus
vite possible, indépendamment du déclenchement par temporisation.
Suivez donc les recommandations suivantes pour la programmation :
● Le déclenchement par temporisation est réalisé au moyen d'un OB de temps ; ce dernier
ne détermine que le premier appel du bloc PROFINET CBA FB88 ou FB90, en ne
l'appelant pas directement, mais en positionnant un drapeau de démarrage, par exemple.
Le cycle d'appel de l'OB de temporisation ne doit pas dépasser 30 s.
● L'appel des blocs PROFINET CBA FB88 ou FB90 se fait toujours dans l'OB1 ; l'OB1
lance l'appel dès que le drapeau de démarrage a été positionné par l'OB de
temporisation.
● Après le premier appel du bloc, il faut répéter l'appel dans l'OB1 jusqu'à ce que le bit
DONE soit mis à 1 (ou jusqu'à l'apparition d'une erreur) ; le drapeau de démarrage doit
être remis à 0 après cette opération.
Résultat :
en séparant ainsi l'OB de temps des appels proprement dit dans l'OB1, vous garantissez
que les données utilisateur CBA seront copiées de la CPU au CP sans interruption sensible ;
ce faisant, vous pouvez choisir à votre gré l'intervalle de temps entre les premiers appels.

Blocs de programme pour CP S7 SIMATIC NET


214 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS 5
5.1 Blocs de programme pour services de communication ouverts
(Interface SEND/RECEIVE)

5.1.1 Utilisation en bref

Généralités
Les blocs de programme suivants sont à la disposition de l'interface SEND/RECEIVE pour la
transmission de données via des liaisons FDL configurées :

Bloc de programme utilisable pour 1) Signification


S7-300 S7-400
AG_SEND (FC5) x x pour l'émission de données
AG_RECV (FC6) x x pour la réception de données
AG_LSEND (FC50) x pour l'émission de données
AG_LRECV (FC60) x pour la réception de données

1) Remarques concernant les FC pour S7-300 et S7-400


Pour assurer la compatibilité de PROFIBUS et Ind. Ethernet au niveau de l'interface du
programme utilisateur, vous pouvez utiliser les FC AG_LSEND et AG_LRECV sous PROFIBUS à
la place de AG_SEND et AG_RECV. Il n'y a pas de différence ni au niveau de l'interface, ni dans
le comportement. Cependant ces FC, qui sont destinés sous Ind.Ethernet à transmettre des
enregistrements longs, ne permettent pas sous PROFIBUS de transmettre une quantité de
données supérieure à 240 octets.
Cela présuppose que le type et la version de bloc soient autorisés pour le type de CP utilisé.
Les CP S7 pour S7-300 utilisent exclusivement les FC AG_SEND et AG_RECV ; sous Industrial
Ethernet aussi pour la transmission d'enregistrements de données longs.
Les manuels renseignent sur la compatibilité entre les CP S7 et les blocs correspondants (FC /
FB). Vous trouverez un récapitulatif des versions de FC/FB dans l'historique de la documentation
et des blocs.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 215
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Emploi
Le schéma ci-dessous montre l'emploi des blocs FC AG_SEND / AG_LSEND et AG_RECV /
AG_LRECV pour le transfert bidirectionnel de données via une liaison FDL configurée.
Pour certains types de liaison, il faut prévoir un en-tête de tâche dans la zone de données
utilisateur.

CPU PROFIBUS-CP PROFIBUS-CP CPU

Programme Programme
utilisateur utilisateur
STEP 7 Liaison FDL STEP 7
via
Zones de PROFIBUS Zones de
données DP données DP
AG_SEND émettre recevoir AG_RECV

AG_RECV recevoir émettre AG_SEND

Figure 5-1 Utiliser AG_SEND et AG_RECV sur les deux partenaires de communication

Utilisation sans en-tête de tâche


Dans le cas d'une liaison FDL spécifiée, les paramètres d'adresse et de tâche sont définis
par la configuration de la liaison. Le programme utilisateur met donc uniquement les
données utiles à disposition dans la zone de données FDL pour l'émission avec AG_SEND /
AG_LSEND ou les reçoit avec AG_RECV / AG_LRECV.
Il est possible de transmettre jusqu'à 240 octets de données utiles. Cette indication
s'applique à PROFIBUS pour le FC AG_SEND et le FC AG_LSEND.

Utilisation avec en-tête de tâche


Les types de liaison suivants exigent un en-tête de tâche dans la zone de données
(utilisateur) FDL :
● liaison FDL non spécifiée avec accès libre de couche 2
● liaison FDL avec diffusion générale (broadcast)
● liaison FDL à multidestinataire (multicast)
Le schéma ci-dessous montre la structure du tampon de tâches ainsi que la signification et
le positionnement des paramètres dans l'en-tête de tâche.

Blocs de programme pour CP S7 SIMATIC NET


216 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Zone de données utilisateur


PB−Adresse LSAP Byte 0, 1
Tampon de tâches Service unbenutzt Byte 2, 3
Datenbyte 0 Datenbyte 1 Byte 4, 5
En-tête de tâche

Données
utiles

Octet de données 234 Octet de données 235 Byte 238, 239

Figure 5-2 Emission et réception via une liaison FDL avec adressage broadcast programmé

La zone de données utilisateur peut englober jusqu'à 240 octets. Il est possible de
transmettre jusqu'à 236 octets de données utiles. 4 octets sont réservés à l'en-tête de tâche.
Veuillez noter que la longueur de données spécifiée dans l'appel du bloc (paramètre LEN)
doit englober l'en-tête et les données utiles !

5.1.2 AG_SEND / AG_LSEND

5.1.2.1 Signification et appel - AG_SEND / AG_LSEND

Signification du bloc
Le bloc de programme AG_SEND / AG_LSEND remet des données au CP PROFIBUS pour
une transmission via une liaison FDL configurée.
La zone de données indiquée peut être une zone de mémoire image, une zone de
mémentos ou une zone de bloc de données.
L'exécution sans erreur est signalée quand la zone de données utilisateur a pu être envoyée
dans son entier via PROFIBUS.
Remarque :
sauf indication contraire, toutes les indications ci-après s'appliquent autant à AG_SEND qu'à
AG_LSEND.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 217
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Appel
Interface d'appel en représentation LOG

$*B6(1'$*B/6(1'

%22/ $&7 '21( %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 6(1'

,17 /(1

Exemple en représentation LIST

LIST Explication
call fc 5 ( //Appel de fonction
ACT := M 20.0, //Lancement de la tâche par bit de mémento
ID := MW 22, //ID de liaison selon configuration
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
SEND := P#db99.dbx10.0 byte 240, //Tampon avec données d'émission
LEN := MW 24, //Longueur des données émises
DONE := M 20.1, //Indication d'exécution
ERROR := M 20.2, //Indication d'erreur
STATUS := MW 26 ); //Indication d'état

Appels avec en-tête de tâche


Le tableau ci-dessous indique pour quels types de liaison et de tâche il faut valoriser des
paramètres dans l'en-tête de tâche.
L'en-tête de tâche se trouve dans la zone de données (utilisateur) FDL. Il y occupe les 4
premiers octets et doit être pris en compte dans la longueur indiquée par le paramètre LEN.
La longueur maximale des données utiles n'est donc plus que de 236 octets pour les tâches
à en-tête.

Tableau 5- 1 Valorisation de l'en-tête de tâche dans la zone de données utilisateur

Paramètre Type de liaison FDL


non spécifiée : couche 2 libre 2) Broadcast Multicast
Adresse PB Adresse de la station cible sans signification pour sans signification pour
Valeurs admises : AG_SEND ; mais zone AG_SEND ; mais zone
0..126 selon le participant / doit être réservée. doit être réservée.
127 pour Broadcast/Multicast

Blocs de programme pour CP S7 SIMATIC NET


218 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Type de liaison FDL


LSAP LSAP de la station cible sans signification, mais sans signification, mais
Valeurs admises : zone doit être réservée. zone doit être réservée.
0..62 selon le participant /
63 pour Broadcast/Multicast
Service 1) SDA ( Send Data with sans signification, mais sans signification, mais
Acknowledge) : zone doit être réservée. zone doit être réservée.
valeur : 00H
SDN ( Send Data with No
Acknowledge) :
valeur : 01H
1) Pour broadcast et multicast, seul le service SDN est possible.
2)Les indications de cette colonne relatives à broadcast et multicast ne sont significatives
qu'en cas d'utilisation d'une liaison FDL non spécifiée pour broadcast ou multicast. Dans le
cas d'une liaison FDL configurée (utilisation recommandée) avec broadcast ou multicast
comme partenaire de réseau, les paramètres d'adresse sont affectés automatiquement
conformément à la configuration.

5.1.2.2 Mode de travail - AG_SEND / AG_LSEND

Mode de travail
Le schéma suivant montre le déroulement normal dans le temps d'une transmission de
données déclenchée dans le programme utilisateur par le bloc AG_SEND.
La tâche d'émission est exécutée dès que le paramètre ACT = 1 est transféré.
Ensuite, vous devez transférer le paramètre ACT = 0 dans un appel supplémentaire au
moins.
L'indication d'état dans les paramètres de sortie DONE, ERROR et STATUS est actualisée à
chaque appel de bloc et peut être exploitée. Pour actualiser l'indication d'état sans nouvelle
tâche d'émission, il suffit de lancer un nouvel appel de bloc avec le paramètre ACT = 0.
Voyez aussi l'exemple de programme à la fin de ce chapitre .

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 219
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

3URJUDPPHXWLOLVDWHXU &3352),%86 3DUWHQDLUHGHFRPPXQLFD


F\FOHGH&38 WLRQ

$VVLJQHUGHVGRQQ«HV
;ಬ
¢$*B6(1'
$&7 

$*B6(1'


$VVLJQHUGHVGRQQ«HV¢$*B6(1'
$&7 
7UDQVIHUW
GH
;

YLD352),%86
$*B6(1' HQFRXUV


$*B6(1'


7HPSV 7HPSV 7HPSV

/«JHQGH

7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

5.1.2.3 Explication des paramètres formels - AG_SEND / AG_LSEND

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction
AG_SEND / AG_LSEND :

Paramètre Déclaration Type de Valeurs admises Description


données
ACT INPUT BOOL 0,1 Quand le FC est appelé avec ACT = 1, les octets LEN
provenant de la zone de données indiquée par le
paramètre SEND sont envoyés.
Quand le FC est appelé avec ACT = 0, les indications
d'état DONE, ERROR et STATUS sont mises à jour.
ID INPUT INT 1,2...64 Le paramètre ID spécifie le numéro de la liaison FDL.
(S7-400)
1,2...16
(S7-300)

Blocs de programme pour CP S7 SIMATIC NET


220 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

Paramètre Déclaration Type de Valeurs admises Description


données
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début du
module s'affiche dans le tableau de configuration.
Indiquez cette adresse ici.
SEND INPUT ANY Indication de l'adresse et de la longueur
(seul L'adresse de la zone de données renvoie :
autorisé
 soit à une zone de mémoire image
comme
VARTYPE :  soit à une zone de mémentos
BYTE,  soit à une zone de bloc de données
WORD et Pour un appel avec en-tête de tâche, la zone de
DWORD) données FDL contient l'en-tête de tâche et les données
utiles.
LEN INPUT INT 1,2,...240 (ou Nombre d'octets qui doivent être envoyés par la tâche
jusqu'à la "Longueur depuis la zone de données FDL. Ce nombre peut être
indiquée dans le situé entre 1 et "Longueur indiquée dans le paramètre
paramètre SEND") SEND".
Pour un appel avec en-tête de tâche, l'indication de
longueur comprend l'en-tête de tâche (4 octets) +
données utiles (1 à 236 octets). Il faut donc que LEN >=
4!
DONE OUTPUT BOOL 0: - Ce paramètre d'état indique si la tâche a été exécutée
1 : nouvelles sans erreur.
données Pour sa signification en corrélation avec les paramètres
ERROR et STATUS, voir sous Indications AG_SEND et
AG_LSEND (Page 222)
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les paramètres
DONE et STATUS, voir sous Indications AG_SEND et
AG_LSEND (Page 222)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les paramètres
DONE et ERROR, voir sous Indications AG_SEND et
AG_LSEND (Page 222)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 221
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

5.1.2.4 Indications AG_SEND et AG_LSEND

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 5- 2 Indications de AG_SEND

DONE ERROR STATUS Signification


1 0 0000H Tâche terminée sans erreur.
0 0 0000H Pas de tâche en cours.
0 0 8181H Tâche en cours.
0 1 7000H Cette indication n'est possible que pour S7-400 : le FC a été appelé avec ACT=0, mais
la tâche n'est pas traitée.
0 1 8183H Manque de configuration ou bien le service FDL n'est pas encore lancé sur le CP
PROFIBUS
0 1 8184H Causes possibles :
 Un type de données illicite a été spécifié pour le paramètre SEND.
 Liaison FDL sans tampon de tâches : erreur système.
 Liaison FDL avec tampon de tâches : paramètre LEN<4 ou paramètre illicite dans
l'en-tête de tâche (en cas d'accès libre couche 2).
0 1 8185H Paramètre LEN plus grand que la zone source SEND.
0 1 8186H Paramètre ID non valable. ID != 1, 2...16.
0 1 8301H Le SAP n'est pas activé sur la station cible.
0 1 8302H Ressources de réception insuffisantes sur la station cible, la station cible ne peut pas
traiter les données reçues suffisamment vite ou n'a pas mis de ressources de réception
à disposition.
0 1 8303H Le service PROFIBUS SDA (Send Data with Acknowledge) n'est pas supporté par la
station cible sur ce SAP.
Cette indication peut aussi apparaître temporairement quand des liaisons ou des
passerelles sont chargées "en RUN".
0 1 8304H La liaison FDL n'est pas établie.
0 1 8311H La station cible n'est pas accessible à l'adresse PROFIBUS indiquée ou le service
utilisé n'est pas possible pour l'adresse PROFIBUS indiquée.
0 1 8312H Erreur PROFIBUS sur le CP : par ex. court-circuit sur bus, propre station pas sur
l'anneau.

Blocs de programme pour CP S7 SIMATIC NET


222 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

DONE ERROR STATUS Signification


0 1 8315H Causes possibles :
 Erreur interne de paramètre sur une liaison FDL avec en-tête de tâche : paramètre
LEN<4 ou paramètre illicite dans l'en-tête de tâche (en cas d'accès libre couche 2).
 Défaut de bus
Signification additionnelle possible :
 L'indication d'erreur peut également survenir en cas de dérangement du bus (par
exemple en cas de pannes physiques résultant d'une mauvaise terminaison de
câble ou de réglages non concordant de la vitesse de transmission d'abonnés).
0 1 8F22H Zone source non valable, par ex. :
zone inexistante dans le DB
paramètre LEN < 0
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH Zone non chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F44H L'adresse du paramètre à lire est verrouillée dans la piste d'accès.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
par ex. paramètre LEN = 0 .
0 1 8090H  Il n'existe pas de module possédant cette adresse de début.
 Le FC utilisé n'est pas compatible avec la famille du système (il faut utiliser des FC
différents pour S7-300 et S7-400).
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H Dans la référence ANY, l'indication du type est différente de BYTE
(seulement pour S7-400).
0 1 80A4H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les
versions de CPU récentes).
Ceci peut être dû, par exemple :
 à un manque de configuration des liaisons
 au dépassement du nombre maximal de CP exploitables en parallèle (voir
indications à ce propos dans le manuel du CP )
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H La zone cible est incorrecte.
Le nombre de données à envoyer dépasse la limite supérieure autorisée pour ce
service (par ex. zone cible > 240 octets).
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les
anciennes versions de CPU ; sinon 80A4H, voir à cet endroit pour plus d'informations).
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement logique indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 223
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

DONE ERROR STATUS Signification


0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le programme
utilisateur est donc judicieuse).
0 1 80D2H L'adresse de début du module est erronée.

5.1.3 AG_RECV / AG_LRECV

5.1.3.1 Signification et appel - AG_RECV / AG_LRECV

Signification du bloc
Le bloc de programme AG_RECV reçoit du CP PROFIBUS les données transmises via une
liaison FDL configurée.
La zone de données spécifiée pour la prise en charge des données peut être une zone de
mémoire image, une zone de mémentos ou une zone de bloc de données.
L'exécution sans erreur est signalée quand les données ont pu être reçues du CP
PROFIBUS.
Remarque :
sauf indication contraire, toutes les indications ci-après s'appliquent autant à AG_RECV qu'à
AG_LRECV.

Interface d'appel
Interface d'appel en représentation LOG

$*B5(&9$*B/5(&9

1'5 %22/

,17 ,' (5525 %22/

:25' /$''5 67$786 :25'

$1< 5(&9 /(1 ,17

Exemple en représentation LIST

LIST Explication
call fc 6 ( //Appel de fonction
ID := MW 30, //ID de liaison selon configuration
LADDR := W#16#0100, //=LADDR 256 déc. dans configuration matérielle
RECV := P#M 10.0 BYTE 100, //Tampon pour données reçues
NDR := DB 100.DBX 0.6, //Indication de réception
ERROR := DB 100.DBX 0.7, //Indication d'exécution

Blocs de programme pour CP S7 SIMATIC NET


224 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

LIST Explication
STATUS := DB 100.DBW 2, //Indication d'erreur
LEN := DB 100.DBW 4 ); //Indication d'état

Appels avec en-tête de tâche

Tableau 5- 3 Paramètres en retour dans l'en-tête de tâche dans la zone de données (utilisateur) FDL

Paramètre Type de liaison FDL


non spécifiée : couche 2 libre Broadcast Multicast
Adresse PB Adresse de l'émetteur
Valeurs admises : 0..126 selon le participant
LSAP LSAP de l'émetteur
Valeurs admises : 0..63 selon le participant
Service Indication SDN Indication SDN Indication SDN
(Send Data with No Acknowledge (Send Data with No (Send Data with No
- Indication) : Acknowledge - Acknowledge -
valeur : 01H Indication) : Indication) :
ou valeur : 7FH valeur : 7FH
indication SDA (Send Data with
Acknowledge - Indication) :
valeur : 00H

5.1.3.2 Mode de travail - AG_RECV / AG_LRECV

Mode de travail
Les schémas suivants montrent le déroulement normal dans le temps d'une réception de
données déclenchée dans le programme utilisateur par le bloc AG_RECV.
Chaque tâche AG_RECV du programme utilisateur est acquittée par le CP Ethernet à l'aide
d'une indication dans les paramètres de sortie NDR, ERROR et STATUS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 225
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

3URJUDPPHXWLOLVDWHXU &3352),%86 3DUWHQDLUHGHFRPPXQLFD


F\FOHGHOD&38 WLRQ

/DWUDQVPLVVLRQ
GH
$

YLD352),%86
$*B5(&9
HVWHQFRXUV
  
$*B5(&9
 

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
$

/DWUDQVPLVVLRQ
GH
%

YLD352),%86
$*B5(&9 HVWHQFRXUV

 

$*B5(&9
 

5HFHYRLUH[SORLWHU
OHVGRQQ«HVUH©XHV
%

$*B5(&9 /DWUDQVPLVVLRQ
GH
&

YLD352),%86
HVWHQFRXUV

7HPSV 7HPSV 7HPSV

/«JHQGH
 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Blocs de programme pour CP S7 SIMATIC NET


226 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

5.1.3.3 Explication des paramètres formels - AG_RECV / AG_LRECV

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction
AG_RECV / AG_LRECV :

Paramètre Déclaration Type de Valeurs admises Description


données
ID INPUT INT 1,2...16 (S7-300) Le paramètre ID spécifie le numéro de la liaison FDL.
1,2...32 (S7-400)
LADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début du
module s'affiche dans le tableau de configuration.
Indiquez cette adresse ici.
RECV INPUT ANY Indication de l'adresse et de la longueur
(seul autorisé L'adresse de la zone de données FDL renvoie :
comme
 soit à une zone de mémoire image
VARTYPE :
 soit à une zone de mémentos
BYTE, WORD
et DWORD)  soit à une zone de bloc de données
Pour un appel avec en-tête de tâche, la zone de
données FDL contient l'en-tête de tâche et les
données utiles.
LEN OUTPUT INT 1,2,...240 Indique le nombre d'octets pris en charge dans la zone
de données FDL depuis le CP PROFIBUS.
Pour un appel avec en-tête de tâche, l'indication de
longueur comprend l'en-tête de tâche (4 octets) +
données utiles (1 à 236 octets). Il faut donc que LEN
>= 4 !
NDR OUTPUT BOOL 0: - Le paramètre indique si de nouvelles données ont été
1 : nouvelles prises en charge.
données Pour sa signification en corrélation avec les
paramètres ERROR et STATUS, voir sous Indications
de AG_RECV et AG_LRECV (Page 228).
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les
paramètres NDR et STATUS, voir sous Indications de
AG_RECV et AG_LRECV (Page 228).
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres NDR et ERROR, voir sous Indications de
AG_RECV et AG_LRECV (Page 228).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 227
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

5.1.3.4 Indications de AG_RECV et AG_LRECV

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de NDR, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 5- 4 Indications de AG_RECV / AG_LRECV

NDR ERROR STATUS Signification


1 0 0000H Nouvelles données prises en charge.
0 0 8180H  Il n'y a pas encore de données.
La configuration manque ou le service FDL n'est pas encore lancé dans le CP
PROFIBUS (remplace l'indication 0,1,8183H !).
0 0 8181H Tâche en cours.
0 1 8183H Manque de configuration ou bien le service FDL n'est pas encore lancé sur le CP
PROFIBUS
0 1 8184H  Type de données spécifié illicite pour le paramètre RECV.
 Erreur système.
0 1 8185H Tampon cible (RECV) trop petit.
0 1 8186H Paramètre ID non valable. ID != 1, 2...16.
0 1 8303H Le service PROFIBUS SDA (SendDatawithAcknowledge) n'est pas supporté sur ce
SAP.
Cette indication peut aussi apparaître temporairement quand des liaisons ou des
passerelles sont chargées "en RUN".
0 1 8304H La liaison FDL n'est pas établie.
0 1 8F23H Zone source non valable, par ex. :
zone inexistante dans le DB.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH La zone cible n'est pas chargée (DB).

Blocs de programme pour CP S7 SIMATIC NET


228 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.1 Blocs de programme pour services de communication ouverts (Interface SEND/RECEIVE)

NDR ERROR STATUS Signification


0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la
zone de périphérie.
0 1 8F45H L'adresse du paramètre à écrire est verrouillée dans la piste d'accès.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H  Il n'existe pas de module possédant cette adresse de début.
 Le FC utilisé n'est pas compatible avec la famille du système (il faut utiliser des FC
différents pour S7-300 et S7-400).
0 1 8091H L'adresse de début du module n'est pas au format de double mot.
0 1 8092H Dans la référence ANY, l'indication du type est différente de BYTE
(seulement pour S7-400).
0 1 80A0H Acquittement négatif à la lecture du module.
0 1 80A4H La liaison de bus de communication entre CPU et CP n'est pas établie (pour les
versions de CPU récentes).
Ceci peut être dû, par exemple :
 à un manque de configuration des liaisons
 au dépassement du nombre maximal de CP exploitables en parallèle (voir
indications à ce propos dans le manuel du CP )
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H Causes possibles :
 La zone cible n'est pas valide.
 La zone cible est trop petite.

La zone cible des données reçues n'est pas assez grande.

Solution : Effectuez un nouvel appel de réception avec la taille de tampon de


réception maximale. Ceci vaut indépendamment du type de liaison
(unicast/multicast/broadcast) et de la famille d'automates (S7-300 / S7-400).
0 1 80B2H La liaison de bus de communication entre CPU et CP n'est pas établie
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement, une répétition dans le programme
utilisateur est donc judicieuse).
0 1 80D2H L'adresse de début du module est erronée.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 229
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-


300

5.2.1 Utilisation en bref

Généralités
Avec S7-300, vous disposez des blocs de programme suivants pour les modes maître DP et
esclave DP :

Bloc de programme utilisable pour Signification


Maître DP Esclave
DP
DP_SEND (FC1) X X pour l'émission de données
DP_RECV (FC2) X X pour la réception de données
DP_DIAG (FC3) X - pour les fonctions de diagnostic à
partir du maître DP
DP_CTRL (FC4) X - pour les fonctions de commande

Blocs de programme pour CP S7 SIMATIC NET


230 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Emploi
Le schéma ci-dessous montre l'utilisation des blocs de programme DP_SEND et DP_RECV
sur le maître DP et l'esclave DP.

'3෥0DVWHU '3෥6ODYH

&38 352),%86&3 352),%86&3 &38

3URJUDPPH 3URJUDPPH
XWLOLVDWHXU XWLOLVDWHXU
67(3 67(3

=RQHVGH =RQHVGH
GRQQ«HV'3 GRQQ«HV'3
'3B6(1' «PHWWUH UHFHYRLU '3B5(&9
352),%86
'3B5(&9 UHFHYRLU «PHWWUH '3B6(1'

5.2.2 DP_SEND

5.2.2.1 Signification et appel - DP_SEND

Signification
Le bloc de programme DP_SEND transmet des données au CP PROFIBUS. Selon le mode
de fonctionnement du CP PROFIBUS, DP_SEND a la signification suivante.
● Quand il est utilisé dans le maître DP
Le bloc transfère au CP PROFIBUS les données d'une zone de sortie DP spécifiée pour
qu'elles soient remises à la périphérie décentralisée.
● Quand il est utilisé dans l'esclave DP
Le bloc transfère les données d'entrée de l'esclave DP au CP PROFIBUS pour qu'elles
soient transmises au maître DP.
La zone de données indiquée peut être une zone de mémoire image, une zone de
mémentos ou une zone de bloc de données.
L'exécution sans erreur est signalée quand la zone de données DP a pu être prise en
charge intégralement par le CP PROFIBUS.
Pour démarrer le maître DP, il suffit de faire précéder la séquence d'appel d'un seul appel de
DP-SEND ou de DP-RECV. On notera à propos de cet appel initial :
Si vous utilisez DP-SEND pour l'initialisation, la zone de données transmise n'est pas reprise
tandis qu'un "0" est transmis aux esclaves. Les données utiles ne sont transmises que lors
du deuxième appel de bloc.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 231
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Interface d'appel
DP_SEND

WORD CPLADDR DONE BOOL

ANY SEND ERROR BOOL

STATUS WORD

Exemple d'appel en représentation LIST

LIST Explication
call fc 1 ( //Appel du bloc DP_SEND
CPLADDR:= W#16#0120,
SEND := P#db17.dbx0.0 byte 103,
DONE := M 99.1,
ERROR := M 99.0,
STATUS := MW 104 ) ;

5.2.2.2 Mode de travail - DP_SEND

Mode de fonctionnement
Le schéma suivant montre le déroulement normal dans le temps d'une transmission de
données déclenchée dans le programme utilisateur par DP_SEND.
Dans l'organigramme on admet que l'initialisation du maître DP a déjà eu lieu suite à un
appel DP_SEND ou DP_RECV.
Chaque tâche DP_SEND du programme utilisateur est acquittée par le CP PROFIBUS au
moyen d'une indication dans les paramètres de sortie DONE, ERROR et STATUS.

Blocs de programme pour CP S7 SIMATIC NET


232 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

3URJUDPPHXWLOLVDWHXU &3352),%86 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGH&38෥PD°WUH'3 F\FOHG
LQWHUURJDWLRQ'3 HVFODYHV'3

3U«G«ILQLUGRQQ«HVXWLOHVSRXU
'3B6(1'
WRXWHVOHVVRUWLHVಬ$ಬ

'3B6(1'

1HSDVPRGLILHU  
OHVGRQQ«HVXWLOHV
ಬ$ಬ

'3B6(1'
7UDQVIHUW
 GHGRQQ«HVGHVXEVWLWX
WLRQ  ಬ
'3B6(1' YLD352),%86HQFRXUV


3U«G«ILQLUGRQQ«HVXWLOHVSRXU
'3B6(1'
WRXWHVOHVVRUWLHVಬ%ಬ

'3B6(1' 7UDQVIHUW
 GH
$

1HSDVPRGLILHU YLD352),%86HQFRXUV
OHVGRQQ«HVXWLOHV
ಬ%ಬ

'3B6(1'


'3B6(1'


3U«G«ILQLUGRQQ«HVXWLOHVSRXU
'3B6(1'
WRXWHVOHVVRUWLHVಬ%ಬ 7UDQVIHUW
'3B6(1' GH
%

YLD352),%86HQFRXUV
1HSDVPRGLILHU 
OHVGRQQ«HVXWLOHV
ಬ&ಬ
7HPSV 7HPSV 7HPSV

/«JHQGH

7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

VXUOHVDQFLHQVW\SHGH&3LOVHSHXWTXHO
LQGLFDWLRQ+DSSDUDLVVHDXG«PDUUDJH

Garantie de la transmission de données


Ce schéma montre aussi que la transmission des données au partenaire de communication
est garantie lorsqu'elle est confirmée par DONE=1, ERROR=0 et STATUS=0000.
Le partenaire de communication reçoit toujours les données d'émission les plus récentes
transférées au CP PROFIBUS. Par conséquent, de nouvelles données utiles ne peuvent
être écrites dans le tampon d'émission qu'après acquittement positif (DONE=1, ERROR=0,
STATUS=0000).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 233
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

5.2.2.3 Explication des paramètres formels - DP_SEND

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction DP_SEND :

Paramètre Déclaration Type de Plage de valeurs Description


données
CPLADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début du
module s'affiche dans le tableau de configuration.
Indiquez cette adresse ici.
SEND INPUT ANY Indication de l'adresse et de la longueur
(seul autorisé L'adresse de la zone de données DP renvoie :
comme
 soit à une zone de mémoire image
VARTYPE :
 soit à une zone de mémentos
pour FC1 à
partir de V3 :  soit à une zone de bloc de données
BYTE
pour FC1 Il faut régler la longueur pour
jusqu'à V2.x :  maître DP : 1...2160
BYTE, WORD
et DWORD)  esclave DP : 1...240
DONE OUTPUT BOOL 0: - Ce paramètre d'état indique si la tâche a été
1 : nouvelles exécutée sans erreur.
données Pour sa signification en corrélation avec les
paramètres ERROR et STATUS, voir Indications de
DP_SEND (Page 235).
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les
paramètres DONE et STATUS, voir sous Indications
de DP_SEND (Page 235)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres DONE et ERROR, voir sous Indications de
DP_SEND (Page 235)

Blocs de programme pour CP S7 SIMATIC NET


234 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

5.2.2.4 Indications de DP_SEND

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 5- 5 Indications de DP_SEND

DONE ERROR STATUS Signification


0 0 8180H  Démarrage :

Le client DP a été démarré mais la reprise des données n'est pas encore possible.
 Mode normal

Le transfert de données est en cours.


 DP n'a pas été démarré pour les causes suivantes :
– STOP du CP ou
– "pas de paramétrage" (remplace l'affichage 0,1,8183H)
1 0 0000H Les nouvelles données ont été transférées sans erreur.
0 1 8183H La configuration manque ou le service DP n'a pas encore été lancé dans le CP
PROFIBUS.
0 1 8184H Erreur système ou type de paramètre illicite
0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH La zone cible n'est pas chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 235
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

DONE ERROR STATUS Signification


0 1 8F44H L'adresse du paramètre à lire est verrouillée dans la piste d'accès.
0 1 8F45H L'adresse du paramètre à écrire est verrouillée dans la piste d'accès.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H Il n'existe pas de module possédant cette adresse.
0 1 8091H L'adresse de base logique n'est pas au format de double mot.
0 1 80A1H Acquittement négatif à l'écriture sur le module.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H Le nombre de données à émettre dépasse la limite supérieure autorisée pour ce
service (s'applique au mode maître DP et esclave DP).
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement; une répétition dans le programme
utilisateur est donc judicieuse).
0 1 80D2H Adresse de base logique erronée.

5.2.3 DP_RECV

5.2.3.1 Signification et appel - DP_RECV

Signification
Le bloc de commande DP_RECV reçoit des données via PROFIBUS. Selon le mode de
fonctionnement du CP PROFIBUS, DP_RECV a la signification suivante.
● Quand il est utilisé dans le maître DP
DP_RECV prend en charge, dans une zone d'entrée DP spécifiée, les données de
processus de la périphérie décentralisée ainsi qu'une information d'état.
● Quand il est utilisé dans l'esclave DP
DP_RECV prend en charge, dans la zone de données DP spécifiée dans le bloc, les
données de sortie transmises par le maître DP.
La zone de données spécifiée pour la prise en charge des données peut être une zone de
mémoire image, une zone de mémentos ou une zone de bloc de données.
L'exécution sans erreur est signalée quand la zone de données d'entrée DP a pu être
transférée intégralement par le CP PROFIBUS.
Sachez que le bloc FC DP_RECV doit être appelé avec succès au moins une fois sur
l'esclave DP dans le programme utilisateur si des données de sortie ont été configurées pour
cet esclave. Tenez compte aussi des indications données par le manuel de l'appareil.
Pour démarrer le maître DP, il suffit de faire précéder la séquence d'appel d'un seul appel de
DP-SEND ou de DP-RECV. On notera à propos de cet appel initial :

Blocs de programme pour CP S7 SIMATIC NET


236 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

● Si DP_RECV est utilisé pour l'initialisation, les données reçues ne sont pas reprises. Les
données utiles reçues ne sont transmises que lors du deuxième appel de bloc.

Fonction complémentaire : écrire l'octet d'état


Le bloc FC DP_RECV assure en plus la fonction suivante :
● Mise à jour de l'octet d'état DP DPSTATUS. Ce faisant, DP_RECV joue un rôle dans le
diagnostic DP.
En l'absence de données reçues configurées, il faut appeler DP_RECV avec la longueur
1 pour la mise à jour de l'octet d'état DPSTATUS (ceci ne s'applique qu'au maître DP).
Tenez compte aussi des indications données par le manuel de l'appareil.
● Validation de la liste des stations (voir DP_DIAG (Page 243)).

Interface d'appel
DP_RECV

WORD CPLADDR NDR BOOL

ANY RECV ERROR BOOL

STATUS WORD

DPSTATUS BYTE

Exemple en représentation LIST

LIST Explication
call fc 2 ( //Appel du bloc DP_RECV
CPLADDR:= W#16#0120,
RECV := P#db17.dbx240.0 byte 103,
NDR := M 99.1,
ERROR := M 99.0,
STATUS := MW 104,
DPSTATUS:= MB 0 );

5.2.3.2 Mode de travail - DP_RECV

Mode de travail
Le schéma ci-dessous montre le déroulement normal dans le temps d'une prise en charge
de données déclenchée dans le programme utilisateur par DP_RECV.
Chaque tâche DP_RECV du programme utilisateur est acquittée par le CP PROFIBUS au
moyen d'une indication dans les paramètres de sortie NDR, ERROR et STATUS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 237
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

3URJUDPPHXWLOLVDWHXU &3352),%86 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGH&38෥PD°WUH'3 F\FOHG
LQWHUURJDWLRQ'3 HVFODYHV'3
'3B5(&9 RGHU'3B6(1'
 
3KDVHGHG«PDUUDJH

HQSKDVHGHG«PDUUDJH
'3B5(&9
OHPD°WUH'3
 352),%86෥&3 PHW
WRXWHVOHVHQWU«HV¢
'3B5(&9


$FFHSWHUOHVGRQQ«HVUH©XHVಬಬRXಬಬ
HWಬ$ಬHWH[SORLWHU'367$786OLVWH 7UDQVIHUW
GHVVWDWLRQV GH
$

YLD352),%86
HQFRXUV
'3B5(&9



'3B5(&9


$FFHSWHUOHVGRQQ«HVUH©XHVಬ$ಬRXಬ$ಬ
HWಬ%ಬHWH[SORLWHU'367$786OLVWH 7UDQVIHUW
GHVVWDWLRQV GH
%

YLD352),%86
HQFRXUV
'3B6(1'



'3B5(&9


$FFH«WHUOHVGRQQ«HVಬ%ಬ
UH©XHVHWH[SORLWHU'367$786
/LVWHGHVVWDWLRQV

7HPSV 7HPSV 7HPSV

/«JHQGH

7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

VXUOHVDQFLHQVW\SHGH&3LOVHSHXWTXHO
LQGLFDWLRQ+DSSDUDLVVHDXG«PDUUDJH

Garantie de la prise en charge des données


Ce schéma montre aussi que la prise en charge des données est garantie lorsqu'elle est
confirmée par NDR=1, ERROR=0 et STATUS=0000. Condition : le maître DP et les
esclaves DP sont dans la phase de transfert des données.
Notez bien les points suivants :

Blocs de programme pour CP S7 SIMATIC NET


238 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

● En mode maître DP :
quand un esclave DP n'est pas dans sa phase de transfert des données, les données
reçues concernées sont mises à 0.
Quand le maître DP n'est ni à l'état RUN ni à l'état CLEAR (bit 4 et 5 dans DPSTATUS),
toutes les données reçues sont mises à 0.
Quand des données ont été reçues plusieurs fois de l'esclave DP depuis le dernier appel
du bloc DP_RECV, seules celles qui ont été reçues en dernier seront extraites avec le
prochain DP_RECV.
● En mode esclave DP :
quand l'esclave DP n'est pas dans sa phase de transfert des données (bit 1 dans
DPSTATUS) ou le maître DP dans l'état Clear (bit 2 dans DPSTATUS), les données
reçues sont mises à 0.
Quand des données ont été reçues plusieurs fois du maître DP depuis le dernier appel
du bloc DP_RECV, seules celles qui ont été reçues en dernier seront extraites avec le
prochain DP_RECV.

5.2.3.3 Explication des paramètres formels - DP_RECV

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction DP_RECV :

Paramètre Déclaration Type de Valeurs Description


données admises
CPLADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début du
module s'affiche dans le tableau de configuration.
Indiquez cette adresse ici.
RECV INPUT ANY Indication de l'adresse et de la longueur
(seul autorisé L'adresse de la zone de données DP renvoie :
comme
 soit à une zone de mémoire image
VARTYPE :
 soit à une zone de mémentos
pour FC1 à
partir de V3 :  soit à une zone de bloc de données
BYTE
pour FC1 Il faut régler la longueur pour
jusqu'à V2.x :  maître DP : 1...2160
BYTE, WORD
et DWORD)  esclave DP : 1...240
 maître DP, seulement lire l'octet d'état : 1
(voir aussi le manuel du CP)
NDR OUTPUT BOOL 0: - Ce paramètre d'état indique si de nouvelles données
1 : nouvelles ont été prises en charge.
données prises Pour sa signification en corrélation avec les paramètres
en charge ERROR et STATUS, voir sous Indications DP_RECV
(Page 240)

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 239
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Paramètre Déclaration Type de Valeurs Description


données admises
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les paramètres
NDR et STATUS, voir sous Indications DP_RECV
(Page 240)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les paramètres
NDR et ERROR, voir sous Indications DP_RECV
(Page 240)
DPSTATUS OUTPUT BYTE Codage, voir Indication de l'état DP
ci-après sous
DPSTATUS

5.2.3.4 Indications DP_RECV

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de NDR, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

NDR ERROR STATUS Signification


0 0 8180H  Démarrage :

Le client DP a été démarré mais la reprise des données n'est pas encore possible.
 Mode normal

Le transfert de données est en cours.


 DP n'a pas été démarré pour les causes suivantes :
– STOP du CP ou
– "pas de paramétrage" (remplace l'affichage 0,1,8183H).
1 0 0000H Les nouvelles données ont été prises en charge sans erreur.
0 1 8183H La configuration manque ou le service DP n'a pas encore été lancé dans le CP
PROFIBUS.
0 1 8184H Erreur système ou type de paramètre illicite
0 1 8F22H Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 1 8F23H Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).

Blocs de programme pour CP S7 SIMATIC NET


240 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

NDR ERROR STATUS Signification


0 1 8F24H Erreur de zone à la lecture d'un paramètre.
0 1 8F25H Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 1 8F31H Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 1 8F32H Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H Erreur de numéro de DB.
0 1 8F3AH La zone cible n'est pas chargée (DB).
0 1 8F42H Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F43H Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 1 8F44H L'adresse du paramètre à lire est verrouillée dans la piste d'accès.
0 1 8F45H L'adresse du paramètre à écrire est verrouillée dans la piste d'accès.
0 1 8F7FH Erreur interne, par ex. référence ANY illicite.
0 1 8090H Il n'existe pas de module possédant cette adresse.
0 1 8091H L'adresse de base logique n'est pas au format de double mot.
0 1 80A0H Acquittement négatif à la lecture depuis le module.
0 1 80B0H Le module ne connaît pas cet enregistrement.
0 1 80B1H Le nombre de données à émettre dépasse la limite supérieure autorisée pour ce
service (s'applique au mode maître DP et esclave DP).
0 1 80C0H Impossible de lire l'enregistrement.
0 1 80C1H L'enregistrement indiqué est en cours de traitement.
0 1 80C2H Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 80C4H Erreur de communication (survient temporairement, une répétition dans le programme
utilisateur est donc judicieuse).
0 1 80D2H Adresse de base logique erronée.

5.2.3.5 DPSTATUS - DP_RECV

DPSTATUS
Le codage du paramètre de sortie DPSTATUS n'est pas le même en mode maître DP et en
mode esclave DP :

Mode maître DP

7 6 5 4 3 2 1 0
0

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 241
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Tableau 5- 6 Signification des bits de DPSTATUS en mode maître DP

Bit Signification
7 non affecté
6 Ce bit n'est pas positionné.
Tenez compte aussi des indications données par le manuel de l'appareil.
5,4 Valeurs pour DPSTATUS du maître DP :
00 RUN
01 CLEAR
10 STOP (reproduit sur l'état de fonctionnement OFFLINE)
11 OFFLINE
Tenez compte aussi des indications données par le manuel de l'appareil.
3 Valeur 1 : synchronisation cyclique activée
2 Valeur 0 : il n'y a pas de nouvelles données de diagnostic
Valeur 1 : il est judicieux d'exploiter la liste de diagnostic ; une station au moins possède de nouvelles données de
diagnostic.
1 Valeur 0 : tous les esclaves DP sont en phase de transfert de données
Valeur 1 : il est judicieux d'exploiter la liste des stations.
0 Mode DP
Valeur 0 : mode maître DP
La signification indiquée pour les autres bits n'est valable que si ce bit est à 0.

Mode esclave DP

7 6 5 4 3 2 1 0
1

Tableau 5- 7 Signification des bits de DPSTATUS en mode esclave DP

Bit Signification
7-5 non affecté
4 Ce bit n'est pas positionné.
Tenez compte aussi des indications données par le manuel de l'appareil.
3 Ce bit n'est pas positionné.
Tenez compte aussi des indications données par le manuel de l'appareil.
2 Valeur 1 : le maître DP 1 est à l'état CLEAR. L'esclave DP reçoit la valeur 0 pour toutes les données DP destinées
aux sorties. Ceci n'a pas d'influence sur les données émises.
1 Valeur 1 : la configuration / le paramétrage n'est pas encore achevé(e) correctement.
0 Valeur 1 : mode esclave DP
La signification indiquée pour les autres bits n'est valable que si ce bit est à 1.

Blocs de programme pour CP S7 SIMATIC NET


242 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Remarque
Notez bien que l'exploitation de DPSTATUS est autorisée seulement après que le paramètre
en retour NDR a pris la valeur 1.

5.2.4 DP_DIAG

5.2.4.1 Signification et appel - DP_DIAG

Signification du bloc
Le bloc de programme DP_DIAG sert à demander des informations de diagnostic. On
distingue les types de tâche suivants :
● requête de la liste des stations DP
● requête de la liste de diagnostic DP
● requête d'un état DP individuel
● lecture acyclique des données d'entrée/sortie d'un esclave DP
● lecture d'un ancien diagnostic DP individuel
● lecture de l'état de fonctionnement DP
● lecture de l'état de fonctionnement DP en cas d'arrêt AP/CP
● lecture de l'état actuel de l'esclave DP
Vous pouvez demander les données de diagnostic spécifiques à un esclave en indiquant
une adresse de station.
Il faut prévoir une zone de mémoire dans la CPU et l'indiquer dans l'appel pour que les
données de diagnostic soient transférées à la CPU. Cette zone de mémoire peut être une
zone de bloc de données ou une zone de mémentos. La longueur maximale de la zone de
mémoire disponible doit être indiquée dans la tâche.

Remarque
Le bloc FC DP_DIAG n'est utile qu'en mode DP avec maître DP.

Exclusion
Tant que le bloc est en cours d'exécution, il ne doit pas recevoir de nouvelles données de
tâche.
Exception : requête de liste de stations DP ou de liste de diagnostic DP.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 243
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Interface d'appel
DP_DIAG

WORD CPLADDR NDR BOOL

BYTE DTYPE ERROR BOOL

BYTE STATION STATUS WORD

ANY DIAG DIAGLNG BYTE

Exemple en représentation LIST

LIST Explication
call fc 3 ( //Appel du bloc DP_DIAG
CPLADDR:= W#16#0120,
DTYPE := B#16#00,
STATION:= B#16#03,
DIAG := P#db18.dbx0.0 byte 16,
NDR := M 70.0,
ERROR := M 70.1,
STATUS := MW 72,
DIAGLNG:= MB 20 );

5.2.4.2 Mode de travail - DP_DIAG

Déroulement / manipulation au niveau de l'interface d'appel


L'appel de la fonction DP_DIAG est traité comme suit dans le cadre de l'exécution cyclique
du programme utilisateur :
Le premier appel déclenche la tâche. Les données de diagnostic ne sont retournées que
dans l'acquittement de l'une des tâches suivantes.

Blocs de programme pour CP S7 SIMATIC NET


244 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

3URJUDPPHXWLOLVDWHXU 352),%86&3
F\FOHGH&38PD°WUH'3 '33ROO]\NOXV

'3B',$*


'3B',$*


'3B',$*


([SORLWHUOHVYDOHXUV
DQFLHQQHVHQUHWRXU

7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

Remarque
Notez bien la particularité suivante pour les types de tâche Lire liste des stations DP et Lire
liste de diagnostic DP :
 La tâche de diagnostic fournit les données de diagnostic disponibles au moment du
dernier appel de DP_RECV. La lecture d'une liste verrouille une nouvelle lecture (valeur
en retour 0x8182).
 Le déverrouillage des listes se fait par un nouvel événement de diagnostic suivi d'un
appel de DP_RECV.

En réponse à l'appel de DP_DIAG, vous obtiendrez donc l'un des ensembles d'indications
suivants :

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 245
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

● NDR=0, ERROR=0, STATUS=8181


Tant que cette indication reste présente, vous n'avez pas le droit de modifier les
paramètres de tâche.
● NDR=1
Cette valeur du paramètre NDR indique la présence de données de diagnostic valables.
Il peut y avoir des informations complémentaires dans le paramètre STATUS .
● NDR=0, ERROR=1
Une erreur est survenue. Les données de diagnostic ne sont pas valables. Le message
d'erreur figure dans STATUS.

5.2.4.3 Explication des paramètres formels - DP_DIAG

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction DP_DIAG :

Paramètre Déclaration Type de Valeurs admises Description


données
CPLADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début
du module s'affiche dans le tableau de configuration.
Indiquez cette adresse ici.
DTYPE INPUT BYTE 0: liste des stations Type de diagnostic
1 : liste de diagnostic
2 : diagnostic actuel
3 : diagnostic ancien
4 : lire l'état de
fonctionnement
5 : lire l'état de
fonctionnement
en cas d'ARRET CPU
6 : lire l'état de
fonctionnement
en cas d'ARRET CP
7 : lire données
d'entrée
(acycliquement)
8 : lire données de
sortie
(acycliquement)
10 : lire l'état actuel
de l'esclave DP
STATION INPUT BYTE Adresse de station de l'esclave DP

Blocs de programme pour CP S7 SIMATIC NET


246 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Paramètre Déclaration Type de Valeurs admises Description


données
DIAG INPUT ANY Il faut régler la Indication de l'adresse et de la longueur
(seul longueur de 1 à 240 Adresse de la zone de données, renvoie :
autorisé
 soit à une zone de mémoire image
comme
VARTYPE :  soit à une zone de mémentos
BYTE,  soit à une zone de bloc de données
WORD et
DWORD)
NDR OUTPUT BOOL 0: - Ce paramètre d'état indique si de nouvelles données
1 : nouvelles données ont été prises en charge.
Pour sa signification en corrélation avec les
paramètres ERROR et STATUS, voir sous
Indications de DP_DIAG (Page 250)
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les
paramètres NDR et STATUS, voir sous Indications
de DP_DIAG (Page 250)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les
paramètres NDR et ERROR, voir sous Indications de
DP_DIAG (Page 250)
DIAGLNG OUTPUT BYTE Indique la longueur effective (en octets) des données
mises à disposition par le CP PROFIBUS,
indépendamment de la taille de tampon indiquée
dans le paramètre DIAG.
A noter pour les types de tâche avec DTYPE 4, 5 et
6:
DIAGLNG est toujours à "1". La valeur retournée
dans le paramètre DIAG n'est dans ce cas pas
significative pour l'exploitation. La valeur significative
est dans ces cas contenue dans le paramètre
STATUS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 247
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

5.2.4.4 Types de tâche - DP_DIAG

Types de tâche
Conformez-vous au tableau suivant pour combiner DTYPE, STATION et DIAGLNG en
indications autorisées et judicieuses pour les tâches.

Tableau 5- 8 Types de tâche pour DP_DIAG

DTYPE Correspond Paramètre DIAGLNG Code d'acquittement


à la tâche STATION (contenu dans le paramètre STATUS, indiqué dans le
tableau "Indications de DP_DIAG")
0 Lire la liste des --- - pas pris en Adresse de début du module
stations DP compte - Lors de la configuration du CP, l'adresse de début du
module s'affiche dans le tableau de configuration. Indiquez
cette adresse ici.
1 Lire la liste de --- - pas pris en La liste de diagnostic DP indique, dans le programme de la
diagnostic DP compte - CPU, quels esclaves DP disposent de nouvelles données
de diagnostic.
2 Lire un 1...126 >=6 Un diagnostic DP individuel actuel fournit, dans le
diagnostic DP programme de la CPU, les données de diagnostic actuelles
individuel actuel d'un esclave DP.
3 Lire un ancien 1...126 >=6 Un diagnostic DP individuel ancien fournit, dans le
diagnostic DP programme de la CPU, les données de diagnostic
individuel anciennes d'un esclave DP. Ces données sont mémorisées
dans le CP PROFIBUS et sont lues dans le tampon en
anneau selon le principe "Dernier entré - premier sorti".
Voir plus bas l'explication du tampon en anneau.
Ceci permet de saisir ces esclaves DP en cas de
modifications rapides de leurs données de diagnostic et des
les exploiter dans le programme CPU du maître DP.
4 Lire l'état de =1 Cette tâche permet de lire l'état de fonctionnement DB,
fonctionnement activé auparavant par la tâche DP-CTRL (CTYPE=4).
demandé avec Remarque : L'état de fonctionnement lu ne doit pas
la tâche DP- forcément correspondre à l'état de fonctionnement du CP:
CTRL
Les états suivants sont possibles : :
(CTYPE=4).
 RUN
 CLEAR
 STOP (reproduit sur l'état de fonctionnement OFFLINE)
*)

 OFFLINE

Blocs de programme pour CP S7 SIMATIC NET


248 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

DTYPE Correspond Paramètre DIAGLNG Code d'acquittement


à la tâche STATION (contenu dans le paramètre STATUS, indiqué dans le
tableau "Indications de DP_DIAG")
5 Lire l'état de =1 Cette tâche sert à déterminer dans quel état de
fonctionnement fonctionnement DP le CP PROFIBUS passe en cas d'arrêt
DP en cas de la CPU :
d'ARRET CPU
 RUN
 CLEAR
 STOP (reproduit sur l'état de fonctionnement OFFLINE)
*)

 OFFLINE

Par défaut, le CP PROFIBUS passe à l'état DP CLEAR en


cas d'arrêt de la CPU.
6 Lire l'état de =1 Cette tâche sert à déterminer dans quel état de
fonctionnement fonctionnement DP le CP PROFIBUS passe en cas d'arrêt
DP en cas du CP :
d'ARRET du CP
 STOP (reproduit sur l'état de fonctionnement OFFLINE)
*)

 OFFLINE

Par défaut, le CP PROFIBUS passe à l'état DP OFFLINE


en cas d'arrêt du CP.
7 Lire des 1...126 >=1 Cette tâche permet à un maître DP (classe 2) de lire les
données données d'entrée d'un esclave DP. Cette opération est
d'entrée appelée aussi "Shared Input".
8 Lire des 1...126 >=1 Cette tâche permet à un maître DP (classe 2) de lire les
données de données de sortie d'un esclave DP. Cette opération est
sortie appelée aussi "Shared Output".
10 Lire l'état actuel 1...126 >=0 Cette tâche permet de lire l'état de fonctionnement actuel
de l'esclave DP d'un esclave DP. Les états suivants sont possibles :
 Le maître DP échange des données cycliquement avec
l'esclave DP.
 Le maître DP lit cycliquement les données d'entrée de
l'esclave DP.
 Le maître DP lit cycliquement les données de sortie de
l'esclave DP.
 Momentanément, le maître DP ne traite pas
cycliquement cet esclave DP.

*) L'état STOP n'est plus pris en charge par les modules actuels (à partir du type de module DA02).

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 249
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

5.2.4.5 Tampon en anneau pour données de diagnostic - DP_DIAG

Tampon en anneau pour données de diagnostic


Le schéma ci-dessous montre le principe de lecture utilisé pour le type de tâche "Lire un
ancien diagnostic DP individuel". Le premier accès en lecture donne le diagnostic ancien le
plus récent.

Diagnostic actuel 9ème accès en lecture


1er diagnostic ancien 1er accès en lecture ; 10ème

8ème diagnostic ancien 8ème accès en lecture

Figure 5-3 Tampon en anneau pour données de diagnostic

À la lecture d'un diagnostic actuel, le pointeur de lecture est remis sur le 1er diagnostic
ancien.

5.2.4.6 Indications de DP_DIAG

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de NDR, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Blocs de programme pour CP S7 SIMATIC NET


250 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Tableau 5- 9 Indications de DP_DIAG

NDR ERROR STATUS Possible Signification


pour
DTYPE
0 0 8181H 2-10 Tâche en cours.
Le maître DP n'est pas démarré à cause de :
 STOP du CP ou
 pas de paramétrage
(remplace ici l'indication 0,1,8183H)
0 0 8182H 0 Déclenchement non judicieux.
Le maître DP n'est pas démarré à cause de :
 STOP du CP ou
 pas de paramétrage
(remplace ici l'indication 0,1,8183H)
0 0 8182H 1 Il n'y a pas de nouveau diagnostic.
Le maître DP n'est pas démarré à cause de :
 STOP du CP ou
 pas de paramétrage
(remplace ici l'indication 0,1,8183H)
1 0 0000H 0, 1 Tâche terminée sans erreur.
et 4-9 Nota :
Pour DTYPE 2,3 et 10, l'exécution sans erreur est signalée par un code d'état
différent de "0". Vous trouverez par conséquent ci-après les codes d'état
détaillés d'une exécution sans erreur pour la plage :
82XXH
En cas d'exécution avec erreur, vous obtiendrez les codes d'état de la plage :
80XXH, 83XXH, 8FXXH
1 0 8222H 7, 8 Tâche terminée sans erreur.
La longueur des données d'esclave DP lues diffère de celle attendue par le
maître DP en vertu de la liste des modules de l'esclave DP figurant dans la
base de données du CP.
1 0 8227H 7, 8 Tâche terminée sans erreur.
Avertissement : il n'y a pas de données.
1 0 8231H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "RUN".
1 0 8232H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "CLEAR".
1 0 8233H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "STOP".
L'état STOP est reproduit sur l'état OFFLINE (voir l'indication 8234H).
Tenez compte aussi des indications données par le manuel de l'appareil.
1 0 8234H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà
"OFFLINE".

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 251
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

NDR ERROR STATUS Possible Signification


pour
DTYPE
1 0 823AH 2, 3, 7, 8 Tâche terminée sans erreur.
Avertissement : 241 ou 242 octets de données ont été lus. 240 octets sont mis
à disposition.
1 0 8241H 2, 3, 10 Tâche terminée sans erreur.
Avertissement : l'esclave DP indiqué n'a pas été configuré.
1 0 8243H 2, 3, 10 Tâche terminée sans erreur.
Avertissement : la liste des modules de l'esclave DP figurant dans la base de
données du CP ne contient que des modules vides.
1 0 8245H 2, 3, 10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est à l'état "Lecture cyclique de données
d'entrée".
1 0 8246H 2, 3, 10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est à l'état
"Lecture cyclique de données de sortie".
1 0 8248H 2, 3, 10 Tâche terminée sans erreur.
Remarque : Ceci est, pour les types de diagnostic mentionnés, l'indication par
défaut, à moins qu'il y ait des particularités à signaler.
1 0 8249H 2, 3, 10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est désactivé en raison d'un changement d'état
de fonctionnement DP (par ex. commutateur du CP sur STOP).
1 0 824AH 2, 3, 10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est désactivé en raison d'une tâche DP_CTRL
dans le programme de la CPU.
0 1 8090H 0-10 L'adresse de base logique du module est incorrecte.
0 1 80B0H 0-10 Le module ne connaît pas cet enregistrement ou il se trouve en transition RUN
--> STOP.
0 1 80B1H 0-10 La longueur d'enregistrement indiquée est erronée.
0 1 80C0H 0-10 Impossible de lire l'enregistrement.
0 1 80C1H 0-10 L'enregistrement logique indiqué est en cours de traitement.
0 1 80C2H 0-10 Engorgement des tâches.
0 1 80C3H 0-8 Ressources (mémoire) occupées.
0 1 80C4H 0-10 Erreur de communication.
0 1 80D2H 0-10 L'adresse de base logique est fausse.
0 1 8183H 0-10 Le maître DP n'est pas configuré.
0 1 8184H 0-8 Erreur système ou type de paramètre illicite
0 1 8311H >=2 Paramètre DTYPE hors de la plage de valeurs admises.
0 1 8313H 2, 3, 7, 8, Paramètre STATION hors de la plage de valeurs admises.
10
0 1 8321H >=2 L'esclave DP ne fournit pas de données valables.
0 1 8326H 7, 8 L'esclave DP fournit plus de 242 octets de données. Le CP PROFIBUS
supporte au maximum 242 octets.
0 1 8335H 7, 8 Le CP PROFIBUS est à l'état PROFIBUS : "Station pas dans l'anneau".
0 1 8341H 2, 3, 7, 8, L'esclave indiqué n'a pas été configuré.
10

Blocs de programme pour CP S7 SIMATIC NET


252 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

NDR ERROR STATUS Possible Signification


pour
DTYPE
0 1 8342H 7, 8 L'esclave DP possédant l'adresse PROFIBUS spécifiée dans le paramètre
STATION n'est pas accessible.
0 1 8349H 7, 8 Le maître DP est à l'état OFFLINE.
0 1 8F22H 0-10 Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop court).
0 1 8F23H 0-10 Erreur de longueur de zone à l'écriture d'un paramètre (par ex. DB trop court).
0 1 8F24H 0-10 Erreur de zone à la lecture d'un paramètre.
0 1 8F25H 0-10 Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H 0-10 Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H 0-10 Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H 0-10 Le paramètre se trouve dans le 1er bloc de données actif, en lecture seule.
0 1 8F31H 0-10 Le paramètre se trouve dans le 2ème bloc de données actif, en lecture seule.
0 1 8F32H 0-10 Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H 0-10 Erreur de numéro de DB.
0 1 8F3AH 0-10 Zone non chargée (DB).
0 1 8F42H 0-10 Retard d'acquittement à la lecture d'un paramètre dans la zone de périphérie.
0 1 8F43H 0-10 Retard d'acquittement à l'écriture d'un paramètre dans la zone de périphérie.
0 1 8F44H 0-10 L'adresse du paramètre à lire est verrouillée dans la piste d'accès.
0 1 8F45H 0-10 L'adresse du paramètre à écrire est verrouillée dans la piste d'accès.
0 1 8F7FH 0-10 Erreur interne, par ex. référence ANY illicite.

5.2.5 DP_CTRL

5.2.5.1 Signification et appel - DP_CTRL

Signification du bloc
Le bloc de programme DP_CTRL remet des tâches de commande au CP PROFIBUS.
L'indication d'un bloc de tâche (paramètre CONTROL) permet de préciser la tâche de
commande.
On distingue les types de tâche suivants :
● Global Control acyclique / cyclique
● suppression d'un ancien diagnostic
● fixation de l'état de fonctionnement DP actuel
● fixation de l'état de fonctionnement DP en cas d'arrêt AP/CP
● lecture cyclique de données d'entrée/sortie
● fixation du mode de traitement de l'esclave DP

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 253
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Les types de tâche énumérés font l'objet de restrictions (à ce sujet, veuillez vous référer aux
informations données par le manuel de l'appareil).

Remarque
Le bloc FC DP_CTRL n'est utile qu'en mode DP avec maître DP.

Exclusion
Tant que le bloc est en cours d'exécution, il ne doit pas recevoir de nouvelles données de
tâche.

Interface d'appel
DP_CTRL

WORD CPLADDR DONE BOOL

ANY CONTROL ERROR BOOL

STATUS WORD

Exemple en représentation LIST

LIST Explication
call fc 4 ( //Appel du bloc DP_CTRL
CPLADDR:= W#16#0120,
CONTROL:= P#db14.dbx0.0 byte 30, // Le tampon pour la tâche Control
// occupe les 30 premiers octets du DB 14.
DONE := M 70.0,
ERROR := M 70.1,
STATUS := MW 72 );

5.2.5.2 Mode de travail - DP_CTRL

Déroulement / manipulation au niveau de l'interface d'appel


L'appel de la fonction DP_CTRL est traité comme suit dans le cadre de l'exécution cyclique
du programme utilisateur :
Le premier appel déclenche la tâche. Les données de diagnostic ne sont retournées que
dans l'acquittement de l'une des tâches suivantes.

Blocs de programme pour CP S7 SIMATIC NET


254 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

3URJUDPPHXWLOLVDWHXU &3352),%86 3DUWHQDLUHGHFRPPXQLFDWLRQ


F\FOHGHOD&38 F\FOHG
DSSHO'3 HVFODYH'3
'3B&75/


'3B&75/



'3B&75/


7¤FKHWHUPLQ«HVDQVHUUHXU

7HPSV 7HPSV 7HPSV

/«JHQGH
 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

En réponse à l'appel de DP_CTRL, vous obtiendrez donc l'un des ensembles d'indications
suivants :
● DONE=0, ERROR=0, STATUS=8181
Tant que cette indication reste présente, vous n'avez pas le droit de modifier les
paramètres de tâche.
● DONE=1
Cette valeur du paramètre DONE indique que la tâche a été exécutée. Il peut y avoir des
informations complémentaires dans le paramètre STATUS .
● DONE=0, ERROR=1
Une erreur est survenue. Le message d'erreur figure dans STATUS.

5.2.5.3 Explication des paramètres formels - DP_CTRL

Explication des paramètres formels


Le tableau ci-dessous explique tous les paramètres formels de la fonction DP_CTRL :

Paramètre Déclaration Type de Plage de valeurs Description


données
CPLADDR INPUT WORD Adresse de début du module
Lors de la configuration du CP, l'adresse de début
du module s'affiche dans le tableau de configuration.
Indiquez cette adresse ici.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 255
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Paramètre Déclaration Type de Plage de valeurs Description


données
CONTROL INPUT ANY Il faut régler la Indication de l'adresse et de la longueur du bloc de
(seul autorisé longueur de 1 à tâche CONTROL
comme 240 Adresse de la zone de données. renvoie :
VARTYPE :
 soit à une zone de mémoire image
BYTE, WORD
 soit à une zone de mémentos
et DWORD)
 soit à une zone de bloc de données
La longueur doit être choisie au moins égale au nombre
de paramètres.
DONE OUTPUT BOOL 0: - Indique si la tâche a été envoyée et terminée sans
1 : tâche erreur.
exécutée sans Pour sa signification en corrélation avec les paramètres
erreur ERROR et STATUS, voir sous Indications de DP_CTRL
(Page 261)
ERROR OUTPUT BOOL 0: - Indication d'erreur
1 : erreur Pour sa signification en corrélation avec les paramètres
DONE et STATUS, voir sous Indications de DP_CTRL
(Page 261)
STATUS OUTPUT WORD Indication d'état
Pour sa signification en corrélation avec les paramètres
DONE et ERROR, voir sous Indications de DP_CTRL
(Page 261)

Composition du bloc de tâche CONTROL


La tâche de commande présente la structure suivante :

Adresse
CONTROL CTYPE
1er octet de paramètres voir sous 'Paramètres'
(nombre et nom)
2ème octet de paramètres

nième octet de
paramètres

Blocs de programme pour CP S7 SIMATIC NET


256 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Exemple de bloc de tâche


Un bloc de tâche selon le modèle ci-dessous permet de lancer une tâche cyclique Global
Control SYNC et UNFREEZE pour les groupes 4 et 5 sans l'option Autoclear.

DB 14
Byte 0 01H CTYPE
Byte 1 24H Command Mode
Byte 2 18H Group Select
Byte 3 00H Autoclear

La longueur spécifiée dans le pointeur ANY doit être au moins égale à 4 (dans l'exemple
d'appel, elle est de 30).

5.2.5.4 Mode de travail - DP_CTRL

Types de tâche
Conformez-vous au tableau suivant pour combiner CTYPE et les paramètres du bloc de
tâche en indications autorisées et judicieuses pour les tâches.

CTYPE Correspond à la tâche Paramètres du bloc de tâche Description


Nom Nombre
0 Lancer Global Control 1. octet : 2 Une tâche Global Control unique est envoyée aux
Command Mode esclaves sélectionnés par Group Select. Le paramètre
2e octet : Command Mode sert à déterminer les tâches Global
Group Select Control suivantes :
(voir à la suite du  SYNC
présent tableau)
 UNSYNC
 FREEZE
 UNFREEZE
 CLEAR - pas supportée (veuillez consulter aussi
les informations données par le manuel de
l'appareil)
Il est possible d'indiquer plus d'une tâche dans le
paramètre Command Mode.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 257
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

CTYPE Correspond à la tâche Paramètres du bloc de tâche Description


Nom Nombre
1 *) Lancer un Global 1. octet : 3 Déclenchement du CP PROFIBUS pour que celui-ci
Control cyclique Command Mode envoie cycliquement des tâches Global Control aux
2e octet : esclaves DP sélectionnés par Group Select.
Group Select Le paramètre Autoclear n'est exploité qu'avec la tâche
3e octet : Global Control SYNC. Quand un esclave DP au moins
Autoclear du groupe sélectionné ne se trouve pas en phase de
(voir à la suite transfert de données, le mode CLEAR est activé en
du présent plus quand Autoclear = 1. C'est-à-dire que les
tableau) données de sortie de l'esclave DP sont mises à "0".
Dans le paramètre Command Mode, il est possible
d'activer les tâches Global Control suivantes :
 SYNC
 FREEZE
 CLEAR (bit CLEAR = 1) - pas supportée (veuillez
consulter aussi les informations données par le
manuel de l'appareil)

ou de désactiver :
 UNSYNC
 UNFREEZE
 UNCLEAR (bit CLEAR = 0)
Il est possible d'indiquer plus d'une tâche dans le
paramètre Command Mode.
Pour mettre fin à une tâche cyclique Global Control en
cours d'exécution, il faut exécuter une nouvelle tâche
Global Control (cyclique ou acyclique).
Pour mettre fin à la tâche paramétrée dans Command
Mode, il faut désactiver la tâche en question.
Par ex., la tâche SYNC est désactivée par une tâche
UNSYNC.
3 Supprimer un 1. octet : 1 Suppression des anciennes données de diagnostic
diagnostic DP Adresse escl. DP individuel, mémorisées dans le CP PROFIBUS,
individuel ancien 1..126 pour un esclave DP ou pour tous.
127 = tous les
esclaves

Blocs de programme pour CP S7 SIMATIC NET


258 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

CTYPE Correspond à la tâche Paramètres du bloc de tâche Description


Nom Nombre
4 Activer l'état DP actuel 1. octet : 1 Cette tâche permet d'activer l'état DP comme suit :
RUN = 00H  RUN
CLEAR = 01H
 CLEAR
OFFLINE = 03H
RUN avec  OFFLINE
AUTOCLEAR = Le paramètre AUTOCLEAR signifie que le maître DP
04H de classe 1 passe automatiquement à l'état CLEAR
RUN sans lorsque les conditions suivantes sont remplies : au
AUTOCLEAR = moins un des esclaves DP avec lesquels le maître DP
04H de classe 1 souhaite échanger des données, ne
transfère pas de donnée.
Le paramètre RUN sans AUTOCLEAR désactive
AUTOCLEAR.
Nota :
L'état STOP = 02H n'est plus pris en charge par les
modules actuels (à partir du type de module DA02).
L'indication STOP = 02H est reproduite par l'état
OFFLINE.
5 Fixer l'état de 1. octet : 1 Cette tâche sert à déterminer dans quel état de
fonctionnement DP en RUN = 00H fonctionnement DP le CP PROFIBUS passe en cas
cas d'arrêt de la CPU CLEAR = 01H d'arrêt de la CPU :
OFFLINE = 03H  RUN
 CLEAR
 OFFLINE
Par défaut, le CP PROFIBUS passe à l'état DP
CLEAR en cas d'arrêt de la CPU.
L'état de fonctionnement fixé reste le même quand le
CP fait le changement d'état RUN --> STOP --> RUN.
Nota :
L'état STOP = 02H n'est plus pris en charge par les
modules actuels (à partir du type de module DA02).
L'indication STOP = 02H est reproduite par l'état
OFFLINE.
6 Fixer l'état de 1. octet : 1 Cette tâche sert à déterminer dans quel état de
fonctionnement DP en OFFLINE=03H fonctionnement DP le CP PROFIBUS passe en cas
cas d'arrêt du CP d'arrêt du CP :
 OFFLINE
Par défaut, le CP PROFIBUS passe à l'état DP
OFFLINE en cas d'arrêt du CP.
L'état de fonctionnement fixé reste le même quand le
CP fait le changement d'état RUN --> STOP --> RUN.
Nota :
L'état STOP = 02H n'est plus pris en charge par les
modules actuels (à partir du type de module DA02).
L'indication STOP = 02H est reproduite par l'état
OFFLINE.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 259
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

CTYPE Correspond à la tâche Paramètres du bloc de tâche Description


Nom Nombre
7 *) Lire cycliquement les 1. octet : 1 Cette tâche n'est pas supportée.
données d'entrée adresse d'esclave Tenez compte aussi des indications données par le
(maître DP classe 2) 1..125 manuel de l'appareil.
8 *) Lire cycliquement les 1. octet : 1 Cette tâche n'est pas supportée.
données de sortie adresse d'esclave Tenez compte aussi des indications données par le
(maître DP classe 2) 1..125 manuel de l'appareil.
9 Mettre fin au 1. octet : 1 Cette tâche met fin à la lecture cyclique des données
traitement cyclique de adresse d'esclave d'entrée ou de sortie de l'esclave DP adressé ou au
l'esclave DP par le 1..125 transfert de données (maître DP classe 1).
maître DP (classe 1 Après cela, l'esclave DP n'est plus traité par le CP
/classe 2) PROFIBUS en tant que maître DP (classe 2).
Cette opération désactive l'esclave DP.
10 Commencer le 1. octet : 1 Le CP PROFIBUS paramètre en tant que maître DP
traitement cyclique en adresse d'esclave (classe 1) l'esclave DP adressé et commence le
tant que maître DP 1..125 transfert de données cyclique (écriture des sorties /
(classe 1) lecture des entrées).
Cette opération active l'esclave DP.
*) Ce CTYPE n'est plus pris en charge par les modules actuels (à partir du type de module DA02).

5.2.5.5 Command Mode et Group Select - DP_CTRL

Structure de Command Mode


Pour les tâches Global Control cycliques et acycliques, le paramètre Command Mode sert à
indiquer les modes pour les données d'entrée et de sortie.
Ce faisant, il faut savoir que :
1 = activé
0 = désactivé

Numéro de bit : 7 6 5 4 3 2 1 0

inutilisé
CLEAR
UNFREEZE
FREEZE
UNSYNC
SYNC
inutilisé

Blocs de programme pour CP S7 SIMATIC NET


260 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

Structure de Group select


Le paramètre Group select sert à déterminer le groupe auquel s'applique la tâche de
commande spécifiée dans Command Mode. Group Select occupe le 2e octet de la tâche de
commande. Chaque bit désigne un groupe d'esclaves DP potentiel.
Ce faisant, il faut savoir que :
1 = affecté
0 = non affecté

Numéro de bit : 7 6 5 4 3 2 1 0
Groupe : 8 7 6 5 4 3 2 1

5.2.5.6 Indications de DP_CTRL

Indications
Le tableau ci-après renseigne sur l'indication que le programme utilisateur doit exploiter,
composée de DONE, ERROR et STATUS.

Remarque
Pour les entrées mentionnant un codage 8FxxH sous STATUS, veuillez tenir compte des
informations sur le paramètre RET_VAL dans les descriptions des blocs de programme
système référencés.
Vous pourrez rechercher sous STEP 7 les blocs de programme système utilisés et
significatifs pour l'analyse de l'erreur.

Tableau 5- 10 Indications de DP_CTRL

DONE ERROR STATUS Possible pour Signification


CTYPE
0 0 8181H 0..10 Tâche en cours.
Le maître DP n'est pas démarré à cause de :
 STOP du CP ou
 "pas de paramétrage"
Remarque :
L'indication décrite remplace l'une des indications ci-après, décrites plus
bas :
0,1,8183H
0,1, 8333 H
0,1, 8334H
1 0 0000H 0..10 Tâche terminée sans erreur.
1 0 8214H 0, 1 Tâche terminée sans erreur.
Avertissement : tâche Global Control cyclique envoyée comme tâche
Global Control acyclique.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 261
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

DONE ERROR STATUS Possible pour Signification


CTYPE
1 0 8215H 0, 1 Tâche terminée sans erreur.
Les esclaves DP adressés dans le groupe sélectionné sont tous
désactivés.
1 0 8219H 0, 1 Tâche terminée sans erreur.
Il a été tenté de lancer à nouveau un Global Control cyclique déjà en
cours. L'exécution du Global Control se poursuit sans modification.
1 0 8228H 0, 1 Tâche terminée sans erreur.
Avertissement : les esclaves DP adressés dans le groupe sélectionné ne
possèdent pas de modules d'entrée.
1 0 8229H 0, 1 Tâche terminée sans erreur.
Avertissement : les esclaves DP adressés dans le groupe sélectionné ne
possèdent pas de modules de sortie.
1 0 8231H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "RUN".
1 0 8232H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "CLEAR".
1 0 8233H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "STOP".
1 0 8234H 4, 5, 6 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "OFFLINE".
1 0 8235H 4 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "RUN" avec
AUTOCLEAR activé.
1 0 8236H 4 Tâche terminée sans erreur.
Avertissement : l'état de fonctionnement DP est déjà "RUN" avec
AUTOCLEAR désactivé.
1 0 8241H 7-10 Tâche terminée sans erreur.
Avertissement : l'esclave DP indiqué n'a pas été configuré.
1 0 8243H 7-10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est déjà désactivé, car la liste des modules
de l'esclave DP figurant dans la base de données du CP ne contient que
des modules vides.
1 0 8245H 7-10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est déjà à l'état "Lecture cyclique de
données d'entrée".
1 0 8246H 7-10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est déjà à l'état "Lecture cyclique de
données de sortie".
1 0 8248H 7-10 Tâche terminée sans erreur.
Avertissement : la liste des modules de l'esclave DP figurant dans la base
de données du CP contient des modules d'entrée, de sortie ou
d'entrée/sortie.
1 0 8249H 7-10 Tâche terminée sans erreur.
Avertissement : l'esclave est désactivé à cause d'un changement d'état
de fonctionnement DP.
1 0 824AH 7-10 Tâche terminée sans erreur.
Avertissement : l'esclave DP est déjà désactivé en raison d'une tâche
DP_CTRL dans le programme de la CPU.
0 1 8090H 0..10 Il n'existe pas de module possédant cette adresse.

Blocs de programme pour CP S7 SIMATIC NET


262 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.2 Blocs de programme pour DP (périphérie décentralisée) avec S7-300

DONE ERROR STATUS Possible pour Signification


CTYPE
0 1 8091H 0..10 L'adresse logique n'est pas au format de double mot.
0 1 80B0H 0..10 Le module ne connaît pas cet enregistrement.
0 1 80B1H 0..10 La longueur d'enregistrement indiquée est erronée.
0 1 80C0H 0..10 Impossible de lire l'enregistrement.
0 1 80C1H 0..10 L'enregistrement indiqué est en cours de traitement.
0 1 80C2H 0..10 Engorgement des tâches.
0 1 80C3H Ressources (mémoire) occupées.
0 1 8183H 0..10 Le maître DP n'est pas configuré...
Remarque :
L'état 8181 H peut également être émis si le maître DP est à l'état "STOP".
0 1 8184H Erreur système ou type de paramètre illicite...
0 1 8311H 0..10 Paramètre CTYPE hors de la plage de valeurs admises.
0 1 8312H 0..10 Longueur de la zone trop petite dans le paramètre CONTROL.
0 1 8313H 3, 7, 8, 9, 10 Paramètre Adresse d'esclave hors de la plage de valeurs admises.
0 1 8315H 0, 1 Tous les esclaves DP du groupe spécifié dans le Global Control sont
désactivés (apparaît toujours pour groupe vide).
0 1 8317H 8 Les données de sortie configurées sont plus longues que la zone de
réception configurée de l'esclave DP.
Il n'est pas possible d'activer le mode esclave "Lecture des données de
sortie".
0 1 8318H 0, 1, 4, 5, 6 Un paramètre dans le 1er octet du bloc de tâche n'est pas compris dans
la plage des valeurs admises. CLEAR a été utilisé avec SYNC dans un
GLOBAL CONTROL ou un GLOBAL CONTROL avec CLEAR activé a été
envoyé au groupe 0.
0 1 831AH 0, 1 Un esclave DP au moins ne maîtrise pas FREEZE.
0 1 831BH 0, 1 Un esclave DP au moins ne maîtrise pas SYNC.
0 1 8333H 0, 1 Cette tâche n'est pas autorisée dans l'état de fonctionnement DP "STOP".
Remarque :
L'état 8181 H peut également être émis si aucun maître DP n'a été
configuré.
0 1 8334H 0, 1 Cette tâche n'est pas autorisée dans l'état de fonctionnement DP
"OFFLINE".
Remarque :
L'état 8181 H peut également être émis si aucun maître DP n'a été
configuré.
0 1 8335H 0, 1 Le CP PROFIBUS est à l'état PROFIBUS : "Station pas dans l'anneau".
0 1 8339H 0, 1 Un esclave DP au moins du groupe sélectionné ne se trouve pas en
phase de transfert de données.
0 1 833CH 1 Il n'est pas permis d'utiliser un Global Control cyclique en mode
"API <-> CP en roue libre". Cette erreur ne survient pas sur le CP 3425,
car ce mode n'y est pas possible (la transmission de données se fait
toujours par des enregistrements de bus de périphérie).
0 1 8341H 7-10 L'esclave DP indiqué n'a pas été configuré.
0 1 8183H 0..10 Le maître DP n'est pas configuré.
0 1 8184H - Erreur système ou type de paramètre illicite

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 263
Blocs de programme pour PROFIBUS
5.3 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFIBUS)

DONE ERROR STATUS Possible pour Signification


CTYPE
0 1 8F22H 0..10 Erreur de longueur de zone à la lecture d'un paramètre (par ex. DB trop
court).
0 1 8F23H 0..10 Erreur de longueur de zone à l'écriture d'un paramètre.
0 1 8F24H 0..10 Erreur de zone à la lecture d'un paramètre.
0 1 8F25H 0..10 Erreur de zone à l'écriture d'un paramètre.
0 1 8F28H 0..10 Erreur d'alignement à la lecture d'un paramètre.
0 1 8F29H 0..10 Erreur d'alignement à l'écriture d'un paramètre.
0 1 8F30H 0..10 Le paramètre se trouve dans le 1er bloc de données actif, en lecture
seule.
0 1 8F31H 0..10 Le paramètre se trouve dans le 2ème bloc de données actif, en lecture
seule.
0 1 8F32H 0..10 Le paramètre contient un numéro de DB trop élevé.
0 1 8F33H 0..10 Erreur de numéro de DB.
0 1 8F3AH 0..10 Zone non chargée (DB).
0 1 8F42H 0..10 Retard d'acquittement à la lecture d'un paramètre dans la zone de
périphérie.
0 1 8F43H 0..10 Retard d'acquittement à l'écriture d'un paramètre dans la zone de
périphérie.
0 1 8F44H 0..10 L'accès à un paramètre à lire au cours du traitement de bloc est verrouillé.
0 1 8F45H 0..10 L'accès à un paramètre à écrire au cours du traitement de bloc est
verrouillé.
0 1 8F7FH 0..10 Erreur interne, par ex. référence ANY illicite.
0 1 80C4H 0..10 Erreur de communication (survient temporairement, une répétition dans le
programme utilisateur est donc judicieuse).
0 1 80D2H 0..10 Adresse de base logique erronée.

5.3 Capacité fonctionnelle / Besoins en ressources des blocs de


programme (PROFIBUS)

Besoin en ressources

Remarque
Tenez compte de la version des blocs. Les versions de bloc fournies actuellement peuvent
être différentes des versions de bloc indiquées ici. Le besoin en ressources peut être
différent pour les blocs d'une autre version.
Vous trouverez des informations sur les versions de bloc actuelles sous le numéro d'article :
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Blocs de programme pour CP S7 SIMATIC NET


264 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS
5.3 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFIBUS)

Tableau 5- 11 Indications pour FC / FB avec S7-400

NOM Version Nº de Besoins en Besoins en MC7 [octets] Données


FC/FB mémoire de mémoire centrale locales [octets]
chargement [octets]
[octets]
AG_SEND 1.2 FC5 732 576 540 20
AG_RECV 1.2 FC6 656 522 486 20
AG_LSEND 3.1 FC50 1044 846 810 52
AG_LRECV 3.1 FC60 1190 992 956 58

Tableau 5- 12 Indications pour FC / FB avec S7-300

NOM Version Nº de Besoins en Besoins en MC7 [octets] Données


FC/FB mémoire de mémoire centrale locales [octets]
chargement [octets]
[octets]
DP_SEND 3.0 FC1 1066 886 850 42
DP_RECV 3.0 FC2 1144 950 914 46
DP_DIAG 3.0 FC3 1956 1638 1602 58
DP_CTRL 3.0 FC4 1532 1292 1256 52
AG_SEND 4.2 FC5 1976 1664 1628 50
AG_RECV 4.7 FC6 1440 1206 1170 40

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 265
Blocs de programme pour PROFIBUS
5.3 Capacité fonctionnelle / Besoins en ressources des blocs de programme (PROFIBUS)

Blocs de programme pour CP S7 SIMATIC NET


266 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS 6
6.1 Utilisation en bref

Généralités
Pour une station S7, les blocs fonctionnels suivants sont disponibles pour la communication
FMS.
La liste indique les numéros de bloc utilisés à la livraison. Vous pourrez les modifier.

Bloc fonctionnel utilisable dans la fonction du Signification /


CP PROFIBUS-CP comme : fonction
Type Nº de bloc Client FMS Serveur FMS
IDENTIFY FB2 X X pour interroger des
caractéristiques d'appareil
READ FB3 X - pour lire des données
REPORT FB4 - X pour communiquer des données
sans confirmation
STATUS FB5 X X pour interroger l'état
WRITE FB6 X - pour écrire des données

Distinction entre S7-300 et S7-400


Des FB différents sont fournis pour S7-300 et pour S7-400. Ouvrez la bibliothèque de blocs
appropriée (SIMATIC_NET_CP) selon que vous élaborez un programme utilisateur pour S7-
300 ou pour S7-400.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 267
Blocs de programme pour PROFIBUS FMS
6.2 Paramètres de bloc FMS

6.2 Paramètres de bloc FMS

Interfaces d'appel des FB


Dans les paragraphes qui suivent, l'interface d'appel est indiquée sous la forme suivante
pour chaque FB :

)%[

%22/ 5(4 '21( %22/

':25' ,' (5525 %22/

67$786 :25'

%<7( 3+<6 %<7(

%<7( /2* %<7(

$1< /2&$/ $1<

Selon le type du FB, vous y trouverez différents paramètres de type INPUT, OUTPUT ou
INOUT.
Les tableaux suivants donnent la signification, le type de données, les valeurs admises et la
zone de mémoire pour tous les paramètres de bloc existants.

Paramètres d'entrée (INPUT)

Paramètre d'entrée Signification Type de Valeurs admises / zone utilisé


(INPUT) données de mémoire dans FB
REQ Signal de front pour BOOL 0=FALSE ; 1=TRUE 2 3 4 5 6
l'exécution du bloc. 0->1 : "démarrer"/
E,A,M,D,L
ID Ce repère identifie la liaison DWORD 0001 0001 .. FFFF 2 3 4 5 6
FMS. (pour FB FFFF /
Pour S7-300 : 1: E,A,M,D,L
l'ID spécifie non seulement WORD)
la liaison LAN, mais aussi
l'adresse de bus de
périphérie.
Pour S7-400 :
l'ID spécifie non seulement
la liaison LAN, mais aussi
la liaison au bus de
communication.
Vous devez utiliser l'ID de
la configuration des liaisons
ou adapter l'ID à cette
dernière !

Blocs de programme pour CP S7 SIMATIC NET


268 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.2 Paramètres de bloc FMS

Paramètre d'entrée Signification Type de Valeurs admises / zone utilisé


(INPUT) données de mémoire dans FB
VAR_1 Ce paramètre adresse la ANY String : 2 3 4 - 6
variable éloignée de longueur maxi = 254
communication qu'il s'agit octets
de lire ou d'écrire. par ex.
Il est possible d'indiquer un '<102>' (accès par
nom ou un index, suivant la index)
configuration dans le "ESCLAVE2" (accès
serveur FMS. par nom)
DB
SD_1 Adresse d'une zone de ANY Ce type équivaut à un - - 4 - 6
données locale d'où il s'agit renvoi à un DB, une
de transmettre des mémoire image des E/S
variables. ou une zone de
mémentos.
Exemple :
SD_1 :=
P#DB17.DBX0.0 BYTE
16
Dans cet exemple, les
16 premiers octets du
DB 17 sont transmis.
E,A,M,D,L,Z,T, DBx
RD_1 Adresse d'une zone de ANY Ce type équivaut à un - 3 - - -
données locale dans renvoi à un DB, une
laquelle il s'agit de mémoire image des E/S
transmettre des variables. ou une zone de
mémentos.
Exemple :
RD_1 :=
P#DB17.DBX0.0 BYTE
16
Dans cet exemple, les
16 premiers octets du
DB 17 sont transmis.
E,A,M,D,L, DBx
Nota pour Array of Byte
avec S7-300 :
quand le nombre
d'octets à lire est impair,
il faut donner à la zone
de réception une
longueur correspondant
au nombre pair d'octets
immédiatement
supérieur.
Exemple :
pour un Array[1..13] of
Byte, il faut réserver un
tampon de réception de
14 octets.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 269
Blocs de programme pour PROFIBUS FMS
6.2 Paramètres de bloc FMS

Paramètres de sortie (OUTPUT)

Paramètre de sortie Signification Type de Valeurs admises / utilisé dans FB


(OUTPUT) données zone de mémoire
DONE Indique l'exécution de la BOOL 0=FALSE - - 4 - 6
tâche. 1=TRUE : tâche terminée ;
E,A,M,D,L
NDR Indique la réception de BOOL 0=FALSE 2 3 - 5 -
données. 1=TRUE : nouvelles données
prises en charge ;
E,A,M,D,L
ERROR Indique si une erreur est BOOL 0=FALSE 2 3 4 5 6
survenue. 1=TRUE : une erreur est
survenue ;
E,A,M,D,L
STATUS Donne, après l'exécution WORD Vous trouverez des décodages 2 3 4 5 6
de la tâche, des détaillés dans les paragraphes
renseignements détaillés suivants.
au moyen E,A,M,D,L
d'avertissements ou
d'erreurs.

Paramètres d'entrée-sortie (INPUT/OUTPUT)

Paramètre INOUT Signification Type de Valeurs admises / utilisé dans FB


données zone de mémoire
PHYS Indique l'état physique de BYTE 0...3 - - - 5 -
l'appareil partenaire E,A,M,D,L
(VFD).
LOG Indique l'état logique de BYTE 0...3 - - - 5 -
l'appareil partenaire E,A,M,D,L
(VFD).
LOCAL Paramètre "local detail" du ANY Ces détails peuvent englober - - - 5 -
partenaire jusqu'à 16 octets.
E,A,M,D,L
VENDOR Nom du fabricant de STRING Longueur < 255 2 - - - -
l'appareil D
MODEL Nom du modèle de STRING Longueur < 255 2 - - - -
l'appareil D
REVISION Version de l'appareil STRING Longueur < 255 2 - - - -
D

Blocs de programme pour CP S7 SIMATIC NET


270 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.3 IDENTIFY

Zone de mémoire
Les zones de mémoire indiquées en abrégé dans le tableau sont les suivantes :

Abréviation Type
E Entrée
A Sortie
M Mémento
L Données locales temporaires
D Zone de bloc de données
Z Compteur
T Temporisation
DBX Bloc de données

Paramètres de sortie des FB lors de la mise en route du CP (S7-400)


Quand le FB est appelé et activé ( REQ:0->1, EN_R=1) pendant la mise en route du CP
PROFIBUS (par suite d'une mise hors tension puis sous tension ou d'un actionnement du
commutateur, par exemple ), les paramètres de sortie suivants sont possibles :
● DONE = 0
● NDR = 0
● ERROR = 1
● STATUS = 0001 (liaison non encore établie) ou
STATUS = 0607 (Get-OD s'exécute encore)

6.3 IDENTIFY

6.3.1 Signification et appel - IDENTIFY

Signification du bloc
Le bloc fonctionnel IDENTIFY vous permet d'aller chercher les informations suivantes sur
l'appareil partenaire (via la CPU pour les stations S7) :
● Nom du fabricant de l'appareil
● Nom du modèle de l'appareil
● Version de l'appareil
En fonction de ces informations, vous pouvez alors, par exemple :

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 271
Blocs de programme pour PROFIBUS FMS
6.3 IDENTIFY

● régler la fonction locale du programme sur les performances et le comportement du


partenaire,
● régler les paramètres de communication.

Interface d'appel

,'(17,)<

%22/ 5(4 1'5 %22/

':25' ,' (5525 %22/

67$786 :25'

9(1'25 675,1*

02'(/ 675,1*

5(9,6,21 675,1*

Exemple en représentation LIST

LIST Explication
call FB 2, DB 22 ( //appel du bloc IDENTIFY avec DB d'instance
REQ := M 1.0, //signal de front pour l'exécution du FB
ID := DW#16#10001, //adapté à la configuration
// de la liaison FMS
NDR := M 1.1, //indique quand "nouvelles données prises en charge"
ERROR := M 1.2, //indique exécution erronée
STATUS := MW 20, //décodage détaillé de l'erreur
VENDOR := "SLAVE2".VENDOR_ABBILD, //zone de données pour nom du fabricant
MODEL := "SLAVE2".MODEL_ABBILD, //zone de données pour type d'appareil
REVISION := "SLAVE2".REV_ABBILD ); //zone de données pour version

Informations complémentaires
"SLAVE2"
est le nom symbolique d'un bloc de données. Il est défini dans la table de mnémoniques
correspondante.
VENDOR_ABBILD, MODEL_ABBILD et REVISION_ABBILD
sont des variables de type STRING. Elles sont définies dans le bloc de données "SLAVE2".

6.3.2 Mode de travail - IDENTIFY

Mode de travail
Le schéma ci-dessous montre le déroulement normal dans le temps d'une tâche IDENTIFY.
La tâche est activée par un changement de front (positif) du paramètre REQ.

Blocs de programme pour CP S7 SIMATIC NET


272 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.4 READ

Chaque tâche IDENTIFY du programme utilisateur est acquittée par le CP PROFIBUS au


moyen d'une indication dans les paramètres de sortie NDR, ERROR et STATUS.

)06&OLHQW )066HUYHU
3URJUDPPHXWLOLVDWHXU 352),%86&3 352),%86&3
F\FOHGHOD&38

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

^
,'(17,)<3'8
/
LQWHUURJDWLRQ ;;
HVWHQFRXUV ;;
/LUHOHVGRQQ«HV
G
LGHQWLILFDWLRQ
,'(17,)<

^  &RQILUPHG3'8

,QGLFDWLRQG
«WDW
SU«VHQWH
7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

6.4 READ

6.4.1 Signification et appel - READ

Signification
Le bloc fonctionnel READ lit des données depuis une zone de données du partenaire de
communication qui est spécifiée par son nom ou par son index, selon le paramétrage de la
tâche. Les données lues sont rangées localement dans un bloc de données, dans une zone
de la mémoire image des entrées/sorties ou dans une zone de mémentos.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 273
Blocs de programme pour PROFIBUS FMS
6.4 READ

Condition : configurer une variable de communication


La structure de la variable est fixée dans le partenaire de communication (serveur FMS).
Lors de l'établissement de la liaison FMS, la description de la structure est lue sur le
partenaire de communication. Elle est alors disponible sur le CP PROFIBUS pour la
conversion des données en représentation FMS.
La description de la structure est lue lors de l'établissement de la liaison seulement si la
variable de communication a été sélectionnée lors de la configuration de la liaison FMS.

Tenir compte des droits d'accès attribués


N'oubliez pas que des droits d'accès peuvent être attribués pour la transmission de
données. Dans ce cas, la transmission n'est possible que si les droits appropriés sont
accordés au client FMS.

Interface d'appel du FB

5($'

%22/ 5(4 1'5 %22/

':25' ,' (5525 %22/

$1< 9$5B 67$786 :25'

$1< 5'B

Exemple en représentation LIST

LIST Explication
call FB 3, DB 29 ( //appel du bloc READ avec DB d'instance
REQ := M 1.0, //signal de front pour l'exécution du FB
ID := DW#16#10001, //adapté à la configuration
// de la liaison FMS
VAR_1 := "SLAVE2".INDEX, //adresse la variable de communication à lire
RD_1 := "PROZESS".Motor1, //adresse la zone de données dans laquelle transmettre
NDR := M 1.1, //confirmation de l'exécution
ERROR := M 1.2, //indique une exécution erronée
STATUS := MW 20 ); //décodage détaillé de l'erreur

6.4.2 Mode de travail de READ

Mode de travail
Le schéma suivant montre le déroulement normal dans le temps d'une prise en charge de
données déclenchée dans le programme utilisateur par READ.

Blocs de programme pour CP S7 SIMATIC NET


274 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.4 READ

La tâche est activée par un changement de front (positif) du paramètre REQ.


Chaque tâche READ du programme utilisateur est acquittée par le CP PROFIBUS au moyen
d'une indication dans les paramètres de sortie NDR, ERROR et STATUS.

)06&OLHQW )066HUYHU
3URJUDPPHXWLOLVDWHXU 352),%86&3 352),%86&3
F\FOHGHOD&38

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

^
5($'5HTXHVW3'8
/DOHFWXUH ;;
HVWHQFRXUV ;;
/HFWXUHGHVGRQQ«HV
GDQVOD]RQHGHGRQQ«HV
XWLOLVDWHXUHWFRQYHUVLRQ
DXIRUPDW)06
5($'

^
&RQILUPHG3'8

/DOHFWXUHHVW
WHUPLQ«H
7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

Garantie de la transmission de données


Le schéma montre que la lecture correcte est confirmée par NDR=1, ERROR=0 et
STATUS=0000.
La confirmation positive de la tâche de lecture ne signifie pas forcément que l'opération a été
enregistrée par l'application partenaire.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 275
Blocs de programme pour PROFIBUS FMS
6.5 REPORT

6.5 REPORT

6.5.1 Signification et appel - REPORT

Signification du bloc
Le bloc fonctionnel REPORT (signaler) permet à un serveur FMS de transmettre des
variables sans confirmation. Ce type de tâche est utilisé en particulier pour la transmission
sur des liaisons FMS de type Broadcast.
Il faut que la structure des variables à signaler ait été fixée localement (serveur FMS) par
configuration.

Station S7 comme partenaire de communication


Pour que les variables signalées puissent être acceptées par le partenaire, il faut les
enregistrer en configurant ce dernier.

Interface d'appel

5(3257

%22/ 5(4 '21( %22/

':25' ,' (5525 %22/

$1< 6'B 67$786 :25'

$1< 9$5B

Exemple en représentation LIST

LIST Explication
call FB 4, DB 28 ( //appel du bloc REPORT avec DB d'instance
REQ := M 1.0, //signal de front pour l'exécution du FB
ID := DW#16#10001, //adapté à la configuration de la liaison FMS
VAR_1 := "SLAVE2".INDEX, //désigne la variable de communication à signaler
SD_1 := "PROZESS".Motor1, //adresse la zone de données depuis laquelle transmettre
DONE := M 1.1, //confirmation de l'exécution
ERROR := M 1.2, //indique une exécution erronée
STATUS := MW 20 ); //décodage détaillé de l'erreur

Blocs de programme pour CP S7 SIMATIC NET


276 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.5 REPORT

Remarque
Le paramètre SD_1 sert à adresser la zone de données depuis laquelle les valeurs de
variable sont lues et signalées. Conformément aux conventions FMS, vous devez indiquer
en plus l'index de variable à l'interface du FC. Mais la cohérence de ces deux indications
n'est pas vérifiée lors du traitement de la tâche.

6.5.2 Mode de travail de REPORT

Mode de travail
Le schéma suivant montre le déroulement normal dans le temps d'une transmission de
données déclenchée dans le programme utilisateur par REPORT.
La tâche est activée par un changement de front (positif) du paramètre REQ.
Chaque tâche REPORT du programme utilisateur est acquittée par le CP PROFIBUS au
moyen d'une indication dans les paramètres de sortie DONE, ERROR et STATUS.

)066HUYHU )06&OLHQW
3URJUDPPHXWLOLVDWHXU 352),%86&3 352),%86&3
F\FOHGHOD&38

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

5(32573'8


^
&RQYHUVLRQGHVGRQQ«HV
/DVLJQDOLVDWLRQ GXIRUPDW)06
HVWWHUPLQ«H HW«FULWXUHGDQVOD]RQHGH
GRQQ«HVXWLOLVDWHXU

7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 277
Blocs de programme pour PROFIBUS FMS
6.6 STATUS

6.6 STATUS

6.6.1 Signification et appel - STATUS

Signification du bloc
Le bloc fonctionnel STATUS permet de demander des informations d'état au partenaire de
communication sur la liaison FMS indiquée.
On distingue :
● l'état logique de VFD ;
renseigne par ex. sur la disposition à communiquer ;
● l'état physique de VFD ;
renseigne sur l'état de l'appareil ;
● les informations de détail spécifiques à l'appareil ;
fournissent des informations complémentaires le plus souvent spécifiques au fabricant.
Le tableau suivant donne des explications sur les indications qu'un appareil peut fournir en
raison d'une interrogation d'état :

Appareil Variante du Log Phys Local Detail


message
S7 avec 1 00H : 10H : néant
CP PROFIBUS prêt à communi- prêt à fonctionner,
quer, CP en RUN, CPU en RUN
CPU en RUN
2 02H : 13H : néant
nombre limité de maintenance
services, CP en nécessaire, CPU
RUN, CPU en en STOP
STOP
Appareil d'un autre Sont toujours 00H : 10H : - spécifique au
fabricant possibles : prêt à communi- prêt à fonctionner fabricant -
quer
02H : 11H :
nombre limité de en partie prêt à
services fonctionner
12H :
pas prêt à
fonctionner
13H :
maintenance
nécessaire

Blocs de programme pour CP S7 SIMATIC NET


278 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.6 STATUS

Interface d'appel

)%

%22/ 5(4 1'5 %22/

':25' ,' (5525 %22/

67$786 :25'

%<7( 3+<6 %<7(

%<7( /2* %<7(

$1< /2&$/ $1<

Exemple en représentation LIST

LIST Explication
call FB 5, DB 21 ( //appel du bloc STATUS avec DB d'instance
REQ := M 1.0, //signal de front pour l'exécution du FB
ID := DW#16#10001, //adapté à la configuration de la liaison FMS
NDR := M 1.1, //indique quand "nouvelles données prises en charge"
ERROR := M 1.2, //indique exécution erronée
STATUS := MW 20, //décodage détaillé de l'erreur
PHYS := MB 22, //zone de données pour état physique
LOG := MB 23, //zone de données pour état logique
LOCAL := P#DB18.DBX0.0 WORD8 ); //zone de données pour "local detail"

6.6.2 Mode de travail de STATUS

Mode de travail
Le schéma ci-dessous montre le déroulement normal dans le temps d'une tâche STATUS.
La tâche est activée par un changement de front (positif) du paramètre REQ.
Chaque tâche STATUS du programme utilisateur est acquittée par le CP PROFIBUS au
moyen d'une indication dans les paramètres de sortie NDR, ERROR et STATUS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 279
Blocs de programme pour PROFIBUS FMS
6.7 WRITE

)06&OLHQW )066HUYHU
3URJUDPPHXWLOLVDWHXU 352),%86&3 352),%86&3
F\FOHGHOD&38

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

^
67$7863'8
/
LQWHUURJDWLRQG
«WDW ;;
HVWHQFRXUV ;;
0HWWUHOHVLQIRUPDWLRQV
G
«WDW¢GLVSRVLWLRQ
67$786

^  &RQILUPHG3'8

/
LQGLFDWLRQG
«WDW
HVWSU«VHQWH
7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV1'5(552567$786

6.7 WRITE

6.7.1 Signification et appel - WRITE

Signification
Le bloc FB WRITE transmet des données d'une zone de données locale spécifiée dans une
zone de données du partenaire de communication. Cette zone de données locale peut être
un bloc de données, une zone dans la mémoire image des entrées/sorties ou une zone de
mémentos (voir paramètre SD_1, paramètre de bloc FMS (Page 268))
La zone de données du partenaire de communication est spécifiée au moyen d'un nom de
variable ou d'un index de variable.

Condition : configurer une variable de communication


La structure de la variable est fixée dans le partenaire de communication (serveur FMS).
Lors de l'établissement de la liaison FMS, la description de la structure est lue sur le
partenaire de communication. Elle est alors disponible sur le CP PROFIBUS pour la
conversion des données en représentation FMS.

Blocs de programme pour CP S7 SIMATIC NET


280 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.7 WRITE

La description de la structure est lue lors de l'établissement de la liaison seulement si la


variable de communication a été sélectionnée lors de la configuration de la liaison FMS.

Tenir compte des droits d'accès attribués


N'oubliez pas que des droits d'accès peuvent être attribués pour la transmission de
données. Dans ce cas, la transmission n'est possible que si les droits appropriés sont
accordés au client FMS.

Interface d'appel

:5,7(

%22/ 5(4 '21( %22/

':25' ,' (5525 %22/

$1< 9$5B 67$786 :25'

$1< 6'B

Exemple en représentation LIST

LIST Explication
call FB 6, DB 28 ( //appel du bloc WRITE avec DB d'instance
REQ := M 1.0, //signal de front pour l'exécution du FB
ID := DW#16#10001, //adapté à la configuration de la liaison FMS
VAR_1 := "SLAVE2".INDEX, //désigne la variable de communication à écrire
SD_1 := "PROZESS".Motor1, //adresse la zone de données depuis laquelle transmettre
DONE := M 1.1, //confirmation de l'exécution
ERROR := M 1.2, //indique une exécution erronée
STATUS := MW 20 ); //décodage détaillé de l'erreur

6.7.2 Mode de travail de WRITE

Mode de travail
Le schéma suivant montre le déroulement normal dans le temps d'une transmission de
données déclenchée dans le programme utilisateur par WRITE.
La tâche est activée par un changement de front (positif) du paramètre REQ.
Chaque tâche WRITE du programme utilisateur est acquittée par le CP PROFIBUS au
moyen d'une indication dans les paramètres de sortie DONE, ERROR et STATUS.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 281
Blocs de programme pour PROFIBUS FMS
6.8 Indications et messages d'erreur - blocs FMS

)06&OLHQW )066HUYHU
3URJUDPPHXWLOLVDWHXU 352),%86&3 352),%86&3
F\FOHGHOD&38

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

9DORULVHUOHVSDUDPªWUHV
,1387
&$//)% 5(4 

:5,7(5HTXHVW3'8

^
PLW'DWHQ

/
«FULWXUH ;;
HVWHQFRXUV ;;
&RQYHUVLRQGHVGRQQ«HV
GXIRUPDW)06
HW«FULWXUHGDQVOD]RQHGH
GRQQ«HVXWLOLVDWHXU
:5,7(

^  &RQILUPHG3'8

/
«FULWXUHHVW
WHUPLQ«H
7HPSV 7HPSV 7HPSV

 7UDQVIHUWGHVSDUDPªWUHV'21((552567$786

Garantie de la transmission de données


Le schéma montre que la transmission des données au partenaire de communication et leur
écriture dans la zone de données éloignée sont garanties lorsqu'elles sont confirmées par
DONE=1, ERROR=0 et STATUS=0000.
La confirmation positive de la tâche ne signifie pas forcément que les données ont déjà été
acceptées ou traitées par l'application partenaire.

6.8 Indications et messages d'erreur - blocs FMS

Composition des tableaux


Les tableaux suivants énumèrent les indications et les messages d'erreur que vous devez
traiter dans votre programme utilisateur. La signification des paramètres DONE/NDR,
ERROR et STATUS est donnée dans les paramètres de bloc FMS (Page 268).
Pour plus de clarté, les codes d'erreur sont énumérés d'après le principe suivant :

Blocs de programme pour CP S7 SIMATIC NET


282 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.8 Indications et messages d'erreur - blocs FMS

(UUHXUVG«WHFW«HVSDU
(UUHXUVG«WHFW«HVORFDOHPHQW
OHSDUWHQDLUH)06

FODVV«HVSDU
FODVVHG
HUUHXUV H[SOLFDWLRQGDQVOHWDEOHDXFLGHVVRXV
FRGHG
HUUHXUVLJQLILFDWLRQ YRLUOHWDEOHDXFLGHVVRXV

Traitement correct de la tâche


Un traitement correct de la tâche fournit les indications suivantes à l'interface du FB :

DONE/NDR ERROR STATUS Signification


1 0 0x0000 Tâche terminée sans erreur
0 0 0x000B Tâche en cours.

Classes d'erreurs
Les codes d'erreur possibles sont groupés en classes d'erreurs comme suit :

Tableau 6- 1 Classe d'erreurs "Bloc"

Classe d'erreurs Signification


Bloc Désigne les erreurs ou problèmes concernant :
 le paramétrage de FB
 le traitement des blocs dans la CPU et le CP
Application Désigne les erreurs ou problèmes à l'interface entre programme utilisateur et
FB.
Définition Désigne les erreurs qui indiquent le plus souvent des incohérences entre le
programme utilisateur et la configuration FMS.
Ressources Désigne les problèmes de ressources du CP PROFIBUS
Service Désigne les erreurs ou problèmes en rapport avec le service FMS demandé.
Accès Signale les accès refusés à des objets en raison de :
 droits d'accès manquants
 problèmes de matériel
 autres incohérences
OV (dossier des Désigne les problèmes lors de l'accès au dossier des objets du VFD.
objets)
Etat VFD Erreur non précisée de VFD.
Autres Autres cas d'erreur.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 283
Blocs de programme pour PROFIBUS FMS
6.8 Indications et messages d'erreur - blocs FMS

6.8.1 Erreurs détectées localement

Tableau 6- 2 Classe d'erreurs "Application"

DONE/NDR ERROR STATUS Signification


0 1 0x0001 Problème de communication :
par ex. la liaison de bus de communication n'a pas
été établie.
0 1 0x0002 La fonction n'est pas exécutable : soit acquittement
négatif du CP, soit erreur dans la séquence, par ex.
erreur de protocole du bus de communication.
0 1 0x0003 La liaison n'est pas configurée (l'ID indiquée est
incorrecte). Si la liaison est pourtant configurée, le
message d'erreur donne à penser que la parallélité
autorisée pour le traitement des tâches est
dépassée. Exemple : SAC configurée = 0 et une
tâche REPORT est lancée.
0 1 0x0004 La zone de données de réception est trop courte ou
les types de données ne concordent pas.
0 1 0x0005 Une demande de réinitialisation est arrivée du CP
(BRCV).
0 1 0x0006 Le traitement correspondant de tâche dans le CP
est à l'état DISABLED ou une demande de
réinitialisation est arrivée du CP ; par suite, la
transmission est incomplète.
0 1 0x0007 Le traitement correspondant de tâche dans le CP
est dans un état erroné.
Avec REPORT : l'erreur est précisée dans le
tampon de diagnostic.
0 1 0x0008 Le traitement de tâche du CP signale une erreur
d'accès à la mémoire utilisateur.
0 1 0x000A L'accès à la mémoire utilisateur locale n'est pas
possible (le DB a été effacé, par ex.).
0 1 0x000C Dans l'appel du SFB subordonné BSEND ou BRCV,
un DB d'instance a été indiqué qui n'appartient pas
au SFB 12 / SFB 13 ou bien ce n'est pas un DB
d'instance, mais un DB global qui a été utilisé.
0 1 0x0014 Il n'y a pas assez de mémoire centrale ou de
mémoire de chargement.

DONE/NDR ERROR STATUS Signification


0 1 0x0200 Erreur de référence de l'application non spécifiée.
0 1 0x0201 La liaison configurée ne peut être établie
actuellement, par ex. liaison LAN non établie.

Blocs de programme pour CP S7 SIMATIC NET


284 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.8 Indications et messages d'erreur - blocs FMS

Tableau 6- 3 Classe d'erreurs "Définition"

DONE/NDR ERROR STATUS Signification


0 1 0x0300 Erreur de définition non spécifiée.
0 1 0x0301 L'objet avec l'index / le nom demandé n'est pas
défini.
0 1 0x0302 Les attributs d'objet sont incohérents.
0 1 0x0303 Ce nom existe déjà.

Tableau 6- 4 Classe d'erreurs "Ressources"

DONE/NDR ERROR STATUS Signification


0 1 0x0400 Erreur de ressources non spécifiée.
0 1 0x0401 Pas de mémoire disponible.

Tableau 6- 5 Classe d'erreurs "Service"

DONE/NDR ERROR STATUS Signification


0 1 0x0500 Erreur de service non spécifiée.
0 1 0x0501 Conflit à cause de l'état d'un objet.
0 1 0x0502 La taille PDU configurée est dépassée.
0 1 0x0503 Conflit à cause des restrictions sur un objet.
0 1 0x0504 Paramètres incohérents.
0 1 0x0505 Paramètres illicites.

Tableau 6- 6 Classe d'erreurs "Accès"

DONE/NDR ERROR STATUS Signification


0 1 0x0600 Erreur d'accès non spécifiée.
0 1 0x0601 Objet incorrect ou pas chargé de OV.
0 1 0x0602 Erreur matérielle
0 1 0x0603 L'accès à l'objet a été refusé.
0 1 0x0604 Adresse incorrecte.
0 1 0x0605 Attributs d'objet incohérents.
0 1 0x0606 L'accès à l'objet n'est pas supporté.
0 1 0x0607 L'objet n'existe pas dans le OV ou GetOV est
encore en cours.
0 1 0x0608 Conflit de type ou contenu de variable hors de la
plage de valeurs admises.
0 1 0x0609 L'accès par le nom n'est pas supporté.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 285
Blocs de programme pour PROFIBUS FMS
6.8 Indications et messages d'erreur - blocs FMS

Tableau 6- 7 Classe d'erreurs "Dossier d'objets" (OV) / classe d'erreurs Etat VFD/Reject

DONE/NDR ERROR STATUS Signification


0 1 0x0700 Erreur OV non spécifiée
0 1 0x0701 La longueur autorisée pour le nom est dépassée.
0 1 0x0702 Débordement du dossier d'objets.
0 1 0x0703 Le dossier d'objets est protégé en écriture.
0 1 0x0704 Débordement de la longueur d'extension.
0 1 0x0705 Débordement de la longueur de description d'objet.
0 1 0x0706 Problème de traitement.

DONE/NDR ERROR STATUS Signification


0 1 0x0100 Erreur d'état VFD non spécifiée
0 1 0x0108 Erreur RCC/SAC/RAC
0 1 0x0106 Service non supporté.
0 1 0x0105 Erreur de longueur PDU.
0 1 0x0102 PDU de FMS erroné.

Tableau 6- 8 Classe d'erreurs "Autres"

DONE/NDR ERROR STATUS Signification


0 1 0x0800 Erreur non spécifiée

6.8.2 Erreurs signalées par le partenaire FMS

Tableau 6- 9 Classe d'erreurs "Application"

DONE/NDR ERROR STATUS Signification


0 1 0x8200 Erreur de référence de l'application non spécifiée.
0 1 0x8201 Application (par ex. programme utilisateur) non
accessible.

Tableau 6- 10 Classe d'erreurs "Définition"

DONE/NDR ERROR STATUS Signification


0 1 0x8300 Erreur de définition non spécifiée.
0 1 0x8301 L'objet avec l'index / le nom demandé n'est pas
défini.
0 1 0x8302 Les attributs d'objet sont incohérents.
0 1 0x8303 Ce nom existe déjà.

Blocs de programme pour CP S7 SIMATIC NET


286 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.8 Indications et messages d'erreur - blocs FMS

Tableau 6- 11 Classe d'erreurs "Ressources"

DONE/NDR ERROR STATUS Signification


0 1 0x8400 Erreur de ressources non spécifiée.
0 1 0x8401 Pas de mémoire disponible.

Tableau 6- 12 Classe d'erreurs "Service"

DONE/NDR ERROR STATUS Signification


0 1 0x8500 Erreur de service non spécifiée.
0 1 0x8501 Conflit à cause de l'état d'un objet.
0 1 0x8502 La taille PDU configurée est dépassée.
0 1 0x8503 Conflit à cause des restrictions sur un objet.
0 1 0x8504 Paramètres incohérents.
0 1 0x8505 Paramètres illicites.

Tableau 6- 13 Classe d'erreurs "Accès"

DONE/NDR ERROR STATUS Signification


0 1 0x8600 Erreur d'accès non spécifiée.
0 1 0x8601 Objet incorrect.
0 1 0x8602 Erreur matérielle
0 1 0x8603 L'accès à l'objet a été refusé.
0 1 0x8604 Adresse incorrecte.
0 1 0x8605 Attributs d'objet incohérents.
0 1 0x8606 L'accès à l'objet n'est pas supporté.
0 1 0x8607 L'objet n'existe pas.
0 1 0x8608 Conflit de type ou contenu de variable hors de la
plage de valeurs admises.
0 1 0x8609 L'accès par le nom n'est pas supporté.

Tableau 6- 14 Classe d'erreurs OV (dossier des objets)

DONE/NDR ERROR STATUS Signification


0 1 0x8700 Erreur OV non spécifiée
0 1 0x8701 La longueur autorisée pour le nom est dépassée.
0 1 0x8702 Débordement du dossier d'objets.
0 1 0x8703 Le dossier d'objets est protégé en écriture.
0 1 0x8704 Débordement de la longueur d'extension.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 287
Blocs de programme pour PROFIBUS FMS
6.9 Capacités fonctionnelles / Ressources requises par les FB (PROFIBUS FMS)

DONE/NDR ERROR STATUS Signification


0 1 0x8705 Débordement de la longueur de description d'objet.
0 1 0x8706 Problème de traitement.

Tableau 6- 15 Classe d'erreurs Etat VFD / classe d'erreurs "Autres"

DONE/NDR ERROR STATUS Signification


0 1 0x8100 Erreur d'état VFD non spécifiée

DONE/NDR ERROR STATUS Signification


0 1 0x8000 Erreur non spécifiée - détectée par le partenaire.

6.9 Capacités fonctionnelles / Ressources requises par les FB


(PROFIBUS FMS)

Remarque
Tenez compte de la version des blocs. Les versions de bloc fournies actuellement peuvent
être différentes des versions de bloc indiquées ici. Le besoin en ressources peut être
différent pour les blocs d'une autre version.
Vous trouverez des informations sur les versions de bloc actuelles sous le numéro d'article :
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

Tableau 6- 16 Pour les FB avec S7-400

NOM Version Nº de FB Besoins en Besoins en MC7 Données DB DB


mémoire de mémoire [octets] locales d'instance d'instance
chargement centrale [octets] [octets] MC7
[octets] [octets] [octets]
IDENT 1.4 2 1658 1364 1328 136 464 196
READ 1.5 3 2474 2086 2050 130 606 338
REPORT 1.5 4 2184 1818 1782 156 588 332
STATUS 1.3 5 1656 1390 1354 112 438 190
WRITE 1.5 6 2486 2094 2058 142 632 358

Blocs de programme pour CP S7 SIMATIC NET


288 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Blocs de programme pour PROFIBUS FMS
6.9 Capacités fonctionnelles / Ressources requises par les FB (PROFIBUS FMS)

Tableau 6- 17 Pour les FB avec S7-300

NOM Version Nº de FB Bloc Besoins en MC7 Données DB DB


[octets] mémoire [octets] locales d'instance d'instance
centrale [octets] [octets] MC7
[octets] [octets]
IDENT 1.6 2 1462 1254 1218 86 306 158
READ 1.5 3 1998 1700 1664 64 218 70
REPORT 1.6 4 2036 1732 1696 76 230 72
STATUS 1.6 5 1430 1244 1208 60 182 46
WRITE 1.6 6 2028 1724 1688 76 230 72

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 289
Blocs de programme pour PROFIBUS FMS
6.9 Capacités fonctionnelles / Ressources requises par les FB (PROFIBUS FMS)

Blocs de programme pour CP S7 SIMATIC NET


290 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Historique du document A
A.1 Historique du document
Ce chapitre récapitule les versions traitées dans ce manuel et les compléments fonctionnels
des blocs de programme.

Nouveautés de la version 06
Cette édition du manuel contient des corrections.
Corrections :
● blocs de programme PROFIenergy

Nouveautés de la version 05
Cette édition du manuel contient des corrections et compléments.
Modifications / Compléments :
● PROFIenergy
Nouveaux blocs de programme pour fonctions PROFIenergy

Nouveautés de la version 04
Cette édition du manuel contient des corrections et compléments.
Modifications / Compléments :
● Nouveau bloc de programme AG_CNTEX
● Adaptation au nouveau logiciel de configuration STEP 7 Professional
Les blocs de programme ne sont plus désignés dans le nouveau logiciel de configuration
que par leur nom symbolique. Le présent manuel en tient compte dans la mesure où ces
noms de bloc de programme y sont utilisés de préférence. Il existe cependant toujours
une correspondance avec les désignations par des numéros de bloc comme cela ce
faisait sous STEP 7 V5.5.
● Bloc de programme FTP_CMD complété
Vous pouvez établir des liaisons FTP sécurisées par SSL.

Nouveautés de la version 03
Cette édition du manuel contient des corrections et compléments.
Modifications / Compléments :

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 291
Historique du document
A.1 Historique du document

● Renvoi à l'article FAQ sur le maniement des blocs.


● Particularités lors de l'utilisation du FB pour des liaisons programmées et configuration IP
dans les systèmes à haute disponibilité (systèmes H).
● DP_SEND / DP_RECV Les explications de l'indication d'état 8180H ont été complétées.
● DP_CTRL : La description manquante du type de tâche CTYPE = 4 a été rajoutée.
Les mentions CTYPE 1, 7 et 8 ont été complétées car celles-ci ne sont plus prises en
charge à compter du type de module DA02.
● DP_CTRL : Les explications ont été complétées pour les indications d'état suivantes :
8181H, 8183H, 8333H, 8334H

Nouveautés de la version 02
Cette édition du manuel contient des corrections et compléments.
Par rapport à l'édition précédente, sont venus s'ajouter dans la présente édition :
Modifications / Compléments :
● Dans le chapitre Industrial Ethernet
Le nouveau bloc fonctionnel FB 56 est mis à disposition pour la communication ERPC
des CP ERPC.
● Au chapitre FC / FB pour services FTP
La description du bloc de données DB de fichier se trouve à présent dans l'aide en ligne
mais aussi dans le présent manuel.
● Dans le chapitre FB pour liaisons programmées et configuration IP
Ce chapitre contient désormais également la description complète du bloc de données de
configuration requis.
Il décrit en complément la possibilité de configurer un nom d'appareil sur certains types
de CP.
● Dans le chapitre FC / FB pour PROFINET IO
La nouveauté de ce chapitre est la possibilité de désactiver la transmission d'informations
d'état détaillées dans les FC PNIO_SEND et PNIO_RECV. Vous bénéficiez dans ce cas
d'une réaction plus courte au niveau de l'interface.

Nouveautés de la version 01
Cette édition du manuel regroupe les descriptions de bloc qui figuraient jusqu'à présent dans
les différents manuels des CP S7 consacrés aux types de réseau. À l'avenir, ces manuels ne
contiendront plus les descriptions des blocs.
Par rapport aux éditions précédentes des manuels consacrés aux CP S7, l'édition 1
présente en outre les nouveautés suivantes dans les descriptions des blocs :

Blocs de programme pour CP S7 SIMATIC NET


292 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Historique du document
A.1 Historique du document

● Dans le chapitre Industrial Ethernet


Le nouveau bloc fonctionnel FB 40 est mis à disposition pour le fonctionnement client
FTP des CP Advanced. Ce bloc permet de créer efficacement des séquences complètes
de tâches FTP dans le programme utilisateur.
● Dans le chapitre PROFINET IO
Modification de paramètres dans les blocs pour PROFINET IO
– FC11 PNIO_SEND (version 2.0 du bloc)
– FC12 PNIO_RECV (version 2.0 du bloc)
Vous devez employer ces deux fonctions pour les CP qui utilisent simultanément le mode
contrôleur et le mode périphérique pour PROFINET IO.

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 293
Historique du document
A.1 Historique du document

Blocs de programme pour CP S7 SIMATIC NET


294 Manuel de programmation, 10/2012, C79000-G8977-C229-07
Bibliographie B
Trouver la documentation SIMATIC NET
● Catalogues
Les références des produits Siemens en question ici figurent dans les catalogues
suivants :
– SIMATIC NET Communication industrielle / identification Industrielle, catalogue IK PI
– SIMATIC Produits pour Totally Integrated Automation et Micro Automation, catalogue
ST 70
Vous pouvez vous procurer ces catalogues ainsi que des informations complémentaires
auprès des agences Siemens.
L'Industry Mall est accessible sur Internet à l'adresse suivante :
Catalogue (https://eb.automation.siemens.com/goos/catalog)
● Documentation sur Internet
Les manuels SIMATIC NET se trouvent également sur les pages du site Internet
Siemens Customer Support :
Lien vers le Custommer Support : (http://support.automation.siemens.com/WW/view/fr)
Entrez-y le numéro de référence du manuel voulu comme terme de recherche.
L'identificateur est indiqué entre parenthèses sous certaines entrées bibliographiques.
Vous trouverez également la documentation SIMATIC NET dans les pages du support
produit :
10805878 (http://support.automation.siemens.com/WW/view/fr/10805878)
Naviguez jusqu'au groupe de produits voulu et procédez au paramétrage suivant :
Onglet "Liste des articles", Type d'article "Manuels / Instructions de service"
● Documentation dans l'installation STEP 7
Vous trouverez les manuels qui sont enregistrés sur votre PG/PC sous la documentation
en ligne de l'installation STEP 7, dans le menu Démarrer ("Démarrer" > "SIMATIC" >
"Documentation").

Blocs de programme pour CP S7 SIMATIC NET


Manuel de programmation, 10/2012, C79000-G8977-C229-07 295
Bibliographie
B.1 Pour la configuration, la mise en service et l'utilisation du CP

B.1 Pour la configuration, la mise en service et l'utilisation du CP

/1/
SIMATIC NET
CP S7 pour Industrial Ethernet
Configuration et mise en service
Manuel partie A - Applications générales
Manuel de configuration
Siemens AG
(SIMATIC NET Manual Collection)
Sur Internet sous le numéro d'article :
Lien vers la partie A : (http://support.automation.siemens.com/WW/view/fr/30374198)

B.2 Pour la programmation

/2/
Historique des versions des blocs fonctionnels et fonctions SIMATIC NET pour SIMATIC S7
Manuel de référence
Siemens AG
(SIMATIC NET Manual Collection)
Sur Internet sous le numéro d'article :
9836605 (http://support.automation.siemens.com/WW/view/de/9836605)

/3/
SIMATIC
Programmation sous STEP 7
Siemens AG
(Partie de la documentation STEP 7 Informations basiques STEP 7)
(Fait partie de la documentation en ligne de STEP 7)
Sur Internet sous le numéro d'article :
18652056 (http://support.automation.siemens.com/WW/view/de/18652056)

/4/
SIMATIC
Fonctions système et fonctions standard pour S7-300/400 - Volumes 1/2
Manuel de référence
Siemens AG
(Partie de la documentation STEP 7 Informations basiques STEP 7)
(Fait partie de la documentation en ligne de STEP 7)
Sur Internet sous le numéro d'article :
1214574 (http://support.automation.siemens.com/WW/view/de/1214574)

Blocs de programme pour CP S7 SIMATIC NET


296 Manuel de programmation, 10/2012, C79000-G8977-C229-07

Vous aimerez peut-être aussi