CANopen в автоматизации зданий: Словарь объектов, PDO, SDO и профиль HVAC CiA 419
CANopen — это прикладной уровень, работающий поверх шины CAN, стандартизированный организацией CAN in Automation (CiA) как CiA 301. Он определяет, как устройства описывают свои данные (словарь объектов), как обмениваются технологическими значениями на высокой скорости (PDO), как читаются и записываются параметры при вводе в эксплуатацию (SDO) и как управляется сеть (NMT), а также профили типов устройств, такие как CiA 419 для систем HVAC, которые точно указывают, какие объекты должен предоставлять чиллер или AHU.
Словарь объектов CANopen
Каждое устройство CANopen имеет словарь объектов (OD) — структурированную таблицу всех параметров и технологических значений, поддерживаемых устройством. Каждая запись адресуется 16-битным индексом (0x0000–0xFFFF) и 8-битным субиндексом (0x00–0xFF). Производитель предоставляет OD в файле электронного описания данных (EDS) — текстовом файле в формате INI, который загружают инструменты конфигурирования, чтобы узнать, какие объекты поддерживает устройство.
| Индекс | Объект | Описание |
|---|---|---|
| 0x1000 | Тип устройства | Обязательный — идентифицирует реализованный профиль устройства CiA (например, 0x00190191 = CiA 419 HVAC) |
| 0x1001 | Регистр ошибок | Обязательный — битовое поле активных категорий ошибок (связь, специфика устройства и т.д.) |
| 0x1008 | Имя устройства производителя | Опциональный — читаемая строка модели устройства |
| 0x1017 | Время пульса производителя | Время цикла пульса в мс — 0 отключает пульс |
| 0x1018 | Объект идентификации | ID производителя, код продукта, ревизия, серийный номер (субиндексы 1–4) |
| 0x1400–0x15FF | Параметры связи RPDO | COB-ID, тип передачи и время блокировки для каждого PDO приема |
| 0x1600–0x17FF | Параметры отображения RPDO | Какие объекты OD отображаются в каждый RPDO (индекс, субиндекс, длина в битах) |
| 0x1800–0x19FF | Параметры связи TPDO | COB-ID, тип передачи, таймер события для каждого PDO передачи |
| 0x1A00–0x1BFF | Параметры отображения TPDO | Какие объекты OD упаковываются в каждый TPDO |
| 0x2000–0x5FFF | Объекты, специфичные для производителя | Технологические значения устройства — температуры чиллера, коды аварий, уставки |
| 0x6000–0x9FFF | Объекты профиля устройства CiA | Стандартизированные объекты профиля (CiA 419 HVAC: 0x6000–0x67FF) |
PDO — объекты данных процесса
PDO — это механизм обмена данными в реальном времени в CANopen: высокоскоростные CAN-кадры с низкими накладными расходами, передающие до 8 байт данных процесса без дополнительного протокольного заголовка, кроме самого CAN-кадра. Transmit PDO (TPDO) отправляет данные от устройства в сеть; Receive PDO (RPDO) принимает данные, записанные мастером или другим устройством.
Отображение PDO определяет, какие записи словаря объектов упаковываются в PDO. Например, TPDO1 чиллера может упаковывать температуру подаваемой воды (0x6010:01, 16 бит), температуру обратной воды (0x6010:02, 16 бит), статус работы компрессора (0x6020:01, 8 бит) и статус аварии (0x6030:01, 8 бит) — всего 6 байт в одном CAN-кадре, передаваемом каждую секунду.
Типы передачи PDO — таблица 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 — объекты сервисных данных
SDO используются для конфигурации и доступа к параметрам — чтения или записи любой записи словаря объектов с подтверждённым рукопожатием. В отличие от PDO (отправил и забыл), SDO-передачи гарантируют доставку и возвращают прочитанное значение или подтверждение записи. Доступ через SDO медленный (несколько CAN-кадров на одно чтение/запись) и используется при вводе в эксплуатацию, а не для циклических данных процесса.
Пример чтения/записи SDO — ручной кадр 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 — автомат состояний управления сетью
Мастер NMT (обычно шлюз CANopen или ПЛК) управляет рабочим состоянием всех узлов сети. После включения питания узлы автоматически переходят в состояние Pre-Operational — PDO неактивны, но доступен SDO для конфигурации. Мастер NMT отправляет широковещательную команду для перевода всех узлов в Operational, активируя обмен PDO.
| Состояние NMT | PDO активны | SDO активен | Примечания |
|---|---|---|---|
| Инициализация | Нет | Нет | Устройство запускается здесь при включении, переходит автоматически |
| Pre-Operational | Нет | Да | Настройка отображений PDO, задание параметров узла через SDO |
| Operational | Да | Да | Нормальное рабочее состояние — PDO и SDO активны |
| Остановлено | Нет | Нет | Состояние обслуживания — нет связи, кроме NMT |
Протокол Heartbeat (CiA 301) заменяет старый механизм Node Guarding. Каждый узел отправляет кадр heartbeat с настраиваемым интервалом (обычно 1000 мс). Мастер NMT отслеживает получение heartbeat — если узел перестает отправлять heartbeat, мастер обнаруживает отказ узла и может инициировать сигнал тревоги в системе автоматизации здания.
Профили устройств CiA 417 для лифтов и CiA 419 для систем HVAC
Профили устройств CiA стандартизируют структуру словаря объектов для конкретных типов оборудования, обеспечивая совместимость между устройствами разных производителей. Два профиля напрямую относятся к автоматизации зданий: CiA 417 для лифтовых систем и CiA 419 для систем HVAC.
| Объект CiA 419 | Индекс | Описание |
|---|---|---|
| Температура приточного воздуха | 0x6010:01 | INT16, единица 0,01 °C — разделите на 100 для значения в °C |
| Температура обратного воздуха | 0x6010:02 | INT16, единица 0,01 °C — температура в зоне/вытяжного воздуха |
| Температура наружного воздуха | 0x6010:05 | INT16, единица 0,01 °C — показания датчика окружающей среды |
| Уставка температуры | 0x6011:01 | INT16, единица 0,01 °C — записывается мастером для управления уставкой |
| Уставка скорости вентилятора | 0x6020:01 | UINT16, единица 0,01 % — 0–10000 = команда скорости 0–100% |
| Фактическая скорость вентилятора | 0x6020:02 | UINT16, единица 0.01% — фактический процент работы вентилятора |
| Уставка положения клапана | 0x6030:01 | UINT16, единица 0.01% — команда на клапан отопления/охлаждения |
| Фактическое положение клапана | 0x6030:02 | UINT16, единица 0.01% — обратная связь по положению клапана |
| Режим работы | 0x6040:01 | UINT8 — 0=выкл, 1=нагрев, 2=охлаждение, 3=авто, 4=только вентилятор |
| Статус аварии | 0x6050:01 | UINT32 битовое поле — каждый бит соответствует определенному коду аварии |
CANopen шлюзы к BACnet, Modbus и KNX
Большинство систем автоматизации зданий (KNX, BACnet, Modbus) не могут напрямую работать с CANopen — протокольный шлюз обеспечивает перевод между полевыми шинами. Широко используются три семейства шлюзов.
| Шлюз | Протоколы | Примечания |
|---|---|---|
| Ixxat CANopen Gateway | CANopen ↔ Modbus TCP/RTU | Настраивается через веб-интерфейс — сопоставление объектов OD CANopen с регистрами хранения Modbus; поддерживает до 127 узлов CANopen |
| Anybus X-gateway CANopen–BACnet | CANopen ↔ BACnet IP | HMS Networks — отображение объектов BACnet через Anybus Configuration Manager; используется в крупных интеграциях BMS |
| EMS Electronic CANopen–KNX | CANopen ↔ KNX TP | Отображает объекты PDO/SDO CANopen на групповые адреса KNX; настройка через плагин ETS6 |
| Weinzierl BAOS CANopen Bridge | CANopen ↔ KNX IP | Маршрутизация KNX IP с функцией мастера CANopen; используется в шлюзах щитов автоматизации |
Всегда запрашивайте EDS-файл у производителя оборудования перед заказом шлюза. Без EDS невозможно определить, какие индексы объектов поддерживает устройство и реализует ли оно стандартный профиль CiA или использует только специфические объекты производителя. Некоторые чиллеры предоставляют только подмножество объектов CiA 419 и требуют специфических объектов производителя для кодов аварий.
Связанные руководства
Нужна интеграция устройств CANopen в вашу BMS?
Мы настраиваем и поставляем шлюзы CANopen-KNX, CANopen-BACnet и CANopen-Modbus с полным отображением словаря объектов, настройкой на основе EDS и конфигурацией PDO для систем HVAC.
Запросить предложение →