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.
| Indice | Oggetto | Descrizione |
|---|---|---|
| 0x1000 | Tipo di dispositivo | Obbligatorio — identifica il profilo dispositivo CiA implementato (es. 0x00190191 = CiA 419 HVAC) |
| 0x1001 | Registro errori | Obbligatorio — campo di bit delle categorie di errore attive (comunicazione, specifiche del dispositivo, ecc.) |
| 0x1008 | Nome dispositivo produttore | Opzionale — stringa del modello del dispositivo leggibile dall'uomo |
| 0x1017 | Tempo di heartbeat del produttore | Tempo ciclo heartbeat in ms — 0 disabilita heartbeat |
| 0x1018 | Oggetto identità | ID fornitore, codice prodotto, revisione, numero di serie (sottoindici 1–4) |
| 0x1400–0x15FF | Parametri di comunicazione RPDO | COB-ID, tipo di trasmissione e tempo di inibizione per ogni Receive PDO |
| 0x1600–0x17FF | Parametri di mapping RPDO | Quali oggetti OD sono mappati in ogni RPDO (indice, sottoindice, lunghezza in bit) |
| 0x1800–0x19FF | Parametri di comunicazione TPDO | COB-ID, tipo di trasmissione, timer eventi per ogni PDO di trasmissione |
| 0x1A00–0x1BFF | Parametri di mappatura TPDO | Quali oggetti OD sono inseriti in ogni TPDO |
| 0x2000–0x5FFF | Oggetti specifici del produttore | Valori di processo specifici del dispositivo — temperature del chiller, codici di allarme, setpoint |
| 0x6000–0x9FFF | Oggetti del profilo dispositivo CiA | Oggetti 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 floodingSDO — 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 NMT | PDO attivi | SDO attivo | Note |
|---|---|---|---|
| Inizializzazione | No | No | Il dispositivo si avvia qui all'accensione, transizione automatica |
| Pre-Operativo | No | Sì | Configurare i mapping PDO, impostare i parametri del nodo tramite SDO |
| Operativo | Sì | Sì | Stato di funzionamento normale — PDO e SDO entrambi attivi |
| Fermato | No | No | Stato 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 419 | Indice | Descrizione |
|---|---|---|
| Temperatura aria di mandata | 0x6010:01 | INT16, unità 0,01°C — dividere per 100 per il valore in °C |
| Temperatura aria di ripresa | 0x6010:02 | INT16, unità 0,01°C — aria di ripresa/estrazione zona |
| Temperatura aria esterna | 0x6010:05 | INT16, unità 0,01°C — lettura sensore ambiente |
| Setpoint temperatura | 0x6011:01 | INT16, unità 0,01°C — scrivibile dal master per controllo setpoint |
| Setpoint velocità ventola | 0x6020:01 | UINT16, unità 0,01% — 0–10000 = comando velocità 0–100% |
| Velocità effettiva ventola | 0x6020:02 | UINT16, unità 0,01% — percentuale effettiva di uscita ventola |
| Setpoint posizione valvola | 0x6030:01 | UINT16, unità 0,01% — comando valvola riscaldamento/raffreddamento |
| Posizione effettiva valvola | 0x6030:02 | UINT16, unità 0,01% — feedback posizione valvola |
| Modalità operativa | 0x6040:01 | UINT8 — 0=spento, 1=riscaldamento, 2=raffreddamento, 3=auto, 4=solo ventola |
| Stato allarme | 0x6050:01 | Campo 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.
| Gateway | Protocolli | Note |
|---|---|---|
| Gateway Ixxat CANopen | CANopen ↔ Modbus TCP/RTU | Configurabile tramite interfaccia web – mappatura degli oggetti OD CANopen nei registri di holding Modbus; supporta fino a 127 nodi CANopen |
| Anybus X-gateway CANopen–BACnet | CANopen ↔ BACnet IP | HMS Networks – mappatura oggetti BACnet tramite Anybus Configuration Manager; utilizzato in grandi integrazioni BMS |
| EMS Electronic CANopen–KNX | CANopen ↔ KNX TP | Mappa gli oggetti CANopen PDO/SDO sugli indirizzi di gruppo KNX; configurazione tramite plugin ETS6 |
| Weinzierl BAOS CANopen Bridge | CANopen ↔ KNX IP | Routing 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.
Guide correlate
Fondamenti del bus CAN: Livello fisico, struttura del frame e rilevamento errori
CAN / CANopenIntegrazione chiller HVAC CANopen: Carrier, York, Daikin tramite gateway Ixxat
Integrazione gatewayIntegrazione gateway KNX BACnet
Ventilazione HVACTROX TVZ VAV Box BACnet/IP a KNX tramite LOYTEC LGATE-950
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 →