Любая измерительная информация, представленная в аналоговом и дискретном виде, поступающая в контроллер, не всегда обладает достаточной достоверностью. Это связано, прежде всего, с наличием различных сбоев в измерительных каналах. Все эти сбои могут привести к преждевременному или ошибочному срабатыванию заложенной в контроллер программы, а это является недопустимо, в особенности на опасных объектах управления. К таким ситуациям можно отнести: ложное срабатывание сигнализации, ложное формирование команд управления. Каждая из перечисленных ситуаций может привести к выходу из строя дорогостоящего оборудования, а как следствие к серьезным финансовым затратам на предприятии [1].
Основной целью данной статьи является исследование ситуаций, возникающих в измерительном канале и предложение алгоритмов, позволяющих повысить надежность получаемой информации.
В аналоговом измерительном канале могут, появляется следующие сбои (рис. 1, - допустимое значение сигнала): «выброс», «провал», обрыв. Последний сбой можно отнести к отказу измерительного канала [2].
Рисунок 1 – Виды ситуаций в измерительном канале
«Выбросом» будем называть ситуацию, когда аналоговый сигнал кратковременно возрастает и возвращается к своему значению.
«Провалом» будем называть ситуацию, когда значение аналогового сигнала кратковременно уменьшается и возвращается к своему действительному значению.
«Провалы», «выбросы», могут возникнуть при перебоях в питании датчиков, наличии различных наводок в измерительных каналах. Наводки могут быть обусловлены отсутствием экранирования проводов, грозозащиты и пролегание проводок в местах с электромагнитными наводками.
«Обрывом» будем называть ситуацию, когда аналоговый сигнал перестает поступать в контроллер. То есть, если унифицированный токовый входной сигнал 4…20 мА, то за «обрыв» будет считаться его отрицательное значение. «Обрыв» может возникнуть в следующих ситуациях: если полностью отказал датчик, произошел обрыв провода, а так же в редких случаях, отказ модуля УСО в контроллере, отвечающего за обработку входной аналоговой информации.
В случае дискретных сигналов, могут возникать два сбоя: «дребезг» и кратковременное исчезновение сигнала.
Рисунок 2 – Ситуации в дискретном канале ( и - интервалы возникновения «дребезга», и интервалы кратковременного исчезновения сигнала)
Под «дребезгом» понимается случайное, кратковременное появление логической единицы в дискретном канале (рис. 2).
Большинство из данных ситуаций обрабатывается и устраняется в специализированных модулях, предлагаемых различными производителями контроллеров высокого класса(Сименс). Все эти ситуации можно обрабатывать и на программном уровне, тем самым отпадает надобность платить за дополнительные модули и занимать дополнительные места в стойке для контроллера.
Начнем с рассмотрения сбоев, возникающих в дискретных каналах. Для исключения проникновения ложных дискретных сигналов в систему контроля и регулирования, можно реализовать защиту добавив в программу 3 функциональных блока: 2 таймера (с задержкой на включение) и RS-триггер. На рис. 3 представлена реализация защиты в Codesys 2.3 на языке FBD.
Рисунок 3 – Защита от дребезга и кратковременного исчезновения дискретного сигнала
Работа защиты от «дребезга» заключается в следующем: при появлении единичного сигнала в переменной Din, Timer_1 начинает отчет времени до включения выхода Q. Время устанавливается равное 3 секундам, можно и меньше. Если в течение 3 секунд дискретный сигнал не изменялся, то на выходе Q таймера Timer_1 установиться единичный сигнал, который будет запомнен в триггере и записан в переменную Dout. В противном случае, если единичный сигнал будет появляться и пропадать, таймер будет постоянно сбрасываться и его выход не включится [3].
Защита от кратковременного исчезновения сигнала работает следующим образом: триггер Trigger запомнил пришедший сигнал и что бы сбросить эту память, необходимо установить на входе Rеset триггера логическую единицу. Данный вход соединен с выходом таймера Timer_2, который начинает работать при отключении входного дискретного сигнала (инверсия на входе In таймера). Если дискретный сигнал отсутствовал более 3 секунд, произойдет сброс триггера и сигнал прекратит поступать в программу.
Защита аналогового сигнала от «выбросов» и «провалов» сводится к фильтрации входной аналоговой информации с помощью стандартных блоков экспоненциального сглаживания или фильтрации пиков, которые имеются в большинстве сред программирования контроллеров.
Алгоритм фильтрации пиков построен на следующем предположении: любой объект управления имеет запаздывание и скорость роста параметра, за такт просчета контроллера, не может быть больше определенного значения Limits [4].
Реализация на языке ST:
IF ABS(INtek-Qtek) <= Limits THEN
Out:= INtek;
ELSIF (INp-Qp)<=Limits THEN
Out:=Qtek;
ELSE
Out:=INtek;
END_IF;
Производим сравнение значения входного параметра INtek со значением выхода из блока проверки, на предыдущем такте просчета Qtek. Если разница меньше Limits, на выход блока Out подаем текущее входное значение. Иначе, если разница показаний предыдущего значения параметра INp со значением выхода Qp(запомненного два такта назад) из блока, меньше Limits, то на выход Out подаем Qtek. Иначе на Out подается текущий входной сигнал.
Так же можно использовать алгоритм ограничения роста сигнала. Реализация на языке ST:
Qp:=Q;
IF ABS(IN-Qp)>Limits THEN
IF (IN-Qp)>0 THEN Q:= Qp+Limits*1;
ELSIF (IN-Qp)<0 THEN Q:= Qp+Limits*(-1);
ELSIF(IN-Qp)=0 THEN Q:= Qp+Limits*(0);
END_IF;
ELSE Q:=IN;
END_IF;
Если разница между входным сигналом IN и выходным Qp отлична от заданного ограничения роста данного сигнала, то выходной сигнал Q будет формироваться по формуле, в зависимости от значения разницы между IN и Qp.
Алгоритм распознавания обрыва может быть следующим: производим запоминание значения сигнала IN до его физического обрыва. Реализация заключается во внесении в дополнительную переменную INm, через определенный промежуток времени Т значения сигнала, далее осуществляется сравнение значения сигнала с некоторым числом LIMITS, которое характеризует минимальную границу сигнала для данного контроллера, в зависимости от погрешности АЦП. Если происходит обрыв, в программу передается последнее запомненное значение сигнала и выдается сообщение об аварии Alarm.
Реализация на языке ST:
Timer(IN :=TRUE, PT:= T#0.5s);
IF In>LIMITS THEN
Alarm:=FALSE;
INout:=In;
IF Timer.Q=TRUE THEN
INm:=In;
Timer(IN :=FALSE, PT:= T#0.5s);
END_IF
ELSE
Alarm:=TRUE;
INout:=INm;
END_IF;
В статье были рассмотрены основные сбои в аналоговых и дискретных измерительных каналах. Предложены программные алгоритмы, позволяющие не допустить прохождение сбоев в программу. Реализация этих алгоритмов позволит повысить надежность и достоверность получаемой измерительной информации, а так же снизить количество ложных запусков технологического оборудования, аварийные ситуации и нагрузку на регулирующие клапаны.
Литература:
1. Ицкович Э.Л., Трахтенгерц Э.А. Алгоритмы централизованного контроля и управления производством. М.: Советское радио, 1967. 352с.
2. Севастьянов Б.Г. Безударность и надежность систем автоматического регулирования// Приборы и системы. Управление, контроль, диагностика. 2003, №12. С.40-43.
3. Петров И.В. Программируемые контроллеры. Стандартные языки и инструменты. М.: Солон-Пресс, 2003. 256 с.
4. Денисенко В.В. Компьютерное управление технологическим процессом, экспериментом, оборудованием. М.: Горячая линия Телеком, 2009. 608с.