цифровая электроника
вычислительная техника
встраиваемые системы

 
» » Что из себя представляет код Грея для энкодеров


Что из себя представляет код Грея для энкодеров

Автор: Mike(admin) от 21-07-2021, 03:55

Код Грея


Компьютерные процессоры, на которых работают практически все современные системы управления, говорят на уникальном языке. Значения вкл/выкл относятся к «двоичной» системе, обычно представленной как 1 и 0. Эта система хорошо работает с большинством промышленных датчиков, но одно обычное устройство – энкодер – представляет некоторые необычные проблемы, которые требуют довольно специализированной двоичной системы для связи с контроллером. И такая система получила название код Грея.


Что из себя представляет код Грея для энкодеров

Важность энкодеров в системе управления процессами


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


инкрементальный энкодер

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


абсолютный энкодер

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


Сложность с синхронизацией в абсолютных энкодерах


Большинство этих абсолютных энкодеров имеют от 8 до 10 датчиков, выровненных в ряд для считывания рисунка темных / светлых меток, исходящих из центра. Это относится либо к 8-, либо к 10-битному выходу. В любое время шаблон будет состоять из некоторой комбинации от 00000000 до 11111111, по крайней мере, для 8-битного вывода. Если бы шаблон соответствовал истинной двоичной комбинации, это были бы соответственно самое низкое и самое высокое значение шаблона на диске. В какой-то момент на диске он сразу же перейдет от самого высокого обратно вниз к самому низкому значению шаблона и снова начнет увеличиваться.


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


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


Код Грея – решение актуального считывания данных с датчиков


Замедление всего движения может быть возможным решением, но очевидно, что вы не можете просто замедлить всю систему для достижения лучших результатов – это снизит оптимизацию и эффективность. Фактическое решение намного проще, но для его понимания требуется немного творческого подхода. Это решение представляет собой реализацию кода Грея, который предполагает отход от стандартной двоичной последовательности счета, чтобы исключить возможность одновременного изменения нескольких битов. Стандартная двоичная последовательность дает каждому биту вес, так же как наша десятичная система имеет разряды единиц, десятков и сотен и т. д. Каждый раз, когда достигается максимальное значение каждого разряда, все разряды сбрасываются на 0 при следующем подсчете, так что просто например, если вы достигнете 999, следующее значение будет 1000, которое сбрасывает все число обратно на 0.


В двоичном формате 111 может быть один счет, затем со следующим счетом в 1000, все сбрасывается в 0. Обратите внимание, что несколько чисел меняются одновременно – это проблема энкодеров, использующих двоичные выходы. Код Грея назван в честь изобретателя системы подсчета Фрэнка Грея. Он не указывает на какие-либо изменения черно-белого шаблона на диске энкодера. Система действительно начинается с 000000 для 8-битного кода Грея, но с каждым следующим счетом только один бит может измениться в любой момент. Таким образом, контроллер может иметь только два возможных значения.


  • Массив датчиков будет считан за мгновение до изменения одного бита, и это будет указывать на отсутствие изменений.
  • Массив будет прочитан буквально через мгновение после изменения одного бита, и контроллер поймет, что произошло небольшое движение.

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


Реализация кода Грея


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


Что из себя представляет код Грея для энкодеров

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




© digitrode.ru


Теги: энкодер, код Грея




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

Комментарии:

Оставить комментарий