Последовательность разработки алгоритма сигнализации
В схеме из книги Нестерова А.Л. [20] перечислены основные функции, которые должна поддерживать сигнализация. Конечно, я думаю, что у меня несколько отличается реализация, т.к. трудно вникнуть в мысли другого разработчика.
Рисунок 14 Функциональная схема сигнализации
На рисунке 14 и Рисунок 15 приведена структурная схема алгоритма сигнализации. Попробуем последовательно разработать алгоритм сигнализации.
Обычно современные начальники требуют быстро и просто. На рисунке 16 представлена самая простая структура алгоритма сигнализации. Будем считать, что сигнализация будет срабатывать тогда, когда дискретные сигналы D1 или D2 будут принимать единичное состояние. Физически это могут сигналы с датчиков уровня. Как только уровень достигнет допустимого максимума, т.е. верхней границы, то должна появиться звуковая и световая сигнализация.
Вы скоро убедитесь, что такая простая схема сигнализации имеет много недостатков. Шаг за шагом мы будем с вами идти к намеченной цели: устранять недостатки и приближаться к технологической сигнализации повышенной надёжности. Под надёжностью здесь понимается сведению к минимуму ложных срабатываний, не отражающих реальное состояние ОУ. Контроллеры могут быть другими, лишь бы у них была соответствующая библиотека алгоритмов [18; 47; 40].
Рисунок 15 Структурная схема алгоритма сигнализации
Мультивибратор (МУВ) формирует серию прямоугольных импульсов (иногда их называют сигналы типа меандр). Т.е. после МУВ непрерывно следует последовательность то «1», то «0». Единичный сигнал называют импульсом, а нулевой – паузой. Длительность импульса и паузы обычно задают в мультивибраторе. Как вы знаете, на выходе элемента ИЛИ появляется тогда «1», когда на входе есть хоть одна «1». Ноль на выходе элемента ИЛИ будет только тогда, когда на входе все сигналы равны «0». У элемента И на выходе будет единица только в одном случае, когда на входе все сигналы примут состояние «1». Кругляшек на первом входе второго элемента И2 обозначает инверсию (рис.17). Инверсия – это операция НЕ. Суть операции НЕ очень проста. Если перед инверсией состояние дискретного сигнала «1», то после инверсии – «0». И наоборот, если «0», то после инверсии сигнал принимает состояние «1». При появлении логической единицы на входе Set триггера он устанавливается в единичное состояние, т.е. запоминает входную единицу. Сирена начинает гудеть, т.е. появляется звуковая сигнализация. В этот момент по второму выходному каналу появляется мигающий свет (световая сигнализация). В этом случае говорят, что сработала сигнализация, которая сообщает о нарушении технологического режима. В нашем примере уровень продукта достиг верхней границы (ВГ).
Рисунок 16 Структура простого алгоритма сигнализации
D1, D2 – дискретные сигналы. СRES – команда сброса триггера (ТРИ). Set – команда установки триггера.
Предположим, что требуется контролировать уровень в двух резервуарах. При достижении уровня, равного верхней границы (ВГ) должна сработать сигнализация. В каждой ёмкости на верхней границе установлен датчик уровня. При достижении жидкости верхней границы в датчике контакты замыкаются и формируется дискретный сигнал, который в контроллере воспринимается, как логическая единица. Допустим, по первому каналу пришло нарушение, т.е. D1=«1». В данном случае нарушением будем считать единичное состояние сигнала. Наш триггер работает по уровню [47]. Появилась «1» он её запомнил, т.е. на выходе триггера появилась «1» — появился звук. Сигнал с триггера поступает на первый вход первого элемента И1. На второй вход И1 поступает сигнал с мультивибратора (МУВ) и при появлении «1» с МУВ, сигнал на выходе И1 появится, т.к. на входе будут две логические единицы. Как только с МУВ придёт «0», то на выходе И1 тоже будет «0». Этот сигнал с выхода И1 поступает на первый вход элемента ИЛИ2. На втором входе элемента ИЛИ2 в этой ситуации будет «0», который не влияет на выходной сигнал элемента ИЛИ2. Поэтому свет то появится, то исчезнет, т.е. будет мигать. Казалось бы всё работает, как должно быть (см. Основные функции блока сигнализации, п.1.1). Но нет. Такая схема имеет ошибки. Подумайте сами, где ошибки. Если, анализируя, сообразишь, то молодец[21]. Значит не всё потеряно, серое вещество не отравлено играми, тупой музыкой и телевизором.
Что, бедненький, устал готовое глотать. Это, конечно, не в бирюльки играть. Да, настоящая учёба – это большой труд. Учись, не ленись, как говорил Пётр I, не жалея живота своего. Но зато, какая гордость и уверенность появится у вас в душе, когда осилишь эти бастионы науки. Как будут тобой гордиться твои родные и друзья. Да и работу будет легче найти. Продолжим. Итак, что можете сказать? В каких случаях, предложенный алгоритм сигнализации по двум дискретным каналам, будет работать не правильно. Да не спешите глядеть ответ. Ведь зачем дана природой вам голова, это же не ретранслятор или копировальное устройство. Подумайте. Не бойтесь, что ошибётесь, рассуждайте, спорьте, ищите истину. Преподаватель в это время находится в «тени». Конечно, если голова долго не работала, то включить её достаточно трудно, но, как показывает практика, можно. Было бы желание.
«Там, где большинству алгоритмистов-любителей кажется, что алгоритм готов, профессионал понимает, что тяжёлая и утомительная работа только начинается.»
Дж. Форсайт