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 →