Открыть сервис

Process Data Object

Process Data Object (PDO, объект технологических данных) — это элемент протокола обмена данными в сетях промышленной автоматизации, построенных на базе стандарта CAN (Controller Area Network). PDO предназначен для быстрой и детерминированной передачи в реальном времени дискретных и аналоговых сигналов между устройствами (датчиками, исполнительными механизмами, контроллерами) без избыточных служебных данных. В отличие от сервисных сообщений (SDO — Service Data Object), PDO не требует подтверждения приёма и не содержит адресации в заголовке, что обеспечивает минимальную задержку и высокую пропускную способность.

История и стандартизация

Технология PDO возникла в рамках развития протокола CANopen (CiA 301), разработанного международной организацией CAN in Automation (CiA) в начале 1990-х годов. CANopen был создан как стандартизированный протокол более высокого уровня поверх физического и канального уровней CAN, чтобы обеспечить совместимость устройств разных производителей в системах промышленной автоматизации, управления движением и встроенных системах.

Первая версия спецификации CANopen (CiA DS-301) была опубликована в 1994 году. В ней были определены два основных типа коммуникационных объектов: PDO (для передачи данных реального времени) и SDO (для настройки параметров и диагностики). Впоследствии стандарт многократно дорабатывался, а концепция PDO была адаптирована и в других протоколах на основе CAN, например, в DeviceNet и J1939 (для транспортных средств). В 2000-х годах PDO-подобные механизмы появились в протоколах Industrial Ethernet (EtherCAT, Powerlink, PROFINET IRT), где они обеспечивают аналогичную детерминированную передачу данных.

Структура и формат PDO

PDO-сообщение состоит из одного CAN-кадра (стандартный или расширенный идентификатор) и поля данных длиной от 0 до 8 байт (в классическом CAN). В CAN FD (Flexible Data Rate) длина данных может достигать 64 байт, что увеличивает объём передаваемой информации за один цикл.

Идентификатор (COB-ID)

Каждый PDO имеет уникальный идентификатор (COB-ID — Communication Object Identifier), который определяет его приоритет и тип. В CANopen идентификатор PDO состоит из:

  • Функционального кода (4 бита) — указывает на тип PDO (например, TPDO1 — передающий PDO первого канала, RPDO1 — принимающий PDO первого канала).
  • Node-ID (7 бит) — идентификатор узла (устройства) в сети. Диапазон значений: 1–127 (0 зарезервирован для широковещательных сообщений).

Таким образом, каждый узел может иметь до 4 передающих (TPDO) и 4 принимающих (RPDO) каналов, каждый со своим COB-ID. В расширенной версии CANopen (CiA 301 v4.2) количество каналов увеличено до 16.

Данные

Поле данных PDO содержит отображённые (mapped) объекты из словаря объектов устройства. Отображение — это процесс, при котором в одном PDO объединяются несколько переменных (например, 8 бит цифрового входа, 16 бит аналогового значения, 8 бит статуса). Максимальная длина данных в одном PDO ограничена 8 байтами (или 64 байтами в CAN FD). Отображение задаётся в объектах словаря 0x1A00–0x1A1F (для TPDO) и 0x1600–0x161F (для RPDO).

Пример отображения для TPDO1:

  • 0x6000, подиндекс 01, длина 8 бит (цифровой вход 1)
  • 0x6401, подиндекс 01, длина 16 бит (аналоговое значение 1)
  • 0x6502, подиндекс 00, длина 8 бит (статус устройства)

В результате PDO содержит 4 байта данных (8+16+8).

Типы PDO

В CANopen определены два основных типа PDO по способу инициализации передачи:

1. Передающие PDO (TPDO — Transmit PDO)

TPDO отправляются от узла (например, датчика) к одному или нескольким получателям (например, контроллеру). Инициализация передачи может происходить по одному из следующих событий:

  • По событию (event-driven) — при изменении одного или нескольких отображённых объектов (например, при срабатывании дискретного датчика). Для предотвращения лавинной рассылки используется механизм «ингибирования» (запрет повторной передачи в течение заданного времени).
  • По таймеру (timer-driven) — циклически с заданным периодом (например, каждые 10 мс).
  • По запросу (remote request) — после получения удалённого запроса (RTR-фрейм в CAN).
  • Синхронно (synchronous) — по приходу глобального синхронизирующего сообщения SYNC (COB-ID 0x80). Этот режим используется для синхронизации измерений в распределённых системах.

2. Принимающие PDO (RPDO — Receive PDO)

RPDO принимаются узлом (например, контроллером) от других устройств. Обработка принятых данных может быть:

  • Немедленной — данные сразу записываются в соответствующие объекты словаря.
  • Синхронной — данные буферизируются и применяются только после получения следующего сообщения SYNC.

3. Динамическое PDO (D-PDO)

В некоторых реализациях CANopen (например, в CiA 302) поддерживается динамическое создание и удаление PDO во время работы сети, что позволяет адаптировать конфигурацию под изменяющиеся требования.

Применение PDO

PDO широко используются в системах, где требуется высокая скорость и детерминизм обмена данными:

  • Промышленная автоматизация — обмен сигналами между программируемыми логическими контроллерами (ПЛК), удалёнными модулями ввода-вывода, сервоприводами, частотными преобразователями.
  • Робототехника — передача команд управления и обратной связи от датчиков положения, скорости, момента.
  • Автомобильная электроника — в протоколах J1939 и CANopen для управления двигателем, трансмиссией, тормозной системой.
  • Медицинское оборудование — в системах управления диагностическими аппаратами (МРТ, КТ, УЗИ).
  • Энергетика — в подстанциях, системах управления возобновляемыми источниками энергии (ветрогенераторы, солнечные инверторы).

Преимущества и ограничения

Преимущества

  • Высокая скорость — минимальная задержка (до 1 мкс для CAN FD) благодаря отсутствию подтверждений и служебных заголовков.
  • Детерминизм — приоритетная арбитражная система CAN гарантирует, что сообщение с наивысшим приоритетом будет передано без коллизий.
  • Эффективность — в одном PDO можно передать до 64 байт данных (в CAN FD) без дополнительных накладных расходов.
  • Гибкость — отображение позволяет объединять любые комбинации переменных из словаря объектов.

Ограничения

  • Ограниченный размер данных — в классическом CAN — не более 8 байт на одно сообщение, что требует разбиения больших массивов на несколько PDO.
  • Сложность конфигурации — настройка отображения и параметров PDO требует использования инструментов конфигурирования (например, EDS-файлов).
  • Отсутствие подтверждения — потеря PDO не обнаруживается на уровне протокола (ответственность прикладного уровня).
  • Зависимость от шины CAN — PDO работают только в сетях на основе CAN, хотя аналогичные механизмы есть в Industrial Ethernet.

Интересные факты

  • В CANopen максимальное количество PDO на один узел — 4 (по умолчанию) или 16 (расширенная версия). Однако суммарное количество PDO в сети ограничено пропускной способностью шины CAN (до 1 Мбит/с).
  • В протоколе EtherCAT (Ethernet for Control Automation Technology) используется концепция «PDO-подобных» объектов (Process Data Objects), которые передаются в циклических фреймах с детерминированной задержкой менее 1 мкс.
  • В автомобильной промышленности PDO (в рамках J1939) используются для передачи данных о состоянии двигателя, скорости, температуре охлаждающей жидкости, давлении масла и других параметров в реальном времени.

Источники

  • CAN in Automation (CiA). «CiA 301: CANopen application layer and communication profile», version 4.2.0, 2011.
  • CAN in Automation (CiA). «CiA 302: CANopen additional application layer functions», version 4.2.0, 2013.
  • International Organization for Standardization. «ISO 11898-1:2015 — Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling».
  • Pfeiffer, O., Ayre, A., & Keydel, C. «Embedded Networking with CAN and CANopen». Copperhill Technologies, 2008.
  • Lawrenz, W. «CAN System Engineering: From Theory to Practical Applications». Springer, 2013.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →