Стартовая страница › Форумы › Понять, как работает ПО › Использование формул › Формула фиксации времени изменения
Помечено: фиксация времени
- В этой теме 31 ответ, 4 участника, последнее обновление 4 месяца назад сделано
Mikhail.
-
АвторСообщения
-
19.06.2025 в 16:00 #39070
Vladimir616
Участникпросто формула сравнения канала и и возврат из скрипта double как DateTime.UtcNow.ToOADate(),
Напишите формулу всю пожалуйста 🙏. Буду очень признательн19.06.2025 в 16:21 #39077
manjey73Участниквыше же — NotEqual
20.06.2025 в 10:29 #39091Vladimir616
Участникс этой формулой все работает, но время отображающееся в ячейке 107 +4 часа. Как это исправить?
public double MyFunc()
{
if (Val() != CnlVal)
SetVal(107, DateTime.Now.ToOADate());return CnlVal;
}20.06.2025 в 10:33 #39092
manjey73Участникпоменяйте на DateTime.UtcNow.
Сервер работает по времени Utc, какое бы вы в него не записали, Web работает по Локальному и автоматом прибавляет для отображения.20.06.2025 в 10:39 #39093Vladimir616
Участниктак как убрать -4 часа?
20.06.2025 в 11:04 #39094Vladimir616
УчастникВсе работает спасибо!!!
20.06.2025 в 11:28 #39095
manjey73УчастникЯ бы пересмотрел вашу формулу в каком смысле.
public double Equal(int chNum)
SetVal(chNum, DateTime.UtcNow.ToOADate())
тогда не придется писать каждый раз под нужный канал и т.д. Просто при вызове пишите номер канала куда. Equal(107)
Ну и стараться придерживаться подобного, чтобы не писать на каждый чих.
-
Ответ изменён 4 месяца, 2 недели назад пользователем
manjey73.
20.06.2025 в 12:50 #39097Vladimir616
УчастникХорошо, спасибо
08.07.2025 в 13:35 #39340Vladimir616
УчастникВ продолжение темы. Остановился я пока на формуле
public double MyFunc()
{
if (Val() != CnlVal)
SetVal(107, DateTime.UtcNow.ToOADate());return CnlVal;
}
все работало, но через несколько дней, вместо даты и времени в канале 107 стали отображаться «—» при этом данные менялись. Если в этот канал ввести формулу EncodeDate(DateTime.Now) канал отображает дату и время. После удаления EncodeDate(DateTime.Now), канал снова стал корректно отображать зафиксированные дату время. С чем это может быть связанно?08.07.2025 в 13:39 #39341
manjey73Участникскорее всего вы теряете CnlVal, вероятно тогда условие не срабатывает, потому что CnlVal становится double.NaN
чисто предположение.
08.07.2025 в 13:48 #39342Vladimir616
УчастникЧто значит теряете?
08.07.2025 в 13:52 #39343
manjey73УчастникПроверьте по графикам когда у вас дата
---что в CnlVal ? в том канале, где вы применяете формулу08.07.2025 в 14:31 #39344Vladimir616
УчастникБыла гроза. Перестали поступать данные CnlVal в течении 3-х часов, все это время дата последнего изменения отображалась. Отключился свет, после включения света все данные появились кроме даты обновления (—).
08.07.2025 в 14:34 #39345
manjey73Участниктогда сложно сказать… попробуйте еще на это время посмотреть утилитами БД, какие там были статусы каналов до, во время и после грозы.
Возможно в формулу надо добавить еще и контроль статуса канала…
-
Ответ изменён 4 месяца назад пользователем
manjey73.
08.07.2025 в 14:59 #39348Vladimir616
УчастникТаже ситуация была при первом введении формулы, дата в канале не отображается пока не выведешь текущую дату.
-
Ответ изменён 4 месяца, 2 недели назад пользователем
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.