Сервопривод на Gyver ServoSmooth

Пользовательские блоки для управления шаговыми двигателями и сервоприводами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
AlexCrane
Лейтенант
Сообщения: 614
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 163
Откуда: Ульяновск
Имя: Александр

Сервопривод на Gyver ServoSmooth

#1

Сообщение AlexCrane » 18.07.2021{, 19:43}

Блок для управления сервоприводами на основе библиотек Gyver'а
    GyverServo.png
      Используемые библиотеки (в блок не интегрированы, скачивать по ссылкам ниже):
      GyverSmooth (https://alexgyver.ru/servosmooth/ , https://github.com/GyverLibs/ServoSmooth)
      GyverTimers (https://alexgyver.ru/gyvertimers/)

      Блоки бета-версия от 18.07.2021:
      Серво_AlexCrane_GyverServoSmooth_v3.8с_(Code_-_Professional).ubi
      Обозначения:Показать
      _|¯ - постоянная подача true, отработка по переднему фронту
      _|_ - Подача сигнала через RTrig на один цикл
      Входы:Показать
      Позиция (угол) или Позиция (длина имп.) - Задание целевой позиции
      Макс скрость, град/сек - установка максимальной скорости (градусы в секунду)
      Ускорение, градус в сек за сек или Ускорение (0.1-1) - установка ускорения в градусах/сек/сек (рабочее от 1 до ~1500). 0 - отключено (или установка ускорения (0.05 - 1.0). При значении 1 ускорение максимальное.)
      _|_ Отключить серву - Запрет работы сервопривода, через RTrig
      _|_ Включить серву - Разрешение работы сервопривода после запрета, через RTrig
      _|_ Получить текущую позицию - получение текущей позиции в градусах (0-макс. угол). Зависит от min и max (или получение текущей позиции в мкс (500 - 2400)), через RTrig
      _|_ Получить целевую позицию - получение целевой позиции в градусах (0-макс. угол). Зависит от min и max (или получение целевой позиции в мкс (500 - 2400)), через RTrig
      _|¯ Автоотключение - вкл/выкл автоматического отключения (detach) при достижении угла. По умолч. вкл
      _|¯ Смена направления - меняем 0 и максимум местами
      Выходы:Показать
      _|¯ Готов - На выходе высокий уровень, если сервопривод стоит или остановился
      Текущая позиция (угол) - Текущая позиция в углах при подаче импульса на вход _|_ Получить текущую позицию
      Целевая позиция (угол) - Целевая позиция в углах при подаче импульса на вход _|_ Получить целевую позицию
      Параметры блоки описаны внутри блока.

      Ненужные режимы, входы отключаются.

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

      Wadim77
      Рядовой
      Сообщения: 12
      Зарегистрирован: 20.08.2020{, 19:23}
      Репутация: 0
      Имя: Wadim

      Сервопривод на Gyver ServoSmooth

      #2

      Сообщение Wadim77 » Сегодня{, 17:38}

      Здравствуйте! Подскажите, попробывал этот блок. Серва крутится. Вопросов нет. Но Когда подключаю в настройках ВЫХОД (Текущая позиция) - на выходе показывает 0. Что логично т.к. на вход(Текущая позиция ) не подается импульс. Как правильно сделать, что бы я мог в любое время запросить позицию сервы? (Я буду опрашивать эту позицию по MODBUS). Вот и не понимаю как сделать.толи постоянно кидать импульсы(условно генератор ставить, что думаю неправильно), толи еще както? Спасибо!

      П.С. Инвертнул вход (тек. позиция). по сути постоянно включил. Значение считываются. Но почему то так - я задал угол 90 гр. А при считывании получается 89 гр.
      Т.е. при любом установленном значения угла (180, 90, 45 итд) вы опросе значения текущей позиции выдает на единицу меньше. Может кто знает почему так (если кто то может проверить это) . Возможно это у меня только такой глюк.

      Спасибо.

      дрон
      Рядовой
      Сообщения: 55
      Зарегистрирован: 09.11.2017{, 19:25}
      Репутация: 1
      Откуда: Москва

      Сервопривод на Gyver ServoSmooth

      #3

      Сообщение дрон » Сегодня{, 18:19}

      Здравствуйте, попробуйте так:
      Новый рисунок (4).bmp
      Отправлено спустя 51 минуту 51 секунду:
      Для скачивания вложений Вы должны быть зарегистрированы.
      Последний раз редактировалось дрон 26.07.2021{, 19:12}, всего редактировалось 1 раз.

      дрон
      Рядовой
      Сообщения: 55
      Зарегистрирован: 09.11.2017{, 19:25}
      Репутация: 1
      Откуда: Москва

      Сервопривод на Gyver ServoSmooth

      #4

      Сообщение дрон » Сегодня{, 19:11}

      Да, есть такое, на единицу отстает от заданного, может AlexCrane обратит внимание.

      Ответить

      Вернуться в «Управление шаговыми двигателями и сервоприводами»