LinuxCNC и сервоприводы вместо шаговиков
-
abramjans
- Новичок
- Сообщения: 12
- Зарегистрирован: 16 фев 2012, 14:54
- Репутация: 0
- Контактная информация:
LinuxCNC и сервоприводы вместо шаговиков
Всем привет.
Читал о сервоприводах - точность и скорость выше и прочее.
Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?
Вопрос серьёзный - там же энкодеры, там вообще неизвестная система управления (с шаговиками всё ясно - есть контакт "шаг" и "направление" - по моему так EMC2 работает с электроникой).
Или всё таки проще купить некий специализированный контроллер и грузить туда G коды? хотя что же тогда будет делать визуализацию.
Кто в курсе (щупал / работал) - напишите, пожалуйста.
Читал о сервоприводах - точность и скорость выше и прочее.
Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?
Вопрос серьёзный - там же энкодеры, там вообще неизвестная система управления (с шаговиками всё ясно - есть контакт "шаг" и "направление" - по моему так EMC2 работает с электроникой).
Или всё таки проще купить некий специализированный контроллер и грузить туда G коды? хотя что же тогда будет делать визуализацию.
Кто в курсе (щупал / работал) - напишите, пожалуйста.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Да можетabramjans писал(а):Читал о сервоприводах - точность и скорость выше и прочее.Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?
В случае с шаговиками работает компонент stepgen, кстати в emc2 всегда есть составляющая обратной связи (в случае шаговиков это тоже самое, что и их команда).
В случае с сервами, можно использовать компоненты PID и pwmgen. Самая большая проблема с сервами - читать энкодер. Энкодеры могут быть по 1000 тиков на оборот и более на больших скоростях копьютер просто не сможет их обработать. Для работы с энкодерами лучше использовать платы MESA.
А какие у тебя сервы, как управляются, какая обратная связь?
- Andrey_L
- Кандидат
- Сообщения: 69
- Зарегистрирован: 25 сен 2011, 16:50
- Репутация: 0
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
.... Самая большая проблема с сервами - читать энкодер. Энкодеры могут быть по 1000 тиков на оборот и более на больших скоростях копьютер просто не сможет их обработать. Для работы с энкодерами лучше использовать платы MESA....
Полностью согласен,хочу заметить,что даже с платой MESA или какой другой (я пользуюсь к примеру Motenc) при увеличении количества осей скорость заметно падает.Это заметно : чаще выскакивают ошибки.Можно сделать вывод,что EMC,даже при использовании периферии ввода-вывода сильно зависит от железа компа.
Можно использовать связку серво двигатель + серводрайвер с змыканием PID в самом драйвере,а EMC в стандартной "шаговой" конфигурации,кончно,вся стойка превращается в псевдосерво и ее стоимость увеличивается,но используя серводрайвер+ двигатель производства дядюшки Ли ( к примеру Estun) можно прийти к приемлемому результату.
Полностью согласен,хочу заметить,что даже с платой MESA или какой другой (я пользуюсь к примеру Motenc) при увеличении количества осей скорость заметно падает.Это заметно : чаще выскакивают ошибки.Можно сделать вывод,что EMC,даже при использовании периферии ввода-вывода сильно зависит от железа компа.
Можно использовать связку серво двигатель + серводрайвер с змыканием PID в самом драйвере,а EMC в стандартной "шаговой" конфигурации,кончно,вся стойка превращается в псевдосерво и ее стоимость увеличивается,но используя серводрайвер+ двигатель производства дядюшки Ли ( к примеру Estun) можно прийти к приемлемому результату.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Какого рода ошибки?Andrey_L писал(а):Это заметно : чаще выскакивают ошибки.
Не думаю, что EMC2 с компонентами stepgen будет быстрее работать, чем с pwmgen или даже pid+pwmgen.
- Andrey_L
- Кандидат
- Сообщения: 69
- Зарегистрирован: 25 сен 2011, 16:50
- Репутация: 0
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Nick, ошибки такого рода Error Joint N.Испытывал следующим образом : запускаю файл используя 3 оси,далее то же самое только добавляю ось Х2 для портала(Х1 Х2),начинают выскакивать вышеупомянутые ошибки,уменьшаю скорость-все в норме))Мне кажется,что с компонентами stepgen EMC не заморачивается чтением реальных энкодеров,не загружает проц ИМХО))
- PKM
- Почётный участник

- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
наличие этой ошибки зависит от параметра [AXIS_N] FERRORAndrey_L писал(а):ошибки такого рода Error Joint N
чему он равен?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Да, когда запускаешь в режиме stepgen, настроенном по умолчанию EMC2 энкодеры не считает.
А берет конкретно:
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
Который тупо берется с того же stepgen, считаем сколько сказали сигналов step и все - никакой обратной связи нет!
А когда грамотно настраиваешь энкодер, то появляется реальная обратная связь и ошибка Joint 0 following error говорит о том, что мотор реально отклонился от траектории. Это может быть не пропуск шагов, это отклонение может потом компенсироваться, если ты используешь сервы, но факт отклонения есть.
Как правильно сказал PKM, если тебе пофигу на эти отклонения, просто настрой FERROR по больше и все.
А берет конкретно:
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
Который тупо берется с того же stepgen, считаем сколько сказали сигналов step и все - никакой обратной связи нет!
А когда грамотно настраиваешь энкодер, то появляется реальная обратная связь и ошибка Joint 0 following error говорит о том, что мотор реально отклонился от траектории. Это может быть не пропуск шагов, это отклонение может потом компенсироваться, если ты используешь сервы, но факт отклонения есть.
Как правильно сказал PKM, если тебе пофигу на эти отклонения, просто настрой FERROR по больше и все.
- Andrey_L
- Кандидат
- Сообщения: 69
- Зарегистрирован: 25 сен 2011, 16:50
- Репутация: 0
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
На эти отклонения мне сильно не пофигу
Этим постом я просто хотел сказать,что скорость работы EMC зависит от количества осей...
В моем ini FERROR= 1
MIN_FERROR= 0.05
В моем ini FERROR= 1
MIN_FERROR= 0.05
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Хмм... по идее значение отклонений FERROR никак не должны зависеть от количества осей. Разве что станок должен ехать медленнее, чтобы даже самая медленная ось успевала. Если ты скинешь эту ось на управление через серву по step-dir, ничего не должно поменяться. (разумеется при одинаковых настройках PID)
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.
Можно например вывести отдельные показатели по Ferror по всем осям в halscope и там отследить когда возникает ferror на данной оси...
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.
Можно например вывести отдельные показатели по Ferror по всем осям в halscope и там отследить когда возникает ferror на данной оси...
- Andrey_L
- Кандидат
- Сообщения: 69
- Зарегистрирован: 25 сен 2011, 16:50
- Репутация: 0
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Я тоже не могу сказать точно,что что- то поменяется ,потому как step-dir в EMC еще не пробовал( поэтому конкретного примера нет),а с ошибками я борюсь просто уменьшая MAX_VELOCITY не трогая FERROR.Nick писал(а): Разве что станок должен ехать медленнее, чтобы даже самая медленная ось успевала. Если ты скинешь эту ось на управление через серву по step-dir, ничего не должно поменяться. (разумеется при одинаковых настройках PID)
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Скорее надо уменьшать max acceleration, ускорение то есть. И еще, надо тюнить PID.Andrey_L писал(а):Я тоже не могу сказать точно,что что- то поменяется ,потому как step-dir в EMC еще не пробовал( поэтому конкретного примера нет),а с ошибками я борюсь просто уменьшая MAX_VELOCITY не трогая FEERROR.
Лучше всего запусти EMC2, в нем открой halscope, добавь пин Ferror потом погоняй станок и отследи в каком месте ferror увеличивается. Мы начиная отсюда Всего понемногу (реанимация 4 axis гравера по стеклу) #6 обсуждали панельку специальную для тюнинга пид. Суть в том, что появляются удобные крутилки для параметров PID, которыми можно на лету менять параметры, и открывается halscope, на котором можно отследить улучшение/ухудшение работы ПИД регулятора. Также там есть различные циклы перемещений.
- Andrey_L
- Кандидат
- Сообщения: 69
- Зарегистрирован: 25 сен 2011, 16:50
- Репутация: 0
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Спасибо,ветку почитаю,pid_tuning скачал,прикручу к своему HAL только.Acceleration тоже можно уменьшить,но в моем случае инерция балки и двигателя очень близки,да и с малым ускорением не впечатляет как то))
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
по идее основные отклонения от траектории именно на ускорениях, т.к. основные усилия должны требоваться именно на это. Хотя все зависит от инструмента, размера станка, наличия постоянных сил, трения, положения звезд на небе и т.д
.
Что у тебя за станок? сделай описание и фото, так яснее будет
.
Что у тебя за станок? сделай описание и фото, так яснее будет
-
abramjans
- Новичок
- Сообщения: 12
- Зарегистрирован: 16 фев 2012, 14:54
- Репутация: 0
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
привет, народ. да, многое понял...
как оказалось на сервоприводах в разы дороже (энкодеры, платы).
даже если делать - то надо, как мне кажется, в режиме "просто шаги" + выводить счётчики (реальное положение координат) на экран (в ЦНЦ).
нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
как оказалось на сервоприводах в разы дороже (энкодеры, платы).
даже если делать - то надо, как мне кажется, в режиме "просто шаги" + выводить счётчики (реальное положение координат) на экран (в ЦНЦ).
нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Для координат он в принципе не нужен, он нужен для управления моментом или скоростью по команде на координату. Т.е. когда у нас задание идет в положении, а управлять мы можем только скоростью.abramjans писал(а):нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
А управление скоростью нужно, когда у нас не строгая система - серва сдвигом постоянного тока, или шаговик, который может пропустить шаги. Тогда управление скоростью позволяет компенсировать все эти огрехи.
- wldev
- Мастер
- Сообщения: 1650
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
Я считаю, что нет смысла использовать внешний PID если мы контролируем вращение двигателя. PID контроллера СД вполне с этим и сам справляется в режиме позиционирования. Внешний PID нужно использовать тогда, когда мы берём ОС с линейного энкодера. В этом случае мы убираем все люфты и получаем максимальную точность.abramjans писал(а):нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: LinuxCNC и сервоприводы вместо шаговиков
А разве линейку нельзя прямо к серво драйверу подключить?
ЗЫ мне не очень нравится управление сервой по степ/диру, но, как правильно сказал Афтаев, это уже религия
ЗЫ мне не очень нравится управление сервой по степ/диру, но, как правильно сказал Афтаев, это уже религия
