При создании периодического источника данных в словаре отчёта создаются три переменные: "Начало", "Конец" и "Интервал" (можно задать им и другие имена). Периодический источник данных при построении берёт из базы данных все архивные данные за период от переменной "Начало" до переменной "Конец" и делит их на равные интервалы (в секундах). Посмотрите на изображение ниже. Переменная "Начало" здесь равна 00:00:00, переменная "Конец" равна 00:01:30. Переменная "Интервал" равна 20 (сек.).
Получается пять разных интервалов. Для каждого интервала будут взяты все точки, которые попадают в этот интервал и с этими точками будет выполнена заданная пользователем обработка. Доступны следующие типы обработок:
Тип обработки |
Описание |
---|---|
первое значение |
вывести первое значение входящее в интервал; |
последнее значение |
вывести последнее значение входящее в интервал; |
минимум |
вывести минимальное значение входящее в интервал; |
максимум |
вывести максимальное значение входящее в интервал; |
среднее |
вывести средневзвешенное по времени значение. В вычислении участвуют все значения входящие в интервал; |
интеграл |
вывести интеграл по всем значениям входящим в интервал. Для данного типа обработки также можно задать значение делителя. Делитель используется только с типом обработки "Интеграл" в периодических источниках данных. При вычислении интеграла за какой-либо период, скада использует время в секундах. Но показания для которых вычисляется интеграл, не всегда измеряются в секундах. Например, электросчетчики часто передают показания в кВт/ч, расходомеры в м3/час и т.д. В таких случаях нужно использовать делитель равный 3600, так как один час содержит 3600 секунд. Если данные, для которых вычисляется интеграл измеряются в литрах в минуту, то нужно использовать делитель равный 60, так как 1 мин. равна 60 сек.; |
интерполяция |
вывести промежуточное значение на момент конца интервала. Рассмотрим пример. Пусть у нас имеется два значения полученные в разное время. Одно в 00:00, равное 0. Второе, через 10 секунд, т.е. в 00:10 равное 50. Допустим, конец интервала попадает на время 00:05. Тогда тип обработки "Интерполяция" вернёт значение равное 25; |
точное |
вывести точное значение на момент конца интервала. Рассмотрим пример. Пусть у нас имеется два значения полученные в разное время. Одно в 00:00, равное 0. Второе, через 10 секунд, т.е. в 00:10 равное 50. Допустим, конец интервала попадает на время 00:05. Тогда тип обработки "Точное" вернёт значение равное 0, т.к. известно, что значение все время было равно 0 и изменилось на 50 только в 00:10. Значит до 00:10 оно было равно 0; |
включения |
вывести количество включений (т.е. переходов значения переменной от нуля к любому значению отличному от нуля) за заданный интервал; |
выключения |
вывести количество выключений (т.е. переходов от любого значения переменной отличного от нуля к нулю) за заданный интервал; |
время вкл. |
вывести время, в течение которого значение переменной было отлично от нуля; |
время выкл. |
вывести время, в течение которого значение переменной было равно нулю; |
разница |
вывести разницу между последним и первым значением входящим в интервал; |
разница (точное) |
вывести разницу между значением на конец интервала и значением на начало интервала. Если в конце или в начале интервала нет данных, то результатом будет 0. |
Результат обработки каждого интервала выводится в источник данных. Если рассматривать наш пример и выбрать тип обработки "Среднее", то в периодический источник данных будут выведены следующие строки:
ВРЕМЯ СРЕДНЕЕ
00:00:20 125
00:00:40 75
00:01:00 112,5
00:01:20 212,5
00:01:30 50
Создание отчёта с периодическим источником данных описано в этой статье.