Одноканальная программа сигнализации
Блок сигнализации по одному дискретному и одному аналоговому каналам приведено на рисунке 96.
Рисунок 96 Блок одноканальной сигнализации
Описание входов и выходов программы:
VAR_INPUT
Input_D: BOOL; (*Входной дискретный сигнал *)
Input_A: REAL; (*Входной аналоговый сигнал *)
T: TIME; (*Время проверки на достоверность сигнал*)
HL: REAL; (*Верхняя допустимая граница сигнала*)
LL: REAL; (*Нижняя допустимая граница сигнала*)
Hust: REAL; (*Гистерезис нижней/верхней границ сигнала*)
On: BOOL; (*Вход включения/отключения проверки на достоверность*)
Input_Xmin: REAL; (*Нижняя граница для определения обрыва сигнала*)
A: REAL; (*Максимальная скорость изменения сигнала*)
Light_High: TIME; (*Длительность импульса световой сигнализации*)
Light_Low: TIME; (*Длительность паузы световой сигнализации *)
Input_Kvint: BOOL; (*Вход для квитирования*)
Input_Check: BOOL; (*Вход для проверки работоспособности сигнализации*)
END_VAR
VAR_OUTPUT
Out_soud: BOOL; (*Выходной сигнал включения звука*)
Out_light: BOOL; (*Выходной сигнал включения света*)
Out_Check_Er: BOOL; (*Выходной сигнал ошибки измерительного канала*)
D_Kvint: BOOL; (*Выходной сигнал для сброса кнопки квитирования*)
END_VAR
Реализация программы на языке CFCприведена на рисунке 97.
Рисунок 97 Программа одноканальной сигнализации
Описание работы программы.
Программа сигнализации по одному дискретному и одному аналоговому каналам реализована на блоках, описание которых приведено выше.
Рассмотрим сигнализацию по дискретному каналу. На вход подаётся дискретный сигнал Input_D – это сигнал, свидетельствующий о том, что где-то в системе произошла ошибка, о которой нужно сигнализировать оператору. Этот сигнал подаётся на блок защиты от «дребезга» и кратковременного исчезновения сигнала protection(0). На этот же блок подаётся время нечувствительности блока к изменению входного сигнала T. Т.е. блок protection(0) повторит изменение сигнала Input_D, если его длительность больше T, а кратковременные импульсы или исчезновения сигнала проигнорируются. Сигнал с выхода D1 через блок OR(1) формирует сигнал Alarm. Это сигнал тревоги, который поступает на вход SET триггера RS(8) и устанавливает его в логическую единицу. Далее логическая единица с выхода Q1 триггера RS(8) подаётся через блок OR(9) на выход программы Out_sound т.е. включается звуковая сигнализация. Также логическая единица с выхода Q1 триггера RS(8) подаётся на вход включения мультивибратора blink(13) и на логический элемент AND(14) и инверсно на логический элемент AND(17). Таким образом, включается мультивибратор, который начинает формировать последовательность прямоугольных импульсов длительность и пауза, которых определяется временными параметрами Light_Low и Light_High. Так как на вход логического элемента AND(14) подана логическая единица, элемент будет повторять последовательность прямоугольных импульсов с мультивибратора. Эта последовательность через блок OR(15) поступает на выход программы Out_light, формируя мигающую световую сигнализацию.
Таким образом, реализуется звуковая и световая сигнализация об ошибке по дискретному каналу.
Как только пропадёт сигнал Alarm, т.е. станет равным логическому нулю, то его инверсный сигнал запустит одновибратор TON(11), который через время T сформирует логическую единицу на своём выходе Q. Логическая единица с выхода Q поступает на двухходовой элемент ИЛИ, который в программе обозначен OR(12). С выхода логического элемента OR(12) сигнал поступает на вход сброса триггера RS(8). При сбросе триггера RS(8) выход Q1 примет состояние логического нуля. Далее сигнал с выхода Q1 отключит звуковую сигнализацию, выключит мультивибратор blink(13) заблокирует повторение сигнала на логическом элементе AND(14), тем самым отключив и световую сигнализацию. Кроме того сигнал с одновибратора TON(11) также подаст логическую единицу для формирования выходного сигнала D_Kvint – сигнал для сброса кнопки квитирования, и логический ноль на вход логического элемента AND(17) – для отключения состояния квитирования.
Рассмотрим сигнализацию по аналоговому каналу. Аналоговый сигнал подаётся на вход функционального блока защиты от обрыва, провала и выброса A_Check(4). Данный блок формирует аналоговый сигнал с соответствующей защитой. Защищённый сигнал поступает на блок NOR(5) – функциональный блок проверки выхода за технологические границы. Если сигнал выходит за эти границы, то формируются сигналы ошибки OutHigh и OutLow. Эти сигналы формируют сигнал тревоги Alarm через логический элемент OR(1). После это алгоритм работы системы повторяет работу с дискретным сигналом. Кроме того, у блока A_Check есть выход Error, который сигнализирует о резком изменении аналогового сигнала или его обрыве. Этот сигнал поступает на логический элемент AND(6), куда также поступают инверсные сигналы о выходе за технологическую границу. Таким образом, если в системе измерения возникли ошибки, а сигнал в пределах технологических границ, то будет сформирован отдельный сигнал, который поступает на выход программы Out_Check_Er.
Также в программе реализована функция проверки работоспособности сигнализации через вход Input_Check. При подачи логической единицы на этот вход через логический элемент OR(9) включается звуковая сигнализация, а через логический элемент OR(15) загорается ровным светом световая сигнализация. При подаче логического нуля на вход Input_Check система вернётся в своё предыдущее состояние.
Ещё в программе реализована функция квитирования – возможность оператору отключить звуковой сигнал, но при этом оставить ровную световую сигнализацию. Для этого предназначен вход Input_Kvint. При подачи логической единицы на этот вход через логический элемент OR(12) устанавливает триггер RS(8) в нулевое состояние. Тем самым выключается звуковая сигнализация и выключается мультивибратор. Но с выхода Q1 триггера RS(8) инверсный сигнал поступает на логический элемент AND(17) на этот же элемент приходит инверсный сигнал тревоги Alarm. Т.е. если триггер сброшен, а ошибка ещё есть, то логический элемент AND(17) сформирует логическую единицу, которая включит ровным светом световую сигнализацию. Как только сигнал тревоги пропадёт, то свет тоже выключится.
Графическая иллюстрация программы сигнализации по одному дискретному каналу показана на рисунке 98.
Рисунок 98 Графическая иллюстрация работы программы сигнализации по дискретному каналу
При наличии сигнала ошибки D от системы через время T равное времени нечувствительности сигнала к изменениям сформируется сигнал тревоги Alarm. Этот сигнал включит звуковую и мигающую световую сигнализацию.
Графическая иллюстрация работы программы сигнализации по аналоговому каналу показана на рисунке 76.
При выходе входного аналогового сигнала за одну из технологических границ формируется сигнал признак выхода за технологическую границу, который формирует сигнал тревоги Alarm. После чего включается звуковая и мигающая световая сигнализация. При формировании сигнала квитирования Input_Kvint звуковая сигнализация отключается, а световая горит ровным светом. Как только входной сигнал вернётся в допустимые значения, сигнал квитирования установится в ноль и световая сигнализация выключится. Сигнал тревог и сигналы признаки выхода за технологическую границу тоже установятся в логический ноль.
Рисунок 99 Внешний вид панели оператора для имитации и визуализации сигналов
На рисунке 75 приведен внешний вид виртуального имитатора дискретных и аналоговых сигналов.
На панели оператора имеются инструменты для задания допустимых технологических границ и гистерезиса аналогового сигнала. Также имеются четыре сигнализатора: дискретный сигнал, звуковой сигнал, световой сигнал и сигнал о неисправности канала измерения. При наличии определённого признака загорается нужный сигнализатор.
Динамическое окно предназначено для отображения текущего значения аналогового сигнала после защиты.
Кнопки квитирования и проверка сигнализации предназначены для выполнения соответствующих функций.
Таким образом, в системе CODESYS 2.3 можно реализовать программу технологической сигнализации, при отладке программы, имитировать нарушения и различные ситуации (обрывы, выбросы и провалы). Имитатор сигналов позволяет изменять в режиме реального времени состояние дискретного сигнала, путём нажатия кнопки, а значение аналогового сигнала задаётся изменением положения ползунка.
Рисунок 100 Графическая иллюстрация программы сигнализации по аналоговому каналу