Home >Industrial IoT>Industrial IoT
Guide de communication CANopen

Le CANopen possède deux modes de communication : SDO et PDO. Le SDO est envoyé par le maître pour lire les informations de l'esclave ou pour configurer le mode de fonctionnement du PDO de l'esclave. Lorsque l'esclave reçoit le message, il doit répondre.

Le PDO fonctionne en mode producteur-consommateur : une fois le message envoyé, aucune réponse n’est nécessaire, et un message peut avoir plusieurs consommateurs. Après être passé en mode opérationnel, l'esclave envoie des messages PDO périodiquement selon les paramètres de communication configurés ou déclenche l'envoi de PDO par événement. Si la fonction SYNC est configurée, l'esclave enverra un PDO après réception d'un nombre spécifié de trames de synchronisation. Le maître peut également envoyer des messages PDO.

Configuration et état de l’appareil

Réglez le commutateur DIP de l’appareil CANopen IO de Guangcheng pour définir le numéro de nœud sur 2 et le débit de transmission sur 10k. Après la mise sous tension de l’appareil, celui-ci enverra au maître deux trames avec l’ID 0x700 + NOD_ID, dont les données sont respectivement « 00 » (indiquant que l’appareil est en état d’initialisation) et « 7F » (indiquant que l’appareil est en état de pré-opération).

En mode pré-opération, dans ECanTools, sélectionnez l'option CANopen, ajoutez l'ID de l'esclave à 2, puis choisissez l'option NMT « start remote node » et envoyez la commande NMT. À ce moment, l’hôte envoie une trame avec ID 000 et données « 01 » (état opérationnel) et « 02 » (nœud 2 ; en cas de diffusion, le nœud serait 00). L'IO de l'esclave au nœud 2 commencera à envoyer une trame PDO avec ID 182 et une longueur de 2 octets. Ces deux octets de données correspondent aux 16 entrées DI ; si une entrée DI est activée, la position correspondante est mise à 1 (cette fonction est spécifique à Guangcheng et non standard dans le protocole CIA301).

Envoi manuel des données

Utiliser un outil CAN pour envoyer manuellement des données produit le même effet.

Configuration du temps d’inhibition de TPDO1

La valeur de l'indice 2000h sous-indice 01h dans le fichier EDS peut modifier le temps d’inhibition de TPDO1 (intervalle minimal entre deux envois de PDO). Pour l’envoi manuel, définissez l’ID de trame sur 602 (fonction SDO + numéro de nœud 2) et le premier octet de données sur 2B pour indiquer l’écriture de deux octets, avec l’octet faible d'abord (l’indice 2000h est donc écrit 0020h et les données 1FF sont écrites 01FF). Après l'envoi, l'esclave répond avec une trame ID 582 dont l'en-tête de données est « 60 », indiquant que l'écriture a réussi. En mode opérationnel, le marquage temporel des données PDO de l’esclave est modifié à 511 µs (soit 1FF). Remarque : dans le protocole CIA301 standard, l’unité de temps d’inhibition est de 100 µs.

Configuration de l'état de sortie des DO

En mode opérationnel de l’esclave, le maître peut envoyer une trame PDO avec ID 0x200 + NOD_ID et une longueur de 2 octets, par exemple « 0F 00 », activant alors les sorties DO de 0 à 3 (avec l’octet faible en premier).


Étant donné que les fonctions PDO de l'appareil Guangcheng sont limitées, voici un exemple de configuration PDO par SDO. Supposons que les données du sous-indice 01 de l’indice 2000 soient mappables, et examinons les valeurs des paramètres COB-ID, de communication et de mappage pour chaque TPDO et RPDO. Le RPDO1 sert à lire les données et configurer les DO, tandis que le RPDO2 peut lire les données TPDO envoyées par le maître avec ID 302, afin de contrôler la fréquence de retour des données TPDO1 (état DI de l'esclave).


Les paramètres configurables des objets de communication sont listés dans le tableau suivant. Notez que les paramètres des objets RPDO et TPDO diffèrent en portée et en signification. Dans cette démonstration, modifiez le COB-ID de l’indice 1401 sous-indice 01 pour le configurer à 302.

Procédez comme suit avec SDO pour écrire dans l'indice de mappage 1601 sous-indice 01 les données 0x20000110 (10 signifie 16 bits de données, sous-indice 01 de l’indice 2000), puis écrivez dans l'indice 00 de 1601 la valeur 01. Si plusieurs adresses sont nécessaires, augmentez le nombre de sous-indices de 1601 et ajustez la valeur de l'indice 00 en conséquence. La somme des données de mappage ne doit pas excéder 8 octets.


Pour la stabilité du système, désactivez le PDO correspondant avant de modifier les objets de communication et de mappage (mettez le bit supérieur du sous-indice 01 à 1) et videz l’indice 00 de l’objet de mappage :



Recommend