Schneider Electric SoMachine - Fonctions de gestion CANopen Mode d'emploi

Ajouter à Mes manuels
64 Des pages
Schneider Electric SoMachine - Fonctions de gestion CANopen Mode d'emploi | Fixfr
SoMachine
EIO0000000496 06/2011
SoMachine
Fonctions de gestion CANopen
Guide de la bibliothèque CAA CiA 405
EIO0000000496.02
06/2011
www.schneider-electric.com
Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou
déterminer l’adéquation ou la fiabilité de ces produits pour des applications
utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser
l’analyse de risques complète et appropriée, l’évaluation et le test des produits pour
ce qui est de l’application à utiliser et de l’exécution de cette application. Ni la société
Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être
tenues pour responsables de la mauvaise utilisation des informations contenues
dans le présent document. Si vous avez des suggestions d’amélioration ou de
correction ou avez relevé des erreurs dans cette publication, veuillez nous en
informer.
Aucune partie de ce document ne peut être reproduite sous quelque forme ou par
quelque moyen que ce soit, électronique, mécanique ou photocopie, sans
l’autorisation écrite expresse de Schneider Electric.
Toutes les réglementations locales, régionales et nationales pertinentes doivent
être respectées lors de l’installation et de l’utilisation de ce produit. Pour des raisons
de sécurité et afin de garantir la conformité aux données système documentées,
seul le fabricant est habilité à effectuer des réparations sur les composants.
Lorsque des équipements sont utilisés pour des applications présentant des
exigences techniques de sécurité, suivez les instructions appropriées.
La non-utilisation du logiciel Schneider Electric ou d’un logiciel approuvé avec nos
produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect.
Le non-respect de cette consigne peut entraîner des lésions corporelles ou des
dommages matériels.
© 2011 Schneider Electric. Tous droits réservés.
2
EIO0000000496 06/2011
Table des matières
Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . .
A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . .
Partie I Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 1 Introduction au protocole CANopen. . . . . . . . . . . . . . . .
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole NMT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole PDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole SDO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole EMCY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole SYNC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocole de contrôle d’erreur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 2 Introduction à CiA405. . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
7
9
11
12
13
14
15
16
17
19
21
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
Partie II Description des blocs fonction. . . . . . . . . . . . . . . . .
23
Chapitre 3 Comportement et E/S communes des blocs fonction .
3.1 Comportement et E/S communes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Descriptions des E/S communes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Codes d’erreur de noyau CANopen détectés . . . . . . . . . . . . . . . . . . . . . .
Schémas d’exécution de blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 4 Blocs fonction de gestion de réseau . . . . . . . . . . . . . . .
4.1 CIA405.NMT : gestion de l’état NMT des appareils . . . . . . . . . . . . . . . . .
Gestion de l’état NMT des appareils . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 CIA405.RECV_EMCY : scrutation des messages EMCY. . . . . . . . . . . . . .
Scrutation des messages EMCY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 CIA405.RECV_EMCY_DEV : réception du message EMCY de l’appareil .
Extraction du message EMCY d’appareil . . . . . . . . . . . . . . . . . . . . . . . . .
Chapitre 5 Blocs fonction d’ID de nœud personnel. . . . . . . . . . . . .
5.1 CIA405.GET_LOCAL_NODE_ID : obtention de l’ID de nœud CANopen du
contrôleur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extraction de l’ID de nœud CANopen de l’automate. . . . . . . . . . . . . . . . .
EIO0000000496 06/2011
25
25
26
28
29
31
32
32
35
35
37
37
39
39
39
3
Chapitre 6 Blocs fonction d’état de requête . . . . . . . . . . . . . . . . . . .
41
6.1 CIA405.GET_CANOPEN_KERNEL_STATE : obtention de l’état du noyau
CANopen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Extraction de l’état du noyau CANopen . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 CIA405.GET_STATE : obtention de l’état de l’appareil CANopen . . . . .
Extraction de l’état d’appareil CANopen . . . . . . . . . . . . . . . . . . . . . . . . .
42
42
43
43
Chapitre 7 Blocs fonction d’accès SDO . . . . . . . . . . . . . . . . . . . . . . .
45
7.1 CIA405.SDO_READ : lecture d’objets CANopen de toute taille . . . . . . .
Lecture d’objets CANopen de toute taille. . . . . . . . . . . . . . . . . . . . . . . . .
7.2 CIA405.SDO_READ4 : lecture d’objets CANopen d’au maximum 4 octets
Lecture d’objets CANopen d’au maximum 4 octets . . . . . . . . . . . . . . . . .
7.3 CIA405.SDO_WRITE : écriture d’objets CANopen de toute taille . . . . . .
Ecriture d’objets CANopen de toute taille . . . . . . . . . . . . . . . . . . . . . . . .
7.4 CIA405.SDO_WRITE4 : écriture d’objets CANopen d’au maximum
4 octets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ecriture d’objets CANopen d’au maximum 4 octets. . . . . . . . . . . . . . . . .
Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
46
46
49
49
52
52
57
57
59
63
EIO0000000496 06/2011
Consignes de sécurité
§
Informations importantes
AVIS
Lisez attentivement ces instructions et examinez le matériel pour vous familiariser
avec l’appareil avant de tenter de l’installer, de le faire fonctionner ou d’assurer sa
maintenance. Les messages spéciaux suivants que vous trouverez dans cette
documentation ou sur l’appareil ont pour but de vous mettre en garde contre des
risques potentiels ou d’attirer votre attention sur des informations qui clarifient ou
simplifient une procédure.
EIO0000000496 06/2011
5
REMARQUE IMPORTANTE
L’installation, l’utilisation, la réparation et la maintenance des équipements
électriques doivent être assurées par du personnel qualifié uniquement. Schneider
Electric décline toute responsabilité quant aux conséquences de l’utilisation de cet
appareil.
Une personne qualifiée est une personne disposant de compétences et de
connaissances dans le domaine de la construction et du fonctionnement des
équipements électriques et installations et ayant bénéficié d’une formation de
sécurité afin de reconnaître et d’éviter les risques encourus.
6
EIO0000000496 06/2011
A propos de ce manuel
Présentation
Objectif du document
Ce document décrit les blocs fonction de la bibliothèque CAA CiA 405 de
SoMachine, utilisés pour gérer et contrôler le réseau et les équipements CANopen
à partir de l’application du contrôleur.
Champ d’application
Ce document a été mis à jour avec la version de SoMachine V3.0.
Information spécifique au produit
AVERTISSEMENT
COMPORTEMENT ACCIDENTEL DE L’EQUIPEMENT


N’utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner
cet équipement.
Mettez à jour votre programme d’application chaque fois que vous modifiez la
configuration matérielle physique.
Le non-respect de ces instructions peut provoquer la mort, des blessures
graves ou des dommages matériels.
EIO0000000496 06/2011
7
AVERTISSEMENT
PERTE DE CONTROLE





Le concepteur d’un circuit de commande doit tenir compte des modes de
défaillance potentiels des canaux de commande et, pour certaines fonctions de
commande critiques, prévoir un moyen d’assurer la sécurité en maintenant un
état sûr pendant et après la défaillance. Par exemple, l’arrêt d’urgence, l’arrêt
en cas de surcourse, la coupure de courant et le redémarrage sont des
fonctions de contrôle cruciales.
Des canaux de commande séparés ou redondants doivent être prévus pour les
fonctions de commande critique.
Les liaisons de communication peuvent faire partie des canaux de commande
du système. Une attention particulière doit être prêtée aux implications des
délais de transmission non prévus ou des pannes de la liaison.
Respectez toutes les réglementations de prévention des accidents ainsi que les
consignes de sécurité locales.1
Chaque implémentation de cet équipement doit être testée individuellement et
entièrement pour s’assurer du fonctionnement correct avant la mise en service.
Le non-respect de ces instructions peut provoquer la mort, des blessures
graves ou des dommages matériels.
1 Pour plus d’informations, consultez le document NEMA ICS 1.1 (dernière édition),
« Safety Guidelines for the Application, Installation, and Maintenance of Solid State
Control » (Directives de sécurité pour l’application, l’installation et la maintenance
de commande statique) et le document NEMA ICS 7.1 (dernière édition), « Safety
Standards for Construction and Guide for Selection, Installation, and Operation of
Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction
et manuel de sélection, installation et opération de variateurs de vitesse) ou son
équivalent en vigueur dans votre pays.
Commentaires utilisateur
Envoyez vos commentaires à l’adresse e-mail techpub@schneider-electric.com
8
EIO0000000496 06/2011
SoMachine
Introduction
EIO0000000496 06/2011
Introduction
I
Présentation
Cette partie présente les différents protocoles utilisés dans CANopen, ainsi que
l’interface et le profil d’équipement CANopen des contrôleurs programmables
CEI 61131-3 (CiA405).
NOTE : cette introduction a été en partie reprise et adaptée du site Web de CAN in
Automation (www.can-cia.org). CiA® et CANopen® sont des marques communautaires déposées de CAN in Automation e.V
A propos de CiA : CAN in Automation (CiA) désigne le regroupement international
des utilisateurs et fabricants de produits CAN (Controller Area Network). Cette
association à but non lucratif publie des informations techniques, marketing et
produit sur le protocole CAN normalisé à l’échelle internationale dans les
documents ISO 11898. Le but est de promouvoir l’image de CAN et de donner un
axe directeur pour le développement de la technologie CAN. L’organisation
consacre une partie importante de son action à développer et maintenir les
spécifications CANopen et à soutenir tous les autres protocoles CAN de haut niveau
standardisés à l’échelle internationale.
Contenu de cette partie
Cette partie contient les chapitres suivants :
Chapitre
EIO0000000496 06/2011
Titre du chapitre
Page
1
Introduction au protocole CANopen
11
2
Introduction à CiA405
21
9
Introduction
10
EIO0000000496 06/2011
SoMachine
Protocoles CANopen
EIO0000000496 06/2011
Introduction au protocole
CANopen
1
Contenu de ce chapitre
Ce chapitre contient les sujets suivants :
Sujet
EIO0000000496 06/2011
Page
Introduction
12
Protocole NMT
13
Protocole PDO
14
Protocole SDO
15
Protocole EMCY
16
Protocole SYNC
17
Protocole de contrôle d’erreur
19
11
Protocoles CANopen
Introduction
Protocole CANopen
Le protocole CANopen fournit des objets de communication standardisés (COB)
pour les données en temps réel (objets de données de process ou PDO), les
données de configuration (objets de données de service ou SDO), les données de
gestion de réseau (message de démarrage, message NMT et message de
contrôleur d’erreur) ainsi que pour d’autres fonctions (horodatage, message SYNC,
message EMCY). Tous les objets de communication sont accessibles via le réseau
CAN dans le dictionnaire d’objets de l’appareil. Ces objets sont adressables par un
index de 16 bits. Les objets tableau ou enregistrement sont adressés par un sousindex supplémentaire de 8 bits. Un objet de communication est désigné par un
identifiant unique et dédié (COB-ID) sur le réseau CANopen.
Dictionnaire d’objets d’appareil
Les entrées du dictionnaire d’objets d’un appareil CANopen sont décrits dans un
fichier EDS (Electronic Data Sheet). Les paramètres du maître et des esclaves
CANopen peuvent être réglés dans l’outil de configuration CANopen de SoMachine.
Pour plus d’informations sur la configuration CANopen, consultez le chapitre
Éditeurs/Éditeurs d’appareil/Éditeur de configuration CANbus dans l’aide en ligne
de CoDeSys.
12
EIO0000000496 06/2011
Protocoles CANopen
Protocole NMT
Protocole NMT (Network Management)
Le protocole NMT sert à contrôler le comportement des appareils esclaves NMT
CANopen sur le réseau. Il permet de faire basculer un membre dédié ou l’ensemble
des membres du réseau sur l’état d’esclave NMT.
La figure suivante représente l’appareil dans l’état d’esclave NMT CANopen.
Services NMT dans la relation maître/esclave
Tous les appareils CANopen évaluent les commandes NMT entrantes (code CS
(Command Specifier) dans le message NMT). Seul l’appareil CANopen qui joue le
rôle de maître NMT peut transmettre des messages NMT. Dans un réseau
CANopen, un seul maître NMT est actif.
EIO0000000496 06/2011
13
Protocoles CANopen
Protocole PDO
Protocole PDO (Process Data Object)
Les objets de données de process ou PDO sont des messages CAN prioritaires
courts (8 octets de données au maximum) qui sont transmis dans une diffusion. Par
conséquent, les PDO permettent de transmettre des données en temps réel, telles
que des informations de contrôle et d’état d’un variateur ou d’un module d’E/S, des
valeurs mesurées par des capteurs, etc.
Les PDO sont transmis sans confirmation. Cela signifie que, même lorsqu’un
membre du réseau reçoit les informations, la réception ne fait l’objet d’aucun
acquittement.
La figure suivante représente la transmission de PDO entre le générateur (PDO de
transmission) et les consommateurs (PDO de réception).
Evénements déclencheurs d’une transmission de PDO
Les événements déclencheurs d’une transmission de PDO sont définis ci-après.
14
Événement
déclencheur
Définition
Evénement ou
temporisateur
Evénement interne à l’appareil, qui déclenche la transmission de
PDO (par exemple, une modification de valeur, une température
supérieure à un seuil donné, un délai écoulé, etc.)
Demande distante
Transmission de PDO demandée par une requête de transmission
distante (RTR).
Synchrone cyclique
Transmission de PDO couplée à la réception du message SYNC.
Synchrone acyclique
Evénement propre à l’appareil, qui déclenche la transmission de
PDO à la réception du message SYNC suivant.
EIO0000000496 06/2011
Protocoles CANopen
Protocole SDO
Protocole SDO (Service Data Object)
Les objets de données de service ou SDO permettent d’accéder à une entrée du
dictionnaire d’objets CANopen. Un SDO établit une communication point à point
entre deux appareils. De plus, le protocole SDO permet de transférer n’importe quel
volume de données de manière segmentée. Il est donc principalement utilisé pour
communiquer avec des données de configuration.
Une connexion SDO entre deux appareils est établie en configurant le canal client
sur le serveur SDO. La transmission SDO est un service confirmé.
La figure suivante représente l’échange SDO avec requête et réponse.
EIO0000000496 06/2011
15
Protocoles CANopen
Protocole EMCY
Protocole EMCY (Emergency)
L’objet EMCY (Emergency) permet aux équipements de signaler des erreurs
détectées au sein des équipements. Lorsqu’ils reçoivent ce signal, les autres
membres du réseau évaluent l’information reçue et exécutent les actions de
comptage appropriées, définies par le fabricant.
La figure suivante représente le message d’erreur détectée, à l’aide d’objets EMCY.
Messages EMCY
Les messages EMCY reçus d’autres équipements CANopen sont enregistrés dans
une table de stockage EMCY. Pour chaque producteur EMCY, si aucun message
EMCY n’est reçu ou tant que le message EMCY le plus récent était un message
aucune erreur, les consommateurs EMCY considèrent que le producteur EMCY n’a
aucune erreur interne détectée.
16
EIO0000000496 06/2011
Protocoles CANopen
Protocole SYNC
Protocole SYNC (Synchrone)
Le protocole SYNC permet au réseau de synchroniser son comportement. Le
message SYNC transmis de manière cyclique indique aux consommateurs
d’exécuter les opérations propres à l’application, dès réception du message SYNC.
Une fois que les données ont été reçues, un PDO synchrone considère que les
données sont valides au moment de la réception du message SYNC.
La figure suivante représente la transmission de messages SYNC par le protocole
SYNC.
Variables de contrôle pour le comportement SYNC
Le délai entre deux messages SYNC consécutifs est appelé période du cycle de
communication et peut être ajusté dans le dictionnaire d’objets du générateur SYNC
(index d’objet 1006 hex.).
Les PDO de transmission synchrones sont envoyés dans un intervalle de temps
donné, après la réception du message SYNC. Cet intervalle est appelé durée de la
fenêtre synchrone et est configurable dans le dictionnaire d’objets de tous les
équipements qui doivent transmettre des PDO synchrones (index d’objet 1007
hex.).
EIO0000000496 06/2011
17
Protocoles CANopen
La figure suivante représente la durée de la fenêtre synchrone et la période du cycle
de communication.
18
EIO0000000496 06/2011
Protocoles CANopen
Protocole de contrôle d’erreur
Protocole de contrôle d’erreur
Les services Heartbeat et Nodeguarding sont des services de gestion de réseau
(NMT) qui vérifient la présence des membres du réseau et indiquent leur état.
Il existe deux types de protocoles de contrôle d’erreur dans CANopen :
 Heartbeat
 Node/Life Guarding
Comme le protocole Heartbeat est le plus souple et qu’il fonctionne sans requête de
transmission distante (RTR), il est recommandé de l’utiliser si les équipements
CANopen le prennent en charge.
Heartbeat
Un équipement CANopen transmet son heartbeat de manière cyclique. La durée du
cycle est appelée temps du producteur Heartbeat. Dès réception du message de
heartbeat, les consommateurs Heartbeat (par exemple, le gestionnaire CANopen)
évaluent si l’équipement correspondant fonctionne toujours correctement et
conserve l’état NMT correct. Le délai pendant lequel au moins un message
Heartbeat doit être reçu du générateur Heartbeat est configuré sur les
consommateurs (temps consommateur Heartbeat).
La figure suivante représente le heartbeat avec les intervalles de temps du protocole
de contrôle d’erreur.
Node/Life Guarding
Le gestionnaire CANopen demande le message de contrôle d’erreur via une
requête de transmission distante (RTR). L’équipement à garder renvoie une trame
de données CAN qui indique l’état NMT courant.
EIO0000000496 06/2011
19
Protocoles CANopen
Maître : Le maître surveille l’état NMT de l’esclave (Node Guarding).
Esclave : L’esclave surveille les signes de vie du maître (Life Guarding).
20
EIO0000000496 06/2011
SoMachine
CiA405
EIO0000000496 06/2011
Introduction à CiA405
2
Introduction
Méthodes d’accès au réseau CANopen
L’interface et le profil d’appareil CANopen des contrôleurs programmables
CEI 61131-3 (CiA405) décrivent deux méthodes permettant d’accéder au réseau
CANopen à partir du contrôleur :
 variables réseaux ;
 blocs fonction
Variables réseaux
En règle générale, les variables réseau sont mappées dans l’objet PDO à recevoir
ou à transmettre. Dans le dictionnaire d’objets, les variables CEI 61131-3 sont
accessibles dans une plage d’index définie.
Blocs fonction
Le profil définit également certains blocs fonction CANopen, notamment les
services de communication SDO, NMT et EMCY.
Bibliothèque CAA CiA 405
La bibliothèque CAA CiA 405 contient un ensemble de blocs fonction conformes à
l’interface CiA405 et permettant d’accéder au réseau CANopen à partir de
l’application (programme CEI 61131-3) du contrôleur (maître CANopen). Cette
bibliothèque est automatiquement déclarée dans le gestionnaire de bibliothèques
du contrôleur, lorsqu’un gestionnaire CANopen est ajouté à une interface de bus
CAN de contrôleur.
EIO0000000496 06/2011
21
CiA405
Dans la bibliothèque, les blocs fonction sont organisés comme suit :
 Blocs fonction de gestion de réseau :
 CIA405.NMT : pour contrôler les états NMT des appareilsCANopen.
 CIA405.RECV_EMCY : pour scruter les messages EMCY stockés sur
l’ensemble des appareils.
 CIA405.RECV_EMCY_DEV : pour obtenir le dernier message EMCY stocké
d’un appareil donné.

Blocs fonction d’ID de nœud personnel :
 CIA405.GET_LOCAL_NODE_ID : pour obtenir l’ID de nœud du gestionnaire
CANopen du contrôleur.

Blocs fonction d’état de requête :
 CIA405.GET_CANOPEN_KERNEL_STATE : pour obtenir l’état courant du
noyau CANopen.
 CIA405.GET_STATE : pour obtenir l’état courant d’un appareil donné.

Blocs fonction d’accès SDO :
 CIA405.SDO_READ : pour lire des objets de toute taille d’un appareil donné.
 CIA405.SDO_READ4 : pour lire des objets d’une taille maximale de 4 octets,
d’un appareil donné.
 CIA405.SDO_WRITE : pour écrire des objets de toute taille d’un appareil
donné.
 CIA405.SDO_WRITE4 : pour écrire des objets d’une taille maximale de
4 octets, d’un appareil donné.
NOTE : pour contrôler des variateurs Altivar et des variateurs de mouvement
Lexium sur CANopen, préférez les blocs fonction PLCopen dédiés (consultez les
Guides des bibliothèques Altivar, Lexium intégrée et Lexium).
Namespace
Le namespace de la bibliothèque CAA CiA 405 est CIA405. Les blocs fonction,
variables et constantes de la bibliothèque doivent être utilisés avec le namespace
de la bibliothèque.
Exemple d’instance de bloc fonction et de déclaration d’une variable :
VAR
ReadObject: CIA405.SDO_READ;
SDOabort_info: CIA405.SDO_ERROR;
END_VAR
22
EIO0000000496 06/2011
SoMachine
Description des blocs fonction
EIO0000000496 06/2011
Description des blocs fonction
II
Présentation
Cette partie présente les différents blocs fonction de la bibliothèque CAA CiA 405,
utilisés pour gérer et contrôler le réseau et les appareils CANopen à partir des
applications du contrôleur.
Contenu de cette partie
Cette partie contient les chapitres suivants :
Chapitre
EIO0000000496 06/2011
Titre du chapitre
Page
3
Comportement et E/S communes des blocs fonction
25
4
Blocs fonction de gestion de réseau
31
5
Blocs fonction d’ID de nœud personnel
39
6
Blocs fonction d’état de requête
41
7
Blocs fonction d’accès SDO
45
23
Description des blocs fonction
24
EIO0000000496 06/2011
SoMachine
Comportement et E/S communes des blocs fonction
EIO0000000496 06/2011
Comportement et E/S communes
des blocs fonction
3.1
3
Comportement et E/S communes
Contenu de ce sous-chapitre
Ce sous-chapitre contient les sujets suivants :
Sujet
EIO0000000496 06/2011
Page
Descriptions des E/S communes
26
Codes d’erreur de noyau CANopen détectés
28
Schémas d’exécution de blocs fonction
29
25
Comportement et E/S communes des blocs fonction
Descriptions des E/S communes
Introduction
Cette rubrique décrit la gestion et l’exécution des blocs fonction de la bibliothèque
CAA CiA 405 à l’aide du bloc fonction CIA405.RECV_EMCY par exemple. Les E/S
communes à tous les blocs fonction sont décrites ci-après. Elles proviennent du bloc
fonction caché interne CiA405Base.
Représentation graphique
Les paramètres communs à tous les blocs fonction de la bibliothèque CAA CiA 405
apparaissent en surbrillance dans le graphique ci-dessous.
Description des variables d’entrée communes
Le tableau suivant décrit les paramètres d’entrée communs à tous les blocs fonction
de la bibliothèque CAA CiA 405.
26
Entrée
Type de
données
Description
NETWORK
USINT
Canal CAN sur lequel le service demandé doit être
exécuté.
1 (valeur par défaut) = première interface de bus CAN
2 = seconde interface de bus CAN (si elle existe)
ENABLE
BOOL
Permet d’exécuter le bloc fonction.
Front montant : l’exécution démarre.
Front descendant : l’exécution est annulée si elle n’est pas
complète. Sinon, les données de sortie sont remises à
zéro.
TIMEOUT
UDINT
Durée d’exécution maximale en ms. Si le timeout est
atteint avant qu’une réponse ne soit disponible, l’exécution
est abandonnée et génère une erreur de timeout.
0 (paramètre d’usine) = timeout désactivé.
1 à 65535 = valeur du timeout en ms.
EIO0000000496 06/2011
Comportement et E/S communes des blocs fonction
Description des variables de sortie communes
Le tableau suivant décrit les variables de sortie communes à tous les blocs fonction
de la bibliothèque CAA CiA 405.
EIO0000000496 06/2011
Sortie
Type de données
Description
CONFIRM
BOOL
TRUE lorsque l’exécution se déroule sans
problème.
ERROR
CANOPEN_KERNEL_ERROR
(USINT)
Contient le code d’erreur d’exécution
détectée, renvoyé par le noyau CANopen.
00 hex = aucune erreur d’exécution détectée.
01 hex = erreur détectée, mais code
disponible dans une autre sortie du bloc
fonction (pas du noyau CANopen).
02 à FF hex = Code d’erreur détectée du
noyau CANopen.
27
Comportement et E/S communes des blocs fonction
Codes d’erreur de noyau CANopen détectés
Description
La bibliothèque contient une liste de variables globales
CIA405.CANOPEN_KERNEL_ERROR_CODES avec des variables de code d’erreur
prédéfinies.
Code d’erreur détectée
Les codes d’erreur avec la variable globale associée et une description sont
indiqués ci-après.
Code d’erreur détectée
Description
CANOPEN_KERNEL_NO_ERROR = 00 hex
Le noyau CANopen n’a pas détecté d’erreur.
CANOPEN_KERNEL_OTHER_ERROR = 01 hex
Si la sortie ERROR est 01 hex, une erreur a été détectée
et, si un autre code d’erreur est détecté au niveau du
bloc fonction, cette sortie contient une information plus
précise.
Exemples :
 Blocs fonction CIA405.SDO_READ et
CIA405.SDO_WRITE : la sortie ERRORINFO contient
le contenu du message d’abandon de SDO.
 Blocs fonction CIA405.RECV_EMCY et
CIA405.RECV_EMCY_DEV : la sortie ERRORINFO
contient le contenu du message EMCY reçu.
Lorsqu’un message d’urgence est disponible sur la
sortie ERRORINFO, la sortie ERROR est égale à 1 et
la sortie CONFIRM est égale à 0.
 Bloc fonction
CIA405.GET_CANOPEN_KERNEL_STATE : la valeur
01 hex n’est jamais transmise car il n’y a pas d’autre
sortie de code d’erreur.
CANOPEN_KERNEL_DATA_OVERFLOW = 02 hex
Dépassement de la capacité des tampons d’envoi ou de
réception d’objets CANopen.
CANOPEN_KERNEL_TIMEOUT = 03 hex
Un timeout d’exécution de bloc fonction s’est produit.
CANOPEN_KERNEL_CANBUS_OFF = 10 hex
Le nœud CANopen est déconnecté du bus CAN.
CANOPEN_KERNEL_CAN_ERROR_PASSIVE = 11 hex
Le nœud CANopen est en mode erreur passive : le
nœud peut communiquer, mais n’est pas autorisé à
envoyer un indicateur d’erreur actif en cas de détection
d’une erreur.
CANOPEN_INTERNAL_FB_ERROR = 21 hex
Code d’erreur spécifique du fabricant.
NOTE : les codes 21hex à FFhex sont des valeurs
propres au fabricant de l’équipement.
28
EIO0000000496 06/2011
Comportement et E/S communes des blocs fonction
Schémas d’exécution de blocs fonction
Comportement des signaux de contrôle
Les trois comportements types des signaux de contrôle ENABLE, CONFIRM et
ERROR sont décrits ci-après :
 Exécution arrêtée sans erreur détectée
 Exécution annulée par l’application
 Exécution abandonnée ou arrêtée en cas d’erreur détectée
Exécution arrêtée sans erreur détectée
Lorsque la réponse à la requête courante est disponible et qu’aucune erreur n’a été
détectée, la sortie CONFIRM prend et garde la valeur TRUE tant que le bloc fonction
est appelé avec l’entrée ENABLE réglée sur TRUE. Lorsque le bloc fonction est
appelé avec l’entrée ENABLE réinitialisée à FALSE, la sortie CONFIRM reprend la
valeur FALSE et le bloc fonction est prêt pour une nouvelle exécution.
Exécution annulée par l’application
Si le bloc fonction est appelé avec l’entrée ENABLE réinitialisée à FALSE avant la fin
de l’exécution en cours, l’exécution du bloc fonction est annulée. Toute réponse
disponible ou postérieure à la requête annulée est ignorée.
EIO0000000496 06/2011
29
Comportement et E/S communes des blocs fonction
Exécution abandonnée ou arrêtée en cas d’erreur détectée
Lorsque l’exécution en cours est abandonnée suite à un message d’annulation de
SDO ou est arrêtée en cas de détection d’une erreur, la sortie ERROR prend une
valeur différente de 0 (pour plus d’informations sur les codes d’erreur détectée,
reportez-vous à la section Codes d’erreur détectée de noyau CANopen
(voir page 28)). La sortie ERROR est réinitialisée à 0 et le bloc fonction est prêt pour
une nouvelle exécution lorsqu’il est appelé avec l’entrée ENABLE réinitialisée à
FALSE.
30
EIO0000000496 06/2011
SoMachine
Blocs fonction de gestion de réseau
EIO0000000496 06/2011
Blocs fonction de gestion de
réseau
4
Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Souschapitre
4.1
EIO0000000496 06/2011
Sujet
Page
CIA405.NMT : gestion de l’état NMT des appareils
32
4.2
CIA405.RECV_EMCY : scrutation des messages EMCY
35
4.3
CIA405.RECV_EMCY_DEV : réception du message EMCY de
l’appareil
37
31
Blocs fonction de gestion de réseau
4.1
CIA405.NMT : gestion de l’état NMT des appareils
Gestion de l’état NMT des appareils
Description du bloc fonction
Le bloc fonction CIA405.NMT permet de contrôler l’état NMT des appareils
CANopen à partir de l’application du contrôleur. Il envoie une requête de service
NMT à un appareil CANopen cible pour effectuer la transition d’état NMT
demandée.
Représentation graphique
Description des variables d’entrée
Entrée
Type de données
Description
DEVICE
DEVICE(USINT)
ID de nœud de l’appareil CANopen cible.
0 (valeur par défaut) = tous les appareils
esclaves NMT
1 à 127 = ID de nœud de l’appareil cible
STATE
TRANSITION_STATE. Voir cidessous pour les détails.
Transition d’état NMT demandée.
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
CIA405.TRANSITION_STATE ENUM
La machine d’état NMT décrit l’initialisation et l’état d’un esclave NMT dans son
fonctionnement.
32
EIO0000000496 06/2011
Blocs fonction de gestion de réseau
La figure suivante montre les états NMT, les objets de communication disponibles
associés (PDO, SDO, SYNC, EMCY et NMT) et les 5 transitions d’état (A à E).
Le type énuméré CIA405.TRANSITION_STATE contient les commandes de
transition d’état NMT décrites dans le tableau ci-dessous.
EIO0000000496 06/2011
Enumérateur
Valeur (hex.) Description
STOP_REMOTE_NODE
0004
Basculement vers l’état Arrêté.
(transition B)
START_REMOTE_NODE
0005
Basculement vers l’état Opérationnel.
(transition A)
RESET_NODE
0006
Basculement vers l’état Réinitialiser
l’application. Chargement des
données enregistrées des profils
d’appareil et basculement
automatique vers l’état Préopérationnel via la commande de
réinitialisation de la communication.
(transition D)
RESET_COMMUNICATION
0007
Basculement vers l’état Réinitialiser la
communication. Chargement des
données enregistrées du profil de
communication et basculement
automatique vers l’état Préopérationnel.
(transition E)
33
Blocs fonction de gestion de réseau
Enumérateur
Valeur (hex.) Description
ENTER_PRE_OPERATIONAL
007F
Basculement vers l’état Préopérationnel.
(transition C)
ALL_EXCEPT_NMT_AND_SENDER
0800
Non mise en œuvre (paramètre non
valide)
Exemple
L’exemple suivant montre comment envoyer une commande de réinitialisation de
nœud au nœud CANopen 5 connecté à la première interface de bus CAN avec un
timeout de 1 s (1000 ms). La commande est envoyée lorsque la variable booléenne
EN_ResetNode est réglée sur la valeur TRUE (par l’utilisateur connecté ou par
l’application). La commande EN_ResetNode reprend la valeur FALSE lorsque
l’exécution se termine avec succès (sortie CONFIRM = TRUE) ou lorsqu’une erreur
est détectée (sortie ERROR <> 0).
34
EIO0000000496 06/2011
Blocs fonction de gestion de réseau
4.2
CIA405.RECV_EMCY : scrutation des messages
EMCY
Scrutation des messages EMCY
Description du bloc fonction
Le bloc fonction CIA405.RECV_EMCY scrute les stockages de messages d’urgence
(EMCY) dans une boucle sur tous les appareils CANopen existants et renvoie les
messages EMCY trouvés.
Lorsque ce bloc fonction est activé, la scrutation des stockages EMCY démarre à
partir du point d’arrêt de la précédente scrutation :
 Si un message EMCY différent de Aucune erreur est trouvé, la scrutation s’arrête
à ce point et le bloc fonction renvoie le message EMCY ainsi que l’ID de nœud
de l’appareil associé.
 En cas de détection d’un message EMCY Aucune erreur qui était auparavant
différent de Aucune erreur, la scrutation s’arrête à ce point et le bloc fonction
renvoie le message EMCY 0 ainsi que le ID de nœud de l’appareil associé.
 Si aucun message EMCY n’est différent de Aucune erreur et qu’aucun nouveau
message EMCY Aucune erreur n’est trouvé pendant une scrutation complète, le
bloc fonction renvoie le message EMCY 0 ainsi que l’ID de nœud d’appareil 0.
Représentation graphique
EIO0000000496 06/2011
35
Blocs fonction de gestion de réseau
Description des variables de sortie
Sortie
Type de données
Description
DEVICE
DEVICE (USINT)
ID de nœud de l’appareil CANopen associé au
message EMCY renvoyé.
0 = Aucun message EMCY trouvé
1 à 127 = ID de nœud de l’appareil
ERRORINFO
Dernier message EMCY reçu de l’appareil
CS.EMCY_ERROR. Pour
associé à l’ID de nœud DEVICE.
plus d’informations,
reportez-vous à la section
sur la structure
CS.EMCY_ERROR
(voir page 38).
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
36
EIO0000000496 06/2011
Blocs fonction de gestion de réseau
4.3
CIA405.RECV_EMCY_DEV : réception du message
EMCY de l’appareil
Extraction du message EMCY d’appareil
Description du bloc fonction
Le bloc fonction CIA405.RECV_EMCY_DEV renvoie le dernier message d’urgence
(EMCY) stocké, envoyé par un appareil CANopen donné.
Représentation graphique
Description des variables d’entrée
Entrée
Type
Description
DEVICE
DEVICE(USINT)
ID de nœud de l’appareil CANopen à
contrôler.
0 (valeur par défaut) = appareil local
(contrôleur)
1 à 127 = ID de nœud de l’appareil
Sortie
Type
Description
ERRORINFO
CS.EMCY_ERROR. (Voir Dernier message EMCY reçu de l’appareil
associé à l’ID de nœud DEVICE.
ci-dessous pour les
détails.)
Description des variables de sortie
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
EIO0000000496 06/2011
37
Blocs fonction de gestion de réseau
Structure CS.EMCY_ERROR
La structure CS.EMCY_ERROR est associée au contenu du message EMCY
(consultez le guide CANopen de votre appareil pour plus d’informations sur le
contenu du message EMCY). La structure CS.EMCY_ERROR contient les éléments
suivants :
Elément
Type
Description
EMCY_ERROR_CODE
WORD
Code d’erreur du message EMCY
ERROR_REGISTER
BYTE
Registre d’erreur (champ de bit) du
message EMCY
ERROR_FIELD
ARRAY [1...5]OF
BYTE
Champ d’erreur (propre au fabricant de
l’appareil) du message EMCY
NOTE : cette structure est déclarée dans la bibliothèque de la pile CANopen CAA
(namespace = CS). C’est la raison pour laquelle son nom complet est utilisé
(<namespace>.<type de données>). Le namespace de la bibliothèque CAA CiA 405
est CIA405.
38
EIO0000000496 06/2011
SoMachine
Blocs fonction d’ID de nœud personnel
EIO0000000496 06/2011
Blocs fonction d’ID de nœud
personnel
5.1
5
CIA405.GET_LOCAL_NODE_ID : obtention de l’ID
de nœud CANopen du contrôleur
Extraction de l’ID de nœud CANopen de l’automate
Description du bloc fonction
Le bloc fonction CIA405.GET_LOCAL_NODE_ID renvoie l’ID de nœud CANopen du
contrôleur sur l’interface de bus CAN spécifiée.
Représentation graphique
Description des variables de sortie
Sortie
Type
Description
DEVICE
DEVICE
(USINT)
ID de nœud CANopen du contrôleur.
0 = non valide
1 à 127 = ID de nœud du contrôleur
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
EIO0000000496 06/2011
39
Blocs fonction d’ID de nœud personnel
40
EIO0000000496 06/2011
SoMachine
Blocs fonction d’état de requête
EIO0000000496 06/2011
Blocs fonction d’état de requête
6
Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Souschapitre
EIO0000000496 06/2011
Sujet
Page
6.1
CIA405.GET_CANOPEN_KERNEL_STATE : obtention de l’état
du noyau CANopen
42
6.2
CIA405.GET_STATE : obtention de l’état de l’appareil
CANopen
43
41
Blocs fonction d’état de requête
6.1
CIA405.GET_CANOPEN_KERNEL_STATE :
obtention de l’état du noyau CANopen
Extraction de l’état du noyau CANopen
Description du bloc fonction
Le bloc fonction CIA405.GET_CANOPEN_KERNEL_STATE renvoie l’état courant du
noyau CANopen du contrôleur.
Représentation graphique
Description des variables de sortie
Sortie
Type
Description
STATE
CANOPEN_KERNEL_ERROR
(Pour plus de détails, reportezvous à la section Codes d’erreur
détectée du noyau CANopen
(voir page 28).)
Etat courant du noyau CANopen du
contrôleur
DEVICE
DEVICE
(USINT)
ID de nœud CANopen du contrôleur.
0 = non valide
1 à 127 = ID de nœud du contrôleur
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
42
EIO0000000496 06/2011
Blocs fonction d’état de requête
6.2
CIA405.GET_STATE : obtention de l’état de
l’appareil CANopen
Extraction de l’état d’appareil CANopen
Description du bloc fonction
Le bloc fonction CIA405.GET_STATE renvoie l’état NMT courant de l’appareil
CANopen spécifié si le service Heartbeat ou NodeGuarding est actif.
Représentation graphique
Description des variables d’entrée
Entrée
Type
Description
DEVICE
DEVICE
(USINT)
ID de nœud de l’appareil CANopen à contrôler.
0 (valeur par défaut) = appareil local (contrôleur)
1 à 127 = ID de nœud de l’appareil
Description des variables de sortie
Sortie
Type
Description
STATE
DEVICE_STATE
(Voir ci-dessous pour
les détails.)
Etat NMT de l’appareil CANopen.
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
CIA405.DEVICE_STATE ENUM
Le type énuméré CIA405.DEVICE_STATE contient la liste des états NMT d’appareil
CANopen.
EIO0000000496 06/2011
43
Blocs fonction d’état de requête
Enumérateur
Valeur
Description
INIT
0
Etat d’initialisation
RESET_COMM
1
Etat de réinitialisation de la communication
RESET_APP
2
Etat de réinitialisation de l’application
PRE_OPERATIONAL
3
Etat pré-opérationnel
STOPPED
4
Etat arrêté
OPERATIONAL
5
État opérationnel
UNKNOWN
6
Etat NMT inconnu
Le service NodeGuarding ou Heartbeat n’est pas
actif sur l’appareil sélectionné ou le contrôleur n’est
pas le consommateur Hearbeat.
NOT_AVAIL
7
Etat NMT indisponible
Le service NodeGuarding ou Heartbeat est actif sur
l’appareil sélectionné, mais ce dernier ne signale pas
son état NMT correctement avant le timeout.
Exemple
L’exemple suivant montre comment obtenir l’état du nœud CANopen 5 connecté à
la première interface de bus CAN avec un timeout de 1 s (1000 ms). La fonction
CIA405.GET_STATE est exécutée automatiquement pour une lecture continue de
l’état. L’état NMT de l’appareil est copié dans la variable DeviceState de type
CIA405.DEVICE_STATE.
44
EIO0000000496 06/2011
SoMachine
Blocs fonction d’accès SDO
EIO0000000496 06/2011
Blocs fonction d’accès SDO
7
Contenu de ce chapitre
Ce chapitre contient les sous-chapitres suivants :
Souschapitre
EIO0000000496 06/2011
Sujet
Page
7.1
CIA405.SDO_READ : lecture d’objets CANopen de toute taille
46
7.2
CIA405.SDO_READ4 : lecture d’objets CANopen d’au
maximum 4 octets
49
7.3
CIA405.SDO_WRITE : écriture d’objets CANopen de toute
taille
52
7.4
CIA405.SDO_WRITE4 : écriture d’objets CANopen d’au
maximum 4 octets
57
45
Blocs fonction d’accès SDO
7.1
CIA405.SDO_READ : lecture d’objets CANopen de
toute taille
Lecture d’objets CANopen de toute taille
Description du bloc fonction
Le bloc fonction CIA405.SDO_READ permet de lire un objet CANopen de taille
quelconque d’un appareil donné via des messages SDO.
Ces paramètres doivent être transmis au bloc fonction :
 ID de nœud de l’appareil
 Canal client/serveur SDO (par défaut, un seul canal est défini.)
 Index/sous-index de l’objet CANopen
 Pointeur désignant le tampon de données dans lequel les valeurs d’objet seront
stockées.
 Taille maximale du tampon
Le bloc fonction renvoie la taille de l’objet lu si la lecture est déroulée sans problème.
Les données sont disponibles dans le tampon de données.
NOTE : si la taille de l’objet à lire est inférieure ou égale à 4 octets, utilisez le bloc
fonction CIA405.SDO_READ4.
Représentation graphique
46
EIO0000000496 06/2011
Blocs fonction d’accès SDO
Description des variables d’entrée
Entrée
Type
Description
DEVICE
DEVICE
(USINT)
ID de nœud de l’appareil CANopen.
0 (valeur par défaut) = appareil local
(contrôleur)
1 à 127 = ID de nœud de l’appareil
CHANNEL
USINT
Numéro du canal SDO.
Valeur par défaut = 1
INDEX
WORD
Index de l’objet.
Plage : 0000 hex à FFFF hex
SUBINDEX
BYTE
Sous-index de l’objet.
Plage : 00 hex à FF hex
DATA
POINTER TO BYTE
Adresse du tampon de données qui reçoit les
données lues dans l’objet de l’appareil.
Utilisez la fonction standard ADR pour définir
le pointeur associé.
Description des variables de sortie
Sortie
Type
Description
ERRORINFO
SDO_ERROR
(UDINT)
Lorsque la sortie ERROR est égale à 1, le bloc
fonction renvoie le contenu du message
d’annulation SDO (4 octets).
Description des variables d’entrée/sortie
Entrée/sortie
Type
Description
DATALENGTH
UINT
En entrée : taille du tampon de données (en
octets).
NOTE : pour s’assurer que l’entrée DATALENGTH
est correctement initialisée (l’exécution du bloc
fonction débutant sur le front montant de l’entrée
ENABLE) avec la taille du tampon de données,
utilisez la fonction standard SIZEOF.
En sortie : taille de l’objet lu (en octets).
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
EIO0000000496 06/2011
47
Blocs fonction d’accès SDO
Exemple
L’exemple suivant montre comment lire l’index d’objet 203C hex/sous-index 02 hex
du nœud CANopen 5 connecté à la première interface de bus CAN avec un timeout
de 1 s (1000 ms). L’instance de bloc fonction CIA405.SDO_READ (ReadObject) est
automatiquement exécutée pour une lecture en continu.
La variable DataSize (type UINT) :
est initialisée avec la taille du tampon de données (DataBuffer : tableau de
N octets) lorsque l’entrée ENABLE du bloc fonction a pour valeur FALSE, avant
de lancer l’exécution suivante.
 contient la taille des données lues (en octets) sur le front montant de la sortie
CONFIRM du bloc fonction (l’exemple ne montre pas comment extraire la valeur
du tampon de données ni comment gérer les détections d’erreur).

48
EIO0000000496 06/2011
Blocs fonction d’accès SDO
7.2
CIA405.SDO_READ4 : lecture d’objets CANopen
d’au maximum 4 octets
Lecture d’objets CANopen d’au maximum 4 octets
Description du bloc fonction
Le bloc fonction CIA405.SDO_READ4 permet de lire un objet CANopen d’une taille
maximale de 4 octets, d’un équipement donné via un message SDO.
Ces paramètres doivent être transmis au bloc fonction :
 ID de nœud de l’équipement
 Canal client/serveur SDO (par défaut, un seul canal est défini.)
 Index/sous-index de l’objet CANopen
Le bloc fonction renvoie la taille de l’objet lu si la lecture s’est déroulée sans
problème. Les données sont disponibles dans un tableau de 4 octets.
Représentation graphique
Description des variables d’entrée
EIO0000000496 06/2011
Entrée
Type
Description
DEVICE
DEVICE
(USINT)
ID de nœud de l’équipement CANopen.
0 (valeur par défaut) = équipement local
(contrôleur)
1 à 127 = ID de nœud de l’équipement
CHANNEL
USINT
Numéro du canal SDO.
Valeur par défaut = 1
INDEX
WORD
Index de l’objet.
Plage : 0000 hex à FFFF hex
SUBINDEX
BYTE
Sous-index de l’objet.
Plage : 00 hex à FF hex
49
Blocs fonction d’accès SDO
Description des variables de sortie
Sortie
Type
Description
DATA
ARRAY [1..0,4]OF
BYTE
Tableau de données qui reçoit les données
lues dans l’objet de l’équipement.
DATALENGTH
USINT
Taille de l’objet lu (en octets).
ERRORINFO
SDO_ERROR
(UDINT)
Lorsque la sortie ERROR est égale à 1, le
bloc fonction renvoie le contenu du
message d’annulation SDO (4 octets).
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
Le tableau suivant montre la taille de l’objet en fonction du contenu du tableau
DATA.
Taille de l’objet
Exemple
DATALENGTH
DATA(1)
DATA(2)
DATA(3)
DATA(4)
1 octet
01 hex
1
01 hex
non
significatif
non
significatif
non
significatif
2 octets
01 23 hex
2
LSB
23 hex
MSB
01 hex
non
significatif
non
significatif
3 octets
01 23 45 hex
3
LSB
45 hex
23 hex
MSB
01 hex
non
significatif
4 octets
01 23 45 67 hex
4
LSB
67 hex
45 hex
23 hex
MSB
01 hex
LSB = octet de poids faible
MSB = Octet de poids fort
Exemple
L’exemple suivant montre comment lire l’index d’objet 203C hex/sous-index 02 hex
du nœud CANopen 5 connecté à la première interface de bus CAN avec un timeout
de 1 s (1000 ms). L’instance de bloc fonction CIA405.SDO_READ4 (Read4Object)
est automatiquement exécutée pour une lecture en continu. La variable
DataBuffer (tableau de 4 octets) contient la valeur des dernières données lues.
La variable DataSize (type USINT) contient la taille (4 octets au maximum) des
dernières données lues. Cet exemple ne montre pas comment gérer les détections
d’erreur.
50
EIO0000000496 06/2011
Blocs fonction d’accès SDO
EIO0000000496 06/2011
51
Blocs fonction d’accès SDO
7.3
CIA405.SDO_WRITE : écriture d’objets CANopen
de toute taille
Ecriture d’objets CANopen de toute taille
Description du bloc fonction
Le bloc fonction CIA405.SDO_WRITE permet d’écrire un objet CANopen de taille
quelconque d’un équipement donné via des messages SDO.
Ces paramètres doivent être transmis au bloc fonction :
 ID de nœud de l’équipement
 Canal client/serveur SDO (par défaut, un seul canal est défini.)
 Index/sous-index de l’objet CANopen
 Mode SDO (définit le mode de transmission des données ; reportez-vous à la
section Type énuméré SDO_MODE pour plus de détails (voir page 54).)
 Pointeur désignant le tampon de données dans lequel les valeurs d’objet à écrire
sont stockées.
 Nombre d’octets à écrire.
NOTE : si la taille de l’objet à écrire est égale ou inférieure à 4 octets, utilisez le bloc
fonction CIA405.SDO_WRITE4.
Représentation graphique
52
EIO0000000496 06/2011
Blocs fonction d’accès SDO
Description des variables d’entrée
Entrée
Type
Description
DEVICE
DEVICE
(USINT)
ID de nœud de l’équipement CANopen.
0 (valeur par défaut) = équipement local
(contrôleur)
1 à 127 = ID de nœud de l’équipement
CHANNEL
USINT
Numéro du canal SDO.
Valeur par défaut = 1
INDEX
WORD
Index de l’objet.
Plage : 0000 hex à FFFF hex
SUBINDEX
BYTE
Sous-index de l’objet.
Plage : 00 hex à FF hex
MODE
SDO_MODE
(Voir ci-dessous pour
les détails.)
Mode de transmission des données.
0 (valeur par défaut) = AUTO pour une
sélection automatique du mode
DATA
POINTER TO BYTE
Adresse du tampon de données dans lequel
les valeurs d’objet à écrire sont stockées.
Utilisez la fonction standard ADR pour définir
le pointeur associé.
DATALENGTH
UINT
Taille de l’objet à écrire (en octets).
NOTE : utilisez la fonction SIZEOF pour définir
la taille du tampon de données.
Description des variables de sortie
Sortie
Type
Description
ERRORINFO
SDO_ERROR
(UDINT)
Lorsque la sortie ERROR est égale à 1, le bloc
fonction renvoie le contenu du message
d’annulation SDO (4 octets).
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
EIO0000000496 06/2011
53
Blocs fonction d’accès SDO
Type énuméré CIA405.SDO_MODE
Le type énuméré CIA405.SDO_MODE contient la liste des modes de transmission
SDO.
Enumérateur
Valeur
Description
AUTO
0
Sélection automatique du mode.
EXPEDITED
1
Mode SDO accéléré pour les données d’une taille maximale
de 4 octets.
Les données sont envoyées dans une seule requête SDO.
SEGMENTED
2
Mode SDO segmenté pour les données d’une taille supérieure
à 4 octets.
Les données sont découpées en segments de 7 octets,
envoyés par des requêtes de SDO acquittées consécutives.
BLOCK
3
Mode Bloc de SDO pour les données d’une taille supérieure à
4 octets.
Les données envoyés par des trames consécutives sont
découpées en blocs de 7 octets non acquittés. Un
acquittement est envoyé par le récepteur une fois tous les
blocs reçus.
NOTE : votre équipement peut ne pas prendre en charge ce
mode de transmission plus rapide, car il n’a été introduit que
très récemment dans le profil CANopen.
Exemple
Exemple de programme en langage ST pour lire et écrire des données sur des
équipements CANopen :
Un ATV71 est déclaré à l’adresse de nœud 1.
Un ATV31 est déclaré à l’adresse de nœud 2.
Les données à écrire ou à lire sont les suivantes :
INDEX:=16#203C ,
SUBINDEX:=2 ,
La valeur écrite (SDOWrite_data) est une rampe de 0 à 500 incrémentée à chaque
cycle.
PROGRAM Read_Write_SDO
VAR
WriteSDO_ATV71 : CIA405.SDO_WRITE;
WriteSDO_ATV31 : CIA405.SDO_WRITE;
ReadSDO_ATV31 : CIA405.SDO_READ;
SDOWrite_data : UINT;
54
EIO0000000496 06/2011
Blocs fonction d’accès SDO
SDORead_data : UINT;
ReadSDO_datalength : UINT:=2;
start_test : BOOL;
END_VAR
IF start_test THEN
WriteSDO_ATV31(
NETWORK:= ,
ENABLE:= NOT (WriteSDO_ATV31.CONFIRM OR
(WriteSDO_ATV31.ERROR<>0)) ,
TIMEOUT:= ,
DEVICE:=2 ,
CHANNEL:= ,
INDEX:=16#203C ,
SUBINDEX:=2 ,
MODE:= ,
DATA:=ADR(SDOWrite_data) ,
DATALENGTH:=2 ,
CONFIRM=> ,
ERROR=> ,
ERRORINFO=> );
ReadSDO_ATV31(
NETWORK:= ,
ENABLE:=NOT (ReadSDO_ATV31.CONFIRM OR
(ReadSDO_ATV31.ERROR<>0)) ,
TIMEOUT:= ,
DEVICE:=1 ,
CHANNEL:= ,
INDEX:=16#203C ,
SUBINDEX:=2 ,
DATA:=ADR(SDORead_data) ,
DATALENGTH:=ReadSDO_datalength ,
CONFIRM=> ,
ERROR=> ,
EIO0000000496 06/2011
55
Blocs fonction d’accès SDO
ERRORINFO=> );
WriteSDO_ATV71(
NETWORK:= ,
ENABLE:= NOT (WriteSDO_ATV71.CONFIRM OR
(WriteSDO_ATV71.ERROR<>0)) ,
TIMEOUT:= ,
DEVICE:=1 ,
CHANNEL:= ,
INDEX:=16#203C ,
SUBINDEX:=2 ,
MODE:= ,
DATA:=ADR(SDOWrite_data) ,
DATALENGTH:=2 ,
CONFIRM=> ,
ERROR=> ,
ERRORINFO=> );
IF SDOWrite_data<500
THEN SDOWrite_data:=SDOWrite_data+1;
ELSE SDOWrite_data:=0;
END_IF
END_IF
56
EIO0000000496 06/2011
Blocs fonction d’accès SDO
7.4
CIA405.SDO_WRITE4 : écriture d’objets CANopen
d’au maximum 4 octets
Ecriture d’objets CANopen d’au maximum 4 octets
Description du bloc fonction
Le bloc fonction CIA405.SDO_WRITE4 permet d’écrire un objet CANopen d’une
taille maximale de 4 octets, d’un appareil donné via des messages SDO.
Ces paramètres doivent être transmis au bloc fonction :
 ID de nœud de l’appareil
 Canal client/serveur SDO (par défaut, un seul canal est défini.)
 Index/sous-index de l’objet CANopen
 Valeurs à écrire
 Nombre d’octets à écrire (taille de l’objet)
Représentation graphique
Description des variables d’entrée
EIO0000000496 06/2011
Entrée
Type
Description
DEVICE
DEVICE
(USINT)
ID de nœud de l’appareil CANopen.
0 (valeur par défaut) = appareil local
(contrôleur)
1 à 127 = ID de nœud de l’appareil
CHANNEL
USINT
Numéro du canal SDO.
Valeur par défaut = 1
INDEX
WORD
Index de l’objet.
Plage : 0000 hex à FFFF hex
57
Blocs fonction d’accès SDO
Entrée
Type
Description
SUBINDEX
BYTE
Sous-index de l’objet.
Plage : 00 hex à FF hex
DATA
ARRAY [1..0,4]OF
BYTE
Tableau de données dans lequel les valeurs
d’objet à écrire sont stockées.
DATALENGTH
USINT
Taille de l’objet à écrire (en octets).
Sortie
Type
Description
ERRORINFO
SDO_ERROR
(UDINT)
Lorsque la sortie ERROR est égale à 1, le
bloc fonction renvoie le contenu du
message d’annulation SDO (4 octets).
Description des variables de sortie
NOTE : pour une description des E/S communes et du comportement d’exécution
des blocs fonction, reportez-vous au chapitre Comportement et E/S communes des
blocs fonction (voir page 25).
Le tableau suivant montre la taille de l’objet en fonction du contenu du tableau
DATA.
Taille de l’objet
Exemple
DATALENGTH
DATA(1)
DATA(2)
DATA(3)
DATA(4)
1 octet
01 hex
1
01 hex
non
significatif
non
significatif
non
significatif
2 octets
01 23 hex
2
LSB
23 hex
MSB
01 hex
non
significatif
non
significatif
3 octets
01 23 45 hex
3
LSB
45 hex
23 hex
MSB
01 hex
non
significatif
4 octets
01 23 45 67 hex
4
LSB
67 hex
45 hex
23 hex
MSB
01 hex
LSB = octet de poids faible
MSB = Octet de poids fort
58
EIO0000000496 06/2011
SoMachine
Glossaire
EIO0000000496 06/2011
Glossaire
C
CAN
Abréviation de Controller Area Network. Bus série pour système de contrôle
embarqué.
CANopen
Protocole CAN de haut niveau, normalisé à l’échelle internationale (EN 50325-4)
pour système de contrôle embarqué.
CiA
Acronyme de CAN in Automation. Regroupement de fabricants et d’utilisateurs qui
œuvre au développemnt et à l’adoption du protocole CANopen et d’autres
protocoles de haut niveau basé sur ce protocole.
CiA405
Interface et profil d’appareil CANopen pour contrôleurs programmables CEI 611313.
COB
Acronyme désignant un objet de communication du protocole CANopen.
E
E/S
Entrée/sortie
EIO0000000496 06/2011
59
Glossaire
EDS
Abréviation d’Electronic Data Sheet. Format de fichier décrivant un appareil de bus
de terrain.
EMCY
Abréviation d’Emergency, signifiant urgence.
H
hex
Abréviation de hexadécimal.
I
ID
Identificateur
M
ms
Abréviation de milliseconde.
N
NMT
Abréviation de Network Management, signifiant gestion de réseau CANopen.
O
OD
Abréviation d’Object Dictionnary. Dictionnaire d’objets du protocole CANopen.
60
EIO0000000496 06/2011
Glossaire
P
PDO
Abréviation de Process Data Object, désignant un objet de données de process
utilisé par le protocole CANopen.
Protocol
Ensemble de règles utilisées par des appareils pour communiquer les uns avec les
autres sur un réseau.
S
SDO
Abréviation de Service Data Object, désignant un objet de données de service
utilisé par protocole CANopen.
EIO0000000496 06/2011
61
Glossaire
62
EIO0000000496 06/2011
SoMachine
Index
EIO0000000496 06/2011
B
AC
Index
B
Bloc fonction
GET_CANOPEN_KERNEL_STATE, 42
GET_LOCAL_NODE_ID, 39
GET_STATE, 43
NMT, 32
RECV_EMCY, 35
RECV_EMCY_DEV, 37
Blocs fonction d’accès SDO
CIA405.SDO_READ : lecture d’objets
CANopen de toute taille, 46
CIA405.SDO_READ4 : lecture d’objets
CANopen d’au maximum 4 octets, 49
CIA405.SDO_WRITE : écriture d’objets
CANopen de toute taille, 52
CIA405.SDO_WRITE4 : écriture d’objets
CANopen d’au maximum 4 octets, 57
Blocs fonction d’état de requête
CIA405.GET_CANOPEN_KERNEL_ST
ATE : obtention de l’état du noyau CANopen, 42
CIA405.GET_STATE : obtention de l’état
de l’appareil CANopen, 43
Blocs fonction d’ID de nœud personnel
CIA405.GET_LOCAL_NODE_ID : obtention de l’ID de nœud CANopen du
contrôleur, 39
Blocs fonction de gestion de réseau
CIA405.NMT : gestion de l’état NMT des
appareils, 32
CIA405.RECV_EMCY : scrutation des
EIO0000000496 06/2011
messages EMCY, 35
CIA405.RECV_EMCY_DEV : réception
du message EMCY de l’appareil, 37
C
CANOPEN_KERNEL_ERROR_CODES
Liste de variables globales, 28
Comportement et E/S communes des blocs
fonction
comportement et E/S communes, 25
D
Description des blocs fonction, 23
blocs fonction d’accès SDO, 45
blocs fonction d’état de requête, 41
blocs fonction d’ID de nœud personnel,
39
blocs fonction de gestion de réseau, 31
Comportement et E/S communes des
blocs fonction, 25
DEVICE_STATE
Variables de sortie, 43
E
EMCY_ERROR
Variables de sortie, 38
63
Index
G
GET_CANOPEN_KERNEL_STATE
Bloc fonction, 42
GET_LOCAL_NODE_ID
Bloc fonction, 39
GET_STATE
Bloc fonction, 43
I
Introduction, 9
Introduction à CiA405, 21
Introduction au protocole CANopen, 11
L
Liste de variables globales
CANOPEN_KERNEL_ERROR_CODES
, 28
N
NMT
Bloc fonction, 32
R
RECV_EMCY
Bloc fonction, 35
RECV_EMCY_DEV
Bloc fonction, 37
T
TRANSITION_STATE
Variables d’entrée, 32
V
Variables d’entrée
TRANSITION_STATE, 32
Variables de sortie
DEVICE_STATE, 43
EMCY_ERROR, 38
64
EIO0000000496 06/2011

Manuels associés