Скидка на подшипники из наличия!
Новое поступление товара в 2026 году!
Масштабирование аналоговых сигналов в ПЛК — это пересчёт «сырого» кода АЦП, полученного от токового или вольтового входа, в инженерные единицы: бары, градусы, кубометры в час. Без такого пересчёта в программе фигурирует безразмерное число, а не физическая величина, с которой работают алгоритм регулирования, уставки и визуализация. Ниже разобран весь путь сигнала: от унифицированного тока 4–20 мА и разрядности преобразователя до линейной формулы масштабирования, блоков нормирования и обработки обрыва датчика.
Датчики физических величин — давления, температуры, расхода, уровня — передают измеренное значение в виде непрерывного электрического сигнала. В промышленной автоматизации применяют две основные группы унифицированных сигналов: токовые и сигналы напряжения постоянного тока. Их допустимые диапазоны, а также требования к входным и нагрузочным сопротивлениям нормирует ГОСТ 26.011-80.
Токовый сигнал 4–20 мА стал фактическим отраслевым стандартом: значение тока в петле не зависит от сопротивления и длины линии, поскольку источник тока автоматически поддерживает заданный ток. Это позволяет передавать сигнал на значительные расстояния без потери точности. Согласно ГОСТ 13033-84, диапазон 4–20 мА сигналов постоянного тока является предпочтительным. Сигналы напряжения (например, 0–10 В) применяют преимущественно на коротких линиях, во встраиваемой технике и системах вентиляции.
На входе модуля аналогового ввода сигнал поступает на аналого-цифровой преобразователь (АЦП). По ГОСТ IEC 61131-2-2012 аналоговый вход определяется как устройство, преобразующее непрерывный сигнал в дискретное многоразрядное двоичное число для работы в системе программируемого контроллера. Результатом преобразования становится целочисленный код, который и предстоит пересчитать в физическую величину.
После оцифровки в памяти ПЛК оказывается целое число — код АЦП. Диапазон возможных значений кода определяется разрядностью преобразователя: n-разрядный АЦП формирует 2n уровней. Чем выше разрядность, тем мельче шаг квантования и тем точнее представлен сигнал.
Важно различать физическую разрядность АЦП и представление кода в программе. Многие модули нормируют номинальный диапазон сигнала к фиксированному числовому окну независимо от внутренней разрядности. Распространённый пример: номинальному диапазону 4–20 мА соответствует код 0…27648, а участки ниже 4 мА и выше 20 мА отображаются отрицательными значениями и значениями выше 27648 (области недодиапазона и переддиапазона). Точные границы кода нужно брать из руководства на конкретный модуль ввода — именно эти числа подставляются в формулу масштабирования.
Прежде чем писать пересчёт, найдите в документации модуля два числа: какому коду соответствует нижняя граница сигнала (например, 4 мА) и какому — верхняя (20 мА). Ошибка именно в этих значениях — самая частая причина неверных показаний.
В штатных диапазонах связь кода АЦП и измеряемой величины линейна, поэтому пересчёт сводится к линейной интерполяции между двумя опорными точками — нижней и верхней границами шкалы датчика. Общая формула масштабирования:
EU
EUmin
EUmax
RAW
RAWmin
RAWmax
Отношение (RAW − RAWmin) / (RAWmax − RAWmin) даёт долю от полной шкалы в диапазоне от 0 до 1; умножение на размах (EUmax − EUmin) и прибавление EUmin переводят эту долю в физическую величину. Для сигнала 4–20 мА нижней границе (4 мА) соответствует RAWmin, а верхней (20 мА) — RAWmax.
(RAW − RAWmin) / (RAWmax − RAWmin)
(EUmax − EUmin)
Если модуль выдаёт «сырой» код АЦП без внутреннего нормирования — например, 12-разрядный вход оцифровывает полный диапазон 0–20 мА в код 0…4095, — то 4 мА соответствует код 819, а 20 мА — код 4095. Формула та же, меняются только опорные коды: RAWmin = 819, RAWmax = 4095.
Масштабирование — это всего лишь линейная интерполяция между двумя парами «код ↔ величина». Правильно определить эти две пары важнее, чем сама формула.
Строго говоря, для работы алгоритма регулирования масштабирование не обязательно: контроллер может управлять и по «сырому» коду. Пересчёт нужен там, где значение видит человек или другая система, — на панели оператора, в архиве, в уставках. Чтобы не программировать линейную формулу вручную в каждом канале, в типовых библиотеках функций применяют готовые блоки. Часто используется двухшаговая схема — сначала нормирование, затем масштабирование.
Функция нормирования переводит код АЦП в безразмерную долю в диапазоне 0.0…1.0:
На входе задаются нижняя и верхняя границы кода и текущее значение; на выходе — вещественное число (REAL), показывающее, какую часть шкалы занимает сигнал.
Функция масштабирования разворачивает нормированную долю в инженерный диапазон:
На входе — границы шкалы датчика и доля с предыдущего шага; на выходе — величина в физических единицах. Последовательное применение двух функций математически эквивалентно единой формуле масштабирования из предыдущего раздела.
Существуют и объединённые функции масштабирования (условно — SCALE), которые сразу переводят код АЦП типа INT в значение REAL по заданной шкале, проверяя попадание сигнала в рабочий диапазон. Порядок реализации канала обычно такой:
Для аналогового выхода (управление регулирующим клапаном, частотным приводом, задатчиком) задача обратная: инженерную величину — например, задание в процентах открытия или в оборотах — нужно перевести в код цифро-аналогового преобразователя. По ГОСТ IEC 61131-2-2012 аналоговый выход преобразует многоразрядное двоичное число в непрерывный сигнал. Формула инвертируется относительно кода:
Здесь EU — задаваемая величина, RAW — код, который выставляется в образ выходов и подаётся на ЦАП. Как и на входе, опорные коды RAWmin и RAWmax берутся из документации на модуль вывода для выбранного диапазона сигнала. Перед записью в модуль результат ограничивают допустимым диапазоном кода, чтобы не выйти за пределы шкалы токового или вольтового выхода.
Ключевое преимущество диапазона 4–20 мА перед 0–20 мА и 0–10 В — так называемый живой ноль. Нижней границе измеряемой величины соответствует не нулевой ток, а 4 мА. Смещение в 4 мА выполняет две функции: питает двухпроводной датчик по той же линии и позволяет отличить нормальную работу от обрыва цепи. При обрыве провода или потере питания ток падает до 0 мА — значение, которое в рабочем диапазоне 4–20 мА невозможно, и потому однозначно трактуется как неисправность.
У сигналов 0–20 мА и 0–10 В такой возможности нет: ноль — это допустимое рабочее значение, и обрыв неотличим от корректного измерения нижней границы шкалы. Именно поэтому ГОСТ 13033-84 определяет диапазон 4–20 мА как предпочтительный, и в ответственных контурах применяют именно его.
Отраслевая рекомендация NAMUR NE 43 стандартизирует поведение аналогового сигнала за пределами рабочего диапазона, чтобы система управления могла отличить достоверный сигнал от отказа прибора. Значения тока вне диапазона 4–20 мА интерпретируются как насыщение или аппаратная неисправность.
Зоны различения (3,6–3,8 мА и 20,5–21,0 мА) намеренно оставлены свободными: в них не должно быть достоверных сигналов. Это позволяет системе управления выставить порог срабатывания внутри зоны без ложных тревог из-за дрейфа. В программе ПЛК обработку сводят к двум проверкам после чтения кода: если пересчитанный ток ниже нижнего порога или выше верхнего — канал помечается как недостоверный, а его значение не используется в регулировании.
Прибор, настроенный на режим downscale, при внутреннем отказе выдаёт 3,6 мА, на режим upscale — 21 мА. Для двухпроводных датчиков часто рекомендуют режим upscale, поскольку такому прибору требуется минимальный ток для собственного питания, и слишком низкий сигнал для него ненадёжен. Выбор режима должен согласовываться с логикой безопасности контура.
Большинство проблем с показаниями возникает не из-за формулы, а из-за неверных исходных данных и целочисленной арифметики.
Это пересчёт целочисленного кода АЦП, полученного от токового или вольтового входа, в физическую величину — давление, температуру, расход. В штатном диапазоне связь линейна, поэтому пересчёт выполняется линейной интерполяцией между нижней и верхней границами шкалы датчика.
По формуле EU = EUmin + (RAW − RAWmin) × (EUmax − EUmin) / (RAWmax − RAWmin). Нужны две пары опорных значений: коды, соответствующие нижней и верхней границам сигнала, и сами границы шкалы датчика. Расчёт ведут в формате REAL.
Зависит от модуля. Во многих модулях номинальному диапазону 4–20 мА соответствует код 0…27648. Если модуль выдаёт «сырой» код 12-разрядного АЦП на диапазон 0–20 мА (0…4095), то 4 мА отвечает код 819, а 20 мА — 4095. Точные значения берут из руководства на модуль.
Часто применяют двухшаговую схему: функция нормирования (NORM_X) переводит код в долю 0…1, функция масштабирования (SCALE_X) разворачивает долю в инженерный диапазон. Существуют и объединённые функции (условно SCALE), выполняющие оба действия и проверяющие попадание в рабочий диапазон.
При обрыве ток падает до нуля — значения, невозможного в рабочем диапазоне 4–20 мА благодаря живому нолю. По рекомендации NAMUR NE 43 токи ниже 3,6 мА и выше 21 мА трактуются как аппаратная неисправность. В программе после чтения кода добавляют проверку нижнего и верхнего порогов и при их нарушении помечают канал недостоверным.
Из-за живого ноля. В 4–20 мА нижней величине соответствует 4 мА, поэтому ток 0 мА однозначно означает обрыв или потерю питания. В 0–20 мА и 0–10 В ноль — допустимое рабочее значение, и обрыв неотличим от корректного измерения нижней границы шкалы.
Да, но формула инвертируется: инженерную величину переводят в код ЦАП по выражению RAW = RAWmin + (EU − EUmin) × (RAWmax − RAWmin) / (EUmax − EUmin). Перед записью результат ограничивают допустимым диапазоном кода выхода.
Вы можете задать любой вопрос на тему нашей продукции или работы нашего сайта.