Калькулятор кодирования-декодирования энкодеров

Результаты появятся здесь...

Профессиональный онлайн-инструмент выполняет перевод между кодом энкодера и физическими величинами (угол, обороты, импульсы, линейное перемещение), рассчитывает разрешение (отсчётов на оборот) с учётом коэффициента квадратуры, конвертирует в/из кода Грея, помогает подбирать шаг винта/передаточное отношение и даёт простые валидации и графические подсказки — скорость, импульсы на перемещение. Программа пригодится:

  • Системным инженерам и механикам при подборе энкодера и настройке привода.
  • Разработчикам ПЛК/ПИД-контроллеров для сопоставления сигналов энкодера и реального перемещения.
  • Сервисным инженерам при диагностике несоответствий считываемого кода и механики.

Как пользоваться

  1. Выберите тип энкодера: инкрементальный (импульсы A/B/Z) или абсолютный (код/значение по углу).
  2. Укажите базовое разрешение: PPR (pulses per revolution) для инкрементальных или число бит для абсолютных.
  3. Выберите коэффициент квадратуры (x1/x2/x4) — это множитель для counts/rev.
  4. Заполните дополнительные поля: шаг винта (мм/об), передаточное отношение, смещение нуля (offset), частоту импульсов или требуемое перемещение.
  5. Нажмите «Декодировать» чтобы получить угол/оборот/форматы или «Закодировать» чтобы получить код/импульсы для заданного значения.
  6. Используйте «Посчитать скорость» и «Импульсы → перемещение» для профессиональных расчётов и визуальной проверки.

Что делает калькулятор

  • Переводит код (HEX/BIN/DEC/Gray) → угол, число импульсов, обороты.
  • Переводит угол/заданное линейное перемещение → требуемое количество импульсов и код (с учётом ratio и lead).
  • Подсчитывает отсчётов на оборот с учётом квандратуры: counts = PPR × coefficient.
  • Конвертирует бинар ↔ Gray код для абсолютных энкодеров.
  • Показывает скорость (RPM, °/с, мм/с) при заданной частоте сигналов.
  • Визуализирует синтетические диаграммы RPM/импульсы (малые графики для быстрой проверки).
  • Выполняет базовую валидацию диапазонов (например, код вне разрешённого диапазона, нулевой шаг винта и т.п.).

Основные формулы

Отсчётов на оборот, с учётом квадратуры:

$$ \text{counts} = \begin{cases}
\mathrm{PPR} \times K_q, & \text{инкрем.} \\
2^{\text{bits}}, & \text{абсол.} \\
\end{cases} $$

Конверсия код ↔ угол:

$$
\theta = \frac{\text{code}}{\text{counts}} \times 360^\circ,
$$
$$
\text{code} = \left\lfloor \frac{\theta}{360^\circ}\times \text{counts} \right\rceil
$$

Импульсы → линейное перемещение (винтовая передача):

$$ N_{\text{p}} = \frac{D~(\text{mm})}{\text{lead}~(\text{mm/rev})} \times \text{counts} \times R_{\text{gear}} $$

где \(R_{\text{gear}}\) — отношение передачи (например, 1:10 → 0.1 или в интерфейсе вы задаёте как строку «1:10» и конвертируете соответственно).

Частота → RPM / mm/s:

$$
\text{RPM} = \frac{f_{\text{Hz}}}{\text{counts}} \times 60,
$$
$$
v_{\text{lin}} = \frac{\text{lead} \times \text{RPM}}{60}
$$

Валидация и полезные проверки

  • Проверьте, что counts не превышают возможности контроллера (чтение/обработка импульсов).
  • Если используете Gray-код — при вводе текста калькулятор попытается распознать «0b…» или признаки Gray; для абсолютных энкодеров предоставьте опцию «Gray / Bin». При сомнении — задайте «binary» и используйте встроенный конвертер.
  • Для инкрементального энкодера указывайте коэффициент квадратуры правильно — в документации энкодера обычно указано «x1/x2/x4». В интерфейсе подсказывайте, что x4 даёт максимальное разрешение (все 4 перехода).
  • Для линейного перемещения убедитесь, что задан корректный шаг винта и отношение передачи; неверный знак ratio может инвертировать направление расчёта.
  • Старайтесь не использовать избыточное округление: в результирующих значениях калькулятор убирает незначащие нули и показывает разумное число знаков после запятой.

Диагностика ошибок сигналов

  • Пропуск импульсов: сравните рассчитанную скорость (по частоте) и ожидаемую механическую скорость; расхождение говорит о потере импульсов или неправильном коэффициенте квадратуры.
  • Шум/дребезг: при высоких скоростях проверьте линию питания, экранирование кабеля, правильную развязку сигналов A/B и опторазвязки.
  • Неправильный Gray: при «прыжках» кода между соседними значениями проверьте порядок бит и фазировку — Gray изменяет только один бит при переходе на соседний угол.

Рекомендации по настройке

  • Для высоких скоростей используйте x4, если сервер/контроллер справляется с большей частотой событий.
  • Если требуется высокая точность позиционирования по углу (без накопления ошибок), предпочитайте абсолютные энкодеры.
  • При использовании абсолютного энкодера с Gray-кодом реализуйте корректную конверсию при чтении (аппаратное обеспечение и встроенное ПО) — это упрощает обработку при переходах между позициями.
  • Используйте индекс Z для точной привязки нулевой позиции (особенно важно для систем с вынужденным обнулением при запуске).

Формат вывода результатов

  • Для декодирования: «Counts / MaxCounts», «Угол (°)», «Обороты (полные)», «Форматы: DEC / HEX / BIN / GRAY».
  • Для кодирования: «Выходной код (в выбранном формате)» и «DEC (число импульсов)».
  • Для скорости: «Counts/rev», «Frequency (Hz)», «RPM», «°/s», «Linear mm/s (при заданном lead)».
  • Для импульсов → перемещение: «Revs needed», «Counts needed», «Pulses needed» с учётом ratio.

Типовые PPR → counts при x1/x2/x4

PPR x1 x2 x4
128 128 256 512
256 256 512 1024
512 512 1024 2048
1024 1024 2048 4096
2048 2048 4096 8192

Абсолютные энкодеры — биты → counts

Биты Counts (2^N)
8 256
10 1024
12 4096
14 16384
16 65536
  • Программа делает квазистатические преобразования — она не моделирует динамику контроллера, пропуск импульсов по прерываниям, задержки шины и так далее.
  • При использовании в реальной системе учитывайте шумовые характеристики кабеля, экранирование и согласование уровней (TTL/HTL/RS422).
  • Абсолютные энкодеры могут выводить данные по протоколам (SSI, BiSS, EnDat и др.) — здесь рассматривается только логика соответствия код↔угол, а не протокольный обмен.

Советы по отладке

  • Сделайте простой тест: задайте низкую частоту и проверьте, что декодированный угол изменяется плавно и линейно с ручным поворотом валa.
  • Проверяйте индекс Z: он даёт однозначную привязку и полезен для коррекции накопленной ошибки у инкрементальных систем.
  • Для проверки Gray-кода попробуйте последовательные значения и убедитесь, что между соседними кодами меняется ровно 1 бит.

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

Оцените материал:

0 / 5. Рейтинг: 0

Может подскажете что улучшить?