exponenta event banner

Получить сведения о событии

Структуры событий

Каждое событие имеет набор информации, связанной с этим событием. Информация генерируется сервером OPC или программным обеспечением OPC Toolbox™ и сохраняется в структуре событий. Эта информация включает тип события, время возникновения события и другую специфичную для события информацию. Для некоторых событий панель инструментов записывает информацию о событии в opcda клиентский объект EventLog собственность. Также можно получить доступ к структуре события, связанной с событием, в функции обратного вызова.

Сведения о доступе к информации о событиях в функции обратного вызова см. в разделе Создание и выполнение функций обратного вызова.

Структура события содержит два поля: Type и Data. Например, это структура события для начального события.

Type: 'Start'
Data: [1x1 struct]

Type - это символьный вектор, указывающий тип события. Для начального события это поле содержит значение 'Start'.

Data - это структура, содержащая информацию о событии. Состав этой структуры варьируется в зависимости от того, какой тип события произошёл. Дополнительные сведения об информации, связанной с определенными событиями, см. в следующих разделах:

Поля данных для отмены асинхронных событий, изменения данных, ошибок, асинхронных событий чтения и записи

Для отмены асинхронных событий, изменения данных, ошибки, асинхронного чтения и записи асинхронных событий, Data структура содержит эти поля.

Имя поля

Описание

GroupName

Имя группы, связанной с событием.

LocalEventTime

Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB ®:

[year month day hour minute seconds]

TransID

Идентификатор транзакции для операции. В случае отмены асинхронного события TransID содержит идентификатор операции, которая была отменена.

Items

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

Items массив структуры для асинхронных событий чтения содержит следующие поля.

Имя поля

Описание

ItemID

Идентификатор элемента для этой записи в массиве структуры.

Value

Значение данных.

Quality

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

TimeStamp

Время обновления значения и качества сервером OPC. Время возвращается в формате вектора даты MATLAB:

[year month day hour minute seconds]

Items структурный массив для асинхронных событий записи содержит одно поле: ItemID.

Массив структуры Items для событий ошибки содержит ItemID поле и Error , содержащее символьный вектор, описывающий ошибку, возникшую для этого элемента.

Поля данных для событий запуска, остановки и записи полученных событий

Для запуска, остановки и записи полученных событий Data структура содержит эти поля.

Имя поля

Описание

GroupName

Имя группы, связанной с событием.

LocalEventTime

Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB:

[year month day hour minute seconds]

RecordsAcquired

Общее число записей, полученных в текущем сеансе ведения журнала.

Поля данных для событий завершения работы

Для событий отключения, Data структура содержит эти поля.

Имя поля

Описание

LocalEventTime

Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB:

[year month day hour minute seconds]

Reason

Вектор символов, содержащий причину, по которой сервер OPC обеспечивает завершение работы.

Поля данных для событий таймера

Для событий таймера, Data структура содержит эти поля.

Имя поля

Описание

LocalEventTime

Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB:

[year month day hour minute seconds]

Доступ к данным в журнале событий

В то время как opcda клиентский объект подключен, панель инструментов сохраняет информацию о событии в opcda клиентский объект EventLog собственность. Значение этого свойства представляет собой массив структур событий. Каждая структура представляет одно событие. Дополнительные сведения о структуре события для каждого типа события см. в разделе Структуры события.

Панель инструментов добавляет структуры событий к EventLog массив в порядке, в котором происходят события. Первая структура события отражает первое записанное событие, вторая структура события отражает второе записанное событие и так далее.

Примечание

События изменения данных, полученные события записей и события таймера не включены в EventLog. Структуры событий для этих событий (и всех других событий) доступны для функций обратного вызова. Дополнительные сведения см. в разделе Создание и выполнение функций обратного вызова.

Чтобы проиллюстрировать журнал событий, этот пример создает иерархию объектов OPC Toolbox, выполняет задачу ведения журнала, а затем проверяет объект EventLog свойство:

Шаг 1: Создание иерархии объектов панели инструментов OPC

В этом примере создается иерархия объектов панели инструментов OPC для сервера моделирования Matrikon™. Для запуска этого примера в системе необходимо установить сервер моделирования Matrikon. Можно также заменить значения, используемые при создании объектов, значениями для сервера, к которому можно получить доступ.

da = opcda('localhost','Matrikon.OPC.Simulation.1');
connect(da);
grp = addgroup(da,'CallbackTest');
itm1 = additem(grp,'Triangle Waves.Real8');

Шаг 2: Запуск задачи ведения журнала

Запустите dagroup объект. По умолчанию объект получает 120 записей с интервалом 0,5 секунды, а затем останавливается. Дождитесь, пока объект остановит запись данных в журнал.

start(grp)
wait(grp)

Шаг 3: Просмотр журнала событий

Доступ к EventLog имущества opcda клиентский объект. Выполнение задачи ведения журнала группы породило два события: запуск и остановка. Таким образом, значение EventLog свойство является массивом структур событий «1 на 2».

events = da.EventLog
events = 

1x2 struct array with fields:
    Type
    Data

Список событий, записанных в EventLog , проверьте содержимое Type поле.

{events.Type}
ans = 
    'Start'    'Stop'

Чтобы получить информацию о конкретном событии, перейдите к Data поле в этой структуре события. В примере извлекается информация о событии остановки.

stopdata = events(2).Data
stopdata = 
     LocalEventTime: [2004 3 2 21 33 45.8750]
          GroupName: 'CallbackTest'
    RecordsAcquired: 120

Шаг 4: Очистка

Всегда удаляйте объекты панели инструментов из памяти и переменные, которые ссылаются на них, когда они больше не нужны. Удаление opcda объект клиента также удаляет объекты группы и элемента.

disconnect(da)
delete(da)
clear da grp itm1