Блок ускорения/торможения Шагового двигателя
Блок ускорения/торможения Шагового двигателя
Уважаемые господа - товарищи!
Имею законченную разработку ручного управления для станков с приводами ШД (управление от энкодера, авто подача/ускоренная подача, индикация перемещений, программирование конечной точки перемещения и т.д.).
viewtopic.php?f=54&t=4600&p=64206#p64206
Но это приемлемо для сравнительно небольших ШД. При использовании более мощных ШД, при резком старте/тормозе, возникают сильные стуки в электро-механической части. Это не очень здорово, мягко говоря, сказывается на работе и ресурсе станка.
Виной всему - отсутствие функции разгона/торможения в блоках.
В консультациях с [ref]vacz[/ref] и с [ref=#ff8000]Sancho[/ref], , выяснилось, что существующие ПБ не очень способны сделать это.
Начитавшись в других форумах о возможности формирования режима ускорения/торможения, нашел библиотеки с данными функциями. Но эти библиотеки тоже не без "изъяна". Во всяком случае, возникают проблемы с индикацией перемещений.
Лучшие рецензии на библиотеку нашего соотечественника, написанную на основании вышеизложенных.
http://arduino.ru/forum/programmirovani ... celstepper Попробовал написать свой блок (это второй ПБ CODE в моей практике FLProg). Но, видно еще не дорос. Никак не пойму, как выводить функции на контакты Блока и связывать с командами библиотеки.
В общем задача такая:
Входы блока
- Старт (бесконечное количество шагов до команды "Стоп") stepperq.moveTo(100000L);
- Одиночный старт (для возможности управления от энкодера по каждому тику) "stepper.run(); ? "
- Индексированное перемещение (по заданному количеству шагов) stepperq.move();
- Стоп stepperq.stop();
- Направление "?"
- Скорость stepperq.setSpeed();
- Ускорение/торможение stepperq.setAcceleration();
- Делитель (множитель) шагов - кратность количества импульсов каждому сигналу "Старт"
(примерно такая функция "Divider", которая была в генераторах от Слимпера) "stepRevo=(); ?"
Выходы блока
- Выходные Step/Dir (без Enable) - пины Ардуино, с возможностью переназначения. Режим 1 в библиотеке.
- Количество сделанных шагов (для индикации перемещения) "??"
Вырисовывается три режима.
- Режим перемещения от энкодера.
- Режим вкл./выкл. подачи без индексирования (нет конечной точки останова). Вкл. подачи - мягкий разгон - проход на заданной скорости - выкл. подачи - замедление с остановом (прогнозируемый пролет).
- Режим с индексированием. Как предыдущий режим, но останов с замедлением происходит точно к заданной точке.
Если у кого-то есть навыки в написании блока, есть время и есть желание, помогите с написанием сего. Или подскажите поэтапно, как это выполнить самому.
Имею законченную разработку ручного управления для станков с приводами ШД (управление от энкодера, авто подача/ускоренная подача, индикация перемещений, программирование конечной точки перемещения и т.д.).
viewtopic.php?f=54&t=4600&p=64206#p64206
Но это приемлемо для сравнительно небольших ШД. При использовании более мощных ШД, при резком старте/тормозе, возникают сильные стуки в электро-механической части. Это не очень здорово, мягко говоря, сказывается на работе и ресурсе станка.
Виной всему - отсутствие функции разгона/торможения в блоках.
В консультациях с [ref]vacz[/ref] и с [ref=#ff8000]Sancho[/ref], , выяснилось, что существующие ПБ не очень способны сделать это.
Начитавшись в других форумах о возможности формирования режима ускорения/торможения, нашел библиотеки с данными функциями. Но эти библиотеки тоже не без "изъяна". Во всяком случае, возникают проблемы с индикацией перемещений.
Лучшие рецензии на библиотеку нашего соотечественника, написанную на основании вышеизложенных.
http://arduino.ru/forum/programmirovani ... celstepper Попробовал написать свой блок (это второй ПБ CODE в моей практике FLProg). Но, видно еще не дорос. Никак не пойму, как выводить функции на контакты Блока и связывать с командами библиотеки.
В общем задача такая:
Входы блока
- Старт (бесконечное количество шагов до команды "Стоп") stepperq.moveTo(100000L);
- Одиночный старт (для возможности управления от энкодера по каждому тику) "stepper.run(); ? "
- Индексированное перемещение (по заданному количеству шагов) stepperq.move();
- Стоп stepperq.stop();
- Направление "?"
- Скорость stepperq.setSpeed();
- Ускорение/торможение stepperq.setAcceleration();
- Делитель (множитель) шагов - кратность количества импульсов каждому сигналу "Старт"
(примерно такая функция "Divider", которая была в генераторах от Слимпера) "stepRevo=(); ?"
Выходы блока
- Выходные Step/Dir (без Enable) - пины Ардуино, с возможностью переназначения. Режим 1 в библиотеке.
- Количество сделанных шагов (для индикации перемещения) "??"
Вырисовывается три режима.
- Режим перемещения от энкодера.
- Режим вкл./выкл. подачи без индексирования (нет конечной точки останова). Вкл. подачи - мягкий разгон - проход на заданной скорости - выкл. подачи - замедление с остановом (прогнозируемый пролет).
- Режим с индексированием. Как предыдущий режим, но останов с замедлением происходит точно к заданной точке.
Если у кого-то есть навыки в написании блока, есть время и есть желание, помогите с написанием сего. Или подскажите поэтапно, как это выполнить самому.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок ускорения/торможения Шагового двигателя
Уважаемые Специалисты!
Обратите все же внимание на мой призыв.
Ведь в случае получения положительного результата, многие пользователи смогут реализовать свои разработки в области построения приводов с шаговыми двигателями.
Обратите все же внимание на мой призыв.
Ведь в случае получения положительного результата, многие пользователи смогут реализовать свои разработки в области построения приводов с шаговыми двигателями.
Блок ускорения/торможения Шагового двигателя
[ref]Priyatel[/ref], форум альтруистический. Как у кого возникнет интерес или просто желание , то что то и получите.
С этой библиотеки пытались блок сделать?
С этой библиотеки пытались блок сделать?
Где Ваш не получающийся блок?
Последний раз редактировалось AVGN 05 мар 2019, 21:13, всего редактировалось 1 раз.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
Блок ускорения/торможения Шагового двигателя
Вот я писал о трудностях:
Что делать дальше, пока не представляю.
Вы бы описали процедуру, а я, думаю, догадался бы, как присвоить остальные выходы/входы к командам.
И не надо так критично. Ведь в недавнем прошлом, Вы примерно так же начинали?
Первый блок в моей практике был такой: Мне не понятно было, как развести (размножить) блоки в пределах программы, присвоив им различные входы на Ардуино. Я вышел из положения, переписывая номера выводов в каждом блоке под свой канал.
Так что, пока такие вот познания.
Поэтому блок пока сводится в расстановке команд, которые я описал, в Setup и Loop.Priyatel писал(а): 01 мар 2019, 14:56Никак не пойму, как выводить функции на контакты Блока и связывать с командами библиотеки.
Что делать дальше, пока не представляю.
Вы бы описали процедуру, а я, думаю, догадался бы, как присвоить остальные выходы/входы к командам.
И не надо так критично. Ведь в недавнем прошлом, Вы примерно так же начинали?
Первый блок в моей практике был такой: Мне не понятно было, как развести (размножить) блоки в пределах программы, присвоив им различные входы на Ардуино. Я вышел из положения, переписывая номера выводов в каждом блоке под свой канал.
Так что, пока такие вот познания.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок ускорения/торможения Шагового двигателя
У меня нет прошлого только оставшаяся вечностьPriyatel писал(а): 05 мар 2019, 20:11Вы бы описали процедуру, а я, думаю, догадался бы, как присвоить остальные выходы/входы к командам.
И не надо так критично. Ведь в недавнем прошлом, Вы примерно так же начинали?

А процедуру автор FLProg в 2016 изложил вот здесь Описание работы с блоками пользователя на основе кода на C
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
Блок ускорения/торможения Шагового двигателя
А у меня нет будущего, так как жить осталось совсем немного. А Вы меня какими-то процедурами лечите. Вы что, врач? Я думаю, у меня хватило сообразительности полазить по форуму и почитать на досуге.
Блок ускорения/торможения Шагового двигателя
вот, может натолкнет на какие мысли, аналог примера "пропорционал контрол" из библиотеки.
Не уверен что правильно распихал, учусь.
Не уверен что правильно распихал, учусь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Блок ускорения/торможения Шагового двигателя
вот мышление ... одни видят оставшуюся вечность а у других совсем немного... да всем нам осталось оставшуюся вечностьPriyatel писал(а): 05 мар 2019, 21:29А у меня нет будущего, так как жить осталось совсем немного. А Вы меня какими-то процедурами лечите.

Так ведь Вы сами написали :
Эту процедуру действительно Сергей , автор программы, уже описал и даже показал на видеоуроке.
Или Вы считаете что Вам знатоки опишут лучше чем автор программы описал?
Все же тут учимся на уроках от автора программы. Только он знает как она крутится.
А что бы самому освоить изготовление блоков надо знать язык С++. Я так понимаю Вы им не владеете.
И вы Priyatel не прочли главный наверно вопрос от AVGN - на какой библиотеке хотите блок сделать.
А блоки вообще все здесь делают из примеров к библиотеке.
Выкладывайте пример кода C и Вам наверняка быстрее помогут.
Отправлено спустя 4 минуты 36 секунд:
Вот этот пример Вам поможет решить Вашу задачу:
Блок ускорения/торможения Шагового двигателя
Огромное спасибо всем вам, кто откликнулся.
[ref]valand[/ref], персональное Вам спасибо.
Из представленного Вами блока я понял, что достаточно, например, в команде "stepperq.setAcceleration();" прописать в скобках имя переменной, которая и будет входом для вводимого значения. Именно эта подсказка мне нужна была изначально!
Пример, который Вы рекомендовали, как раз и присутствует в одной из них. Сделать Ctrl+C/Ctrl+V, дело не хитрое.
Я сам преподаватель, с сорокалетним стажем. Но годы, наверно берут свое. И понимание нового стало хуже усваиваться. Зато valand, практически сразу дал ответ на мой вопрос, без тыканья носом...
Сейчас двигаюсь дальше и провожу эксперименты. Что получится - буду выкладывать. Но остались еще вопросы, которые изложу по мере освоения материала.
P.S.
Слишком короток век - позади до обидного мало, был мороз - не мороз, да и зной был не очень-то зной.
Только с каждой весной все острей ощущенье финала, этой маленькой пьесы, что придумана явно не мной.
Это словно в кино - где мы в зале и мы на экране. Всем обещан полет и сверкают огни полосы.
Только время пришло - отпирает, трезвонит ключами. И разрушено все - и со вздохом глядишь на часы.
Кто тут прав, кто не прав, я прошу вас, не надо не спорьте. Слишком короток век - не прошел бы за спорами весь.
Мы увидимся все в позаброшенном аэропорте, при попытке успеть на когда-то отправленный рейс.
[ref]valand[/ref], персональное Вам спасибо.
Из представленного Вами блока я понял, что достаточно, например, в команде "stepperq.setAcceleration();" прописать в скобках имя переменной, которая и будет входом для вводимого значения. Именно эта подсказка мне нужна была изначально!
Я писал, что на библиотеке "stepperQ". А она, в свою очередь, написана на библиотеке "AccelStepper".Mining писал(а): 06 мар 2019, 11:15И вы Priyatel не прочли главный наверно вопрос от AVGN - на какой библиотеке хотите блок сделать.
Пример, который Вы рекомендовали, как раз и присутствует в одной из них. Сделать Ctrl+C/Ctrl+V, дело не хитрое.
Я сам преподаватель, с сорокалетним стажем. Но годы, наверно берут свое. И понимание нового стало хуже усваиваться. Зато valand, практически сразу дал ответ на мой вопрос, без тыканья носом...
Сейчас двигаюсь дальше и провожу эксперименты. Что получится - буду выкладывать. Но остались еще вопросы, которые изложу по мере освоения материала.
P.S.
Слишком короток век - позади до обидного мало, был мороз - не мороз, да и зной был не очень-то зной.
Только с каждой весной все острей ощущенье финала, этой маленькой пьесы, что придумана явно не мной.
Это словно в кино - где мы в зале и мы на экране. Всем обещан полет и сверкают огни полосы.
Только время пришло - отпирает, трезвонит ключами. И разрушено все - и со вздохом глядишь на часы.
Кто тут прав, кто не прав, я прошу вас, не надо не спорьте. Слишком короток век - не прошел бы за спорами весь.
Мы увидимся все в позаброшенном аэропорте, при попытке успеть на когда-то отправленный рейс.
- Ivan_Kornege
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 29 апр 2017, 08:24
- Откуда: гАндурас
- Имя: Ivan
Блок ускорения/торможения Шагового двигателя
а если изучить программирование Ардуино, то такие подсказки и нафик не нужныPriyatel писал(а): 06 мар 2019, 13:19Из представленного Вами блока я понял, что достаточно, например, в команде "stepperq.setAcceleration();" прописать в скобках имя переменной, которая и будет входом для вводимого значения. Именно эта подсказка мне нужна была изначально!

Блок ускорения/торможения Шагового двигателя
есть проблемы с ускорением в той библиотеке что вы выше прикрепили, здесь описаны
И не понятно исправили или нет, скачанная оттуда библиотека (самая свежая должна быть), но выдает ошибку при компиляции любого примера. Кроме того сам автор говорит что это не очень подходит для маленьких скоростей, а вам для станков как я понимаю малые важнее.
Блок ускорения/торможения Шагового двигателя
[ref]valand[/ref], большое спасибо за информацию. Эту библиотеку как раз оттуда и скачивал. О заявленных проблемах знаю. На низких частотах как раз работает очень устойчиво, а на высоких идет девиация (низкочастотное качание). Больше проблем с установкой ускорений. Наверно что-то не так делаю.Так как удостовериться или опровергнуть данные из GitHub пока не удалось, слишком критичные и пустобрешные у меня наставники. Решил связаться с автором библиотеки. Он живет в Дюссельдорфе. Есть тенденция к развитию. Как только будет положительный результат - отпишусь. Но, скорее всего, в личку Вам. Не очень хочется здесь общаться!
Блок ускорения/торможения Шагового двигателя
Это сейчас о чем? Не удалось усвоить видеоурок от автора программы, я Вам ссылку давал помните.
И посчитали урок от автора пустобрешьем. Отлично -отблагодарил за альтруистический труд.
Что же так расстраиваться это альтруистический ресурс. Помогли спасибо. Нет на нет и суда нет.
Это же хобби.
Куда Вы торопитесь -сделаете свою поделку.
Или коммерческий проект, сроки поджимают ?
Тогда в ветку по приему заказов -найдутся кто любой каприз за Ваши деньги и в Ваши сроки.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
Блок ускорения/торможения Шагового двигателя
[ref]AVGN[/ref], хватит издеваться. Я на Вас пожалуюсь!
Блок ускорения/торможения Шагового двигателя
Прекращаем препираться.
[ref]Priyatel[/ref], в словах пользователя [ref]AVGN[/ref], я не увидел никаких издевательств. Все верно - на форуме никто никому ничего не должен. Есть возможность помогут, нет так нет. А вам как раз бы стоило извиниться за оскорбление людей вам же помогающих.
[ref]Priyatel[/ref], в словах пользователя [ref]AVGN[/ref], я не увидел никаких издевательств. Все верно - на форуме никто никому ничего не должен. Есть возможность помогут, нет так нет. А вам как раз бы стоило извиниться за оскорбление людей вам же помогающих.
Блок ускорения/торможения Шагового двигателя
Как Вам не стыдно Люди - вы звери. Я всего навсего просил о поддержке. Эта свора мне ни в чем не помогла. Помогли другие люди. И им, еще раз - спасибо. После этого - этот... мне пытается ставить минусы. Вы посмотрите на другие форумы. Как они ведут себя? Они что, хозяева Вселенной? А я два раза обращался лично к Вам Anydy за помощью. Но ни одного ответа. Значит - Вы покрываете действия ХАМОВ.
Блок ускорения/торможения Шагового двигателя
[ref]Priyatel[/ref], Что вам не понравилось в этой теме, кто что сказал не так? Это обычное явление на всех форумах - когда знающему человеку надоедает отвечать новичкам на одни и те же вопросы - просто отправляют читать информацию. Я вот тоже не увидел в этой теме ваши лично созданные блоки которые у вас не работают.....но поддержку вы требуете...какую? Написать за вас блок?
Но вы же вместо спасибо говорите - пустобрехи, свора, звери, хамы....
Но вы же вместо спасибо говорите - пустобрехи, свора, звери, хамы....
Блок ускорения/торможения Шагового двигателя
Я ничего не требовал и не кого ни к чему не обязывал. Я только попросил о помощи, рассказав о задачах будущего ПБ. В ответ мне посыпались изречения о моей неграмотности в С++. Я еще раз объяснюсь: если бы я был докой в программировании (я об этом писал в первом заявлении к Вам), то на этом Форуме меня бы не было.
Я, профессиональный моделист, Мастер спорта СССР, руководитель Центра технического творчества детей и молодежи "Моделист", профессиональный токарь, фрезеровщик, шлифовщик, заточник, слесарь - инструментальщик, специалист ВК по ЧПУ оборудованию, авиационный инженер по приборам, автоматам и радиоэлектронному оборудованию, инженер - конструктор ЛА. Почему я должен сменить свою профессиональную ориентацию на склоне лет в пользу С++? Моей задачей было создание миниатюрных станков для технического творчества с электронно-механическим управлением, как ЧПУ, так и без него. Обсуждение очень хорошо проходило viewtopic.php?t=4600. Заметьте, там никто не намекнул о моей непрофессиональной непригодности в С++. Но, возникла ситуация, когда люди мне сказали в личной переписке, что их познания в этой области исчернаны. Посоветовавшись с Sancho, он сказал, что лучше создать новую тему. Я ее создал. Никто даже не обратил внимания. На пятый день я решил напомнить о себе. А дальше Вы все знаете...
Я, профессиональный моделист, Мастер спорта СССР, руководитель Центра технического творчества детей и молодежи "Моделист", профессиональный токарь, фрезеровщик, шлифовщик, заточник, слесарь - инструментальщик, специалист ВК по ЧПУ оборудованию, авиационный инженер по приборам, автоматам и радиоэлектронному оборудованию, инженер - конструктор ЛА. Почему я должен сменить свою профессиональную ориентацию на склоне лет в пользу С++? Моей задачей было создание миниатюрных станков для технического творчества с электронно-механическим управлением, как ЧПУ, так и без него. Обсуждение очень хорошо проходило viewtopic.php?t=4600. Заметьте, там никто не намекнул о моей непрофессиональной непригодности в С++. Но, возникла ситуация, когда люди мне сказали в личной переписке, что их познания в этой области исчернаны. Посоветовавшись с Sancho, он сказал, что лучше создать новую тему. Я ее создал. Никто даже не обратил внимания. На пятый день я решил напомнить о себе. А дальше Вы все знаете...
- nalnik
- Подполковник
- Сообщения: 1320
- Зарегистрирован: 14 май 2016, 17:12
- Откуда: Кисловодск
- Имя: Александр
Блок ускорения/торможения Шагового двигателя
Вот - умных к умным а Вас к нам - занесло.Priyatel писал(а): 08 мар 2019, 23:02Я, профессиональный моделист, Мастер спорта СССР, руководитель Центра технического творчества детей и молодежи "Моделист", профессиональный токарь, фрезеровщик, шлифовщик, заточник, слесарь - инструментальщик, специалист ВК по ЧПУ оборудованию, авиационный инженер по приборам, автоматам и радиоэлектронному оборудованию, инженер - конструктор ЛА.
Отправлено спустя 6 минут 10 секунд:
А что Вы хотели?Priyatel писал(а): 08 мар 2019, 23:02Никто даже не обратил внимания. На пятый день я решил напомнить о себе
Адрес руководитель Центра технического творчества детей и молодежи "Моделист" покажите или хотя бы заполните профиль.
Последний раз редактировалось nalnik 08 мар 2019, 23:21, всего редактировалось 1 раз.
Я хочу быть добрее, но люди сами нарываются.
Блок ускорения/торможения Шагового двигателя
Не всегда же летать в облаках, надо и вниз посмотреть...
Кто сейчас на конференции
Сейчас этот форум просматривают: grin-mpx и 1 гость