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около-1 структурный массив, где NRec - количество возвращенных записей. S содержит поля 'LocalEventTime' и 'Items'. LocalEventTime - вектор даты, соответствующий времени локального события для этой записи. Items является NItemsоколо-1 структурный массив, содержащий поля, показанные ниже.

Имя поля

Описание

ItemID

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

Value

Значение данных. Тип данных определяется элементами DataType собственность.

Quality

Качество данных в виде символьного вектора. Описание см. в разделе Качество OPC.

TimeStamp

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

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

TSCell = getdata(GObj,'timeseries') и
TSCell = getdata(GObj, NRec,'timeseries') назначить данные, полученные от механизма панели инструментов, массиву ячеек объектов временных рядов. TSCell содержит столько объектов временных рядов, сколько элементов в группе, с именем каждого объекта временных рядов, установленным на идентификатор элемента. Значение качества, сохраненное в объекте временного ряда, смещено от значения качества, возвращенного сервером ОРС, на 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около-NItem массив ячеек имен элементов.

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

Примечание

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

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

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

ETime является NRecоколо-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