Снизить разрешение энкодера
-
Гагарин
- Опытный
- Сообщения: 142
- Зарегистрирован: 18 июн 2015, 17:25
- Репутация: 13
- Настоящее имя: Юрий
- Контактная информация:
Снизить разрешение энкодера
Всем привет! Подключаю энкодер в качестве штурвала. У него разрешение 2400 имп/об. В режиме setp encoder.0.x4-mode false получаем 600 имп/об. А нужно 100 имп/об. Подогнать через jog-scale не вижу возможным, так как получается число в периоде: 1/6 =0,1(6).
Как можно сделать так, чтоб счет шел только через каждые 6 импульсов?
Как можно сделать так, чтоб счет шел только через каждые 6 импульсов?
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Снизить разрешение энкодера
Вернитесь в реальный мир! Укажите коэф. 1.6666667 и посчитайте за сколько оборотов вы получите погрешность в 1 импульс. 
Ну или соберите из триггеров счётчик-делитель на 6.
Ну или соберите из триггеров счётчик-делитель на 6.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Гагарин
- Опытный
- Сообщения: 142
- Зарегистрирован: 18 июн 2015, 17:25
- Репутация: 13
- Настоящее имя: Юрий
- Контактная информация:
Re: Снизить разрешение энкодера
Если не будет простого решения, так сказать в пару строк, то вариант с 1,66666667 применю))))))
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Снизить разрешение энкодера
2400 отсчетов и получим. А при true - 9600.Гагарин писал(а):У него разрешение 2400 имп/об. В режиме setp encoder.0.x4-mode false получаем 600 имп/об.
Разрешение квадратурного энкодера, как правило, указывается в полных импульсах с одного выхода на оборот вала.
Чудес не бывает. Бывают фокусы.
-
Гагарин
- Опытный
- Сообщения: 142
- Зарегистрирован: 18 июн 2015, 17:25
- Репутация: 13
- Настоящее имя: Юрий
- Контактная информация:
Re: Снизить разрешение энкодера
У меня характеристик его не было. Это я сам так посчитал по показаниям после подключения. 2400 при true, 600 при false. Ну значит энкодер на 600 имп/об.
Пока поставлю 1,(6). А позже, может, компонент напишу для деления шага, раз нет готовых решений.
Пока поставлю 1,(6). А позже, может, компонент напишу для деления шага, раз нет готовых решений.
-
Nikomas
- Мастер
- Сообщения: 721
- Зарегистрирован: 07 янв 2012, 14:31
- Репутация: 64
- Откуда: Беларусь
- Контактная информация:
Re: Снизить разрешение энкодера
а дроби задать можно?Гагарин писал(а):Подогнать через jog-scale не вижу возможным, так как получается число в периоде: 1/6 =0,1(6)
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Снизить разрешение энкодера
Можно, десятичные.Nikomas писал(а):а дроби задать можно?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Nikomas
- Мастер
- Сообщения: 721
- Зарегистрирован: 07 янв 2012, 14:31
- Репутация: 64
- Откуда: Беларусь
- Контактная информация:
Re: Снизить разрешение энкодера
Ну в усилках сервов то можно... Вот я и подумал.
- michael-yurov
- Почётный участник

- Сообщения: 11731
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Снизить разрешение энкодера
Там это важно - там может понадобиться движение на большое "расстояние" в одном направлении.Nikomas писал(а):Ну в усилках сервов то можно... Вот я и подумал.
Например, при перемещении ленты транспортера.
А здесь - нет.
-
Гагарин
- Опытный
- Сообщения: 142
- Зарегистрирован: 18 июн 2015, 17:25
- Репутация: 13
- Настоящее имя: Юрий
- Контактная информация:
Re: Снизить разрешение энкодера
Появилось у меня решение, как загрубить энкодер. К 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 # передаем осям количество "тиков" штурвала
-
npa
- Новичок
- Сообщения: 14
- Зарегистрирован: 30 янв 2018, 08:20
- Репутация: 0
- Настоящее имя: Руслан
- Контактная информация:
Re: Снизить разрешение энкодера
Я на микроконтроллере делитель разработал как-то-была линия где жестко прописано 25 имп/оборот а родных датчиков не было, 200 имп/оборот поставили. До 20 оборотов в секунду оно работало без пропусков. Даже сделал версию где коэффициент деления джамперами задаётся.
А тут так здорово решается в самой системе...
А тут так здорово решается в самой системе...