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 содержит столько объектов временных рядов, сколько элементов в группе, с именем каждого объекта временных рядов, установленным на идентификатор элемента. Значение качества, сохраненное в объекте временных рядов, смещается от значения качества, возвращенного сервером OPC, на 128. Качество, отображаемое каждым, одинаковое. Поскольку каждая записанная запись может не содержать информацию для каждого элемента, объекты временных рядов имеют только столько точек данных, сколько записей, содержащих информацию об этом конкретном идентификаторе элемента.

[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