Формула фиксации времени изменения

Стартовая страница Форумы Понять, как работает ПО Формулы Формула фиксации времени изменения

Просмотр 15 сообщений - с 1 по 15 (из 32 всего)
  • Автор
    Сообщения
  • #39053
    Vladimir616
    Участник

    Здравствуйте, нужна формула: имеем канал 101 с данными давления, а в 102 канал должен фиксировать дату и время последнего изменения давления 101 канала.

    #39054
    manjey73
    Участник

    давление меняется часто ?
    Если посмотреть базу утилитами — сколько знаков после запятой изменяются ?
    Если в измерителе нет округления, то изменения могут быть частыми.

    • Ответ изменён 10 месяцев, 3 недели назад пользователем manjey73.
    #39056
    a80808
    Участник

    А если событие по изменению и по нему писать в канал 102 через МАУ текущее время?

    #39057
    a80808
    Участник

    Я про «птичку» «Событие по изменению» )))

    #39058
    Vladimir616
    Участник

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

    #39059
    Vladimir616
    Участник

    Да но датчиков много и нужно чтобы время и данные были видны сразу, а не в событиях

    #39060
    manjey73
    Участник

    просто формула сравнения канала и и возврат из скрипта double как DateTime.UtcNow.ToOADate()

    Ну и выставить формат канала Дата и время или Время

    #39061
    a80808
    Участник

    Хмм..Версия 6? Там есть понятие «Предыдущее значение». Поминутной формулой вычисляем, что данные изменились и пишем время в канал.

    #39062
    manjey73
    Участник

    Может тут больше бы подошло немного другое?
    я таймером ловлю ошибку связи с прибором (служебный тег Status) с задержкой 2 минуты.
    Если в течении этих 2-х минут Status восстанавливается, то таймер сбрасывается.

    Ну в общем как-то это прилепить.

    #39063
    Vladimir616
    Участник

    Версия 6 можно чуть подробнее, я только учусь)

    #39064
    Vladimir616
    Участник

    Тоже подойдет

    #39065
    manjey73
    Участник

    PrevVal() есть такая служебная функция.

    только не прокатит, за несколько циклов PrevVal сравняется с Val
    Скорее без вызова каждую минуту надо. Или использовать промежуточный канал

    #39066
    manjey73
    Участник

    Забавно, а если использовать без ловли минут, то PrevVal то переменная отличается 🙂
    хотя вроде время остановилось…

    • Ответ изменён 10 месяцев, 3 недели назад пользователем manjey73.
    #39068
    manjey73
    Участник
    public double NotEqual(int chNum)
    {
    if (PrevVal(chNum) != Val(chNum))
    {
     return DateTime.UtcNow.ToOADate();
    }
    return PrevVal();
    }

    Использовать во входной формуле NotEqual(101)

    Но забавно, около минуты время продолжает клацать… С чего бы? это вот вопрос Михаилу.

    #39069
    manjey73
    Участник

    В общем счет у меня останавливается на 58 секундах, независимо, на каком времени я изменил переменную.

Просмотр 15 сообщений - с 1 по 15 (из 32 всего)
  • Для ответа в этой теме необходимо авторизоваться.