Описание модуль для контроля перепада давления на вентиляторе.
Меня не первый раз выручает мой старый проект под ПР200. Я над ним попотел в свое время. Так случилось, что заказчики спрашивают, могу ли я написать прогу для ПР200 для вентиляции, а я отвечаю, да, и даже она есть у же у меня, и вполне возможно подойдет под этот проект. Без редактирования конечно же не обходиться, но несколько раз удалось адаптировать за пару часов.
В ней я реализовал, назовем его, адаптивный обработчик перепада давления.
В чем суть? Для контроля обычно используется контактный датчик перепада давления с перекидными контактами. После включения вентилятора перепад давления переключает контакты в датчике. если же нет, то контроллер должен зафиксировать аварию вентилятора. Монтажники могут его соединить по всякому:
'com' и 'nc', 'com' и 'no', 'no' и 'nc' (так вообще работать не будет).
Используются нормальнозамкнутые контакты, или нормальноразомкнутые. (зависит от алгоритма) Мое мнение - что удобней использовать нормальнозамкнутый (дело вкуса, или как в проекте нарисовано). После монтажа прозвонить можно из шкафа, что датчик подключен, и подключить 'nc'+'no'уже труднее. .
Бывает, что на пусконаладку приезжаешь после всех работ и если при монтаже что-то напутали, то приходиться самому лезть и исправлять. Монтажники частенько путаются - нормальнозамкнутые или нормальноразомкнутые использовать (или циферки нарисованы в проекте, по ним и подключают не задумываясь). Для этого случая я решил написать, модуль, который следит за изменением сигнала. Для отслеживания работы нам важно изменение состояния. Т.е. перед пуском мы запоминаем состояние, если после запуска сигнал поменял свое состояние, то делаем вывод, что вентилятор работает. (похоже этот модуль путает некоторых сервисников еще больше :))), потому что им труднее теперь обмануть машину, поэтому я сейчас редко его использую).
Фото макроса представлено ниже.
dPS - сигнал с датчика перепада давления.
Время контроля - время, по истечении которого формируем "аварию вентилятора"
Пуск вентилятора - сигнал от основной программы на запуск вентилятора
Reset - сброс аварии.
После включения вентилятора по фронту сигнала "пуск вентилятора" происходит запоминание состояния сигнала dPS триггером в переменную mem_stop.
Сравнивание текущего состояние и запомненного происходит в блоке xor (замечательный блок, на выходе 1, если на входах разные сигналы. Нам нужно, чтобы проходила единица если dPS и mem_stop совпадают, поэтому подаем на второй вход "mem_stop" через отрицание). Чтобы отсчет проходил только при работающем вентиляторе, фильтруем блоком "И" и сигналом "working").