Стартовая страница › Форумы › Понять, как работает ПО › Формулы › Формула фиксации времени изменения
Помечено: фиксация времени
- В этой теме 31 ответ, 4 участника, последнее обновление 10 месяцев назад сделано
Mikhail.
-
АвторСообщения
-
19.06.2025 в 15:02 #39053
Vladimir616
УчастникЗдравствуйте, нужна формула: имеем канал 101 с данными давления, а в 102 канал должен фиксировать дату и время последнего изменения давления 101 канала.
19.06.2025 в 15:13 #39054
manjey73Участникдавление меняется часто ?
Если посмотреть базу утилитами — сколько знаков после запятой изменяются ?
Если в измерителе нет округления, то изменения могут быть частыми.-
Ответ изменён 10 месяцев, 3 недели назад пользователем
manjey73.
19.06.2025 в 15:19 #39056
a80808УчастникА если событие по изменению и по нему писать в канал 102 через МАУ текущее время?
19.06.2025 в 15:20 #39057
a80808УчастникЯ про «птичку» «Событие по изменению» )))
19.06.2025 в 15:20 #39058Vladimir616
УчастникДавление меняется где-то раз в десять минут, меняються до сотых. Датчик работает по радиоканалу и нужно понимать когда он последний раз выходил на связь.
19.06.2025 в 15:23 #39059Vladimir616
УчастникДа но датчиков много и нужно чтобы время и данные были видны сразу, а не в событиях
19.06.2025 в 15:27 #39060
manjey73Участникпросто формула сравнения канала и и возврат из скрипта double как DateTime.UtcNow.ToOADate()
Ну и выставить формат канала Дата и время или Время
19.06.2025 в 15:29 #39061
a80808УчастникХмм..Версия 6? Там есть понятие «Предыдущее значение». Поминутной формулой вычисляем, что данные изменились и пишем время в канал.
19.06.2025 в 15:30 #39062
manjey73УчастникМожет тут больше бы подошло немного другое?
я таймером ловлю ошибку связи с прибором (служебный тег Status) с задержкой 2 минуты.
Если в течении этих 2-х минут Status восстанавливается, то таймер сбрасывается.Ну в общем как-то это прилепить.
19.06.2025 в 15:31 #39063Vladimir616
УчастникВерсия 6 можно чуть подробнее, я только учусь)
19.06.2025 в 15:33 #39064Vladimir616
УчастникТоже подойдет
19.06.2025 в 15:51 #39065
manjey73УчастникPrevVal() есть такая служебная функция.
только не прокатит, за несколько циклов PrevVal сравняется с Val
Скорее без вызова каждую минуту надо. Или использовать промежуточный канал19.06.2025 в 15:53 #39066
manjey73УчастникЗабавно, а если использовать без ловли минут, то PrevVal то переменная отличается 🙂
хотя вроде время остановилось…-
Ответ изменён 10 месяцев, 3 недели назад пользователем
manjey73.
19.06.2025 в 15:56 #39068
manjey73Участникpublic double NotEqual(int chNum) { if (PrevVal(chNum) != Val(chNum)) { return DateTime.UtcNow.ToOADate(); } return PrevVal(); }Использовать во входной формуле NotEqual(101)
Но забавно, около минуты время продолжает клацать… С чего бы? это вот вопрос Михаилу.
19.06.2025 в 15:58 #39069
manjey73УчастникВ общем счет у меня останавливается на 58 секундах, независимо, на каком времени я изменил переменную.
-
Ответ изменён 10 месяцев, 3 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.