Sw-motors.ru

Автомобильный журнал
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Принцип работы абсолютного энкодера

Принцип работы абсолютного энкодера

Принцип работы абсолютного энкодера

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

Кодовый диск абсолютного энкодера

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

Двоичный код

Двоичный код — это широкораспространенный код, который может обрабатываться непосредственно микропроцессором и является основным кодом для обработки цифровых сигналов. Двоичный код состоит только из 0 и 1.

Построение ДК осуществляется по следующему принципу:

Таким образом выглядит в данном случае число 10 в двоичном коде.

Наибольшее число, которое может быть выражено двоичным кодом, зависит от количества используемых разрядов, т.е. от количества битов в комбинации, выражающей число. Например, для выражения числовых значений от 0 до 7 достаточно иметь 3-разрядный или 3-битовый код:

Числовое значениеДвоичный код
1000
2001
3010
4100
5101
6110
7111

Отсюда видно, что для числа больше 7 при 3-разрядном коде уже нет кодовых комбинаций из 0 и 1. Переходя от чисел к физическим величинам сформулируем вышеприведенное утверждение в более общем виде: наибольшее количество значений m какой-либо величины (угла поворота, напряжения, тока и др.), которое может быть выражено двоичным кодом, зависит от числа используемых разрядов n как m =2 n . Если n =3, как в рассмотренном примере, то получим 8 значений, включая ведущий 0.

Двоичный код является многошаговым кодом. Это означает, что при переходе с одного положения (значения) в другое могут изменяться несколько бит одновременно. Например, число 3 в двоичном коде = 011. Число же 4 в двоичном коде = 100. Соответственно, при переходе от 3 к 4 меняют свое состояние на противоположное все 3 бита одновременно. Считывание такого кода с кодового диска привело бы к тому, что из-за неизбежных отклонений (толеранцев) при производстве кодового диска изменение информации от каждой из дорожек в отдельности никогда не произойдет одновременно. Это, в свою очередь, привело бы к тому, что при переходе от одного числа к другому кратковременно будет выдана неверная информация. Так при вышеупомянутом переходе от числа 3 к числу 4 очень вероятна кратковременная выдача числа 7, когда, например, старший бит во время перехода поменял свое значение немного раньше чем остальные. Таким образом, использование обычного двоичного кода может привести к большим погрешностям, так как две соседние кодовые комбинации могут отличаться друг от друга не в одном, а в нескольких разрядах. Чтобы избежать этого применяется так называемый одношаговый код, например, так называемый Грей-код.

Код Грея предпочтительнее обычного двоичного тем, что обладает свойством непрерывности бинарной комбинации: изменение кодируемого числа на единицу соответствует изменению кодовой комбинации только в одном разряде. Он строится на базе двоичного по следующему правилу: старший разряд остается без изменения; каждый последующий разряд инвертируется, если предыдущий разряд исходного двоичного кода равен единице. Этот алгоритм построения может быть формально представлен как результат сложения по модулю два исходной комбинации двоичного кода с такой же комбинацией, но сдвинутой на один разряд вправо. При этом крайний правый разряд сдвинутой комбинации отбрасывается.

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

Преимуществом Грей-кода является также его способность зеркального отображения информации. Так, инвертируя старший бит можно простым образом менять направление счета и, таким образом, подбирать к фактическому (физическому) направлению вращения оси. Изменение направления счета может легко изменяться, управляя так называемым входом » Complement «. Выдаваемое значение может быть возрастающим или спадающим при одном и том же физическом направлении вращения оси.

Поскольку информация, выраженная в Грей-коде, имеет чисто кодированный характер не несущей реальной числовой информации, должен он перед дальнейшей обработкой сперва преобразован в стандартный бинарный код. Осуществляется это при помощи преобразователя кода (декодера Грей-Бинар), который к счастью легко реализируется с помощью цепи из логических элементов «исключающее или» ( XOR ) как программным, так и аппаратным способом (см. схему ниже).

Из таблицы видно, что при переходе от одного числа к другому (соседнему) лишь один бит информации меняет свое состояние, если число представлено кодом Грея, в то время, как в двоичном коде могут поменять свое состояние несколько бит одновременно. Код Грея — выход, следовательно, он никогда не имеет ошибку чтения и применяется во многих абсолютных энкодерах.

Интеллектуальные энкодеры с выходными коммутирующими сигналами

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

Новый подход — новые возможности.

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


Рис. 1. Энкодеры с выходными коммутирующими сигналами определяют скорость вращения, направление и ускорение вала двигателя

Задача энкодера заключается в определении положения вала электродвигателя для контроллера системы (см. рис. 1). С помощью этих данных контроллер переключает обмотки двигателя, а также определяет его скорость вращения, направление и ускорение, которые используются для поддержания заданных параметров двигателя.

Принцип работы энкодеров основан на разных методах, которые позволяют получить на выходе системы цифровые квадратурные сигналы А и В, а также выходной индексный сигнал для определения направления вращения (см. рис. 2а). С выхода энкодера также поступают сигналы U, V и W для коммутации фаз (см. рис. 2б).


Рис. 2. а) стандартные квадратурные сигналы А и В, а также индексный сигнал на выходе оптического энкодера; 6) сигналы U, V и W на выходе энкодера

Энкодерные технологии

Стандартные энкодеры, как правило, выдают 48-2048 импульсов на оборот (имп/об), тогда как в большинстве приложений востребованы значения 800-1024 имп/об. Следует понимать, что использование энкодеров с более высокой точностью удорожает и усложняет стоимость решения, а также накладывает дополнительное бремя вычислений на системный контроллер или цифровой процессор. Избыточная точность приводит к повышению шума в системе, вибрациям и джиттеру.

Читать еще:  Датчик температуры двигателя на adr

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

Бездатчиковые приложения

Наряду с использованием бесщеточных двигателей постоянного тока применяются бездатчиковые схемы, не требующие энкодеров для определения положения вала. Электродвигатели в этом случае управляются с помощью разных алгоритмов, в т. ч. векторным методом (field-oriented control, FOC).

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


Рис. 3. Оптический энкодер работает, считывая информацию о поворотах вала с помощью света, который проходит сквозь окошки в диске

К настоящему времени широкое применение получили оптические, магнитные и емкостные энкодеры. В оптическом методе используется диск с прорезями, где напротив друг друга установлены светодио-ды и фототранзисторы (см. рис. 3). При вращении этого диска световой поток периодически прерывается, а по поступающим импульсам определяется скорость и направление вращения вала. Несмотря на низкую стоимость и эффективность оптического энкодера, его надежность зависит от воздействия пыли, грязи или масла, попавших в световой тракт. К тому же, как известно, светодиоды со временем выгорают — их яркость, как правило, уменьшается в два раза за несколько лет эксплуатации.

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

Помимо оптических и магнитных энкодеров для кодирования положения вала используются датчики Холла. У этих эффективных и надежных устройств, однако, относительно невысокое разрешение.

Учитывая большую необходимость в точном и надежном методе кодирования положения вращающегося вала, компания CUI остановила свой выбор на принципе емкостного измерения, реализованного в стандартном энко-дере, который преобразует угловое положение вала в линейное. Этот же метод используется также в цифровом штангенциркуле (см. врезку). Платформа, построенная на энкодере серии АМТ с выходными коммутирующими сигналами от CUI, обеспечивает высокую эксплуатационную надежность и точность. Емкостной энкодер обладает всеми указанными преимуществами оптического и магнитного датчиков, но не имеет их недостатков. Энкодер состоит из двух групп полос или линий, одна из которых установлена на неподвижном элементе конструкции, а другая — на подвижном элементе. Оба этих элемента образуют переменную емкость, сконфигурированную в виде пары передатчик/приемник (см. рис. 4).


Рис. 4. Емкостной энкодер считает смодулированные импульсы при прохождении сигнала от ротора на вале двигателя

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

Лучший среди других энкодеров

Новые устройства серии АМТ31 от компании CUI являются образцами современного емкостного энкоде-ра, обеспечивающего квадратурные сигналы А и В, индексный сигнал, а также сигналы U, V и W для коммутации обмоток. Этот энкодер, имеющий 20 значений разрешения в диапазоне 48-4096 имп/об, поддерживает семь значений полюсных пар двигателя в диапазоне 2-20. Кроме того, у энкоде-ра серии АМТ31 также имеется стопорный болт, что облегчает его монтаж. Напряжение питания энкодера: 5 В, ток источника питания: 16 мА.

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

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

Новый функционал

Обсудим подробнее то расширение функциональных возможностей, которое обеспечиваются ASIC и микроконтроллером, входящими в состав энкодера серии АМТ31 от CUI.

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

Напротив, процесс сброса оптического или механического энкодера является многоступенчатым, сложным и часто неэффективным. Поначалу требуется заблокировать ротор, изменить положение энкодера, а затем приступить к управлению приводом по сигналам обратной связи с помощью осциллографа, чтобы с использованием противо-ЭДС и энкодера добиться сброса. Поскольку во многих случаях в этом итеративном процессе требуется точная подгонка и проверка, на его выполнение уходит 15-20 минут.

— Цифровые функции энкодера серии АМТ позволяют значительно ускорить проектирование благодаря универсальности, диагностике и оценке характеристик двигателя и контроллера. В частности, поскольку один емкостной энкодер работает в широком диапазоне разрешения и с большим числом полюсных пар, для динамического регулирования характеристики петли ПИД-управления при проектировании контроллера и создании алгоритма можно воспользоваться функцией программируемого разрешения, исключив необходимость в приобретении другого энкодера.

Энкодер серии АМТ осуществляет автономную диагностику, которая ускоряет анализ отказов. Кроме того, имеется возможность проверить корректность работы энкодера или установить причину отказа из-за механической несоосности вала. Более того, разработчик может воспользоваться этой функцией,чтобы принять предупредительные меры -например, провести тестовое испытание энкодера, прежде чем запустить приложение.

— Использование цифрового интерфейса сокращает список материалов (ВОМ). Поскольку параметры системы (скорость вращения, количество полюсных пар и направление переключения), в которой используется емкостной энкодер, задаются с помощью программного обеспечения,отпадает необходимость в других моделях энкодеров для многомоторных или нескольких разных двигателей.

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

Читать еще:  Что такое вакуум в двигателе


Рис. 5. Монтажные отверстия энкодеров АМТ совместимы с неемкостными энкодерами

Универсальный энкодер АМТ11, состоящий из емкостного преобразователя и электрического интерфейса на основе заказной ASIC, представляет собой небольшой модуль диаметром 37 мм и толщиной 10,34 мм, который работает от источника питания +5 В. Выходные сигналы энкодера могут быть двух типов: несимметричный квадратурный сигнал КМОП-уровней с разницей фаз 90° и дифференциальный сигнал с выхода драйвера линии. Оба этих сигнала электрически совместимы с сигналами стандартных оптических и магнитных энкодеров. Подключение с осевой и радиальной ориентацией осуществляется в зависимости от требований приложения. Диапазон рабочей температуры энкодера составляет -40. 105°С

Интеллектуальный энкодер и пользовательский интерфейс

Программное обеспечение Viewpoint для энкодеров серии АМТ, работающее на ПК под управлением ОС Windows, позволяет ускорить проектирование и сократить время на выполнение рутинных задач, к которым, например, относится определение номера модели и ее версии. Для подключения энкодера к ПК требуется лишь USB-кабель.


Рис. 6. Программа Viewpoint для энкодеров серии АМТ обеспечивает простой в использовании интерфейс

На рисунке 6 показан графический пользовательский интерфейс, с помощью которого энкодер настраивается под нужды приложения.

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

От штангенциркуля — к энкодеру

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

Применение емкостного метода измерения не ограничивается только переключателями. Например, повсеместное распространение получили цифровые штангенциркули. Ингвар Андермо (Ingvar Andermo), инженер-электротехник из стокгольмского института IM Research, 30 лет тому назад работал над созданием емкостной технологии считывания банкнот. СИ. Йоханссон (СЕ. Johansson) пытался создать цифровой штангенциркуль на базе магниторе-зистивной технологии, но емкостной метод оказался гораздо проще.

Первая реализация технологии Johansson Caliper, или Jocal, была представлена на чикагской выставке в 1980 г. Несколько лет спустя японская компания Mitutoyo на основе лицензии на эту технологию выпустила первый цифровой штангенциркуль. С тех пор во всем мире были проданы миллионы этих устройств.

Подключение энкодера к частотному преобразователю

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

Для претенциозного регулирования скорости и позиционирования вала двигателя в состав электропривода включаются энкодеры. Использование частотно-регулируемого привода с датчиками скорости и положения позволяет заменить дорогостоящие сервоприводы.

Виды энкодеров

Энкодер – устройство для преобразования угла поворота или скорости вращения в электрический сигнал. По выходному сигналу различают:

  • Инкрементальные энкодеры. Принцип действия этих устройств основан на подсчете количества импульсов, которое пропорционально повороту или частоте вращения вала. При использовании этих устройств необходимо задать нулевые точки для привязки датчика к конкретной системе отсчета.
  • Абсолютные энкодеры. Такое устройства не требуют задания референтных точек. Абсолютные датчики выдают данные о текущем положении вала без интерпретации количества импульсов.

По принципу действия различают оптические и магнитные энкодеры (датчики Холла).

Состав электропривода на базе частотного преобразователя с точным позиционированием

Привод механизмов с точным позиционированием содержит:

  • Электродвигатель синхронного или асинхронного типа.
  • Датчик углового перемещения или скорости (энкодер).
  • Сопрягающую плату.
  • Частотный преобразователь.
  • Контроллер движения.

    Современные частотные преобразователи для оборудования с претенциозным регулированием положения рабочих органов или частоты вращения имеют функцию IMC, которая позволяет обойтись без сопрягающей платы и контроллера.

    Как построить систему позиционирования

    При построении системы позиционирования необходимо решить следующие задачи:

    • Определить характер перемещения оси (абсолютный или относительный). При относительном перемещении за нулевую точку принимается положение вала при включении оборудования. При абсолютном перемещении при загрузке системы должны определяться абсолютные координаты вала относительно заданных осей координат.
    • Подобрать энкодер. Эти элементы выбирают по количеству импульсов или бит за один оборот, типу и количеству выходов, габаритов корпуса, степени защиты IP, диаметру и типу вала.
    • Подобрать частотный преобразователь и контроллер. Эти устройства должны иметь функции реверсивного счетчика (для работы с импульсным энкодером), определения координат оси при включении оборудования, аналоговые и цифровые выходы. Для управления шаговым двигателем могут понадобиться частотные входы “шаг/направление” и “по часовой стрелке/против часовой стрелки”.

    Установка, подключение и тестирование энкодеров

    Энкодер выбирают, исходя из требований к системе и параметров контроллера и частотного преобразователя. Самым важным критерием выбора этого оборудования является разрешение или количество импульсов, генерируемых за один оборот. Чем больше импульсов передает устройство на котроллер или частотный преобразователь, тем выше точность позиционирования положения вала при низкой скорости. Для точного регулирования при низкой частоте вращения необходимо не менее 20 импульсов на один период квантования контроллера.

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

    Энкодер крепится к валу двигателя, редуктора или другого передаточного устройства. При его установке важно обеспечить жесткое соединение. Скольжение и люфт снижают точность позиционирования и регулирования.

    Запрещается запитывать знкодер от общей шины питания цепи управления. Для этих устройств необходимо предусмотреть отдельный источник стабилизированного напряжения. Интерфейсы Danfoss для подключения энкодеров имеют встроенные источники питания.

    Соединение датчика скорости и положения необходимо выполнить экранированными кабелями рекомендуемой производителем марки.

    При наладке привода ПК, где установлено соответствующее ПО, соединяют с интегрируемым или внешним контроллером. Далее открывают соответствующий раздел в меню котроллера и частотного преобразователя. Затем определяют тип энкодера, вводят его параметры.

    Специализированные частотные преобразователи с интегрируемым контроллером движения имеют функции тестирования датчиков. Предусмотрены разные программы испытаний для ведущего и ведомого энкодеров в системе следящего привода. Программа испытаний:

    • Автоматически определяет тип и разрешение датчика.
    • Выполняет расчет времени замера ПИД-регулятора.
    • Проверяет тип перемещения и выбор времени подсчета количества импульсов.
    • Рассчитывает коэффициент прямой связи.

    Если энкодер не работает, следует проверить качество контактных соединений. Если подсчет импульсов инкрементального датчика осуществляется в обратную сторону, необходимо поменять кабели, подключенные к каналам A и B и A/ и B/.

    Преимущества специализированных преобразователей частоты

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

    Частотно-регулируемый привод способен выполнять следующие базовые функции:

    • Определения абсолютной координаты для импульсного энкодера (Home).
    • Настройки передаточных отношений и смещений в режиме On-line.
    • Синхронизации скорости, положения по метке ведущего и ведомого привода в следящей системе регулирования.
    • Приема и передачи данных по поддерживаемым протоколам связи.
    • Абсолютного и относительного позиционирования.
    • Автоматического вычисления, сравнения данных от датчиков.
    • Совместимости с различными типами энкодров, поддержка разных конфигураций системы управления.
    • Отладки встроенных программ.
    Читать еще:  В чем заключаются промывка двигателя

    Программирование преобразователей частоты и контроллеров движения осуществляется при помощи ПО, разработанного производителем. Схемы подключения различных типов энкодеров представлены в паспорте электропривода.

    Для построения систем точного позиционирования на базе частотных преобразователей и контроллеров Danfoss не требуется глубоких знаний сервотехнологии и навыков написания программ. Эти устройства разработаны по принципу “ все в одном”. Такие приводы широко используются для станков с ЧПУ, кранов, высокоточных дозаторов и другого промышленного оборудования.

    Электроника для всех

    Блог о электронике

    AVR. Учебный Курс. Инкрементальный энкодер.

    Энкодер это всего лишь цифровой датчик угла поворота, не более того.

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

    Если с абсолютным энкодером все просто, то с инкрементальным бывают сложности. Как его обрабатывать?

    С Энкодера выходят два сигнала А и В, сдвинутых на 90 градусов по фазе, выглядит это так:

    А дальше пляшем от типа энкодера. А они бывают разные.

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

    В оптическом же может быть два фонаря и два фотодиода, святящие через диск с прорезями (шариковая мышка, ага. Оно самое).

    Механический подключается совсем просто центральный на землю, два крайних (каналы) на подтянутые порты. Я, для надежности, подключил внешнюю подтяжку. Благо мне на Pinboard для этого только парой тумблеров щелкнуть:

    Оптический подключается в зависимости от типа оптодатчика, обычно там стоит два фотодиода с общим анодом.

    Обычно, все пытаются работать с ними через прерывания INT, но этот метод так себе. Проблема тут в дребезге — механические контакты, особенно после длительного пользования, начинают давать сбои и ложные импульсы в момент переключения. А прерывание на эти ложные импульсы все равно сработает и посчитает что нибудь не то.

    Лучше считать не импульсы, а состояния.

    Метод прост:
    Подставим нули и единички, в соответствии с уровнем сигнала и запишем последовательность кода:

    A:0 0 1 1 0 0 1 1 0 0 1 1 0
    B:1 0 0 1 1 0 0 1 1 0 0 1 1

    Если A и B идут на одни порт контроллера (например на A=PB0 B=PB1), то при вращении энкодера у нас возникает меняющийся код:

    Теперь остается только циклически опрашивать наш энкодер сравнивая текущее состояние с новым и на основании этого делающего выводы о вращении. Причем частота опроса должна быть такой, чтобы не пропустить ни одного импульса. Например, мой EC12 имеет 24 импульса на оборот. Вращать его предпологается вручную и я вряд ли смогу вращать его с космической скоростью, но решил все же замерить. Подключился к осциллографу, крутнул ручку что есть мочи:

    Выжал меньше килогерца. Т.е. опрашивать надо примерно 1000 раз в секунду. Можно даже реже, будет надежней в плане возможного дребезга. Сейчас, кстати, дребезга почти нет, но далеко не факт что его не будет потом, когда девайсина разболтается.

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

    // Эту задачу надо запускать каждую миллисекунду. // EncState глобальная переменная u08 — предыдущее состояние энкодера // EncData глобальная переменная u16 — счетный регистр энкодера void EncoderScan(void) < u08 New; New = PINB & 0x03; // Берем текущее значение // И сравниваем со старым // Смотря в какую сторону оно поменялось -- увеличиваем // Или уменьшаем счетный регистр switch(EncState) < case 2: < if(New == 3) EncData++; if(New == 0) EncData--; break; >case 0: < if(New == 2) EncData++; if(New == 1) EncData--; break; >case 1: < if(New == 0) EncData++; if(New == 3) EncData--; break; >case 3: < if(New == 1) EncData++; if(New == 2) EncData--; break; >> EncState = New; // Записываем новое значение // Предыдущего состояния SetTimerTask(EncoderScan,1); // Перезапускаем задачу через таймер диспетчера >

    Почему я под счетчик завел такую большую переменную? Целых два байта? Да все дело в том, что у моего энкодера, кроме импульсов есть еще тактильные щелчки. 24 импульса и 24 щелчка на оборот. А по моей логике, на один импульс приходится четыре смены состояния, т.е. полный период 3201_3201_3201 и один щелчок дает 4ре деления, что некрасиво. Поэтому я считаю до 1024, а потом делю сдвигом на четыре. Получаем на выходе один щелочок — один тик.

    Скоростной опрос на прерываниях
    Но это механические, с ними можно простым опросом обойтись — частота импульсов позволяет. А бывают еще и высокоскоростные энкодеры. Дающие несколько тысяч импульсов на оборот, либо работающие на приводах и вращающиеся очень быстро. Что с ними делать?

    Ускорять опрос занятие тупиковое. Но нас спасает то, что у таких энкодеров, как правило, есть уже свои схемы подавления дребезгов и неопределенностей, так что на выходе у них четкий прямоугольный сигнал (правда и стоят они совершенно негуманно. От 5000р и до нескольких сотен тысяч. А что ты хотел — промышленное оборудование дешевым не бывает).

    Так что без проблем можно применять прерывания. И тогда все упрощается неимоверно. Настраиваем всего одно прерывание по внешнему сигналу. Например, INT0 настраиваем так, чтобы сработка шла по восходящему фронту. И подаем на INT0 канал А.

    Пунктиром показано предполагаемое положение в произвольный момент. Красные стрелки это фронты по которым сработают прерывания при движении либо в одну, либо в другую сторону.

    А в обработчике прерывания INT0 щупаем вторым выводом канал В. И дальше все элементарно!

    Если там высокий уровень — делаем +1, если низкий -1 нашему счетному регистру. Кода на три строчки, мне даже писать его лень.

    Конечно, можно такой метод прикрутить и на механический энкодер. Но тут надо будет заблокировать прерывания INT0 на несколько миллисекунд. И НИ В КОЕМ СЛУЧАЕ нельзя делать это в обработчике.

    Алгоритм прерывания с антидребезгом будет выглядеть так:

    • Зашли в обработчик INT0
    • Пощупали второй канал
    • +1 или -1
    • Запретили локально INT0
    • Поставили на таймер событие разрешающее INT0 через несколько миллисекунд
    • Вышли из обработчика

    Сложно? Нет, не сложно. Но зачем? Проще сделать банальный опрос, как указано выше и не зависеть от выводов прерываний. Впрочем, хозяин барин.

    Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

    А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.

    голоса
    Рейтинг статьи
  • Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector