Черновик программы для контроллера протечек

Задумал я себе установить в новой квартире систему защиты от протечек, чтобы умная машинерия сама вентили перекрывала, когда где-то что-то на пол накапает. Гугление и просмотр сайтов производителей готовых систем меня несколько расстроило. Почти все, что имеется на рынке — делается из дешевейших китайских комплектующих и вызывает сомнение в адекватной работоспособности.
Почти все системы рассчитаны на установку блока управления на стену, что явно не украшает интерьер квартиры. Систем с блоком управления с монтажем на DIN-рейку почти нет. Краники какие-то хливкие. Неизвестно, как они отработают после продолжительного закисания от нашей водички. Проводки от сервоприводов краников — не толще чем провода от наушников — явно не располагают к долгосрочной стационарной установке с замоноличиванием проводов в стяжку, даже в гофре. И стоят эти системы как паровоз.
В реальности — такая система технически не очень сложное устройство, и ее под силу изготовить самостоятельно. Причем, ее можно изготовить из более брутальных и надежных камплектующих.
Для себя я решил собрать контроллер протечек на базе кранов с сервоприводами FAR 3008 и контроллера LOGO! 8. Сервоприводы кранов FAR 3008 питаются постоянным напряжением 24 В. Поэтому, для управления ими хорошо подойдет LOGO! 24RCE, который также питается постоянным напряжением 24 В. Одинаковое напряжение позволит завести в LOGO! сигналы от концевиков сервоприводов, и отображать на экране LOGO! реальное состояние кранов: открыты они или закрыты.

Пока что я набросал программу контроллера, котрый будет управлять сервоприводами. За неимением самого зверька программа на реальном железе не тестировалась, жила только на симуляторе.
В схеме используются 6 дискретных входов и 3 релейных выхода.

Входы:
1 — Дискретный вход датчика протечки. В Сети можно найти активные датчики, с релейным выходом или транзисторным выходом. В некоторых моделях LOGO! некоторые входы могут использоваться как аналоговые. Но эта «аналоговость» включается по-козлячьи: парами. И работает не со всеми зверьками. Кому хочется использовать аналоговые датчики (две позолоченные пластинки на полу) — можете поиграться с аналоговыми входами.
2 — Дискретный вход сигнала внешнего управления, котрый будет принудительно перекрывать воду, независимо от состояния датчика протечки. К нему пожно подключить реле охранной сигнализации и перекрывать воду при постановки квартиры на сигнализацию. При отсутствии сигнализации можно подключить обычный выключатель, установленный возле двери, и вручную перекрывать краны, уходя из квартиры.
4-6 — Входы концевиков сервоприводов кранов. Сигналы на них позволяют контролировать положение кранов и выводить на экране LOGO! красивую надпись OPEN/CLOSE.

Релейные выходы:
1 — Выход тревоги. К нему можно подключить пищалку (ждем появление в LOGO! штатной onboard пищалки) или шлейф сигнализации или автозвонилку. Вообщем, любой извещатель. Кстати, у ABB есть звонок на DIN-рейку на 24 В размером 1 модуль.
2-3 — Выходы управления сервоприводами кранов.
Схема контроллера протечек
Алгоритм работы:
Во время работы на экране LOGO! отображается состояние датчиков протечки и положение кранов. Экран «обычного» цвета.
При появлении логической единицы (сигнал 24 В) на входе 1 контроллер переходит в режим тревоги и включает реле выходов 1, 2 и 3. Пищалка, подключенная к выходу 1 начнет пищать, а сервоприводы кранов, подключенные к выходам 2 и 3 перекроют воду. Экран LOGO! краснеет. Мигание экрана я делать не стал, так как это сильно мещает считывать информацию и лазить по менюшкам. Высыханием лужи на полу и появление на входе логического нуля не выведет систему из состояния тревоги, чтобы краны не открылись и лужа снова не появилась. Думаю, что периодическое натекание/высыхание лужи явно не пойдет на пользу ремонту соседей.
Вывести контроллер из состояния тревоги можно параметром Reset alarm в меню Parameters. При этом логическая единица на входе будет игнорироваться в течение времени, которое задается в Alarm delay. Оставшееся время Alarm delay отображается на экране LOGO!.. В течение этого времени, даже не смотря на фиксацию воды датчиками протечки, краны будут открыты, что позволит найти кокретное место протечки и приступить к ее устранению. При необходимости, сбросить время Alarm delay и закрыть краны можно параметром Reset delay. Если датчики протечки больше не зафиксируют лужи на полу — система вернется в обычное дежурное состояние.
При появлении логической единицы на входе 2 контроллер без перехода в режим тревоги тихо и мирно перекроет воду, и так же мирно откроет ее при появлении логического нуля.
Чтобы краны не закисали, краны, находящиеся в открытом положении, периодически закрываются и снова открываются. Периодичность закрытия/открытия задается в параметре Unjamming. Время тоже настраивается. Контроллер проворачивает краны ночью (чтобы в горячем душе не познать всю мощь искусственного интеллекта), но не ранее, чем через 200 часов.
Закрытые изначально краны не открываются, независимо от того, сколько времени они находятся в закрытом положении. (Мы не знаем достоверно причину закрытия. Кроме того, протечки и разрывы гибких подводок возникают во время гидроударов, которые могут быть вызваны в том числе, и открытием кранов. Поскольку закрытие кранов может означать отсутствие людей в квартире, открывать краны в пустой квартире — не лучшая затея.)

Жду конструктивной критики.

Схема
Схема картинкой