Страница 2 из 18

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 12:44
sysrover
Вопрос в том нужен ли мне пид через компьютер. Может достаточно ПИДа внутри сервы? Кстати на сколько я понял еще прийдется настраивать момент удержания, а то рукой можно сдвинуть немного на пару едениц по энкодеру.

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 12:54
Nick
Если хочешь хоумится по датчику - то нужен пид в компьютере.

Просто отследить срабатывание датчика может только компонент encoder, он работает в самой месе. И по появлению индексного пина он может сбросить свои показания на 0. И вот тогда мы получаем точный 0 для этой оси. Но чтобы полноценно использовать обратную связь нужен PID - именно он подстраивает команду оси согласно обратной связи.

Можно конечно схитрить и делать поправку на разницу значений.... :roll:
сделать отдельную процедуру fine tuning, которая будет ехать к датчику, сбрасывать энкодер и запоминать разниц в значениях и потом эту разницу добавлять к команде stepgen... ... мда... наверное можно и так...

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 15:30
sysrover
Ну вот я думал до этого делать чтобы сервы работали как шаговики, а ноль брать с энкоеров только для обнуления. Как бы если усилие на сервах настроено то ошибки быть не может в принципе. Разве что серва упрется гдето и не сможет выполнить команду, но тогда сработает ошибка которая приходит с сервы и это остановит программу.

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 16:14
Serg
Многие сервоприводы сами умеют хомится по лимитам и индексу...

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 18:24
sysrover
у меня EP-1 maxsine Пока не надыбал в мануале. Да и вариант не в том. нада просто подумать как это сделать. Тоесть 1 заставить серву доехат до концевика 2 вернуть до нуля по енкодеру 3 обнулить ось.
Как это сделать средствами liuxcnc ?
Я просто не знаю есть ли смысл настраивать ПИД через комп. Просто зачем компу лишние проблемы с расчетом пид, если мы правильно ращитали ускорения и скорости то серву загнать в ошибку мы не сможем, даже если загоним то она нам стопанет программу через ошибку. Тоесть наша задача давать команду серве а она олжна выполнить, не зря у меня стоит степ дир на управление. Также на серве нужно настроить скорость срабатывания сопротивления.
Остается только решить вопрос как заставить ее в таком варианте хоумиться.

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 18:36
Nick
Если серва умет искать индекс - то хоумимся по датчику и говорим серве найти ближайший индекс... но надо почитать мануал.

Иначе, хоумимся по датчику.
ставим index-enable у энкодера = 1
едем в сторону пока index-enable не станет 0.
останавливаемся.
вычиатем из текущего положения - положение энкодера
запоминаем
в последствии используем эту разницу.

как это лучше описать... ммм наверное classic ladder или отдельная subroutine...

если серва сама умеет искать индекс - то будет гораздо проще......

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 18:54
sysrover
в мануале слово index и home вообще не встречаются.
вопрос можно ли пользовать енкодер без ПИДа только для автообнуления ?

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 18:55
sysrover
хотя почитал мануал по настройке пида, не так все ужасно, но мне чесно непонятно если я управляю сервой по степдиру то уже сама серва делает ПИД. А тут получится двойной ПИД.

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 19:40
PKM
Ничего не надо мутить с пид. Управлять обычным степгеном и использовать индекс для хоума.

Re: 5i23+2x7i47+7i42TA

Добавлено: 08 окт 2014, 20:43
PKM
А вообще соток 5 должен дать обычный датчик, и не морочить голову )

Re: 5i23+2x7i47+7i42TA

Добавлено: 09 окт 2014, 02:48
Serg
sysrover писал(а):Как это сделать средствами liuxcnc ?
Есть два способа, правильный и простой:
Правильный: Серве подается сигнал (дискретный сигнал на соотв. вход) начать поиск HOME, по окончании она выдаёт в обратку аналогичный сигнал - по нему LinuxCNC обнуляет ось.
Простой: Серве подается сигнал (дискретный сигнал на соотв. вход) начать поиск HOME и LinuxCNC тупо ждёт определённое время, после чего решает, что всё прошло успешно и обнуляет ось.

Re: 5i23+2x7i47+7i42TA

Добавлено: 09 окт 2014, 08:50
sysrover
На сколько я понял Z из энкодера это значение от нуля до 10000 вроде которое показывает в каком положении вал относительно нуля на оси. Его я так понимаю нужно считывать и средствами linux cnc двигать серву пока не получится ноль. При нуле остановить и обнулить координау.
Только перед этим нужно доехать до концевика а дальше в обратную сторону искать ноль.

Re: 5i23+2x7i47+7i42TA

Добавлено: 09 окт 2014, 09:18
Nick
PKM писал(а):Ничего не надо мутить с пид. Управлять обычным степгеном и использовать индекс для хоума.
У Атаева была такая штука, он эмулировал обнуление оси по линейке. Даже видео было на форуме, только что-то не найти.
Суть была такая. Ось ехала в сторону датчика, выставляла там предварительный 0, потом ехала до "метки", как только метка находилась, энкодер сбрасывался в 0. После этого ось опять ехала в 0, но в 0 не по энкодеру, а по stepgen, который обнулился по датчику. А происходило это потому, что обратная связь никак не использовалась, чтобы приехать в 0 по энкодеру надо использовать его обратную связь и пихать ее в ПИД.

Т.е. энкодер без ПИД не может изменить положение оси, по нему можно только отследить ошибку следования.

Может конечно что-то не так донастроили...


ЗЫ о, есть еще вариант - делать home_latch по падающему пину индексной метки:

Т.е. Ищем 0.
Как только нашли датчик - выставляем index_enable энкодера в 1 и подменяем сигнал от датчика на пин index_enable.
Уточняем 0 по разрыву датчика.

В итоге получим 0 по энкодеру с точностью до servo-thread * latch_speed

Re: 5i23+2x7i47+7i42TA

Добавлено: 09 окт 2014, 09:20
mhael
sysrover писал(а):Z из энкодера это значение от нуля до 10000 вроде
Индексная метка (ноль-метка) - это просто 1 импульс на оборот вала в "нулевом" положении.

Re: 5i23+2x7i47+7i42TA

Добавлено: 09 окт 2014, 09:20
Nick
sysrover писал(а):На сколько я понял Z из энкодера это значение от нуля до 10000 вроде которое показывает в каком положении вал относительно нуля на оси.
Нет Z становится в 1 только в 1 положении из 1000, в остальных он 0. Таким образом получаем "начальную точку" на диске энкодера.
Т.е. чтобы обнулиться нужно поймать эту 1 метку. Но просто так ее не поймать - нужен быстрый контроллер, чтобы ее не пропусить - для этого и нужна меса.

Re: 5i23+2x7i47+7i42TA

Добавлено: 09 окт 2014, 10:11
sysrover
ну энкодер заведен на месу. Это можно использовать.

Re: 5i23+2x7i47+7i42TA

Добавлено: 20 окт 2014, 11:02
Nick

Re: 5i23+2x7i47+7i42TA

Добавлено: 13 ноя 2014, 22:40
sysrover
Вопрос по этим видео, а есть тема где он описывает как он это делал и хал

Re: 5i23+2x7i47+7i42TA

Добавлено: 14 ноя 2014, 12:07
Nick
вроде вот:
Re: Восстановление токарного 16К20Т1 ЧПУ #1250

А чем тебе ПИД не нравится?

Re: 5i23+2x7i47+7i42TA

Добавлено: 14 ноя 2014, 15:17
sysrover
Не не нравится тем что уже работает пид внутри самой сервы. Я использую степ дир, тоесть после команды сделать шаг серва отрабатывает speed loop и position loop. Теперь мы добавляем еще одно кольцо в виде пид коректировки через компьютер. Мы получается забираем работу у сервы и передаем ее компу и нафига ? Вариант пусть серва сама справляется с следованием курса, если она это не сможет сделать она выдаст ошибку. Единственный вариант это скорость этого реагирования чтобы вместо круга овалы не получались.