Запись времени в канал

Просмотр 15 сообщений - с 1 по 15 (из 18 всего)
  • Автор
    Записи
  • #40002
    Algomus
    Участник

    Здравствуйте!
    Как в 6.4.1 сделать запись времени в канал? Делаю формулу Val(1)==1 ? Now() : Cnl
    При Val(1)==1 в канал выводиться текущее время дата, при 0 — 19-й век.
    В 5.8.4 это работало.

    • Тема изменена 11 месяцев, 2 недели назад пользователем Algomus.
    #40004
    manjey73
    Участник

    DateTime.UtcNow.ToOADate()

    Вот так надо, и выставить формат Времени

    #40005
    manjey73
    Участник

    Time() DateTime Метка времени канала вычисляемой формулы

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

    • Ответ изменён 11 месяцев, 2 недели назад пользователем manjey73.
    #40007
    manjey73
    Участник
    Now()	double	Текущая дата и время в виде числа с плавающей точкой. Часовой пояс сервера
    UtcNow()	double	Текущая дата и время в виде числа с плавающей точкой. Универсальный часовой пояс (UTC)

    хотя странно, вроде и эти остались и должны бы работать

    #40008
    manjey73
    Участник

    а в Cnl у вас что? там точно время в double формате? может из-за него 19 век?

    #40009
    Algomus
    Участник

    «а в Cnl у вас что? там точно время в double формате?»
    Тип данных не задан. Но и с Double не работает.

    #40010
    manjey73
    Участник

    Ну вот уберите ваш Cnl из формулы и в одной части пропишите Now() а в другой UtcNow(), выставьте формат время и посмотрите что будет ?

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

    Вместо Cnl применил Val(1) и получилось.

    #40013
    manjey73
    Участник

    при 0 у вас в канал попадает 0 (если он 0) то там и будет 19-й век.
    С чего бы там было другое время собственно ?

    #40014
    manjey73
    Участник

    то есть у вас в Val(1) время ?
    Тогда зачем вы проверяете на равенство 1 ? или там в канал приходит либо время либо значение 1 ?

    #40015
    Algomus
    Участник

    Val(1)==1 ? Now() : Cnl
    Форма тернарной операции: условие ? выражение1 : выражение2.
    1 канал имеет два значения 0 и 1.

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

    Val(1)==1 ? Now() : Val(1) я так понял вы заменили на это и у вас получилось.

    Интересно что получилось? вместо 0 будет так же 19 век.

    А Cnl = --- тоже не даст ничего хорошего.

    #40018
    Algomus
    Участник

    В 5 версии у меня по этим формулам учет циклов заряд/разряд АКБ работал. Пытаюсь переехать на 6. Как то туго. Все несколько по другому..

    #40019
    manjey73
    Участник

    если честно, я не понимаю, как это работало и в 5-й версии.
    При Val == 0 у вас записывается в канал Cnl — тогда в Cnl должна быть дата приведенная к double. И во вторых, Cnl — это значение канала из устройства до расчета.

    Вроде этот параметр не менялся в 6-й версии по отношению к 5-й…

    Так что и как тогда вы считали в 5-й версии большой вопрос 🙂

    #40020
    Mikhail
    Модератор

    Добрый день!
    В чём заключается общая идея такой формулы?

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