0
Завершен

Логика системы протечек на i3 lite

Антон Макаров 7 лет назад в Tips and Tricks обновлен Aleksandr Romanov (CTO) 6 лет назад 9

Добрый день! Необходимо написать логику системы протечек, что бы она работала сервере.

Задача: при появлении логической единице(контакт замкнут водой), закрывать шаровый кран(реле), спустя 30 секунд если контакт так и находится в замкнутом положении отправлять уведомление о протечке. Если спустя 30 секунд контакт разомкнут просто открывать шаровый кран.

Начал делать это на правилах, которые работают на сервере, но столкнулся с такой проблемой что в действиях(тогда) системная задержка не работает или я так и не разобрался как это устроено.

Как можно использовать задержку как в макросах, что бы поочередно выполнялось все с учетом задержки между ними. Или может быть добавить возможность добавления туда запуск макросов, что бы они работали на сервере, без участия приложения.?

+1
Завершен

Добрый день!


1. Правило 1: ЕСЛИ "Протечка Замкнулся" ТО "Перекрой воду" & "Задержка 30 секунд" & "Отправить уведомление"

2. Правило 2: ЕСЛИ "Протечка Разомкнулся" ТО "Открой воду" & "Прервать выполнение правила 1"

Добрый день. Как описать гистерезис  для отправки аварийного сообщения. 


Задача отправить Аларм сообщение если контролируемое значение превышает уставку.  

Не совсем понятно, о каком гистерезисе вы пишите: мы же заложили задержку 30 секунд (что и являлось гистерезисом на отправку сообщения)??? Контролируемое значение - время замыкания датчика протечки. Или что-то другое имеется в виду?

Пример отправить уведомление если контролируемое значение превысит 30 градусов. Но из за того что температура в течение малого промежутка времени может несколько превысит уставку (из за колебаний значение) то сообщений может быть слишком  много. 

+1

Т.е. речь уже не о протечке??? Предлагаю разделять такие вопросы и формулировать сразу в полном объеме.

Создайте режим: АнтиСпамТ

Правило 1: ЕСЛИ "Т>30", ТО "Отправить сообщение"&"Режим АнтиСпамТ Включить" НО_ТОЛЬКО_ЕСЛИ "Режим АнтиСпамТ Выключен"

Правило 2: ЕСЛИ "Т<28"или"T>32", ТО "Режим АнтиСпамТ Выключить"

Если позволите продолжу прямо в этой теме, так как вопрос касается логи системы Lite.

Созданы правила которые информируют о изменении состояния контролируемого значения 0-1 и 1-0

Всё работает, но ложно срабатывает привило при перезагрузить сервера или синхронизации с ним. Как это отфильтровать?

На рассмотрении

"Переход через 0" при старте проекта зависит от драйвера. Готовим комплексное решение, но в релиз оно пойдет не скоро. Каким модулем (драйвером) пользуетесь?

+1
Завершен

Тогда можно такое решение:

  1. Создаем режим "ДрайверОнлайн"
  2. Создаем правило: ЕСЛИ "Модбас.Онлайн" ТО "Задержка 10 секунд"&"ДрайверОнлайн Включить" (задержку опытным путем подобрать, чтобы все регистры успевал опросить).
  3. Правило: ЕСЛИ "Модбас.Оффлайн" ТО "ДрайверОнлайн Выключить"
  4. Дальше во все правила, где важен "переход через 0" ставить в секцию НО_ТОЛЬКО_ЕСЛИ этот режим "ДрайверОнлайн"

Сервис поддержки клиентов работает на платформе UserEcho