Прошу не пинать ногами сильно, но немогу найти ответ!
Есть станочек стоят g320 енкодеры 500 линий. Завел все это дело обратно в лпт чтобы контролировать пропуск шагов! Как собственно связать данные полученные с енкодеров и сгенерированные импульсы! Что бы EMC2 выдавал ошибку если вдруг был пропуск шагов?
step dir servo + энкодер
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: step dir servo + энкодер
Значит все просто, в обычном случае обратная связь от двигателя поступает напрямую с генератора импульсов шагов 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 тиков энкодера на оборот?
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 тиков энкодера на оборот?
- Techno
- Кандидат
- Сообщения: 59
- Зарегистрирован: 07 сен 2011, 23:38
- Репутация: 4
- Контактная информация:
Re: step dir servo + энкодер
Огромное спасибо завтра с утра буду пробовать! 2000 импульсов на оборот задаю в EMC. 500 линий написано на упаковке энкодеров =). Станок у меня бегает с годец уже. С недавних пор, есть подозрения что врет по иксу. Ставил индикатор делал программку на 1000 циклов влево вправо расстояние 100мм возвращался обратно как полагается причем в 0. Но есть одна работенка там сложный профиль на ней вот он чего то и врет, появлеяться погрешность при чем солидная.
- Techno
- Кандидат
- Сообщения: 59
- Зарегистрирован: 07 сен 2011, 23:38
- Репутация: 4
- Контактная информация:
Re: step dir servo + энкодер
Сделал как написано и вправду завелось начало работать! Только едет 10мм и выдает ошибку ! Где копать?
Прилагаю и .ini и .hal файлы.
Прилагаю и .ini и .hal файлы.
- Вложения
-
- 6A76PF2.hal
- (4.99 КБ) 1198 скачиваний
-
- 6A76PF2.ini
- (2.02 КБ) 1130 скачиваний
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: step dir servo + энкодер
Значит, считает как-то не так... 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
У тебя обе строчки обратной связи закомментированны:
#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