Vous êtes sur la page 1sur 29

Description

Librairie S7 O2Dx_CP
Version 1.9

Capteur de reconnaissance d'objets


O2D22x
raccordé à la station S7 via
le module de communication Simatic-NET
CP 343-1
Librairie S7 O2Dx_CP
Version 1.9

Contenu
Remarque préliminaire ............................................................................................................................ 3
Disclaimer of Warranties ......................................................................................................................... 3
Demo software and templates ................................................................................................................ 3
Software written specifically for Customer .............................................................................................. 3
1 Remarques générales...................................................................................................................... 4
2 Installation ........................................................................................................................................ 4
2.1 Réglage de l’interface process du capteur .......................................................................... 4
2.2 Configurer la connexion avec le capteur sous Step7.......................................................... 6
2.2.1 Configuration matérielle de la station S7 dans le programme de configuration HW
Config 6
2.2.2 Configuration du réseau avec NetPro ........................................................................... 10
2.3 Connexion matérielle entre le capteur et la station Simatic S7 ........................................ 19
3 Blocs pour Simatic-S7.................................................................................................................... 20
3.1 La structure O2DxCfgStructCP (UDT 160) ....................................................................... 20
3.1.1 Manipulation .................................................................................................................. 20
3.2 La fonction O2DxCfgSetCP (FC160) ................................................................................ 21
3.2.1 Manipulation .................................................................................................................. 21
3.2.2 Etat du bit BIE dans le mot d'état de l'UC ..................................................................... 23
3.3 Le bloc fonctionnel O2DxBasicAppCP (FB160)................................................................ 24
3.3.1 Manipulation .................................................................................................................. 25
3.3.2 Déclenchement du capteur en mode trigger en ligne ................................................... 26
3.3.3 Réception des données en mode trigger matériel ........................................................ 26
3.3.4 Activer une application dans le capteur ........................................................................ 26
3.3.5 Erreur de communication .............................................................................................. 26
3.3.6 Description du paramètre de sortie owStatus ............................................................... 28
3.3.7 Affichage dans le bit BIE du mot d'état de l'UC ............................................................ 29
3.3.8 Diagnostic étendu.......................................................................................................... 29

page 2
Librairie S7 O2Dx_CP
Version 1.9

Remarque préliminaire
Cette notice
 décrit le réglage de la communication entre un capteur O2D22x de la société ifm electronic et
un module Simatic-NET CP343-1 dans un système de commande Simatic-S7.
 décrit l'utilisation des blocs de la librairie S7 O2Dx_CP dans le programme S7.

Disclaimer of Warranties
ifm disclaims to the fullest extent authorized by law any and all warranties, whether express or
implied, including, without limitation, any implied warranties of title, non-infringement, quiet
enjoyment, integration, merchantability or fitness for a particular purpose.
Without limitation of the foregoing, ifm expressly does not warrant that:
(a) the software will meet your requirements or expectations;
(b) the software or the software content will be free of bugs, errors, viruses or other defects;
(c) any results, output, or data provided through or generated by the software will be accurate,
up-to-date, complete or reliable;
(d) the software will be compatible with third party software;
(e) any errors in the software will be corrected

Demo software and templates


Demo software and templates are provided “as is” and “as available”, without any warranty of any
kind, either express or implied. The User acknowledges and agrees to use the software at User’s
own risk. In no event shall ifm be held liable for any direct, indirect, incidental or consequential
damages arising out of the use of or inability to use the software. User may use the software
solely for demonstration purposes and to assess the software functionalities and capabilities.

Software written specifically for Customer


1. The software created and used is put together by ifm specially to the customer using modular
software components made by ifm for numerous applications (Standard software modules) and
adapted to the contractual service required (customer-specific application program).
2. Upon complete payment of the purchase price for the customer-specific application program,
ifm transfers the non-exclusive, locally and temporarily unrestricted usage right thereof to the
customer, without the customer acquiring any rights of any kind to the standard software module
on which the individual or customer-specific adaptation is based. Notwithstanding these
provisions, ifm reserves the right to produce and offer customer specific software solutions of the
same kind for other customers based on other terms of reference. In any case ifm retains a simple
right of usage of the customer–specific solution for internal purposes.
3. Upon acceptance of the program, User acknowledges and agrees to use the software at User’s
own risk. User also acknowledges and agrees upon acceptance of the program that the software
meets the requirements of the specifications agreed upon. ifm disclaims any and all warranties, in
particular regarding fitness of the software for a particular purpose.

page 3
Librairie S7 O2Dx_CP
Version 1.9

1 Remarques générales
Dans le programme S7, les blocs de la librairie O2Dx_CP permettent de manière simple
 d'activer un des paramétrages mémorisés dans le capteur.
 de recevoir les données de réponse d'une commande trigger du capteur.
2 modes de fonctionnement sont disponibles:
− Mode trigger matériel :
Le capteur est déclenché via son entrée signal TOR.
− Mode trigger en ligne :
Le capteur est déclenché via un paramètre d'entrée du bloc de communication de la librairie
S7 (Trigger TCP/IP).
Dans les deux modes de fonctionnement les données de réponse obtenues lors du
déclenchement sont mémorisées dans une zone de réception configurable.

2 Installation
2.1 Réglage de l’interface process du capteur
Cette partie de la notice se réfère au progiciel efector dualis Reconnaissance d'objets E2D200
version 3.1
 Démarrer le logiciel de paramétrage par PC du capteur et établir la liaison avec le capteur
 Sélectionner le mode Applications

Figure 1

page 4
Librairie S7 O2Dx_CP
Version 1.9

 Sélectionner l’onglet Paramètres réseau

Figure 2
 Le Mode DHCP ne doit pas être activé
 Régler l'adresse IP et si nécessaire le masque de sous-réseau et la passerelle (les valeurs
par défaut sont affichées)
 Régler le port TCP/IP (Standard 50010 recommandée)
 Cliquer sur Affecter pour valider le paramétrage du capteur.
Ensuite le capteur doit éventuellement être redémarré pour activer les réglages.
Si le capteur doit être déclenché via le système de commande Simatic-S7, le mode trigger TCP/IP
doit être sélectionné lors du paramétrage.

page 5
Librairie S7 O2Dx_CP
Version 1.9

2.2 Configurer la connexion avec le capteur sous Step7


Cette partie de la notice se réfère à Step7 version 5.x

2.2.1 Configuration matérielle de la station S7 dans le programme de configuration HW


Config

Figure 3
 Double cliquer sur le module CP pour ouvrir la fenêtre Propriétés CP

Figure 4

 Dans la zone Interface cliquer sur le bouton Propriétés ... pour ouvrir la fenêtre Propriétés -
Interface Ethernet

page 6
Librairie S7 O2Dx_CP
Version 1.9

Figure 5
 Régler l'adresse IP du CP dans l’onglet Paramètres (doit être dans la même classe de sous-
réseau que l'adresse IP du capteur)
 Sélectionner un sous-réseau de la liste ou créer un sous-réseau par le bouton Nouveau...

Figure 6
 Sélectionner un nom pour le nouveau sous-réseau et quitter la fenêtre Propriétés - Nouveau
sous-réseau Industrial Ethernet en appuyant sur OK

page 7
Librairie S7 O2Dx_CP
Version 1.9
 Sélectionner un sous-réseau de la liste
 Désactiver le champ Choisir l'adresse MAC / Utiliser le protocole ISO

Figure 7

 Quitter la fenêtre Propriétés - Interface Ethernet en cliquant sur OK pour valider les réglages

Figure 8

 Quitter la fenêtre Propriétés CP en cliquant sur OK pour valider les réglages

page 8
Librairie S7 O2Dx_CP
Version 1.9
 Enregistrer et compiler la configuration matérielle (menu Station  Enregistrer et compiler)

Figure 9
 Après la compilation sans erreur ouvrir la configuration du réseau (menu Outils  Configurer
le réseau)

Figure 10

page 9
Librairie S7 O2Dx_CP
Version 1.9

2.2.2 Configuration du réseau avec NetPro


 Ouvrir la configuration réseau du projet dans NetPro (Figure 11)

Figure 11
La représentation des réseaux (vert = Ethernet) montre la connexion entre le module CP et le
réseau Industrial Ethernet (Figure 11).
 Dans le catalogue des objets réseau sélectionner l’objet Autre station de la librairie Stations et
le déplacer dans la fenêtre principale
L'objet inséré représente le capteur O2D2xx.

Figure 12
 Un double clic sur l’objet inséré Autre Station (1) ouvre la fenêtre Propriétés – Autre station

page 10
Librairie S7 O2Dx_CP
Version 1.9

Figure 13
 Dans l’onglet Général donner un nom à l'objet pour une meilleure identification
 Passer à l’onglet Interfaces (Figure 14)

Figure 14

 Un clic sur le bouton Nouveau... ouvre la fenêtre qui permet de créer une interface

page 11
Librairie S7 O2Dx_CP
Version 1.9
 Dans la fenêtre Nouvelle interface - Sélection du type sélectionner le type Industrial Ethernet

Figure 15

 Valider la sélection en appuyant sur OK . La fenêtre Propriétés - Interface Ethernet s'ouvre


automatiquement
 Dans l’onglet Général le nom de l’interface peut être modifié
 Passer à l’onglet Paramètres (Figure 16)
 Saisir les valeurs de l'interface process du capteur tel que adresse IP et masque de sous-
réseau (les valeurs par défaut sont indiquées dans la Figure 16)
 Sélectionner le sous-réseau auquel le module CP est raccordé dans la liste Sous-réseau
 Désactiver le champ Choisir l'adresse MAC / Utiliser le protocole ISO

Figure 16

 Quitter la fenêtre Propriétés - Interface Ethernet en cliquant sur OK pour valider les réglages

page 12
Librairie S7 O2Dx_CP
Version 1.9

Figure 17

 Quitter la fenêtre Propriétés - Autre station en cliquant sur OK pour valider les réglages

Figure 18
Maintenant la liaison entre le capteur et le réseau Industrial Ethernet est également affichée
(Figure 18).

page 13
Librairie S7 O2Dx_CP
Version 1.9
 Sélectionner le petit symbole de l'UC dans l’objet représentant la station Simatic. La table des
liaisons est maintenant affichée dans la partie basse de la fenêtre

Figure 19
 Créer une nouvelle liaison (menu Insertion  Nouvelle liaison)

Figure 20
 Sélectionner le capteur comme partenaire de liaison dans la fenêtre Insérer une nouvelle
liaison
 Dans la zone Liaison sélectionner le type Liaison TCP dans la liste
 Activer le champ Afficher les propriétés avant l'insertion

page 14
Librairie S7 O2Dx_CP
Version 1.9

Figure 21

 Valider les réglages en cliquant sur OK , la fenêtre Propriétés - Liaison TCP s'ouvre
automatiquement
 Régler le point terminal local dans l’onglet Général (Figure 22)
 Sélectionner une ID disponible pour cette liaison dans le champ ID (hex)
 En option un nom peut être défini pour cette liaison
 Activer le champ Etablissement de liaison actif
Dans la zone Paramètres de bloc les valeurs pour les paramètres nécessaires dans le
programme S7 sont affichées :
 ID = ID unique sélectionnée pour cette liaison
 LADDR = adresse initiale du module CP (réglé dans HW Config)

Figure 22

page 15
Librairie S7 O2Dx_CP
Version 1.9

 Passer à l’ onglet Adresses


 PORT (DEC) dans la colonne Local : laisser la valeur de présélection
 PORT (DEC) dans la colonne Partenaire : saisir le no. de port de l'interface process du
capteur (standard 50010)

Figure 23

 Quitter la fenêtre Propriétés - Liaison TCP en cliquant sur OK pour valider les réglages
Dans la table des liaisons, la liaison au capteur est maintenant affichée (Figure 24).

Figure 24

page 16
Librairie S7 O2Dx_CP
Version 1.9

 Enregistrer et compiler la configuration du réseau (menu Réseau  Enregistrer et compiler)

Figure 25
 Sélectionner l’entrée Compilation complète après vérification dans le menu Enregistrer et
compiler (Figure 26)

Figure 26

 Démarrer l'opération en cliquant sur OK

page 17
Librairie S7 O2Dx_CP
Version 1.9
A la fin de l’opération, le résultat de la vérification de cohérence est affiché (Figure 27).

Figure 27
 Fermer la fenêtre affichée
 Si aucune erreur ne s'est produite, cliquer sur l’objet de la station Simatic pour la sélectionner
 Charger la configuration dans la station S7 (menu Système cible  Charger dans le projet en
cours Stations sélectionnées)
La configuration du matériel et du réseau est chargée dans la station S7.

Figure 28
Une boîte de dialogue pour confirmer le téléchargement dans la station S7 s'ouvre.

page 18
Librairie S7 O2Dx_CP
Version 1.9

Figure 29

 Continuer le processus en cliquant sur Oui

2.3 Connexion matérielle entre le capteur et la station Simatic S7


Le capteur est raccordé au module CP de la station Simatic S7 par un câble Ethernet connecteur
M12 /connecteur RJ45, 4 pôles. Si le capteur est directement raccordé au module CP, un câble
croisé est obligatoire. S'il est raccordé à la station S7 via un switch, des câbles droits peuvent être
utilisés.

page 19
Librairie S7 O2Dx_CP
Version 1.9

3 Blocs pour Simatic-S7


Le bloc fonctionnel O2DxBasicAppCP (FB160) est le bloc principal de la librairie. Il contient
l'application et fournit les fonctions pour déclencher le capteur et pour sélectionner les paramètres
actifs dans le capteur.
Le FB160 utilise les fonctions de communication Siemens AG_SEND et AG_RECV de la librairie
Step7 SIMATIC_NET_CP.
Les données de configuration pour le FB160 sont mémorisées dans une structure de données
externe selon la structure O2DxCfgStructCP (UDT 160). Les données sont écrites dans cette
structure de données à l'aide de la fonction O2DxCfgSetCP (FC160) lors du démarrage de l'API.
Le FB160 ne fonctionne dans le programme cyclique que si la fonction FC160 est appelée dans le
programme de démarrage de l'API.

3.1 La structure O2DxCfgStructCP (UDT 160)


Cet UDT définit la structure des données de configuration pour le bloc fonctionnel
O2DxBasicAppCP (FB160). Pour chaque capteur O2D22x raccordé au module CP, un champ de
données séparé selon cette structure doit être créé. Ce champ de données doit permettre un
accès global. De préférence, il est créé dans un bloc de données global.
Figure 30 affiche la structure UDT 160

Figure 30

3.1.1 Manipulation
Figure 31 montre un exemple de déclaration de la structure de données de configuration dans un
bloc de données.

Figure 31

page 20
Librairie S7 O2Dx_CP
Version 1.9
3.2 La fonction O2DxCfgSetCP (FC160)
Cette fonction compile les données de configuration et prépare le démarrage du bloc fonctionnel
O2DxBasicAppCP (FB160) dans le programme cyclique.

Figure 32
Paramètre d'entrée IN

Nom Type de Description


données

LADDR WORD Adresse du module CP de la configuration du matériel

ID INT ID de la connexion au capteur (réglé dans NetPro)

iiTimeOut INT Temps d'attente max. de la réponse du capteur


(en millisecondes)

iiHWTrigMode INT = 0 : FB160 en mode trigger en ligne


(trigger via FB160)
<> 0 : FB160 en mode trigger matériel
(trigger via l'entrée matériel du capteur)

ianyRcvBuf ANY Zone de réception pour la réponse trigger du capteur

Paramètre de sortie OUT

Nom Type de Description


données

oudtCfgData UDT160 Structure de données contenant les données de


configuration pour FB160

3.2.1 Manipulation
La fonction O2DxCfgSetCP (FC160) doit être appelée une fois pour chaque capteur O2D22x
raccordé au module CP dans le programme de démarrage de la station S7 (p.ex. OB100). Pour
simplifier la saisie des paramètres de connexion l’assistant de connexion intégré à Step7 peut
être utilisé.

page 21
Librairie S7 O2Dx_CP
Version 1.9
 Cliquer sur l'appel du bloc avec le bouton droit de la souris et sélectionner Liaisons... dans le
menu contextuel.

Figure 33
 Dans la fenêtre Paramètres de bloc concernant la liaison sélectionner la liaison au capteur
dans la liste des liaisons disponibles.

Figure 34

 Quitter la fenêtre en cliquant sur OK pour valider le paramètre sélectionné

Figure 35

page 22
Librairie S7 O2Dx_CP
Version 1.9
Les paramètres LADDR et ID de la liaison sélectionnée ont été ajoutés aux paramètres d'entrée
de la fonction par l’assistant de connexion. Les autres paramètres doivent être saisis
manuellement.
La valeur du paramètre iiTimeOut indique la durée maximale (en millisecondes) pendant laquelle
le bloc fonctionnel O2DxBasicAppCP attend une réponse du capteur. Un dépassement de cette
durée génère une erreur.
Le paramètre iiHwTrigMode définit le mode de fonctionnement du bloc fonctionnel
O2DxBasicAppCP (FB160). Saisir zéro (mode trigger en ligne) si le capteur doit être déclenché
via l'entrée du bloc fonctionnel. Toute autre valeur active le mode trigger matériel du bloc
fonctionnel.
Le paramètre ianyRcvBuf définit la zone de réception pour les données du capteur. Le format à
utiliser est un pointeur de type ANY. La zone de réception doit permettre un accès global et se
trouve de préférence dans un bloc de données global, mais peut aussi se trouver dans une zone
de bit internes ou dans une mémoire image process non raccordée. Les types de données BYTE
et CHAR sont possibles. Alternativement un seul bloc de données (p.ex. DB2) peut être indiqué.
Dans ce cas, toute la taille est utilisée comme zone de réception. En tout cas, la taille de la zone
de réception ne doit pas être inférieure à la taille minimum de 8 bytes. La taille maximum dépend
de la zone utilisée et de l'UC.
La Figure 36 indique l'exemple d'un appel complet de la fonction FC160 dans le programme de
démarrage.

Figure 36

3.2.2 Etat du bit BIE dans le mot d'état de l'UC


Si la création des données de configuration génère une erreur, la réponse est BIE = FALSE.
Sinon BIE est mis à TRUE.

page 23
Librairie S7 O2Dx_CP
Version 1.9

3.3 Le bloc fonctionnel O2DxBasicAppCP (FB160)


Ce bloc fonctionnel sert à la communication avec le capteur. Il établit la connexion et synchronise
l'échange des données, il met en forme les télégrammes de commandes et analyse les données
de réponse du capteur. Si le bloc fonctionnel reçoit des données de réponse à une commande
trigger, il recopie ces données dans la zone de réception indiquée lors de l'appel de la fonction
FC160 dans le programme de démarrage.

Figure 37
Paramètre d'entrée IN

Nom Type de Description


données

ixTrigger BOOL Le front montant déclenche le capteur


(pas en mode trigger matériel)

ixChApp BOOL Le front montant active dans le capteur l’application


indiquée par le paramètre iiAppNo

iiAppNo INT N° de l’application à activer activé pa r ixChApp

Paramètre de passage INOUT

Nom Type de Description


données

ioudtCfgData UDT160 Structure de données contenant les données de


configuration

Paramètre de sortie OUT

Nom Type de Description


données

oxBusy BOOL Bloc occupé, une nouvelle commande n'est pas


possible

oxDone BOOL Le front montant de cette variable indique que la


commande s’est terminée sans erreurs

oxError BOOL Erreur détectée

page 24
Librairie S7 O2Dx_CP
Version 1.9

owStatus WORD Si oxError = 0 : information d'état


Si oxError = 1 : code d'erreur

oiActAppNo INT N° de l’application active

odiRcvdLen DINT Longueur de la réponse à la commande de trigger


dans la zone de réception

3.3.1 Manipulation
Dans le programme cyclique, le bloc fonctionnel O2DxBasicAppCP doit être appelé une fois par
cycle API pour chaque O2D22x raccordé au module CP. L'appel peut être effectué soit comme
bloc fonctionnel séparé avec son propre bloc de données d'instance soit intégré comme multi-
instance dans les données d'instance d'un bloc fonctionnel supérieur.
Le FB160 utilise les fonctions de communication Siemens AG_SEND et AG_RECV (FC5 et FC6
de la librairie Step7 SIMATIC_NET_CP) pour l'échange de données avec le capteur. Ces
fonctions doivent être mises à la disposition dans le programme S7 sans modifications.
La Figure 38 montre l'exemple d'un appel complet du FB160 comme instance indépendante.

Figure 38
Le bloc fonctionnel O2DxBasicAppCP nécessite les données de configuration créées dans le
programme de démarrage par la fonction O2DxCfgSetCP (FC160). Ce champ de données doit
être affecté comme paramètre ioudtCfgData. Les paramètres de connexion, la référence à la zone
de réception pour les données de la réponse à la commande de trigger etc. y sont mémorisés.
Après le démarrage de la station S7, la zone de réception est initialisée et la communication avec
le capteur est établie puis configurée. Le bloc fonctionnel indique le paramètre de sortie oxBusy =
1 jusqu'à ce que ce processus soit terminé. Ensuite le bloc fonctionnel passe au fonctionnement
cyclique. Le mode de fonctionnement du bloc fonctionnel FB160 ne peut être réglé que dans le
bloc d'organisation de démarrage par le paramètre iiHwTrigMode de la fonction O2DxCfgSetCP
(FC160) :
 iiHwTrigMode de la fonction FC160 = 0  mode trigger en ligne, sinon mode trigger matériel
Un changement du mode de fonctionnement n'est pas possible pendant la durée du programme
API cyclique.
Le bloc fonctionnel O2DxBasicAppCP fournit les fonctions pour déclencher le capteur et pour
sélectionner l’application dans le capteur. L’application active est indiquée via le paramètre de
sortie oiActAppNo.
Le paramètre de sortie oxBusy = 0 indique qu'une des fonctions peut être activée. Pendant le
traitement d'une commande oxBusy = 1. Si une erreur se produit, le paramètre de sortie oxError
est également mis à 1.
Si le traitement d'une commande est terminé, le paramètre oxBusy est remis à 0 et la longueur
des données dans la zone de réception est indiquée dans le paramètre odiRcvdLen. Dans le

page 25
Librairie S7 O2Dx_CP
Version 1.9
même tour de cycle API, le résultat du traitement de la commande peut être vérifié en analysant
les paramètres oxDone, oxError et owStatus.
 Aucune erreur : oxDone = 1
oxError = 0
owStatus = 0000
 Erreur détectée : oxDone = 0
oxError = 1
owStatus = code d'erreur, voir le paragraphe 3.3.6
Dans le cycle API suivantoxDone et oxError sont remis à 0 et le paramètre owStatus indique de
nouveau l'état du bloc fonctionnel.

3.3.2 Déclenchement du capteur en mode trigger en ligne


Ce mode de fonctionnement permet de déclencher le trigger du capteur via une commande tcp/ip
par le programme S7.
A chaque front montant du paramètre d'entrée ixTrigger, le bloc transmet une commande trigger
au capteur. Le paramètre de sortie oxBusy est mis à 1 et la zone de réception des données de
réponse trigger est initialisée. Si le bloc reçoit les données attendues, elles sont mémorisées dans
la zone de réception. Si cette zone définie est trop petite, les données sont rejetées et une erreur
est affichée. Quand la transmission des données est terminée, le paramètre de sortie oxBusy est
remis à 0. Le résultat du traitement de la commande peut être vérifié comme décrit dans le
paragraphe 3.3.1.

3.3.3 Réception des données en mode trigger matériel


Dans ce mode de fonctionnement toutes les données transmises par le capteur sans
déclenchement via le bloc fonctionnel sont mémorisées dans la zone de réception.
Ce mode est particulièrement approprié pour déclencher le capteur via son entrée matériel et
pour recevoir les données de réponse via l'interface process.
Si le bloc fonctionnel reçoit de nouvelles données, le paramètre de sortie oxBusy est mis à 1 et la
zone de réception est initialisée. Ensuite les nouvelles données sont mémorisées dans la zone de
réception. Si cette zone définie est trop petite, les données sont rejetées et une erreur est
affichée. Quand la transmission des données est terminée, le paramètre de sortie oxBusy est
remis à 0. Le résultat du traitement de la commande peut être vérifié comme décrit dans le
paragraphe 3.3.1.
Dans ce mode de fonctionnement, il n'est pas possible de déclencher le capteur via le programme
S7. Un front montant au paramètre d'entrée ixTrigger est détecté comme une erreur. Les
paramètres de sortie oxBusy et oxError sont mis à 1. La zone de réception des données de
réponse trigger est initialisée et les données d'une commande de réception en cours sont
rejetées. Une fois ce processus terminé, le paramètre de sortie oxBusy est remis à 0. Le résultat
du traitement de la commande peut être vérifié comme décrit dans le paragraphe 3.3.1

3.3.4 Activer une application dans le capteur


Cette fonction est disponible indépendamment du mode de fonctionnement du bloc fonctionnel.
A chaque front montant du paramètre d'entrée ixChApp le bloc fonctionnel transmet une
commande pour activer une application dans le capteur. Le paramètre de sortie oxBusy est mis à
1 et la zone de réception des données de réponse trigger est initialisée. Le n° de l’application à
activer dans le capteur est indiqué dans le paramètre d'entrée iiAppNo. Si une erreur se produit
lors du traitement (p.ex. n° d’application non vala ble), le paramètre de sortie oxError est mis à 1.
Une fois le traitement terminé, le paramètre de sortie oxBusy est remis à 0. Dans le même tour de
cycle API, le résultat du traitement de la commande peut être vérifié en analysant les paramètres
oxDone, oxError et owStatus comme décrit dans le paragraphe3.3.1.

3.3.5 Erreur de communication


Si le capteur ne répond pas dans le délai indiqué lors de l'appel de la fonction O2DxCfgSetCP
(FC160) via le paramètre iiTimeOut ou si les fonctions AG_SEND ou AG_RECV indiquent une
erreur, le paramètre de sortie oxBusy est mis 1. Si cela se produit lors du traitement d'une
commande, le paramètre oxError est mis à 1. Ensuite le bloc fonctionnel O2DxBasicAppCP
(FB160) réinitialise la communication avec le capteur. Jusqu'à ce que ce processus soit terminé,

page 26
Librairie S7 O2Dx_CP
Version 1.9
le paramètre de sortie oxBusy reste à 1. Si le paramètre oxError a été mis à 1, les paramètres
oxDone, oxError et owStatus se comportent comme décrit dans le paragraphe 3.3.1.

page 27
Librairie S7 O2Dx_CP
Version 1.9

3.3.6 Description du paramètre de sortie owStatus

owStatus Description

0 0 0 0 Commande terminée sans erreur

1 0 0 x Démarrage du bloc fonctionnel

0 Initialisation des données internes


1 Initialisation de la liaison
2 Etablissement de la liaison

2 0 x x Initialisation du capteur

6 0 x x Bloc fonctionnel en mode trigger matériel

7 0 x x Bloc fonctionnel en mode trigger en ligne

0 Attente de la commande
1 Envoi de la commande au capteur
2 Attente de la réponse du capteur
3 Réception des données du capteur

0 Aucune commande en cours


1 Commande d'initialisation "v03" active
4 Commande pour activer l’application "c + n° d’appli cation" active
8 Commande de trigger "T?" active
9 Commande de demande d’application "a?" active

8 x x x Code d'erreur

0 non spécifié
1 Le capteur ne réagit pas pendant le délai Timeout réglé
2 Informations de longueur non valables des données de réponse
3 Réponse trigger plus longue que la zone de réception réglée
4 Commande rejetée par le capteur
5 Commande non permise

2^0 AG_SEND indique une erreur


2^1 AG_RECV indique une erreur
2^2 AG_SEND indique une erreur
2^3 Autre erreur

8 0 0 1 Aucune donnée de configuration (ioudtCfgData)

8 0 0 2 Conflit de version des blocs

8 0 0 3 Paramètres de liaison erronés

8 0 0 4 Zone de réception pour la réponse trigger non valable

8 0 0 5 Zone de réception pour la réponse trigger trop petite (min. 8 bytes)

page 28
Librairie S7 O2Dx_CP
Version 1.9
3.3.7 Affichage dans le bit BIE du mot d'état de l'UC
Tant que le paramètre de sortie owStatus indique un code d'erreur, la réponse est BIE = FALSE.
Sinon BIE est mis à TRUE.

3.3.8 Diagnostic étendu


Outre le paramètre de sortie owStatus le bloc fonctionnel O2DxBasicAppCP fournit d'autres
données de diagnostic. Elles sont intégrées dans les données de configuration dans la sous-
structure stDiagInfo.

Nom Type de Description


données

iVersionNo INT N° de version des blocs de la librai rie

wErrCodeConnect WORD Code d'erreurs de la fonction AG_SEND lors de


l'établissement de la liaison

wStatusAG_RECV WORD Valeur actuelle du paramètre de sortie STATUS de la


fonction AG_RECV

wErrCodeAG_RECV WORD Dernier code d'erreur indiqué par la fonction


AG_RECV

wStatusAG_SEND WORD Valeur actuelle du paramètre de sortie STATUS de la


fonction AG_SEND

wErrCodeAG_SEND WORD Dernier code d'erreur indiqué de la fonction


AG_SEND

wErrCodeFB WORD Dernier code d'erreur indiqué du bloc fonctionnel


O2DxBasicAppCP (FB160)

diDataLen DINT Longueur des dernières données utiles reçues

Les fonctions de communication Siemens AG_RECV et AG_SEND fournissent respectivement un


paramètre STATUS qui montre l'état actuel de la fonction (voir la documentation Siemens
concernant les blocs fonctionnels). Ces valeurs sont recopiées cycliquement dans
wStatusAG_RECV et wStatusAG_SEND par FB160.
Si la fonction AG_RECV ou AG_SEND indique une erreur, le code d'erreur de la fonction indiqué
dans STATUS est recopié dans wErrCodeAG_RECV ou wErrCodeAG_SEND. A l'aide de ce code
d'erreur, la cause de l'erreur peut être déterminée à l'aide de la documentation Siemens sur la
fonction.
La fonction AG_SEND gère également l'établissement de la liaison après le démarrage de l'API.
Si cette fonction indique une erreur, le code d'erreur est recopié dans wErrCodeConnect.
wErrCodeFB contient le dernier code d'erreur indiqué de l'O2DxBasicAppCP (FB160).
Dans toutes les structures de données wErrCode... les codes d'erreur restent jusqu'à ce que la
prochaine erreur du bloc correspondant se produise ou que l'API soit redémarré.
La valeur dans diDataLen indique la longueur des dernières données utiles reçues (en bytes).

page 29

Vous aimerez peut-être aussi