Анализ простого алгоритма сигнализации
Разберём ошибки алгоритма. Итак, одно нарушение у нас есть: D1= «1». Загудела сирена. Её надо сбросить. Оператор пытается это сделать: нажимает кнопку, появляется сигнал Сres=1, который приходит на вход триггера reset. Триггер сбрасывается, сирена прекращается, но как только оператор отпустит кнопку, сирена опять начнёт реветь. Почему? Да потому, что триггер у нас работает по уровню. Нарушение не исчезло: D1= «1», т.е. остался сигнал (уровень) и триггер вновь сработал: запомнил «1». Это первая ошибка.
Рассмотрим следующую ситуацию. Допустим, через некоторое время и во второй ёмкости уровень достиг ВГ. Приходит сигнал D2= «1». По заданию (см. Основные функции блока сигнализации, п.1.1) должно всё повториться: сработать сирена и замигать свет. Но этого мы не заметим, т.к. у нас сирена продолжает орать, а свет мигать. Таким образом, распознать следующее нарушение невозможно. Распознать очередное нарушение будет невозможно и в том случае, если бы наш триггер работал по переднему фронту, и нам удалось бы его сбросить. На первом входе первого элемента ИЛИ1 уже есть единица D1= «1». Приход второй единицы D2= «1» не изменить состояние выхода, т.е. на выходе ИЛИ1 уже есть «1» и единичнее она не станет! Распознать следующее нарушение по такому алгоритму (по такой структуре) невозможно. Это вторая ошибка.
Третья ошибка кроется в не учёте физики явления. По дискретным каналам мы не поставили защиту от «дребезга». На поверхности жидкости в ёмкости возможна рябь, т.е. впадины и вершины волн. Особенно это вероятно при закачке и откачке жидкости. Поэтому на границе сигнал с датчика может периодически изменять состояние с «1» на «0». В этом случае будет также работать сигнализация: то появится, то исчезнет. Уровень достиг, например, ВГ, так зачем же несколько раз сообщать одно и тоже. Это раздражает и мешает работать оператору (оператор быстрее устаёт, возрастает вероятность совершения им ошибок). Вот почему на каждом входе, по каждому каналу должна быть защита.
Четвёртый недостаток. Отсутствует фиксирование нарушений по каналам. В реальной жизни каналов может быть десятки или сотни. Попробуй запомни, когда, какое было нарушение. Затратить на АСУ ТП сотни тысяч или миллионы рублей и бегать с журналом (бумажкой) записывать, что, где нарушено.
Пятый недостаток. Система проектируется очень дубово. Так системы делались 100 лет назад. Техника шагнула вперёд, появились контроллеры с колоссальными возможностями. А мы делаем систему, как на реле: замкнулись контакты – есть нарушение, разомкнулись – нет. Думаю, как было бы горько это видеть академику Глушкову В.М. [8], всей душой болевшего за нашу страну. Принципы разработки АСУ ТП, предложенные в книге Глушкова В.М. [8] и сейчас весьма актуальны.
Шестой недостаток. Система, реализующая такой простой алгоритм, не распознаёт сбои и отказы самой системы, например, измерительного канала от технологических нарушений [48; 41; 42].
Седьмой недостаток. Отсутствует защита от несанкционированного доступа в программу. Любой может изменить технологические границы, величину гистерезиса и т.д. Это должно касаться как контроллера, так и SCADA-системы (системы на ПЭВМ).
Восьмой недостаток. Не предусмотрена визуализация и хранение информации на верхнем уровне, т.е. на ПЭВМ. При этом должен быть соблюдён принцип единой информационной базы [7]. Если администратор базы данных изменил технологические границы в базе данных на ПЭВМ, то эти границы должны автоматически измениться и в контроллере. Аналогично и для контроллера. Если администратор, т.е. специалист, имеющий максимальные права доступа в систему, изменил границы или какие-то параметры в контроллере, то эти изменения должны автоматически происходить и на ПЭВМ! Такие требования, конечно, могут реализовать только специалисты, которых сейчас ставится всё меньше[22]. Шарлатаны и дилетанты берутся за любые работы, где пахнет деньгами и, практически, не несут никакой ответственности.
Девятый недостаток. Нарушен принцип непрерывного развития системы [8]. Не предусмотрено резервирование каналов, возможность наращивания системы. В нашем случае показывается суть алгоритма, без учёта особенностей реальной эксплуатации и обслуживания. Поэтому и перечисляются ряд недостатков, чтобы показать студентам, что учебный вариант (можно назвать теоретический) весьма далёк от реального. Но с него надо начинать, как с таблицы умножения. В учебном варианте, чтобы добавить каналы или функции, придётся вновь переделывать всю программу. Для обучения это может быть и хорошо, но в реальной жизни абсолютно неприемлемо.
Десятый недостаток. Не учитывается принцип новых задач. Для современных систем просто фиксировать нарушения недостаточно. Следует осуществлять прогноз вероятного развития события. Стараться не допустить нарушения. Обязательно должна быть реализована функция «Совет оператору».
Одиннадцатый момент. При реализации следует учитывать последовательность обработки алгоблоков в контроллере. Хаотическая нумерация алгоблоков может приводить к проскакиванию ошибочных результатов, сбоев в работе программы. Сколько же всего интересного. На лекциях делается попытка обратить ваше внимание на эти особенности реализации алгоритмов. На лабораторных работах студенты с большим вниманием и интересом наблюдают работу программы, анализируют ошибки, исправляют их. И когда получают результат, радуются своему очередному успеху. Честно говоря, я тоже радуюсь и горжусь такими студентами.
Наличие документации. Обратим внимание на необходимость разработки полной и качественной документации. Это очень трудоемкая и неблагодарная работа. Если её делать как надо (см. ГОСТы и нормы, перечисленные в перечне литературы в учебном пособии [48]), то по срокам эта работа соизмерима с разработкой системы (современные руководители-неучи и слышать не желают о качественной проектной документации, а особенно их бесит стоимость проектных работ и сроки. Поэтому всё вырезают, сокращают, а потом мы удивляемся, почему крыша рухнула или что-то взорвалось).
Зачем столько перечислено недостатков? Это что всё должны делать студенты? Конечно, НЕТ! Вам надо разобраться в сути готового алгоритма, научиться реализовывать программу на нескольких контроллерах (Р-130 и контроллере ПЛК-154или ПЛК-110, ПЛК-150) с применением двух-трёх языков программирования. Например, программы составляются на языках FBD, CFC и ST [1; 28]. Если вы это осилите и сделаете сигнализацию с прогнозом, то это настоящий трудовой подвиг, вы пройдёте школу интеллектуального мужества.
Вы должны чётко представлять, что такое разработать и внедрить настоящую автоматизированную систему управления и контроля. Даже, исходя из одной задачи АСУ ТП – реализации технологической сигнализации, видно насколько она трудоёмка. И когда очередной «специалист» предложит вам сделать АСУ ТП за месяц под ключ, то желательно обучить его по полной программе. Он будет выплачивать вам неустойку лет десять.
Вообще, представленный на рисунке 16 алгоритм – это пародия на реальную систему сигнализации. Но, что поделаешь, начинать надо с простых базовых решений. Как вы убедились, просто – это не всегда хорошо.