Чтение записанных записей с диска в рабочее пространство MATLAB
S = OPCREAD('LogFileName')
S = opcread('LogFileName','PropertyName
','PropertyValue',...)
TSCell = opcread('LogFileName','DataType','timeseries')
[I,V,Q,TS,ET] = opcread('LogFileName','DataType',DType
,...)
S = OPCREAD('LogFileName')
Возвраты все доступные записи из файла с именем журнала OPC LogFileName
. Если расширение не задано как часть LogFileName
, затем .olf
используется.
S
является NRec
-by- 1
массив структур, где NRec
- количество возвращенных записей. S
содержит поля 'LocalEventTime'
и 'Items'
. LocalEventTime
является вектором даты, соответствующим времени локального события для этой записи. Items
является NItems
-by- 1
массив структур, содержащий поля, показанные ниже.
Имя поля | Описание |
---|---|
| Полный идентификатор товара, как вектор символов. |
| Значение данных. Тип данных зависит от исходного элемента |
| Качество данных, как вектор символов. |
| Время изменения значения в качестве вектора даты. |
S = opcread('LogFileName','
ограничивает данные, считанные из указанного файла журнала OPC, исходя из предоставленных свойств и значений. Допустимые имена свойства и значения свойств определены в таблице ниже. PropertyName
','PropertyValue',...)
Имя свойства | Значение свойства |
---|---|
| Укажите требуемые записи следующим |
| Укажите область значений дат для записей следующим |
| Укажите необходимые идентификаторы элементов в виде вектора символов, строки или массива. Если никакие записи не совпадают с требуемыми |
TSCell = opcread('LogFileName','DataType','timeseries')
присваивает данные, полученные из файла журнала OPC, массиву ячеек с объектами временных рядов. TSCell
содержит столько объектов временных рядов, сколько элементов в группе, с именем каждого объекта временных рядов, установленным на идентификатор элемента. Значение качества, сохраненное в объекте временных рядов, смещается от значения качества, возвращенного сервером OPC, на 128. Качество, отображаемое каждым, одинаковое. Поскольку каждая записанная запись может не содержать информацию для каждого элемента, объекты временных рядов имеют только столько точек данных, сколько записей, содержащих информацию об этом конкретном идентификаторе элемента.
[I,V,Q,TS,ET] = opcread('LogFileName','DataType',
присваивает данные, извлеченные из файла журнала OPC, отдельным массивам. Допустимые типы данных для DType
,...)DType
являются 'double'
, 'single'
, 'int8'
, 'int16'
, 'int32'
, 'uint8'
, 'uint16'
, 'uint32'
, 'logical'
, 'currency'
, 'date'
, и 'cell'
.
I
является 1
-by- NItem
массив ячеек с именами элементов.
V
является NRec
-by- NItem
массив значений с заданным типом данных. Если тип данных 'cell'
задан, V
- массив ячеек, содержащий данные в возвращаемом типе данных для каждого элемента. В противном случае V
является числовым массивом заданного типа данных.
Примечание
DType
должно быть установлено в 'cell'
при извлечении записей, содержащих векторы символов или массивы значений.
Q
является NRec
-by- NItem
массив векторов символов качества для каждого значения в V
.
TS
является NRec
-by- NItem
массив номеров дат MATLAB, представляющих время хранения соответствующего значения и качества на сервере OPC.
ET
является NRec
-by- 1
массив номеров дат MATLAB, соответствующий времени локального события для каждой записи.
Каждая записанная запись может не содержать информацию для каждого возвращенного элемента, поскольку данные для этого элемента, возможно, не изменились по сравнению с предыдущим обновлением. При возвращении данных в виде числовой матрицы отсутствующие столбцы элемента для этой записи заполняются следующим образом.
| Соответствующая запись значения устанавливается равной предыдущему значению этого элемента или равной |
| Для соответствующей записи качества задано значение |
| Соответствующая запись метки времени устанавливается на первую действительную метку времени для этой записи. |
Настройте и запустите задачу регистрации. Дождитесь завершения задачи.
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 = 'disk'; grp.RecordsToAcquire = 30; grp.LogFileName = 'ExOPCREAD.olf'; start(grp); wait(grp);
Загрузите первые две записи в структуру:
s = opcread('ExOPCREAD.olf','Records',[1, 2]);
Извлеките все данные и постройте график с легендой:
[itmID,val,qual,tStamp] = opcread('ExOPCREAD.olf', ... 'DataType','double'); plot(tStamp(:,1),val(:,1),tStamp(:,2),val(:,2)); legend(itmID); datetick x keeplimits