Ваши комментарии
Да, изначально вопрос был в определении максимального значения, и предложенное вами решение эту задачу решает. Однако, если мы зададимся целью посчитать не максимальное отклонение, а среднее, (опять же за период, пока параметр находился вне допуска) то предложенный способ уже не подойдет. Есть ли какой-то вариант на этот случай?
Среднее отклонение за период вне допуска.
Такой вариант тоже работоспособен, но не позволяет подсчитывать не минимальное/максимальное, а среднее значение. Можете ли что-то подсказать на этот случай?
Да. Сообщение о выходе за допустимые пределы пишется в журнал в момент выхода, в момент возврата в зону допуска пишется сообщение о возврате. Для удобства анализа, хочется добавлять к нему еще и максимальное отклонение за время которое параметр провел вне допуска.
Если изменить скрипт следующим образом, начинает работать:
//Latch - флаг события, Deviance - величина отклонения в ед. изм.
Delay(60000);
Mess:='МВВ мощн. М1 в зоне допуска. Отклн составило макс: '
+FloatToStrEx(GetMaxValueFromDB(GetTimeStamp(Latch)-0.00068,now()-0.00068,Deviance),0)+' % ';
Log(esInfo, Mess);
Но сообщение появляется с задержкой, и насчет точности указания временного интервала есть вопросы.
Сервис поддержки клиентов работает на платформе UserEcho
Насколько я понимаю в таком случае список должен быть безразмерным, т.к. неизвестна продолжительность периода, а код довольно сильно раздуется.
То есть способа решить задачу через обращение к БД нет?