Accès aux SDO CANopen
(Traduction du document original anglais)
Présentation
Les fonctions de communication READ_VAR et WRITE_VAR permettent d'accéder au transfert des données CANopen de type SDO. Les paramètres de ces fonctions déterminent l'action effectuée.
Ces services sont basés sur le traitement des messages de CMS (système de gestion de contenus) standard CANopen. Pour plus d'informations sur les formats de SDO utilisés, consultez la documentation des esclaves CANopen.
ATTENTION
COMPORTEMENT IMPREVU DE L'APPLICATION
Ne procédez pas à l'envoi et à la réception simultanées de SDO.
Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels.
Si des SDO sont envoyés et reçus simultanément, le SDO suivant risque de ne pas être traité. Dans ce cas, effectuez un redémarrage à froid à l'aide du bouton RESET du processeur pour réinitialiser l'application et repasser en mode de fonctionnement normal.
Représentation
Représentation en FBD :
Représentation en LD :
Représentation en ST :
La syntaxe de la fonction de communication est la suivante :
WRITE_VAR(ADDR('0.m.1.SYS'), 'SDO', index:subindex, NodeID, %MWi:L, %MWk:4)
READ_VAR(ADDR('0.m.1.SYS'), 'SDO', index:subindex, NodeID, %MWk:4, %MWi:L)
Description des paramètres de la fonction WRITE_VAR
La syntaxe de la fonction de communication est la suivante :
Le tableau suivant décrit les différents paramètres de la fonction  :
Paramètre
Description
ADDR('0.m.1.SYS')
Adresse de l'entité destinataire de l'échange :
  • m : emplacement du processeur dans le rack (0 ou 1)
  • 1 : voie (toujours 1)
  • SYS : serveur UNI-TE de la carte PCMCIA
'SDO'
Type d'objet SDO (toujours SDO en majuscules)
subindex:index
Mot double ou valeur immédiate identifiant l'index ou le sous-index du SDO CANopen :
Le mot de poids fort du mot double contient le sous-index, tandis que le mot de poids faible contient l'index.
Exemple : si vous utilisez le mode double %MD0 :
  • %MW0 : contient l'index.
  • %MW1 : contient le sous-index.
NodeID
Mot ou valeur identifiant l'équipement destinataire sur le bus CANopen
%MWi:L
Tableau de mots contenant les données à envoyer (longueur minimale = 1)
%MWk:4
Paramètres de gestion des échanges : quatre mots identifiant l'adresse des données utilisées pour contrôler la fonction WRITE_VAR
Description des paramètres de la fonction READ_VAR
La syntaxe de la fonction de communication est la suivante :
Le tableau suivant décrit les différents paramètres de la fonction  :
Paramètre
Description
ADDR('0.m.1.SYS')
Adresse de l'entité destinataire de l'échange :
  • m : emplacement du processeur dans le rack (0 ou 1)
  • 1 : voie (toujours 1)
  • SYS : serveur UNI-TE de la carte PCMCIA
'SDO'
Type d'objet SDO (toujours SDO en majuscules)
subindex:index
Mot double ou valeur immédiate identifiant l'index ou le sous-index du SDO CANopen :
Le mot de poids fort du mot double contient le sous-index, tandis que le mot de poids faible contient l'index.
Exemple : si vous utilisez le mode double %MD0 :
  • %MW0 : contient l'index.
  • %MW1 : contient le sous-index.
NodeID
Mot ou valeur identifiant l'équipement destinataire sur le bus CANopen
%MWk:4
Paramètres de gestion des échanges : quatre mots identifiant l'adresse des données utilisées pour contrôler la fonction READ_VAR
%MWi:L
Tableau de mots contenant les données à recevoir (longueur minimale = 1)
Paramètres de gestion
Les paramètres de gestion sont regroupés dans un tableau de quatre entiers. Les valeurs contenues dans ce tableau permettent de gérer les fonctions de communication. Elles sont détectées par le processeur qui a exécuté la fonction.
Le tableau suivant décrit en détail les mots %MWk.
Numéro du mot
Octet de poids fort
Octet de poids faible
Données gérées par
%MWk
Numéro de l'échange
Bit d'activité
Le système
%MWk+1
Rapport d'opération
Rapport de communication
%MWk+2
Timeout
Vous
%MWk+3
Longueur en octets :
  • Pour une fonction WRITE_VAR, initialisez ce mot avec le nombre d'octets à envoyer, à chaque fois, avant d'envoyer la fonction WRITE_VAR.
  • Pour une fonction READ_VAR, lorsque la requête est terminée, ce mot contient le nombre de caractères reçus dans le tableau de mots des données reçues.
NOTE : une fonction peut détecter une erreur de paramètre avant d'activer l'échange. Le bit d'activité reste à 0 et le rapport de communication est initialisé avec les valeurs correspondant à l'erreur détectée.
Le tableau suivant décrit la signification des valeurs du mot %MWk+1 :
Numéro du mot
Rapport d'opération
Rapport de communication
%MWk+1
Ces codes concernent les services CANopen sur une application distante.
16#00 : résultat positif
16#01 : requête non traitée
16#02 : réponse incorrecte
16#03 : réservé
Ces codes concernent les blocs fonction READ_VAR, WRITE_VAR et SEND_REQ sur une application distante.
Ce rapport n'est pertinent que si le bit d'activité passe de 1 à 0.
16#00 : échange de message correct
16#00
16#01 : échange arrêté suite à un timeout
16#02 : échange arrêté suite à une demande de l'utilisateur (CANCEL)
16#03 : format d'adresse incorrect
16#04 : format de cible incorrect
16#05 : format incorrect du paramètre de gestion
16#06 : paramètre incorrect
16#07 : problème lors de l'envoi à la cible
16#08 : réservé
16#09 : taille insuffisante du tampon de réception
16#0A : taille insuffisante du tampon d'émission
16#0B : aucune ressource système : le nombre d'EF de communication simultanées dépasse le nombre maximum autorisé par le processeur
16#0C : numéro d'échange incorrect
16#0D : aucun télégramme reçu
16#0E : longueur incorrecte
16#0F : service de télégramme non configuré
16#10 : module de réseau manquant
16#11 : requête manquante
16#12 : serveur d'application déjà actif
16#13 : numéro de transaction UNI-TE incorrect
%MWk+1
16#01 : aucune ressource vers le processeur
16#02 : aucune ressource de ligne
15#03 : aucun équipement ou équipement sans ressourceRemarque : ce code n'est pris en charge que par les cartes PCMCIA TSX FPP 10 et TSX FPP 20.
16#04 : erreur de ligne détectée
16#05 : erreur de longueur détectée
16#06 : voie de communication inopérante
16#07 : erreur d'adressage détectée
16#08 : erreur d'application détectée
16#0B : aucune ressource système : le nombre d'EF de communication simultanées dépasse le nombre maximum autorisé par le processeur
16#0C : fonction de communication non active
16#0D : destination manquante
16#0F : problème de routage entre des stations ou voie non configurée
16#11 : format d'adresse incorrect
16#12 : aucune ressource cible
16#14 : connexion inopérante (par exemple : TCP/IP Ethernet)
16#15 : aucune ressource sur la voie locale
16#16 : accès non autorisé (par exemple : TCP/IP Ethernet)
16#17 : configuration incohérente du réseau (par exemple : TCP/IP Ethernet)
16#18 : connexion temporairement indisponible
16#21 : serveur d'application arrêté
16#30 : erreur d'émission détectée
16#FF : message refusé