Шаговый генератор на STM32 (STEP/DIR/ENBL)
-
- Опытный
- Сообщения: 103
- Зарегистрирован: 21 фев 2017, 00:57
- Репутация: 5
- Настоящее имя: Тим
- Откуда: СПб
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Это накладывает дополнительное ограничение, все оси и сигналы должны быть заведены на этот "генератор"
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Хотя это и не ко мне вопрос, но очередь присланных команд - общая. Каждый элемент очереди содержит задание для всех координат. Наглядной аналогией являются кадры G кода - G0/G1. Они тоже содержат задания для всех координат.UAVpilot писал(а):А оси ты как синхронизировать собираешься?
Последний раз редактировалось MX_Master 09 сен 2017, 19:20, всего редактировалось 1 раз.
- Argon-11
- Мастер
- Сообщения: 2068
- Зарегистрирован: 07 июн 2017, 17:48
- Репутация: 461
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Ну да, STM32 вполне справится с несколькими осями. Но вообще при чем тут оси? Шаговый двигатель и генератор могут использоваться вообще не в чпу станках, а там где никаких координатных осей нет, синхронизация не требуется и иногда даже кривые разгона не имеют особого значения. Примеров можно набрать сотни. Автор темы разве говорил, что собирается ЧПУ станок делать на основе этого генератора?tims писал(а):Это накладывает дополнительное ограничение, все оси и сигналы должны быть заведены на этот "генератор"
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Подправил первый пост в соответствии с текущими планами
К проекту вернусь сразу после того, как заточу среду разработки под Armbian на Orange Pi One![Cheesy :cheesy:](./images/smilies/icon_cheesy.gif)
![Cool 8-)](./images/smilies/icon_cool.gif)
К проекту вернусь сразу после того, как заточу среду разработки под Armbian на Orange Pi One
![Cheesy :cheesy:](./images/smilies/icon_cheesy.gif)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Как именно? Например при движении по окружности.Argon-11 писал(а):Генератор ващето можно считать реалтаймным девайсом, он и будет синхронизировать оси.
Это ты сейчас лёгким движением мысли засунул планировщик траектории в генератор, между прочим работающий в RT...MX_Master писал(а):Хотя это и не ко мне вопрос, но очередь присланных команд - общая. Каждый элемент очереди содержит задание для всех координат. Наглядной аналогией являются кадры G кода - G0/G1. Они тоже содержат задания для всех координат.
![Smile :)](./images/smilies/icon_e_smile.gif)
Но тут возникает небольшой вопрос: А зачем тогда нужен "мастер" и что он будет делать?
![Smile :)](./images/smilies/icon_e_smile.gif)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Сергей, все планы строит как раз мастер. И тот факт, что мастер отдает приказы, похожие на кадры G кода, не говорит о том, что планировщик есть в генераторе. Мастер может изменить начальную траекторию и подачи, взятые из g кода, как ему угодно. Например, загрубить изначальную дугу на отрезки. А потом прикажет генератору выполнять эти отрезки с другими подачами.UAVpilot писал(а):Это ты сейчас лёгким движением мысли засунул планировщик траектории в генератор, между прочим работающий в RT...MX_Master писал(а):Хотя это и не ко мне вопрос, но очередь присланных команд - общая. Каждый элемент очереди содержит задание для всех координат. Наглядной аналогией являются кадры G кода - G0/G1. Они тоже содержат задания для всех координат.
Но тут возникает небольшой вопрос: А зачем тогда нужен "мастер" и что он будет делать?
Генератор четко выполняет приказ движения из точки А в точку Б, со строго указанными подачами и ускорениями. Единственное, что он может планироаать - это формулы ускорения и формулы движения по дуге. Все эти формулы должны чётко соответствовать выданным приказам. Самостоятельно менять траекторию генератор не должен.
- tooshka
- Почётный участник
- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Михаил никого не слушай, ждем от тебя контроллер)))
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Более опытных людей надо слушать обязательно, а у Сергея опыта ровно на вагон больше, чем у меня (:
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Т.е. синхронизация должна происходить довольно часто, генератор-же не знает по какой траектории происходит движение. Где в этом случае генератор сможет применить свои умения типа разгона по S-кривой?MX_Master писал(а):Сергей, все планы строит как раз мастер. И тот факт, что мастер отдает приказы, похожие на кадры G кода, не говорит о том, что планировщик есть в генераторе. Мастер может изменить начальную траекторию и подачи, взятые из g кода, как ему угодно. Например, загрубить изначальную дугу на отрезки. А потом прикажет генератору выполнять эти отрезки с другими подачами.
Только я вижу противоречие между "Генератор четко выполняет приказ" и "он может планировать"?MX_Master писал(а):Генератор четко выполняет приказ движения из точки А в точку Б, со строго указанными подачами и ускорениями. Единственное, что он может планироаать - это формулы ускорения и формулы движения по дуге. Все эти формулы должны чётко соответствовать выданным приказам. Самостоятельно менять траекторию генератор не должен.
![Smile :)](./images/smilies/icon_e_smile.gif)
Что за формулы, где он их возьмёт, в каком виде они будут заданы? Как они будут синхронизироваться между осями?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7480
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3101
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Сергей, как сделаю первый тестовый образец, вам первому покажу.
Тут будет всё как в жизни: поступил сверху приказ покрасить забор в зелёный цвет за три дня, и дальше солдат может планировать и думать как хочет, может ваще не думать, но выполнить обязан.
-
- Опытный
- Сообщения: 103
- Зарегистрирован: 21 фев 2017, 00:57
- Репутация: 5
- Настоящее имя: Тим
- Откуда: СПб
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Была вот такая тема на форуме http://www.cnc-club.ru/forum/viewtopic. ... k&start=80
Правильно ли я понимаю, для реализации s-кривых нужна поддержка и в планировщике и в драйвере (генераторе), или в пределах сервоцикла они не нужны и будет достаточно реализации в планировщике?
Правильно ли я понимаю, для реализации s-кривых нужна поддержка и в планировщике и в драйвере (генераторе), или в пределах сервоцикла они не нужны и будет достаточно реализации в планировщике?
- Shkryab
- Опытный
- Сообщения: 143
- Зарегистрирован: 15 июн 2017, 21:25
- Репутация: 18
- Настоящее имя: Леонидыч
- Откуда: Страна, которой нет
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Эх, если бы был только один солдат... А что если забор красят три солдата: первый забор двигает, второй кистью машет, а третий краску произвольного цвета подносит, чтоб второй в неё кисть макал. И есть ещё четвёртый, который под забором водку пьянствует. Причём каждый делает это по своему разумению. И как теперь офицеру всю эту банду стройбатовцев озадачить, дабы забор покрашен вовремя, ровно и в зелёный цвет?MX_Master писал(а):Тут будет всё как в жизни: поступил сверху приказ покрасить забор в зелёный цвет за три дня, и дальше солдат может планировать и думать как хочет, может ваще не думать, но выполнить обязан.
![Smile :)](./images/smilies/icon_e_smile.gif)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Солдат может запланировать покрасить забор за 2 дня и целый день отдыхать, но проблема в том, что у поставщика краски могут быть свои планы - поставлять каждый день краску в количестве на 1/3 забора, а строители забора могут вообще запланировать построить забор за 4 дня...MX_Master писал(а):Тут будет всё как в жизни: поступил сверху приказ покрасить забор в зелёный цвет за три дня, и дальше солдат может планировать и думать как хочет, может ваще не думать, но выполнить обязан.
В планировщике нужна обязательно (для рабочих движений по G1, G2, G3), чтобы результирующая траектория движения нескольких осей получалась именно такой, как задумал планировщик, а не как решили генераторы/приводы, каждый по своему. Да и длительность сервоцикла (LinuxCNC -1ms, Mach3 - 2ms) ничтожна в сравнении с мех. характеристиками приводов - т.е. им просто не хватит этого времени на реализацию S-кривой разгона/торможения. А продолжать свой разгон/торможение за пределами одного сервоцикла они не имеют права, ибо это будет вопервых искажение заданной траектории, а вовторых они просто не знают какая команда ждёт их в след. сервоцикле.tims писал(а):Правильно ли я понимаю, для реализации s-кривых нужна поддержка и в планировщике и в драйвере (генераторе), или в пределах сервоцикла они не нужны и будет достаточно реализации в планировщике?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Опытный
- Сообщения: 103
- Зарегистрирован: 21 фев 2017, 00:57
- Репутация: 5
- Настоящее имя: Тим
- Откуда: СПб
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
А подождать команду следующего сервоцикла и начать исполнять предыдущий это криминал?
Тогда часть функционала s-кривой будет в приводе, но планировщик будет в курсе этого функционала - расчёт будет вестись с его учётом.
Тогда часть функционала s-кривой будет в приводе, но планировщик будет в курсе этого функционала - расчёт будет вестись с его учётом.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Ну если забить на синхронизацию с внешними сигналами от датчиков и т.п. и на возможность работы со вторым контуром ОС (линейками), то не криминал.tims писал(а):А подождать команду следующего сервоцикла и начать исполнять предыдущий это криминал?
Т.е получается, что в этом случае расчитывать S-кривые должны уметь и планировщик и генератор/привод. Но тут опять возникает всё тот-же неудобный вопроос: нафига в таком случае S-кривые в генераторе, если он может получать результаты расчёта вместе с командами от планировщика?tims писал(а):Тогда часть функционала s-кривой будет в приводе, но планировщик будет в курсе этого функционала - расчёт будет вестись с его учётом.
P.S. Вам всё ещё не кажется подозрительным, что S-кривые ещё пока никто не реализовал для рабочего движения по G1, G2, G3?..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Привода разгоняются по экспоненте.Она накладывается на разгонную характеристику чпу(линейный или s образный).Может сделать как в приводах и не заморачиваться с s обраным разгоном?
-
- Опытный
- Сообщения: 103
- Зарегистрирован: 21 фев 2017, 00:57
- Репутация: 5
- Настоящее имя: Тим
- Откуда: СПб
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Непонятно )UAVpilot писал(а):P.S. Вам всё ещё не кажется подозрительным, что S-кривые ещё пока никто не реализовал для рабочего движения по G1, G2, G3?..
В роботах есть.
В 3д принтерах есть.
В остальных применениях фича не востребованная?
Мдя, получается что от реализации кривых в приводе смысла мало.
- wldev
- Мастер
- Сообщения: 1647
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Да много где реализовано, и я реализовал в WLMotion. и по прямым и по кругу... и по спирали..UAVpilot писал(а):P.S. Вам всё ещё не кажется подозрительным, что S-кривые ещё пока никто не реализовал для рабочего движения по G1, G2, G3?..
Также сейчас стыкую контроллер WLMotion и программу управления станком для гибки проволоки. Там будет и асинхронные движения осей.
Например поворот головы идёт по S кривой (большая масса=инерция=пружение=при передачи момента движения), а все остальные по трапеции.
вот старое видео для понимания...
https://www.youtube.com/watch?v=87Z_q4AGwLg
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5182
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Если не требуется согласованного движения нескольких суставов одновременно, т.е. соблюдения точной траектории.tims писал(а):В роботах есть.
Если-же этого не требуется, а нужно просто переместиться в конкретную точку неважно по какому пути, то S-кривые применяются. Но это аналог G0, а я писал про G1-G3.
Не встречал. Правильная реализация S-кривых для G1-G3 в 3д принтерах сильно сомнительна - в применяемых в них МК просто не хватит вычислительных ресурсов для этого.tims писал(а):В 3д принтерах есть.
С асинхронным движением и S-кривыми проблем никаких нет. На твоём видео видно, что все оси движутся поодиночке. Проблемы начинаются, когда при синхронном движении двух и более осей надо точно выдерживать траекторию движения в любой момент времени.Bender писал(а):Также сейчас стыкую контроллер WLMotion и программу управления станком для гибки проволоки. Там будет и асинхронные движения осей.
Например поворот головы идёт по S кривой (большая масса=инерция=пружение=при передачи момента движения), а все остальные по трапеции.
Ранее тут уже выяснили, что разгон по S-кривой занимает больше времени, чем обычный линейный. А одно из требований к рабочему ходу (G1-G3) - как можно быстрее выйти на заданную скорость, ибо от этого зависит качество обработки и долговечность инструмента. Т.е. получается, что S-кривые вредны для рабочего хода...
Чтобы в живую посмотреть, какие траектории получаются достаточно на станке с сервоприводами (желательно с осями, заметно отличающиеся массой/инерцией) загрубить настройки PID сервоприводов (чтоб они были "помягче") и пробовать разные траектории, чем они будут мельче, тем эффект будет заметнее.
В LinuxCNC с обратной связью от приводов результат заметить, и даже измерить будет проще - при отклонении от заданной траектории станок будет аварийно останавливаться по "following error".
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Шаговый генератор на STM32 (STEP/DIR/ENBL)
Для шприц-дозатора может оказаться удобнее полностью автономное устройство, наподобие этого: Конкретно в этом один канал, но в неспешной разработке трехканальный вариант.Argon-11 писал(а):В моем проекте (поршневой дозатор) это тоже не требуется и даже будет вредно, поскольку мастером является одноплатник с ОС Android
Чудес не бывает. Бывают фокусы.