Журнал информации о событии
EventLog
содержит массив структур, который хранит информацию, связанную с событиями программного обеспечения OPC Toolbox™. Каждый элемент в массиве структур соответствует событию.
Каждый элемент в EventLog
структура содержит поля Type
и Data
. Type
значением может быть 'WriteAsync'
readasync
, 'CancelAsync'
, 'Shutdown'
запуск
остановка
, или 'Error'
.
Data
хранит привязанную к конкретному событию информацию как структуру. Для получения информации о полях, содержавшихся в Data
, обратитесь к связанным страницам с описанием свойства коллбэка. Например, чтобы найти информацию о полях содержавшейся в Данных для Start
событие, обратитесь к StartFcn
свойство.
Вы задаете максимальное количество событий, чтобы сохранить EventLogMax
свойство.
Обратите внимание на то, что некоторые события не хранятся в EventLog
. Если вы хотите сохранить эти события, необходимо задать коллбэк для того события.
Можно выполнить функцию обратного вызова, когда событие имеет место путем определения функции для связанного свойства коллбэка. Например, чтобы выполнить коллбэк, когда чтение асинхронное событие сгенерировано, вы используете 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]