Csit.Delta.CalcClient.D8CalcInstance
D8-CalcInstance¶
Инстанс, внутри которого реализованы алгоритмы обработки данных. Исходной информацией для такой обработки являются значения (текущие и архивные) параметров любых других инстансов системы Дельта либо других параметров внутри того же инстанса.
Параметры D8-CalcInstance¶
Реализовано несколько видов параметров для выполнения различных задач. Каждый тип обладает своим набором настроек.
Все эти настройки кодируются специальным образом с помощью строки определения параметра ParamDef
.
Параметр может иметь псевдоним ParamAlias
.
Если псевдоним параметра задан, то идентификатор SID параметра будет иметь вид:
<CiSid> ::= <InstanceName> "." <ParamAlias>
Если псевдоним не задан, то SID параметра будет содержать полную строку определения параметра:
<CiSid> ::= <InstanceName> "." <ParamDef> <ParamDef> :: = "`" [{ <PropName> "=" <PropValue> "`" }] <ParamFunction> [ "(" <ArgumentList> ")" ] <ParamFunction> ::= CONST | CONSTPWL | WRP | F | SIM | DIAG
Внутри строки ParamDef
содержаться пары ключ/значение, разделенные символом "`
". Каждая пара задает значение для одного из свойств параметра.
Кроме того в строке содержится название функции параметра ParamFunction
с опциональными аргументами. Эта функция определяет вид параметра, а значит и набор его свойств, и алгоритм вычисления его значений.
Общие атрибуты строки определения параметра¶
Для любого вида параметров можно задать следующие свойства:
<CommonPropName> ::= "N" | "SN" | "AN" | "AKS" | "SCL" | "SCH" | "SCS" | "U" | "AU" | "AC" | "RH1" | "RH2" | "RL1" | "RL2" | "VL" | "VH" | "NV" | "NL" | "NH"
-
N
Локальное имя (ID8ParamInfo.LocalName
)
-
SN
Краткое имя (ID8ParamInfo.ShortName
)
-
AN
Дополнительное имя (ID8ParamInfo.AdditionalName
)
-
AKS
Код AKS (ID8ParamInfo.AKS
)
-
SCL
Минимум шкалы (ID8ParamInfo.Min
)
-
SCH
Максимум шкалы (ID8ParamInfo.Max
)
-
SCS
Перечень возможных значений параметра и их текстовых описаний (ID8ParamInfo.ScaleState
). Дополнительно устанавливает минимум и максимум шкалы из перечня.
-
U
Единицы измерения (ID8ParamInfo.Units
)
-
AU
Единицы измерения агрегированных значений (ID8ParamInfo.AggregatedUnits
)
-
AC
Коэффициент агрегирования (ID8ParamInfo.AggregationCoef
)
-
RH1
Верхняя предупредительная уставка (ID8ParamInfo.RangeUp1
).
-
RH2
Верхняя аварийная уставка (ID8ParamInfo.RangeUp2
).
-
RL1
Нижняя предупредительная уставка (ID8ParamInfo.RangeDown1
).
-
RL2
Нижняя аварийная уставка (ID8ParamInfo.RangeDown2
).
-
VL
Нижний предел достоверности (ID8ParamInfo.ValidLow
).
-
VH
Врехний предел достоверности (ID8ParamInfo.ValidHigh
).
-
NV
Номинальное значение.
-
NL
Нижняя граница коридора допустимых значений.
-
NH
Верхняя граница коридора допустимых значений.
Значений для SCS
задается в виде пар, разделенных запятой. В каждой паре значение и текстовое описание разделяются двоеточием:
<ScaleStateValue> ::= "(" <Number> : <Description> [{ "," <Number> : <Description> }] ")" Например: SCS=(0:zero,1:one,2:two)
Например:
`N="Активная мощность"`U=МВт`SCL=0`SCH=540
Параметры-константы¶
Предназначены для создания параметров, имеющих неизменное значение.
<ConstParamDef> ::= "`" [{ "`" <ConstPropName> "=" <PropValue> }] "`CONST" [ "(" <ParamInfoPrototype> ")" ] <ConstPropName> ::= <CommonPropName> | "V" | "N" | "U" | "T"
-
ParamInfoPrototype
SID параметра, свойства НСИ которого нужно использовать для этого параметра.
-
N
Локальное имя.
-
T
Тип параметра (ID8ParamInfo.ParamType
).
Может быть:A (Analogue)
- аналоговый (это значение по умолчанию)D (Discret)
- дискретныйV (Vector)
- векторный
-
V
Значение константы.
-
U
Единицы измерения. Если указано для дискретного параметра, то означает не единицы измерения, а название дискретного состояния.
Примеры:
`T=A`N="Аналоговая константа"`V=12.3`U=кг `T=D`N="Дискретная величина"`V=1`U=включено `T=V`N="Строковое значение"`V="любой текст"
Параметры-константы для кусочно линейной величины¶
Аналогичны параметрам CONST
, но значение задается в виде кусочно-линейного графика во времени.
<ConstpwlParamDef> ::= "`" [{ "`" <ConstpwlPropName> "=" <PropValue> }] "`CONSTPWL" <ConstpwlPropName> ::= <CommonPropName> | "N" | "T" | "ST" | "T0" | "TZ" | "V" | "U"
-
N
Локальное имя.
-
T
Тип параметра (ID8ParamInfo.ParamType
).
Может быть:A (Analogue)
- аналоговый (это значение по умолчанию)D (Discret)
- дискретный
-
ST
Подтип параметра (ID8ParamInfo.Subtype
)
Например:ST=StepAvg
-
T0
Начальный момент времени для кусочно-линейного графика, указанного в свойствеV
. Задается в форматеDateTime
. Если содержит пробелы, то значение нужно заключить в кавычки. Если не указано, то используется текущее время (на момент создания параметра).
-
TZ
Часовой пояс для моментов времени в атрибутахT0
иV
.
-
V
Точки графика значения во времени. Моменты времени задаются относительноT0
.
-
U
Единицы измерения.
Значение V
задается в виде строки, разделенной запятыми. Каждая часть строки - это точка на графике, записанная виде смещения времени от T0
либо даты/времени и значения параметра, разделенных двоеточием:
<ConstpwlValueStr> ::= "(" <Timeoffset> : <Value> [{ "," <Timeoffset> : <Value> }] ")" <Timeoffset> ::= ( number ("ms" | "s" | "m" | "h" | "D" | "M" | "Y") ) | "-inf" | "+inf" | datetime <datetime> ::= YYYY [DD] [mm] [HH] [mm] [ss] [fff] [L] <Value> ::= double
В качестве смещения времени можно указать
+inf
или -inf
, что означает плюс/минус бесконечность.Если указано не смещение, а абсолютная величина даты/времени, то в конце может быть указана буква
L
, что означает часовой пояс пользователя.
Примеры:
`T0=2017-01-01`V=(0:0,1h:10,3h:10,5h:9.5,+inf:9.5)`CONSTPWL `V=(-inf:100,0:100)`CONSTPWL `V=(20170103L:10,20170104L:13,20170105L:12,+inf:12)`CONSTPWL
Параметры-обертки¶
Предназначены для эффективной корректировки значения, единиц измерения и времени другого параметра. Для этого создается параметр-обертка, у которого НСИ совпадает с корректируемым параметром (и может быть дополнительно изменено), а значения параметра-обертки вычисляются от значений корректируемого параметра.
<WrapperParamDef> ::= "`" [{ "`" <WrapperPropName> "=" <PropValue> }] "`WRP(<WrappedParam>)" <WrapperPropName> ::= <CommonPropName> | "CABS" | "K" | "C" | "T" | "U"
-
WrappedParam
SID параметра, вокруг которого создается обертка.
-
K
Коэффициент, на который нужно умножить значение параметраWrappedParam
, чтобы получить значение параметра-обертки. Коэффициент применяется и к числовым полям НСИ, таким как границы достоверности, уставки и пр. По умолчанию 1.
-
C
Коэффициент, который нужно прибавить к значению параметраWrappedParam
, чтобы получить значение параметра-обертки. Коэффициент применяется и к числовым полям НСИ. По умолчанию 0.
-
CABS
Еслиtrue
, то коэффициентC
будет помножен на модуль исходного значения. По умолчаниюfalse
.
-
T
Временной сдвиг, который нужно прибавить к метке времени значения параметраWrappedParam
, чтобы получить метку времени значение параметра-обертки.
-
U
Единицы измерения, который нужно использовать взамен единиц измерения параметраWrappedParam
.
Значением параметра-обертки W
от параметра X
будет:
W = | K * X + C , CABS = false | K * X + C * |X| , CABS = true
Например:
`N="Замена килограмм на тонны"`K=0.001`U=т`WRP(INST.1) `N="Сдвиг меток времени на час вперед"`T=1h`WRP(INST.2)
Параметры-формулы¶
Параметры, значения которых вычисляются с помощью выражения языка формул D8FL
.
<FormulaParamDef> ::= "`" [{ "`" <FormulaPropName> "=" <PropValue> }] "`F(<FlMacro>)" <FormulaPropName> ::= <CommonPropName> | "T" | "ST" | "R" | "r" | "S" | "I" | "W" | "WS" | "L" | "TZ" | "CS" | "O"
-
FlMacro
Сценарий расчета на языкеD8FL
. Значением параметра будет результат последнего выражения в сценарии.
-
T
Тип параметра (ID8ParamInfo.ParamType
).
Может быть:A (Analogue)
- аналоговый (это значение по умолчанию)D (Discret)
- дискретный
-
ST
Подтип параметра (ID8ParamInfo.Subtype
)
Например:ST=StepAvg
-
R
Максимальный интервал пересчета значения. Если интервал пересчета не задан (или ноль), то текущее значение параметра будет обновляться при изменении исходных данных. Если заданR
, то текущее значение будет обновляться по истечении указанного интервала с момента предыдущего расчета при условии, что исходные данные изменились. По умолчанию не задан.
-
r
Минимальный интервал пересчета значения. Если интервал пересчета не задан (или ноль), то текущее значение параметр будет обновляться при изменении исходных данных. Если заданr
, то текущее значение будет обновляться либо при изменении исходных данных, либо по истечении указанного интервала с момента предыдущего расчета. По умолчанию не задан.
-
S
Шаг значения (ID8ParamInfo.Step
). По умолчанию не задан.
-
I
Интервал значения (ID8ParamInfo.Interval
). По умолчанию не задан.
-
W
Окно значения. Величина временного интервала, необходимого для расчета одного значения параметра.
Если запрашивается значение вычисляемого параметра за моментt
, то считается, что для расчета этого значения необходимы данные параметров-аргументов формулы за интервал(t; t + W)
.
-
WS
Шаг окна. Используется для организации расчётов за интервалы нарастающим итогом, например, среднее значение за истекшие часы с начала суток.
Если указанWS
, то в качестве исходных данных для значения с меткой времениt
будут использованы данные за интервал от ближайшего слева момента с шагомWS
доS
.
Для такого значенияI
иW
должны быть нулевыми, аS
ненулевым.
-
L
Задержка значения. Время, на которое отстают значения параметра от текущего времени или текущих меток времени параметров, используемых в формуле.
-
TZ
Строка описания часового пояса, в котором рассчитываются метки времени параметра. По умолчанию - UTC.
-
CS
Задает контрактный час или контрактные сутки. Задается в виде величиныD8TimeInterval
, которая будет прибавлена к исходной метке времени. Если указан, то применяется в часовом поясеTZ
.
-
O
Дополнительные опции параметра. Возможные значения:NoRealtime
У параметра не будет текущего значения и он не будет подписываться на изменения параметров-аргументов.NoArchive
У параметра не будет архивных значений. Все запросы архивных данных вернут пустой массив.IndependentTime
Меткка времени текущего значения параметра определяет только по текущему времени и настройкам параметра, а метки времени текущих значений параметров-аргументов не учитываются.
Примеры:
`N=Сумма`S=1s`L=10s`F(INST.1 + INST.2) `N=Усреднение`I=1h`F( TAVG(INST.1) ) `N=Нар_итог`WS=1D`S=1h`F( TAVG(INST.1) ) `N=Смена_сум`Сумма`I=1D`TZ=+5`CS=8h`F(TITG(INST.1))
В качестве контекста выполнения сценария FlMacro
используются свойства параметра, текущее время и настройки сессии, получаемые от хост-приложения (текущий часовой пояс, текущий язык и пр.).
Симуляционные параметры¶
Возвращает симулированное значение аналитической функции от времени. Опциональным добавляется псевдо-случайный шум.
<SimParamDef> ::= "`" [{ "`" <SimPropName> "=" <PropValue> }] "`SIM" ["(<TimeFunction>)"] <SimPropName> ::= <CommonPropName> | "T" | "S" | "I" | "L" | "P" | "FP" | "A" | "U" | "TU" | "T0" | "CS" | "TZ" | "KN" | "RT"
-
T
Тип параметра (ID8ParamInfo.ParamType
).
Может быть:A (Analogue)
- аналоговый (это значение по умолчанию)D (Discret)
- дискретный
-
S (step)
Шаг значения (ID8ParamInfo.Step
). По умолчанию - одна секунда (1s
).
-
I (interval)
Интервал значения (ID8ParamInfo.Interval
). По умолчанию - пустой, т.е. параметр будет мгновенным.
-
L (lag)
Задержка значения (только для данных реального времени).
-
P (period)
Период значения. По умолчанию - один час (1h
).
ЕслиP
указан, то считается, что аргументаx
функцииTimeFunction
задается в виде фазы в радианах. Иначе считается, чтоx
задается в виде разницы во времени относительно начала отсчетаT0
и измеряется в интервалах времениTU
.
-
FP (failure period)
Периодичность отказов. По умолчанию - не задана.
ЕслиFP
указан, то для значений будут сымитированы псевдослучайные периоды недостоверных данных. Длительность таких периодов задается этим параметром.
-
<TimeFunction>
Функцияf(x, A)
от времени и матрицы коэффициентов, используемая для расчета значений параметра.
В записи функции помимо математических операторов можно использовать аргументx
и коэффициентыa0, a1, ..., an
.
По умолчанию используется функцияa0 + sin(x) * a1
.
-
A
Вектор коэффициентов для функцииTimeFunction
. Задается в квадратных скобках, в виде чисел, разделенных пробелами. Первое число соответствет коэффициентуa0
, второе -a1
и т.д. Например:A=[0 1.1 2.2]
-
U (units)
Единицы измерения параметра.
-
TU (time unit)
Величина временного интервала, соответствующего единицы аргументаx
функцииTimeFunction
. По умолчанию1s
- одна секунда.
-
T0 (time zero)
Дата и время начала отсчета (нуля) аргументаx
функцииTimeFunction
. Задается в UTC. По умолчанию используется текущее время на момент создания параметра.
-
CS
Задает контрактный час или контрактные сутки. Задается в виде величиныD8TimeInterval
, которая будет прибавлена к исходной метке времени. Если указан, то применяется в часовом поясеTZ
.
-
TZ
Строка описания часового пояса, в котором рассчитываются метки времени параметра. По умолчанию - UTC.
-
KN (K noise)
Уровень шума, добавлемого к значению параметра. При нулевом значение шум не добавляется.
-
RT (realtime)
Признак того, нужно ли генерировать текущие данные для параметра. Еслиtrue
, то текущие данные генерируются, а архивные значения за будущее время считаются неизвестными. Еслиfalse
, то текущие данные не генерируются, а архивные значения считаются известными за любой момент времени.
Примеры:
`SIM `N=Синусоиды`U=см`S=10s`L=3s`P=2m`SIM(sin(x) + 0.7 * sin(3*x)) `N=Полином`RT=false`TU=1s`A=[1 2 3 4]`SIM(a0 + a1*x + a2*x*x + a3*x*x*x) `N=КонстантаПлюсШум`KN=1`SIM(10) `N=ВклВыкл`T=D`S=30s`P=1h`FP=1h`SIM(round(0.5 + sin(x) * sin(1 + x * 0.7) * 0.5 ))
Диагностические параметры¶
<DiagParamDef> ::= "`" [{ "`" <CommonPropName> "=" <PropValue> }] "`DIAG(<DiagParamSpec>)"
Значение DiagParamSpec
определяет подвид параметра:
-
ParamCount
Длина коллекции параметров инстанса. Включает и жесткие ссылки на параметры, слабые ссылки параметры, и пустые элементы, образовавшиеся после удаления параметров.
-
ParamAliveCount
Число параметров, за исключением параметров, которые были уничтожены сборщиком мусора (для параметров, созданных со слабой ссылкой).
-
ParamAllocatedCount
Число непустых записей в коллекции параметров. Включает жесткие и слабые ссылки на параметры, но не включает пустые элементы, образовавшиеся после удаления параметров.
-
ParamDeletedCount
Число удаленных параметров.
Примеры:
`DIAG(ParamCount) `N="Кол-во удаленных параметров"`U=шт`DIAG(ParamDeletedCount)
История версий¶
-
1.0.21.0908
- Добавлена поддерка атрибута
TZ
для симуляционных параметров.
- Добавлена поддерка атрибута
-
1.0.20.0304
- Добавлена возможность задания имен состояний в шкале.