Шаговый двигатель на GyverStepper
Добавлено: 24.03.2021{, 22:49}
Блок для управления ШД на основе библиотек Gyver'а
GyverStepper (https://alexgyver.ru/gyverstepper/)
GyverTimers (https://alexgyver.ru/gyvertimers/)
В блоке реализована поддержка всех функций библиотеки gyverstepper!
Блоки бета-версия от 17.06.2021:
- исправлена ошибка изменения скорости в режиме постоянного вращения на лету
Параметры блоки описаны внутри блока.
Ненужные режимы, входы отключаются.
Протестировал базовые функции. НЕ удалось достичь высоких скоростей на моем ШД (максимум 2500 при питании 50В Nema23)
ТРЕБУЕТСЯ ТЕСТИРОВАНИЕ ВСЕХ РЕЖИМОВ....
Можете отблагодарить на кофе, ну или хотя-бы лайкните пост.
GyverStepper (https://alexgyver.ru/gyverstepper/)
GyverTimers (https://alexgyver.ru/gyvertimers/)
В блоке реализована поддержка всех функций библиотеки gyverstepper!
Особенности использования данных блоков:Показать
Первым на холст программирования нужно вытаскивать блок ШД AlexCrane GyverLIB и лишь затем блок ШД Конечный.
Если вытащили еще один блок ШД AlexCrane GyverLIB, то удалите блок ШД Конечный и вытащите его заново.
Если удалите самый последний блок ШД AlexCrane GyverLIB то удалите и блок ШД Конечный и начните заново.
Возможно автор программы Сергей что-то подправил, но сейчас компилируется нормально и без ШД блок конечный... Пока оставил...
Если вытащили еще один блок ШД AlexCrane GyverLIB, то удалите блок ШД Конечный и вытащите его заново.
Если удалите самый последний блок ШД AlexCrane GyverLIB то удалите и блок ШД Конечный и начните заново.
Возможно автор программы Сергей что-то подправил, но сейчас компилируется нормально и без ШД блок конечный... Пока оставил...
Обозначения:Показать
_|¯ - постоянная подача true, отработка по переднему фронту
_|_ - Подача сигнала через RTrig на один цикл
_|_ - Подача сигнала через RTrig на один цикл
Входы:Показать
_|_ EnableMotor - Подать питание на мотор, через RTrig
_|_ DisableMotor - Снять питание с мотора, через RTrig
Endless_Rotation_Speed - Скорость постоянного вращения, шаг/сек
Endless_Rotation_Smooth - Режим ускорения для бесконечного вращения На данный момент используется вход Acceleration
_|_ Start_Endless_Rotation - Пуск постоянного вращения, через RTrig
_|_ Stop - Плавная остановка ШД, через RTrig
_|_ Brake - Резкая остановка ШД, через RTrig
_|_ Reset - Резкая остановка и сброс координат в 0, через RTrig
MaxSpeed - Максимальная скорость шаг/сек, указывать обязательно
Acceleration - Ускорение в шаг/сек за сек, указывать обязательно
Steps - Установка шагов
_|_ Start_Steps - Пуск шагов, через RTrig
_|¯ Absolute - Режим абсолютных координат true, Режим относительных координат - false
_|¯ CCW - Направление вращения
_|_ CurrentPosition - Текущая позиция мотора
_|_ setCurrentPosition - Установка текущей позиции мотора, через RTrig
_|¯ AutoPower - Управление питанием
_|_ getSpeed - Просмотр целевой скорости мотора на выходе curSpeed, через RTrig
_|_ DisableMotor - Снять питание с мотора, через RTrig
Endless_Rotation_Speed - Скорость постоянного вращения, шаг/сек
Endless_Rotation_Smooth - Режим ускорения для бесконечного вращения На данный момент используется вход Acceleration
_|_ Start_Endless_Rotation - Пуск постоянного вращения, через RTrig
_|_ Stop - Плавная остановка ШД, через RTrig
_|_ Brake - Резкая остановка ШД, через RTrig
_|_ Reset - Резкая остановка и сброс координат в 0, через RTrig
MaxSpeed - Максимальная скорость шаг/сек, указывать обязательно
Acceleration - Ускорение в шаг/сек за сек, указывать обязательно
Steps - Установка шагов
_|_ Start_Steps - Пуск шагов, через RTrig
_|¯ Absolute - Режим абсолютных координат true, Режим относительных координат - false
_|¯ CCW - Направление вращения
_|_ CurrentPosition - Текущая позиция мотора
_|_ setCurrentPosition - Установка текущей позиции мотора, через RTrig
_|¯ AutoPower - Управление питанием
_|_ getSpeed - Просмотр целевой скорости мотора на выходе curSpeed, через RTrig
Выходы:Показать
_|¯ Ready - На выходе высокий уровень, если мотор стоит или остановился
Position - На выходе текущая позиция в шагах
curSpeed - На выходе текущая целевая скорость мотора
Position - На выходе текущая позиция в шагах
curSpeed - На выходе текущая целевая скорость мотора
Ненужные режимы, входы отключаются.
Выявленные недостатки библиотеки gyverstepper: пока не проверено…Показать
1. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop, то мотор резко останавливается и продолжает медленно шагать! Как решение использовать резкую остановку break или reset. Все вопросы к Гайверу (в тестовом примере с его сайта у меня наблюдаются такие-же глюки).
2. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop и тут же включить опять бесконечное вращение то мотор ускоряется не с нуля а с момента остановки (может стартануть вообще без ускорения)... Решение см. п.1.
2. В режиме бесконечного вращения с включенным режимом SMOOTH (плавный разгон и торможение) если во время плавного ускорения вызвать плавную остановку stop и тут же включить опять бесконечное вращение то мотор ускоряется не с нуля а с момента остановки (может стартануть вообще без ускорения)... Решение см. п.1.
Примеры (внимание в примерах используются и старые и новые блоки…Показать
Бесконечное вращение -
Бесконечное вращение с реверсом -
Шагаем в режиме относительных координат -
Крутим мотор туда сюда на определенное количество шагов бесконечно viewtopic.php?t=7245&start=40#p103761[/color]
ТРЕБУЕТСЯ ТЕСТИРОВАНИЕ ВСЕХ РЕЖИМОВ....
Можете отблагодарить на кофе, ну или хотя-бы лайкните пост.