Быстрая выборка данных из локального архива

Для быстрой выборки данных локального архива в диапазоне (T_FROM, T_TO) используются каналы CALL с типом вызова (30) LocalQuick (см. Временной интервал выборки и Выборка и обработка данных SIAD ).

Параметр=0-31

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

При быстрой выборке диапазон (T_FROM, T_TO) по определенному алгоритму разбивается на интервалы (не более 60-ти), и из каждого интервала произвольным образом выбирается одно значение. Полученные значения и их время записываются в аргументы 2-61 (к этим аргументам могут быть привязаны каналы).

Диапазон (T_FROM, T_TO) разбивается на интервалы по следующему алгоритму:

   если задан диапазон выборки 1 сутки, он разбивается на 24 часа.

Параметр>=32

Канал CALL.LocalQuick производит групповую выборку из локального архива с разбиением заданного временного диапазона на интервалы в соответствии со значением архивированного атрибута 7, P.

Начиная с arg2, к аргументам INPUT канала CALL.LocalQuick привязываются каналы CALL.TVC или CALL.ChGroupReq, в аргументы которых записываются результаты выборки.

Если требуется выборка по одному каналу, этот канал привязывается к CALL.LocalQuick. Если требуется выборка по нескольким каналам, они привязываются к каналам CALL.TVC или CALL.ChGroupReq, привязанным к аргументам CALL.LocalQuick (в этом случае сам канал CALL.LocalQuick не должен иметь привязки).

Атрибут CALL.LocalQuick.A задает номер первого обрабатываемого CALL.TVC/CALL.ChGroupReq (нумерация каналов начинается с 0). Атрибут CALL.LocalQuick.In задает количество обрабатываемых CALL.TVC/CALL.ChGroupReq (одновременно CALL.LocalQuick.In<>0 является командой отработки канала CALL.LocalQuick).

Алгоритм выборки зависит от привязанного атрибута CALL.TVC/CALL.ChGroupReq:

Выбор архивного значения по условию изменения атрибута (7, P): из диапазона (T_FROM, T_TO) в канал CALL.TVC / CALL.ChGroupReq записывается первое по времени архивное значение, при котором P<>0, а также все последующие архивные значения вне зависимости от условия P<>0.

   0, R извлекается каждое реальное значение, при котором изменился атрибут (3, C), (4, I) или (7, P);

   1, A и 9, Q – вычисляется средневзвешенное (в случае 1, A) или среднее арифметическое (в случае 9, Q), а также максимальное и минимальное значение в каждом интервале (для записи всех параметров в CALL.TVC нужно сконфигурировать 3 кривых);

   2, In извлекается каждое реальное значение, при котором изменился атрибут (3, C), (4, I) или (7, P), а также если это значение является экстремумом на интервале (в этом случае извлекается также следующее реальное значение);

   4, I извлекается каждое реальное значение, при котором изменился атрибут (3, C) или (4, I);

   5, FRQ – вычисляется последнее значение в каждом интервале, а также разность между этим значением и последним значением в предыдущем интервале (в первой точке разность равна 0);

   6, D – извлекаются все реальные значения;

   7, P – в каждом интервале вычисляются Ri и  (см. рис.).

Эти параметры записываются в CALL.TVC с двумя кривыми (для канала FLOAT Rmax= HW).