exponenta event banner

opcstruct2array

Преобразуйте 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

Смотрите также

|

Представлено до R2006a