Страница 1 из 1
LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 03 мар 2012, 18:23
abramjans
Всем привет.
Читал о сервоприводах - точность и скорость выше и прочее.
Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?
Вопрос серьёзный - там же энкодеры, там вообще неизвестная система управления (с шаговиками всё ясно - есть контакт "шаг" и "направление" - по моему так EMC2 работает с электроникой).
Или всё таки проще купить некий специализированный контроллер и грузить туда G коды? хотя что же тогда будет делать визуализацию.
Кто в курсе (щупал / работал) - напишите, пожалуйста.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 03 мар 2012, 22:51
Nick
abramjans писал(а):Читал о сервоприводах - точность и скорость выше и прочее.Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?
Да может

. Основная суть в том, что linuxCNC есть hal - он позволяет работать с любым оборудованием (ну ил почти с любым). В hal есть отдельные компоненты, которые общаются между собой. Некоторые рассчитывают траекторию, интерпретируют Gкод, вторые создают управляющие импульсы, третьи общаются с оборудованием.
В случае с шаговиками работает компонент stepgen, кстати в emc2 всегда есть составляющая обратной связи (в случае шаговиков это тоже самое, что и их команда).
В случае с сервами, можно использовать компоненты PID и pwmgen. Самая большая проблема с сервами - читать энкодер. Энкодеры могут быть по 1000 тиков на оборот и более на больших скоростях копьютер просто не сможет их обработать. Для работы с энкодерами лучше использовать платы MESA.
А какие у тебя сервы, как управляются, какая обратная связь?
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 04 мар 2012, 16:48
Andrey_L
.... Самая большая проблема с сервами - читать энкодер. Энкодеры могут быть по 1000 тиков на оборот и более на больших скоростях копьютер просто не сможет их обработать. Для работы с энкодерами лучше использовать платы MESA....
Полностью согласен,хочу заметить,что даже с платой MESA или какой другой (я пользуюсь к примеру Motenc) при увеличении количества осей скорость заметно падает.Это заметно : чаще выскакивают ошибки.Можно сделать вывод,что EMC,даже при использовании периферии ввода-вывода сильно зависит от железа компа.
Можно использовать связку серво двигатель + серводрайвер с змыканием PID в самом драйвере,а EMC в стандартной "шаговой" конфигурации,кончно,вся стойка превращается в псевдосерво и ее стоимость увеличивается,но используя серводрайвер+ двигатель производства дядюшки Ли ( к примеру Estun) можно прийти к приемлемому результату.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 04 мар 2012, 17:37
Nick
Andrey_L писал(а):Это заметно : чаще выскакивают ошибки.
Какого рода ошибки?
Не думаю, что EMC2 с компонентами stepgen будет быстрее работать, чем с pwmgen или даже pid+pwmgen.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 04 мар 2012, 18:20
Andrey_L
Nick, ошибки такого рода Error Joint N.Испытывал следующим образом : запускаю файл используя 3 оси,далее то же самое только добавляю ось Х2 для портала(Х1 Х2),начинают выскакивать вышеупомянутые ошибки,уменьшаю скорость-все в норме))Мне кажется,что с компонентами stepgen EMC не заморачивается чтением реальных энкодеров,не загружает проц ИМХО))
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 04 мар 2012, 23:45
PKM
Andrey_L писал(а):ошибки такого рода Error Joint N
наличие этой ошибки зависит от параметра [AXIS_N] FERROR
чему он равен?
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 00:17
Nick
Да, когда запускаешь в режиме stepgen, настроенном по умолчанию EMC2 энкодеры не считает.
А берет конкретно:
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
Который тупо берется с того же stepgen, считаем сколько сказали сигналов step и все - никакой обратной связи нет!
А когда грамотно настраиваешь энкодер, то появляется реальная обратная связь и ошибка Joint 0 following error говорит о том, что мотор реально отклонился от траектории. Это может быть не пропуск шагов, это отклонение может потом компенсироваться, если ты используешь сервы, но факт отклонения есть.
Как правильно сказал PKM, если тебе пофигу на эти отклонения, просто настрой FERROR по больше и все.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 19:34
Andrey_L
На эти отклонения мне сильно не пофигу

Этим постом я просто хотел сказать,что скорость работы EMC зависит от количества осей...
В моем ini FERROR= 1
MIN_FERROR= 0.05
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 21:47
Nick
Хмм... по идее значение отклонений FERROR никак не должны зависеть от количества осей. Разве что станок должен ехать медленнее, чтобы даже самая медленная ось успевала. Если ты скинешь эту ось на управление через серву по step-dir, ничего не должно поменяться. (разумеется при одинаковых настройках PID)
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.
Можно например вывести отдельные показатели по Ferror по всем осям в halscope и там отследить когда возникает ferror на данной оси...
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 22:04
Andrey_L
Nick писал(а): Разве что станок должен ехать медленнее, чтобы даже самая медленная ось успевала. Если ты скинешь эту ось на управление через серву по step-dir, ничего не должно поменяться. (разумеется при одинаковых настройках PID)
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.
Я тоже не могу сказать точно,что что- то поменяется ,потому как step-dir в EMC еще не пробовал( поэтому конкретного примера нет),а с ошибками я борюсь просто уменьшая MAX_VELOCITY не трогая FERROR.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 22:10
Nick
Andrey_L писал(а):Я тоже не могу сказать точно,что что- то поменяется ,потому как step-dir в EMC еще не пробовал( поэтому конкретного примера нет),а с ошибками я борюсь просто уменьшая MAX_VELOCITY не трогая FEERROR.
Скорее надо уменьшать max acceleration, ускорение то есть. И еще, надо тюнить PID.
Лучше всего запусти EMC2, в нем открой halscope, добавь пин Ferror потом погоняй станок и отследи в каком месте ferror увеличивается. Мы начиная отсюда
Всего понемногу (реанимация 4 axis гравера по стеклу) #6 обсуждали панельку специальную для тюнинга пид. Суть в том, что появляются удобные крутилки для параметров PID, которыми можно на лету менять параметры, и открывается halscope, на котором можно отследить улучшение/ухудшение работы ПИД регулятора. Также там есть различные циклы перемещений.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 22:50
Andrey_L
Спасибо,ветку почитаю,pid_tuning скачал,прикручу к своему HAL только.Acceleration тоже можно уменьшить,но в моем случае инерция балки и двигателя очень близки,да и с малым ускорением не впечатляет как то))
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 05 мар 2012, 23:10
Nick
по идее основные отклонения от траектории именно на ускорениях, т.к. основные усилия должны требоваться именно на это. Хотя все зависит от инструмента, размера станка, наличия постоянных сил, трения, положения звезд на небе и т.д

.
Что у тебя за станок? сделай описание и фото, так яснее будет

.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 13 апр 2012, 10:09
abramjans
привет, народ. да, многое понял...
как оказалось на сервоприводах в разы дороже (энкодеры, платы).
даже если делать - то надо, как мне кажется, в режиме "просто шаги" + выводить счётчики (реальное положение координат) на экран (в ЦНЦ).
нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 13 апр 2012, 10:38
Nick
abramjans писал(а):нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
Для координат он в принципе не нужен, он нужен для управления моментом или скоростью по команде на координату. Т.е. когда у нас задание идет в положении, а управлять мы можем только скоростью.
А управление скоростью нужно, когда у нас не строгая система - серва сдвигом постоянного тока, или шаговик, который может пропустить шаги. Тогда управление скоростью позволяет компенсировать все эти огрехи.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 13 апр 2012, 18:00
wldev
abramjans писал(а):нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
Я считаю, что нет смысла использовать внешний PID если мы контролируем вращение двигателя. PID контроллера СД вполне с этим и сам справляется в режиме позиционирования. Внешний PID нужно использовать тогда, когда мы берём ОС с линейного энкодера. В этом случае мы убираем все люфты и получаем максимальную точность.
Re: LinuxCNC и сервоприводы вместо шаговиков
Добавлено: 13 апр 2012, 18:05
Nick
А разве линейку нельзя прямо к серво драйверу подключить?
ЗЫ мне не очень нравится управление сервой по степ/диру, но, как правильно сказал Афтаев, это уже религия
