Страница 1 из 1

step dir servo + энкодер

Добавлено: 07 сен 2011, 23:07
Techno
Прошу не пинать ногами сильно, но немогу найти ответ!
Есть станочек стоят g320 енкодеры 500 линий. Завел все это дело обратно в лпт чтобы контролировать пропуск шагов! Как собственно связать данные полученные с енкодеров и сгенерированные импульсы! Что бы EMC2 выдавал ошибку если вдруг был пропуск шагов?

Re: step dir servo + энкодер

Добавлено: 07 сен 2011, 23:26
Nick
Значит все просто, в обычном случае обратная связь от двигателя поступает напрямую с генератора импульсов шагов stepgen. Т.к. мы считаем, что ШД не пропускает шаги, то можем положиться на эти данные. Задается это вот такой строкой в hal:
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
А тебе нужно вместо этой обратной связи нужно присоединить энкодер, примерно такой строкой:
net xpos-fb encoder.0.position => axis.0.motor-pos-fb

После этого при расхождении реального и желаемого положения осей больше чем на FERROR, будет возникать ошибка типа Joint 0 following error.

ЗЫ Энкодеры настроил? Помощь с ними нужна?
PSS 500 линий это 500 тиков энкодера на оборот?

Re: step dir servo + энкодер

Добавлено: 07 сен 2011, 23:50
Techno
Огромное спасибо завтра с утра буду пробовать! 2000 импульсов на оборот задаю в EMC. 500 линий написано на упаковке энкодеров =). Станок у меня бегает с годец уже. С недавних пор, есть подозрения что врет по иксу. Ставил индикатор делал программку на 1000 циклов влево вправо расстояние 100мм возвращался обратно как полагается причем в 0. Но есть одна работенка там сложный профиль на ней вот он чего то и врет, появлеяться погрешность при чем солидная.

Re: step dir servo + энкодер

Добавлено: 08 сен 2011, 09:06
Techno
Сделал как написано и вправду завелось начало работать! Только едет 10мм и выдает ошибку ! Где копать?
Прилагаю и .ini и .hal файлы.

Re: step dir servo + энкодер

Добавлено: 08 сен 2011, 09:52
Nick
Значит, считает как-то не так... 10мм это значение FERROR в твоем ini.

У тебя обе строчки обратной связи закомментированны:
#net x-feedback encoder.1.position => stepgen.x.position-fb
#net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
А первая еще и не правильная. stepgen.x.position-fb это пин вывода обратной связи stepgen, а тебе нужно эту связь записывать в контроллер движения. Плюс к этому ты берешь position-fb с энкодера 1, а не 0!
Должно быть вот так: net x-feedback encoder.0.position => axis.0.motor-pos-fb