CANopen · CiA 301 · CiA 419 · PDO · SDO · NMT · Автоматизация зданий · 10 мин чтения

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Параметры связи RPDOCOB-ID, тип передачи и время запрета для каждого Receive PDO
0x1600–0x17FFПараметры отображения RPDOКакие объекты OD отображаются в каждый RPDO (индекс, субиндекс, длина в битах)
0x1800–0x19FFПараметры связи TPDOCOB-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 flooding

SDO — сервисные объекты данных

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.

Состояние NMTPDO активны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:01INT16, единица 0,01°C — разделите на 100 для значения в °C
Температура обратного воздуха0x6010:02INT16, единица 0,01°C — вытяжной/рециркуляционный воздух из зоны
Температура наружного воздуха0x6010:05INT16, единица 0,01°C — показания уличного датчика
Уставка температуры0x6011:01INT16, единица 0,01°C — записывается мастером для управления заданием
Уставка скорости вентилятора0x6020:01UINT16, единица 0,01% — 0–10000 = команда скорости 0–100%
Фактическая скорость вентилятора0x6020:02UINT16, единица 0.01% — фактический процент выходной мощности вентилятора
Заданное положение клапана0x6030:01UINT16, единица 0.01% — команда клапану отопления/охлаждения
Фактическое положение клапана0x6030:02UINT16, единица 0.01% — обратная связь по положению клапана
Режим работы0x6040:01UINT8 — 0=выкл, 1=отопление, 2=охлаждение, 3=авто, 4=только вентилятор
Статус аварии0x6050:01UINT32 битовое поле — каждый бит соответствует определенному коду аварии

CANopen-шлюзы к BACnet, Modbus и KNX

Большинство систем автоматизации зданий (KNX, BACnet, Modbus) не поддерживают CANopen «из коробки» — протокольный шлюз переводит данные между разными шинами. Широко используются три семейства шлюзов.

ШлюзПротоколыПримечания
Ixxat CANopen GatewayCANopen ↔ Modbus TCP/RTUНастройка через веб-интерфейс — сопоставление объектов CANopen OD с регистрами Modbus; поддержка до 127 узлов CANopen
Anybus X-gateway CANopen–BACnetCANopen ↔ BACnet IPHMS Networks — маппинг объектов BACnet через Anybus Configuration Manager; применяется в крупных системах BMS
EMS Electronic CANopen–KNXCANopen ↔ KNX TPПреобразует объекты PDO/SDO CANopen в групповые адреса KNX; настройка через плагин ETS6
Weinzierl BAOS CANopen BridgeCANopen ↔ KNX IPМаршрутизация KNX IP с функцией ведущего CANopen; используется в шлюзах для щитов управления

Перед заказом шлюза всегда запрашивайте EDS-файл у производителя оборудования. Без EDS невозможно определить, какие индексы объектов поддерживает устройство и реализует ли оно стандартный профиль CiA или использует только специфические объекты производителя. Некоторые чиллеры предоставляют лишь подмножество объектов CiA 419 и требуют объектов производителя для кодов тревог.

Нужна интеграция CANopen-устройств в вашу BMS?

Мы подбираем и поставляем шлюзы CANopen↔KNX, CANopen↔BACnet, CANopen↔Modbus с полным маппингом словаря объектов, настройкой на основе EDS и конфигурацией PDO для систем HVAC.

Запросить расчёт →
Загрузка ...
Наверх