4.3.5. Работа с энкодерами

4.3.5.1. Область применения энкодеров

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

Предупреждение

Автоопределение типа энкодера работает только с энкодерами на 3.3В и 5В (с погрешностью 0.2В).

4.3.5.2. Что такое квадратурный энкодер?

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

../../../_images/SigEnc1.png

Сигналы на выходе СН А и СН В квадратурного энкодера

../../../_images/QuadEnc1.png

Механика оптического квадратурного энкодера

Механика оптического квадратурного энкодера представлена на рисунке. Используются две оптопары. Принцип работы оптопары: светодиод и детектор расположены напротив друг друга с разных сторон от диска. Когда «окно» диска попадает на детектор, оптопара «открыта» (выходной сигнал - логический 0). Если детектор закрыт непрозрачной частью диска, то выходной сигнал датчика – логическая 1.

Основная характеристика квадратурного энкодера – число шагов на один оборот (CPR). Стандартные значения разрешения для энкодера – от 24 до 1024 CPR. Каждый период изменения сигнала может быть расшифрован 1,2 или 4 кодами, что соответствует режимам работы Х1, Х2 и Х4. В данном контроллере используется наиболее точный режим Х4. Максимальная частота каждого из сигналов энкодера, зависит от выбранного энкодера, так для 200 кГц и режима x4 контроллер способен воспринимать 800 000 отсчётов положения по энкодеру в секунду.

4.3.5.3. Возможности контроллера

Контроллер имеет два режима работы с энкодером:

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

4.3.5.4. Режим ведущего энкодера

В этом случае все параметры мотора, в том числе положение и скорость движения, измеряются непосредственно с помощью энкодера и имеют размерности, основанные на отсчетах энкодера. Положение отображается непосредственно в отсчетах энкодера, скорости выражаются в RPM - оборотах в минуту. Скорость движения рассчитывается контроллером на основе данных об измеренной скорости и значении количества импульсов энкодера на один полный оборот оси мотора, указанных в блоке настроек обратной связи во вкладке Настройка кинематики движения (Шаговый двигатель), (DC мотор). Отметим, что в случае использования DC мотора режимы поддержания заданной скорости, движения в заданную точку и все производные от них работают с помощью алгоритмов ПИД-регулирования и требуют соответствующих настроек. Для шаговых двигателей режим ведущего энкодера оптимизирует управление двигателем, за счет чего уменьшаются шумы при движении, стабильно проходятся резонансные скорости, достигается большая скорость вращения по сравнению с режимом работы без энкодера, без риска потери шагов, при которых сбивается координата и требуется повторная калибровка.

Новый алгоритм доступен с прошивкой 4.0.7+. Используйте XiLab 1.13.13+ установите параметр Feedback в Encoder в настройках Device -> Stepper motor page.

4.3.5.5. Режим Encoder mediated

Данный режим работы оптимально использовать в системах с большими люфтами для попадания в необходимую координату за несколько итераций, в среднем от 3 до 10. Этот режим используется для шаговых двигателей.

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

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

Новый алгоритм доступен с прошивкой 4.3+. Используйте XiLab 1.16+ установите параметр Feedback в Encoder mediated в настройках Device -> Stepper motor page.

4.3.5.6. Подключение энкодера

Подключение энкодера к контроллеру осуществляется через разъем DSub , который есть во всех системах: плата контроллера, одноосная и двухосная в корпусе и многоосная

../../../_images/Encoder.png

Схема подключения простого энкодера к разъему DSub.

../../../_images/Encoder_Diff.png

Схема подключения дифференциального энкодера к разъему DSub.

Также смотрите раздел пример подключения простого мотора.

Предупреждение

Входы энкодеров контроллера внутренне подтянуты к логической единице сопротивлением 5.1 кОм. Обычно выходы энкодера имеют тип «открытый коллектор» с внутренним подтягивающим резистором. При передаче данных, они обеспечивают хорошие показатели перехода из высокого логического уровня в низкий. Но переход из логического 0 в логическую 1 оказывается более плавным. Он происходит через RC цепь, образованную сопротивлением подтяжки и ёмкостью кабеля. Это особенно важно для длинных кабелей. Если встроенной подтяжки недостаточно, то для улучшения показателей скорости перехода 0 - 1 можно добавить подтягивающий резистор R=1.5k Ом к +5 В на каждый выход, проверив, что открытый коллерктор энкодера способен пропускать ток 5 мА. Схема включения резисторов показана выше. Максимальной скорости работы инкрементального квадратурного энкодера можно достичь добавив к его выходу драйвер push-pull с выходным током более 10 мА, который обеспечивает резкие фронты переходов 0 - 1 и 1 - 0.

4.3.5.6.1. Использование длинных кабелей

Для корректной работы энкодеров при использовании кабелей длиннее 5 метров рекомендуется использовать энкодеры с дифференциальным выходом типа RS485 для снижения влияния электромагнитных наводок. При использовании интерфейса RS485 все дифференциальные пары должны быть терминированы резистором номиналом 120 Ом, который должен распологаться в разъёме подключения к контроллеру.

Кабель должен иметь дополнительный внутренний экран для цифровых сигналов (пины 5-15), подключенный к DGND (пин 7) на стороне контроллера и на стороне позиционера. Внешний экран должен быть подключен к металлическому корпусу разъёма напрямую на стороне позиционера и к металлическому корпусу разъёма через конденсатор номиналом 47 нФ на стороне позиционера.

4.3.5.6.2. Автоматическое определение типа энкодера

Контроллер 8SMC5 может автоматически определять тип подключенного энкодера, если соответствующая опция активирована в настройках. Эта система сконструирована для работы со стандартными кабелями типа CAT-5E длиной до 50 метров и с сопротивлением проводников 80 мОм на метр. Автоматическое определение может работать неправильно, если длина кабеля превышает 50 метров или при использовании нестандартного кабеля с большим удельным сопротивлением. В случае проблем с автоматически определением типа энкодера, тип экондера может быть принудительно установлен в настройках обратной связи.