exponenta event banner

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

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

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