opcread

Чтение записанных записей с диска в рабочее пространство 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 массив структур, содержащий поля, показанные ниже.

Имя поля

Описание

ItemID

Полный идентификатор товара, как вектор символов.

Value

Значение данных. Тип данных зависит от исходного элемента DataType свойство.

Quality

Качество данных, как вектор символов.

TimeStamp

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

S = opcread('LogFileName','PropertyName','PropertyValue',...) ограничивает данные, считанные из указанного файла журнала OPC, исходя из предоставленных свойств и значений. Допустимые имена свойства и значения свойств определены в таблице ниже.

Имя свойства

Значение свойства

'Records'

Укажите требуемые записи следующим [startRec endRec]. Если ни одни записи не входит в эти границы, opcread возвращает пустые выходы.

'Dates'

Укажите область значений дат для записей следующим [startDt endDt]. Даты должны быть в MATLAB® формат номера даты. Если ни одни записи не входит в эти границы, opcread возвращает пустые выходы.

'ItemIDs'

Укажите необходимые идентификаторы элементов в виде вектора символов, строки или массива. Если никакие записи не совпадают с требуемыми ItemIDs, OPCREAD возвращает пустые выходы.

TSCell = opcread('LogFileName','DataType','timeseries') присваивает данные, полученные из файла журнала OPC, массиву ячеек с объектами временных рядов. TSCell содержит столько объектов временных рядов, сколько элементов в группе, с именем каждого объекта временных рядов, установленным на идентификатор элемента. Значение качества, сохраненное в объекте временных рядов, смещается от значения качества, возвращенного сервером OPC, на 128. Качество, отображаемое каждым, одинаковое. Поскольку каждая записанная запись может не содержать информацию для каждого элемента, объекты временных рядов имеют только столько точек данных, сколько записей, содержащих информацию об этом конкретном идентификаторе элемента.

[I,V,Q,TS,ET] = opcread('LogFileName','DataType',DType,...) присваивает данные, извлеченные из файла журнала OPC, отдельным массивам. Допустимые типы данных для 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, соответствующий времени локального события для каждой записи.

Каждая записанная запись может не содержать информацию для каждого возвращенного элемента, поскольку данные для этого элемента, возможно, не изменились по сравнению с предыдущим обновлением. При возвращении данных в виде числовой матрицы отсутствующие столбцы элемента для этой записи заполняются следующим образом.

V

Соответствующая запись значения устанавливается равной предыдущему значению этого элемента или равной NaN если предыдущего значения нет.

Q

Для соответствующей записи качества задано значение 'Repeat'.

TS

Соответствующая запись метки времени устанавливается на первую действительную метку времени для этой записи.

Примеры

Настройте и запустите задачу регистрации. Дождитесь завершения задачи.

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

См. также

| | | |

Представлено до R2006a