Плохую информацию будем «душить» на входе, не давая ей пройти в систему.
По дискретному каналу под плохой информацией будем понимать появление «дребезга»[23] или кратковременное случайное появление нулевого состояния, когда должна быть единица. Для этого в каждом канале поставим блоки защиты. Блоки защиты по дискретным сигналам на рисунке 19 обозначены DZ1 и DZ2.
Рисунок 19 Структура алгоритма с защитой по дискретным каналам
Вот так шаг за шагом совершенствуется алгоритм, повышается надёжность его работы. Программирование на Ремиконте Р-130 сводится практически к кодировке, а вот на других контроллерах не так всё просто. Приходится создавать самим (пользователю) подпрограммы (алгоритмы): мультивибратор, защиту по дискретному и аналоговому каналу и т.д.
Давайте оживим схему, представленную на рисунке 19. Составим программу на языке функциональных алгоблоков для контроллера Р-130. Загрузим её в контроллер и проверим в работе.
На рисунке 20 представлена структура алгоритма с добавлением входных аналоговых сигналов (Ai1 и Ai2; правильнее обозначить так AI1, AI2[24]). По аналоговому каналу тоже требуется предусмотреть защиту от выброса, провала сигнала или обрыва измерительного канала. Кроме того, сам реальный сигнал «дышит»: детерминированный сигнал имеет случайную составляющую. Устраним ещё одну ошибку, чтобы на границе не было многократных срабатываний сигнализации по одной и той же причине. Защита по аналоговому каналу AZ1 представлена в развёрнутом виде на рисунках 46 и 47. Дискретная защита DZ в развёрнутом виде представлена на рисунке 42. Защита по дискретному каналу только от «дребезга» представлена на рисунке 43. Появился алгоритм нуль-органа НОР. Описание работы алгоритма НОР имеется в кросс-средстве Редитор Р-130 и в пособии [47].
Рисунок 20 Структура алгоритма с аналоговым сигналом
Так шаг за шагом продолжают совершенствовать блок сигнализации: рассуждая, анализируя, корректируя алгоритм и проверяя его работу. Процесс итерационный. Каждый этап работы желательно заканчивать программой и её работой. И Вы увидите, как ваша мысль, воплощённая в программу начинает работать: включать, выключать, выдавать сообщения. Частица вашей души, мысли начинают функционировать уже в железе. Вы дома, а ваша мысль, материализованная в контроллере, продолжает без устали работать.
Следующей функцией, которую мы реализуем, является селективная фиксация нарушений (память), просмотр и сброс этой памяти. Сочувствую вам, вы устали читать. Представьте, насколько трудоёмко было набирать эту методичку в жару, чертить все рисунки. Работать без кондиционера тяжело, но что делать. Был бы у нас на затылочке маленький разъёмчик, вы подключились бы ко мне через коммутатор. И знания и опыт преподавателя быстро бы попали в ваш мозг. Мечта. Да, но пока этого нет, придётся долбить по клавишам.
На рисунке 21 представлена структурная схема алгоритма на два дискретных и два аналоговых канала. В этом алгоритме предусмотрена селективная фиксация нарушений, просмотр памяти нарушений по условию (по нажатию клавиши, формирующей сигнал Cres), автоматический периодический сброс памяти нарушений, ручной или автоматический сброс ТМР2. Обращаем внимание, в сбросе памяти и просмотре предыстории нарушений по каналам используется одна клавиша. Выдача информации оператору минимизирована: его не раздражают и не отвлекают гирлянды светодиодов. Лишняя информация – условно статическая, скрыта, она есть, но хранится в памяти. Информация, которая не несёт ничего нового, должна исчезать с экрана или лицевой панели контроллера. Такая информация только утомляет и притупляет оператора. Она появляется только по просьбе оператора или специалиста по обслуживанию системы. Если всё в норме, то на экране ничего не должно быть. Общение человека с ПЭВМ называют человеко-машинным интерфейсом (MMI или HMI[25]). Это очень важный момент: как и что выдавать, в какой форме, с какой точностью, каким цветом, включать звук, показывать стрелками, показывать прогноз развития событий, выдавать чёткие и ясные советы (иногда команды) при затруднении оператора или в аварийных ситуациях, в каких ситуациях система должна брать управление на себя и не подчиняться оператору (вплоть до физической блокировки в случае умышленных попыток создания человеком аварийной ситуации или несанкционированного доступа к секретной информации) и т.д.
Рисунок 21 Структура алгоритма с защитами и с памятью нарушений
AL1, AL2, AL3 – дискретные сигналы, зафиксированные нарушения по первому, второму и третьему каналам. ТМР1 – таймер задержки сброса памяти зафиксированных нарушений. ТМР2 – таймер периодического автоматического сброса памяти зафиксированных нарушений. Защита DZ3 выброшена, т.к. она дублировала защиту AZ1. Принцип работы нашего таймера соответствует таймеру из библиотеки алгоритмов контроллера Р-130. Работа алгоритма ТМР: структура алгоритма и его применение в качестве защиты от «дребезга» показана на рисунке Рисунок 42 –Рисунок 44.
Мы подошли к программной реализации на контроллерах. Программирование на контроллерах имеет много особенностей [25, 47, 48]. Учёт этих особенностей уменьшит вероятность сбоев и отказов систем, а не только блоков сигнализации. Остановимся на нескольких их них.
Программная часть на микропроцессорном
контроллере делает систему управления более
гибкой и функциональной богатой.