Страница 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 оборотов в секунду оно работало без пропусков. Даже сделал версию где коэффициент деления джамперами задаётся.
А тут так здорово решается в самой системе...