CANopen w automatyce budynkowej: Słownik obiektów, PDO, SDO i profil HVAC CiA 419
CANopen to warstwa aplikacyjna działająca na magistrali CAN, znormalizowana przez CAN in Automation (CiA) jako CiA 301. Określa, jak urządzenia opisują swoje dane (słownik obiektów), jak wartości procesowe są wymieniane z dużą prędkością (PDO), jak parametry są odczytywane i zapisywane podczas uruchamiania (SDO) oraz jak zarządzana jest sieć (NMT) – plus profile typów urządzeń, takie jak CiA 419 dla systemów HVAC, które precyzyjnie określają, jakie obiekty musi udostępniać agregat chłodniczy lub centrala wentylacyjna.
Słownik obiektów CANopen
Każde urządzenie CANopen posiada słownik obiektów (OD) – uporządkowaną tabelę wszystkich parametrów i wartości procesowych obsługiwanych przez urządzenie. Każdy wpis adresowany jest za pomocą 16-bitowego indeksu (0x0000–0xFFFF) i 8-bitowego podindeksu (0x00–0xFF). Producent dostarcza OD w pliku Electronic Data Sheet (EDS) – pliku tekstowym w formacie INI, który narzędzia konfiguracyjne wczytują, aby wiedzieć, jakie obiekty obsługuje urządzenie.
| Indeks | Obiekt | Opis |
|---|---|---|
| 0x1000 | Typ urządzenia | Obowiązkowy – identyfikuje zaimplementowany profil urządzenia CiA (np. 0x00190191 = CiA 419 HVAC) |
| 0x1001 | Rejestr błędów | Obowiązkowe — pole bitowe aktywnych kategorii błędów (komunikacja, specyficzne dla urządzenia itp.) |
| 0x1008 | Nazwa urządzenia producenta | Opcjonalne — czytelny dla człowieka ciąg modelu urządzenia |
| 0x1017 | Czas bicia serca producenta | Czas cyklu bicia serca w ms — 0 wyłącza bicie serca |
| 0x1018 | Obiekt tożsamości | ID producenta, kod produktu, rewizja, numer seryjny (podindeksy 1–4) |
| 0x1400–0x15FF | Parametry komunikacji RPDO | COB-ID, typ transmisji i czas blokady dla każdego Receive PDO |
| 0x1600–0x17FF | Parametry mapowania RPDO | Które obiekty OD są mapowane do każdego RPDO (indeks, podindeks, długość bitowa) |
| 0x1800–0x19FF | Parametry komunikacji TPDO | COB-ID, typ transmisji, timer zdarzeń dla każdego Transmit PDO |
| 0x1A00–0x1BFF | Parametry mapowania TPDO | Które obiekty OD są pakowane do każdego TPDO |
| 0x2000–0x5FFF | Obiekty specyficzne dla producenta | Wartości procesowe specyficzne dla urządzenia — temperatury agregatu, kody alarmowe, wartości zadane |
| 0x6000–0x9FFF | Obiekty profilu urządzenia CiA | Znormalizowane obiekty profilu (CiA 419 HVAC: 0x6000–0x67FF) |
PDO — obiekty danych procesowych
PDO to mechanizm wymiany danych w czasie rzeczywistym w CANopen — szybkie ramki CAN o niskim narzucie, przenoszące do 8 bajtów danych procesowych bez dodatkowego narzutu protokołu poza samą ramką CAN. Transmit PDO (TPDO) wysyła dane z urządzenia do sieci; Receive PDO (RPDO) przyjmuje dane zapisane przez mastera lub inne urządzenie.
Mapowanie PDO definiuje, które wpisy słownika obiektów są pakowane do PDO. Na przykład, TPDO1 agregatu może pakować temperaturę zasilania (0x6010:01, 16 bitów), temperaturę powrotu (0x6010:02, 16 bitów), status pracy sprężarki (0x6020:01, 8 bitów) i status alarmu (0x6030:01, 8 bitów) — łącznie 6 bajtów w pojedynczej ramce CAN przesyłanej co 1 sekundę.
Typy transmisji PDO — tabela 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
SDO są używane do konfiguracji i dostępu do parametrów — odczytu lub zapisu dowolnego wpisu w słowniku obiektów za pomocą potwierdzonego uzgadniania. W przeciwieństwie do PDO (strzelaj i zapomnij), transmisje SDO gwarantują dostarczenie i zwracają odczytaną wartość lub potwierdzenie zapisu. Dostęp SDO jest powolny (wiele ramek CAN na odczyt/zapis) i jest używany podczas uruchamiania, a nie do cyklicznych danych procesowych.
Przykład odczytu/zapisu SDO — ręczna ramka 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 — maszyna stanów zarządzania siecią
Master NMT (zazwyczaj brama CANopen lub PLC) kontroluje stan pracy wszystkich węzłów w sieci. Po włączeniu zasilania węzły automatycznie przechodzą w stan Pre-Operational — PDO są nieaktywne, ale dostęp SDO do konfiguracji jest dostępny. Master NMT wysyła polecenie rozgłoszeniowe, aby przejść wszystkie węzły do stanu Operational, aktywując wymianę PDO.
| Stan NMT | PDO aktywne | SDO aktywne | Uwagi |
|---|---|---|---|
| Inicjalizacja | Nie | Nie | Urządzenie uruchamia się tutaj po włączeniu, przechodzi automatycznie |
| Przed-Operacyjny | Nie | Tak | Konfiguruj mapowania PDO, ustaw parametry węzła przez SDO |
| Operacyjny | Tak | Tak | Normalny stan pracy — zarówno PDO, jak i SDO aktywne |
| Zatrzymany | Nie | Nie | Stan konserwacji — brak komunikacji poza NMT |
Protokół Heartbeat (CiA 301) zastępuje starszy mechanizm Node Guarding. Każdy węzeł wysyła ramkę Heartbeat w konfigurowalnym interwale (zazwyczaj 1000 ms). Master NMT monitoruje odbiór Heartbeat — jeśli węzeł przestanie wysyłać Heartbeat, master wykrywa awarię węzła i może wywołać alarm w systemie automatyki budynkowej.
Profile urządzeń CiA 417 dla wind i CiA 419 dla HVAC
Profile urządzeń CiA standaryzują układ słownika obiektów dla określonych typów urządzeń, zapewniając interoperacyjność między urządzeniami różnych producentów. Dwa profile są bezpośrednio istotne dla automatyki budynkowej: CiA 417 dla systemów windowych i CiA 419 dla systemów HVAC.
| Obiekt CiA 419 | Indeks | Opis |
|---|---|---|
| Temperatura powietrza nawiewanego | 0x6010:01 | INT16, jednostka 0,01°C — podzielić przez 100, aby uzyskać wartość w °C |
| Temperatura powietrza powrotnego | 0x6010:02 | INT16, jednostka 0,01°C — powietrze powrotne/wywiewane z strefy |
| Temperatura powietrza zewnętrznego | 0x6010:05 | INT16, jednostka 0,01°C — odczyt czujnika otoczenia |
| Zadana temperatura | 0x6011:01 | INT16, jednostka 0,01°C — zapisywalna przez master do sterowania wartością zadaną |
| Zadana prędkość wentylatora | 0x6020:01 | UINT16, jednostka 0,01% — 0–10000 = 0–100% polecenie prędkości |
| Rzeczywista prędkość wentylatora | 0x6020:02 | UINT16, jednostka 0,01% — rzeczywisty procent wyjścia wentylatora |
| Zadana pozycja zaworu | 0x6030:01 | UINT16, jednostka 0,01% — polecenie zaworu grzania/chłodzenia |
| Rzeczywista pozycja zaworu | 0x6030:02 | UINT16, jednostka 0,01% — sprzężenie zwrotne pozycji zaworu |
| Tryb pracy | 0x6040:01 | UINT8 — 0=wyłączony, 1=ogrzewanie, 2=chłodzenie, 3=automatyczny, 4=tylko wentylator |
| Stan alarmu | 0x6050:01 | Pole bitowe UINT32 — każdy bit reprezentuje konkretny kod alarmu |
Bramy CANopen do BACnet, Modbus i KNX
Większość systemów automatyki budynkowej (KNX, BACnet, Modbus) nie obsługuje natywnie CANopen – brama protokołów pośredniczy między światami magistrali polowych. Powszechnie stosowane są trzy rodziny bram.
| Bramka | Protokoły | Uwagi |
|---|---|---|
| Ixxat CANopen Gateway | CANopen ↔ Modbus TCP/RTU | Konfigurowalny przez interfejs WWW – mapowanie obiektów OD CANopen na rejestry holding Modbus; obsługuje do 127 węzłów CANopen |
| Anybus X-gateway CANopen–BACnet | CANopen ↔ BACnet IP | HMS Networks – mapowanie obiektów BACnet przez Anybus Configuration Manager; stosowany w dużych integracjach BMS |
| EMS Electronic CANopen–KNX | CANopen ↔ KNX TP | Mapuje obiekty CANopen PDO/SDO na adresy grupowe KNX; konfiguracja przez wtyczkę ETS6 |
| Weinzierl BAOS CANopen Bridge | CANopen ↔ KNX IP | Routing KNX IP z funkcją mastera CANopen; stosowany w bramach rozdzielnic |
Przed zamówieniem bramy zawsze poproś producenta urządzenia o plik EDS. Bez EDS nie można określić, które indeksy obiektów obsługuje urządzenie i czy implementuje standardowy profil CiA, czy tylko obiekty producenta. Niektóre agregaty chłodnicze udostępniają tylko podzbiór obiektów CiA 419 i wymagają obiektów producenta dla kodów alarmowych.
Powiązane przewodniki
Potrzebujesz integracji urządzeń CANopen z BMS?
Konfigurujemy i dostarczamy bramy CANopen-KNX, CANopen-BACnet i CANopen-Modbus z pełnym mapowaniem słownika obiektów, uruchomieniem opartym na EDS i konfiguracją PDO dla systemów HVAC.
Poproś o wycenę →