Считайте обработанные агрегированные данные

Историки могут включать способность обработать необработанные данные во множестве путей прежде, чем возвратить его в вас. Примеры такой обработки включают интерполяцию точек данных, усреднение во времени и вычисления стандартного отклонения. Обработка данных может быть очень полезной, когда существует большой объем данных по серверу. Инструктирование серверу возвратить только обработанный набор данных может значительно уменьшать время и объем переданных данных.

Можно обнаружить, который агрегируется, поддерживаются сервером путем запроса Aggregates свойство связанного объекта клиента HDA:

aggTypes = clientObject.Aggregates
aggTypes = 
OPC HDA Aggregate Types:
          Name         ID                                          Description                                        
    -----------------  --  -------------------------------------------------------------------------------------------
    INTERPOLATIVE      1   Retrieve interpolated values.
    TIMEAVERAGE        4   Retrieve the time weighted average data over the resample interval.
    MINIMUMACTUALTIME  7   Retrieve the minimum value in the resample interval and the timestamp of the minimum value.
    MINIMUM            8   Retrieve the minimum value in the resample interval.
    MAXIMUMACTUALTIME  9   Retrieve the maximum value in the resample interval and the timestamp of the maximum value.
    MAXIMUM            10  Retrieve the maximum value in the resample interval.

В предыдущем примере сервер поддерживает шесть типов агрегата.

Можно запросить обработанные данные с помощью readProcessed функционируйте и передающий в ID требуемого агрегата. Можно получить свойство ID с помощью объекта и соответствующего составного типа.

clientObject.Aggregates.TIMEAVERAGE

     4

hdareadProcessed = readProcessed(clientObject, ItemList, clientObject.Aggregates.TIMEAVERAGE, ...
                      AggregateInterval, StartTime, EndTime)
hdareadProcessed = 
1-by-5 OPC HDA Data object:
       ItemID         Value           Start TimeStamp           End TimeStamp                  Quality           
    ------------  --------------  -----------------------  -----------------------  -----------------------------
    Random.Int1    1 int8 value     2010-11-28 13:56:40.666  2010-11-29 13:56:40.666  1 unique quality [Calculated]
    Random.Boolean 1 logical value  2010-11-28 13:56:40.666  2010-11-29 13:56:40.666  1 unique quality [Calculated]

Требуемый временной интервал разделен во временные интервалы, которые вы обеспечиваете как четвертый аргумент функции. Агрегаты вычисляются на этих интервалах.

Кроме того, можно запросить, чтобы данные были возвращены как поддерживаемый тип данных MATLAB®. Смотрите Нативные типы данных MATLAB от Операций чтения.