Стартовая страница › Форумы › Понять, как работает ПО › Запись времени в канал
Помечено: Запись времени в канал
- В этой теме 17 ответов, 3 участника, последнее обновление 11 месяцев, 2 недели назад сделано
Algomus.
-
АвторЗаписи
-
21.08.2025 в 09:11 #40002
Algomus
УчастникЗдравствуйте!
Как в 6.4.1 сделать запись времени в канал? Делаю формулу Val(1)==1 ? Now() : Cnl
При Val(1)==1 в канал выводиться текущее время дата, при 0 — 19-й век.
В 5.8.4 это работало.-
Тема изменена 11 месяцев, 2 недели назад пользователем
Algomus.
21.08.2025 в 10:37 #40004
manjey73УчастникDateTime.UtcNow.ToOADate()Вот так надо, и выставить формат Времени
21.08.2025 в 10:38 #40005
manjey73УчастникTime()DateTime Метка времени канала вычисляемой формулыЕще есть в документации такое время. Вполне может быть тем же самым, что и выше, но не проверял
-
Ответ изменён 11 месяцев, 2 недели назад пользователем
manjey73.
21.08.2025 в 10:40 #40007
manjey73УчастникNow() double Текущая дата и время в виде числа с плавающей точкой. Часовой пояс сервера UtcNow() double Текущая дата и время в виде числа с плавающей точкой. Универсальный часовой пояс (UTC)хотя странно, вроде и эти остались и должны бы работать
21.08.2025 в 10:41 #40008
manjey73Участника в Cnl у вас что? там точно время в double формате? может из-за него 19 век?
21.08.2025 в 11:41 #40009Algomus
Участник«а в Cnl у вас что? там точно время в double формате?»
Тип данных не задан. Но и с Double не работает.21.08.2025 в 12:00 #40010
manjey73УчастникНу вот уберите ваш Cnl из формулы и в одной части пропишите Now() а в другой UtcNow(), выставьте формат время и посмотрите что будет ?
-
Ответ изменён 11 месяцев, 2 недели назад пользователем
manjey73.
21.08.2025 в 12:00 #40012Algomus
УчастникВместо Cnl применил Val(1) и получилось.
21.08.2025 в 12:01 #40013
manjey73Участникпри 0 у вас в канал попадает 0 (если он 0) то там и будет 19-й век.
С чего бы там было другое время собственно ?21.08.2025 в 12:03 #40014
manjey73Участникто есть у вас в Val(1) время ?
Тогда зачем вы проверяете на равенство 1 ? или там в канал приходит либо время либо значение 1 ?21.08.2025 в 13:20 #40015Algomus
УчастникVal(1)==1 ? Now() : Cnl
Форма тернарной операции: условие ? выражение1 : выражение2.
1 канал имеет два значения 0 и 1.-
Ответ изменён 11 месяцев, 2 недели назад пользователем
Algomus.
21.08.2025 в 13:26 #40017
manjey73УчастникVal(1)==1 ? Now() : Val(1)я так понял вы заменили на это и у вас получилось.Интересно что получилось? вместо 0 будет так же 19 век.
А Cnl =
---тоже не даст ничего хорошего.21.08.2025 в 13:29 #40018Algomus
УчастникВ 5 версии у меня по этим формулам учет циклов заряд/разряд АКБ работал. Пытаюсь переехать на 6. Как то туго. Все несколько по другому..
21.08.2025 в 15:06 #40019
manjey73Участникесли честно, я не понимаю, как это работало и в 5-й версии.
При Val == 0 у вас записывается в канал Cnl — тогда в Cnl должна быть дата приведенная к double. И во вторых, Cnl — это значение канала из устройства до расчета.Вроде этот параметр не менялся в 6-й версии по отношению к 5-й…
Так что и как тогда вы считали в 5-й версии большой вопрос 🙂
21.08.2025 в 15:16 #40020
MikhailМодераторДобрый день!
В чём заключается общая идея такой формулы? -
Тема изменена 11 месяцев, 2 недели назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.