Слово «энкодер» имеет англоязычное происхождение. Оно возникло от слова encode, что значит «преобразовывать». Наиболее известными мировыми производителями данных приборов являются такие известные бренды как Siemens, СКБ ИС, HEIDENHAIN RLS, Baumer, SICK AG, Balluff, Schneider electric (Autonics Telemecanique), OMRON.
Энкодер – это датчик, применяемый в промышленной области с целью преобразования подконтрольной величины в электрический сигнал. При помощи него определяется, например, положение вала электрического двигателя. В связи с тем что каждое устройство, в котором применяется вращение, обязательно должно быть оснащено прибором, контролирующим точность вращательного момента, популярными сферами использования подобных преобразователей являются системы точного перемещения. Основная цель, с которой применяется энкодер, – это измерение угла поворота объекта во время вращения. Энкодеры незаменимы в процессе производства на станкостроительных предприятиях, в работотехнических комплексах. Используют их также во многих современных измерительных приборах, которые нуждаются в регистрации высокоточных измерений углов, вращения, поворотов и наклонов.
Все ныне известные энкодеры подразделяются на абсолютные и инкрементальные, резисторные, магнитные и оптические, работающие через промышленные сети либо шинный интерфейс.
В зависимости от общего принципа работы выделяют абсолютные энкодеры и инкрементальные. Различие между этими двумя видами заключается в выполняемых ними задачах. Перечень задач абсолютного энкодера гораздо шире перечня, который охватывается энкодером инкрементальным.
Это импульсный датчик. В процессе поворота объекта на его выходах фиксируются импульсы, количество которых прямо пропорционально углу вращения предмета. Обычно инкрементальные преобразователи применяют в процессе станкостроения с целью регистрации углового перемещения вала или в автоматизированных системах в цепи обратной связи для измерения и регистрации скорости поворота вала.
Инкрементальный энкодер - это устройство, функционирующее на основе данных импульсов, образующихся при вращении. Количество импульсов на единицу оборота – это и есть основной рабочий параметр данного устройства. Текущее значение определяется датчиком по методу подсчета количества импульсов от точки отсчета. С целью привязки систем отсчета на импульсном энкодере устанавливаются референтные метки, которые являются стартовыми после включения оборудования. Определение данных при помощи инкрементального преобразователя возможно лишь во время вращения или поворота. При остановке вращения все данные энкодера обнуляются. В итоге при последующем включении предыдущие данные счетчика будут неизвестны. Для удобства его эксплуатации следует привести вал в исходное положение. Инкрементальный энкодер идеально справляется с задачей измерения скорости поворота. При помощи подсчета количества импульсов от референтной метки можно с точностью определить также текущую координату угла вращения объекта.
Так называют абсолютный датчик положения. Обычно в подобных энкодерах наблюдаются более сложные процессы электронной обработки сигналов и имеется оптическая схема. Но зато они выдают реквизиты объекта сразу после включения, что зачастую является обязательным для корректного функционирования системы в целом. По сравнению с инкрементальными использование абсолютных энкодеров позволяет решать значительно более широкий круг задач, так как измерения производятся не при помощи фиксации импульсов, а специальными цифровыми кодами. Единица измерения подобного аппарата – это число уникальных цифровых кодов за единицу вращения (1 оборот). В связи с тем, что все цифровые коды, выдаваемые датчиком, уникальны, определить текущую координату линейного перемещения сразу же после включения прибора не составляет труда и без использования реферетной метки. В момент включения на выходах датчика появляется код из цифр. Он и является обозначением текущего положения угла поворота объекта. Таким образом, абсолютный энкодер отлично справляется не только с задачей отслеживания скорости поворота (вращения) объекта, но и выдает корректные данные о его точном расположении в данный момент времени, независимо от того, подключен он или нет.
В зависимости от особенностей характеристик аюсолютные энкодеры могут различаться типом крепления, наличием несквозного или сквозного, полого или выступающего вала. Ассортимент таких устройств также очень разнообразен с точки зрения внешних характеристик: длины, диаметра корпуса и так далее. Кроме того, известно, что абсолютные датчики измерения положений во время вращения бывают многооборотными и однооборотными. Однооборотные производят определение текущей координаты в пределах 1 оборота, а многооборотные способны к распознанию еще нескольких дополнительных оборотов.
Данный преобразователь представляет собой жестко закрепленный на валу диск, сделанный из стекла. Энкодер оптический, в отличие от вышеописанных датчиков, дополнительно оборудован оптическим растором, который в процессе поворота вала перемещается и преобразовывает вращательный момент в поток света, принимаемый впоследствии фотодатчиком.
Данный тип преобразователя фиксирует углы вращения, где каждому уникальному положению соответствует специальный неповторимый код из цифр. Он вместе с количеством оборотов и представляет собой единицу измерения датчика. Подключение энкодера и принцип его действия идентичны функционированию инкрементального устройства, описанного выше.
По характеристикам работы энкодеры делятся на магнитные и фотоэлектрические.
Физический принцип работы первых базируется на применении эффекта Холла, открытого в 1879 году Э. Холлом. В данном случае разность потенциалов возникает лишь при помещении проводника постоянного тока в область магнитного поля.
По характеристикам разрешения и точности магнитный энкодер уступает фотоэлектрическому, но его реализация проще. Он является гораздо менее требовательным к пространствам и условиям функционирования.
Представитель магнитного энкодера представляет собой прибор, фиксирующий цикл прохождения магнитного полюса вращающегося магнита, расположенного поблизости от чувствительного элемента. Выражение данных передатчика также имеет вид цифрового кода.
Фотоэлектрический энкодер – это датчик, функционирующий на базе фотоэлектрического эффекта, который наблюдается в результате воздействия света на вещество. Открыт данный принцип в 1887 году Г. Герцем. В процессе работы датчика данного типа наблюдается постоянное преобразование светового луча в электрический сигнал.
Синонимом фотоэлектрического энкодера являются оптронный, оптический и оптоэлектронный. Датчики данного типа более требовательны к характеристикам производства, эксплуатации и многому другому, нежели иные энкодеры, но это оправдано, так как потенциал их точности значительно выше, нежели у конкурентов.
fb.ru
Коротко энкодеры можно назвать преобразователями угловых перемещений. Они служат для модификации угла поворота объекта вращения, например, вала какого-либо механизма, в сигнал электрического тока. При этом определяется не только угол поворота вала, но и его направление вращения, а также скорость вращения и текущая позиция относительно первоначального положения.
Наиболее популярными энкодеры стали при их использовании в системах точного перемещения, на станкостроительных заводах, в производственных комплексах с применением робототехники, в измерительных устройствах, в которых необходима регистрация точных измерений наклонов, поворотов, вращений и углов.
Энкодеры – это датчики поворота. Простейший датчик имеет ручку, которая может поворачиваться по часовой стрелке или против нее. В зависимости от угла поворота и направления выдается цифровой сигнал, информирующий о том, в каком положении находится ручка, либо в какую сторону она была повернута.
У такого энкодера, показанного на рисунке, ручка также может применяться в качестве кнопки. Это является вспомогательной функцией конкретного вида энкодера.
У абсолютного энкодера весь круг поворота разделен на определенное количество секторов, чаще всего одинакового размера. Эти сектора пронумерованы. Энкодер при работе выдает номер сектора, в котором на данный момент он находится. Поэтому он и называется абсолютным. У этого типа энкодера всегда можно определить, на какой угол относительно нулевого сектора повернут энкодер в конкретный момент, то есть, при повороте он выдает значения номеров секторов, до максимального значения. Далее он переходит снова на ноль.
Если вал энкодера поворачивать в другую сторону, то он начнет выдавать противоположные значения. В нашем случае у него используется пять выводов для выдачи значений поворота.
У данного алгоритма имеются свои недостатки. Из таблицы 1 виден порядок выдаваемых значений n-го энкодера. Стоит обратить внимание на две последние строчки, переход от 127 на 128.
Таблица 1
Здесь меняются абсолютно все биты. В идеальном энкодере они все меняются одновременно и нет никаких проблем. Практически в реальном энкодере биты меняются быстро, однако не одновременно. И в какой-то момент на выходе энкодера оказывается совершенно произвольное значение. Так как меняются все биты, следовательно, у энкодера будет произвольное значение от нуля до всех единиц.
Справа изображен пример такого переключения. Чем это может грозить? Разберем пример. Микроконтроллер с помощью двигателя управляет валом и поворачивает его на определенный угол. В определенный момент при переключении со 127 на 128 ячейку он получает определенное случайное значение. Контроллер делает вывод, что вал находится совершенно в другом месте, в отличие от фактического места, и начинает его вращать в другую сторону, с другой скоростью и т.д.
Через определенное время микроконтроллер получает правильное значение, начинает пытаться остановить вал и вращать его в правильную сторону. Такой процесс может продолжаться долго, при условии, что такая ошибка будет встречаться часто. Такие ошибки являются нерегулярными, и вычислить их достаточно сложно.
Выше описанная проблема решается с помощью введения кода Грея. Особенностью кода Грея является то, что при переключении энкодера на единицу, значение кода Грея меняется также на единицу. Меняется только один вид. Это видно в таблице 2 в сравнении двоичного кода и кода Грея.
Таблица 2
Первые две строчки совпадают, но уже во второй строчке поменялся средний бит. Далее также меняется один бит. Также стоит отметить, что последний и первый код Грея отличается на один бит, то есть код Грея может зациклиться.
Преимуществом данного кода является то, что ошибка, которая рассмотрена выше, невозможна. Из недостатков можно отметить, что микроконтроллеру необходимо переводить код Грея в двоичный код для того, чтобы понять, в каком положении находится абсолютный энкодер.
Следующим типом является инкрементальный энкодер, который имеет более простую структуру. Но при этом он не показывает конкретное место положения своей ручки. Он показывает только направление поворота, а число делений поворота должен считать микроконтроллер.
У инкрементального энкодера есть набор полосок, которые по умолчанию подключены к земле, и при повороте они замыкаются и размыкаются. Получается сигнал, изображенный на рисунке (похож на меандр). Таких круговых полосок у энкодера две. Полоски смещены на одну четверть, и сигналы также смещены между собой на четверть. Это важно, так как позволяет определить направление вращения.
Схему инкрементального энкодера можно представить по правому рисунку. Кнопки обозначают периодические подключения энкодера к земле. Так как внутри энкодер не подключается к логической единице, то необходимо снаружи самостоятельно подтянуть логические единицы через резисторы к выводу энкодера. В этом случае, когда ни одна из ножек у энкодера не подключена к земле, на ножках будет логическая единица.
Если энкодер подключил к земле какую-то ножку, то на этой ножке будет логический ноль. В спокойном состоянии у энкодера на выходе логическая единица. При начале вращения энкодера в любую сторону, то сначала один вывод подключается к земле, затем другой. Далее эти выводы по очереди отключаются от земли, и на них опять образуется логическая единица.
Определить направление поворота можно по тому, какой из выводов раньше подключился к земле. При подсчете полных циклов можно посчитать количество щелчков поворота энкодера.
Три состояния, которые не равны единицам, являются неустойчивыми, и в них энкодер не может находиться. Во многих микроконтроллерах реализована функция подсчета поворотов с помощью таймеров, у которых есть определенные входы. Таймер считает на аппаратном уровне, на сколько щелчков и в какую сторону был повернут энкодер, и выдает значение. То есть, счетчик инкрементирует какое-либо число.
По изменению этого числа можно определить, на сколько щелчков был повернут энкодер. По количеству щелчков можно определить и угол поворота. Энкодер также имеет дребезг контактов, который усложняет анализ сигналов.
Подобный преобразователь выполнен в виде диска, зафиксированного на валу, и изготовленного из стекла. Оптическая модель датчика поворота отличается от других видов дополнительным оптическим растором, перемещаемым при повороте вала. При этом он превращает момент вращения в световой поток, который далее принимается фотодатчиком.
Оптический преобразователь запоминает углы вращения. При этом каждому отдельному положению соответствует особый цифровой код, который вместе с числом оборотов образует единицу измерения датчика. Энкодер подключается и работает по аналогии с инкрементальным датчиком.
По характеру функционирования они разделяются на фотоэлектрические и магнитные. Принцип работы магнитных моделей основан на использовании эффекта Холла, который был впервые открыт в 1879 году. При этом разность потенциалов появляется только при расположении провода постоянного тока в магнитное поле.
По точности и свойствам разрешения магнитный вид датчика уступает фотоэлектрическому, однако по конструкции он проще, менее требователен к условиям работы и пространству. Магнитный энкодер является прибором, который фиксирует прохождение магнитного полюса магнита при вращении, находящегося рядом с чувствительным элементом. Информация передатчика выражается в цифровом коде.
Фотоэлектрический энкодер является датчиком, работающим на основе фотоэлектрического принципа. Этот эффект наблюдается при воздействии светового потока на вещество. Этот принцип был открыт в 1887 году. При эксплуатации такого датчика происходит постоянное преобразование луча света в сигнал электрического тока.
Аналогами фотоэлектрического энкодера являются оптоэлектронный, оптический и оптронный. Эти датчики наиболее чувствительны к характеристикам изготовления, эксплуатации и другим факторам, по сравнению с другими моделями. Однако это оправдывается их повышенной точностью, в отличие от конкурентов.
Похожие темы:
electrosam.ru
Хотя должен признаться опыт работы с энкодерами имел. Как-то в одной и поделок использовал энкодер из принтера.
В данной истории все приключилось внезапно. Ползая по своим хоббийным форумам натолкнулся на конкурс. Сайт (называть не буду, т.к. разговор не о нем) проводил видимо раскрутку посещаемости и плюс один из форумчан проводил раскрутку своих российского производства изделий. И разыгрывался комплект из 3 наборов для самостоятельной сборки сервоконтроллеров. Я зарегистрировался на этом форуме, подал заявку (вместе с 3 или 4-мя всего лишь участниками) и… выиграл.
Так я стал обладателем 3-х наборов для сборки сервоконтроллеров. Далее мне потребовались энкодеры. Позволю себе объяснить для читателей не так глубоко погруженных в электронные компоненты, что такое сервоконтроллер, энкодер и с чем все это едят.
Есть 2 основных способа управлять точным перемещением в изделиях с ЧПУ (числовое программное управление). Попробую объяснить максимально доступным языком, без сложных схем и терминов. Первый способ это шаговые двигатели. Шаговый двигатель имеет сложное устройство — несколько катушек, притягивающих сердечник в заданных положениях.
Количество положений, в которых может быть зафиксирован сердечник называется шагами, промежуточные положения (регулируются различными промежуточными напряжениями и соответственно магнитными полями) называют микрошагами. Управляет шаговым двигателем драйвер — это плата управления, как правило с микропереключателями шагов и регулировкой тока, протекающего через двигатель. На вход драйвера подаются сигналы: Enable (разрешить работу шагового двигателя), DIR (направление вращения), STEP (количество шагов, на которое двигателю необходимо повернуть вал). И драйвер переводит команды в обороты вала двигателя. Очень простая и надежная конструкция. Из минусов — скорость вращения двигателя ограничена из-за его конструктива, и если двигатель пропустит по той или иной причине шаги, то управляющая программа об этом не узнает. Отсюда и область применения — низко и среднескоростные двигатели в заданной области нагрузок. Например 3Д принтер или хоббийные станки.
Второй способ управлять перемещениями — сервомотор. Мотор сам по себе может быть любым, постоянного или переменного тока, без разницы. Единственное условие, его вал должен иметь энкодер. Энкодер — это устройство определения позиции вала в данный момент времени. Об энкодерах мы поговорим подробнее чуть позже. Сервоконтроллер имеет другой принцип работы, в отличии от драйвера шагового двигателя. Сервоконтроллер получает на входе те же самые сигналы Enable, STEP, DIR и подает на двигатель напряжение. Двигатель начинает вращаться в нужном направлении, энкодер возвращает данные о положении вала двигателя. Как нужное положение достигается, вал двигателя в нем фиксируется. Конечно это сильно упрощено, т.к. есть ускорение и торможение двигателя, управление током и напряжением, пропорционально-интегрально-дифференцирующий (ПИД) регулятор в контуре обратной связи,… но мы же договорились в этот раз не сильно лезть в теорию.
Какие же плюсы серводвигателей: любая скорость вращения, отсутствие пропуска шагов, бесшумность (шаговый двигатель ощутимо громок в работе из-за своего конструктива). Но цена сервоконтроллеров выше и существенно драйверов шаговых двигателей. Поэтому основная ниша сервоконтроллеров — профессиональное применение.
Для своего проекта я выбрал двигатели Динамо Сливен. Эти двигатели широко использовались в советское время в ЭВМ и их было какое-то нереально большое количество. Кажется, что практически любой хоббийщик или имеет такой двигатель или сталкивался с ним. На барахолках их до сих пор перепродают. Это двигатели постоянного тока с фантастическим неубиваемым ресурсом и устойчивостью к любым издевательствам.
В качестве сервоконтроллера я использовал выигранную плату. Она представляет собой развитие open source сервоконтроллера, известного под устойчивым брендом «сервоконтроллер Чена» — по имени китайца, году так в 2004-м, если не ошибаюсь, предложившим данную схему.
Теперь уже практически переходим сути обзора — к энкодерам. Выбор энкодера был осуществлен по характеристикам и цене. Какие бывают типы энкодеров. В основном это оптические и магнитные. Магнитные — когда на краях диска закреплены магниты, а возле них находится датчик Холла.
Решение дорогое, промышленное, обладает повышенной надежностью. Цена не хоббийная ни разу.
Оптические энкодеры. Самое распространенное решение. Есть в каждой мышке. Раньше отвечали за вращение шарика и колесика. Теперь шариков уже нет, а вот колесики остались. Принцип работы прост — прерывание светового пучка проходящим непрозрачным телом.
Оптические энкодеры есть 2-х типов: инкрементальные и абсолютные. Инкрементальные делятся на 2 подтипа. Простейшие инкрементальные — такие как изображены на рисунке выше. Они определяют пересечение светового потока и на их основе можно построить, например, тахометр. Недостаток данного энкодера состоит в том, что при помощи него невозможно определить направление вращения диска. Инкрементальные 2-х канальные решают задачу определения направления вращения диска.
Для этого используется не один фотодиод, а несколько, обычно 4. Они формируют 2 независимых канала передачи данных, и сравнивая сигналы с этих каналов можно однозначно сделать вывод о направлении вращения диска.
Какие же недостатки есть у данного инкрементального энкодера? Недостаток один, но для ряда применений он критичный. При инициализации энкодера мы не знаем в каком положении находится диск. Т.е. мы можем узнать только направление и скорость вращения диска.
Для получения полной информации, а именно — начальное положение диска, направление и скорость вращения используются абсолютные энкодеры.
Абсолютные энкодеры используют диск со сложной системой кодировки положения. Наиболее распространен код Грея — двоичная кодировка с защитой от ошибок.
Я остановил свой выбор на инкрементальном энкодере с контролем направления вращения, т.е. с двумя квадратурными каналами вывода информации. Разрешения в 100 линий на оборот диска мне было за глаза. Поэтому на Алиэкспрессе я нашел энкодеры за разумную цену и с нужными мне характеристиками.
Вот фотка 3-х пришедших мне энкодеров. Дошли они недели за 3.
У энкодеров 4 вывода, Красный — питание 5В, Черный — земля, Цветные — каналы А и В. Я быстренько выточил втулочку на вал двигателя под крепление диска, ввинтил туда стержень с резьбой.
На 3Д принтере распечатал площадку под крепление датчика энкодера
Собрал все вместе
Подключил сервоконтроллер, и… тут бы был счастливый конец обзору, но нет. Ничего не заработало. Даже близко ничего не заработало.
Подключил осциллограф и понял, что никаких квадратурных сигналов на выходе нет, только шумы, наводки и непонятные выплески. Грешил я на все на свете. И на требовательность к позиционированию, и на засветку, и на наводки электромагнитные. И часами аккуратно возюкал датчик в разных положениях, выключал свет и пытался проделать все тоже самое в темное. «Крокодил не ловится, не растет кокос.» Разумеется я перепробовал все 3 энкодера. Везде тоже самое. И тут меня дернуло поразглядывать датчик в микроскоп.
То что я увидел повергло меня в изумление. Все 4 сенсора стояли в ряд по радиусу диска, т.е. засвечивались через прорезь диска одновременно. Разумеется ничего не работало. Датчики должны стоять перпендикулярно радиусу диска, и засвечиваться последовательно разными фронтами прорези диска. Я не мог поверить, что это так просто и так глупо. Китайцы поставили датчик с поворотом на 90 градусов. Я спросил на форуме у такого же как я покупателя таких же энкодеров как у него стоит датчик. И у него все было также неправильно и не работало.
Почесав в затылке я решил попробовать это дело исправить. Энкодер разобрался легко, при помощи фена расплавил термоклей и достал внутренности.
Поднес датчик к диску так чтобы сенсоры был поперек рисок. Конечно датчик корректно не встал, но на осциллографе начал появляться какой-то осмысленный сигнал.
Дальше разрезал корпус энкодера сбоку, наростил проводочками расстояние между светодиодом и матрицей сенсоров и засунул все в корпус по-новому.
На фото видно, что сенсоры стали перпендикулярно радиусу диска.
Собрал, подключил к сервоконтроллеру и… Бинго, все заработало! Мотор встал в режим удержания позиции. Т.е. при попытке проворота вала двигателя, мотор упирается и если его все же провернуть, то возвращается в исходное положение.
Ну а дальше двигатель займет свое место на фрезерном станке, но это уже совсем другая история...:-)
Как резюме. Энкодер из коробки не работает. К покупке не рекомендую. Но в своей ценовой категории, если он был бы исправным, это хорошее бюджетное решение. Либо если переделка изделия в работающее не пугает, то можно брать и переделывать.
У продавца куча положительных отзывов на такой энкодер. Либо это все липа, либо, что вероятнее, брак пошел массово совсем недавно.
Я написал продавцу, он пока шлет мне тонну технических описаний и предлагает попробовать еще, и намекает, что это я не разобрался. Буду на него давить. Пусть хоть часть денег вернет. Я столько времени угрохал из-за их заводского разгильдяйства.
Всем добра и удовольствия от хобби!
mysku.ru
По всем категориямБрендыДатчики давления, энкодерКонденсаторные установкиУстройство плавного пускаЧастотные преобразователиНасосыАвтоматические выключателиТермостатыТрансформаторные подстанцииТрансформаторы силовыеМотор-редукторыСтанции управленияЭлектротехнические шкафыТерминыЭлектродвигатели
Благодаря инженерному интересу к робототехнике и ее возможностям, стремительному развитию автомобилестроения и оптимизации работы электро-вычислительных машин, в технике появилось новое устройство под названием энкодер.
Что такое энкодер? Если быть более точным, то энкодер – прибор, который конвертирует угловое или линейное перемещение в последовательность сигналов.
Известен еще как датчик угла поворота – преобразует угол поворота объекта, который вращается (вал) в электрические сигналы, позволяющие определить тот же угол поворота (вала), направление его вращения и положение относительно оси.
Потребность в данном датчике возникла при поиске новых, более совершенных методов создания и работы всем известных сервомоторов. Первым был импульсный магнитный энкодер, который определял положение ротора в системе бесщеточного двигателя постоянного тока (двигатель с электронной коммутацией). Энкодер во время вращения производил импульсы по числу полюсов магнита.
На данный момент по типу действия, мы имеем как минимум три вида энкодеров:
Наряду с энкодерами, нередко используются и датчики температуры, поскольку там, где есть механическое или любое другое движение возникает трение и рост температуры, значения которой не должны превышать допустимых норм.
Энкодер используется в:
Учитывая то, что как минимум в пяти из девяти пунктов используются установки, принцип работы которых основан на давлении воздуха/масла/краски, то не лишними будут и датчики давления. Они позволят вовремя определить уровень износа постоянно работающих механизмов и заменить их без вреда для производства.
Выбирая электронное, электронно-механическое и механическое оборудование в интернет-магазине «Эллерон», вы обеспечиваете свое производство или дом только качественными устройствами, которые будут достойно служить вам.
elleron.ru
Энкодеры – это датчики положения, которые используются в промышленных электроприводах для получения информации о скорости вращения электродвигателя и о положении вала ротора. С помощью энкодера реализуется обратная связь по скорости или положению электрической машины, которая заводится в систему автоматического управления и используется в алгоритме управления механизмом. Данная связь является костяком системы автоматизированного электропривода.
Много различных интерфейсов связи разрабатывалось для энкодеров на протяжении последних лет. Но выбор интерфейса связи ставит перед разработчиком ряд факторов – экономическая эффективность, точность, безопасность. Решения, описанные в этой статье, пытаются максимально оптимизировать удовлетворение этих требований.
Энкодер – это электромеханическое устройство, которое генерируют выходной электрический сигнал пропорциональный скорости вращения вала электрической или механической машины. Существуют линейные и вращающиеся энкодеры. Данная статья рассматривает вращающиеся энкодеры, используемые в связке с электродвигателями. Датчик крепится к валу электрической машины и генерирует электрические сигналы, которые пропорциональны скорости вращения электродвигателя. Энкодер также можно использовать и для определения положения вала машины в пространстве.
Вращающиеся датчики положения бывают двух видов: инкрементальный и абсолютный. Инкрементальные энкодеры обеспечивают импульсный выход в виде прямоугольных импульсов, которые используются для указания скорости вращения вала, а также могут быть использованы для расчета его положения. Большинство энкодеров генерируют две прямоугольные волны, сдвинутые друг относительно друга на 900. Этот сдвиг позволяет определить направление вращения вала. Более того, маркер или индекс обычно генерируется один за оборот, что позволяет создать контрольную точку при подсчете импульсов.
Абсолютные энкодеры параллельно генерируют на выходе двоичный код, который указывает точное положение в один оборот вала. Использование двоичного кода Грея сводит к минимуму ошибки в определении положения. Также абсолютные датчики положения могут вырабатывать сигналы прямоугольной, синусной или косинусной аналоговой формы. Выработанные sin/cos сигналы обеспечивают более точное определение положения.
Вращающиеся энкодеры могут генерировать выходной сигнал несколькими способами: механическим, емкостным, магнитным или оптическим методом. Наиболее распространёнными являются оптические датчики положения, так как они генерируют наиболее точный сигнал. Состоит он из стеклянного диска, на который наносят непрозрачные полоски. На данный диск направлен светодиод, который его освещает, и фотодиод или фототранзистор, принимающий и обрабатывающий световой сигнал светодиода. При вращении пара свето- и фотодиод генерируют импульсы, частота которых пропорциональна скорости вращения вала машины. Эти сигналы преобразуются в последовательный формат для передачи в микроконтроллер, который осуществляет управление механизмом.
Ряд последовательных интерфейсов доступен для абсолютных датчиков положения. Большинство из них являются собственностью компаний занимающихся производством энкодеров. На рынке укрепилось несколько наиболее популярных видов интерфейсов, таких как: BiSS, EnDat, HIPERFACE и SSI. Давайте подробней рассмотрим каждый из них.
Двунаправленный синхронный последовательный интерфейс (BiSS) был разработан IC-Haus, Германия. Интерфейс использует соединение точка-точка от датчика к контроллеру. Шесть проводных линий находятся в экранированном кабеле: одна дифференциальная пара для тактового сигнала и вторая дифференциальная пара для последовательных данных кодера.
Данные передаются синхронно с тактовым сигналом. Тактовая частота определяется длиной кабеля, который может быть от 10 до 1000 метров. Максимальная тактовая частота составляет 10 Мбит / с на 10 метров. Доступна компенсация задержки для кабеля большой длины.
Интерфейс BiSS, соответствует стандарту TIA / EIA RS-422 и имеет два дополнительных провода источника питания постоянного тока к кодеру. Он аппаратно-совместимым с интерфейсом SSI, который описан ниже.
Протокол кодировщик данных является собственностью Heidenhain, Германия. Он реализует соединение точка-точка с восемью проводами. Одна дифференциальная пара для данных, вторая пара для часов, остальные четыре провода используются для питания датчика. Передача данных происходит синхронно с тактовыми импульсами и с тактовой частотой, зависящей от длины кабеля. Максимальная скорость составляет 16 Мбит / с, в то время как типичная скорость на 100 метров составляет 8 Мбит / с. Он использует стандарт интерфейса TIA / EIA RS-485.
HIPERFACE DSL (Digital Servo Link) был разработан Max Stegmann GmbH, Германия и SICK, США. Последовательный интерфейс точка-точка использует стандарт в TIA / EIA RS-485. Тем не менее, этот протокол также поддерживает подключение шины из нескольких кодеров.
Интерфейс использует восьмижильный экранированный кабель типа витая пара длиной до 150 метров. Одна дифференциальная пара используется для данных, две пары несут аналоговые сигналы sin / cos, сгенерированные кодером. Sin/cos сигналы оцифровываются 12-разрядными АЦП и используются для обеспечения измерения положения с более высоким разрешением. Две дополнительные линии питают энкодер.
Передача данных производится в асинхронном режиме. В стандартной версии, интерфейс поддерживает скорость передачи данных 38,4 кбод. Другой вариант HIPERFACE может передавать 9,375 Мбод до 100 метров.
Ключевой особенностью этого интерфейса является то, что он может нести сигналы обратной связи в одном кабеле, что исключает необходимость дополнительного кабель. Это делается путем наложения сигналов данных обратной связи на сигнал питания постоянного тока.
Один из самых старых и оригинальных интерфейсов энкодера представляющий собой синхронный последовательный интерфейс, разработанный в Европе. Он предшествует всем интерфейсам, описанным выше. SSI использует шестижильный кабель с одной парой для данных, одной парой для таймера, и одной парой питания постоянным током. Скорость передачи данных может составлять до 1,5 Мбит / с. Некоторые SSI энкодеры поставляются с sin / cos сигналами над другими двумя парами.
Как разработчик вы можете создать свой собственный интерфейс, основанный на удобных для вас интегральных микросхемах ИС. Однако в случае если у вас нет желания или времени разрабатывать свой собственный интерфейс, для быстрого и простого подключения энкодера вполне подойдет один из интерфейсов компании Texas Instruments. Одним из таких решений является TIDA-00179, который является универсальным интерфейсом и может быть использован с любым из описанных выше интерфейсов.
На первом рисунке показана схема данной системы. Конструкция поддерживает стандартные напряжения питания постоянным током от 15 В до 60 В (как правило, 24 В). Встроенные компоненты питания предназначаются для питания датчика положения напряжениями 5,25 В или 11 В. Также предусмотрена защита от перенапряжений, пониженного напряжения, перегрузки по току и короткого замыкания. Приемопередатчики RS-485 передают и обрабатывают данные, поступающие от датчика вращения. Данная конструкция способна поддерживать вариант исполнения с длиной кабеля до 100 метров.
Другим доступным вариантом является TIDA-00202 для HIPERFACE энкодеров. Подобно Tida-0179, он обеспечивает питания датчика 11 В от номинального входного напряжения 24 В. Также включен приемопередатчик RS-485 для передачи данных. Поддерживается аналоговый выход sin/cos сигнала.
Выходной сигнал обрабатывается тремя путями: один путь это аналоговый сигнал, второй преобразует сигнал в совместимый вариант с транзисторно-транзисторной логикой ТТЛ, третий путь – это оцифровка сигнала двумя 12-битными АЦП в интерфейс SPI с последующей передачей на обработку микроконтроллеру. Данная конструкция поддерживает длины кабелей от 50 до 150 метров. Разновидность этой конструкции является TIDA-00176, который является только интерфейсом для sin / cos энкодеров.
elenergi.ru
Энкодер для частотника по своему внешнему виду похож на переменный резистор или на потенциометр. Те же три вывода, тот же корпус панели. На этом его сходство заканчивается. Внутри у него два переключателя, у которых есть общий вывод задач управления и два своих.
Чтобы энкодер заработал, средний вывод нужно подключить к земле, а два остальных через резисторы к питанию. Съем сигнала управления нужно производить непосредственно с выводов панели энкодера.
Теперь представим, что энкодер идеальный и его контакты не страдают дребезгом. Подключим к выводам энкодера осциллограф и начнем вращать ручку энкодера. Импульсы будут сдвинуты относительно друг друга на 90 градусов. Если крутить ручку мощности (кВт) вправо, влево или назад, то будем иметь последовательности панели управления:
Если осциллограммы как применение последовательности задач логических нулей и единиц, то они будут иметь такой вид:
Возьмем обычный энкодер, у которого есть дребезг контактов. Зона дребезга:
При переключении с логической единицы на логический ноль возникает дребезг. С дребезгом можно бороться двумя способами: аппаратным и программным применением.
Аппаратный способ – это подключение серии конденсаторов частотника, триггеров Шмитта, как указано на схеме панели управления:
Рекомендуется применять метод борьбы с дребезгом – программный. Такой метод описан в библиотеке Ротери. Данная библиотека содержит несколько функций, которые нужны для настройки выводов векторного контроллера на ввод, и подключение подтягивающих мощность (кВт) резисторов. В библиотеке нужно указывать соответствующие команды и задачи. Данной командой включается подтягивающий резистор внутри контроллера панели частотника.
Функция серии Get position vfd возвращает значение энкодера. Данная фукнция нужна для получения количества импульсов, которые считал энкодер. Функция set Position vfd нужна для загрузки значения, с которого энкодер начнет свой счет.
Функция tick должна быть рассмотрена подробнее. Переменные этой функции sig1 и sig2 записывают состояние векторного pin, к которой подключен энкодер. Дальше эти pin записываются в переменную thisState vfd, которая является текущим состоянием энкодера. Если текущее состояние энкодера не равно предыдущему, то вычисляются новые направления счета и количество импульсов мощности сохраняется в переменной Position. Когда энкодер вернется в свое начальное векторное положение, произойдет сдвиг вправо на два разряда, и новое значение управления нужно записать в переменную PositionExt. Данная переменная нужна для сохранения серии результатов задач, которые будут иметь применение в основной программе.
Проанализировав состояние энкодера при вращении влево и вправо, составляем таблицу:
Его начальное положение 1-1. При повороте вправо произошел щелчок, единица стала логическим нулем. Новое значение this State vfd равно 01. Согласно команды данный результат суммируется со значением переменной Position.
Из-за того, что произошел дребезг, позиция стала 11, после перерасчета порядковый номер стал 7. После того, как дребезг закончился, нужно фиксировать новое положение 01 и к предыдущему нулю добавляется единица. При повороте энкодера произошел один щелчок, и значение переменной Position стало единицей.
Происходит второй щелчок при повороте энкодера направо, и вместо позиции 01 мы имеем позицию 00. После того, как весь дребезг закончится, на выходе управления также имеем значение единицы. При четвертом щелчке, когда позиция с 10 стала 11, мы имеем значение 6. После окончания дребезга остается 6.
В некоторых энкодерах имеет применение кнопка панели. При ее нажатии и отпускании тоже будет дребезг контактов, нужно применить библиотеку Bounce. Функции этой библиотеки нужны для задания pin, к которому будет подключена кнопка, задач времени задержки в миллисекундах. Если произошло нажатие на кнопку, то функция мощности (кВт) возвращает векторное значение true, если нет, то false vfd.
Данная схема состоит из платы Arduino Uno, инкрементального энкодера, четырехразрядного светодиодного индикатора, ключевых транзисторов и ограничительного резистора. Эта схема называется счетчиком импульсов. Она считает импульсы, которые будет воспроизводить энкодер при его вращении. Энкодер своими выводами подключен к каналам А2 и А3, вывод кнопки подключен к выводу А4, средний вывод подключен к земле, второй вывод тоже к земле.
Рассмотрим скетч, который называется счетчиком импульсов энкодера управления частотника. Вначале подключаем библиотеки для работы таймера, индикатора LS, для работы с энкодером, для кнопки.
Перейдем к макетной плате, и зальем все это в контроллер управления частотника. После заливания, включаем, крутим регулятор энкодера, цифры на экране возрастают. В обратную сторону векторного значения уменьшаются и переходят в отрицательную сторону. При увеличении серии задач отрицательного значения знак минуса смещается.
Если нажимаем на кнопку индикатора, переменная обнулится, на индикаторе будет ноль.
Наша задача суметь управлять скоростью асинхронного двигателя с помощью программы на компьютере. У нас имеется преобразователь частоты (частотник):
Для домашних заданий такая информация не нужна. На фотографии энкодер промышленного назначения для асинхронного двигателя управления мощностью (кВт) станков:
В станкостроении энкодеры широко применяются для преобразователей частоты асинхронных двигателей. Они монтируются как датчики обратной связи по своей скорости. Такие энкодеры имеют большую дискретность от 100 импульсов на оборот до 1 млн импульсов на оборот. У этой марки дискретность равна 500 имп. на оборот.
Энкодеры подразделяются на виды задач по принципу действия на частотные преобразователи. Они бывают абсолютными и инкрементальными. Наш энкодер выполняет обычную функцию – выдает сигнал дифференцирования при отключении мощности питания, и ее подачи снова. Раннее состояние не сохраняется.
Энкодеры абсолютного вида имеют внутреннюю память, которая помнит последние положения. Зачем нужна память, и зачем сохранять эти данные? В заводских условиях станкостроения перед перемещением определенного устройства в первую очередь указывают нулевую точку. Такой процесс называется реферированием, то есть, выход в нуль.
Применение датчика абсолютного вида дает возможность уйти от этой процедуры на второй раз, сократить время при условии, что система имеет ограничения для перемещений.
Рассмотрим энкодеры синуса и косинуса. Они выдают выходной сигнал косинуса или синуса. Далее, с помощью устройства интерполятора мощности образуют из них импульсы. Сигналы такого вида можно изменять в размерах. Питание энкодера осуществляется от напряжения 5 вольт.
Сигнал «А» — это сигнал импульса прямого типа. Количество импульсов с этого сигнала приходит на каждом обороте. Оно равно 500 (дискретность датчика).
Сигнал «В» — тоже прямой сигнал импульса. С него на каждом обороте поступает число импульсов по дискретности датчика, который смещен от канала «А» на 90 градусов (500).
Сигнал «R» — это сигнал метки «нуль». С одного оборота датчика получается один импульс.
В энкодерах промышленного назначения используется сигнал дифференцирования, для работы с частотным преобразователем (частотником). Название у него сложное, а на самом деле все просто. Все каналы отдельно копируются своей инверсией. Это необходимо для отдавания сигнала на значительные расстояния. Выходной канал энкодера подсоединяется к приемнику специального назначения, сделанному на усилителях операционного вида. Импульс в итоге определяется в совокупности двух сигналов.
Подключение простое. Подсоединяем напряжение 5 вольт на выходы энкодера. У нас раскладка: провод коричневого цвета – 0 В, белого цвета — +5 В, розовый, зеленый и красный – А, В, R.
Программа подключения энкодера базируется на прерываниях каналов А и В. Срабатывания прерываний происходят на переднем фронте. Получается ситуация, когда происходит торможение энкодера в момент растрового пересечения и выходной сигнал канала всегда остается положительным. Подсчет импульсов непрерывно ведется счетчиком.
В нашем случае мы не будем применять прерывания, потому что мы работаем с 4-мя датчиками, они эксплуатируются одновременно. Если применять схему прерываний, наверняка возникнет ситуация потери импульсов. У нас эта проблема решается путем установления значка наличия движения. А мы рассматривали эксплуатацию энкодеров промышленного назначения.
Счетчик работает в связке с модулем семиразрядного индикатора, который и будет отображать количество накрученных энкодером импульсов. При включении значение счетчика равно нулю.
Покрутим ручку энкодера по часовой стрелке. Значение счетчика инкрементируется на единицу при каждом щелчке энкодера. Наибольшее число можно накрутить 999999999. это число должно заполнить все разряды нашего семисегментного индикатора. Если вращать ручку дальше, то счетчик обнулится, начнет снова считать с нуля.
Для примера накрутим 120 импульсов. Теперь скручиваем обратно, вращая ручку против часовой стрелки. Центральная ось энкодера работает как кнопка. Она очищает от нулей свободные разряды индикатора. У кнопки есть небольшой дребезг контактов, поэтому выключение и включение происходит не сразу. Программным путем, дребезг устраняется. Это основа работы с модулем энкодера.
chistotnik.ru
Чтобы было ещё понятнее, я нарисовал его схему, полюса магнитов ротора обозначены цветом, красный для северного и синий для южного:
На датчики холла пока не обращайте внимания, их всё равно нет :)
Что будет, если подать плюс на вывод V, а минус на вывод W (вывод U не подключаем ни к чему)? Очевидно, будет течь ток в катушках, намотанных зелёным проводом. Катушки намотаны в разном направлении, поэтому верхние две катушки будут притягиваться к магнитам 1 и 2, а нижние две к магнитам 8 и 9. Остальные катушки и магниты в такой конфигурации роли практически не играют, поэтому я выделил именно магниты 1,2,8 и 9. При такой запитке мотора он очевидно крутиться не будет, и будет иметь семь устойчивых положений ротора, равномерно распределённых по всей окружности (левая верхняя зелёная катушка статора может притягивать магниты 1, 3, 5, 7, 9, 11, 13).
Давайте записывать наши действия вот в такую табличку:
Угол поворота ротора | U | V | W |
0° | n.c. | + | - |
Давайте посчитаем, на сколько повернётся ротор: между щелями магнитов 1-2 и 3-4 у нас 51.43° (=360°*2/7), а между соответствующими щелями в статоре 60° (=360°/12*2). Таким образом, ротор провернётся на 8.57°. Обновим нашу табличку:
Угол поворота ротора | U | V | W |
8.57° | + | n.c. | - |
Угол поворота ротора | U | V | W |
17.14° | + | - | n.c. |
Угол поворота ротора | U | V | W |
25.71° | n.c. | - | + |
Угол поворота ротора | U | V | W |
34.29° | - | n.c. | + |
Угол поворота ротора | U | V | W |
42.85° | - | + | n.c. |
Запишем ещё раз всю последовательность для нашего двигателя:
Угол поворота ротора | U | V | W |
0° | n.c. | + | - |
8.57° | + | n.c. | - |
17.14° | + | - | n.c. |
25.71° | n.c. | - | + |
34.29° | - | n.c. | + |
42.86° | - | + | n.c. |
Обратите внимание, что они генерируют три сигнала, сдвинутые друг относительно друга на 1/3 периода. Кстати, электрики используют слово градусы, говоря про 120°, чем окончательно запутывают нубов типа меня. Если мы хотим сделать свой контроллер двигателя, то достаточно читать сигнал с датчиков, и соответственно переключать напряжение на обмотках.
Для размещения датчиков я использовал вот такую платку, дизайн которой взял тут. По ссылке лежит проект eagle, так что я просто заказал у китайцев сразу много подобных платок:
Эти платки несут на себе только три датчика холла, больше ничего. Ну, по вкусу можно поставить конденсаторы, я не стал заморачиваться. Очень удобно сделаны длинные прорези для регулировки положения датчиков относительно статора.
Я долго думал, как же мне использовать все три сигнала, ведь у нас происходит шесть событий на одну седьмую оборота, мы должны иметь возможность получить 42 отсчёта на оборот. В итоге решил пойти грубой силой, так как синяя таблетка имеет кучу аппаратных квадратурных декодеров, поэтому я решил в ней завести три счётчика:
Видно, что при каждом событии у нас увеличиваются два из них, поэтому сложив три счётчика, и поделив на два, мы получим равномерно тикающий определитель положения вала, с точностью до 6*7 = 42 отсчёта на оборот!
Вот так выглядит макет подключения датчиков Холла к синей таблетке:
В некоторых приложениях (например, для коптеров) все эти заморочки не нужны. Контроллеры пытаются угадать происходящее с ротором по току в катушках. С одной стороны, это меньше заморочек, но с другой стороны, иногда приводит к проблемам с моментом старта двигателя, поэтому слабоприменимо, например, в робототехнике, где нужны околонулевые скорости. Давайте попробуем запитать наш движок от обычного китайского коптерного ESC (electronic speed controller).Мой контроллер хочет на вход PPM сигнал: это импульс с частотой 50Гц, длина импульса задаёт обороты: 1мс — останов, 2мс — максимально возможные обороты (считается как KV двигателя * напряжение).
Вот здесь я выложил исходный код и кубовские файлы для синей таблетки. Таймер 1 генерирует PWM для ESC, таймеры 2,3,4 считают соответствующие квадратурные сигналы. Поскольку в прошлой статье я крайне подробно расписал, где и что кликать, то здесь только даю ссылку на исходный код.
На вход моему ESC я даю пилообразное задание скорости, посмотрим, как он его отработает. Вывод синей таблетки лежит тут, а код, который рисует график, тут.
Поскольку у меня двигатель имеет номинал 400KV, а питание я подал 10В, то максимальные обороты должны быть в районе 4000 об/мин = 419 рад/с. Ну а вот и график подоспел:
Видно, что реальные обороты соответствуют заданию весьма приблизительно, что терпимо для коптеров, но совершенно неприменимо во многих других ситуациях, почему, собственно, я и хочу использовать более совершенные контроллеры, которым нужны сигналы с датчиков холла. Ну и бонусом я получаю угол поворота ротора, что бывает крайне полезно.
Я провёл детство в обнимку с этой книжкой, но раскурить принципы работы бесколлекторников довелось только сейчас.Оказывается, что шаговые моторы и вот такое коптерные моторчики — это (концептуально) одно и то же. Разница лишь в количестве фаз: шаговики (обычно, бывают исключения) управляются двумя фазами, сдвинутыми на 90°, а бесколлекторники (опять же, обычно) тремя фазами, сдвинутыми на 120°.
Разумеется, есть и другие, чисто практические отличия: шаговики рассчитаны на увеличение удерживающего момента и повторяемость шагов, в то время как коптерные движки на скорость и плавность вращения, что сказывается на количестве обмоток, подшипниках и т.п. Но в итоге обычный бесколлекторник можно использовать в шаговом режиме, а шаговик в постоянном вращении, управление у них будет одинаковым.
Update: красивая анимация от Arastas:
habr.com