Страница 12 из 42

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 13:47
Serg
michael-yurov писал(а):К сожалению, оптимизация кода не работает, а она, как мне показалось, способна творить чудеса.
Это ошибочное мнение. В основном она помогает не заморачиваться по мелочам. Более-менее творить чудеса умеют некоторые узкозаточенные коммерческие компиляторы, но они стоят ДЕНЕГ.
michael-yurov писал(а):Так что, вероятно, придется использовать чип мощнее раза в 3, и раза в 4 дороже, чтобы возможности фильтра охватывали требования большинства пользователей.
Ещё немного экспериментов и ты придёшь к мнению, что проще не фильтровать неравномерный сигнал, а сразу сгенерить равномерный. :hehehe:

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 14:07
aftaev
UAVpilot писал(а):Ещё немного экспериментов и ты придёшь к мнению, что проще не фильтровать неравномерный сигнал, а сразу сгенерить равномерный.
еще немного экспериментов и вы с michael-yurov сбацаете шаговый драйвер с open source :hehehe:

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 14:10
Сергей Саныч
aftaev писал(а):еще немного экспериментов и вы с michael-yurov сбацаете шаговый драйвер с open source
Вот как раз опенсорс Михаил с самого начала не обещал ;)

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 16:25
aftaev
Serg-tmn писал(а):Вот как раз опенсорс Михаил с самого начала не обещал
это для этой платы, а я про драйвер шаговиков :)

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 19:59
michael-yurov
UAVpilot писал(а):Ещё немного экспериментов и ты придёшь к мнению, что проще не фильтровать неравномерный сигнал, а сразу сгенерить равномерный.
Сгенерировать равномерный сигнал, конечно, проще, чем фильтровать то, что есть.
Но использование конечного устройства не проще для тех, кто использует Mach3 или LinuxCNC.
Многие пользователи по известным причинам вернулись к использованию LPT в Mach3 после того, как попользовались внешними контроллерами.
Я бы и сам предпочел бы такой фильтр внешнему контроллеру в связке с Mach3.
aftaev писал(а):еще немного экспериментов и вы с michael-yurov сбацаете шаговый драйвер с open source
Сложное это дело. Да много уже хороших и недорогих вариантов продается. Все равно дешевле самому не собрать, даже если был бы открытый проект.
Serg-tmn писал(а):Вот как раз опенсорс Михаил с самого начала не обещал
Ну, уж простите. Мне даже как-то неловко.
Но ведь я почти ничего не скрываю, и если кому-то хочется - он может немного напрячься и сделать аналогичное устройство,
а деньги собираюсь брать не за идею, а за то, что я не поленился и сделал,
и, надеюсь, смогу сделать действительно качественно, а это намного сложнее, чем просто сделать.

Разница в объеме работы для коммерческого продукта, и для самодельного - огромная.
Для самодельного варианта я бы просто Atmel бы взял помощнее, поставил бы по одной микросхеме на каждый канал, сделал бы интерфейсную платку на макетке, и в путь.
А если бы возникли проблемы с предельной частотой, или потерей шагов - решал бы их по ходу,
И с настройками бы не парился бы, и со скважностью импульсов и с разводкой плат, и с удобством подключения, и т.п.

И разница в итоге будет в том, что с бесплатным можно было бы поразвлекаться, ради интереса,
а с коммерческим - можно поставить на станок и работать, и быть уверенным в том, что эта штука ничего не испортит и не ухудшит, нигде лишнего не сгладит, шаги не пропустит, и не даст сбоев.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 20:52
romanru1
michael-yurov писал(а):Многие пользователи по известным причинам вернулись к использованию LPT в Mach3 после того, как попользовались внешними контроллерами.
Это по каким таким причинам ,позвольте полюбопытствовать.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 25 июн 2013, 21:44
michael-yurov
romanru1 писал(а):
michael-yurov писал(а):Многие пользователи по известным причинам вернулись к использованию LPT в Mach3 после того, как попользовались внешними контроллерами.
Это по каким таким причинам ,позвольте полюбопытствовать.
Ну, если говорить про Mach 3, то я не раз встречал сообщения об этом, в частности - на форуме purelogic.
А причины,..
Первая -, и самая главная - это проблема со значительной задержкой при нажатии паузы,
Вторая - проблемы с возобновлением обработки после того, как станок был перемещен в новую позицию в состоянии паузы.
Третья - проблемы с помехозащищенностью USB (особенно при отсутствии полноценной гальванической развязки меду контроллером и интерфейсной платой),
Четвертая - проблемы с подвисанием во время обработки, т.к. Mach3 не предоставляет приоритета плагину передающему данные контроллеру, и в случае тяжелой визуализации УП Mach3 не успевает вовремя отправлять данные, а в случае с LPT драйвером такого не происходит.
Пятая - жесткая привязка к конкретному софту, а в моем случае будет и минимальный, но все же выбор.
Шестая - отсутствие гарантий совместимости с новыми версиями программы. Разработчик Mach3 вот грозится Mach4 выпустить, с поддержкой S кривых изменения скорости (с трудом верится, конечно...).
Седьмая - зачастую - нестабильность работы внешних контроллеров (проблемы с пропуском шагов, потерей шагов при смене направления, сбои, потеря синхронизации координат с Mach3 и т.п.) По этой причине приходится тестировать разные прошивки. проверять, какие работают, а какие нет, какие прошивки с какими версиями Mach3 стабильно работают и т.п.

И еще - никто ведь не запрещает использовать аппаратный контроллер вместе с этим фильтром. Результат в ряде случаев будет лучше.
Например, NCStudio - достаточно грубо генерирует сигнал, хоть и стабильно, и максимальная частота сигнала - 47 кГц,
а с этим фильтром можно сделать сигнал намного более ровным, и поднять частоту сигнала для использования мелкого микрошага.
Микрошаг и мягкость работы станка влияют не только на скорость перемещений и звук работы, но и на продолжительность жизни механики, точность, и живучесть фрез, и, даже, на максимальную скорость фрезеровки в случае с тонкими фрезами.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 05:31
Сергей Саныч
michael-yurov писал(а):Ну, уж простите. Мне даже как-то неловко.
Михаил, а что тут такого? Полагаю, у каждого, кто занимался хоть сколько-нибудь серьезными проектами, есть идеи и наработки, которые он не готов вот прямо сейчас выложить "на благо всего человечества". Ничего в этом зазорного не вижу.
Извини, если задел чем-то.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 05:57
michael-yurov
Serg-tmn писал(а):Извини, если задел чем-то.
Да я сам просто переживаю немного на эту тему.
А с другой стороны - мне какой-то стимул нужен, хоть и нереальный. Но, вдруг, и правда на этой штуке получится немного подзаработать? Мелочь, а приятно.

Вчера возился с моментом переключения сигнала Dir.
Переживаю, чтобы нигде не потерялось ни одного импульса, ни (фронта ни спада).

Но все же есть маленькая проблемка - фильтр может не дошагать на 1 импульс или перешагать на 1 импульс лишнего относительно требуемой позиции.
+/- 1 импульс относительно выходного сигнала (после умножения), а не входного. Проблема возникла из за снижения частоты петли сервоцикла с 10 до 4 кГц.

На максимальные частоты я еще эту штуку не тестировал, и пока не знаю, как это сделать.
Все что приходит в голову - это добавить лампочку чрезмерной загрузки процессора (например, чтобы загоралась при загрузке выше 80%);

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 06:15
Сергей Саныч
michael-yurov писал(а):фильтр может не дошагать на 1 импульс или перешагать на 1 импульс лишнего относительно требуемой позиции.
Если ошибка не накапливаемая, думаю, ничего страшного.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 06:17
michael-yurov
Serg-tmn писал(а):
michael-yurov писал(а):фильтр может не дошагать на 1 импульс или перешагать на 1 импульс лишнего относительно требуемой позиции.
Если ошибка не накапливаемая, думаю, ничего страшного.
Так нет конечно!

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 22:04
michael-yurov
Все доделал, кроме режима неизменной передачи сигнала.

Что-то производительности чипа оказалось все же маловато, придется заменять на более мощный.
На станке одновременно движение по нескольким осям не проверял,
Но, судя по всему, высоких частот Step без автоматической оптимизации кода на 24-мегагерцовом микроконтроллере добиться не получится.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 22:08
Сергей Саныч
michael-yurov писал(а):высоких частот Step
Это сколько в герцах?

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 26 июн 2013, 22:35
michael-yurov
Serg-tmn писал(а):
michael-yurov писал(а):высоких частот Step
Это сколько в герцах?
А фиг его знает.
Судя по всему - около 650кГц на все каналы вместе взятые (входы и выходы), т.е. сумма всех частот.
Проверить пока не могу - нужно к станку подключать.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 27 июн 2013, 20:16
michael-yurov
Короче, жопа получилась. :?
При частоте входново сигнала 20 кГц и десятикратном умножении сигнала (т.е. 200 кГц на выходе), уже загорается лампочка перегрузки (90% загрузки процессора или более),
Если и дальше увеличивать частоту - процессор сначала пожертвует точностью расчета частот, а потом и вовсе может пропустить шаги (это будет заметно) или вообще - зависнуть (этот тоже сложно не заметить).

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

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

Отведенное время на данный проект у меня давно вышло,
это значит, что продолжить смогу лишь через пару месяцев, если повезет.

Так что кому нужен фильтр LPT на серьезном чипе - ждите коммерческий вариант.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 27 июн 2013, 20:23
Nick
Т.е. работает стабильно для входных частот до 20кГц и выходных до 200кГц?
Так этого должно хватить за глаза, или нет?

Делаем расчет, чтобы максимальная входная частота была 10кГц, а выходная 100 и получаем плавную работу движков, причем с запасом.
10кГц это до 5000 об/мин, куда больше-то? "Микрошаг" на входе нам сильно точности не прибавит, ИМХО вообще не стоит ориентироваться на повышение разрешения станка за счет микрошага - только более плавная работа...

Делай платку и получишь еще медальку :)

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 27 июн 2013, 20:35
michael-yurov
Nick писал(а):Т.е. работает стабильно для входных частот до 20кГц и выходных до 200кГц?
Так этого должно хватить за глаза, или нет?
Нет, не так - я проверял только с одной осью, а если четыре оси работают одновременно, то для каждой достанется лишь по четверти от названного.

Еще попробовал с пятикратным умножением - получается 25 кГц (в сумме) на входе и 125 кГц на выходе (в сумме).

Странная какая-то зависимость, сейчас еще поэкспериментирую. :thinking:
Наверное, нужно исключить использование библиотек при проверке бита направления при счете входящих импульсов.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 27 июн 2013, 20:38
Nick
А если просто сделать по плате на ось? Можно даже делать их на одной плате с перемычками, чтобы можно было отломать сколько надо.

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 27 июн 2013, 20:46
vovafed
Nick писал(а):А если просто сделать по плате на ось?
тогда лучше 2 поставить на платку и пусть тянут по 2 канала
двухядерная будет :hehehe:

Re: Фильтр для сглаживания неравномерности импульсов Step

Добавлено: 27 июн 2013, 21:04
michael-yurov
Да тоже уже думал,
но проще с другим процессором сделать.