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

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

    просто формула сравнения канала и и возврат из скрипта double как DateTime.UtcNow.ToOADate(),
    Напишите формулу всю пожалуйста 🙏. Буду очень признательн

    #39077
    manjey73
    Участник

    выше же — NotEqual

    #39091
    Vladimir616
    Участник

    с этой формулой все работает, но время отображающееся в ячейке 107 +4 часа. Как это исправить?
    public double MyFunc()
    {
    if (Val() != CnlVal)
    SetVal(107, DateTime.Now.ToOADate());

    return CnlVal;
    }

    #39092
    manjey73
    Участник

    поменяйте на DateTime.UtcNow.
    Сервер работает по времени Utc, какое бы вы в него не записали, Web работает по Локальному и автоматом прибавляет для отображения.

    #39093
    Vladimir616
    Участник

    так как убрать -4 часа?

    #39094
    Vladimir616
    Участник

    Все работает спасибо!!!

    #39095
    manjey73
    Участник

    Я бы пересмотрел вашу формулу в каком смысле.

    public double Equal(int chNum)

    SetVal(chNum, DateTime.UtcNow.ToOADate())

    тогда не придется писать каждый раз под нужный канал и т.д. Просто при вызове пишите номер канала куда. Equal(107)

    Ну и стараться придерживаться подобного, чтобы не писать на каждый чих.

    • Ответ изменён 4 месяца, 2 недели назад пользователем manjey73.
    #39097
    Vladimir616
    Участник

    Хорошо, спасибо

    #39340
    Vladimir616
    Участник

    В продолжение темы. Остановился я пока на формуле
    public double MyFunc()
    {
    if (Val() != CnlVal)
    SetVal(107, DateTime.UtcNow.ToOADate());

    return CnlVal;
    }
    все работало, но через несколько дней, вместо даты и времени в канале 107 стали отображаться «—» при этом данные менялись. Если в этот канал ввести формулу EncodeDate(DateTime.Now) канал отображает дату и время. После удаления EncodeDate(DateTime.Now), канал снова стал корректно отображать зафиксированные дату время. С чем это может быть связанно?

    #39341
    manjey73
    Участник

    скорее всего вы теряете CnlVal, вероятно тогда условие не срабатывает, потому что CnlVal становится double.NaN

    чисто предположение.

    #39342
    Vladimir616
    Участник

    Что значит теряете?

    #39343
    manjey73
    Участник

    Проверьте по графикам когда у вас дата --- что в CnlVal ? в том канале, где вы применяете формулу

    #39344
    Vladimir616
    Участник

    Была гроза. Перестали поступать данные CnlVal в течении 3-х часов, все это время дата последнего изменения отображалась. Отключился свет, после включения света все данные появились кроме даты обновления (—).

    #39345
    manjey73
    Участник

    тогда сложно сказать… попробуйте еще на это время посмотреть утилитами БД, какие там были статусы каналов до, во время и после грозы.

    Возможно в формулу надо добавить еще и контроль статуса канала…

    • Ответ изменён 4 месяца назад пользователем manjey73.
    #39348
    Vladimir616
    Участник

    Таже ситуация была при первом введении формулы, дата в канале не отображается пока не выведешь текущую дату.

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