Индивидуальный архив

Для создания локального индивидуального архива используется канал CALL с типом вызова (23) LArc0 или (24) LArc1. Канал, для которого создается архив, должен быть привязан к каналу CALL.

Аргументы 0 и 1 канала CALL используются следующим образом:

   arg0 – для служебных целей (в профайлере в этом аргументе отображается привязка канала CALL; тип данных arg0 должен соответствовать типу данных архивируемого канала);

   arg1 – значение этого аргумента (тип данных – любой целочисленный) задается как число секунд. Период запроса значения привязанного канала устанавливается монитором кратным периоду пересчета канала CALL и примерно соответствующим arg1.

Архивируемые данные записываются в последующие аргументы канала CALL. Эти аргументы используются парами (создаются вручную или автоматически): в аргумент с четным порядковым номером записывается архивируемое значение, в последующий аргумент с нечетным порядковым номером – время этого значения. При создании вручную для аргументов с четными порядковыми номерами должен быть задан соответствующий числовой тип данных, для аргументов с нечетными порядковыми номерами – Date_And_Time.

Модификации индивидуальных архивов определяются значением атрибута Параметр канала CALL:

   Параметр = 0 – архив реальных значений привязанного канала (стек, последнее по времени значение записывается в первую пару аргументов);

   Параметр = 1...60 – циклически перезаписываемый архив реальных значений привязанного канала, усредненных по интервалу 1...60 минут;

   Параметр = 61...120 – циклически перезаписываемый архив реальных значений привязанного канала, усредненных по интервалу 1...60 минут, с нарастающим итогом. Если не начат новый цикл записи в архив, архивное значение представляет собой сумму предыдущего архивного значения и среднего значения привязанного канала за последний интервал. При начале нового цикла записи в архив архивное значение представляет собой среднее значение привязанного канала за последний интервал. Величина интервала усреднения (1-60) записывается в атрибут 34, FPrint; 1 как признак вычислений нарастающим итогом – в атрибут 53, Update.

Аргумент arg1 канала CALL с усреднением должен быть равен 0, значения привязанного канала запрашиваются с периодом канала CALL, текущая сумма значений за заданный интервал записывается в атрибут 1, A, текущее среднее – в атрибут 87, CC.

Если аргументы канала CALL с усреднением не созданы, то в канале автоматически создается следующее количество пар аргументов для записи архивных значений и их времен:

   если интервал усреднения (Interval) больше или равен 10 минутам, в канале создается количество пар аргументов, необходимое для суточного архива:

   если интервал усреднения (Interval) меньше 10 минут, в канале создается количество пар аргументов, необходимое для 8-часового архива:

Времена для созданных таким образом пар аргументов фиксированы, первой паре соответствует начало суток (0 минут). При этом при старте монитора могут возникнуть две ситуации:

   время (T минут от начала суток) значения для записи в архив меньше или равно времени, соответствующему последней паре аргументов (это время равно (N-1)*Interval, где N – номер последней пары);

   T>(N-1)*Interval.

В первом случае первое вычисленное архивное значение и его время записываются в соответствующую пару аргументов.

Во втором случае архив зацикливается необходимое число раз, и первое вычисленное архивное значение и его время записываются в соответствующую пару аргументов (номер этой пары равен остатку от деления T на N).

Если аргументы канала CALL с усреднением созданы вручную, первое вычисленное архивное значение и его время записываются в произвольную пару аргументов.

Алгоритм вычислений архивируемых данных для (23) LArc0 и (24) LArc1 отличается:

   для (23) LArc0 реальное значение канала обрабатывается с заданным периодом, если с момента предыдущего запроса изменилось время значения;

   для (24) LArc1 реальное значение канала обрабатывается с заданным периодом, если с момента предыдущего запроса значение изменилось.

Индивидуальный архив может быть отображен с помощью ГЭ/еГЭ Тренд (см. ГЭ ‘Тренд’ ), а также выведен в генерируемый документ (на тренд – см. Вставка тренда ).

Если имя канала CALL – индивидуального архива некоторого канала ch – начинается со знака "минус" и в канале ch не используется трансляция, МРВ уничтожает канал CALL после переноса его аргументов в канал ch. Класс канала ch не изменяется, ch.123=CALL.123. Если существует несколько подобных архивов канала ch, уничтожается один канал CALL (с младшим ID).