EtherCAT® Communication - Обнаружьте отказ сети EtherCAT и сбросьте

В этом примере показано, как использовать блок EtherCAT Notifications, чтобы обнаружить отказ в связанной сети и перезапустить сеть, когда отказ корректируется.

Только разъединенный кабель Ethernet в первое ведомое устройство обнаруживается этим примером. Более сложные ситуации с отказом могут быть обнаружены, если вы изучаете шаблон уведомлений, которые заканчиваются и пишут встроенный блок MATLAB с учетом тех.

Требования

Чтобы запустить этот пример, как представлено, вам нужен Beckhoff EK1100 с EL1202, EL2202-0100, EL3102 и ведомыми модулями EL4032. Модель не пишет ни в какие объекты процесса. Заменение файла ENI с одним соответствующим вашей сети работает также.

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

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

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

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

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

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

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

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

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

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

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

Рисунок 1: модель EtherCAT для обнаружения разъединенного кабеля Ethernet в первом ведомом устройстве и переинициализации сети однажды кабель повторно подключена.

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

Откройте диалоговое окно параметра для блока 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 состоит из Beckhoff EK1100 с EL1202, EL2202-0100, EL3102 и ведомыми модулями EL4032. Если вы сделали, чтобы различный EtherCAT управлял, этот пример все еще работает, но необходимо создать новый файл ENI, который использует ведомые устройства.

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

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

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

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

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

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

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

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

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

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

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

В этом экспериментальном запуске кабель Ethernet был отключен дважды во время 30-секундного запуска. Разъединение произошло приблизительно в 7 секунд, повторное соединение приблизительно в 12 секунд. Этот процесс повторяется приблизительно в 18 секунд и 21 секунду. Каждый раз, когда кабель повторно подключен, ошибка синхронизации показывает импульс, который показывает дрейф между целью и сетью EtherCAT в течение времени, кабель был отключен и является ожидаемым поведением пересинхронизации.

Scope1 показывает несколько логических сигналов с вертикальными смещениями, чтобы показать анализатор логики как отображение. От верхней части изображения это:

  1. Соедините (желтое) состояние

  2. Работающая (синяя) ошибка количества

  3. Структурируйте (красную) ошибку ответа

  4. Все ведомые устройства Операционный (зеленый)

  5. Ведомая (фиолетовая) ошибка

  6. (Голубая) ошибка Scanbus

Разъединение кабеля вызвало scanbus ошибку, как замечено на голубой трассировке. Ничего не происходит, пока кабель не подключен повторно приблизительно в 12 секунд. Состояние ссылки отражает одно уведомления о временном шаге, которые указывают на ссылку, уходящую и ссылку возвращение. На первом разъединении вы не видите, что ссылка уходит уведомление, но вы действительно видите, что ссылка возвращается. Встроенный блок MATLAB сохраняет персистентную переменную с состоянием ссылки с начальным значением 2 и изменяет его в зависимости от уведомлений.

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

Scope2 показывает большему состоянию выходные параметры с:

  1. (желтый) statechange

  2. (синий) sbdone

  3. (красный) dcinsync

  4. (зеленый) запрос statechange

  5. (фиолетовый) newstate

  6. (голубое) текущее состояние

Когда ссылка понижается, стек замечает, что и выполняет скан устройств на шине. Это - метка sbdone приблизительно в 7 секунд, которые также привели к sbscan ошибке, показанной в Scope1. Затем, когда ссылка восстанавливается в 12 секунд, другой скан шины выполнен, показан в 12 секунд в синей трассировке. Встроенный блок MATLAB запрашивает изменение состояния к PreOp (=2) показанный в зеленых и фиолетовых трассировках. Если Preop достигнут, вы видите, что другое изменение состояния запрашивает перейти к Op (=8) состояние, которое является вторым изменением зеленого и фиолетового цвета. Это запускает пересинхронизацию часов между разработкой comptuer и целевым компьютером, который занимает несколько секунд, пока вы не видите dcinsync приблизительно в 14 секунд (красный trace) с переходом к состоянию Op прямо после.

Отключите кабель снова, чтобы повторить целую последовательность, снова запускающуюся приблизительно в 18 секунд.

В то время как для этого примера нужно ручное вмешательство, чтобы отключить и повторно подключить кабель Ethernet, тот же перезапуск может быть вызван, только запросив, чтобы PreOp утвердили follwed по запросу о состоянии Op, пропустив взаимодействие с состоянием ссылки, если инициировано некоторым другим условием в модели.

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

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

close_system( 'slrt_ex_ethercat_notifyreset' );