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