exponenta event banner

Протокол EtherCAT ® с подчиненными устройствами цифрового ввода-вывода Beckhoff ® EL1004 и EL2004

В этом примере показано взаимодействие с EtherCAT-устройствами с помощью цифровых терминалов ввода-вывода Beckhoff EL1004 и EL2004.

Требования

Для выполнения этого примера необходима сеть EtherCAT, состоящая из целевого компьютера в качестве ведущего устройства EtherCAT и двух аналоговых терминалов ввода/вывода EL1004 и EL2004 в качестве подчиненных устройств EtherCAT, подключенных к EK1100 соединителю.

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

Для тестирования этой модели:

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

  2. Собрать клеммы EL1004 и EL2004 с помощью ответвителя EK1100.

  3. Закольцовывание первых двух портов ввода-вывода: Подключение портов с номерами O1 и O2 EL2004 терминала к портам с номерами I1 и I2 EL1004 терминала. Порты O3, O4, I3 и I4 в этом примере не используются.

  4. Убедитесь, что клеммы оснащены необходимым 24-вольтовым источником питания.

  5. Постройте и загрузите модель на целевой объект.

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

Открытие модели

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

Блок инициализации EtherCAT может быть сконфигурирован с полным путем к файлу ENI или с относительным путем, который может быть найден с помощью MATLAB which команда. Скопируйте файл конфигурации примера из папки примеров в текущую папку. Чтобы открыть модель, в окне команды MATLAB введите:

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

Рис. 1: EtherCAT-модель с использованием цифровых терминалов ввода/вывода Beckhoff ® EL1004 и EL2004.

Настройка модели

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

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

Описание сети с помощью конфигуратора

С помощью сторонней программы настройки EtherCAT, установленной на компьютере разработчика, создайте файл конфигурации EtherCAT (ENI). Файл ENI для этого примера: BeckhoffDIOconfig.xml.

Файл ENI (EtherCAT Network Information - сетевая информация EtherCAT), поставляемый в данном примере, имеет EK1100 с подключенными ведомыми устройствами EL2004 и EL1004 в указанном порядке. При наличии различных цифровых модулей ввода-вывода необходимо создать новый файл ENI для этой коллекции.

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

Каждый файл конфигурации EtherCAT (файл ENI) зависит от конкретной настройки сети, из которой он был создан (например, сеть, обнаруженная на шаге 1 процесса создания файла конфигурации). Файл конфигурации, предоставленный в этом примере, действителен тогда и только тогда, когда EtherCAT-сеть состоит из терминалов EK1100, EL1004 и EL2004 от Beckhoff ®.

Файл ENI определяет набор переменных передачи и приема. В этом примере четыре переменные приема определены для четырех входных каналов терминала EL1004. В этом примере используются только первые два канала терминала EL1004. Убедитесь, что переменные приема для канала 1 и канала 2 терминала EL1004 выбраны соответственно в двух блоках приема EtherCAT PDO. Эти две переменные: Term 3 (EL1004).Channel 1.Input и Term 3 (EL1004).Channel 2.Input. Таким же образом для четырех выходных каналов терминала EL2004 определяются четыре передающие переменные, но в этом примере тестируются только первые два канала. Убедитесь, что переменные передачи для канала 1 и канала 2 терминала EL2004 выбраны соответственно в двух блоках передачи EtherCAT PDO. Эти две переменные: Term 2 (EL2004).Channel 1.Output и Term 2 (EL2004).Channel 2.Output.

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

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

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

  2. Нажмите кнопку Run on Target.

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

Три объема - Объем, Scope1 и Scope2.

В области отображаются как уведомления от конечного автомата EtherCAT, так и текущее состояние. Поскольку ошибок нет, единственными видимыми уведомлениями являются значение 1, что означает изменение состояния на этом этапе выполнения. Текущее состояние указывает состояние, возникшее в результате этого изменения состояния. Обратите внимание, что состояние Op (= 8) достигается очень быстро, поскольку этот файл ENI не включает распределенную синхронизацию часов. Это представление увеличено до первых 0,2 секунд выполнения, чтобы ясно показать переход в состояние Op.

Scope1 и Scope2 показывают почти одно и то же, но для двух разных каналов. Сигнал инвертируется между ними, как видно, если сравнить время, когда в жёлтом следе имеется передний фронт. Временной шаг при запуске физического ввода-вывода - это переход состояния в состояние Op. До этого вход или выход отсутствуют, а синие следы остаются на уровне 0. Существует временная задержка между сигналом, посылаемым в выходные блоки, и сигналом, который возвращается из входных блоков по двум причинам.

Существует 2 временная задержка шага из-за связи EtherCAT, за которой следует дополнительная задержка из-за скорости аппаратного ввода-вывода. Обратный сигнал показывает определенную асимметрию между задержкой после посылки переднего фронта и задержкой после посылки заднего фронта. При осмотре фактического выходного сигнала с помощью осциллографа видно, что выход фактически симметричен, но именно на входе имеется дополнительная аппаратная задержка. Другие ведомые устройства DIO имеют различные характеристики задержки.

Модель предварительно настроена на работу в течение 10 секунд. Если требуется выполнить модель дольше, откройте меню Выполнить на цели (Run on Target) и измените номер в нижней строке. Нажмите зеленую стрелку, чтобы настроить, построить и запустить.

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

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

Замечания для уведомления

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

Закрыть модель

По завершении выполнения примера остановите и закройте модель.

close_system('slrt_ex_ethercat_beckhoff_dio');

См. также