|
Добрый день. 6 лет 1 месяц назад Налетов Константин 2019такой глобальной переменной может выступить свободное реле с программой "Включить на время". Т.е. по событию Потери запускается сценарий, который первым делом проверяет состояние реле, если Выключено, тогда Включаем на время ожидания и запускаем уже нужный сценарий.
Вот к необходимости виртуальных ШС уже добавились и виртуальные реле)) – Волков Андрей 6 лет 1 месяц назад Андрей, спасибо за совет, видимо другого варианта просто нет. Попробую Ваш вариант.
– Налетов Константин 6 лет 1 месяц назад из других вариантов это использовать запись в файл даты-времени, с последующим считыванием и сравнением с текущими значениями, но реализация такого способа меня немного смущает - будет ли легко сконвертировать время для последующего сравнения? получится ли вообще сделать временные промежутки? никогда ещё не пробовал так делать. А сценарий с реле получается достаточно простым - и не надо будет сравнивать временные промежутки.
– Волков Андрей 6 лет 1 месяц назад Время конвертируется, сравнивается, это без проблем) Проблема только с промежутком, хотя и это думаю можно решить, наверное проще твой вариант с реле. Проверять сначала в каком оно положении. Но сценарий все равно будет выполняться, в журнале будет строка о том что был запуск сценария, а вот сообщение о том что есть потеря будет появляться в зависимости от положения реле.
upd: Можно еще попробовать такой вариант, при потере связи, запускать шаблонный сценарий на включения реле, на время. Второй шаблонный сценарий с выдачей сообщения оператору запускать при включении этого реле. АРМ включает реле при поступлении команды, отключается оно через указанное время, если реле включилось, значит нужный промежуток времени прошел, значит выдать сообщение о потере. Возможно будет работать так, что с последней потери связи должно пройти не менее времени на которое включается реле, так как сценарий будет запускаться столько раз, сколько было потерь связи и таймер включения будет сбрасываться, а может и не будет, отработает единожды, надо проверять, пробовать. У прибора, чье реле используется, надо поставить галку в uprog "сообщать об изменении состояния". Пример по времени, если интересно: СЦЕНАРИЙ Переменные Перем Время1; Перем Часы1; НАЧАЛОСЦЕНАРИЯ Время1 = ТекущееВремяДатаЧисло(); Сообщить(Время1,0); Часы1 = ПолучитьЧасы(Время1); Сообщить(Часы1,0); Если Часы1 > 21 тогда Сообщить("Уже Поздно! Посмотри на время: " + ТекущееВремя(),0); Иначе Сообщить ("Время: " + ТекущееВремя(),0); Конецесли; КОНЕЦСЦЕНАРИЯ – Тремасов Константин Александрович 6 лет 1 месяц назад не спорю, просто способ со временем мне показался немного муторным: из файла считай, сконвертируй, сравни, файл перезапиши. Я бы им воспользовался только при отсутствии свободного реле.
– Волков Андрей 6 лет 1 месяц назад Для добавления сообщений на форуме вам необходимо зарегистрироваться и указать мобильный телефон в своем профиле (зачем?) |
3245 раз
6 лет 1 месяц назад
По каждому вопросу/ответу можно добавлять комментарии. Комментарии предназначены для уточнения вопроса/ответа.
– Налетов Константин 6 лет 1 месяц назад
#ссылка