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

Введение

Серверы UA OPC могут возвратить исторические данные как агрегат некоторой функции, выполняемой на истории данных в конкретные периоды. Когда вы запрашиваете обработанные данные с помощью readProcessed функция, вы задаете Агрегат, чтобы использовать, и Совокупный Интервал времени, за который можно выполнить ту Агрегатную функцию. Сервер затем выполняет Агрегатную функцию на каждом периоде Совокупного заданного Интервала, возвращая одно значение, сопоставленное со всеми данными в том интервале. Например, "Максимальная" Агрегатная функция возвращает максимальное значение в Совокупном Интервале; Агрегатная функция Области значений возвращает различие между самым высоким и самым низким значением в совокупном интервале.

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

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

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

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

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

Следующие функции заданы Основой OPC.

ФункцияОписание
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 данных в интервале включая Простые Значения Ограничения.
Для просмотра документации необходимо авторизоваться на сайте