В этом примере показано, как контролировать положение двигателя при помощи связи EtherCAT. Пример привода мотора от Copley Instruments. Этот диск использует общий для многих дисков профиль устройства CIA-402 (Can In Automation 402). Пример может работать с другими CIA-402 накопителями EtherCAT, если вы генерируете соответствующий файл ENI.
Этот пример предварительно сконфигурирован, чтобы использовать сеть EtherCAT, которая состоит из целевого компьютера в качестве устройства EtherCAT Master и Accelnet™ накопителя AEP 180-18 от Copley Controls в качестве ведомого устройства EtherCAT. Подключите поддерживаемый бесщеточный или щеточный двигатель к приводу. Примером двигателя, который работает с этим примером, является SM231BE-NFLN от PARKER.
Для EtherCAT в Simulink Real-Time требуется выделенный сетевой порт на целевом компьютере, который зарезервирован для использования EtherCAT с помощью инструмента строения Ethernet. Сконфигурируйте выделенный порт для связи EtherCAT, а не с IP-адресом. Выделенный порт должен отличаться от порта, используемого для подключения Ethernet между компьютерами компьютеров разработчика и целевыми компьютерами.
Чтобы протестировать эту модель:
Подключите порт, зарезервированный для EtherCAT на целевом компьютере, к порту IN EtherCAT Accelnet™ диска.
Подключите двигатель к приводу Accelnet™.
Убедитесь, что привод Accelnet™ снабжен 24-вольтовым источником степени.
Создайте и загрузите модель в цель.
Полный пример, который конфигурирует сеть EtherCAT, конфигурирует модель главного узла EtherCAT, а затем создает приложение реального времени, см. в разделе Моделирование сетей EtherCAT.
Эта модель создает синусоиду и модулирует его умножением на значение управления ползунком. Модулированный сигнал передается в качестве команды положения двигателя в привод.
Блок инициализации EtherCAT требует, чтобы строение файл ENI присутствовало в текущей папке. Скопируйте файл строения из папки примера в текущую папку. Чтобы открыть модель, в Командном Окне MATLAB, введите:
open_system(fullfile(matlabroot,'toolbox','slrealtime','examples','slrt_ex_ethercatPositionControl'));
Фигура 1: Модель EtherCAT для управления положением двигателя.
Откройте диалоговое окно параметра для блока 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), предварительно сконфигурированный для этой модели CopleyMotorPositionConfig.xml
.
Каждый файл ENI специфичен для точной настройки сети, из которой он был создан (для примера, сеть, обнаруженная в шаге 1 строения процесса создания файлов). Файл строения, предоставленный для этого примера, действителен тогда и только тогда, когда сеть EtherCAT состоит из одного Accelnet™ диска от Copley Controls. Если у вас есть другой диск EtherCAT, который использует CIA-402 CanOpen профиль, этот пример все еще работает, но вам нужно создать новый файл ENI, который использует ваш диск. Для получения дополнительной информации см. веб-сайт Can In Automation в www.can-cia.org. EtherCAT CoE встраивает адресацию CanOpen для переменных процесса, используя EtherCAT в качестве транспортного слоя вместо CAN.
Обзор процесса создания файла ENI находится в Конфигурирование сети EtherCAT при помощи TwinCAT 3
В данном примере четыре переменные PDO приема заданы в файле строения, и три используются в трех блоках EtherCAT PDO Transmit: Control Word, Modes of Operation и Profile Target Position. Четвертая переменная: Целевая скорость используется в примере EtherCAT ® Protocol Motor Velocity Control with Accelnet™ Drive.
Переменная Control Word PDO служит для управления состоянием диска. Постоянное значение 15 задается как вход в блок, чтобы установить первые 4 бита равным 1, чтобы включить привод. Для получения дополнительной информации о битовом отображении этой переменной см. веб-сайт Can In Automation. Эта переменная и отображение битов находятся в профиле CIA-402 устройства.
Переменная Modes of Operation PDO служит для установки рабочего режима привода. Постоянное значение 8 задается как вход в блок, чтобы установить режим привода равным Cyclic Synchronous Position mode
. Подробную документацию см. на веб-сайте Can In Automation. Эта переменная находится в профиле CIA-402 устройства.
Переменная Profile Target Position PDO служит для установки требуемого положения. В этом примере команда position, заданная как вход в блок, является синусоидой, модулируемой постоянным значением Амплитуды, связанным с управлением ползунком в модели.
Передайте PDO переменные (переданные ведомым) также определены в файле строения, и одна используется в блоке EtherCAT PDO Receive: Actual Motor Position
для привода. Переменная Actual Motor Position PDO указывает текущее значение положения двигателя, считанное в приводе. Перед запуском примера убедитесь, что в блоках выбраны необходимые переменные PDO для передачи и приема. Вам может потребоваться обновить эти переменные. Обратите внимание, что EtherCAT ссылается на переменные, которые подчиненное устройство устанавливает как передающие переменные, которые принимаются целевой моделью.
Убедитесь, что необходимые переменные PDO для передачи и приема выбраны в блоках, как показано фигура 1, перед запуском примера. Чтобы обновить эти переменные, откройте диалоговые окна и снова выберите текущую переменную.
Чтобы создать, скачать и запустить модель:
В редакторе Simulink Editor из списка целей на вкладке Real-Time выберите целевой компьютер, на котором можно запустить приложение реального времени.
Нажмите Run on Target.
Если вы открываете две возможности на стороне хоста двойным нажатием каждого, данные передаются от цели назад к компьютеру разработчика и отображаются.
В модель включена возможность управления амплитудой циклического движения. С помощью кнопки Run on Target ползунок активен и соединяется с блоком Amplitude constant.
Модель предварительно сконфигурирована, чтобы работать в течение 10 секунд. Если вы хотите запустить модель дольше, перетащите Запуск в меню Target и измените номер на нижней линии. Нажмите зеленую стрелу, чтобы сконфигурировать, создать и запустить.
Если вы запускаете модель с помощью кнопки Run on Target, режим external mode подключен, и можно дважды кликнуть блоки scope и увидеть данные на хосте. Кроме того, ползунок активен во режиме external mode.
Возможности показывают различие во времени распределенных синхроимпульсов между главным стеком, выполняемым на целевом компьютере, и временем на диске. Этот файл ENI сконфигурирован для использования режима Master Shift для постоянного тока. Синхроимпульс на целевом компьютере настраивается так, чтобы он совпадал с таймингом на опорном синхроимпульсе EtherCAT первого ведомого устройства с поддержкой постоянного тока.
Scope1 показывает прогрессирование состояния от Idle до Init (= 1) до PreOp (= 2) до SafeOp (= 4) в течение очень короткого времени, видимого, если вы масштабируете, до Op (= 8), на уровне около 4,3 секунд.
Scope2 показывает и синусоиду, отправляемую в привод (синий), и фактическое положение (желтый). Это масштабируется в несколько секунд вправо, когда диск перешел в состояние Op и начинается внешнее управление. Поскольку оборудование двигателя не могут реагировать мгновенно, а командованное положение не равняется 0, вы видите, как фактическое положение немного повышается и перерегулируется перед установлением, чтобы следовать командованному положению. Задержка между командой и фактической составляет примерно 18 временных шагов расчета с этим приводом. Контроллер внутри привода и инерция двигателя ответственны за эту более длительную задержку времени. Другие приводы могут иметь различные характеристики задержки.
После запуска модели можно использовать Данные Моделирования Inspector, чтобы просмотреть любой сигнал, который был отмечен для логгирования сигналов. Сигналы, отмеченные для логгирования сигнала, имеют точку с двумя дугами над ним в редакторе моделей.
Это простой пример управления двигателем. Многочисленные настраиваемые параметры внутри привода не настраиваются в этой модели. Корректировка этих потребностей требует более совершенной модели с помощью блоков CoE/SDO.
Когда пример завершит свой запуск, остановите и закройте модель.
close_system('slrt_ex_ethercatPositionControl');