LinuxCNC и сервоприводы вместо шаговиков

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
abramjans
Новичок
Сообщения: 12
Зарегистрирован: 16 фев 2012, 14:54
Репутация: 0
Контактная информация:

LinuxCNC и сервоприводы вместо шаговиков

Сообщение abramjans »

Всем привет.

Читал о сервоприводах - точность и скорость выше и прочее.
Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?

Вопрос серьёзный - там же энкодеры, там вообще неизвестная система управления (с шаговиками всё ясно - есть контакт "шаг" и "направление" - по моему так EMC2 работает с электроникой).
Или всё таки проще купить некий специализированный контроллер и грузить туда G коды? хотя что же тогда будет делать визуализацию.

Кто в курсе (щупал / работал) - напишите, пожалуйста.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

abramjans писал(а):Читал о сервоприводах - точность и скорость выше и прочее.Возник вопрос - а LinuxCNC может работать с сервоприводами? Как его можно под это заточить или нет смысла (не умеет он работать с такими аппаратами)?
Да может :). Основная суть в том, что linuxCNC есть hal - он позволяет работать с любым оборудованием (ну ил почти с любым). В hal есть отдельные компоненты, которые общаются между собой. Некоторые рассчитывают траекторию, интерпретируют Gкод, вторые создают управляющие импульсы, третьи общаются с оборудованием.

В случае с шаговиками работает компонент stepgen, кстати в emc2 всегда есть составляющая обратной связи (в случае шаговиков это тоже самое, что и их команда).
В случае с сервами, можно использовать компоненты PID и pwmgen. Самая большая проблема с сервами - читать энкодер. Энкодеры могут быть по 1000 тиков на оборот и более на больших скоростях копьютер просто не сможет их обработать. Для работы с энкодерами лучше использовать платы MESA.

А какие у тебя сервы, как управляются, какая обратная связь?
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Andrey_L »

.... Самая большая проблема с сервами - читать энкодер. Энкодеры могут быть по 1000 тиков на оборот и более на больших скоростях копьютер просто не сможет их обработать. Для работы с энкодерами лучше использовать платы MESA....



Полностью согласен,хочу заметить,что даже с платой MESA или какой другой (я пользуюсь к примеру Motenc) при увеличении количества осей скорость заметно падает.Это заметно : чаще выскакивают ошибки.Можно сделать вывод,что EMC,даже при использовании периферии ввода-вывода сильно зависит от железа компа.
Можно использовать связку серво двигатель + серводрайвер с змыканием PID в самом драйвере,а EMC в стандартной "шаговой" конфигурации,кончно,вся стойка превращается в псевдосерво и ее стоимость увеличивается,но используя серводрайвер+ двигатель производства дядюшки Ли ( к примеру Estun) можно прийти к приемлемому результату.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

Andrey_L писал(а):Это заметно : чаще выскакивают ошибки.
Какого рода ошибки?

Не думаю, что EMC2 с компонентами stepgen будет быстрее работать, чем с pwmgen или даже pid+pwmgen.
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Andrey_L »

Nick, ошибки такого рода Error Joint N.Испытывал следующим образом : запускаю файл используя 3 оси,далее то же самое только добавляю ось Х2 для портала(Х1 Х2),начинают выскакивать вышеупомянутые ошибки,уменьшаю скорость-все в норме))Мне кажется,что с компонентами stepgen EMC не заморачивается чтением реальных энкодеров,не загружает проц ИМХО))
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение PKM »

Andrey_L писал(а):ошибки такого рода Error Joint N
наличие этой ошибки зависит от параметра [AXIS_N] FERROR
чему он равен?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

Да, когда запускаешь в режиме stepgen, настроенном по умолчанию EMC2 энкодеры не считает.
А берет конкретно:
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 и сервоприводы вместо шаговиков

Сообщение Andrey_L »

На эти отклонения мне сильно не пофигу :hehehe: Этим постом я просто хотел сказать,что скорость работы EMC зависит от количества осей...
В моем ini FERROR= 1
MIN_FERROR= 0.05
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

Хмм... по идее значение отклонений FERROR никак не должны зависеть от количества осей. Разве что станок должен ехать медленнее, чтобы даже самая медленная ось успевала. Если ты скинешь эту ось на управление через серву по step-dir, ничего не должно поменяться. (разумеется при одинаковых настройках PID)
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.

Можно например вывести отдельные показатели по Ferror по всем осям в halscope и там отследить когда возникает ferror на данной оси...
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Andrey_L »

Nick писал(а): Разве что станок должен ехать медленнее, чтобы даже самая медленная ось успевала. Если ты скинешь эту ось на управление через серву по step-dir, ничего не должно поменяться. (разумеется при одинаковых настройках PID)
Может у тебя есть конкретный пример, было бы интересно на него посмотреть/протестировать.
Я тоже не могу сказать точно,что что- то поменяется ,потому как step-dir в EMC еще не пробовал( поэтому конкретного примера нет),а с ошибками я борюсь просто уменьшая MAX_VELOCITY не трогая FERROR.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

Andrey_L писал(а):Я тоже не могу сказать точно,что что- то поменяется ,потому как step-dir в EMC еще не пробовал( поэтому конкретного примера нет),а с ошибками я борюсь просто уменьшая MAX_VELOCITY не трогая FEERROR.
Скорее надо уменьшать max acceleration, ускорение то есть. И еще, надо тюнить PID.
Лучше всего запусти EMC2, в нем открой halscope, добавь пин Ferror потом погоняй станок и отследи в каком месте ferror увеличивается. Мы начиная отсюда Всего понемногу (реанимация 4 axis гравера по стеклу) #6 обсуждали панельку специальную для тюнинга пид. Суть в том, что появляются удобные крутилки для параметров PID, которыми можно на лету менять параметры, и открывается halscope, на котором можно отследить улучшение/ухудшение работы ПИД регулятора. Также там есть различные циклы перемещений.
Аватара пользователя
Andrey_L
Кандидат
Сообщения: 69
Зарегистрирован: 25 сен 2011, 16:50
Репутация: 0
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Andrey_L »

Спасибо,ветку почитаю,pid_tuning скачал,прикручу к своему HAL только.Acceleration тоже можно уменьшить,но в моем случае инерция балки и двигателя очень близки,да и с малым ускорением не впечатляет как то))
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

по идее основные отклонения от траектории именно на ускорениях, т.к. основные усилия должны требоваться именно на это. Хотя все зависит от инструмента, размера станка, наличия постоянных сил, трения, положения звезд на небе и т.д :).

Что у тебя за станок? сделай описание и фото, так яснее будет :).
abramjans
Новичок
Сообщения: 12
Зарегистрирован: 16 фев 2012, 14:54
Репутация: 0
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение abramjans »

привет, народ. да, многое понял...
как оказалось на сервоприводах в разы дороже (энкодеры, платы).

даже если делать - то надо, как мне кажется, в режиме "просто шаги" + выводить счётчики (реальное положение координат) на экран (в ЦНЦ).

нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

abramjans писал(а):нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
Для координат он в принципе не нужен, он нужен для управления моментом или скоростью по команде на координату. Т.е. когда у нас задание идет в положении, а управлять мы можем только скоростью.

А управление скоростью нужно, когда у нас не строгая система - серва сдвигом постоянного тока, или шаговик, который может пропустить шаги. Тогда управление скоростью позволяет компенсировать все эти огрехи.
Аватара пользователя
wldev
Мастер
Сообщения: 1650
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение wldev »

abramjans писал(а):нафиг пид для координат я не понимаю (тупо ехать в точку). здаётся мне что он оправдан только для поддержания оборотов под нагрузкой при обработке сталей и прочего (я же по мелочи - воск).
Я считаю, что нет смысла использовать внешний PID если мы контролируем вращение двигателя. PID контроллера СД вполне с этим и сам справляется в режиме позиционирования. Внешний PID нужно использовать тогда, когда мы берём ОС с линейного энкодера. В этом случае мы убираем все люфты и получаем максимальную точность.
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: LinuxCNC и сервоприводы вместо шаговиков

Сообщение Nick »

А разве линейку нельзя прямо к серво драйверу подключить?

ЗЫ мне не очень нравится управление сервой по степ/диру, но, как правильно сказал Афтаев, это уже религия :hehehe:
Ответить

Вернуться в «LinuxCNC»