EtherCAT ® Протокол последовательной записи подчиненных переменных конфигурации SoE

В этом примере показано, как использовать блоки SoE и простой конечный автомат для записи значений строения в переменные, которые могут быть записаны только перед переходом в состояние Op EtherCAT. Для кода, необходимого для использования блоков CoE для ведомых устройств, которые понимают протокол CoE, смотрите EtherCAT ® Protocol Sequenced Writing CoE Slave Configuration Переменные.

Для рабов, которые понимают адресацию СЕ, ограничения на то, когда конкретный объект может быть записан, несколько редки. Для рабов, которые понимают адресацию СнЭ, это ограничение является гораздо более распространенным.

Изменение объектов строения в ведомых устройствах перед запуском ввода-вывода к внешним соединениям полезно, даже если изменение значений не ограничено.

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

Требования

Чтобы запустить этот пример, вам нужна сеть EtherCAT, которая состоит из целевого компьютера в качестве устройства EtherCAT Master и по крайней мере одного ведомого устройства, имеющего объекты, адресованные SoE. Поставляемый файл ENI предназначен для диска Beckhoff AX5103.

Для EtherCAT в Simulink Real-Time требуется выделенный сетевой порт на целевом компьютере, который зарезервирован для использования EtherCAT с помощью инструмента строения Ethernet. Сконфигурируйте выделенный порт для связи EtherCAT, а не с IP-адресом. Выделенный порт должен отличаться от порта, используемого для подключения Ethernet между компьютерами компьютеров разработчика и целевыми компьютерами.

Чтобы протестировать эту модель:

  1. Подключите порт, зарезервированный для EtherCAT на целевом компьютере, к порту IN EtherCAT AX5103 диска.

  2. Убедитесь, что AX5103 снабжен 24-вольтовым источником степени.

  3. Создайте и загрузите модель в цель.

Полный пример, который конфигурирует сеть EtherCAT, конфигурирует модель главного узла EtherCAT, а затем создает приложение реального времени, см. в разделе Моделирование сетей EtherCAT.

Откройте модель

Эта модель иллюстрирует, как можно читать или записать в объекты SoE/SSC, если они доступны только для записи в состоянии EtherCAT PreOp. Можно переместить передачи SoE/SSC в состояние EtherCAT SafeOp путем изменения конечного состояния Инициализации в блоке EtherCAT Init, а также путем изменения константы в блоке Wait for this state constant. Эти настройки направляют конечный автомат на начало отправки сообщений СнЭ, когда он достигает конечного состояния инициализации.

  1. Init = 1

  2. PreOp = 2

  3. SafeOp = 4

  4. Op = 8

Блок инициализации EtherCAT требует, чтобы строение файл ENI присутствовало в текущей папке или в пути MATLAB, поскольку имя файла присутствует без директории информации.

Если вы хотите изменить эту модель, чтобы экспериментировать с ней, скопируйте файл строения примера и файл модели из папки примера в текущую папку. Чтобы открыть модель, в Командном Окне MATLAB, введите:

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_ethercat_asyncSoE_SSC_InOrder'));

Фигура 1: Модель EtherCAT для секвенирования через команды SoE/SSC после паузы инициализации в состоянии PreOp

Сконфигурируйте модель

Откройте диалоговое окно параметра для блока EtherCAT Init и наблюдайте предварительно настроенные значения. Ведомые устройства EtherCAT, которые соединены в цепочку вместе с кабелем Ethernet, являются Устройством, также называемым сетью EtherCAT. Индекс устройства выбирает одну такую сеть EtherCAT с цепочкой. Номер порта Ethernet определяет, какой порт Ethernet следует использовать для доступа к этому устройству. Блок EtherCAT Init соединяет эти два блока так, чтобы другие блоки EtherCAT использовали Индекс устройства для связи с ведомыми устройствами в этой сети EtherCAT.

Если у вас есть только одна подключенная сеть ведомых EtherCAT, и вы зарезервировали только один порт Ethernet с помощью инструмента строения Ethernet, используйте Device Index = 0 и Ethernet Port Number = 1.

Создайте файл ENI для другого диска SoE

Если вам нужно создать новый файл ENI, вам нужно использовать сторонний конфигуратор EtherCAT, такой как TwinCAT 3 от компании Beckhoff, который вы устанавливаете на компьютер разработчика. Файл строения EtherCAT (ENI), предварительно сконфигурированный для этой модели BeckDrive_1ms.xml.

Каждый файл ENI специфичен для точной настройки сети, для которой он был создан (для примера, сеть, обнаруженная в шаге 1 процесса создания строения файлов). Файл строения, предоставленный для этого примера, действителен тогда и только тогда, когда сеть EtherCAT состоит из одного AX5103 диска. Если у вас есть другой диск EtherCAT, этот пример все еще работает, но вам нужно создать новый файл ENI, который использует ваш диск.

Обзор процесса создания файла ENI см. в разделе Настройка сети EtherCAT при помощи TwinCAT 3.

Если вы используете другой диск, необходимо обратиться к руководству по устройствам и найти отображение SoE. Используя это отображение, необходимо изменить команды SSC в командах SoE в порядок подсистеме, чтобы использовать объекты на вашем диске.

Построение, загрузка и запуск модели

Чтобы создать, скачать и запустить модель:

  1. В редакторе Simulink Editor из списка целей на вкладке Real-Time выберите целевой компьютер, на котором можно запустить приложение реального времени.

  2. Нажмите Run on Target.

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

Модель предварительно сконфигурирована, чтобы работать в течение 15 секунд. Если вы хотите запустить модель дольше, перетащите Запуск в меню Target и измените номер на нижней линии. Нажмите зеленую стрелу, чтобы сконфигурировать, создать и запустить.

Отображение данных о целевом компьютере

Если запустить модель с помощью кнопки Run on Target, подключен внешний режим и можно дважды кликнуть блоки scope и увидеть данные на компьютере разработчика. Блоки Display также работают.

При использовании Run on Target, возможности показывает ошибку синхронизации постоянного тока между главным кодом на целевом устройстве и первым ведомым устройством с поддержкой постоянного тока. Поскольку ошибка возвращается как наносекунда, этот график показывает, что различие во времени устанавливается до порядка 3-5 микросекунд (от 3000 до 5000 наносекунд) различия между ведомыми устройствами с поддержкой постоянного тока и целевой машиной, выполняющей код. Остаточное рассеяние просто отражает изменчивость планирования задач в целевом компьютере RTOS.

Scope1 показывает прогрессирование состояний EtherCAT, от простоя до Init до PreOp, SafeOp и, наконец, состояния Op. SafeOp вводится только кратко и появляется только как значение 4 для нескольких временных шагов перед переключением в состояние Op. Поскольку эта модель использует механизм распределенных синхроимпульсов, переключение в состояние Op происходит только тогда, когда ошибка синхронизации останавливается.

Scope2 показывает выходы состояния 5 асинхронных блоков SDO внутри подсистемы. Каждый блок SDO имеет возможность записи в течение одного временного шага. Блок переключается на состояние = 1 (занято) в течение нескольких временных шагов. При успешном завершении = 2 (сделано) блок переключается на один временной шаг. Если блок сталкивается с ошибкой, блок переключается на состояние = 3 (ошибка) в течение одного временного шага. При ошибке встраиваемый код MATLAB управления циклом останавливает последовательность и устанавливает выход ошибки, который останавливает модель. В этом случае отказавший блок выводит код ошибки, который отображается на Display1. Это отображение масштабируется в интервал сразу после того, как состояние перешло в состояние PreOp (= 2).

Scope4 показывает несколько выходов из блока Cycle control. Первые 5 являются разрешающими сигналами, верными по одному за раз управлением Циклом. Значение oprequest выхода true для одного временного шага, чтобы инициировать запрос на переход в состояние Op. Это отображение масштабируется до того же интервала, как и в Scope2.

Когда все запрошенные команды SSC завершены и состояние перешло в состояние Op, завершенный сигнал устанавливается на true для оставшейся части выполнения. Остальная часть вашей модели входит в подсистему Op State Model.

Если вам нужно другое количество команд SSC для выполнения перед состоянием Op, вам нужно отредактировать блок встраиваемого кода MATLAB Cycle и изменить постоянный массив, который в настоящее время имеет длину 10, которая больше, чем количество запрашиваемых команд SSC.

Если вы запускаете модель из командной строки, можно использовать Data Inspector, доступный с панели инструментов, чтобы просмотреть любой сигнал, который был помечен для регистрации с выбором Log Selected Signals найденным путем щелчка правой кнопкой мыши по сигналу. Они отмечены точкой с двумя дугами над ней в редакторе моделей.

См. также