exponenta event banner

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

Введение

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

Агрегаты 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) в интервале с неверным кодом.
PercentGoodИзвлеките процент данных (от 0 до 100) в интервале, который имеет хороший код состояния.
RangeИзвлеките разницу между Minimum и Maximum значения по интервалу.
Range2Извлеките разницу между Minimum2 и Maximum2 значения по интервалу.
StandardDeviationPopulationИзвлеките стандартное отклонение для интервала для полного заполнения (n), которое включает простые граничные значения.
StandardDeviationSampleИзвлеките стандартное отклонение для интервала для выборки совокупности (n-1).
StartИзвлеките значение в начале интервала с помощью интерполированных граничных значений.
StartBoundИзвлеките значение в начале интервала с помощью функции «Простые граничные значения».
TimeAverageИзвлеките средневзвешенные по времени данные за интервал с помощью интерполированных граничных значений.
TimeAverage2Извлеките средневзвешенные по времени данные за интервал с помощью функции «Простые граничные значения».
TotalИзвлеките общее значение (интеграл времени) данных за интервал с помощью интерполированных граничных значений.
Total2Извлеките общее значение (интеграл времени) данных за интервал с помощью функции «Простые граничные значения».
VariancePopulationИзвлеките отклонение для интервала, рассчитанное StandardDeviationPopulation который включает простые граничные значения.
VarianceSampleИзвлеките отклонение для интервала, рассчитанное StandardDeviationSample.
WorstQualityИзвлеките наихудший код состояния данных в интервале.
WorstQuality2Извлеките наихудший код состояния данных в интервале, включая простые граничные значения.