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.
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
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 suivant un événement |
1-240 |
Cyclique - Synchrone |
Envoyer un PDO tous les x messages , 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 |
: Le paramètre 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 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 |
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.
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 .
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 1029H et génère un événement life guarding. Le coupleur de bus passe à l'état configuré dans l'objet (si l'objet est gardé comme option par défaut), la gestion de repli démarre et un événement de protection est généré. est défini comme suit : = x . L'objet comprend le paramètre Guard Time, exprimé en millisecondes. L'objet contient le paramètre . Les paramètres et peuvent être configurés différemment selon les équipements.
. 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 , il passe à l'état configuré dans l'objetLorsque l'un des deux paramètres
et 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 et spécifier une durée en millisecondes dans l'objet .Les valeurs typiques du paramètre
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
(objet ) é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 .AVERTISSEMENT | |
---|---|
La surveillance est effectuée de la façon suivante :
Etape |
Description |
---|---|
1 |
Le maître définit Guarding-CobID des équipements à surveiller. (ou les messages de requête ) sur le |
2 |
Les équipements concernés répondent en envoyant le message . Ce message contient le de l'équipement et le , qui change après chaque message. |
3 |
Le maître NMT (Network Management Telegram - Télégramme de gestion réseau) compare l' et le : 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. |
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 |
Dans ce protocole, le producteur transmet un message CANopen configuré dans l'objet 1029H, la gestion du repli démarre et un événement est généré.
de manière périodique, en fonction du paramètre configuré (en millisecondes) dans l'objet . Les équipements chargés de surveiller ce message auront un paramètre configuré (en millisecondes) dans l'objet . Si le message du producteur n'est pas reçu dans le délai configuré pour les équipements consommateurs, ces équipements génèrent un événement . Le coupleur de bus passe à l'étatLe message
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
Les valeurs possibles sont les suivantes :
Etat du producteur |
Valeur (décimale) |
---|---|
BOOT-UP |
0 |
STOPPED |
4 |
OPERATIONAL |
5 |
PRE-OPERATIONAL |
127 |