Преобразуйте 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
должен быть структурой, как возвращено функциями opcread
и getdata
. S
должен содержать поля LocalEventTime
и Items
. Поле Items
S
должно содержать поля ItemID
, Value
, Quality
и TimeStamp
.
ItmID
является 1
-by-nItm
массив ячеек, содержащий идентификаторы элемента всех уникальных элементов, найденных в поле ItemID
структур Items
в S
.
Val
является nRec
-by-nItm
, массив удваивается содержащий значение каждого элемента в ItmID
, каждый раз заданном TStamp
.
Qual
является nRec
-by-nItm
массив ячеек из символьных векторов, содержащий качество каждого значения в Val
.
TStamp
является nRec
-by-nItm
, массив удваивается содержащий метку времени для каждого значения в Val
.
EvtTime
является nRec
-by-1
, массив удваивается содержащий местное время, которое имело место каждое событие изменения данных.
Каждая строка Val
представляет данные из одной записи, полученной программным обеспечением OPC Toolbox™ при соответствующей записи в EvtTime
, в то время как каждый столбец Val
представляет временные ряды для соответствующего ID элемента в ItmID
.
[ItmID,Val,Qual,TStamp,EvtTime] = opcstruct2array(S,'
использует тип данных, заданный вектором символов DataType
')'
DataType
'
для массива значения. Допустимыми типами данных является 'double'
, 'single'
, 'int8'
, 'int16'
, 'int32'
, 'uint8'
, 'uint16'
, 'uint32'
, 'logical'
, 'currency'
, 'date'
и '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