Страница 1 из 1
Снизить разрешение энкодера
Добавлено: 02 фев 2017, 17:39
Гагарин
Всем привет! Подключаю энкодер в качестве штурвала. У него разрешение 2400 имп/об. В режиме setp encoder.0.x4-mode false получаем 600 имп/об. А нужно 100 имп/об. Подогнать через jog-scale не вижу возможным, так как получается число в периоде: 1/6 =0,1(6).
Как можно сделать так, чтоб счет шел только через каждые 6 импульсов?
Re: Снизить разрешение энкодера
Добавлено: 02 фев 2017, 21:29
Serg
Вернитесь в реальный мир! Укажите коэф. 1.6666667 и посчитайте за сколько оборотов вы получите погрешность в 1 импульс.
Ну или соберите из триггеров счётчик-делитель на 6.

Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 07:03
Гагарин
Если не будет простого решения, так сказать в пару строк, то вариант с 1,66666667 применю))))))
Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 07:57
Сергей Саныч
Гагарин писал(а):У него разрешение 2400 имп/об. В режиме setp encoder.0.x4-mode false получаем 600 имп/об.
2400 отсчетов и получим. А при true - 9600.
Разрешение квадратурного энкодера, как правило, указывается в полных импульсах с одного выхода на оборот вала.
Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 10:07
Гагарин
У меня характеристик его не было. Это я сам так посчитал по показаниям после подключения. 2400 при true, 600 при false. Ну значит энкодер на 600 имп/об.
Пока поставлю 1,(6). А позже, может, компонент напишу для деления шага, раз нет готовых решений.
Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 10:08
Nikomas
Гагарин писал(а):Подогнать через jog-scale не вижу возможным, так как получается число в периоде: 1/6 =0,1(6)
а дроби задать можно?
Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 10:32
Serg
Nikomas писал(а):а дроби задать можно?
Можно, десятичные.

Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 15:31
Nikomas
Ну в усилках сервов то можно... Вот я и подумал.
Re: Снизить разрешение энкодера
Добавлено: 03 фев 2017, 15:55
michael-yurov
Nikomas писал(а):Ну в усилках сервов то можно... Вот я и подумал.
Там это важно - там может понадобиться движение на большое "расстояние" в одном направлении.
Например, при перемещении ленты транспортера.
А здесь - нет.
Re: Снизить разрешение энкодера
Добавлено: 30 сен 2017, 19:56
Гагарин
Появилось у меня решение, как загрубить энкодер. К
axis.0.jog-counts подключать не
encoder.0.count, а
encoder.0.position. Для него можно задать коэффициент
position-scale , т.е. количество тиков на единицу перемещения. Но дополнительно надо будет его преобразовать из float в s32.
Код: Выделить всё
loadrt encoder
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
loadrt conv_float_s32
addf conv-float-s32.0 servo-thread
setp encoder.0.x4-mode 0
setp encoder.0.position-scale 6 # это то число, на которое мы хотим "загрубить" энкодер
net conv_in conv-float-s32.0.in <= encoder.0.position
net axis_jog conv-float-s32.0.out => axis.0.jog-counts axis.1.jog-counts axis.2.jog-counts # передаем осям количество "тиков" штурвала
Re: Снизить разрешение энкодера
Добавлено: 30 янв 2018, 08:41
npa
Я на микроконтроллере делитель разработал как-то-была линия где жестко прописано 25 имп/оборот а родных датчиков не было, 200 имп/оборот поставили. До 20 оборотов в секунду оно работало без пропусков. Даже сделал версию где коэффициент деления джамперами задаётся.
А тут так здорово решается в самой системе...