Преобразуйте OPC Data от структуры до формата массивов
[ItmID,Val,Qual,TStamp,EvtTime] = opcstruct2array(S)
[ItmID,Val,Qual,TStamp,EvtTime] = opcstruct2array(S,'DataType')
[ItmID,Val,Qual,TStamp,EvtTime] = opcstruct2array(S) преобразует структуру OPC Data S в отдельные массивы для ID элемента, значения, качества, метки времени, и время события. S должна быть структура, как возвращено getdata и opcread функции. S должен содержать поля LocalEventTime и Items. Items поле S должен содержать поля ItemIDЗначение, Quality, и TimeStamp.
ItmID 1- nItm массив ячеек, содержащий идентификаторы элемента всех уникальных элементов, найден в ItemID поле Items структуры в S.
Val nRec- nItm массив типа double, содержащий значение каждого элемента в ItmID, каждый раз заданный TStamp.
Qual nRec- nItm массив ячеек из символьных векторов, содержащий качество каждого значения в Val.
TStamp nRec- nItm массив типа double, содержащий метку времени для каждого значения в Val.
EvtTime nRec- 1 массив типа double, содержащий местное время каждое событие изменения данных, произошел.
Каждая строка Val представляет данные из одной записи, полученной программным обеспечением OPC Toolbox™ при соответствующей записи в EvtTime, в то время как каждый столбец Val представляет временные ряды для соответствующего ID элемента в ItmID.
[ItmID,Val,Qual,TStamp,EvtTime] = opcstruct2array(S,' использует тип данных, заданный вектором символов DataType')'DataType' для массива значения. Допустимыми типами данных является 'double'единственныйint8int16int32uint8uint16uint32логический, 'currency'дата, и 'cell'.
Сконфигурируйте и запустите задачу логгирования в течение 30 секунд данных:
da = opcda('localhost', 'Matrikon.OPC.Simulation'); connect(da); grp = addgroup(da, 'ExOPCREAD'); itm1 = additem(grp, 'Triangle Waves.Real8'); itm2 = additem(grp, 'Saw-Toothed Waves.Int2'); grp.LoggingMode = 'memory'; grp.UpdateRate = 0.5; grp.RecordsToAcquire = 60; start(grp); wait(grp);
Получите записи в структуру:
s = getdata(grp);
Преобразуйте структуру в double массив и график это с легендой:
[itmID, val, qual, tStamp] = opcstruct2array(s,'double'); plot(tStamp(:,1), val(:,1), tStamp(:,2), val(:,2)); legend(itmID); datetick x keeplimits