Шаговый двигатель

Использование драйверов двигателей и пользовательских блоков к ним
Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#21

Сообщение vacz » 03.12.2017{, 18:49}

Проверяю, все работает. Проверяйте у себя.
_uVideoPlayer({'url':'');
Вложения
Proverka.flp
(192.61 КБ) 112 скачиваний
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
Fix
Рядовой
Сообщения: 76
Зарегистрирован: 15.11.2017{, 01:29}
Репутация: 1
Откуда: moscow
Имя: Юрий
Контактная информация:

Шаговый двигатель

#22

Сообщение Fix » 03.12.2017{, 22:25}

vacz писал(а):Проверяю, все работает. Проверяйте у себя.
Работает тоже только пищит иногда

vto83
Рядовой
Сообщения: 27
Зарегистрирован: 16.11.2017{, 20:16}
Репутация: 0
Откуда: Москва

Шаговый двигатель

#23

Сообщение vto83 » 07.12.2017{, 14:36}

Подскажите а как можно и дисплей добавить, я читал описание что нельзя 
Блок совместно с блоком дисплея не использовать! Возможен сбой частоты вращения двигателя, так как время програмного цикла дисплея,превышает период генератора в блоке. Для совместной работы с дисплеем необходим другой блок, на прерываниях.  ка можно реализовать ?

Аватара пользователя
diman27
Сержант
Сообщения: 244
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 2
Откуда: Белово

Шаговый двигатель

#24

Сообщение diman27 » 07.12.2017{, 17:17}

Привет всем, а если мне надо что бы двигатель вращался бесконечно x определенной скоростью что мне сделать с G-steps?

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#25

Сообщение vacz » 07.12.2017{, 18:21}

Цитата vto83 () Подскажите а как можно и дисплей добавить
Блоки найдете в этой теме на один и четыре шаговых двигателя.
К стати: в сообщении №4, нажмите на спойлер. Там два этих блока уже есть.

Цитата diman27 () а если мне надо что бы двигатель вращался бесконечно x определенной скоростью
Просто поставьте блок генератора и меняйте на нем частоту (скорость)
Вложения
9947904.ubi
(272.73 КБ) 109 скачиваний
2652245.png
Последний раз редактировалось vacz 08.12.2017{, 16:23}, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
diman27
Сержант
Сообщения: 244
Зарегистрирован: 06.09.2015{, 07:33}
Репутация: 2
Откуда: Белово

Шаговый двигатель

#26

Сообщение diman27 » 10.12.2017{, 15:41}

Не, вы не поняли. G-steps как вывести, что бы двигатель не останавливался?

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#27

Сообщение vacz » 11.12.2017{, 16:40}

Этот блок не проектировался для непрерывного вращения ШД. Добавьте к нему G-SM, для совместной работы по количеству витков и для непрерывной работы.
Вложения
9103617.png
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель

#28

Сообщение eugeneb » 15.12.2017{, 13:36}

Уважаемый vacz!
Нет ли у вас варианта блока, который строит "трапецию" скорости?
То есть учитывается ещё один параметр - ускорение/замедление(имп/с^2),
а параметр Speed является ограничением сверху.

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#29

Сообщение vacz » 15.12.2017{, 17:51}

Если я Вас понял, то поставьте блок Limit. На входе можете менять скорость больше /меньше. На входах Min и Max установите ограничения - минимальные и максимальные значения скорости(частоты).

Попробуйте. Должно работать.
Вложения
0428755.png
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель

#30

Сообщение eugeneb » 15.12.2017{, 18:44}

Да, поняли правильно.
Наверное теперь мне надо организовать рост скорости
по треугольному закону. Половину заданного объёма импульсов
задание скорости будет расти, а вторую половину будет падать.
Блок ограничения сделает из этого треугольника трапецию.
Вот только как построить этот закон: как функцию времени или
как функцию выданных импульсов? Если времени, то чем мерять
время?
А скорость у вас в каких единицах задаётся?

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#31

Сообщение vacz » 15.12.2017{, 19:56}

Вы откройте блок через редактирование. Он собран на встроенных блоках. Импульсы подаются на G-SM в микросекундах.

Ну а изменение частоты можно организовать примерно по такой схеме:
Вложения
5145419.png
0089010.png
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель

#32

Сообщение eugeneb » 16.12.2017{, 13:58}

А-а, так  Speed у вас - это не скорость, это полупериол частоты! Это не то!
В этом варианте скорость (частота СТЕП) будет меняться по гиперболическому
закону, а не по линейному. К тому-же ступенчато.
Вот и у меня пока не получается сделать линейное изменение скорости.

Добавлено (16.12.2017, 13:58)
---------------------------------------------
Чтобы получить линейный закон изменения скорости(частоты), период
должен меняться по гиперболе. Вот по такой формуле: 
T=1/(At), где А-заданное ускорение (имп/с^2), а t-текущее время. 

Вопрос: как в ФЛПрог получить текущее время? Есть ли такие блоки?

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#33

Сообщение vacz » 18.12.2017{, 16:35}

Конструктивно ШД выполнен так, что при подаче импульса напряжения, поворот ротора ШД осуществляется на некоторый угол, или, как принято говорить ШАГ, отсюда и название двигателя. Для схемы управления шаговым двигателем применяется регулируемый генератор импульсов. Скорость вращения шагового двигателя определяется только частотой следования импульсов управления и она всегда будет ступенчатой. Для сглаживания наиболее эффективным является использование микрошагового режима управления. Системы управления с дроблением шага, благодаря постепенному смещению ротора (дробление шага на 1/8, 1/16 или 1/32) уменьшают механические колебания.
СпойлерПоказать
Говорить о линейности управления, относительно шагового двигателя, возможно наверно только условно. Не знаю Ваших задумок и пожеланий.
Вложения
6641128.jpg
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#34

Сообщение vacz » 18.12.2017{, 16:39}

Вот попробуйте блок управления ШД ( может быть пригодится) по такому принципу:
СпойлерПоказать
схеме:
СпойлерПоказать
СпойлерПоказать
Блок работает в режиме: ПУСК - ступенчатое увеличение скорости ШД в течении заданного времени - набор максимальных оборотов (заданных) - работа на заданных оборотах в течении заданного времени - ступеннчатое снижение оборотов в течении заданного времени - остановка при достижении заданных минимальных оборотов.
вход - "seconds": установка времени увеличения/снижения скорости (частоты) в секундах.
вход - "speed Min": установка минимальной скорости (частоты) в микросекундах. Чем выше значение, тем меньше начальная скорость. Подбирается опытным путем. (У каждого ШД есть точка начала набора скорости. До достижения определенной частоты вращения, ШД не будет реагировать на увеличение скорости (по тех.характеристике)).
СпойлерПоказать
вход - "speed Max": установка максимальной скорости (частоты) в микросекундах. Чем ниже значение, тем больше начальная скорость.
вход - "delay sec": установка времени работы на максимальной скорости (частоте).В секундах.
вход - "pusk": начало работ
выход - "step": выход импульсов (на STEP (PUL) драйвера ШД).
При желании можно переделать под свои нужды.

Добавлено (18.12.2017, 16:39)
---------------------------------------------
Видео:
СпойлерПоказать
_uVideoPlayer({'url':'');
Вложения
5768104.gif
3221176.gif
9824435.png
5929346.png
1126707.gif
Последний раз редактировалось vacz 18.12.2017{, 16:47}, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#35

Сообщение vacz » 18.12.2017{, 16:41}

файлы:
Вложения
HD-2.flp
(923.09 КБ) 132 скачивания
HD-s-t-s-FBD-.ubi
(776.87 КБ) 118 скачиваний
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель

#36

Сообщение eugeneb » 19.12.2017{, 13:23}

О-о, столько накрапал, vacz, браво!
Однако, всё неправильно.
Вы меня не слышите.

Перечитайте моё сообщение №32. Внимательно.

И, для начала, перестаньте переменные с размерностью "время" называть "скоростью".
Это обратные друг к другу величины.

Вечером поподробнее напишу.
А пока вопрос (без подвоха): как вы получили первый график в сообщении №34 ?

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#37

Сообщение vacz » 19.12.2017{, 17:19}

Для начала, давайте определимся. Мы о каком двигателе разговариваем? Если о коллекторном, то - частота вращения якоря коллекторного двигателя напрямую зависит от интенсивности магнитного поля, которое, в свою очередь, прямо пропорционально напряжению. То есть, чтобы увеличить или уменьшить обороты, достаточно повысить или снизить уровень питания.
Если говорим о шаговом двигателе(совершенно другой тип двигателей постоянного тока), то - скорость вращения шагового двигателя определяется только частотой следования импульсов управления и она всегда будет ступенчатой. То есть, чтобы увеличить или уменьшить обороты, необходимо повысить или снизить частоту следования импульсов.
Ну , а теперь давайте обратимся к Википедии. Что же такое скорость и частота?
Термин «скорость» используют в науке и в широком смысле, понимая под ним быстроту изменения какой-либо величины в зависимости от другой во времени. Так, например, говорят об угловой скорости. Угловая скорость — величина, характеризующая скорость вращения материальной точки вокруг центра вращения.
Частота — физическая величина, характеристика периодического процесса, равна количеству повторений или возникновения событий (процессов) в единицу времени.
Отсюда следует - Чтобы увеличить или уменьшить обороты (скорость изменение во времени) шагового двигателя, необходимо повысить или снизить частоту (быстроту изменения во времени) следования импульсов. Так, что Ваше изречение «перестаньте переменные с размерностью время называть скоростью. Это обратные друг к другу величины», в данном случае не уместны. Что касается надписи «Speed» (скорость), то не мной заведено обозначать этим словом входы, переменные в блоках управления двигателем. Они означают лишь значение длительности импульса, влияющее на скорость ШД и мы это прекрасно понимаем. Я, только придерживаюсь этой традиции.
Что касается построения графика. Я надеюсь, Вы видите, что написано на осях координат х и у.
Как построить График функции —( множество точек, у которых абсциссы являются допустимыми значениями аргумента x, а ординаты — соответствующими значениями функции у), надеюсь Вас учили этому в школе.

Ну и конечно Вам стоит определиться – что же Вы все таки хотите получить? С какими параметрами? Я не гадалка и не ясновидящий.
Последний раз редактировалось vacz 20.12.2017{, 06:38}, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель

#38

Сообщение eugeneb » 19.12.2017{, 18:16}

Дорогой vacz!
Я вовсе не считаю вас "глупеньким"!
Как раз наоборот, я обратился к вам с вопросом
по управлению ШД именно потому, что вижу, что вы
очень хорошо разобрались в ШД. Я помню, как вы
начинали разбираться на этом форуме и чего вы
добились сейчас. Один ваш намоточник достоин восхищения и выставок. Я тоже хорошо понимаю работу ШД, и вижу, что у вас в последнее время было много практики. 

Я не слишком часто сталкиваюсь с ШД. Но вот
нарисовалась задача линейно разогнать и линейно
остановить ШД за одну секунду при общем количестве импульсов от 1500 до 3000 . (не факт, что задача имеет решение на ФЛПроге)

Спросил вас на всякий случай, чтобы сэкономить время, если повезёт. 

Вы проделали много работы и выдали мне решение.
Спасибо вам огромное!

Но понимаете, какая закавыка.
"Платон мне друг, но истина дороже!" (с)

В ваших блоках по ШД есть методическая ошибка.
Её многие допускают. Просто в этой ветке представился
случай её обсудить. Если не хотите - давайте замнём.
Если угодно - неспешно разберёмся что к чему.
Только пожалуйста без выяснения у кого какое образование. Дело то простое, академиев не требуется

Аватара пользователя
vacz
Лейтенант
Сообщения: 480
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 51
Имя: Владимир

Шаговый двигатель

#39

Сообщение vacz » 19.12.2017{, 20:44}

Согласен.
Всегда приветствую людей, добивающихся своей цели.
Изменение скорости сильно зависит от тех. характеристик ШД, характеристик нагрузки, трения, инерции и др. А также примененного драйвера. В основном , все заводские Step/Dir драйвера (заложено изготовителем), стартуют не на заданной частоте, а начинают движение с малой частотой и затем , через время переходят на заданную частоту.
eugeneb писал(а):Чтобы получить линейный закон изменения скорости(частоты), период
должен меняться по гиперболе. Вот по такой формуле:
T=1/(At), где А-заданное ускорение (имп/с^2), а t-текущее время.

Вопрос: как в ФЛПрог получить текущее время?
Что касается текущего времени в определенной точке, то наверно возможно получить его так:
СпойлерПоказать
Давайте попробуем рассмотреть на примере. У нас на входе OnVal генераторе G-SM задается «Длина импульса» - 100 микросекунд . На выходе мы получаем импульсы, следующие с частотой – 100 микросекунд. Далее подаем их на вход счетчика CTU. На выходе счетчика получаем количество импульсов . Далее ставим блок умножения. 100 микросекунд умножаем на количество импульсов и на его выходе получаем время в каждой определенной точке. Например: через 1000 импульсов, текущее время будет составлять: t = 100 микросекунд х 1000 = 100000 микросекунд. Далее ставим блок деления на 1000000 (переводим микросекунды в секунды). И на выходе получаем: t = 100000микросекунд / 1000000 = 0,1 секунды.
Вложения
2944594.png
Последний раз редактировалось vacz 20.12.2017{, 05:15}, всего редактировалось 1 раз.
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 18
Откуда: Нижний Новгород
Имя: Евгений

Шаговый двигатель

#40

Сообщение eugeneb » 20.12.2017{, 13:51}

Вот, прогнал свои хотелки через матпакет.
Это график частоты(скорости) импульсов, которые надо подать на ШД:
СпойлерПоказать
В генераторах ФЛПрог нет такого параметра как частота. В качестве
задания на них надо подавать период (точнее полупериод) желаемой частоты.

Зависимость задания периода от времени выглядит так:

Так как нам для управления генератором нужно задавать
полупериод в милисекундах или в микросекундах, модифицируем
эту формулу так:

Строим график по этой формуле:
СпойлерПоказать
Лимит графиков кончился. Продолжу в следующем посте.
Вложения
1843522.png
9441607.png
4381739.png
8400657.png
Последний раз редактировалось eugeneb 20.12.2017{, 14:55}, всего редактировалось 1 раз.

Ответить

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