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