Для автоматизированных машин, которым требуется всего две-три оси электрических приводов, импульсные выходы могут оказаться самым простым решением.
Использование импульсных выходов ПЛК — экономичный способ управления простым движением. Большинство, если не все, производители ПЛК предоставляют возможность управления сервоприводами и шаговыми двигателями с помощью импульсной последовательности сигналов. Поэтому, когда требуется автоматизировать простой станок всего по двум или трём осям с помощью электрических актуаторов, импульсные выходы гораздо проще настроить, подключить и запрограммировать, чем аналоговые сигналы. Кроме того, это может быть дешевле, чем использование сетевого управления движением, например, Ethernet/IP.
Давайте рассмотрим управление шаговым двигателем или сервоприводом с помощью драйвера или усилителя между контроллером и двигателем, уделив особое внимание импульсным сигналам, используемым от контроллера или индексатора.
Основы импульсной последовательности
Шаговые двигатели и серводвигатели с импульсным управлением могут вращаться в обоих направлениях. Это означает, что контроллер должен подавать на привод как минимум два управляющих сигнала. Существует два способа подачи этих сигналов, и разные производители называют их по-разному. Существует два распространённых способа обозначения используемых схем управляющих сигналов: «режим 1P», также известный как «режим шага/направления», и «режим 2P», который называется «режимом CW/CCW» или «режимом по часовой стрелке/против часовой стрелки». Оба режима требуют подачи двух управляющих сигналов от контроллера на привод.
В режиме 1P один управляющий сигнал представляет собой последовательность импульсов или сигнал «шага». Другой сигнал — вход направления. Если вход направления включён, а на входе шага присутствует импульсный сигнал, двигатель вращается по часовой стрелке. И наоборот, если сигнал направления выключен, а на входе шага присутствует импульсный сигнал, двигатель вращается в другом направлении, то есть против часовой стрелки. Последовательность импульсов всегда поступает на один и тот же вход, независимо от требуемого направления.
В режиме 2P оба сигнала представляют собой последовательность импульсов. Частота поступает только на один вход, поэтому при наличии последовательности импульсов CW двигатель вращается по часовой стрелке. При наличии последовательности импульсов CCW двигатель вращается против часовой стрелки. Какой вход получает последовательность импульсов, зависит от желаемого направления.
Импульсы, выдаваемые контроллером, приводят двигатель в движение. Двигатель совершает один шаг за каждый импульс на импульсном входе привода. Например, если двухфазный шаговый двигатель имеет 200 импульсов на оборот (имп/об), то один импульс заставляет двигатель повернуть его на 1/200 оборота или на 1,8 градуса, а 200 импульсов — на один оборот.
Конечно, разные двигатели имеют разное разрешение. Шаговые двигатели могут быть микрошаговыми, что обеспечивает им несколько тысяч импульсов на оборот. Кроме того, минимальное разрешение серводвигателей обычно составляет несколько тысяч импульсов на оборот. Независимо от разрешения двигателя, импульс от контроллера или индексатора заставляет его повернуть только на одну единицу приращения.
Скорость вращения двигателя зависит от частоты импульсов, или скорости. Чем чаще импульсы, тем быстрее вращается двигатель. В приведённом выше примере, для двигателя с частотой 200 импульсов в секунду (имп./с) частота 200 импульсов в секунду (имп./с) будет вращать двигатель со скоростью один оборот в секунду (об./с) или 60 оборотов в минуту (об./мин). Чем больше импульсов требуется для одного оборота двигателя (имп./с), тем чаще их необходимо посылать для достижения той же скорости. Например, для двигателя с частотой 1000 импульсов в минуту (имп./с) частота импульсов должна быть в разы выше, чем для двигателя с частотой 200 импульсов в минуту, чтобы развивать ту же скорость. Математика довольно проста:
rps = pps/ppr (обороты в секунду = импульсы в секунду/импульсы на оборот)
об/мин = об/с(60)
Управление импульсами
Большинство контроллеров имеют метод определения направления вращения двигателя (по часовой стрелке или против часовой стрелки) и соответствующим образом управляют сигналами. Другими словами, программисту обычно не требуется определять, какие выходы включить. Например, многие ПЛК имеют функцию управления движением с помощью импульсного сигнала, и эта функция автоматически управляет выходами для получения правильного направления вращения независимо от того, настроен ли контроллер на однополюсный или двухполюсный режим.
Рассмотрим два движения в качестве простого примера. Оба движения требуют 1000 импульсов. Одно — в положительном направлении, другое — в отрицательном. Контроллер включает соответствующие выходы, независимо от того, используется ли 1P или 2P, чтобы двигатель вращался в положительном направлении (обычно по часовой стрелке), когда количество заданных импульсов равно 1000. С другой стороны, если программа задаёт -1000 импульсов, контроллер включает соответствующие выходы для движения в отрицательном направлении (обычно против часовой стрелки). Таким образом, программисту не нужно управлять направлением вращения двигателя, используя код программы для выбора используемых выходов. Контроллер делает это автоматически.
Контроллеры и драйверы, как правило, позволяют пользователям выбирать тип импульса с помощью DIP-переключателя или в настройках программного обеспечения. Важно убедиться, что контроллер и драйвер настроены одинаково. В противном случае работа может быть нестабильной или вообще не работать.
Абсолютные и инкрементные перемещения
Две наиболее распространённые команды движения в программировании управления движением — это команды инкрементного и абсолютного перемещения. Концепция абсолютного и инкрементного перемещения сбивает с толку многих пользователей, независимо от используемого метода управления двигателем. Однако эта информация актуальна независимо от того, управляется ли двигатель импульсами, аналоговым сигналом или сетью, например, 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 = импульсы за оборот/расстояние за оборот
Частота пульса (имп/с) = (константа скорости) × скорость в мм
Использование системы, использующей импульсные сигналы для управления движением, поначалу может показаться сложным, однако, уделив особое внимание типам сигналов и настройкам контроллера и приводов на начальном этапе, можно сократить время, затрачиваемое на её запуск. Кроме того, если сразу выполнить несколько базовых расчётов, программирование скоростей и расстояний станет проще, а операторы машин будут видеть более интуитивно понятную информацию на своих интерфейсах.
Время публикации: 08 февраля 2021 г.