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