Журнал информации о событиях
EventLog содержит массив структур, который хранит информацию, относящуюся к событиям программного обеспечения OPC Toolbox™. Каждый элемент массива структур соответствует событию.
Каждый элемент в EventLog структура содержит поля Type и Data. The Type значение может быть 'WriteAsync', 'ReadAsync', 'CancelAsync', 'Shutdown', 'Start', 'Stop', или 'Error'.
Data сохраняет специфическую для события информацию как структуру. Для получения информации о полях, содержащихся в Data, см. Связанное свойство коллбэка страниц с описанием. Для примера, чтобы найти информацию о полях, содержащихся в Данных для Start событие, см. StartFcn свойство.
Вы задаете максимальное количество событий для хранения со EventLogMax свойство.
Обратите внимание, что некоторые события не хранятся в EventLog. Если необходимо хранить эти события, необходимо задать коллбэк для этого события.
Вы можете выполнить функцию обратного вызова, когда событие происходит путем определения функции для связанного свойства коллбэка. Для примера, чтобы выполнить коллбэк, когда сгенерировано событие read async, вы используете ReadAsyncFcn свойство.
Если журнал событий заполнен (количество событий в журнале равняется значению EventLogMax свойство) и новое событие будет получено, самое старое событие будет удалено, чтобы освободить пространство для нового события. Вы очищаете журнал событий, используя cleareventlog функция.
|
Доступ |
Только для чтения |
|
Применяется к |
|
|
Тип данных |
Массив структур |
|
Значения |
Значение по умолчанию является пустой матрицей ( |
Следующий пример создает клиент и конфигурирует группу с двумя элементами. Выполняется 30-секундная задача логгирования, и через 10 секунд считываются значения элемента. Когда задача регистрации останавливается, журнал событий извлекается и проверяется.
da = opcda('localhost', 'Matrikon.OPC.Simulation');
connect(da);
grp = addgroup(da, 'EvtLogExample');
itm1 = additem(grp, 'Random.Real8');
itm2 = additem(grp, 'Triangle Waves.UInt1');
set(grp, 'UpdateRate', 1, 'RecordsToAcquire', 30);
start(grp);
pause(10);
tid = readasync(grp);
wait(grp);
el = get(da, 'EventLog')
el = get(da, 'EventLog')
el =
1x3 struct array with fields:
Type
DataТеперь рассмотрим первое событие, которое является стартовым событием.
el(1)
ans =
Type: 'Start'
Data: [1x1 struct]Поле Данные содержит следующую информацию.
el(1).Data
ans =
LocalEventTime: [2004 1 13 16 16 25.1790]
GroupName: 'EvtLogExample'
RecordsAcquired: 0Вторым событием является ReadAsync событие. Исследуйте Data структура и первый элемент Items структура.
el(2)
ans =
Type: 'ReadAsync'
Data: [1x1 struct]
el(2).Data
ans =
LocalEventTime: [2004 1 13 16 16 35.2100]
TransID: 2
GroupName: 'EvtLogExample'
Items: [2x1 struct]
el(2).Data.Items(1)
ans =
ItemID: 'Random.Real8'
Value: 2.4619e+003
Quality: 'Good: Non-specific'
TimeStamp: [2004 1 13 16 16 35.1870]CancelAsyncFcn, DataChangeFcn, EventLogMax, ErrorFcn, ReadAsyncFcn, StartFcn, StopFcn, WriteAsyncFcn