CANopen in der Gebäudeautomation: Objektverzeichnis, PDO, SDO und CiA 419 HVAC-Profil
CANopen ist die Anwendungsschicht, die auf dem CAN-Bus läuft und von CAN in Automation (CiA) als CiA 301 standardisiert wurde. Sie definiert, wie Geräte ihre Daten beschreiben (Objektverzeichnis), wie Prozesswerte mit hoher Geschwindigkeit ausgetauscht werden (PDO), wie Parameter während der Inbetriebnahme gelesen und geschrieben werden (SDO) und wie das Netzwerk verwaltet wird (NMT) – plus gerätespezifische Profile wie CiA 419 für HLK-Systeme, die genau festlegen, welche Objekte ein Kühler oder eine Lüftungsanlage bereitstellen muss.
CANopen Objektverzeichnis
Jedes CANopen-Gerät verfügt über ein Objektverzeichnis (OD) – eine strukturierte Tabelle aller Parameter und Prozesswerte, die das Gerät unterstützt. Jeder Eintrag wird über einen 16-Bit-Index (0x0000–0xFFFF) und einen 8-Bit-Subindex (0x00–0xFF) adressiert. Der Hersteller stellt das OD in einer Electronic Data Sheet (EDS)-Datei bereit – einer Textdatei im INI-Format, die von Konfigurierungswerkzeugen geladen wird, um zu wissen, welche Objekte das Gerät unterstützt.
| Index | Objekt | Beschreibung |
|---|---|---|
| 0x1000 | Gerätetyp | Pflicht – identifiziert das implementierte CiA-Geräteprofil (z. B. 0x00190191 = CiA 419 HVAC) |
| 0x1001 | Fehlerregister | Pflicht — Bitfeld der aktiven Fehlerkategorien (Kommunikation, gerätespezifisch usw.) |
| 0x1008 | Hersteller Gerätename | Optional — lesbare Gerätemodellzeichenfolge |
| 0x1017 | Heartbeat-Zeit des Produzenten | Heartbeat-Zykluszeit in ms — 0 deaktiviert Heartbeat |
| 0x1018 | Identitätsobjekt | Hersteller-ID, Produktcode, Revision, Seriennummer (Subindizes 1–4) |
| 0x1400–0x15FF | RPDO-Kommunikationsparameter | COB-ID, Übertragungstyp und Inhibit-Zeit für jeden Receive PDO |
| 0x1600–0x17FF | RPDO-Mapping-Parameter | Welche OD-Objekte sind in jedes RPDO abgebildet (Index, Sub-Index, Bitlänge) |
| 0x1800–0x19FF | TPDO-Kommunikationsparameter | COB-ID, Übertragungstyp, Ereignis-Timer für jedes Sende-PDO |
| 0x1A00–0x1BFF | TPDO-Abbildungsparameter | Welche OD-Objekte sind in jedes TPDO verpackt |
| 0x2000–0x5FFF | Herstellerspezifische Objekte | Gerätespezifische Prozesswerte — Kältemaschinentemperaturen, Alarmcodes, Sollwerte |
| 0x6000–0x9FFF | CiA-Geräteprofilobjekte | Standardisierte Profilobjekte (CiA 419 HVAC: 0x6000–0x67FF) |
PDO — Prozessdatenobjekte
PDOs sind der Echtzeit-Datenaustauschmechanismus in CANopen — schnelle, überheadarme CAN-Frames, die bis zu 8 Byte Prozessdaten ohne zusätzlichen Protokoll-Overhead jenseits des CAN-Frames transportieren. Ein Transmit-PDO (TPDO) sendet Daten von einem Gerät an das Netzwerk; ein Receive-PDO (RPDO) akzeptiert Daten, die von einem Master oder einem anderen Gerät geschrieben wurden.
Das PDO-Mapping definiert, welche Objektverzeichniseinträge in ein PDO gepackt werden. Beispielsweise könnte ein Kältemaschinen-TPDO1 die Vorlauftemperatur (0x6010:01, 16 Bit), Rücklauftemperatur (0x6010:02, 16 Bit), Kompressor-Betriebsstatus (0x6020:01, 8 Bit) und Alarmstatus (0x6030:01, 8 Bit) packen — insgesamt 6 Byte in einem einzelnen CAN-Frame, der alle 1 Sekunde gesendet wird.
PDO-Übertragungstypen — Tabelle nach 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
SDOs werden für Konfiguration und Parameterzugriff verwendet — Lesen oder Schreiben eines beliebigen Objektverzeichniseintrags mittels eines bestätigten Handshakes. Im Gegensatz zu PDOs (Feuer-und-Vergessen) garantieren SDO-Übertragungen die Zustellung und geben den gelesenen Wert oder eine Bestätigung des Schreibvorgangs zurück. Der SDO-Zugriff ist langsam (mehrere CAN-Frames pro Lese-/Schreibvorgang) und wird während der Inbetriebnahme verwendet, nicht für zyklische Prozessdaten.
SDO Lese-/Schreibbeispiel — PCAN-View manueller Frame
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 — Netzwerkmanagement-Zustandsmaschine
Der NMT-Master (typischerweise das CANopen-Gateway oder die SPS) steuert den Betriebszustand aller Knoten im Netzwerk. Nach dem Einschalten wechseln die Knoten automatisch in den Zustand Pre-Operational — PDOs sind inaktiv, aber der SDO-Zugriff für die Konfiguration ist verfügbar. Der NMT-Master sendet einen Broadcast-Befehl, um alle Knoten in den Zustand Operational zu versetzen und den PDO-Austausch zu aktivieren.
| NMT-Zustand | PDOs aktiv | SDO aktiv | Hinweise |
|---|---|---|---|
| Initialisierung | Nein | Nein | Gerät startet hier beim Einschalten, wechselt automatisch |
| Vor-Operational | Nein | Ja | PDO-Mappings konfigurieren, Knotenparameter per SDO setzen |
| In Betrieb | Ja | Ja | Normaler Betriebszustand — PDOs und SDOs beide aktiv |
| Gestoppt | Nein | Nein | Wartungszustand — keine Kommunikation außer NMT |
Das Heartbeat-Protokoll (CiA 301) ersetzt den älteren Node-Guarding-Mechanismus. Jeder Knoten sendet in einem konfigurierbaren Intervall (typischerweise 1000 ms) einen Heartbeat-Frame. Der NMT-Master überwacht den Heartbeat-Empfang — wenn ein Knoten keine Heartbeats mehr sendet, erkennt der Master den Knotenausfall und kann einen Alarm im Gebäudeautomationssystem auslösen.
CiA 417 Aufzugs- und CiA 419 HVAC-Geräteprofile
CiA-Geräteprofile standardisieren das Objektverzeichnis-Layout für bestimmte Gerätetypen und gewährleisten die Interoperabilität zwischen Geräten verschiedener Hersteller. Zwei Profile sind für die Gebäudeautomation direkt relevant: CiA 417 für Aufzugsanlagen und CiA 419 für HVAC-Systeme.
| CiA 419 Objekt | Index | Beschreibung |
|---|---|---|
| Zulufttemperatur | 0x6010:01 | INT16, Einheit 0,01°C — durch 100 teilen für °C-Wert |
| Ablufttemperatur | 0x6010:02 | INT16, Einheit 0,01°C — Zonenrückluft/Abluft |
| Außenlufttemperatur | 0x6010:05 | INT16, Einheit 0,01°C — Umgebungssensorwert |
| Temperatursollwert | 0x6011:01 | INT16, Einheit 0,01°C — vom Master beschreibbar zur Sollwertregelung |
| Lüfterdrehzahlsollwert | 0x6020:01 | UINT16, Einheit 0,01% — 0–10000 = 0–100% Drehzahlbefehl |
| Tatsächliche Lüfterdrehzahl | 0x6020:02 | UINT16, Einheit 0,01 % — tatsächlicher Lüfterausgangsprozentsatz |
| Ventilpositionsollwert | 0x6030:01 | UINT16, Einheit 0,01 % — Heiz-/Kühlventilbefehl |
| Tatsächliche Ventilposition | 0x6030:02 | UINT16, Einheit 0,01 % — Ventilpositionsrückmeldung |
| Betriebsart | 0x6040:01 | UINT8 — 0=Aus, 1=Heizen, 2=Kühlen, 3=Auto, 4=nur Lüfter |
| Alarmstatus | 0x6050:01 | UINT32-Bitfeld — jedes Bit repräsentiert einen spezifischen Alarmcode |
CANopen-Gateways zu BACnet, Modbus und KNX
Die meisten Gebäudeautomationssysteme (KNX, BACnet, Modbus) können nativ kein CANopen sprechen – ein Protokoll-Gateway vermittelt zwischen den Feldbuswelten. Drei Gateway-Familien sind weit verbreitet.
| Gateway | Protokolle | Hinweise |
|---|---|---|
| Ixxat CANopen Gateway | CANopen ↔ Modbus TCP/RTU | Über Web-UI konfigurierbar – CANopen-OD-Objekte auf Modbus-Holding-Register abbilden; unterstützt bis zu 127 CANopen-Knoten |
| Anybus X-gateway CANopen–BACnet | CANopen ↔ BACnet IP | HMS Networks – BACnet-Objektzuordnung über Anybus Configuration Manager; in großen BMS-Integrationen eingesetzt |
| EMS Electronic CANopen–KNX | CANopen ↔ KNX TP | Bildet CANopen PDO/SDO-Objekte auf KNX-Gruppenadressen ab; Konfiguration über ETS6-Plugin |
| Weinzierl BAOS CANopen Bridge | CANopen ↔ KNX IP | KNX-IP-Routing mit CANopen-Master-Funktion; wird in Schaltschrank-Gateways eingesetzt |
Fordern Sie vor der Bestellung eines Gateways stets die EDS-Datei vom Gerätehersteller an. Ohne die EDS können Sie nicht feststellen, welche Objektindizes das Gerät unterstützt und ob es ein standardisiertes CiA-Profil implementiert oder nur herstellerspezifische Objekte verwendet. Manche Kältemaschinen legen nur eine Teilmenge der CiA-419-Objekte offen und benötigen herstellerspezifische Objekte für Alarmcodes.
Verwandte Anleitungen
Benötigen Sie die Integration von CANopen-Geräten in Ihr GLT?
Wir konfigurieren und liefern CANopen-zu-KNX-, CANopen-zu-BACnet- und CANopen-zu-Modbus-Gateways mit vollständigem Objektwörterbuch-Mapping, EDS-basierter Inbetriebnahme und PDO-Konfiguration für HLK-Systeme.
Angebot anfordern →