Для групп точек данных существует внутренний тип точки данных «_DpGroup»:
_DpGroup
Конечный элемент | Тип | Описание |
.Dps | dyn_string | Фильтр точек данных (например, «Reading.C*»). |
.Types | dyn_string | Фильтр типа точек данных (имя типа точки данных) |
.Level | int | int == 1 для основной группы, в противном случае — 0. |
Фильтр точек данных и Фильтр типа точек данных всегда существуют параллельно, то есть каждому значению Dps соответствует одно значени Types и наоборот.
Существуют три варианта:
1. Types[n]!=»», Dps[n]!=»» (значение в «Types» не пусто, значение в «Dps» не пусто): фильтрация по шаблону DPE (элемент точки данных) в рамках DPType (тип точки данных).
2. Types[n]==»», Dps[n]!=»» : поиск всех DPTypes по шаблону DP (точка данных).
3. Types[n]!=»», Dps[n]==»»: В этом случае критерий фильтрации представляет собой группу. Допускается максимум 20 уровней вложений (например, «Group1» содержит «Group2» в качестве фильтра «Types», «Group2» содержит «Group3» в качестве фильтра «Types» и т.д., максимум 20 уровней). При превышении будет выводится сообщение об ошибке (также возможен бесконечный цикл, если фильтром типа для «Group1» является «Group2», а фильтром для «Group2» является «Group1».)
Имена точек данных этого типа автоматически присваиваются следующим образом:
_DpGroupNNNNN_Type, где NNNNN является серийным номером (создается панелью автоматически). «Type» может иметь значение либо «Public», либо быть равным имени пользователя (при Частной группе).
Точками данных _DpGroupNNNNN_Public могут управлять все пользователи, точки данных _DpGroupNNNNN_Username могут использоваться только владельцем (например, DpGroupNNNNN_root могут использоваться только пользователем «root»).