Преобразование данных OPC из структуры в формат временных рядов
TS = opcstruct2timeseries(S)
TS = opcstruct2timeseries(S) преобразует структуру данных OPC S в массив ячеек объектов временных рядов. S должен быть структурой в формате, который getdata и opcread функции возвращаются. S должны содержать поля LocalEventTime и Items. Items поле S должны содержать поля ItemID, Value, Quality, и TimeStamp.
Массив ячеек TS содержит столько объектов временных рядов, сколько имеется уникальных идентификаторов элементов в структуре данных, причем имя каждого объекта временных рядов указывает на идентификатор элемента. Объект временного ряда содержит качество, хотя это значение смещено на 128 от значения качества, возвращаемого сервером ОРС. Однако качества те же. Поскольку каждая записанная в журнал запись может не содержать информации для каждого элемента, объекты временных рядов имеют только столько точек данных, сколько записей, содержащих информацию об этом конкретном идентификаторе элемента.
Настройте и запустите задачу ведения журнала для 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);
Преобразуйте структуру в объекты временных рядов и постройте каждый по отдельности:
ts = opcstruct2timeseries(s);
subplot(2,1,1); plot(ts{1});
subplot(2,1,2); plot(ts{2});