В этом примере показано, как использовать блоки CoE и простой конечный автомат для записи значений конфигурации в переменные, которые могут быть записаны только перед переходом в состояние EtherCAT Op. Код, необходимый для использования блоков SoE для подчиненных устройств, понимающих протокол SoE, см. в разделе Последовательная запись переменных конфигурации SoE протокола EtherCAT ®.
Для рабов, понимающих адресацию СЕ, ограниченная способность читать или писать определенные объекты встречается несколько редко. Для подчиненных устройств, которые понимают адресацию СОС, это ограничение встречается гораздо чаще.
В этом примере также показана синхронизация распределенных синхросигналов с использованием режима переключения шины DC, в котором ведомые устройства сдвигаются во времени, чтобы соответствовать времени выполнения ведущего устройства.
Для запуска этого примера необходима EtherCAT-сеть, состоящая из целевого компьютера в качестве ведущего устройства EtherCAT и по крайней мере одного подчиненного устройства с объектами, адресованными CoE. Предоставленный файл ENI предназначен для стека подчиненных элементов 5 + EK1100 + EL1202 + EL2202 + EL3102 + EL4032.
EtherCAT в Simulink Real-Time требует выделенного сетевого порта на целевом компьютере, который зарезервирован для EtherCAT с помощью инструмента настройки Ethernet. Сконфигурируйте выделенный порт для связи EtherCAT, а не IP-адрес. Выделенный порт должен отличаться от порта, используемого для канала Ethernet между разработчиками и целевыми компьютерами.
Для тестирования этой модели:
Подключите порт, зарезервированный для EtherCAT в целевом компьютере, к порту EtherCAT IN интерфейса EL1100.
Убедитесь, что EK1100 поставляется с 24-вольтовым источником питания.
Постройте и загрузите модель на целевой объект.
Полный пример настройки сети EtherCAT, модели главного узла EtherCAT и сборки, а затем запуска приложения реального времени см. в разделе Моделирование сетей EtherCAT.
Эта модель иллюстрирует, как можно читать или записывать объекты CoE/SDO, если они доступны для записи только в состоянии EtherCAT PreOp. Можно переместить передачи CoE/SDO в состояние EtherCAT SafeOp, изменив конечное состояние инициализации в блоке EtherCAT Init, а также изменив константу в блоке Ожидание этого состояния. Эти настройки предписывают конечному автомату начать отправку сообщений CoE, когда он достигнет конечного состояния инициализации.
Init = 1
PreOp = 2
SafeOp = 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, используйте Device Index = 0 и Ethernet Port Number = 1.
Если требуется создать новый файл 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, чтобы подсистема использовала объекты на устройствах.
Чтобы построить, загрузить и запустить модель:
В редакторе Simulink в списке целей на вкладке Real-Time выберите целевой компьютер, на котором будет выполняться приложение реального времени.
Нажмите кнопку Run on Target.
Если открыть две области на стороне хоста, дважды щелкнув каждую, данные передаются с целевого компьютера на компьютер разработки и отображаются.
В модель включена возможность управления амплитудой циклического движения. С помощью кнопки Run on Target ползунок активен и подключен к Amplitude постоянный блок.
Модель предварительно настроена на работу в течение 15 секунд. Если требуется выполнить модель дольше, откройте меню Выполнить на цели (Run on Target) и измените номер в нижней строке. Нажмите зеленую стрелку, чтобы настроить, построить и запустить.
При запуске модели с помощью кнопки Run on Target подключается внешний режим, и можно дважды щелкнуть блоки области и просмотреть данные на компьютере разработки. Display блоки также работают.
При использовании Run on Target в блоке Scope отображается ошибка синхронизации DC между главным кодом на целевом компьютере и первым подчиненным контроллером DC. Поскольку ошибка возвращается в виде наносекунд, этот график показывает, что разность таймирования устанавливается до порядка 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).

Scope3 показывает несколько выходов из блока управления циклом. Первые 5 являются разрешающими сигналами, которые становятся истинными по одному посредством управления циклом. Тогда вывод запроса на операцию является истинным для одного временного шага, чтобы инициировать запрос на переход в состояние Op. Масштаб этого экрана увеличивается до того же интервала, что и в Scope2.

Когда запрошенные команды SDO завершены и состояние перешло в состояние Op, сделанный сигнал устанавливается в значение true для оставшейся части выполнения. Остальная часть модели переходит в подсистему Op State Model.
Если требуется другое количество команд SDO для выполнения перед состоянием Op, необходимо отредактировать встроенный блок кода MATLAB управления циклом и изменить постоянный массив, размер которого в настоящее время равен 5, как и количество запрашиваемых команд SDO.
При запуске модели из командной строки можно использовать инспектор данных моделирования для просмотра любого сигнала, помеченного для регистрации сигнала. Сигналы, отмеченные для регистрации сигналов, имеют точку с двумя дугами над ней в редакторе модели.