Журнал информации о событиях
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