Блог

Сигнал 4-20 мА на экране: Фильтрация, аварии по порогу, что проверить в проекте

Оператор смотрит на тренд давления или уровня и верит линии на экране. Технолог ждёт, что авария по высокому уровню придёт вовремя, а не «когда график договорится». Между этим часто сидит один и тот же канал 4-20 мА: датчик, вход ПЛК СТАБУР, масштабирование, фильтр, порог, и только потом - тренд на панели в CODESYS / MasterSCADA 4D. Если фильтр поставили дважды «чтобы не дёргалось», смена видит красивую кривую и опоздавшую защиту. Если фильтра нет вообще - график дрожит, а авария мигает.
Ниже - как совместить сглаживание и отзывчивость (это как раз частый запрос из вебвизора), что делать с обрывом и насыщением цепи, где уместна калибровка на HMI, и таблица «симптом тренда - причина - проверка» для наладки на объекте.

Где обрабатывается сигнал: сначала ПЛК, потом экран

Единственная «правда» для аварии и межблокировки - значение после масштабирования в ПЛК, с признаком качества (обрыв, замен sensor fault). Тренд на HMI рисует уже готовую переменную; второй тяжёлый фильтр на экране только добавляет задержку. Сглаживание для оператора и порог для защиты лучше развести: в программе контроллера - PV_Filtered для тренда и PV_Raw или быстрый канал для сравнения с уставкой аварии, либо один канал с короткой постоянной для аварии и длинной - только для отображения.
Связка с картой тегов и Bad quality - в статье про Modbus и экран оператора. Если на HMI масштаб K/B не совпадает с ПЛК, спор «4,2 на приборе, 3,8 на панели» решается не подкруткой тренда, а сверкой одного тега в отладчике - как в порядке при расхождении экрана и механики.

Сглаживание и отзывчивость: один рычаг не на всё

Сглаживание (скользящее среднее, EMA, медиана по 3-5 выборкам) убирает дрожь от помех, вибрации, квантования АЦП. Отзывчивость нужна для аварии по порогу и для оператора, когда реальный скачок давления важен. Типичная ошибка - один фильтр на 2-5 секунд и на тренд, и на Alarm_Hi, тогда высокий уровень виден на манометре раньше, чем на экране.
Практичный компромисс на объекте: для тренда 15-60 минут на панели - фильтр 0,5-2 с (подобрать по месту); для аварии - отдельная проверка по сырому или слабо сглаженному значению плюс задержка включения 0,2-1 с и гистерезис сброса, чтобы не мигало на границе. В CODESYS фильтр делают в ST/FBD на входе AI; в MasterSCADA 4D - в обработке канала или в логике ПЛК, а не только в свойстве «сгладить линию графика».
Запрос «как сгладить 4-20 мА, но чтобы авария не опаздывала» с вебвизора сводится к этому: два пути в программе, а не ползунок «красивее» на одном теге.

Обрыв, насыщение, неправильный масштаб

Цепь 4-20 мА живёт правилом: ниже ~3,6 мА - обрыв или обрыв питания датчика, выше ~21 мА - часто КЗ или ошибка; в проекте задают пороги по паспорту модуля AI. В ПЛК выставляют Bad, SensorFault, запрет пуска - и не показывают последнее «хорошее» значение как норму без подписи.
Насыщение бывает и без аварии железа: датчик упёрся в шкалу, а масштаб в ПЛК рассчитан на другой диапазон - тренд «прилип» к 100 %. Обрыв иногда маскируют, если на HMI скрыли Bad и рисуют ноль как «пустой бак». Оператор должен видеть явное состояние: «нет сигнала», «выше шкалы», а не тихий ноль.
Калибровка нуля и диапазона (4 мА = 0 %, 20 мА = 100 %) - в первую очередь в ПЛК или в конфигурации AI-канала. Поле «калибровка» на HMI для смены - только если так записано в регламенте и только под ролью наладчика; иначе смена сдвигает ноль «под текущую смену», а аварии остаются на старых порогах. Подробнее про роли - в материале про доступ.

Аварии по порогу: не на тренде, а в логике

Порог «высокий уровень», «низкое давление», «обрыв датчика» - функциональный блок в ПЛК: сравнение, задержка, гистерезис, квитирование. HMI показывает флаг Alarm_HiLevel, а не рисует красную зону «по ощущению» от графика. При приёмке объекта как раз проверяют, что авария пришла из контроллера - см. чек-лист приёмки HMI.
Если авария мигает на границе 4,99 / 5,01 бар - увеличивают гистерезис сброса или задержку, а не «размывают» тренд на десять секунд. Цвет и текст аварии - по регламенту цветов.

Калибровка на HMI: когда можно, когда нельзя

Имеет смысл вынести на экран наладчика коэффициент K и смещение B (или две точки 4/20 мА) с записью в журнал и ограничением диапазона, если на объекте так принято обслуживать датчики без ноутбука. Не имеет смысла давать оператору «подкрутить ноль», чтобы тренд совпал с манометром: через смену пороги аварии перестанут соответствовать технологическому регламенту.
После любой калибровки на FAT или объекте прогоняют три точки: ~4 мА (низ шкалы), середина, ~20 мА (верх), плюс симуляцию обрыва. Ревизию параметров K/B фиксируют в паспорте канала.

Что проверить в проекте (коротко)

Сверить один канал: сырое AI в отладчике, масштабированное в ПЛК, тег на HMI - одна физика. Убедиться, что Bad при обрыве не превращается в «0 бар». Разделить фильтр для тренда и для аварии. Пороги аварии - в ПЛК с задержкой и гистерезисом. Калибровка на HMI - только по роли и с журналом. Тренд на панели - не единственный инструмент защиты.
Подключение AI и первый опрос - документация СТАБУР, «Первый старт». Экранирование кабеля 4-20 мА в шкафу - пересекается с монтажом и ЭМС, но цифра на экране всё равно начинается с правильного масштаба в ПЛК.

Симптом на тренде - причина - проверка

Симптом на тренде / экране
Вероятная причина
Что проверить
Линия гладкая, авария приходит с заметной задержкой
Тяжёлый фильтр на том же теге, что и порог
Разделить PV_Trend и PV_Alarm; уменьшить фильтр для аварии; задержку аварии задать в FB, не в графике
Линия «пилой», авария мигает
Нет гистерезиса/задержки; слишком лёгкий фильтр
Гистерезис сброса; TON на включение; не дублировать порог на HMI
Ровная линия у верха/низа шкалы, процесс другой
Насыщение датчика или неверный K/B
Поле vs манометр; сырое mA в AI; верх/низ шкалы в ПЛК
Внезапно 0 % или 0 бар при рабочем насосе
Обрыв показан как ноль; Bad не обработан
mA < 3,6; флаг Bad; текст «нет сигнала»; не маскировать нулём
Скачки раз в 1-2 с
Помеха, плохой экран, земля
Кабель, экран, отдельная пара; фильтр медиана; не только HMI
HMI и прибор расходятся на 5-15 %
Разный тег, двойной K/B, ENUM не тот
Один тег в ПЛК; карта Modbus; сравнить в Online
Тренд отстаёт от ручного прибора на минуты
Фильтр + архив SCADA с шагом
Период опроса; фильтр ПЛК; не путать с задержкой архива
После калибровки на HMI «поплыло» всё
K/B только на экране, ПЛК старый
Где хранится калибровка; журнал; синхрон с AI config
Обрыв не виден, «норма» зелёная
Авария обрыва не заведена; Bad игнор
SensorFault в ПЛК; цвет предупреждения; приёмка FAT
На стенде OK, на объекте шум
Длинный кабель, отличие заземления
Схема петли; EMC; пороги обрыва на месте

Вопросы с пуска

Можно ли сгладить только линию графика в MasterSCADA?
Для глаза - да; для защиты процесса - нет, авария остаётся в ПЛК по быстрому значению.
Какой фильтр «правильный»?
Тот, при котором оператор узнаёт процесс, а авария срабатывает по регламенту. Цифры подбирают по записи тренда при реальном пуске насоса/клапана.
4 мА показывает -5 % - это норма?
Только если так задумано в масштабе и подписано; иначе оператор не доверяет экрану.

Внутренняя перелинковка

Обсуждение