Серверы 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 данных в интервале включая Простые Значения Ограничения. |