Считайте агрегированные данные сервера из сервера HDA OPC
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) считывает обработанные данные из Сервера HDA OPC, сопоставленного с объектом клиента HdaObj, возврат обработанных данных в opc.hda.Data объект DObj. HdaObj должен быть скалярный клиент HDA OPC, который уже соединяется с сервером.
ItmList массив строк или массив ячеек идентификаторов элемента, чтобы читать из. AggregateType требуемый составной тип, полученный из Aggregates клиента свойство. AggregateInterval временной интервал в секундах, что сервер должен агрегированные данные. StartTime и EndTime числа даты MATLAB, представляющие времена начала и конца периода, за который должны быть агрегированы данные.
[ItmID,Value,Quality,TimeStamp]
= readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime,' возвращает обработанные данные как отдельные массивы. DataType')'DataType' один из встроенных числовых массивов MATLAB ('double'единственный, и т.д.) или 'cell'. ItmID возвращен как массив ячеек из символьных векторов 1 на n. Value массив значений M на n. Quality массив качественных идентификаторов M на n и TimeStamp массив M-1 меток времени как числа даты MATLAB.
S = readProcessed(HdaObj,ItmList,AggregateType,AggregateInterval,StartTime,EndTime,'struct') возвращает обработанные данные как структуру, содержащую поля ItemIDЗначение, Quality и TimeStamp.
Создайте Клиент HDA OPC и соедините клиент с сервером:
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);