Перейти к содержанию
    

Фильтрация данных с энкодера

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

 

Для замены энкодеров в оборудовании мною были выписаны энкодеры 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).

 

Хотелось бы услышать мнение специалистов, возможна ли какая-либо фильтрация "выхлопа" энкодера, чтобы эти "промежуточные" значения между арретирами отфильтровывались, некое принудителное понижение его "чувствительности"? Впаивание каких-либо конденсаторов-сопротивлений, чтобы на выходы ножек поступал только каждый третий импульс?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Делается опрос с достаточной частотой, и реализуется простейший автомат состояний, на выходе которого будет инкремент, декремент или отсутствие изменений внутреннего счетчика. А дальше это счетчик чисто программно делите (сдвигом вправо) на 2 либо на 4, в зависимости от особенностей конкретного энкодера.

 

Но если это замена в уже существующем изделии, то задача будет по-сложнее.

Изменено пользователем rx3apf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Изменение программной части невозможно.

Тогда придется поставить свой мост между энкодером и изделием. Простой логикой, как я понимаю, задачу не решить. Так что либо программируемая логика, либо дешевый микроконтроллер (что проще, дешевле, и компактнее - какая-нибудь 8-ножка). Свой опрос и обработка, после чего формирование своих квадратурных сигналов, которые уже пойдут в готовое изделие. Я лично иных вариантов не вижу...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тогда придется поставить свой мост между энкодером и изделием. Простой логикой, как я понимаю, задачу не решить. Так что либо программируемая логика, либо дешевый микроконтроллер (что проще, дешевле, и компактнее - какая-нибудь 8-ножка). Свой опрос и обработка, после чего формирование своих квадратурных сигналов, которые уже пойдут в готовое изделие. Я лично иных вариантов не вижу...

Судя по описанию поведения вы просто купили бракованое изделие (возможно при пайке внутрь попал флюс). Плохой контакт счеток с кодовым диском и вследствии этого дребезг сигнала. Соорудите небольшой стендик чтобы иметь возможность медленно вращать энкодер (или поставте ручку большого диаметра) и последите за сигналами да хоть тестером 24 импульса на оборот легко посчитать вручную.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Судя по описанию поведения вы просто купили бракованое изделие (возможно при пайке внутрь попал флюс). Плохой контакт счеток с кодовым диском и вследствии этого дребезг сигнала. Соорудите небольшой стендик чтобы иметь возможность медленно вращать энкодер и последите за сигналами да хоть тестером 24 импульса на оборот легко посчитать вручную.

Простите, но брак исключен. Это партия из 45 энкодеров, они ведут себя идентично, взято два энкодера наугад. Это всё-таки Bourns :-) Я, конечно, не профессионал, но там нет дребезга сигнала. Был бы Вам признателен, если бы Вы объяснили мне, непрофессионалу, как это сделать. Есть тестер APPA iMeter.

 

Тогда придется поставить свой мост между энкодером и изделием. Простой логикой, как я понимаю, задачу не решить. Так что либо программируемая логика, либо дешевый микроконтроллер (что проще, дешевле, и компактнее - какая-нибудь 8-ножка). Свой опрос и обработка, после чего формирование своих квадратурных сигналов, которые уже пойдут в готовое изделие. Я лично иных вариантов не вижу...

Спасибо за мнение. А "фильтрация шумов" не сработает? По прилагаемой схеме, напр.? Тут конечно не совсем "дребезг" сигнала...

post-70839-1332260628_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

А "фильтрация шумов" не сработает? По прилагаемой схеме, напр.? Тут конечно не совсем "дребезг" сигнала...

post-70839-1332260628_thumb.png

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

Изменено пользователем rx3apf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Ну вот я и спрашиваю про костыли. Я так понял что аналоговым способом эту проблему решить невозможно?

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну вот я и спрашиваю про костыли. Я так понял что аналоговым способом эту проблему решить невозможно?

Невозможно.

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

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

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

 

Изменено пользователем rx3apf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведите диаграммы, снимаемые с Вашего энкодера, причем нужно 2 канала одновременно (можете снять с помощью звуковой карты компа).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

post-70839-1332263855_thumb.png

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

 

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

 

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

 

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

 

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это разные варианты исполнения. Различие в числе контактных площадок.

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

Да.

 

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

Четверть _цикла_.Ну да. Т.е. полный цикл проходит за четыре щелчка.

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

А если был без трещетки - то и надо заказывать без трещетки. Попробуйте выломать у одного образца трещетку, если скорость изменения результата будет подходящей, то заказывайте "такой же, но без крыльев" (т.е. без трещетки).

Изменено пользователем rx3apf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Это разные варианты исполнения. Различие в числе контактных площадок.

А где это указано в даташите?! Я как акын - что вижу, о том пою; вижу 24 арретира и 24 импульса на оборот - считаю что одно деление = 1 импульс. На самом деле совершенно не так.

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

Да.

Опять-таки, в номенклатуре я не вижу никакого указания на разность поведения при full и 1/4. То есть как бы кот в мешке получается... Кто бы подсказал, как определить.

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

А если был без трещетки - то и надо заказывать без трещетки. Попробуйте выломать у одного образца трещетку, если скорость изменения результата будет подходящей, то заказывайте "такой же, но без крыльев" (т.е. без трещетки).

Я заказал то что мне показалось наиболее подходящим в соответствии со спецификацией... Про число контактных площадок там ничего нет. В общем видимо надо один взломать и изучить (точнее взломать два - HC0024 и AC0024).

 

Теперь уже я конечно заказал два энкодера, которые по номенклатуре без арретиров. Мне просто интересно, могу ли я что-то относительно безопасное сделать с этими, потому что иначе у меня на руках 40+ никому не нужных и довольно дорогих энкодеров.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Нет это не поведение энкодера а разные алгоритмы обработки сигнала. На практике из одного периода выделяют 1 или 2 или 4 шага.

Проверте может неисправен канал обработки. Прицепите на энкодер светодиоды (или пару тестеров) и снимите диаграмму от угла поворота. должно быть 24 периода на оборот в каждом канале.

 

Любая схема понижения количества импульсов промежуточным черным ящиком будет дороже правильного энкодера.

Кстати сколько щелчков на оборот в трещетке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Нет это не поведение энкодера а разные алгоритмы обработки сигнала. На практике из одного периода выделяют 1 или 2 или 4 шага.

Проверте может неисправен канал обработки. Прицепите на энкодер светодиоды (или пару тестеров) и снимите диаграмму от угла поворота. должно быть 24 периода на оборот в каждом канале.

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

 

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

Любая схема понижения количества импульсов промежуточным черным ящиком будет дороже правильного энкодера.

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

 

Щелчков на оборот ровно 24. Проверено руками.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...