Совокупные функции OPC UA

Введение

Серверы OPC UA могут возвращать исторические данные как совокупность некоторых функций, выполняемых в истории данных в определенные периоды. Когда вы запрашиваете обработанные данные с помощью readProcessed функция задает Агрегат, который будет использоваться, и Совокупный интервал времени, в течение которого будет выполняться эта Агрегатная функция. Затем сервер выполняет функцию Aggregate в каждом периоде заданного совокупного интервала, возвращая одно значение, сопоставленное со всеми данными в этом интервале. Для примера совокупная функция «Maximum» возвращает максимальное значение в совокупном интервале; Функция Области значений Aggregate возвращает различие между самым высоким и самым низким значением в совокупном интервале.

Агрегаты OPC UA представлены в MATLAB® вектором символов, определяющим Совокупную Функцию, или классом перечисления opc.ua.AggregateFnId. Для примера, чтобы задать, что readProcessed операция использует Максимальную Совокупную Функцию, можно использовать любой из следующих синтаксисов:

readProcessed(UaClient,NodeList,'Maximum',...)
readProcessed(UaClient,NodeList,opc.ua.AggregateFnId.Maximum,...)

Доступные совокупные функции на сервере OPC UA

Когда клиент OPC UA соединяется с сервером OPC UA, клиент AggregateFunctions свойство хранит список совокупных функций, поддерживаемых этим сервером. Серверы не должны реализовывать каждую совокупную функцию, определенную стандартом OPC UA, но должны публиковать совокупные функции, поддерживаемые этим сервером. Используйте AggregateFunctions свойство, чтобы убедиться, что совокупная необходимая функция поддерживается сервером. Однако обратите внимание, что сервер может реализовать эту функцию не для всех узлов Переменной на сервере. При попытке извлечь обработанные данные с сервера может возникнуть ошибка «Неподдерживаемая агрегатная функция», даже если совокупная функция сообщается как поддерживаемая сервером.

Стандартные агрегатные функции OPC UA

Следующие функции определяются OPC Foundation.

ФункцияОписание
AnnotationCountПолучите количество аннотаций в интервале.
AverageИзвлеките среднее значение данных за интервал.
CountПолучите количество необработанных значений за интервал.
DeltaНайдите различие между Start и End значения в интервале.
DeltaBoundsНайдите различие между StartBound и EndBound значения в интервале.
DurationBadНайдите общую длительность времени в интервале, в течение которого данные являются плохими.
DurationGoodНайдите общую длительность времени в интервале, в течение которого данные хороши.
DurationInStateNonZeroПолучите время нахождения логического или числового значения в ненулевом состоянии с помощью простых ограничивающих значений.
DurationInStateZeroНайдите время, когда логическое или числовое значение находилось в нулевом состоянии с помощью простых ограничивающих значений.
EndНайдите значение в конце интервала с помощью Интерполированных ограничивающих значений.
EndBoundНайдите значение в конце интервала с помощью Простых ограничивающих значений.
InterpolativeВ начале каждого интервала извлеките вычисленное значение из точек данных на любой стороне запрошенной временной метки.
MaximumПолучите максимальное необработанное значение в интервале с временной меткой начала интервала.
Maximum2Найдите максимальное значение в интервале, включая Простые Ограничительные Значения.
MaximumActualTimeНайдите максимальное значение в интервале и временной метке максимального значения.
MaximumActualTime2Получите максимальное значение с фактической временной меткой, включая Простые Ограничительные Значения.
MinimumПолучите минимальное необработанное значение в интервале с временной меткой начала интервала.
Minimum2Найдите минимальное значение в интервале, включая Простые Ограничительные Значения.
MinimumActualTimeНайдите минимальное значение в интервале и временной метке минимального значения.
MinimumActualTime2Найдите минимальное значение с фактической временной меткой, включая Простые Ограничительные Значения.
NumberOfTransitionsНайдите количество изменений в диапазоне от нуля до ненулевого, которое испытывало логическое или числовое значение в интервале.
PercentBadПолучите процент данных (от 0 до 100) в интервале, который имеет неправильный StatusCode.
PercentGoodПолучите процент данных (от 0 до 100) в интервале, который имеет хороший StatusCode.
RangeНайдите различие между Minimum и Maximum значений в течение интервала.
Range2Найдите различие между Minimum2 и Maximum2 значений в течение интервала.
StandardDeviationPopulationНайдите стандартное отклонение для интервала для полного населения (n), которое включает Простые Ограничительные Значения.
StandardDeviationSampleНайдите стандартное отклонение для интервала для выборки населения (n-1).
StartПолучите значение в начале интервала с помощью Интерполированных ограничивающих значений.
StartBoundПолучите значение в начале интервала с помощью Простых ограничивающих значений.
TimeAverageИзвлеките взвешенные по времени средние данные за интервал с помощью Интерполированных ограничивающих значений.
TimeAverage2Извлеките взвешенные по времени средние данные за интервал с помощью Простых Ограничительных Значений.
TotalНайдите общую сумму (интеграл времени) данных за интервал с помощью Интерполированных Ограничительных Значений.
Total2Найдите общую сумму (интеграл времени) данных за интервал с помощью Простых Ограничительных Значений.
VariancePopulationНайдите отклонение для интервала, рассчитанное StandardDeviationPopulation который включает в себя Простые Ограничительные Значения.
VarianceSampleНайдите отклонение для интервала, рассчитанное StandardDeviationSample.
WorstQualityПолучите худший код StatusCode данных в интервале.
WorstQuality2Получите худший код StatusCode данных в интервале, включая Простые Ограничительные Значения.