Компания «АКОМ — Автоматизация и КОМмуникации»

Ваш город — США
Угадали?

Отдел продаж: sales@i-nets.ru

Отдел тех. поддержки: support@i-nets.ru

8 800 222 32 80

Компания «АКОМ — Автоматизация и КОМмуникации»

Ваш город — США
Угадали?

Отдел продаж: sales@i-nets.ru

Отдел тех. поддержки: support@i-nets.ru

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

В сфере промышленной автоматизации протокол CANopen благодаря своей эффективности и гибкости стал популярным выбором для связи между устройствами.


CANopen-article-main

В этой статье доступно разбирается процесс установки связи между ведущим (Master) и ведомым (Slave) узлами CANopen. На реальных примерах сообщений мы подробно рассмотрим настройку PDO Mapping и анализ ошибок, возникающих при конфигурации. Это руководство поможет вам разобраться во всем процессе организации CANopen-связи между главным и подчиненным устройствами.

Процесс установки связи Master/Slave: от инициализации до передачи данных

Основной процесс организации CANopen-взаимодействия между ведущим и ведомым устройствами включает четыре ключевых этапа:

  1. Инициализация и конфигурация
  2. Настройка PDO Mapping
  3. Установка параметров
  4. Переключение состояний

Ниже процесс будет подробно разобран на примере настройки RPDO1 для управления контрольным словом и целевым моментом ведомого устройства 1 (Slave 1).

Шаг 01: Инициализация узла

Процесс инициализации Master-Slave:

После подачи питания главное устройство (Master) отправляет NMT-команду, переводя подчиненное устройство (Slave) в состояние Pre-operational (предоперационный режим). В этом состоянии поддерживается только SDO-обмен (Service Data Object) для настройки параметров.

Пример NMT-команды от Master:

COB-ID: 0x000

Данные: 80 01

Разбор команды:

0x80: Команда перехода в предоперационный режим

0x01: Идентификатор целевого узла (Node ID = 1)

Шаг 02: Настройка PDO Mapping (отображение объектов PDO)

1. Отключение PDO (во избежание конфликтов при маппинге):

Пример SDO-команды записи от Master:

COB-ID: 0x601

Данные: 23 00 14 01 01 02 00 80

Разбор команды:

0x23: Запись 4 байт

0x1400, суб-индекс 0x01: Параметры связи RPDO1

0x80000201: Отключение COB-ID 0x0201

2. Очистка записей PDO-маппинга:

Пример SDO-команды записи от Master:

COB-ID: 0x601

Данные: 2F 00 16 00 00 00 00 00

Разбор команды:

0x2F: Запись 1 байта

0x1600, суб-индекс 0x00: Количество записей маппинга RPDO1

0x00: Сброс маппинга

3. Маппинг контрольного слова и целевого момента в RPDO1 (суб-индексы 1 и 2):

Пример SDO-команды записи от Master:

Для контрольного слова (0x6040): COB-ID: 0x601

Данные: 23 00 16 01 10 00 40 60

Для целевого момента (0x6071): COB-ID: 0x601

Данные: 23 00 16 02 10 00 71 60

Разбор команды:

0x10: Длина данных 16 бит

0x6040: Индекс контрольного слова

0x6071: Индекс целевого момента

4. Установка количества маппируемых объектов = 2:

Пример SDO-команды записи от Master:

COB-ID: 0x601

Данные: 2F 00 16 00 02 00 00 00

Разбор команды:

0x02: 2 объекта в маппинге

Шаг 03: Настройка параметров связи

Команда SDO-записи от главного устройства (Master):

Настройка типа синхронной передачи:

COB-ID: 0x601

Данные: 2F 00 14 02 01 00 00 00

Разбор команды:

0x1400, суб-индекс 0x02: Параметр типа передачи RPDO1

Значение 0x01: Синхронный циклический режим передачи

Установка времени блокировки RPDO1 (единица измерения 0.1 мс):

COB-ID: 0x601

Данные: 2B 00 14 03 C8 00 00 00

Разбор команды:

0x1400, суб-индекс 0x03: Параметр времени блокировки RPDO1

Значение 0x00C8 (200 в десятичной системе): 200 × 0.1 мс = 20 мс

Шаг 04: Активация PDO-обмена

Команда SDO-записи от главного устройства (Master):

Привязка COB-ID и повторная активация PDO:

COB-ID: 0x601

Данные: 23 00 14 01 01 02 00 00

Разбор команды:

0x23: Запись 4 байт

0x1400, суб-индекс 0x01: Параметры связи RPDO1

0x00000201: Активированный COB-ID = 0x201 (бит 31 = 0 указывает на валидный идентификатор)

PDO Mapping: типовые ошибки и диагностика

Приведём примеры типовых ошибок, возникающих при настройке сети CANopen, и рассмотрим возможные пути их диагностики и решения.

Таблица 1: Ошибки доступа к словарю объектов

Код ошибки
Описание
Возможные причины
Способы решения
0x06020000
Объект не существует
Неверный индекс/суб-индекc
Верификация через EDS-файл
0x06090011
Недопустимый суб-индекс
Маппинг вне диапазона
Свериться с параметром "Number of mapped objects" в объектном словаре
0x06010002
Попытка записи в read-only объект
Неверная операция записи
Проверить атрибут "Access type" в EDS-файле (RO/RW/WO)

Таблица 2: Ошибки ограничений PDO-маппинга

Код ошибки
Описание
Возможные причины
Способы решения
0x06020000
Объект не может быть отображен в PDO
Попытка отображения неподдерживаемого объекта PDO
Использовать связь через SDO или выбрать альтернативный объект
0x06090011
Превышение ограничения длины PDO
Суммарный размер данных маппинга превышает 8 байт
Распределить данные между несколькими PDO или удалить второстепенные параметры

Таблица 3: Ошибки типов данных и форматов

Код ошибки
Описание
Возможные причины
Способы решения
0x06020000
Ошибка несоответствия размера данных
Несовместимость форматов данных при операции записи
Сверить тип и размер данных в объектном словаре
0x06090011
Выход за границы диапазона параметра
Нарушение ограничений минимального/максимального значения
Проверить атрибуты min/max в объектном словаре

Таблица 4: Ошибки аппаратных и статусных ограничений

Код ошибки
Описание
Возможные причины
Способы решения
0x06020000
Недопустимая операция для текущего состояния
Изменение конфигурации PDO в режиме Operational запрещено
Выполните переход в Pre-operational через NMT
0x06090011
Ошибка доступа по аппаратной причине
Неисправность памяти модуля или нарушение связи
Выполнить диагностику подключения или заменить устройство
0x06010002
Превышение времени ожидания SDO
Отсутствие ответа от ведомого устройства
Провести диагностику состояния узла и загрузки шины

Для подключения устройств CANopen к другим промышленным сетям можно использовать промышленные сетевые шлюзы/преобразователи торговых марок Anybus и SSTCOMM.

Чтобы подобрать решение под вашу задачу воспользуйтесь либо функцией "Подбор оборудования путем выбора нужных типов сетей" (справа на экране), либо воспользуйтесь функцией поиска на нашем сайте, либо напишите или позвоните нам и мы подберём нужный шлюз под вашу задачу.

Ваша конфиденциальность

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.