Блок проверки на достоверность по аналоговому каналу

Общая структура функционального блока проверки на достоверность по аналоговому каналу приведена на рисунке 75.

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 75 Общая структура блока ПНД аналогового сигнала

Входы: on – включение/отключение проверки на достоверность (тип BOOL), X – входной аналоговый сигнал (тип REAL), mspeed (тип REAL) – максимальная допустимая скорость изменения сигнала (тип REAL) для обнаружения случайного выброса или провала, L_limit (тип REAL) – минимальный уровень сигнала, ниже которого фиксируется обрыв.

Выходы: X1 (тип REAL) – выходной сигнал, error (тип BOOL) – признак ошибки (выброс, провал или обрыв зафиксирован).

Описание: функциональный блок реализован на языке ST (рисунок 75) и его принцип работы заключается в периодическом измерении скорости изменения сигнала за определенный период времени и сравнении этой скорости с допустимой скоростью изменения сигнала. Предполагается, что контролируемый объект обладает некоторой инерционностью и физически сигнал не может резко измениться за короткое время.

Если скорость не превышает допустимую (mspeed) и уровень сигнала больше чем минимальный порог (L_limit), то значение сигнал передается на выход (X1). В противном случае на выходе запоминается предыдущее значение сигнала и выставляется сигнал ошибки error=TRUE. Как только сигнал восстановится (то есть скорость изменения mspeed относительно запомненного сигнала станет допустимой и уровень сигнала станет выше L_limit, ошибка error сбросится, и входной сигнал снова начнет передаваться на выход, т.е. отслеживать входное значение. Реализация функционального блока представлена на рисунке 76.

Описание программы, реализованной на языке ST (рисунок 76): первая строка кода проверяет условие установки входа блока ON и, если он сброшен, присваивает значению выхода блока X1 значение входа блока X (режим повторителя). Если вход ON установлен, то выполняется ветка ELSE (строки с 5-ой по 17-ую), и блок переходит в режиме защиты. Строки 5, 6, 7, 16, 17 организуют бесконечный цикл, который повторяется каждые 20мс[31]. Внутри цикла (строки 8-15) сравнивается текущая скорость изменения сигнала с допустимой (строка 8) и, в зависимости от условия (8) выполняется ветка нормальной работы (9-11) или выполняется защита и формируется признак отказа канала (13-14). Точнее отказ не аппаратной части канала, а этот признак отказа говорит о вероятности появления ложного значения.

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 76 Программа блока ПНД аналогового сигнала

ПНД – программа проверки на достоверность аналогового сигнала, поступающего с ОУ.

Интервал пересчета блока в примере равен 20мс. В реальном оборудовании это значение должно учитывать время цикла контроллера. При моделировании алгоритма оно может быть выбрано произвольно, как в примере.

Данный блок может также быть реализован в виде программы (Program), а не функционального блока. Это позволит присвоить этой программе задачу (Task) с заданным временем пересчета. Тогда реализация алгоритма упрощается и строки 5, 6, 7, 16, 17, организующие цикл, не нужны.

Реализация мультивибратора

Мультивибратор это функциональный блок (или алгоритм), генерирующий последовательность прямоугольных импульсов. Этот алгоритм необходим для реализации мигания световой сигнализации с заданной частотой. В библиотеке алгоритмов его не оказалось. Поэтому был разработан алгоритм мультивибратора MUV, аналогичный алгоритму МУВ. Общая структура алгоритма представлена на рисунке 77.

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 77 Общая структура мультивибратора

Входы: Cp (тип BOOL) – команда включения/выключения мультивибратора, T1 (тип TIME) – время высокого уровня (сигнала), T2 (тип TIME) – время низкого уровня (паузы).

Выход: D (тип BOOL) – серия прямоугольных импульсов (или иногда пишут сигналы типа меандр, это так для наукообразия).

Графическое пояснение работы алгоритма мультивибратора приведено на рисунке 78.

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 78 Пояснение работы мультивибратора

Т1 – время сигнала. Т2 – время паузы. True – уровень логической единицы. False – уровень логического нуля. Единица измерения времени, обычно, задаётся в секундах. В контроллере Р-130 это время может быть в секундах, минутах и часах. И реализовано это очень просто [47].

Реализация функционального алгоритма мультивибратора[32] на языке FBD представлена на рисунке 79.

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 79 Реализация функционального блока мультивибратора на языке FBD

Описание: в блоке использованы два таймера с задержкой на включение (TON_1, TON_2). Таймер TON_1 отвечает за длительность высокого уровня импульса, а таймер TON_2 – за длительность низкого уровня. Дополнительно используется переменная Cp, запрещающая или разрешающая работу мультивибратора через блок AND (3) и AND (4). Блок AND (4) нужен для мгновенного снятия выходного сигнала при сбросе Cp.

Реализация нуль-органа

Алгоритм с пороговым контролем называют нуль-органом, общая структура которого показана на рисунке 80.

В основу положен алгоритм НОР из библиотеки контроллера Р-130

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 80 Общая структура алгоритма нуль-органа

Входы: X (тип REAL) – входной аналоговый сигнал, VG (тип REAL) – верхняя допустимая граница, NG (тип REAL) – нижняя допустимая граница, dX (тип REAL) – гистерезис нижней/верхней границ.

Выходы: D1 (тип BOOL) – сигнализирует о выходе за верхнюю границу, D2 (тип BOOL) – сигнализирует о выходе за нижнюю границу.

Реализация функционального алгоритма нуль-органа на языке FBD в среде CoDeSys приведена на рисунке 81.

Блок проверки на достоверность по аналоговому каналу - student2.ru

Рисунок 81 Программа нуль-органа на языке FBD

Описание: ключевыми элементами схемы являются RS-триггеры: RS_1, RS_2. Триггер RS_1 устанавливается при нарушении верхней границы за счет выполнения условия блока GT(1) (проверка на "больше"), а триггер RS_2(8) – при нарушении нижней границы за счет выполнения условия блока LT(7) (проверка на "меньше"). Сбрасываются триггеры RS_1, RS_2 при условии, что сигнал вошел в допустимый диапазон и преодолел гистерезис границы (блок вычитания SUB(2), сложения ADD(5) и блоки сравнения LT(3), GT(6)).

Наши рекомендации