5i23+2x7i47+7i42TA

Работа с платами MESA, подключение, конфигурация.
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

Если хочешь хоумится по датчику - то нужен пид в компьютере.

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

Можно конечно схитрить и делать поправку на разницу значений.... :roll:
сделать отдельную процедуру fine tuning, которая будет ехать к датчику, сбрасывать энкодер и запоминать разниц в значениях и потом эту разницу добавлять к команде stepgen... ... мда... наверное можно и так...
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

Ну вот я думал до этого делать чтобы сервы работали как шаговики, а ноль брать с энкоеров только для обнуления. Как бы если усилие на сервах настроено то ошибки быть не может в принципе. Разве что серва упрется гдето и не сможет выполнить команду, но тогда сработает ошибка которая приходит с сервы и это остановит программу.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение Serg »

Многие сервоприводы сами умеют хомится по лимитам и индексу...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

у меня EP-1 maxsine Пока не надыбал в мануале. Да и вариант не в том. нада просто подумать как это сделать. Тоесть 1 заставить серву доехат до концевика 2 вернуть до нуля по енкодеру 3 обнулить ось.
Как это сделать средствами liuxcnc ?
Я просто не знаю есть ли смысл настраивать ПИД через комп. Просто зачем компу лишние проблемы с расчетом пид, если мы правильно ращитали ускорения и скорости то серву загнать в ошибку мы не сможем, даже если загоним то она нам стопанет программу через ошибку. Тоесть наша задача давать команду серве а она олжна выполнить, не зря у меня стоит степ дир на управление. Также на серве нужно настроить скорость срабатывания сопротивления.
Остается только решить вопрос как заставить ее в таком варианте хоумиться.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

Если серва умет искать индекс - то хоумимся по датчику и говорим серве найти ближайший индекс... но надо почитать мануал.

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

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

если серва сама умеет искать индекс - то будет гораздо проще......
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

в мануале слово index и home вообще не встречаются.
вопрос можно ли пользовать енкодер без ПИДа только для автообнуления ?
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

хотя почитал мануал по настройке пида, не так все ужасно, но мне чесно непонятно если я управляю сервой по степдиру то уже сама серва делает ПИД. А тут получится двойной ПИД.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение PKM »

Ничего не надо мутить с пид. Управлять обычным степгеном и использовать индекс для хоума.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение PKM »

А вообще соток 5 должен дать обычный датчик, и не морочить голову )
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение Serg »

sysrover писал(а):Как это сделать средствами liuxcnc ?
Есть два способа, правильный и простой:
Правильный: Серве подается сигнал (дискретный сигнал на соотв. вход) начать поиск HOME, по окончании она выдаёт в обратку аналогичный сигнал - по нему LinuxCNC обнуляет ось.
Простой: Серве подается сигнал (дискретный сигнал на соотв. вход) начать поиск HOME и LinuxCNC тупо ждёт определённое время, после чего решает, что всё прошло успешно и обнуляет ось.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

На сколько я понял Z из энкодера это значение от нуля до 10000 вроде которое показывает в каком положении вал относительно нуля на оси. Его я так понимаю нужно считывать и средствами linux cnc двигать серву пока не получится ноль. При нуле остановить и обнулить координау.
Только перед этим нужно доехать до концевика а дальше в обратную сторону искать ноль.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

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

Сообщение mhael »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

sysrover писал(а):На сколько я понял Z из энкодера это значение от нуля до 10000 вроде которое показывает в каком положении вал относительно нуля на оси.
Нет Z становится в 1 только в 1 положении из 1000, в остальных он 0. Таким образом получаем "начальную точку" на диске энкодера.
Т.е. чтобы обнулиться нужно поймать эту 1 метку. Но просто так ее не поймать - нужен быстрый контроллер, чтобы ее не пропусить - для этого и нужна меса.
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

вроде вот:
Re: Восстановление токарного 16К20Т1 ЧПУ #1250

А чем тебе ПИД не нравится?
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

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