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

CANopen

CANopen — это коммуникационный протокол и профиль более высокого уровня, базирующийся на стандарте Controller Area Network (CAN). Он предназначен для организации обмена данными между встроенными системами в промышленной автоматизации, мобильной технике, медицинском оборудовании и других областях, где требуется надёжная и детерминированная передача информации в реальном времени. CANopen стандартизирован международным консорциумом CAN in Automation (CiA) и описан в спецификациях EN 50325-4, а также в ряде документов CiA (например, CiA 301, CiA 302).

История

Протокол CANopen был разработан в начале 1990-х годов как часть проекта европейского консорциума ESPRIT (European Strategic Program on Research in Information Technology), направленного на создание унифицированного протокола для автоматизации производственных процессов. Первая версия спецификации была опубликована в 1993 году. В 1995 году управление развитием протокола перешло к организации CAN in Automation (CiA), которая с тех пор поддерживает и развивает стандарт.

CANopen пришёл на смену более ранним и менее стандартизированным решениям, таким как DeviceNet (разработанный компанией Allen-Bradley) и Smart Distributed System (SDS, Honeywell). В отличие от них, CANopen предлагал открытую архитектуру, не привязанную к одному производителю, и более гибкую систему профилей устройств. К началу 2000-х годов протокол стал доминирующим в европейской промышленной автоматизации, особенно в станкостроении, робототехнике и системах управления движением.

Архитектура и принципы работы

Модель OSI и CANopen

CANopen реализует уровни с 3-го по 7-й модели OSI (сетевой, транспортный, сеансовый, представительский и прикладной), используя в качестве физического и канального уровня стандарт CAN (ISO 11898). Физический уровень CAN обеспечивает дифференциальную передачу сигнала по витой паре, скорость до 1 Мбит/с (на коротких расстояниях) и встроенный механизм арбитража на основе приоритетов.

Объектный словарь

Центральным элементом каждого устройства CANopen является объектный словарь (Object Dictionary, OD). Это структурированная база данных, содержащая все параметры, конфигурационные данные и переменные состояния устройства. Каждый объект в словаре имеет уникальный 16-битный индекс и, при необходимости, 8-битный подындекс. Объектный словарь разделён на стандартные области:

  • 0x0000–0x0FFF: профили устройств (специфичные для типа устройства);
  • 0x1000–0x1FFF: коммуникационные объекты (например, идентификаторы, тайминги);
  • 0x2000–0x5FFF: производитель-специфичные объекты;
  • 0x6000–0x9FFF: объекты, определённые в профилях устройств.

Коммуникационные объекты

CANopen определяет несколько типов коммуникационных объектов (Communication Objects, COB), каждый из которых использует свой идентификатор (COB-ID) в поле арбитража CAN-кадра:

  • SDO (Service Data Object): используется для доступа к объектному словарю удалённого устройства. Обеспечивает надёжную передачу данных с подтверждением (клиент-серверная модель). Применяется для конфигурации и диагностики.
  • PDO (Process Data Object): предназначен для быстрой передачи данных реального времени (например, текущих значений датчиков, команд управления). Передача происходит без подтверждения, с использованием механизма «производитель-потребитель». PDO могут быть синхронными (привязанными к SYNC-сообщению) или асинхронными (по событию).
  • NMT (Network Management): управляет состоянием узлов сети (инициализация, запуск, остановка, сброс). Использует мастер-слейв модель.
  • SYNC (Synchronization): широковещательное сообщение, синхронизирующее работу всех узлов. Позволяет организовать одновременный сбор данных или выдачу команд.
  • EMCY (Emergency): сообщение об ошибке или аварийной ситуации, передаваемое устройством при возникновении критического события.
  • LSS (Layer Setting Services): сервисы для настройки адресов и параметров физического уровня.

Сетевое управление

Сеть CANopen может работать в режиме «мастер-слейв» или «мультимастер». Обычно один узел назначается мастером NMT, который управляет состояниями остальных узлов. Каждое устройство проходит через состояния: инициализация, пред-операционное (доступен только SDO), операционное (доступны PDO и SDO), остановленное. Переходы между состояниями управляются NMT-сообщениями.

Профили устройств

Для обеспечения совместимости устройств разных производителей CANopen использует профили устройств (Device Profiles). Они определяют обязательные и опциональные объекты объектного словаря для конкретного типа оборудования. Наиболее распространённые профили:

  • CiA 401: для модулей ввода/вывода (I/O);
  • CiA 402: для приводов и сервоприводов (двигатели, инверторы);
  • CiA 404: для датчиков и измерительных преобразователей;
  • CiA 405: для контроллеров;
  • CiA 406: для кодировщиков (энкодеров);
  • CiA 410: для устройств измерения температуры;
  • CiA 417: для медицинских устройств (например, инфузионных насосов).

Профиль CiA 402 (приводы) является одним из наиболее сложных и широко используемых. Он определяет режимы работы: профиль положения, профиль скорости, профиль крутящего момента, гоминг (поиск нулевой позиции), интерполированный режим и другие.

Применение

CANopen используется в различных отраслях промышленности и техники:

  • Промышленная автоматизация: управление станками с ЧПУ, роботизированными манипуляторами, конвейерными линиями. Благодаря детерминированности и низкой задержке, протокол подходит для систем реального времени.
  • Мобильная техника: строительная, сельскохозяйственная, коммунальная техника (экскаваторы, тракторы, погрузчики). CANopen часто используется в сочетании с протоколом J1939 (для дизельных двигателей).
  • Медицинское оборудование: аппараты ИВЛ, инфузионные насосы, диагностические системы. Профиль CiA 417 специально разработан для медицинских применений.
  • Энергетика: системы управления солнечными панелями, ветрогенераторами, подстанциями.
  • Транспорт: железнодорожная автоматика, системы управления дверями, климат-контроль в вагонах.
  • Робототехника: координация нескольких сервоприводов, обратная связь по положению и скорости.

Преимущества и недостатки

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

  • Детерминированность: благодаря приоритетному арбитражу CAN, время доставки критических сообщений гарантировано.
  • Гибкость: объектный словарь и профили устройств позволяют адаптировать протокол под широкий спектр задач.
  • Открытость: стандарт не привязан к одному производителю, спецификации доступны для всех членов CiA.
  • Надёжность: CAN-физический уровень устойчив к электромагнитным помехам, что важно для промышленных условий.
  • Низкая стоимость: контроллеры CAN широко распространены и недороги.

Недостатки

  • Ограниченная скорость: максимальная скорость 1 Мбит/с (на практике часто 125–500 кбит/с) недостаточна для некоторых приложений (например, видеопередача).
  • Ограниченная длина сети: при 1 Мбит/с максимальная длина сегмента составляет около 40 метров; для больших расстояний требуются повторители.
  • Сложность конфигурации: настройка объектного словаря и PDO-связей может быть трудоёмкой, особенно для сложных систем.
  • Отсутствие встроенной безопасности: протокол не предусматривает шифрования или аутентификации; для защищённых приложений требуются дополнительные меры.

Инструменты и реализация

Для разработки и отладки систем CANopen существует множество программных и аппаратных средств:

  • Стек протокола: открытые реализации (например, CANopenNode, Lely CANopen) и коммерческие (IXXAT, Vector, Peak-System).
  • Конфигураторы: графические инструменты для настройки объектного словаря и PDO-связей (например, CANopen Configuration Tool от Vector).
  • Анализаторы: программы для мониторинга трафика CANopen (например, CANalyzer, PCAN-View).
  • Аппаратные средства: интерфейсы CAN-USB, CAN-анализаторы, повторители.

Сравнение с альтернативами

CANopen часто сравнивают с другими протоколами на основе CAN:

  • DeviceNet: более старый протокол, ориентированный на североамериканский рынок. Менее гибкий в настройке, но проще в конфигурации.
  • J1939: используется в основном в транспортных средствах (грузовики, автобусы). Отличается большей длиной сообщения (8 байт против 8 в CANopen) и фиксированными идентификаторами.
  • EtherCAT: более современный протокол на основе Ethernet, обеспечивающий гораздо более высокую скорость (до 100 Мбит/с) и меньшую задержку. Однако требует более дорогого оборудования и сложнее в настройке.

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

  • CANopen поддерживает до 127 узлов в одной сети (при использовании 11-битных идентификаторов CAN).
  • Протокол используется в Международной космической станции (МКС) для управления некоторыми научными экспериментами.
  • В 2023 году вышла версия спецификации CiA 301 версии 4.3, которая добавила поддержку 64-битных данных и улучшенную диагностику.
  • CANopen является основой для протокола CANopen FD (CiA 1301), который использует CAN FD (Flexible Data-Rate) для увеличения скорости передачи данных до 8 Мбит/с.

Источники

  • CAN in Automation (CiA). CiA 301: CANopen Application Layer and Communication Profile, Version 4.3, 2023.
  • CAN in Automation (CiA). CiA 302: CANopen Additional Application Layer Functions, Version 4.3, 2023.
  • CAN in Automation (CiA). CiA 402: CANopen Device Profile for Drives and Motion Control, Version 3.0, 2015.
  • CAN in Automation (CiA). CiA 417: CANopen Device Profile for Medical Devices, Version 2.0, 2018.
  • ISO 11898-1:2015. Road vehicles — Controller area network (CAN) — Part 1: Data link layer and physical signalling.
  • EN 50325-4:2002. Industrial communications subsystem based on ISO 11898 (CAN) for controller-device interfaces — Part 4: CANopen.
  • CANopenNode. Open-source CANopen stack. https://github.com/CANopenNode/CANopenNode
  • Lely CANopen. Open-source CANopen library. https://github.com/lely-industries/lely-core
  • Vector Informatik. CANopen Configuration Tool. https://www.vector.com
  • Peak-System. PCAN-View. https://www.peak-system.com

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

На главную BFOmetr →