CANopen в автоматизации зданий: словарь объектов, PDO, SDO и профиль HVAC CiA 419
CANopen — это прикладной уровень поверх шины CAN, стандартизированный организацией CAN in Automation (CiA) как CiA 301. Он определяет, как устройства описывают свои данные (словарь объектов), как обмениваются технологическими значениями на высокой скорости (PDO), как считываются и записываются параметры при пусконаладке (SDO), как управляется сеть (NMT) — а также профили устройств, такие как CiA 419 для систем HVAC, которые точно указывают, какие объекты должен предоставлять чиллер или приточная установка.
Словарь объектов CANopen
Каждое устройство CANopen имеет словарь объектов (Object Dictionary, OD) — структурированную таблицу всех параметров и технологических значений, которые оно поддерживает. Каждая запись адресуется 16-битным индексом (0x0000–0xFFFF) и 8-битным субиндексом (0x00–0xFF). Производитель предоставляет OD в файле электронного описания данных (EDS) — текстовом файле в формате INI, который загружают инструменты конфигурирования, чтобы узнать, какие объекты поддерживает устройство.
| Индекс | Объект | Описание |
|---|---|---|
| 0x1000 | Тип устройства | Обязательный — идентифицирует реализованный профиль устройства CiA (например, 0x00190191 = CiA 419 HVAC) |
| 0x1001 | Регистр ошибок | Обязательный — битовое поле активных категорий ошибок (связь, устройство и т.д.) |
| 0x1008 | Имя устройства производителя | Необязательный — читаемая строка модели устройства |
| 0x1017 | Время heartbeat производителя | Цикл heartbeat в мс — 0 отключает heartbeat |
| 0x1018 | Объект идентификации | ID производителя, код продукта, ревизия, серийный номер (субиндексы 1–4) |
| 0x1400–0x15FF | Параметры связи RPDO | COB-ID, тип передачи и время запрета для каждого Receive PDO |
| 0x1600–0x17FF | Параметры отображения RPDO | Какие объекты OD отображаются в каждый RPDO (индекс, субиндекс, длина в битах) |
| 0x1800–0x19FF | Параметры связи TPDO | COB-ID, тип передачи, таймер события для каждого Transmit PDO |
| 0x1A00–0x1BFF | Параметры отображения TPDO | Какие объекты OD упакованы в каждый TPDO |
| 0x2000–0x5FFF | Объекты, специфичные для производителя | Технологические значения устройства — температуры чиллера, коды аварий, уставки |
| 0x6000–0x9FFF | Объекты профиля устройства CiA | Стандартизированные объекты профиля (CiA 419 HVAC: 0x6000–0x67FF) |
PDO — объекты данных процесса
PDO — это механизм обмена данными в реальном времени в CANopen: высокоскоростные CAN-кадры с низкими накладными расходами, передающие до 8 байт данных процесса. TPDO отправляет данные от устройства в сеть, 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 — если узел перестаёт отправлять сигналы, мастер обнаруживает отказ и может запустить тревогу в системе автоматизации здания.
Профили устройств 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 | Настройка через веб-интерфейс — сопоставление объектов CANopen OD с регистрами 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.
Запросить расчёт →