При просмотре трендов видны подобные ньюансы, как в прикреплённой картинке. Здесь приведён график потребления электроэнергии за сутки. Видно, что трижды были проблемы с опросом прибора и данные записаны некорректные.
Судя по графику, по каким-то причинам значение при разрыве связи с прибором значительно увеличивается. Почему так происходит - трудно сказать, обычно при проблемах с устройством значение падает на 0. Каким-то примитивным способом исключить эти значения из периодического источника не получится. Такой источник берёт все архивные данные за период и использует их в расчётах. Для фильтрации данных есть только фильтрация по другой переменной и в данной ситуации она не подходит.
Поэтому можно рассмотреть создание отдельной переменной с отфильтрованными данными в скаде. Допустим, что наша архивируемая переменная, которую нужно "исправить" имеет имя vrTrend. Тогда нужно проделать следующие шаги:
1. Выключить архивацию у переменной vrTrend;
2. Создать новую внутреннюю переменную с именем vrTrendFilter с тем же типом данных и шкалой что и vrTrend. Включить архивацию у переменной vrTrendFilter;
3. Создать новый скрипт с типом события "Изменились переменные" и добавить в него переменную vrTrend. Теперь этот скрипт будет выполняться по изменению переменной vrTrend. Реализовать в коде скрипта копирование всех значений vrTrend в переменную vrTrendFilter исключая "некорректные" значения. Например:
begin
if (vrTrend.AsInt > 10000) then
vrTrendFilter.Value := 0
else
vrTrendFilter.Value := vrTrend.Value;
end.
Здесь вместо значений > 10000 в переменную vrTrendFilter запишется 0. Все остальные значения будут скопированы из vrTrend.
Далее остаётся использовать архивные данные переменной vrTrendFilter для вывода трендов и в отчётах.