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

Запросить предложение →
Загрузка ...
Наверх