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