Операторы жаловались, что в ночную смену линия стабильно встает в аварию. В логе ПЛК все выглядит железобетонно: “сработал концевик ограждения”. Только к ограждению никто не подходил, датчик исправен, механика целая. Знакомая история, потому что это не про “плохой датчик”, а про то, как реальный цех умеет превращать аккуратный сигнал в хаос. И если вам нужно потом жить с этим в эксплуатации, то обработка сигналов перестает быть мелочью и становится фундаментом.
В автоматизации мы часто разговариваем о протоколах, SCADA, архитектуре, кибербезопасности. Но если входные данные “плывут”, все верхние уровни становятся красивой графикой на стене. Поэтому разберем два мира: дискретный (где вроде бы есть только 0 и 1) и аналоговый (где “чувства” системы постоянно дрожат и шумят). И главное – что именно делать на практике, чтобы ПЛК не принимал помеху за событие.
Дискретный сигнал не бинарный, пока вы не доказали обратное
Новички обычно воспринимают дискрет как истину в последней инстанции: есть 24 В – значит “1”, нет – значит “0”. В учебнике так и есть. В реальности между этими состояниями живет “серая зона”, и именно там рождаются фантомные срабатывания.
Главная проблема в том, что дискретный вход ПЛК – это не философия, а конкретная электрическая схема с порогами. Стандарты вроде IEC 61131-2 задают типы входов и уровни, при которых вход обязан считаться “единицей” или “нулем”. Но если на длинной линии из-за емкости кабеля, утечек датчика или наводок напряжение зависает где-нибудь посередине, вход уже не обязан быть предсказуемым. Он может “дергаться” как ему удобнее, особенно если рядом включился частотник или сварка.
Дребезг контактов: микросекунды, которые превращаются в двадцать изделий
Механический концевик, кнопка, реле – все это железо, которое замыкается не идеально. В момент срабатывания контакт физически подпрыгивает, искрит, вибрирует. Для глаза это мгновение, для ПЛК с быстрым циклом – целая серия переключений. Итог выглядит комично: вы считали одну коробку на конвейере, а система посчитала двадцать.
Лечится это не “магией в коде”, а дисциплиной. В идеале часть грязной работы делает сам модуль ввода (аппаратные RC-фильтры помогают), но на программном уровне фильтрация почти всегда обязательна: задержки TON/TOF или отдельные блоки DEBOUNCE. Важно только помнить простую вещь: фильтр – это всегда компромисс. Слишком большой – начнете “поздно видеть” событие. Слишком маленький – дребезг пролезет обратно.
Длинные линии и “призраки”: когда кабель становится конденсатором и антенной
История с ночными авариями чаще всего про трассу. Длинный кабель имеет емкость, а емкость умеет держать заряд. Добавьте утечки твердотельных датчиков и электромагнитные наводки – получите то самое зависание в “серой зоне” порядка 7–10 В, где вход уже не понимает, что ему делать. В логике вы видите честный “1”, а в физике это просто остаточное напряжение и наведенный мусор.
Решения здесь приземленные: нагрузочные резисторы (подтяжка к нулю), грамотная прокладка трасс, разнос силовых и сигнальных линий, а иногда и пересмотр архитектуры – чтобы не тащить “слабый” сигнал на 150 метров до шкафа, а оцифровать его ближе к месту.
Когда обычный вход “не успевает”: импульсы, энкодеры и счетчики в железе
Есть класс задач, где проблема не в помехах, а во времени. Если вы ловите импульсный расходомер или энкодер, частота может легко уйти в килогерцы. А цикл программы ПЛК у вас, допустим, 10 мс. Это означает, что вы физически не увидите большинство импульсов: они появятся и исчезнут между опросами.
Поэтому такие вещи считают не в логике, а аппаратно – через HSC (high speed counters). Они живут на уровне “железа”, независимо от основного цикла, и аккуратно складывают импульсы в регистр. ПЛК потом забирает готовое число – и вот это уже инженерно надежно.
Аналоговые сигналы: “органы чувств”, которые всегда дышат
Если дискрет – это логика, то аналог – это реальность: давление, температура, уровень, расход. Реальность непрерывна, а ПЛК цифровой. Значит, вы в любом случае делаете оцифровку и дальше живете с ее ограничениями: шумами, разрядностью АЦП, сопротивлением проводов и тем, как устроена “земля” на объекте.
И вот здесь типичная ошибка: инженер ожидает от аналогового входа “идеальную цифру”, а потом удивляется дерганью привода или ложным авариям по порогу. Аналоговый сигнал почти никогда не стоит на месте. Он слегка плавает даже на хорошем датчике, а в цехе – тем более.
4–20 мА против 0–10 В: почему споры давно закончились
Напряжение на длинных проводах падает. Это закон Ома, а не мнение. Плюс высокоомный вход по напряжению отлично собирает помехи, потому что фактически превращается в антенну рядом с частотниками и силовыми шинами. Поэтому в промышленности “золотой стандарт” – токовая петля 4–20 мА: ток одинаков по всей цепи, а стойкость к помехам заметно выше.
Есть еще один бонус, который любят эксплуатационщики: диагностика. 0 мА – это почти всегда обрыв или неисправность. А вот 0 В может быть и “нормальный ноль”, и “кабель умер”. Поэтому там, где можно выбирать, лучше выбирать ток.
Разрядность АЦП: где полезна, а где превращается в генератор случайных чисел
Маркетинговая фраза “16 бит” звучит красиво, но сама по себе ничего не гарантирует. Да, больше бит – больше ступенек дискретизации. Но если у вас шум в линии “съедает” младшие разряды, вы получаете не точность, а дрожь последних цифр. Иногда честные 12 бит с нормальной схемотехникой и экранированием дадут более стабильное управление, чем 16 бит на плохой линии.
И это важный психологический момент: в автоматизации не нужно максимизировать параметры “по паспорту”. Нужно, чтобы измерение было соразмерно задаче и качеству линии.
Гальваническая развязка: защита от земляных петель, которые никто не видит
Один из самых дорогих сюрпризов – разность потенциалов между “землей” датчика и “землей” шкафа. Датчик давления может быть заземлен на трубопроводе в одном цехе, а ПЛК – в другом здании. Между этими точками бывает несколько вольт, а при авариях и больше. Если развязки нет, ток пойдет не туда, куда вы планировали: через землю, экраны, общие проводники. В лучшем случае получите искажения, в худшем – сгоревший входной каскад.
Поэтому развязка – это не “излишество для богатых”, а страховка от реальной физики объекта. Поканальная – круто, но дорого. Групповая – компромисс. Главное, чтобы решение было осознанным, а не “как получилось”.
От raw value к инженерной величине: обработка, которая отличает надежный проект
Получить сырое число из регистра – это только начало. Дальше вы переводите его в физику, и тут начинаются “мелочи”, из которых складывается надежность.
Первое – масштабирование и проверка “выхода за рамки”. Если датчик вдруг выдал 22 мА, тупой блок просто пересчитает это в “112 °C”, и ваш ПИД решит, что пора тушить пожар. Хороший код сначала проверяет статус модуля и понимает разницу между “реально высокая температура” и “датчик в аварии”, а затем аккуратно ограничивает значение (Clamp), чтобы управление не сходило с ума.
Второе – фильтрация. Аналоговый сигнал “дышит”, и если вы этим дыханием напрямую управляете заслонкой или насосом, привод быстро покажет характер. На практике используют простые и надежные методы: скользящее среднее (понятно, но дает задержку), апериодическое звено PT1 (хорошо имитирует инерцию), медианный фильтр (очень выручает от импульсных помех типа “иголок”).
Третье – гистерезис. Никогда не стоит делать прямой порог “если больше 5.0 – выключить”. На шуме вы получите “пулемет”. Правильная логика всегда с мертвой зоной: выключили при 5.2, включили обратно при 4.8. Это скучно, но именно скука делает систему стабильной.
Архитектура: ближе к датчику, дальше от помех
В старой школе все кабели тащили в центральный шкаф, а потом героически боролись с помехами. Сейчас чаще выигрывает другой подход: оцифровывать сигнал рядом с агрегатом и дальше передавать цифру по нормальному промышленному протоколу. Тогда аналоговый участок – 2–3 метра, а не 150. И это резко повышает качество данных.
Один раз упомяну нативно: модульная архитектура СТАБУР как раз удобна для таких “островов” ввода-вывода, когда вы собираете компактный узел у оборудования и дальше отправляете данные по Ethernet, вместо того чтобы тянуть тонкую аналоговую “нервную систему” через весь цех.
Итог: надежность начинается не с SCADA, а с честного сигнала
Обработка сигналов в АСУ ТП – это не раздел “для новичков”. Это основа, на которой держится все остальное. Дискреты врут из-за дребезга, емкости и наводок. Аналоговые каналы “плывут” из-за шума, земли и неправильной обработки. И если вы закрываете эти вопросы на проектировании, система потом ведет себя как правильный промышленный объект: работает и не напоминает о себе по ночам.
Автор: Дмитрий Стабуров, инженер АСУ ТП