Schneider Electric SoMachine - Fonctions de gestion CANopen Mode d'emploi
Ajouter à Mes manuels64 Des pages
▼
Scroll to page 2
of
64
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 [email protected] 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