CANopen · CiA 301 · CiA 419 · PDO · SDO · NMT · Automatisation du bâtiment · 10 min de lecture

CANopen dans l'automatisation du bâtiment : Dictionnaire d'objets, PDO, SDO et profil HVAC CiA 419

CANopen est la couche applicative fonctionnant sur le bus CAN, normalisée par CAN in Automation (CiA) sous le nom CiA 301. Elle définit comment les dispositifs décrivent leurs données (dictionnaire d'objets), comment les valeurs de processus sont échangées à grande vitesse (PDO), comment les paramètres sont lus et écrits lors de la mise en service (SDO), et comment le réseau est géré (NMT) — ainsi que des profils de types de dispositifs tels que CiA 419 pour les systèmes HVAC qui spécifient exactement quels objets un refroidisseur ou une CTA doit fournir.

Dictionnaire d'objets CANopen

Chaque périphérique CANopen possède un dictionnaire d'objets (OD) — une table structurée de tous les paramètres et valeurs de processus pris en charge par le périphérique. Chaque entrée est adressée par un index 16 bits (0x0000–0xFFFF) et un sous-index 8 bits (0x00–0xFF). Le fabricant fournit l'OD dans un fichier Electronic Data Sheet (EDS) — un fichier texte au format INI que les outils de configuration chargent pour connaître les objets pris en charge par le périphérique.

IndexObjetDescription
0x1000Type de périphériqueObligatoire — identifie le profil de périphérique CiA implémenté (ex. 0x00190191 = CiA 419 HVAC)
0x1001Registre d'erreursObligatoire — champ de bits des catégories d'erreurs actives (communication, spécifique au périphérique, etc.)
0x1008Nom du périphérique fabricantOptionnel — chaîne de modèle de périphérique lisible par l'homme
0x1017Temps de heartbeat du producteurTemps de cycle du heartbeat en ms — 0 désactive le heartbeat
0x1018Objet d'identitéID fabricant, code produit, révision, numéro de série (sous-indices 1–4)
0x1400–0x15FFParamètres de communication RPDOCOB-ID, type de transmission et temps d'inhibition pour chaque PDO de réception
0x1600–0x17FFParamètres de mappage RPDOQuels objets OD sont mappés dans chaque RPDO (index, sous-index, longueur en bits)
0x1800–0x19FFParamètres de communication TPDOCOB-ID, type de transmission, temporisateur d'événement pour chaque PDO de transmission
0x1A00–0x1BFFParamètres de mappage TPDOQuels objets OD sont regroupés dans chaque TPDO
0x2000–0x5FFFObjets spécifiques au fabricantValeurs de processus spécifiques au dispositif — températures du refroidisseur, codes d'alarme, points de consigne
0x6000–0x9FFFObjets de profil de dispositif CiAObjets de profil standardisés (CiA 419 HVAC : 0x6000–0x67FF)

PDO — Objets de données de processus

Les PDO sont le mécanisme d'échange de données en temps réel dans CANopen — des trames CAN rapides à faible surcharge qui transportent jusqu'à 8 octets de données de processus sans surcharge de protocole au-delà de la trame CAN elle-même. Un PDO de transmission (TPDO) envoie des données d'un dispositif au réseau ; un PDO de réception (RPDO) accepte les données écrites par un maître ou un autre dispositif.

Le mappage PDO définit quelles entrées du dictionnaire d'objets sont emballées dans un PDO. Par exemple, un TPDO1 de refroidisseur pourrait emballer la température d'alimentation (0x6010:01, 16 bits), la température de retour (0x6010:02, 16 bits), l'état de fonctionnement du compresseur (0x6020:01, 8 bits) et l'état d'alarme (0x6030:01, 8 bits) — totalisant 6 octets dans une seule trame CAN transmise toutes les 1 seconde.

Types de transmission PDO — tableau CiA 301

Transmission type (object 0x1800:02 for TPDO1):

  Type 0:   Acyclic, synchronous — PDO sent after SYNC only if data changed
  Type 1–240: Cyclic, synchronous — PDO sent every N SYNC messages
              Example: type 10 = send PDO every 10th SYNC telegram
  Type 254: Event-driven, manufacturer-specific — sent on internal event
  Type 255: Event-driven, profile-specific — sent when data changes
            (most common for building automation — avoids fixed polling)

TPDO1 event timer (object 0x1800:05):
  Value in ms — maximum time between PDO transmissions even if no change
  Example: 5000 ms = resend TPDO1 every 5 seconds regardless
  Use 0 to disable the timer (rely on event trigger only)

Inhibit time (object 0x1800:03):
  Minimum time between two TPDO1 transmissions in 100µs steps
  Example: 1000 = 100ms minimum between sends — prevent bus flooding

SDO — Service Data Objects

Les SDO sont utilisés pour la configuration et l'accès aux paramètres — lecture ou écriture de toute entrée du dictionnaire d'objets via une poignée de main confirmée et acquittée. Contrairement aux PDO (tirer et oublier), les transferts SDO garantissent la livraison et renvoient la valeur lue ou une confirmation de l'écriture. L'accès SDO est lent (plusieurs trames CAN par lecture/écriture) et est utilisé lors de la mise en service, pas pour les données de processus cycliques.

Exemple de lecture/écriture SDO — trame manuelle PCAN-View

SDO Read (Initiate Upload) — read object 0x6010:01 (supply water temp)
  COB-ID: 0x600 + node ID  (example: node 3 → 0x603)
  DLC: 8
  Data: 40 10 60 01 00 00 00 00
        |  |     |
        |  |     Sub-index: 0x01
        |  Index low byte: 0x10
        Command specifier: 0x40 (Initiate Upload Request)

SDO Response from device:
  COB-ID: 0x580 + node ID  (example: node 3 → 0x583)
  Data: 4B 10 60 01 E8 03 00 00
        |           |
        |           Value: 0x03E8 = 1000 → ÷10 = 100.0°C? No → check EDS
        Command: 0x4B = 4-byte, expedited (2 meaningful bytes)

SDO Write — set temperature setpoint object 0x6011:01 to 45°C (0x01C2 = 450 × 0.1°C)
  COB-ID: 0x600 + node ID
  DLC: 8
  Data: 2B 11 60 01 C2 01 00 00
        |  |     |  |
        |  |     Sub-index: 0x01
        |  Index: 0x6011
        Command: 0x2B (Write 2 bytes, expedited)

NMT — machine d'état de gestion de réseau

Le maître NMT (généralement la passerelle CANopen ou l'automate) contrôle l'état de fonctionnement de tous les nœuds du réseau. Après la mise sous tension, les nœuds entrent automatiquement dans l'état Pre-Operational — les PDO sont inactifs mais l'accès SDO pour la configuration est disponible. Le maître NMT envoie une commande de diffusion pour faire passer tous les nœuds à l'état Operational, activant l'échange de PDO.

État NMTPDO actifsSDO actifRemarques
InitialisationNonNonLe périphérique démarre ici à la mise sous tension, transition automatique
Pré-OpérationnelNonOuiConfigurer les mappages PDO, définir les paramètres du nœud via SDO
OpérationnelOuiOuiÉtat de fonctionnement normal — PDO et SDO tous deux actifs
ArrêtéNonNonÉtat de maintenance — aucune communication sauf NMT

Le protocole Heartbeat (CiA 301) remplace l'ancien mécanisme Node Guarding. Chaque nœud transmet une trame Heartbeat à un intervalle configurable (généralement 1000 ms). Le maître NMT surveille la réception des Heartbeats — si un nœud cesse d'envoyer des Heartbeats, le maître détecte la défaillance du nœud et peut déclencher une alarme dans le système d'automatisation du bâtiment.

Profils de dispositifs CiA 417 pour ascenseurs et CiA 419 pour HVAC

Les profils de dispositifs CiA standardisent la disposition du dictionnaire d'objets pour des types d'équipements spécifiques, garantissant l'interopérabilité entre les dispositifs de différents fabricants. Deux profils sont directement pertinents pour l'automatisation du bâtiment : CiA 417 pour les systèmes d'ascenseurs et CiA 419 pour les systèmes HVAC.

Objet CiA 419IndexDescription
Température d'air soufflé0x6010:01INT16, unité 0,01°C — diviser par 100 pour la valeur en °C
Température d'air repris0x6010:02INT16, unité 0,01°C — air repris/extraît de la zone
Température d'air extérieur0x6010:05INT16, unité 0,01°C — lecture du capteur ambiant
Consigne de température0x6011:01INT16, unité 0,01°C — inscriptible par le maître pour le contrôle de la consigne
Consigne de vitesse du ventilateur0x6020:01UINT16, unité 0,01% — 0–10000 = commande de vitesse 0–100%
Vitesse réelle du ventilateur0x6020:02UINT16, unité 0,01 % — pourcentage réel de sortie du ventilateur
Consigne de position de vanne0x6030:01UINT16, unité 0,01 % — commande de vanne chauffage/refroidissement
Position réelle de la vanne0x6030:02UINT16, unité 0,01 % — retour de position de vanne
Mode de fonctionnement0x6040:01UINT8 — 0=arrêt, 1=chauffage, 2=refroidissement, 3=auto, 4=ventilateur seul
État d'alarme0x6050:01Champ de bits UINT32 — chaque bit représente un code d'alarme spécifique

Passerelles CANopen vers BACnet, Modbus et KNX

La plupart des systèmes d'automatisation des bâtiments (KNX, BACnet, Modbus) ne peuvent pas parler nativement CANopen — une passerelle de protocole fait le pont entre les mondes des bus de terrain. Trois familles de passerelles sont largement utilisées.

PasserelleProtocolesRemarques
Passerelle Ixxat CANopenCANopen ↔ Modbus TCP/RTUConfigurable via interface web – mapper les objets OD CANopen vers des registres de maintien Modbus ; prend en charge jusqu'à 127 nœuds CANopen
Anybus X-gateway CANopen–BACnetCANopen ↔ BACnet IPHMS Networks – mappage d'objets BACnet via Anybus Configuration Manager ; utilisé dans les grandes intégrations BMS
EMS Electronic CANopen–KNXCANopen ↔ KNX TPMappe les objets CANopen PDO/SDO vers les adresses de groupe KNX ; configuration via le plugin ETS6
Weinzierl BAOS CANopen BridgeCANopen ↔ KNX IPRoutage KNX IP avec fonction maître CANopen ; utilisé dans les passerelles de tableaux électriques

Demandez toujours le fichier EDS au fabricant de l'équipement avant de commander une passerelle. Sans l'EDS, vous ne pouvez pas déterminer quels indices d'objets le périphérique prend en charge et s'il implémente un profil CiA standard ou utilise uniquement des objets spécifiques au fabricant. Certains refroidisseurs n'exposent qu'un sous-ensemble d'objets CiA 419 et nécessitent des objets spécifiques au fabricant pour les codes d'alarme.

Besoin d'intégrer des dispositifs CANopen dans votre GTB ?

Nous configurons et fournissons des passerelles CANopen vers KNX, CANopen vers BACnet et CANopen vers Modbus avec un mappage complet du dictionnaire d'objets, une mise en service basée sur EDS et une configuration PDO pour les systèmes HVAC.

Demander un devis →
Chargement...
Retour en haut