5i23+2x7i47+7i42TA
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Вопрос в том нужен ли мне пид через компьютер. Может достаточно ПИДа внутри сервы? Кстати на сколько я понял еще прийдется настраивать момент удержания, а то рукой можно сдвинуть немного на пару едениц по энкодеру.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Если хочешь хоумится по датчику - то нужен пид в компьютере.
Просто отследить срабатывание датчика может только компонент encoder, он работает в самой месе. И по появлению индексного пина он может сбросить свои показания на 0. И вот тогда мы получаем точный 0 для этой оси. Но чтобы полноценно использовать обратную связь нужен PID - именно он подстраивает команду оси согласно обратной связи.
Можно конечно схитрить и делать поправку на разницу значений....
сделать отдельную процедуру fine tuning, которая будет ехать к датчику, сбрасывать энкодер и запоминать разниц в значениях и потом эту разницу добавлять к команде stepgen... ... мда... наверное можно и так...
Просто отследить срабатывание датчика может только компонент encoder, он работает в самой месе. И по появлению индексного пина он может сбросить свои показания на 0. И вот тогда мы получаем точный 0 для этой оси. Но чтобы полноценно использовать обратную связь нужен PID - именно он подстраивает команду оси согласно обратной связи.
Можно конечно схитрить и делать поправку на разницу значений....
сделать отдельную процедуру fine tuning, которая будет ехать к датчику, сбрасывать энкодер и запоминать разниц в значениях и потом эту разницу добавлять к команде stepgen... ... мда... наверное можно и так...
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Ну вот я думал до этого делать чтобы сервы работали как шаговики, а ноль брать с энкоеров только для обнуления. Как бы если усилие на сервах настроено то ошибки быть не может в принципе. Разве что серва упрется гдето и не сможет выполнить команду, но тогда сработает ошибка которая приходит с сервы и это остановит программу.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Многие сервоприводы сами умеют хомится по лимитам и индексу...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
у меня EP-1 maxsine Пока не надыбал в мануале. Да и вариант не в том. нада просто подумать как это сделать. Тоесть 1 заставить серву доехат до концевика 2 вернуть до нуля по енкодеру 3 обнулить ось.
Как это сделать средствами liuxcnc ?
Я просто не знаю есть ли смысл настраивать ПИД через комп. Просто зачем компу лишние проблемы с расчетом пид, если мы правильно ращитали ускорения и скорости то серву загнать в ошибку мы не сможем, даже если загоним то она нам стопанет программу через ошибку. Тоесть наша задача давать команду серве а она олжна выполнить, не зря у меня стоит степ дир на управление. Также на серве нужно настроить скорость срабатывания сопротивления.
Остается только решить вопрос как заставить ее в таком варианте хоумиться.
Как это сделать средствами liuxcnc ?
Я просто не знаю есть ли смысл настраивать ПИД через комп. Просто зачем компу лишние проблемы с расчетом пид, если мы правильно ращитали ускорения и скорости то серву загнать в ошибку мы не сможем, даже если загоним то она нам стопанет программу через ошибку. Тоесть наша задача давать команду серве а она олжна выполнить, не зря у меня стоит степ дир на управление. Также на серве нужно настроить скорость срабатывания сопротивления.
Остается только решить вопрос как заставить ее в таком варианте хоумиться.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Если серва умет искать индекс - то хоумимся по датчику и говорим серве найти ближайший индекс... но надо почитать мануал.
Иначе, хоумимся по датчику.
ставим index-enable у энкодера = 1
едем в сторону пока index-enable не станет 0.
останавливаемся.
вычиатем из текущего положения - положение энкодера
запоминаем
в последствии используем эту разницу.
как это лучше описать... ммм наверное classic ladder или отдельная subroutine...
если серва сама умеет искать индекс - то будет гораздо проще......
Иначе, хоумимся по датчику.
ставим index-enable у энкодера = 1
едем в сторону пока index-enable не станет 0.
останавливаемся.
вычиатем из текущего положения - положение энкодера
запоминаем
в последствии используем эту разницу.
как это лучше описать... ммм наверное classic ladder или отдельная subroutine...
если серва сама умеет искать индекс - то будет гораздо проще......
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
в мануале слово index и home вообще не встречаются.
вопрос можно ли пользовать енкодер без ПИДа только для автообнуления ?
вопрос можно ли пользовать енкодер без ПИДа только для автообнуления ?
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
хотя почитал мануал по настройке пида, не так все ужасно, но мне чесно непонятно если я управляю сервой по степдиру то уже сама серва делает ПИД. А тут получится двойной ПИД.
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Ничего не надо мутить с пид. Управлять обычным степгеном и использовать индекс для хоума.
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
А вообще соток 5 должен дать обычный датчик, и не морочить голову )
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Есть два способа, правильный и простой:sysrover писал(а):Как это сделать средствами liuxcnc ?
Правильный: Серве подается сигнал (дискретный сигнал на соотв. вход) начать поиск HOME, по окончании она выдаёт в обратку аналогичный сигнал - по нему LinuxCNC обнуляет ось.
Простой: Серве подается сигнал (дискретный сигнал на соотв. вход) начать поиск HOME и LinuxCNC тупо ждёт определённое время, после чего решает, что всё прошло успешно и обнуляет ось.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
На сколько я понял Z из энкодера это значение от нуля до 10000 вроде которое показывает в каком положении вал относительно нуля на оси. Его я так понимаю нужно считывать и средствами linux cnc двигать серву пока не получится ноль. При нуле остановить и обнулить координау.
Только перед этим нужно доехать до концевика а дальше в обратную сторону искать ноль.
Только перед этим нужно доехать до концевика а дальше в обратную сторону искать ноль.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
У Атаева была такая штука, он эмулировал обнуление оси по линейке. Даже видео было на форуме, только что-то не найти.PKM писал(а):Ничего не надо мутить с пид. Управлять обычным степгеном и использовать индекс для хоума.
Суть была такая. Ось ехала в сторону датчика, выставляла там предварительный 0, потом ехала до "метки", как только метка находилась, энкодер сбрасывался в 0. После этого ось опять ехала в 0, но в 0 не по энкодеру, а по stepgen, который обнулился по датчику. А происходило это потому, что обратная связь никак не использовалась, чтобы приехать в 0 по энкодеру надо использовать его обратную связь и пихать ее в ПИД.
Т.е. энкодер без ПИД не может изменить положение оси, по нему можно только отследить ошибку следования.
Может конечно что-то не так донастроили...
ЗЫ о, есть еще вариант - делать home_latch по падающему пину индексной метки:
Т.е. Ищем 0.
Как только нашли датчик - выставляем index_enable энкодера в 1 и подменяем сигнал от датчика на пин index_enable.
Уточняем 0 по разрыву датчика.
В итоге получим 0 по энкодеру с точностью до servo-thread * latch_speed
- mhael
- Мастер
- Сообщения: 2443
- Зарегистрирован: 09 мар 2013, 11:22
- Репутация: 769
- Настоящее имя: Ильдар
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Индексная метка (ноль-метка) - это просто 1 импульс на оборот вала в "нулевом" положении.sysrover писал(а):Z из энкодера это значение от нуля до 10000 вроде
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Нет Z становится в 1 только в 1 положении из 1000, в остальных он 0. Таким образом получаем "начальную точку" на диске энкодера.sysrover писал(а):На сколько я понял Z из энкодера это значение от нуля до 10000 вроде которое показывает в каком положении вал относительно нуля на оси.
Т.е. чтобы обнулиться нужно поймать эту 1 метку. Но просто так ее не поймать - нужен быстрый контроллер, чтобы ее не пропусить - для этого и нужна меса.
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
ну энкодер заведен на месу. Это можно использовать.
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Вопрос по этим видео, а есть тема где он описывает как он это делал и хал
-
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: 5i23+2x7i47+7i42TA
Не не нравится тем что уже работает пид внутри самой сервы. Я использую степ дир, тоесть после команды сделать шаг серва отрабатывает speed loop и position loop. Теперь мы добавляем еще одно кольцо в виде пид коректировки через компьютер. Мы получается забираем работу у сервы и передаем ее компу и нафига ? Вариант пусть серва сама справляется с следованием курса, если она это не сможет сделать она выдаст ошибку. Единственный вариант это скорость этого реагирования чтобы вместо круга овалы не получались.