Для автоматизированных машин, которым требуется всего две-три оси электрических приводов, импульсные выходы могут оказаться самым простым решением.
Использование импульсных выходов от ПЛК — это экономически эффективный способ получить простое движение. Большинство, если не все, производители ПЛК предоставляют способ управления сервоприводами и шаговыми двигателями с помощью сигнала импульсной последовательности. Поэтому, когда требуется автоматизировать простую машину только по двум или трем осям на электрических приводах, импульсные выходы могут быть намного проще в настройке, подключении и программировании, чем при использовании аналоговых сигналов. Это также может стоить меньше, чем использование сетевого движения, такого как Ethernet/IP.
Давайте рассмотрим управление шаговым двигателем или сервоприводом с помощью драйвера или усилителя между контроллером и двигателем, уделяя особое внимание импульсным сигналам, используемым от контроллера или индексатора.
Основы импульсной последовательности
Шаговые двигатели и версии серводвигателей с импульсным управлением могут вращаться в обоих направлениях. Это означает, что контроллер должен подавать, как минимум, два управляющих сигнала на привод. Есть два способа подачи этих сигналов, и разные производители называют их по-разному. Есть два распространенных способа обозначения двух схем управляющих сигналов, которые вы используете: «режим 1P», он же «режим Step/Direction», и «режим 2P», который называется «режим CW/CCW» или режим по часовой стрелке/против часовой стрелки. Оба режима требуют двух управляющих сигналов от контроллера к приводу.
В режиме 1P один управляющий сигнал — это последовательность импульсов или сигнал «шага». Другой сигнал — направленный вход. Если направленный вход включен, а на входе шага присутствует импульсный сигнал, двигатель вращается по часовой стрелке. И наоборот, если сигнал направления выключен, а на входе шага присутствует импульсный сигнал, двигатель вращается в другом направлении или против часовой стрелки. Последовательность импульсов всегда находится на одном и том же входе, независимо от желаемого направления.
В режиме 2P оба сигнала представляют собой последовательность импульсов. Только один вход в каждый момент времени будет иметь частоту, поэтому, если присутствует последовательность импульсов CW, двигатель вращается по часовой стрелке. Если присутствует последовательность импульсов CCW, двигатель вращается против часовой стрелки. Какой вход получает последовательность импульсов, зависит от желаемого направления.
Импульсы, выдаваемые контроллером, заставляют двигатель двигаться. Двигатель вращается на одну инкрементную единицу за каждый импульс на импульсном входе привода. Например, если двухфазный шаговый двигатель имеет 200 импульсов на оборот (имп./об.), то один импульс заставит двигатель вращаться на 1/200 оборота или 1,8 градуса, а 200 импульсов заставят двигатель вращаться на один оборот.
Конечно, разные двигатели имеют разное разрешение. Шаговые двигатели могут быть микрошаговыми, что дает им много тысяч импульсов на оборот. Кроме того, серводвигатели обычно имеют много тысяч импульсов на оборот в качестве минимального разрешения. Независимо от разрешения двигателя, импульс от контроллера или индексатора заставляет его вращаться только на одну инкрементную единицу.
Скорость вращения двигателя зависит от частоты импульсов или скорости. Чем быстрее импульсы, тем быстрее вращается двигатель. В приведенном выше примере с двигателем, имеющим 200 ppr, частота 200 импульсов в секунду (pps) будет вращать двигатель со скоростью один оборот в секунду (rps) или 60 оборотов в минуту (rpm). Чем больше импульсов необходимо для того, чтобы сделать один оборот двигателя (ppr), тем быстрее должны быть отправлены импульсы для получения той же скорости. Например, двигатель с 1000 ppr должен иметь частоту импульсов в разы выше, чем двигатель с 200 ppr, чтобы развивать ту же скорость. Математика довольно проста:
rps = pps/ppr (обороты в секунду = импульсы в секунду/импульсы на оборот)
об/мин = об/с(60)
Управление импульсами
Большинство контроллеров имеют метод определения того, должен ли двигатель вращаться по часовой стрелке или против часовой стрелки, и будут управлять сигналами соответствующим образом. Другими словами, обычно программисту не требуется выяснять, какие выходы включать. Например, многие ПЛК имеют функции управления движением с использованием импульсного сигнала, и эта функция автоматически управляет выходами для получения правильного направления вращения независимо от того, настроен ли контроллер на режим 1P или 2P.
Рассмотрим два движения в качестве простого примера. Оба движения — это 1000 импульсов. Одно в положительном направлении, другое в отрицательном направлении. Контроллер включает соответствующие выходы, независимо от того, используется ли 1P или 2P, чтобы заставить двигатель вращаться в положительном направлении (обычно по часовой стрелке), когда количество заданных импульсов равно 1000. С другой стороны, если программа командует на −1000 импульсов, контроллер включает соответствующие выходы для движения в отрицательном направлении (обычно против часовой стрелки). Поэтому программисту не обязательно управлять направлением вращения двигателя, используя код в программе для выбора используемых выходов. Контроллер делает это автоматически.
Контроллеры и драйверы обычно имеют возможность выбора типа импульса пользователем с помощью двухпозиционного переключателя или настройки программного обеспечения. Важно убедиться, что контроллер и драйвер настроены одинаково. В противном случае работа может быть нестабильной или вообще не работать.
Абсолютные и инкрементальные перемещения
Две наиболее распространенные команды движения в программировании управления движением — это команды инкрементального и абсолютного перемещения. Концепция абсолютных и инкрементальных перемещений сбивает с толку многих пользователей независимо от используемого метода управления двигателем. Но эта информация применима независимо от того, управляется ли двигатель импульсами, аналоговым сигналом или сетью типа Ethernet/IP или Ethercat.
Во-первых, если на двигателе есть энкодер, то типы его движений не имеют ничего общего с типом энкодера. Во-вторых, абсолютные и инкрементальные движения могут выполняться независимо от того, есть ли абсолютный или инкрементальный энкодер или его вообще нет.
При использовании двигателя для перемещения линейной оси, например, шарико-винтового привода, существует (очевидно) конечное расстояние между одним концом привода и другим. Другими словами, если каретка находится на одном конце привода, двигатель может вращаться для перемещения только до тех пор, пока каретка не достигнет противоположного конца. Это длина хода. Например, на приводе с ходом 200 мм один конец привода обычно является «нулевым» или исходным положением.
Абсолютное перемещение перемещает каретку в заданное положение независимо от ее текущего положения. Например, если текущее положение равно нулю, а заданное перемещение составляет 100 мм, контроллер посылает достаточно импульсов, чтобы переместить привод вперед на отметку 100 мм и остановиться.
Но если текущее положение привода составляет 150 мм, то абсолютное перемещение на 100 мм заставит контроллер посылать импульсы в отрицательном направлении, чтобы переместить привод назад на 50 мм и остановиться в положении 100 мм.
Практическое использование
Наиболее распространенная проблема с использованием импульсного управления заключается в проводке. Сигналы часто случайно подключаются в обратном порядке. В режиме 2P это означает, что выход CCW подключен к входу CW и наоборот. В режиме 1P это означает, что выход импульсного сигнала подключен к входу направления, а выход сигнала направления подключен к входу импульса.
В режиме 2P эта ошибка в проводке заставляет двигатель вращаться по часовой стрелке, когда ему командуют на движение против часовой стрелки, и против часовой стрелки, когда ему командуют на движение по часовой стрелке. В режиме 1P проблему сложнее диагностировать. Если сигналы поменять местами, контроллер посылает последовательность импульсов на вход направления, что ничего не делает. Он также пошлет смену направления (включит или выключит сигнал в зависимости от направления) на вход шага, что может заставить двигатель вращать импульс. Один импульс движения обычно довольно трудно увидеть.
Использование режима 2P упрощает устранение неполадок и, как правило, его легче понять тем, у кого нет большого опыта в этом типе управления движением.
Вот метод, который гарантирует, что на устранение неполадок импульсных и направляющих осей будет потрачено как можно меньше времени. Он позволяет инженерам сосредоточиться на чем-то одном за раз. Это должно избавить вас от необходимости тратить дни на попытки выяснить, какая ошибка в проводке препятствует движению, а потом обнаружить, что функция импульсного выхода неправильно настроена в ПЛК, и вы никогда не выводили импульсы.
1. Определите, какой импульсный режим будет использоваться, и используйте его для всех осей.
2. Установите контроллер в нужный режим.
3. Установите привод в нужный режим.
4. Создайте простейшую программу в вашем контроллере (обычно это функция толчкового режима), чтобы можно было управлять двигателем, заставляя его вращаться в одном или другом направлении с низкой скоростью.
5. Подайте команду на движение по часовой стрелке и следите за любыми статусами в контроллере, указывающими на вывод импульсов.
–Это могут быть светодиоды на выходах контроллера или флаги состояния, такие как флаг занятости в ПЛК. Счетчик импульсов на выходе в контроллере также можно контролировать, чтобы увидеть, как он меняет значение.
–Двигатель не обязательно должен быть подключен к выходным импульсам.
6. Повторите тест против часовой стрелки.
7. Если вывод импульсов в обоих направлениях успешен, идем дальше. Если нет, то сначала нужно разобраться с программированием.
8. Подключите контроллер к драйверу.
9. Толкайте двигатель в одном направлении. Если работает, переходите к шагу 10. Если не работает, проверьте проводку.
10. Поверните двигатель в противоположном направлении. Если он работает, вы добились успеха. Если он не работает, проверьте проводку.
На этой первой фазе было потрачено много часов, поскольку частота импульсов достаточно низкая, чтобы двигатель вращался крайне медленно, например, 1/100 об/с. Если единственный способ узнать, работает ли он, — это наблюдать за валом двигателя, может показаться, что он не вращается с низкой скоростью, что наводит на мысль, что он не выдает импульсы. Лучше всего рассчитать безопасную скорость на основе разрешения двигателя и параметров приложения до того, как будет установлена скорость для теста. Некоторые считают, что они могут установить полезную скорость, просто угадывая. Но если двигателю требуется 10 000 импульсов для одного оборота, а частота импульсов установлена на 1000 импульсов в секунду, двигателю потребуется 10 секунд, чтобы совершить один оборот. И наоборот, если двигателю требуется 1000 импульсов для одного оборота, а частота импульсов установлена на 1000, двигатель будет совершать один оборот в секунду или 60 об/с. Это может быть слишком быстро для теста, если двигатель прикреплен к нагрузке, например, к шарико-винтовому приводу с ограниченным расстоянием перемещения. Крайне важно следить за индикаторами, показывающими наличие импульсов (светодиодами или счетчиком импульсов).
Расчеты для практического применения
Пользователи часто сталкиваются с тем, что HMI показывает расстояние и скорость машины в единицах импульсов, а не в инженерных единицах, таких как миллиметры. Часто программист торопится, чтобы машина заработала, и не тратит время на определение единиц машины и преобразование их в инженерные единицы. Вот несколько советов, которые помогут в этом.
Если известно разрешение шага двигателя (число импульсов на оборот) и перемещение, совершаемое за один оборот двигателя (мм), постоянная командного импульса рассчитывается как разрешение/расстояние за оборот или число импульсов на оборот/расстояние за оборот.
Константа может помочь определить, сколько импульсов необходимо для перемещения на определенное расстояние:
Текущее положение (или расстояние) = количество импульсов/константа командных импульсов.
Чтобы преобразовать инженерные единицы в импульсы, сначала определите константу, которая определяет количество импульсов, необходимых для данного перемещения. Предположим, в приведенном выше примере двигателю требуется 500 импульсов для вращения на один оборот, а один оборот составляет 10 мм. Вычислить константу можно, разделив 500 (имп/об) на 10 (мм имп/об). Таким образом, константа составляет 500 импульсов/10 мм или 50 импульсов/мм.
Эту константу затем можно использовать для расчета количества импульсов, необходимых для перемещения на заданное расстояние. Например, для перемещения на 15 мм, 15 мм × 50 ppm = 750 импульсов.
Чтобы преобразовать показания счетчика импульсов в инженерные единицы, просто разделите значение счетчика импульсов на константу командного импульса. Таким образом, если счетчик импульсов показывает 6000, разделите его на константу командного импульса, рассчитанную из примера выше, положение привода будет 6000 импульсов/50 ppm = 120 мм.
Чтобы задать скорость в мм и заставить контроллер рассчитать правильную частоту в Гц (импульсы в секунду), сначала необходимо определить константу скорости. Это делается путем нахождения константы командного импульса (как показано выше), но единицы измерения меняются. Другими словами, если двигатель выдает 500 импульсов в минуту, а привод перемещается на 10 мм за оборот, то при задании 500 импульсов в секунду привод будет перемещаться на 10 мм в секунду. Разделив 500 импульсов в секунду на 10 мм в секунду, получим 50 импульсов в секунду на мм. Следовательно, умножение целевой скорости на 50 дает правильную частоту импульсов.
Формулы те же, но единицы измерения меняются:
Константа скорости в pps = импульсы за оборот/расстояние за оборот
Скорость пульса (имп/с) = (константа скорости) × скорость в мм
Использование установки, которая использует сигналы импульсной последовательности для управления движением, может поначалу показаться сложным, однако, уделяя пристальное внимание типам сигналов и настройкам на контроллере и приводах в начале, можно сократить время, затрачиваемое на то, чтобы заставить ее работать. Кроме того, если вы потратите время на выполнение некоторых базовых расчетов сразу, программирование скоростей и расстояний станет проще, а операторы машин будут иметь более интуитивно понятную информацию, отображаемую на своих HMI.
Время публикации: 08.02.2021