Импульсная ось движения (PTO pulse train output) на CodeSys

Импульсная ось движения (PTO pulse train output) на CodeSys, image #1

В зависимости от типа контроллера механизм настройки на PAC-контроллерах может быть различный. На контроллерах HCFA для формирования PTO используется специализированный модуль HCQX-PG04-D(2), для вывода импульсной последовательности на MX300 можно использовать встроенные выхода (частота там достаточная под 200кГц).

PTO или pulse train output, обычно используется для задания положения для всевозможных сервоприводов и драйверов шаговых двигателей

Чтобы подключить в проект модуль HCQX-PG04-D нужно нажать Add Device в дереве проекта (дерево устройств) на Slave_1(LocalEtherCATDevice), хотя как и с импульсными входами гораздо проще нажать Scan Device на мастере шины EtherCAT под псевдонимом EtherCAT_1 (у вас может отличаться). По итогу в проект необходимо добавить устройство HCQX_PG04_D2, добавить к нему устройство Axis only supports csp (через контекстное меню нажав правую кнопку мыши на HCQX_PG04_D2 и выбрав пункт Add Device, см слайды ниже) и добавить ось SoftMotion CiA402 Axis (через контекстное меню нажав правую кнопку мыши на HCQX_PG04_D2 и выбрав пункт Add SoftMotion CiA402 Axis, см слайды ниже), должно получиться такое дерево проекта (см слайды ниже, ось можно переименовать с помощью Refactoring). Это минимальный набор для одной оси, если надо больше, добавляется такая же пара для каждой оси. Кстати инструкция на модуль, когда писалась статья в Российском сегменте отсутствовала, поэтому прикреплю к посту переведенную Китайскую.

Импульсная ось движения (PTO pulse train output) на CodeSys, image #2
Импульсная ось движения (PTO pulse train output) на CodeSys, image #3
Импульсная ось движения (PTO pulse train output) на CodeSys, image #4
Импульсная ось движения (PTO pulse train output) на CodeSys, image #5
1 of 4

Далее нужно зайти в настройки HCQX_PG04_D2 и выбрать "Enable Expert Mode" на вкладке "General", найти на вкладке EtherCAT I/O Mapping в правом нижнем углу комбобокс (выпадающий список) выбрать или убедиться в выборе "Enable 2 (Always in Bus Cycle Task)".

Импульсная ось движения (PTO pulse train output) на CodeSys, image #6

Далее можно открыть вкладку уже оси Scaling/Mapping и настроить ось по своему усмотрению.

Импульсная ось движения (PTO pulse train output) на CodeSys, image #7

Настройки работы самого модуля выставляются в соответствии с инструкцией на вкладке Startup Parameters.

Импульсная ось движения (PTO pulse train output) на CodeSys, image #8

Используйте стандартный набор блоков для работы с осями, так же как бы вы работали с осью, управляемой на EtherCAT:

Импульсная ось движения (PTO pulse train output) на CodeSys, image #9

Для других контроллеров, например MX300 от Optimus Drive порядок действий может быть иной, возможно даже в чем-то проще, по крайней мере по количеству действий. Конкретно на этой модели есть встроенные выходы, их количество 12 шт, что позволяет организовать 6 осей, тк для задания идет один выход на сигнал PULSE и один на DIR - «направление», а частота может достигать 200кГц, это достаточно много даже по современным меркам. Листаем слайды. Для работы необходимо добавить MXHighSpeedIO в дерево проекта (дерево устройств). Для добавления оси нажать на появившееся MXHighSpeedIO_1 двойным щелчком левой кнопки мыши (ЛКМ) в дереве проекта (дерево устройств), хотя название может отличаться, ведь это пользовательская величина, главное в скобках за именем будет указано MXHighSpeedIO, листайте слайды, смотрите как выглядит. Далее нажать на вкладку Axis parameter settings и выбрать нужное количество осей и привязку к номерам выходов включением соответствующих флажков Enable. В дереве проекта появится ось в разделе SoftMotion General Axis Pool, менять название оси для проекта на MX300 нельзя, тк привязка идет именно к имени/псевдониму оси.

Для других контроллеров, например MX300 от Optimus Drive порядок действий может быть иной.Для работы необходимо добавить MXHighSpeedIO. Для добавления оси нажать на MXHighSpeedIO_1 двойным щелчком ЛКМ, нажать на вкладку Axis parameter settings и нажать флажок Enable на нужной оси
После активации будет доступен раздел со свойствами осей
В пункте General settings→Output settings появится обозначение привязки выходов к оси
Дальнейшая настройка аналогична настройке любой другой оси, где задаются лимиты ускорения, скорости и толчка/рывка
1 of 4
Для других контроллеров, например MX300 от Optimus Drive порядок действий может быть иной.
Для работы необходимо добавить MXHighSpeedIO. Для добавления оси нажать на MXHighSpeedIO_1 двойным щелчком ЛКМ, нажать на вкладку Axis parameter settings и нажать флажок Enable на нужной оси

Для запуска оси на MX300 необходимо создать в программе группу импульсных осей командой LS_MotionControl_P. Далее необходимо командой ADR привязать созданные виртуальные оси к данной группе импульсных осей.

Импульсная ось движения (PTO pulse train output) на CodeSys, image #14

В целом, работа с осью будет как и с физической, то есть наличие команды MC_Power необходимо. Помните, что для того чтобы запустить привод с импульсным управлением, ему нужно подать ServoOn физически или программно, и обратная связь будет только по количеству выданных импульсов, а реальное положение будет недоступно (если конечно ее не завести через энкодерные входы ПЛК).

Опять же порядок добавления и привязки осей может отличаться для других ПЛК/ПАК и это не обязательно будет ось SM_DriveVirtual, иногда на шине EtherCAT Master создается шина localbus, а уже на ней нужно добавить SoftMotion CiA402 Axis, привязка при этом идет просто по порядку осей в дереве проекта. Иногда ось добавляется вручную: нажимаем Add Device в разделе SoftMotion General Axis Pool. Выбираем SM_DriveVirtual (листаем слайды).

SM_DriveVirtual — это программная имитация приводов. С их помощью можно тестировать программы без подключения оборудования или реализовывать расширенные функции. К таким функциям относятся, например, управление коррекцией движения осей и ручное управление роботом в пространстве в декартовых координатах.
Виртуальные приводы имитируют физический привод, используя заданные положения предыдущих циклов для расчета фактических значений положения, скорости и ускорения в начале цикла. Функции, требующие физического привода, такие как наличие MC_TouchProbeв приводе или использование SMC_SetControllerMode, не поддерживаются.
Нажимаем Add Device в разделе SoftMotion General Axis Pool. Выбираем SM_DriveVirtual (листаем слайды).
Выбираем SM_DriveVirtual (листаем слайды).
1 of 2
Нажимаем Add Device в разделе SoftMotion General Axis Pool. Выбираем SM_DriveVirtual (листаем слайды).

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

176 views·4 shares