Чтение агрегированных сервером данных с сервера OPC HDA
DObj = readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime)
[ItmID,Value,Quality,TimeStamp]
= readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime,'DataType')
S = readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime,'struct')
DObj = readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime) считывает обработанные данные с сервера OPC HDA, связанного с объектом клиента HdaObj, возвращая обработанные данные в opc.hda.Data DObj объекта. HdaObj должен быть скаляр клиентом OPC HDA, который уже подключен к серверу.
ItmList - строковые массивы или массив ячеек с идентификаторами элементов для чтения. AggregateType - запрашиваемый совокупный тип, полученный из Aggregates клиента свойство. AggregateInterval - интервал времени в секундах, через который сервер должен объединять данные. StartTime и EndTime являются номерами дат MATLAB, представляющими началу и концу время периода, в течение которого данные должны быть агрегированы.
[ItmID,Value,Quality,TimeStamp]
= readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime,' возвращает обработанные данные как отдельные массивы. DataType')'DataType' является одним из встроенных числовых массивов MATLAB ('double', 'single', и т.д.) или 'cell'. ItmID возвращается как 1-by-N массив ячеек из векторов символов. Value является массивом значений M-на-N. Quality является массивом идентификаторов качества M-на-N и TimeStamp - M-by-1 массив меток времени в виде номеров дат MATLAB.
S = readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime,'struct') возвращает обработанные данные как структуру, содержащую поля ItemID, Value, Quality и TimeStamp.
Создайте OPC HDA Client и подключите клиент к серверу:
hdaObj = opchda('localhost','Matrikon.OPC.Simulation'); connect(hdaObj);
Считайте средние значения одной минуты двух элементов за последний час:
aggregates = hdaObj.Aggregates
DObj = readProcessed(hdaObj,{'Random.Real8','Random.Real4'}, ...
aggregates.TIMEAVERAGE,60,now-1/24,now);