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