Добавлено: 24.08.2025 Автор: : admin Комментарии: 1

Чтобы вам было проще разобраться в особенностях нашего оборудования, мы готовим подробные обзорные материалы. Они будут публикуются в этой рубрике «ТехноГид». А если хотите сначала кратко ознакомиться с темой, загляните в наш Telegram-канал — там мы публикуем сжатые версии этих обзоров.

В нашем магазине представлена линейка шаговых двигателей и сервоприводов. Несмотря на разнообразие интерфейсов управления, стандартом де-факто для них является импульсный сигнал Pulse/Dir. Этим способом управляются все шаговые двигатели и сервоприводы, которые мы предлагаем.

Данный метод управления реализован в среде разработки FLProg, основном программном обеспечении для наших контроллеров серии FLE. Это обеспечивает простую интеграцию и позволяет легко создавать станки, манипуляторы, конвейерные линии и другие устройства на основе связки наших контроллеров, шаговых двигателей и сервоприводов.

Для управления по протоколу Pull/Dir требуется высокоскоростной выход контроллера для формирования импульсного сигнала (Pulse). Все контроллеры серии FLE с транзисторными выходами имеют от 2 до 8 таких выходов в зависимости от модели.

Мы предполагаем, что большинство из вас уже знакомы со средой FLProg. Новичкам рекомендуем обратиться к «Учебному центру» на сайте программы, где собраны обучающие материалы. Также вы можете задать вопросы на активном форуме FLProg, найти множество руководств на YouTube и в Telegram-каналах.

Для жителей России, в связи с ограничением доступа к некоторым международным ресурсам, мы создали группу ВКонтакте и канал на RuTube.

Теперь давайте подробнее рассмотрим, как реализовать управление шаговым двигателем или сервоприводом с помощью контроллера FLE.

В программе FLProg необходимый функционал находится в библиотеке блоков: раздел «Промышленная автоматика» → «ЧПУ». Для управления используйте блок «Шаговый двигатель с драйвером Pull/Dir».

Вытащим этот блок на схему проекта.

Рассмотрим настройки этого блока и возможные режимы управления.

Вкладка «Основные параметры»

Пин PUL драйвера — укажите выходной пин для сигнала PULL, передаваемого на драйвер шагового двигателя. Для корректной работы рекомендуется выбирать высокоскоростной выход контроллера. Если выбрать значение «Вход», у блока появится соответствующий вход «pinPull», на который необходимо подать номер требуемого пина. При необходимости сигнал на этом пине можно инвертировать с помощью чек-бокса «Инвертировать пин».

Пин DIR драйвера — укажите выходной пин для сигнала DIR, передаваемого на драйвер шагового двигателя. Для сигнала DIR не требуется высокоскоростной пин контроллера. При выборе значения «Вход» у блока появится вход «pinDir» для указания номера пина. Сигнал на этом пине также можно инвертировать через чек-бокс «Инвертировать пин».

Длительность импульса PULL (мкс.) — установите длительность импульса на пине PULL. Рекомендуемое значение — 20 мкс. При переключении в положение «Вход» у блока появится вход «Pulse» для задания значения длительности импульса.

Пин Zero — при необходимости укажите входной пин для сигнала установки в 0 значения счетчика текущего шага. При выборе значения «Вход» у блока появится вход «pinZero» для указания номера пина. Сигнал на этом пине можно инвертировать через чек-бокс «Инвертировать пин».

Включить подтягивающий резистор — при активации этой опции будет программно включен подтягивающий к VCC резистор для данного входа.

Контролировать во всех режимах — при активации этого параметра каждый передний фронт сигнала на данном пине будет приводить к сбросу счетчика шага в 0. При деактивации пин будет обрабатываться только в режиме поиска нуля.

Вкладка «Управление шаговым двигателем»

Режим управления двигателем — выберите режим работы двигателя. Для возможности динамического переключения режимов установите значение «Вход». В этом случае у блока появится вход «Mode».

Доступные режимы:

  • 0 – Стоп. Двигатель остановлен.
  • 1 – Непрерывное вращение. Двигатель разгоняется в направлении, заданном сигналом на входе «Dir», от стартовой скорости до максимальной с заданным ускорением, после чего продолжает вращение с постоянной скоростью.
  • 2 – Переход на заданный шаг. Двигатель перемещается к указанному на входе «TargetStep» положению. При изменении номера целевого шага двигатель немедленно начинает перемещение к новому положению. Допустимый диапазон значений: от -2147483648 до 2147483647. В этом режиме сигнал на входе «Dir» игнорируется, так как направление определяется автоматически.
  • 3 – Выполнение количества шагов. При поступлении переднего фронта на входе «ExecNumStep» двигатель выполняет заданное на входе «NumStep» количество шагов в направлении, указанном сигналом на входе «Dir».
  • 4 – Поиск нуля. Двигатель начинает вращение в направлении, заданном сигналом на входе «Dir», до момента появления сигнала на пине Zero (при его настройке) или логической единицы на входе блока «Zero». При возникновении любого из этих событий двигатель останавливается, а значение текущего шага сбрасывается в 0. Обработка сигнала с пина Zero выполняется в аппаратном прерывании для обеспечения точной установки нулевой позиции.

Направление вращения — задайте направление вращения двигателя. Для возможности оперативного управления направлением установите значение «Вход», что активирует вход «Dir».

Максимальная скорость — укажите максимальную скорость вращения двигателя. При выборе значения «Вход» у блока появится вход «MaxSpeed».

Начальная скорость — задайте стартовую скорость вращения двигателя, с которой начинается ускорение. При выборе значения «Вход» у блока появится вход «InitSpeed».

Ускорение — укажите ускорение, с которым двигатель будет разгоняться от начальной скорости до максимальной. При выборе значения «Вход» у блока появится вход «Acceleration».

Вход перехода на целевой шаг — при активации этой опции у блока появится вход «TargetStep» для задания номера целевого шага в соответствующем режиме. При деактивации значение целевого шага будет равно 0.

Вход выполнения количества шагов — при активации этой опции у блока появятся входы «ExecNumStep» и «NumStep», необходимые для режима выполнения заданного количества шагов. При деактивации данный режим будет работать как режим остановки.

Вход установки текущего шага — при активации этой опции у блока появятся входы «ExecSetStep» и «CurrentStep». При поступлении переднего фронта на входе «ExecSetStep» в счетчик текущего шага будет установлено значение со входа «CurrentStep».

Вход Zero — при активации этой опции у блока появится вход «Zero». При поступлении переднего фронта на этом входе в счетчик текущего шага будет записано значение 0. В режиме поиска нуля это также приведет к остановке двигателя.

Выход текущего шага — при активации этой опции у блока появится выход «Step», на который будет выводиться значение счетчика текущего шага.

Выход текущей скорости — при активации этой опции у блока появится выход «Speed», отображающий текущую скорость вращения двигателя.

Статусы работы двигателя

На выходе «Status» отображаются следующие состояния:

  • 1 — FLPROG_STOP_STEP_MOTOR_STATUS — Двигатель остановлен.
  • 2 — FLPROG_CONTINUOUS_ROTATION_STEP_MOTOR_STATUS — Двигатель находится в режиме непрерывного вращения.
  • 3 — FLPROG_POSITION_TRANSITION_WAIT_COMMAND_STEP_MOTOR_STATUS — Двигатель находится в режиме перехода на заданный шаг и остановлен после достижения целевой позиции.
  • 4 — FLPROG_POSITION_TRANSITION_EXECUTE_COMMAND_STEP_MOTOR_STATUS — Двигатель находится в режиме перехода на заданный шаг и выполняет перемещение.
  • 5 — FLPROG_GO_STEP_COUNT_STEP_WAIT_COMMAND_STEP_MOTOR_STATUS — Двигатель находится в режиме выполнения заданного количества шагов и ожидает команду.
  • 6 — FLPROG_GO_STEP_COUNT_STEP_EXECUTE_COMMAND_STEP_MOTOR_STATUS — Двигатель находится в режиме выполнения заданного количества шагов.
  • 7 — FLPROG_FIND_ZERO_STEP_MOTOR_STATUS — Двигатель находится в режиме поиска нуля и выполняет поиск.
  • 8 — FLPROG_END_FIND_ZERO_STEP_MOTOR_STATUS — Двигатель завершил поиск нуля и остановлен.

Таким образом применение контроллера серии FLE и шаговых двигателей или серводвигателей позволяет создавать системы различной сложности с управлением от одного контроллера от 2 до 8 (FLE-56MT) приводов.

1 человек отреагировал

  1. Хорошо что вы это написали. Но управлять шаговиком по этой инструкции невозможно. Я много времени потратил что бы научиться плавно его останавливать. Но так и не понял как реализовать торможение. В инете есть альтернативные блки но они на ардуино заточены. А мне надо STM32 Blue Pill запустить.
    Месяц уже бьюсь над задачей. Может кто поможет? Подскажет. Пример даст. Как то ведь это должно работать… Иначе зачем такой компонент создавался?..

Добавить комментарий для Сергей Отменить ответ