реклама на сайте
подробности

 
 
> Фильтрация данных с энкодера, как уменьшить количество импульсов?
bytie
сообщение Mar 20 2012, 15:10
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839



Здравствуйте! Очень нужна помощь людей, понимающих цифровую схемотехнику.

Для замены энкодеров в оборудовании мною были выписаны энкодеры Bourns ECW1J-C24-HC0024L.
Код детали расшифровывается в действующем datasheet на энкодеры Борнса: http://bourns.com/data/global/pdfs/ECW1J.pdf
E=encoder
C=200,000 вращений
W=9mm x 1/4" length, threaded M9x0.75
1=SWITCHING CONFIGURATION (In Detent Position) Applies to performance codes B0012 and C0024 only, use code "0" for all other performance codes.
D, J=ANTI-ROTATION LUG
C=shaft style, то есть вид ручки.
24=длина ручки 3/4" (19mm).
H=расположение выводов энкодера и прочие внешние особенности.
С0024=perfomance code: detents - 24, cycles per rev. - 24.
L=RoHS compliance.

Поясню, что энкодер берёт ток с одной ножки и, в связи с тем что внутри вращается кружок с контактными площадками, поочередно замыкающими и размыкающими контакты, на две других ножки выдаются колебания тока с разницей в 90 градусов. Внешним процессором эти импульсы обсчитываются и получается значение, связанное с положением энкодера.

Сейчас уже понятно, что следовало заказать энкодер с кодом E0036 или E0024, то есть без арретиров (арретир - механическое приспособление для закрепления чувствительного элемента различных приборов в определённом положении), по-русски без "щелкунчиков". Исходные энкодеры были именно с кодом E00**, то есть без приведения энкодера к определенному положению.

К сожалению заказанный энкодер, как оказалось, работает несколько иначе чем ожидалось. Я рассчитывал что энкодер будет выдавать дискретные значения в соответствии с числом арретиров, 24 на оборот, то есть при повороте его получить точное значение будет просто (а это крайне важно). Однако, как оказалось, энкодер между положениями арретира продолжает выдавать импульсы, в связи с чем значения в оборудовании переключаются не по 1, как хотелось бы, а по 3 в одну сторону и по 4 в противоположную. Получить значение +1 можно только если задержать энкодер "между" арретирами, но при любом повороте произойдёт скачок до ближайшего значения (+3/+4).

Хотелось бы услышать мнение специалистов, возможна ли какая-либо фильтрация "выхлопа" энкодера, чтобы эти "промежуточные" значения между арретирами отфильтровывались, некое принудителное понижение его "чувствительности"? Впаивание каких-либо конденсаторов-сопротивлений, чтобы на выходы ножек поступал только каждый третий импульс?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rx3apf
сообщение Mar 20 2012, 16:32
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Дребезг контактных энкодеров присутствует всегда, это неизбежная проблема конструкции. В данном случае речь о том, сколько изменений состояния квадратурного сигнала происходит на каждый щелчок энкодера. Например, насколько я помню, PEC12 и PEC16 дают четыре изменения на щелчок, упомянутые ECW - есть варианты как с четырьмя, так и с одним изменением. У меня есть энкодеры от ALPS, где на щелчок приходилось два изменения (кажется). Все решается дальнейшей обработкой. Если оборудование жестко заточено на определенную схему кодирования, то без внешних костылей обойти не удастся...

Цитата(bytie @ Mar 20 2012, 20:24) *
А "фильтрация шумов" не сработает? По прилагаемой схеме, напр.? Тут конечно не совсем "дребезг" сигнала...
[attachment=66727:Screen20...0_202819.png]

Нет. Вообще борьба с шумами и дребезгом посредством аналоговых довесков - путь тупиковый, но в данном случае проблема, как я понимаю, в различии диаграмм. Увы, иного варианта, кроме как собственной обработкой и программным делением результата я не предложу. Ну, или закупать другие энкодеры, тщательно сравнивая "эталон" с тем, что предлагается.

Сообщение отредактировал rx3apf - Mar 20 2012, 16:33
Go to the top of the page
 
+Quote Post
bytie
сообщение Mar 20 2012, 16:48
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839



Цитата(rx3apf @ Mar 20 2012, 20:32) *
Дребезг контактных энкодеров присутствует всегда, это неизбежная проблема конструкции. В данном случае речь о том, сколько изменений состояния квадратурного сигнала происходит на каждый щелчок энкодера. Например, насколько я помню, PEC12 и PEC16 дают четыре изменения на щелчок, упомянутые ECW - есть варианты как с четырьмя, так и с одним изменением. У меня есть энкодеры от ALPS, где на щелчок приходилось два изменения (кажется). Все решается дальнейшей обработкой. Если оборудование жестко заточено на определенную схему кодирования, то без внешних костылей обойти не удастся...

Ну вот я и спрашиваю про костыли. Я так понял что аналоговым способом эту проблему решить невозможно?
Цитата
Вообще борьба с шумами и дребезгом посредством аналоговых довесков - путь тупиковый, но в данном случае проблема, как я понимаю, в различии диаграмм.

Каких именно диаграмм, можно подробнее? Мне казалось, что если штатный энкодер выдает, к примеру, четыре импульса на "деление" (энкодер без щелчков, E****), то два импульса на деление с точки зрения внешнего контроллера = вдвое меньшая скорость изменения...
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 20 2012, 17:05
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(bytie @ Mar 20 2012, 20:48) *
Ну вот я и спрашиваю про костыли. Я так понял что аналоговым способом эту проблему решить невозможно?

Невозможно.
Цитата
Каких именно диаграмм, можно подробнее? Мне казалось, что если штатный энкодер выдает, к примеру, четыре импульса на "деление" (энкодер без щелчков, E****), то два импульса на деление с точки зрения внешнего контроллера = вдвое меньшая скорость изменения...

Там же в даташите есть картинки - варианты "полный цикл" на щелчок и 1/4 на щелчок. Если устройство считает, что два изменения - это один щелчок, а энкодер дает четыре изменения ("полный цикл") - то увы. Если же, наоборот, взять энкодер с 1/4 цикла на щелчок, то каждый второй щелчок будет пустым.
Естественно, если взять энкодер без трещетки, то меняется лишь число шагов на оборот. Удобно ли применение такого энкодера в конкретном устройстве - другой вопрос. Если удобно (или хотя бы приемлемо), то можно попробовать выломать трещетку. Варварство, да...


Сообщение отредактировал rx3apf - Mar 20 2012, 17:07
Go to the top of the page
 
+Quote Post
bytie
сообщение Mar 20 2012, 17:31
Сообщение #5





Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839



Цитата(rx3apf @ Mar 20 2012, 21:05) *
Там же в даташите есть картинки - варианты "полный цикл" на щелчок и 1/4 на щелчок. Если устройство считает, что два изменения - это один щелчок, а энкодер дает четыре изменения ("полный цикл") - то увы. Если же, наоборот, взять энкодер с 1/4 цикла на щелчок, то каждый второй щелчок будет пустым.

Прикрепленное изображение

Я, как и полагается образцовому идиоту, ничего не понимаю.

Мне представляется, что приведенные на рисунке 1/4 cycle per detent и full cycle per detent -- это разные варианты поведения энкодера с трещоткой.

Если мы говорим о full cycle per detent, то при повороте на одно деление должен выдаваться один полный импульс от замыкания цепи до размыкания? А внешний контроллер должен его подсчитать как изменение на единицу. В то же самое время существующее поведение таково: при повороте на одно деление трещотки значение изменяется на +3 по часовой, а +1 можно получить только задержав энкодер между делениями.

Четверть импульса на деление - этого я не понимаю... Что, при повороте на одно деление цепь остается замкнутой?

Цитата
Естественно, если взять энкодер без трещетки, то меняется лишь число шагов на оборот. Удобно ли применение такого энкодера в конкретном устройстве - другой вопрос. Если удобно (или хотя бы приемлемо), то можно попробовать выломать трещетку. Варварство, да...

Именно что в оригинальном варианте был энкодер без трещётки... Выломать - это вариант, конечно, но дело в том что в устройстве таких энкодеров 8, хотелось бы иное решение, не вандальное. Но для целей эксперимента допустимо, конечно.
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Mar 20 2012, 18:10
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(bytie @ Mar 20 2012, 21:31) *
Мне представляется, что приведенные на рисунке 1/4 cycle per detent и full cycle per detent -- это разные варианты поведения энкодера с трещоткой.

Нет это не поведение энкодера а разные алгоритмы обработки сигнала. На практике из одного периода выделяют 1 или 2 или 4 шага.
Проверте может неисправен канал обработки. Прицепите на энкодер светодиоды (или пару тестеров) и снимите диаграмму от угла поворота. должно быть 24 периода на оборот в каждом канале.

Любая схема понижения количества импульсов промежуточным черным ящиком будет дороже правильного энкодера.
Кстати сколько щелчков на оборот в трещетке.
Go to the top of the page
 
+Quote Post
bytie
сообщение Mar 20 2012, 18:33
Сообщение #7





Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839



Цитата(MaslovVG @ Mar 20 2012, 22:10) *
Нет это не поведение энкодера а разные алгоритмы обработки сигнала. На практике из одного периода выделяют 1 или 2 или 4 шага.
Проверте может неисправен канал обработки. Прицепите на энкодер светодиоды (или пару тестеров) и снимите диаграмму от угла поворота. должно быть 24 периода на оборот в каждом канале.

Сейчас пока не имею возможности проверить все Ваши предложения, но сделаю это обязательно.

Однако замечу, что: штатный энкодер работал правильно (просто была испорчена ручка); замена на новый показала последствия, которые я уже описывал. Соображения насчёт испорченности канала обработки представляются маловероятными, но подумаю как проверить. Так что пока экспериментальные данные указывают именно на физическую разницу в энкодерах и выдаваемых данных. Осталось понять как они функционируют.
Цитата
Любая схема понижения количества импульсов промежуточным черным ящиком будет дороже правильного энкодера.

За последнее замечание спасибо, я подумаю над этим; однако хочу заметить, что эти энкодеры я купил по 180руб/штука, а энкодеры без арретиров мне придут по 9 и 19 евро штука, т.е. ~360 и ~800 рублей соответственно. Думаете мне промежуточная коробочка в 600 рублей обойдётся?..

Щелчков на оборот ровно 24. Проверено руками.
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Mar 20 2012, 18:45
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(bytie @ Mar 20 2012, 22:33) *
За последнее замечание спасибо, я подумаю над этим; однако хочу заметить, что эти энкодеры я купил по 180руб/штука, а энкодеры без арретиров мне придут по 9 и 19 евро штука, т.е. ~360 и ~800 рублей соответственно. Думаете мне промежуточная коробочка в 600 рублей обойдётся?..

Ну в зависимости от тиража. Реверсивный счетчик на 4, корпус исключающее или, Пару корпусов трехвходовых и/или.Можно взять мелкую CPLD. Один день на макетирование и разводку печатки. Изготовление печатки. ну еще решение попутных. мелочей питание корпус,крепление в приборе.
Go to the top of the page
 
+Quote Post
rx3apf
сообщение Mar 20 2012, 19:28
Сообщение #9


Гуру
******

Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047



Цитата(MaslovVG @ Mar 20 2012, 22:45) *
Ну в зависимости от тиража. Реверсивный счетчик на 4, корпус исключающее или, Пару корпусов трехвходовых и/или.

Плюс логика подавления дребезга. Обязательно. Т.е. полноценная обработка контактного квадратурного энкодера.

Цитата
Можно взять мелкую CPLD. Один день на макетирование и разводку печатки. Изготовление печатки. ну еще решение попутных. мелочей питание корпус,крепление в приборе. Можно взять мелкую CPLD.

Мелкий микроконтроллер (не нужна обвязка) и проще и мельче и дешевле. Правда, у человека 8 штук на устройство - значит, мелочью уже не обойдешься.


Цитата(bytie @ Mar 20 2012, 22:01) *
Это разные варианты исполнения. Различие в числе контактных площадок.
А где это указано в даташите?! Я как акын - что вижу, о том пою; вижу 24 арретира и 24 импульса на оборот - считаю что одно деление = 1 импульс. На самом деле совершенно не так.

Там в самом конце пункт "Performance code". Сравните C0006 и C0024. У обоих 24 щелчка, но у первого 6 циклов, а у второго 24. Соответственно, первый - 1/4, а второй "full cycle". Вы взяли второй. А нужно было C0006. Но, возможно, крутилось бы слишком медленно...


Цитата(bytie @ Mar 20 2012, 22:33) *
однако хочу заметить, что эти энкодеры я купил по 180руб/штука,

Стоило ли брать столь дорогие, да еще наобум ?
Цитата
а энкодеры без арретиров мне придут по 9 и 19 евро штука, т.е. ~360 и ~800 рублей соответственно.

Вопрос количества и производителя. Китайские вообще бы по баксу вышли.
Цитата
Думаете мне промежуточная коробочка в 600 рублей обойдётся?..

Себестоимость - легко. Один 40-ногий микроконтроллер (раз восемь каналов), бакса три. А вот монтаж - другое дело. И разработка, само собой...
Go to the top of the page
 
+Quote Post
bytie
сообщение Mar 21 2012, 06:06
Сообщение #10





Группа: Участник
Сообщений: 12
Регистрация: 16-03-12
Из: Moscow, Russia
Пользователь №: 70 839



Цитата(rx3apf @ Mar 20 2012, 22:28) *
Там в самом конце пункт "Performance code". Сравните C0006 и C0024. У обоих 24 щелчка, но у первого 6 циклов, а у второго 24. Соответственно, первый - 1/4, а второй "full cycle". Вы взяли второй. А нужно было C0006. Но, возможно, крутилось бы слишком медленно...

Я действовал в рамках логики: 24 щелчка, 24 импульса. Тут где-то в другом собака зарыта.

Вот например вид контактной площадки энкодера.
Прикрепленное изображение

Как видно, внутри каждого кольца 24 контакта. А теперь вопрос - каким же образом получается, что внешний контроллер воспринимает "промежуточное" значение между арретирами, а в другом энкодере такой проблемы нет?

Цитата
Стоило ли брать столь дорогие, да еще наобум?

Не совсем наобум, но ошибка вышла, да.

Цитата
Вопрос количества и производителя. Китайские вообще бы по баксу вышли.

А Вас не затруднит найти китайский с ручкой, полностью соответствующей имеющейся? Это тоже фактор.
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Mar 21 2012, 07:12
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(bytie @ Mar 21 2012, 10:06) *
Как видно, внутри каждого кольца 24 контакта. А теперь вопрос - каким же образом получается, что внешний контроллер воспринимает "промежуточное" значение между арретирами, а в другом энкодере такой проблемы нет?

1 Контроллер отлавливает не импульсы а фронты.
2 В другом энкодере нет фиксированных положений. А руками 96 импульсов на оборот при достаточно большой ручке легко отслеживается.
3 При наличии трещетки на 24 вашему контроллеру нужен энкодер на 6
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bytie   Фильтрация данных с энкодера   Mar 20 2012, 15:10
- - rx3apf   Делается опрос с достаточной частотой, и реализует...   Mar 20 2012, 15:16
- - bytie   Изменение программной части невозможно.   Mar 20 2012, 15:25
|- - rx3apf   Цитата(bytie @ Mar 20 2012, 19:25) Измене...   Mar 20 2012, 15:28
|- - MaslovVG   Цитата(rx3apf @ Mar 20 2012, 19:28) Тогда...   Mar 20 2012, 16:12
|- - bytie   Цитата(MaslovVG @ Mar 20 2012, 20:12) Суд...   Mar 20 2012, 16:24
|- - rx3apf   Цитата(bytie @ Mar 20 2012, 21:31) Мне пр...   Mar 20 2012, 17:45
|- - rx3apf   Цитата(bytie @ Mar 21 2012, 10:06) Я дейс...   Mar 21 2012, 08:33
- - alexvu   Приведите диаграммы, снимаемые с Вашего энкодера, ...   Mar 20 2012, 17:06
- - bytie   ЦитатаЦитатаМне представляется, что приведенные на...   Mar 20 2012, 18:01
- - Plain   Проблема явно не в кодере, а в том "оборудова...   Mar 21 2012, 06:35
|- - bytie   Цитата(Plain @ Mar 21 2012, 09:35) Пробле...   Mar 21 2012, 06:55
- - Plain   Ну ладно. Итак, существующие оборудование не умеет...   Mar 21 2012, 07:10
|- - bytie   Цитата(Plain @ Mar 21 2012, 10:10) Ну лад...   Mar 21 2012, 07:23
|- - Plain   Цитата(bytie @ Mar 21 2012, 10:23) Как я ...   Mar 21 2012, 07:41
- - VladKot   Посмотрите здесь: http://www.lsicsi.com/pdfs/Data_...   Mar 21 2012, 08:34
|- - MaslovVG   Цитата(VladKot @ Mar 21 2012, 12:34) Посм...   Mar 21 2012, 09:19
|- - muravei   Цитата(VladKot @ Mar 21 2012, 11:34) Посм...   Mar 21 2012, 18:00
- - bytie   А вот так выглядят внутренности штатного энкодера:...   Mar 23 2012, 12:39
- - Plain   Похоже на то, что в штатном нормально замкнутые вы...   Mar 23 2012, 14:19
- - rx3apf   Ну к чему высасывать фантазии из пальца ? Штатный ...   Mar 23 2012, 14:49
- - Plain   То, что автор ошибся в 5 раз с выбором числа прира...   Mar 23 2012, 15:48
- - rx3apf   Да не за поворот же. У него на шаг по четыре дискр...   Mar 23 2012, 16:09


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 16:52
Рейтинг@Mail.ru


Страница сгенерированна за 0.01496 секунд с 7
ELECTRONIX ©2004-2016