EtherCAT® Protocol Sequenced Writing CoE Slave Configuration Variables

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

Для ведомых устройств, которые изучают обращение CoE, ограниченные возможности читать или записать конкретные объекты несколько редки. Для ведомых устройств, которые изучают обращение SoE, это ограничение намного более распространено.

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

Требования

Чтобы запустить этот пример, вам нужна сеть EtherCAT, которая состоит из целевого компьютера как ведущее устройство EtherCAT и по крайней мере одно ведомое устройство, которое имеет обращенные объекты CoE. Предоставленный файл ENI для 5 ведомых стеков элемента: EK1100+EL1202+EL2202+EL3102+EL4032.

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

Протестировать эту модель:

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

  2. Убедитесь, что EK1100 предоставляется источником питания на 24 вольта.

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

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

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

Эта модель иллюстрирует, как можно читать или записать в объекты CoE/SDO, если они только перезаписываемы в состоянии EtherCAT PreOp. Можно переместить передачи CoE/SDO в состояние EtherCAT SafeOp путем изменения конечного состояния Инициализации в блоке EtherCAT Init и также изменив константу в Ожидании этого постоянного блока состояния. Эти настройки направляют конечный автомат, чтобы начать отправлять сообщения CoE, когда он достигает конечного состояния инициализации.

  1. Init = 1

  2. PreOp = 2

  3. SafeOp = 4

  4. Op = 8

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

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

open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_ethercat_asyncCoE_cycle'))

Рисунок 1: модель EtherCAT для секвенирования посредством команд CoE после делающей паузу инициализации в состоянии PreOp

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

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

Если у вас только есть тот соединенная сеть ведомых устройств EtherCAT, и вы только зарезервировали один порт Ethernet с инструментом конфигурирования Ethernet, используйте индекс Устройства = 0 и Номер порта Ethernet = 1.

Создайте файл ENI для различного набора ведомых устройств

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

Каждый файл ENI характерен для точной сетевой настройки, из которой он был создан (например, сеть, обнаруженная на шаге 1 процесса создания конфигурационного файла). Конфигурационный файл предусмотрел этот пример, допустимо, если и только если сеть EtherCAT состоит из EK1100+EL1202+EL2202+EL3102+EL4032. Если у вас есть различный набор ведомых устройств EtherCAT, этот пример работает, но необходимо создать новый файл ENI, который использует устройства.

Для обзора процесса для создания файла ENI смотрите, Конфигурируют Сеть EtherCAT при помощи TwinCAT 3.

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

Создайте, загрузите и запустите модель

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

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

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

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

Включенный в модель способность управлять амплитудой циклически повторяющегося движения. С Запуском на Целевой кнопке ползунок активен и связан с Amplitude постоянный блок.

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

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

Если при запуске модель с помощью Запуска на Целевой кнопке, режим external mode соединяется, и можно дважды щелкнуть по блокам scope и видеть данные по компьютеру разработчика. Display блоки также работают.

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

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

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

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

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

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

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

Смотрите также