Transmission et surveillance CANopen

Introduction

CANopen est un protocole de communication standard ouvert et une spécification de profil d'appareil (EN 50325-4) qui repose sur le protocole CAN (Controller Area Network). Le protocole de "couche 7" a été développé pour les applications réseau intégrées et définit les fonctions de communication et d'équipement pour les systèmes CAN.

CANopen prend en charge les communications cycliques et pilotées par événement, ce qui vous permet de réduire la charge du bus au minimum tout en continuant de bénéficier de brefs temps de réaction.

PDO (Process Data Object)

Les PDO (objets de données de processus) fournissent une interface de communication avec les données de processus et permettent l'échange en temps réel de ces données. L'ensemble des PDO d'un équipement CANopen décrit les échanges implicites entre cet équipement et ses partenaires de communication sur le réseau. Ces échanges sont autorisés lorsque l'équipement est en mode OPERATIONAL.

Il existe deux types de PDO :

  • PDO de transmission (TPDO) : PDO transmis par l'équipement

  • PDO de réception (RPDO) : PDO reçu par l'équipement

Modes de transmission

Le coupleur de bus TM3 CANopen prend en charge trois modes de transmission de PDO :

Type de code de transfert

Mode de transmission

Description

0

Acyclique - Synchrone

Envoyer un PDO lors du premier message SYNC suivant un événement

1-240

Cyclique - Synchrone

Envoyer un PDO tous les x messages SYNC, x pouvant être configuré entre 1 et 240

255 (par défaut)

Asynchrone

Envoyer un PDO en cas d'événement

Deux autres options sont associées aux PDO déclenchés par des événements :

  • Inhibit Time : L'utilitaire Inhibit Time est utilisé pour définir un délai minimum avant la transmission d'un nouveau PDO. Cela évite de surcharger le bus lorsqu'un nombre important d'événements se produisent dans un laps de temps court. La valeur de Inhibit Time est exprimée en multiples de 100 μs.

    Cette fonctionnalité est disponible pour le transfert type 255 (asynchrone).

Le tableau suivant fournit un exemple de valeurs :

Valeur (déc.)

Durée (ms)

0

0

10

1

100

10

1000

100

10000

1000

65535

6553,5

  • Temps d'événement : Le paramètre Temps d'événement permet de définir un délai d'expiration au bout duquel la transmission d'un PDO est forcée, même si aucun changement d'état n'a eu lieu. Le temps d'événement est exprimé en millisecondes.

    Cette fonctionnalité est disponible pour le transfert type 255 (asynchrone).

Ce tableau fournit des exemples de valeurs :

Valeur (déc.)

Durée (ms)

0

0 (désactive le temporisateur)

10

10

100

100

1000

1000

10000

10000

65535

65535

Service Data Object (SDO)

Les SDO permettent d'accéder aux données d'un équipement à l'aide de requêtes explicites. Le service SDO est disponible lorsque l'équipement est à l'état OPERATIONAL ou PRE-OPERATIONAL.

Il existe deux types de SDO :

  • SDO en lecture (SDO en téléchargement)

  • SDO en écriture (SDO en chargement)

Le protocole SDO repose sur un modèle client/serveur. Pour un SDO en téléchargement, le client (généralement le contrôleur) envoie une requête indiquant l'objet à lire. Le serveur (dans le cas présent, le coupleur de bus) renvoie les données contenues dans l'objet. Pour un SDO en chargement, le client (généralement le contrôleur) envoie une requête indiquant l'objet à écrire et la valeur souhaitée. Une fois l'objet mis à jour, le serveur (dans le cas présent, le coupleur de bus) renvoie un message de confirmation.

Si un SDO ne peut pas être traité par le serveur (coupleur de bus), le serveur renvoie un code d'erreur (code d'abandon). Cela s'applique à la fois au SDO en téléchargement et au SDO en chargement. Si le serveur ne répond pas dans une période prédéfinie (délai d'expiration du SDO), le client émet un code d'abandon pour dépassement du délai d'expiration du SDO.

Protocoles de contrôle d'erreur

Les protocoles de contrôle d'erreur servent à détecter les erreurs de communication sur le réseau. Il existe deux protocoles : Node Guarding et heartbeat. Ces deux mécanismes de surveillance sont particulièrement importants dans le système CANopen. Les équipements connectés au bus ne signalent pas régulièrement leur présence en mode de fonctionnement, notamment lorsqu'ils sont commandés par Evénement.

NOTE : Un équipement CANopen ne peut pas prendre en charge simultanément les deux méthodes de surveillance (Node Guarding et Heartbeat). Si l'équipement reçoit les deux configurations, il utilisera uniquement la méthode de surveillance Heartbeat.

Node Guarding

Dans ce protocole, le maître NMT (généralement le contrôleur) interroge chaque équipement NMT (coupleur de bus, par exemple) à intervalles réguliers définis par le paramètre Guard Time. L'équipement répond en envoyant son état NMT. Si l'équipement ne reçoit pas d'interrogation après la période définie par Lifetime, il passe à l'état configuré dans l'objet 1029H et génère un événement life guarding. Le coupleur de bus passe à l'état configuré dans l'objet 1029H (si l'objet 1029 est gardé comme option par défaut), la gestion de repli démarre et un événement de protection est généré. Lifetime est défini comme suit : Lifetime = Guard Time x Lifetime Factor. L'objet 100CH comprend le paramètre Guard Time, exprimé en millisecondes. L'objet 100DH contient le paramètre Lifetime Factor. Les paramètres Guard Time et Lifetime peuvent être configurés différemment selon les équipements.

Lorsque l'un des deux paramètres Lifetime Factor et Guard Time est défini sur 0 (configuration par défaut), l'équipement n'effectue aucune surveillance. Pour activer la surveillance dans le temps, vous devez entrer une valeur (2 au minimum) dans l'objet 100DH et spécifier une durée en millisecondes dans l'objet 100CH.

Les valeurs typiques du paramètre Guard Time sont comprises entre 200 ms et 2 s.

Afin d'assurer un fonctionnement plus fiable et plus sécurisé, vous devez spécifier un paramètre Lifetime Factor (objet 100DH) égal ou supérieur à 2. Si la valeur 1 est utilisée, en cas de retard dû au traitement de messages de haute priorité ou du traitement interne sur le maître Node Guarding, l'équipement peut passer par inadvertance à l'état configuré dans l'objet 1029H.

 AVERTISSEMENT
FONCTIONNEMENT IMPRÉVU DE LA MACHINE
Réglez le paramètre Lifetime Factor (objet 100DH) sur une valeur égale ou supérieure à 2 lorsque vous activez Node Guarding.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

La surveillance est effectuée de la façon suivante :

Etape

Description

1

Le maître définit Remote Frames (ou les messages de requête Remote-Transmit-Request) sur le Guarding-CobID des équipements à surveiller.

2

Les équipements concernés répondent en envoyant le message Guarding. Ce message contient le code d'état de l'équipement et le bit Toggle, qui change après chaque message.

3

Le maître NMT (Network Management Telegram - Télégramme de gestion réseau) compare l'état et le bit Toggle : Si l'état n'est pas celui attendu ou si aucune réponse n'est reçue, le maître NMT considère qu'une erreur a été détectée sur l'équipement.

NOTE : Même si la fonction de surveillance dans le temps est désactivée (registres Guard Time et Lifetime-Factor à 0), l'équipement répond à une requête distante du maître. Pour le message Guarding, la valeur initiale du bit Toggle envoyé dans le premier message Guarding est 0. Ensuite, le bit Toggle change à chaque nouveau message Guarding, ce qui permet de savoir si un message a été perdu.

L'état du réseau de l'équipement est indiqué par les sept bits restants :

Etat du réseau

Réponse (hex.)

‘STOPPED’

04H ou 84H

‘PRE-OPERATIONAL’

7FH ou FFH

‘OPERATIONAL’

05H ou 85H

Mécanisme Heartbeat

Dans ce protocole, le producteur transmet un message Heartbeat de manière périodique, en fonction du paramètre Producer Heartbeat Time configuré (en millisecondes) dans l'objet 1017H. Les équipements chargés de surveiller ce message auront un paramètre Consumer Heartbeat Time configuré (en millisecondes) dans l'objet 1016H. Si le message Heartbeat du producteur n'est pas reçu dans le délai configuré pour les équipements consommateurs, ces équipements génèrent un événement Heartbeat . Le coupleur de bus passe à l'état CANopen configuré dans l'objet 1029H, la gestion du repli démarre et un événement Heartbeat est généré.

Le message Heartbeat indique l'état de l'équipement sur un octet, composé comme suit :

  • Le bit ayant le poids le plus fort est réservé et sa valeur est toujours 0

  • Les 7 bits de poids faible fournissent l'état de l'équipement produisant le message Heartbeat

Les valeurs possibles sont les suivantes :

Etat du producteur Heartbeat

Valeur (décimale)

BOOT-UP

0

STOPPED

4

OPERATIONAL

5

PRE-OPERATIONAL

127