exponenta event banner

getdata

Получите регистрируемые записи от механизма OPC Toolbox до рабочего пространства MATLAB

Синтаксис

S = getdata(GObj)
S = getdata(GObj,NRec)
TSCell = getdata(GObj,'timeseries')
TSCell = getdata(GObj, NRec,'timeseries')
[ItmID,Val,Qual,TStamp,ETime] = getdata(GObj,'DataType')
[ItmID,Val,Qual,TStamp,ETime] = getdata(GObj,NRec,'DataType')

Описание

S = getdata(GObj) возвращает количество записей, заданных в свойстве RecordsToAcquire объекта dagroup GObj, от механизма программного обеспечения OPC Toolbox™. GObj должен быть скалярным объектом dagroup.

S является NRec-by-1 массив структур, где NRec является количеством возвращенных записей. S содержит поля 'LocalEventTime' и 'Items'. LocalEventTime является соответствием вектора даты локальному времени события для той записи. Items является NItems-by-1 массив структур, содержащий поля, показанные ниже.

Имя поля

Описание

ItemID

Полностью определенное имя тега, как вектор символов.

Value

Значение данных. Тип данных задан свойством DataType элемента.

Quality

Качество данных, как вектор символов. Для описания см. Качество OPC.

TimeStamp

Время значение было изменено как вектор даты.

S = getdata(GObj,NRec) получает первые записи NRec из механизма тулбокса.

TSCell = getdata(GObj,'timeseries') и
TSCell = getdata(GObj, NRec,'timeseries') присвойте данные, полученные от механизма тулбокса до массива ячеек объектов временных рядов. TSCell содержит столько же объектов временных рядов, сколько существуют элементы в группе с именем каждого набора объекта временных рядов к ID элемента. Качественное значение, сохраненное в объекте временных рядов, смещается от качественного значения, возвращенного Сервером OPC 128. Качество, отображенное каждым, является тем же самым. Поскольку каждая регистрируемая запись не может содержать информацию для каждого элемента, объекты временных рядов имеют только столько же точек данных, сколько существуют записи, содержащие информацию о том конкретном ID элемента.

[ItmID,Val,Qual,TStamp,ETime] = getdata(GObj,'DataType') и
[ItmID,Val,Qual,TStamp,ETime] = getdata(GObj,NRec,'DataType') присвойте полученные данные от механизма тулбокса до отдельных массивов. Допустимыми типами данных является 'double', 'single', 'int8', 'int16', 'int32', 'uint8', 'uint16', 'uint32', 'logical', 'currency', 'date' и 'cell'.

ItmID является 1-by-NItem массив ячеек названий товара.

Val является NRec-by-NItem массив значений с заданным типом данных. Если тип данных 'cell' задан, то Val является массивом ячеек, содержащим данные в возвращенном типе данных для каждого элемента. В противном случае Val является числовым массивом заданного типа данных.

Примечание

' DataType ' должен быть установлен в 'cell' при получении записей, содержащих векторы символов или массивы значений.

Qual является NRec-by-NItem массив качественных векторов символов для каждого значения в Val.

TStamp является NRec-by-NItem массив чисел даты MATLAB®, представляющих время, когда соответствующее значение и качество хранились на Сервере OPC.

ETime является NRec-by-1 массив чисел даты MATLAB, соответствуя локальному времени события для каждой записи.

Каждая регистрируемая запись не может содержать информацию для каждого возвращенного элемента, поскольку данные для того элемента не могли измениться от предыдущего обновления. Когда данные возвращены как числовая матрица, недостающие столбцы элемента для той записи заполнены следующие.

Аргумент

Поведение для Пропавших без вести элементов

Val

Соответствующая запись значения установлена в предыдущее значение того элемента, или к NaN, если нет никакого предыдущего значения.

Qual

Соответствующая качественная запись установлена в 'Repeat'.

TStamp

Соответствующая запись метки времени установлена в первую допустимую метку времени для той записи.

getdata является блокирующейся функцией, которая возвращает контроль выполнения в рабочее пространство MATLAB, когда одному из следующих условий отвечают:

  • Требуемое количество записей становится доступным.

  • Операция журналирования автоматически останавливается механизмом. Если меньше записей доступно, чем номер, который требуют, предупреждение сгенерировано, и возвращены все доступные записи.

  • Вы выпускаете Ctrl+C. Задача журналирования не останавливается, и никакие данные не удалены из механизма тулбокса.

Когда getdata завершается, свойство RecordsAvailable объекта уменьшается количеством записей, возвращенных getdata.

Примеры

Сконфигурируйте и запустите задачу журналирования в течение 60 секунд данных.

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.RecordsToAcquire = 60;
start(grp);

Получите первые две записи в структуру. Эта операция ожидает по крайней мере двух записей.

s = getdata(grp,2)

Получите все остающиеся данные в двойной массив и постройте их с легендой.

[itmID,val,qual,tStamp] = getdata(grp,'double');
plot(tStamp(:,1),val(:,1),tStamp(:,2),val(:,2));
legend(itmID);
datetick x keeplimits

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

Функции

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