Получение информации о событии

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

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

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

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

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

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

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

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

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

Имя поля

Описание

GroupName

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

LocalEventTime

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

[year month day hour minute seconds]

TransID

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

Items

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

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

Имя поля

Описание

ItemID

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

Value

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

Quality

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

TimeStamp

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

[year month day hour minute seconds]

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

Массив структуры элементы для событий ошибок содержит 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 Toolbox

Этот пример создает иерархию объектов OPC Toolbox для сервера Matrikon™ Simulation Server. Чтобы запустить этот пример в вашей системе, необходимо установить сервер симуляции 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 объект клиента. Выполнение задачи группового логгирования сгенерировало два события: start и stop. Таким образом, значение EventLog свойство является массивом структур событий 1 на 2.

events = da.EventLog
events = 

1x2 struct array with fields:
    Type
    Data

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

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

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

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