CANopen · CiA 301 · CiA 419 · PDO · SDO · NMT · Automazione edifici · 10 min di lettura

CANopen nell'automazione degli edifici: Dizionario oggetti, PDO, SDO e profilo HVAC CiA 419

CANopen è il livello applicativo che funziona sul bus CAN, standardizzato da CAN in Automation (CiA) come CiA 301. Definisce come i dispositivi descrivono i propri dati (dizionario oggetti), come i valori di processo vengono scambiati ad alta velocità (PDO), come i parametri vengono letti e scritti durante la messa in servizio (SDO) e come viene gestita la rete (NMT) — oltre a profili di tipo dispositivo come CiA 419 per sistemi HVAC che specificano esattamente quali oggetti un chiller o una UTA deve fornire.

Dizionario oggetti CANopen

Ogni dispositivo CANopen ha un dizionario degli oggetti (OD) — una tabella strutturata di tutti i parametri e valori di processo supportati dal dispositivo. Ogni voce è indirizzata da un indice a 16 bit (0x0000–0xFFFF) e un sotto-indice a 8 bit (0x00–0xFF). Il produttore fornisce l'OD in un file Electronic Data Sheet (EDS) — un file di testo in formato INI che gli strumenti di configurazione caricano per conoscere quali oggetti il dispositivo supporta.

IndiceOggettoDescrizione
0x1000Tipo di dispositivoObbligatorio — identifica il profilo dispositivo CiA implementato (es. 0x00190191 = CiA 419 HVAC)
0x1001Registro erroriObbligatorio — campo di bit delle categorie di errore attive (comunicazione, specifiche del dispositivo, ecc.)
0x1008Nome dispositivo produttoreOpzionale — stringa del modello del dispositivo leggibile dall'uomo
0x1017Tempo di heartbeat del produttoreTempo ciclo heartbeat in ms — 0 disabilita heartbeat
0x1018Oggetto identitàID fornitore, codice prodotto, revisione, numero di serie (sottoindici 1–4)
0x1400–0x15FFParametri di comunicazione RPDOCOB-ID, tipo di trasmissione e tempo di inibizione per ogni Receive PDO
0x1600–0x17FFParametri di mapping RPDOQuali oggetti OD sono mappati in ogni RPDO (indice, sottoindice, lunghezza in bit)
0x1800–0x19FFParametri di comunicazione TPDOCOB-ID, tipo di trasmissione, timer eventi per ogni PDO di trasmissione
0x1A00–0x1BFFParametri di mappatura TPDOQuali oggetti OD sono inseriti in ogni TPDO
0x2000–0x5FFFOggetti specifici del produttoreValori di processo specifici del dispositivo — temperature del chiller, codici di allarme, setpoint
0x6000–0x9FFFOggetti del profilo dispositivo CiAOggetti del profilo standardizzati (CiA 419 HVAC: 0x6000–0x67FF)

PDO — Oggetti dati di processo

I PDO sono il meccanismo di scambio dati in tempo reale in CANopen — frame CAN veloci e a basso overhead che trasportano fino a 8 byte di dati di processo senza overhead di protocollo oltre al frame CAN stesso. Un PDO di trasmissione (TPDO) invia dati da un dispositivo alla rete; un PDO di ricezione (RPDO) accetta dati scritti da un master o da un altro dispositivo.

Il mapping PDO definisce quali voci del dizionario degli oggetti vengono impacchettate in un PDO. Ad esempio, un TPDO1 del chiller potrebbe impacchettare la temperatura di mandata (0x6010:01, 16 bit), la temperatura di ritorno (0x6010:02, 16 bit), lo stato di funzionamento del compressore (0x6020:01, 8 bit) e lo stato di allarme (0x6030:01, 8 bit) — per un totale di 6 byte in un singolo frame CAN trasmesso ogni 1 secondo.

Tipi di trasmissione PDO — tabella 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

Gli SDO sono utilizzati per la configurazione e l'accesso ai parametri — lettura o scrittura di qualsiasi voce del dizionario degli oggetti tramite un handshake confermato e riconosciuto. A differenza dei PDO (spara e dimentica), i trasferimenti SDO garantiscono la consegna e restituiscono il valore letto o una conferma della scrittura. L'accesso SDO è lento (più frame CAN per lettura/scrittura) e viene utilizzato durante la messa in servizio, non per dati di processo ciclici.

Esempio di lettura/scrittura SDO — frame manuale 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 — macchina a stati di gestione della rete

Il master NMT (tipicamente il gateway CANopen o il PLC) controlla lo stato operativo di tutti i nodi sulla rete. Dopo l'accensione, i nodi entrano automaticamente nello stato Pre-Operational — i PDO sono inattivi ma l'accesso SDO per la configurazione è disponibile. Il master NMT invia un comando broadcast per portare tutti i nodi allo stato Operational, attivando lo scambio di PDO.

Stato NMTPDO attiviSDO attivoNote
InizializzazioneNoNoIl dispositivo si avvia qui all'accensione, transizione automatica
Pre-OperativoNoConfigurare i mapping PDO, impostare i parametri del nodo tramite SDO
OperativoStato di funzionamento normale — PDO e SDO entrambi attivi
FermatoNoNoStato di manutenzione — nessuna comunicazione tranne NMT

Il protocollo Heartbeat (CiA 301) sostituisce il più vecchio meccanismo Node Guarding. Ogni nodo trasmette un frame Heartbeat a un intervallo configurabile (tipicamente 1000 ms). Il master NMT monitora la ricezione degli Heartbeat — se un nodo smette di inviare Heartbeat, il master rileva il guasto del nodo e può attivare un allarme nel sistema di automazione dell'edificio.

Profili dispositivo CiA 417 per ascensori e CiA 419 per HVAC

I profili dispositivo CiA standardizzano la struttura del dizionario degli oggetti per specifici tipi di apparecchiature, garantendo l'interoperabilità tra dispositivi di diversi produttori. Due profili sono direttamente rilevanti per l'automazione degli edifici: CiA 417 per i sistemi ascensori e CiA 419 per i sistemi HVAC.

Oggetto CiA 419IndiceDescrizione
Temperatura aria di mandata0x6010:01INT16, unità 0,01°C — dividere per 100 per il valore in °C
Temperatura aria di ripresa0x6010:02INT16, unità 0,01°C — aria di ripresa/estrazione zona
Temperatura aria esterna0x6010:05INT16, unità 0,01°C — lettura sensore ambiente
Setpoint temperatura0x6011:01INT16, unità 0,01°C — scrivibile dal master per controllo setpoint
Setpoint velocità ventola0x6020:01UINT16, unità 0,01% — 0–10000 = comando velocità 0–100%
Velocità effettiva ventola0x6020:02UINT16, unità 0,01% — percentuale effettiva di uscita ventola
Setpoint posizione valvola0x6030:01UINT16, unità 0,01% — comando valvola riscaldamento/raffreddamento
Posizione effettiva valvola0x6030:02UINT16, unità 0,01% — feedback posizione valvola
Modalità operativa0x6040:01UINT8 — 0=spento, 1=riscaldamento, 2=raffreddamento, 3=auto, 4=solo ventola
Stato allarme0x6050:01Campo di bit UINT32 — ogni bit rappresenta un codice di allarme specifico

Gateway CANopen verso BACnet, Modbus e KNX

La maggior parte dei sistemi di automazione degli edifici (KNX, BACnet, Modbus) non può parlare nativamente CANopen — un gateway di protocollo funge da ponte tra i mondi dei bus di campo. Tre famiglie di gateway sono ampiamente utilizzate.

GatewayProtocolliNote
Gateway Ixxat CANopenCANopen ↔ Modbus TCP/RTUConfigurabile tramite interfaccia web – mappatura degli oggetti OD CANopen nei registri di holding Modbus; supporta fino a 127 nodi CANopen
Anybus X-gateway CANopen–BACnetCANopen ↔ BACnet IPHMS Networks – mappatura oggetti BACnet tramite Anybus Configuration Manager; utilizzato in grandi integrazioni BMS
EMS Electronic CANopen–KNXCANopen ↔ KNX TPMappa gli oggetti CANopen PDO/SDO sugli indirizzi di gruppo KNX; configurazione tramite plugin ETS6
Weinzierl BAOS CANopen BridgeCANopen ↔ KNX IPRouting KNX IP con funzione master CANopen; utilizzato nei gateway dei quadri elettrici

Richiedere sempre il file EDS al produttore dell'apparecchiatura prima di ordinare un gateway. Senza l'EDS non è possibile determinare quali indici di oggetti supporta il dispositivo e se implementa un profilo CiA standard o utilizza solo oggetti specifici del produttore. Alcuni chiller espongono solo un sottoinsieme di oggetti CiA 419 e richiedono oggetti specifici del produttore per i codici di allarme.

Hai bisogno di integrare dispositivi CANopen nel tuo BMS?

Configuriamo e forniamo gateway CANopen-KNX, CANopen-BACnet e CANopen-Modbus con mappatura completa del dizionario oggetti, commissioning basato su EDS e configurazione PDO per sistemi HVAC.

Richiedi un preventivo →
Caricamento in corso ...
Torna all'inizio