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 →