Чтение обработанных агрегированных данных

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

Можно узнать, какие агрегаты поддерживаются сервером, запросив 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 функция и передача в идентификаторе требуемой совокупности. Вы можете получить идентификатор свойства с помощью объекта и соответствующего совокупного типа.

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 из операций чтения.