CANopen

редактировать

CANopen - это протокол связи и спецификация профиля устройства для встроенных систем, используемых в автоматизации. Что касается модели OSI , CANopen реализует вышеперечисленные уровни, включая сетевой уровень . Стандарт CANopen состоит из схемы адресации, нескольких небольших протоколов связи и прикладного уровня, определенного профилем устройства. Коммуникационные протоколы поддерживают управление сетью, мониторинг устройств и связь между узлами, включая простой транспортный уровень для сегментации / десегментации сообщений. Протокол нижнего уровня, реализующий канал передачи данных и физические уровни, обычно представляет собой Controller Area Network (CAN), хотя устройства, использующие другие средства связи (например, Ethernet Powerlink, EtherCAT ) также может реализовать профиль устройства CANopen.

Базовое устройство CANopen и коммуникационные профили приведены в спецификации CiA 301, выпущенной CAN in Automation. Профили для более специализированных устройств построены на основе этого базового профиля и определены во многих других стандартах, выпущенных CAN в автоматизации, таких как CiA 401 для модулей ввода-вывода и CiA 402 для управления движением.

Содержание
  • 1 Модель устройства
    • 1.1 Словарь объектов
  • 2 Связь
    • 2.1 Коммуникационные объекты
      • 2.1.1 Предопределенный набор соединений
    • 2.2 Модели связи
    • 2.3 Протоколы
      • 2.3.1 Протоколы сетевого управления (NMT)
      • 2.3.2 Протокол объекта служебных данных (SDO)
      • 2.3.3 Протокол объекта данных процесса (PDO)
      • 2.3.4 Протокол объекта синхронизации (SYNC)
      • 2.3.5 Протокол объекта отметки времени (TIME)
      • 2.3.6 Протокол аварийного объекта (EMCY)
    • 2.4 Инициализация
  • 3 Электронный лист данных
  • 4 Глоссарий терминов CANopen
  • 5 См. Также
  • 6 Ссылки
  • 7 Внешние ссылки
Модель устройства

Каждое устройство CANopen должно реализовывать определенные стандартные функции в своем управляющем программном обеспечении.

  • A блок связи реализует протоколы для обмена сообщениями с другими узлами в сети.
  • Запуск и сброс устройства управляются с помощью конечного автомата . Он должен содержать состояния Инициализация, Предварительная эксплуатация, Работа и Остановлено. Переходы между состояниями выполняются путем передачи устройству объекта связи управления сетью (NMT).
  • словарь объектов - это массив переменных с 16-битным индексом. Кроме того, каждая переменная может иметь 8-битный субиндекс. Переменные могут использоваться для настройки устройства и отражения его среды, т.е. содержать данные измерений.
  • Приложение часть устройства фактически выполняет желаемую функцию устройства после конечного автомата. установлен в рабочее состояние. Приложение настраивается с помощью переменных в словаре объектов, а данные отправляются и принимаются через уровень связи.

Словарь объектов

Устройства CANopen должны иметь словарь объектов, который используется для настройки и связи с устройство. Запись в словаре объектов определяется:

  • индексом, 16-битным адресом объекта в словаре
  • именем объекта (тип / размер объекта), символическим типом объекта. в записи, такой как массив, запись или простая переменная
  • Имя, строка, описывающая запись
  • Тип, дает тип данных переменной (или тип данных всех переменных array)
  • Атрибут, который дает информацию о правах доступа для этой записи, это может быть чтение / запись, только чтение или только запись
  • Обязательный / Дополнительный (M / O) определяет, должно ли устройство, соответствующее спецификации устройства, реализовывать этот объект или нет.

Основные типы данных для значений словаря объектов, таких как логические, целые числа и с плавающей запятой определены в стандарте (их размер в битах опционально сохраняется в определении связанного типа, диапазон индекса 0x0001–0x001F), а также составные типы данных, такие как строки, массивы и записи (определены в индексе ra nge 0x0040–0x025F). Составные типы данных могут быть субиндексированы с помощью 8-битного индекса; значение в субиндексе 0 массива или записи указывает количество элементов в структуре данных и имеет тип UNSIGNED8.

Например, параметры связи устройства, стандартизированные в базовом профиле устройства CiA 301, отображаются в диапазоне индексов 0x1000–0x1FFF («область профиля связи»). Первые несколько записей в этой области следующие:

ИндексИмя объектаИмяТипАтрибутM / O
0x1000VARтип устройстваUNSIGNED32roM
0x1001VARрегистр ошибокUNSIGNED8roM
...
0x1008VARимя устройства производителяVis-StringconstO
...

При наличии подходящих инструментов содержимое объектного словаря устройства на основе электронного листа данных (EDS) можно настроить для устройства файл конфигурации (DCF) для интеграции устройства в конкретную сеть CANopen. Согласно CiA 306 формат EDS-файла - это формат INI-файла. В ближайшее время появится формат в стиле XML, описанный в CiA 311.

Связь

Объекты связи

CAN-шина, уровень канала данных CANopen, может только передавать короткие пакеты, состоящие из 11-битного идентификатора, бита запроса удаленной передачи (RTR) и от 0 до 8 байтов данных. Стандарт CANopen делит 11-битный идентификатор кадра CAN на 4-битный код функции и 7-битный идентификатор узла CANopen. Это ограничивает количество устройств в сети CANopen до 127 (0 зарезервировано для широковещательной передачи). Расширение стандарта шины CAN (CAN 2.0 B) позволяет использовать расширенные идентификаторы кадров длиной 29 бит, но на практике сети CANopen, достаточно большие, чтобы требовать расширенного диапазона идентификаторов, встречаются редко.

В CANopen 11-битный идентификатор CAN-кадра известен как идентификатор объекта связи или COB-ID. В случае коллизии передачи, арбитраж шины, используемый в шине CAN, позволяет фрейму с наименьшим идентификатором быть переданным первым и без задержки. Использование низкого кода для критичных по времени функций обеспечивает минимально возможную задержку.

Содержимое 11-битного кадра CANopen:

CAN-IDRTRДлина данныхДанные
Длина11 бит1 бит4 бита0-8 байтов

Кадр данных с 11-битным идентификатором также называется «форматом основного кадра». ".

При отображении CAN-ID по умолчанию кадры сортируются путем присвоения кода функции (NMT, SYNC, EMCY, PDO, SDO...) первым 4 битам, так что критически важные функции получают приоритет. Однако это сопоставление можно настроить для специальных целей (за исключением NMT и SDO, необходимых для базовой связи).

Код функцииID узла
Длина4 бита7 бит

Стандарт резервирует определенные идентификаторы CAN-ID для управления сетью и передачи SDO. Некоторые функциональные коды и CAN-ID должны быть сопоставлены со стандартными функциями после инициализации устройства, но могут быть настроены для других целей позже.

Предопределенный набор соединений

Для простых сетевых структур CANopen поддерживает предопределенное распределение идентификаторов сообщений.

Коммуникационный объектCOB-ID в шестнадцатеричном форматеВедомые узлыСпецификация
Управление узлом NMT000Только приемCiA 301
Глобальная команда отказоустойчивости001?CiA 304
Sync080Только приемCiA 301
Авария080 + NodeIDПередачаCiA 301
TimeStamp100Только приемCiA 301
PDO180 + NodeID. 200 + NodeID. 280 + NodeID. 300 + NodeID. 380 + NodeID. 400 + NodeID. 480 + NodeID. 500 + NodeID1. Передать PDO. 1. Получить PDO. 2. Передать PDO. 2. Получить PDO. 3. Передать PDO. 3. Получить PDO. 4. Передать PDO. 4. Прием PDOCiA 301
SDO580 + NodeID. 600 + NodeIDПередача. ПриемCiA 301
Мониторинг узла NMT (защита узла / сердцебиение)700 + NodeIDПередачаCiA 301
LSS7E4. 7E5Передача. ПриемCiA 305

Модели связи

При обмене сообщениями между узлами CANopen используются разные типы моделей связи.

В отношениях главный / подчиненный один узел CANopen назначается в качестве главного, который отправляет или запрашивает данные у подчиненных. Протокол NMT является примером модели связи ведущий / ведомый.

A клиент / сервер отношения реализованы в протоколе SDO, где клиент SDO отправляет данные (индекс словаря объектов и субиндекс) на сервер SDO, который отвечает одним или несколькими пакетами SDO, содержащими запрошенные данные ( содержимое объектного словаря по данному индексу). Модель

A производитель / потребитель используется в протоколах Heartbeat и Node Guarding. В модели выталкивания производитель / потребитель производитель отправляет данные потребителю без специального запроса, тогда как в модели выталкивания потребитель должен запрашивать данные у производителя.

Протоколы

Протоколы сетевого управления (NMT)

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

Протокол управления модулем используется мастером NMT для изменения состояния устройств. COB-ID CAN-кадра этого протокола всегда равен 0, что означает, что он имеет код функции 0 и идентификатор узла 0, что означает, что каждый узел в сети будет обрабатывать это сообщение. Фактический идентификатор узла, для которого предназначена команда, дается в части данных сообщения (во втором байте). Это также может быть 0, что означает, что все устройства на шине должны перейти в указанное состояние.

COB-IDБайт данных 0Байт данных 1
0x000Запрошенное состояниеАдресный узел
Код команды NMTЗначение
0x01Перейти в «рабочий»
0x02Перейти в «остановлено»
0x80Перейти в ' предоперационный '
0x81Перейти к «сбросу узла»
0x82Перейти к «сбросу связи»

Используется протокол Heartbeat для мониторинга узлов в сети и проверки их работоспособности. Производитель пульса (обычно ведомое устройство) периодически отправляет сообщение с двоичным функциональным кодом 1110 и своим идентификатором узла (COB-ID = 0x700 + идентификатор узла). Часть кадра с данными содержит байт, указывающий состояние узла. Эти сообщения читает потребитель пульса. Если сообщения не приходят в течение определенного периода времени (определенного в объектном словаре устройств), потребитель может предпринять действия, например, сбросить устройство или указать ошибку. Формат кадра:

COB-IDБайт данных 0
0x700 + идентификатор узлаСостояние
Код состояния NMTПредставленное состояние
0x00Загрузка (инициализация)
0x04Остановлено
0x05В рабочем состоянии
0x7fПредварительно в работе

Устройства CANopen должны автоматически переходить из состояния Initializing в Pre-Operational во время загрузки. Когда этот переход выполняется, на шину отправляется одно контрольное сообщение. Это протокол загрузки. .

Протокол ответа / ответа (модель вытягивания), называемый охраной узла, существует для мониторинга подчиненного устройства.

Протокол объекта служебных данных (SDO)

Протокол SDO используется для настройки и чтения значений из объектного словаря удаленного устройства. Устройство, к объектному словарю которого осуществляется доступ, является сервером SDO, а устройство, обращающимся к удаленному устройству, является клиентом SDO. Связь всегда инициируется SDO-клиентом. В терминологии CANopen связь просматривается с сервера SDO, так что чтение из объектного словаря приводит к загрузке SDO, а запись в статью словаря - это загрузка SDO.

Поскольку значения словаря объектов могут быть больше восьми байтов, установленных для кадра CAN, протокол SDO реализует сегментацию и десегментацию более длинных сообщений. Собственно, таких протоколов два: загрузка / выгрузка SDO и загрузка / выгрузка блока SDO. Передача блоков SDO - это новое дополнение к стандарту, которое позволяет передавать большие объемы данных с немного меньшими издержками протокола.

COB-ID соответствующих сообщений передачи SDO от клиента к серверу и от сервера к клиенту могут быть установлены в словаре объектов. В объектном словаре по адресам 0x1200 - 0x127F можно настроить до 128 серверов SDO. Точно так же клиентские соединения SDO устройства можно настроить с помощью переменных 0x1280 - 0x12FF. Однако предопределенный набор соединений определяет канал SDO, который можно использовать даже сразу после загрузки (в предоперационном состоянии) для настройки устройства. COB-ID этого канала: 0x600 + идентификатор узла для приема и 0x580 + идентификатор узла для передачи.

Чтобы инициировать загрузку, SDO-клиент отправляет следующие данные в CAN-сообщении с COB-ID «получения» SDO-канала.

Номер байта:Байт 1Байт 2-3Байт 4Байт 5-8
Длина:3 бита1 бит2 бита1 бит1 бит2 байта1 байт4 байта
Значение:ccs = 1зарезервировано (= 0)nesиндекссубиндексdata
  • ccs - спецификатор клиентской команды для передачи SDO, это 0 для загрузки сегмента SDO, 1 для инициирования загрузки, 2 для инициирования загрузки, 3 для загрузки сегмента SDO, 4 для прерывания передачи SDO, 5 для загрузки блока SDO и 6 для загрузки блока SDO
  • n- это количество байтов в части данных сообщения, которые не содержат данных, действует только в том случае, если установлены e и s.
  • e, если установлено, указывает на ускоренную передачу, т.е. все данные, которыми обмениваются, содержатся в сообщении. Если этот бит сброшен, сообщение представляет собой сегментированную передачу, при которой данные не помещаются в одно сообщение и используются несколько сообщений.
  • s, если он установлен, указывает, что размер данных указан в n (если установлен e) или в части данных сообщения
  • index - это индекс объектного словаря данных, к которым нужно получить доступ
  • субиндекс - субиндекс объектного словаря переменная
  • data содержит данные для загрузки в случае ускоренной передачи (установлено e), или размер данных для загрузки (s установлено, e не установлено)

Протокол объекта данных процесса (PDO)

Протокол объекта данных процесса используется для обработки данных в реальном времени между различными узлами. Вы можете передавать до 8 байтов (64 бит) данных на один PDO с устройства или на устройство. Один PDO может содержать несколько записей словаря объектов, а объекты в одном PDO настраиваются с помощью сопоставления и записей словаря объектов параметров.

Есть два типа PDO: передаваемые и принимаемые PDO (TPDO и RPDO). Первый предназначен для данных, поступающих с устройства (устройство является производителем данных), а второй - для данных, поступающих на устройство (устройство является потребителем данных); то есть с помощью RPDO вы можете отправлять данные на устройство, а с помощью TPDO вы можете читать данные с устройства. В предопределенном наборе соединений доступны идентификаторы для четырех (4) TPDO и четырех (4) RPDO. В конфигурации возможно 512 PDO.

PDO можно отправлять синхронно или асинхронно. Синхронные PDO отправляются после сообщения SYNC, тогда как асинхронные сообщения отправляются после внутреннего или внешнего триггера. Например, вы можете сделать запрос к устройству на передачу TPDO, который содержит необходимые вам данные, отправив пустой TPDO с флагом RTR (если устройство настроено для приема запросов TPDO).

С помощью RPDO вы можете, например, запустить два устройства одновременно. Вам нужно только сопоставить один и тот же RPDO с двумя или более разными устройствами и убедиться, что эти RPDO сопоставлены с одним и тем же COB-ID.

Протокол объекта синхронизации (SYNC)

Sync-Producer предоставляет сигнал синхронизации для Sync-Consumer. Когда Sync-Consumer получает сигнал, он начинает выполнять свои синхронные задачи.

В общем, фиксация времени передачи синхронных сообщений PDO в сочетании с периодичностью передачи объекта синхронизации гарантирует, что сенсорные устройства могут организовать выборку переменных процесса и что исполнительные устройства могут применять свое срабатывание в скоординированном мода.

Идентификатор объекта синхронизации доступен по индексу 1005h.

Протокол объекта отметки времени (TIME)

Обычно объект отметки времени представляет время в виде 6-байтового поля: счетчик миллисекунд после полуночи (не более 27 бит, хранящихся в 32-битное поле) и 16-битное количество дней без знака с 1 января 1984 г. (7 июня 2163 г. оно будет переполнено.)

Для некоторых критичных по времени приложений, особенно в больших сетях с пониженной скоростью передачи, требуется очень точная синхронизация; может потребоваться синхронизировать локальные часы с точностью порядка микросекунд. Это достигается за счет использования дополнительного протокола синхронизации с высоким разрешением, который использует специальную форму сообщения с отметкой времени для регулировки неизбежного дрейфа локальных часов.

Отметка времени с высоким разрешением кодируется как unsigned32 с разрешением 1 микросекунда, что означает, что счетчик времени перезапускается каждые 72 минуты. Он настраивается путем отображения метки времени высокого разрешения (объект 1013h) в PDO.

Протокол аварийного объекта (EMCY)

Аварийные сообщения запускаются при возникновении ситуации внутренней фатальной ошибки устройства и передаются от соответствующего прикладного устройства к другим устройствам с высоким приоритетом. Это делает их подходящими для предупреждений об ошибках типа прерывания. Экстренная телеграмма может быть отправлена ​​только один раз на «событие ошибки», т.е. экстренные сообщения не должны повторяться. До тех пор, пока на устройстве не возникает новых ошибок, дальнейшее сообщение об аварийной ситуации не отправляется. С помощью профиля связи CANopen определены коды аварийных ошибок, регистр ошибок и дополнительная информация, относящаяся к устройству, указываются в профилях устройства.

Инициализация

Пример трассировки связи между главным устройством и двумя подчиненными датчиками давления, настроенными для идентификатора 1 и идентификатора узла 2.

CAN IDДЛИНА ДАННЫХДАННЫЕОписание
0x0201 00Мастер переводит все устройства на шине в рабочий режим
0x800Мастер отправляет сообщение SYNC, которое запускает устройства для отправки данных
0x1814CD 82 01 00Узел с ID 1 (CID-0x180), считывание давления 0x0182CD (99021) паскалей
0x1824E5 83 01 00Узел с ID 2 (CID-0x180), давление считывания 0x0183E5 (99301) паскалей
Электронный лист данных

Электронный лист данных (EDS) - это формат файла, определенный в CiA306, который описывает поведение связи и записи словаря объектов устройства. Это позволяет таким инструментам, как сервисные инструменты, инструменты конфигурации, инструменты разработки и другие, правильно обращаться с устройствами.

Эти файлы EDS являются обязательными для прохождения теста на соответствие CiA CANopen.

С конца 2007 года в CiA311 определен новый формат на основе XML, называемый XDD. XDD соответствует стандарту ISO 15745.

Глоссарий терминов CANopen
  • PDO : Объект данных процесса - входы и выходы. Значения типа скорости вращения, напряжения, частоты, электрического тока и т. Д.
  • SDO : объект служебных данных - настройки конфигурации, возможно идентификатор узла, скорость передачи, смещение, усиление и т. Д.
  • COB-ID : идентификатор объекта связи
  • CAN ID : идентификатор CAN. Это 11-битный идентификатор сообщения CAN, который находится в начале каждого сообщения CAN на шине.
  • EDS : Электронная таблица данных. Это файл в формате INI или XML.
  • DCF : файл конфигурации устройства. Это измененный файл EDS с настройками идентификатора узла и скорости передачи.
См. Также
Справочная информация
  1. ^Спецификация прикладного уровня CiA 301 CANopen, которую можно бесплатно загрузить с CAN в автоматизации
  2. ^Спецификация электронного листа данных (EDS) CiA 306 CANopen
  3. ^Спецификация CiA 311 CANopen XML-EDS
  4. ^Предопределенный набор соединений из CANopen Basics [8]
  5. ^Спецификация профиля устройства CANopen CiA 401 для общих модулей ввода / вывода, которую можно бесплатно загрузить с CAN в автоматизации
  6. ^Профиль устройства CiA 402 CANopen для движения контроллеры и приводы (такие же, как IEC 61800-7-201 / 301)

.

Внешние ссылки
Последняя правка сделана 2021-05-13 10:03:12
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте