Для быстрой выборки данных локального архива в диапазоне (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).