Каждое событие имеет набор информации, связанной с этим событием. Информация генерируется сервером OPC или программным обеспечением OPC Toolbox™ и сохраняется в структуре событий. Эта информация включает тип события, время возникновения события и другую специфичную для события информацию. Для некоторых событий панель инструментов записывает информацию о событии в opcda клиентский объект EventLog собственность. Также можно получить доступ к структуре события, связанной с событием, в функции обратного вызова.
Сведения о доступе к информации о событиях в функции обратного вызова см. в разделе Создание и выполнение функций обратного вызова.
Структура события содержит два поля: Type и Data. Например, это структура события для начального события.
Type: 'Start' Data: [1x1 struct]
Type - это символьный вектор, указывающий тип события. Для начального события это поле содержит значение 'Start'.
Data - это структура, содержащая информацию о событии. Состав этой структуры варьируется в зависимости от того, какой тип события произошёл. Дополнительные сведения об информации, связанной с определенными событиями, см. в следующих разделах:
Для отмены асинхронных событий, изменения данных, ошибки, асинхронного чтения и записи асинхронных событий, Data структура содержит эти поля.
Имя поля | Описание |
|---|---|
| Имя группы, связанной с событием. |
| Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB ®:
|
| Идентификатор транзакции для операции. В случае отмены асинхронного события |
| Структурный массив, содержащий информацию о каждом элементе в асинхронной операции. Отмененная асинхронная структура событий не содержит этого поля. |
Items массив структуры для асинхронных событий чтения содержит следующие поля.
Имя поля | Описание |
|---|---|
| Идентификатор элемента для этой записи в массиве структуры. |
| Значение данных. |
| Качество данных в виде символьного вектора. |
| Время обновления значения и качества сервером OPC. Время возвращается в формате вектора даты MATLAB:
|
Items структурный массив для асинхронных событий записи содержит одно поле: ItemID.
Массив структуры Items для событий ошибки содержит ItemID поле и Error , содержащее символьный вектор, описывающий ошибку, возникшую для этого элемента.
Для запуска, остановки и записи полученных событий Data структура содержит эти поля.
Имя поля | Описание |
|---|---|
| Имя группы, связанной с событием. |
| Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB:
|
| Общее число записей, полученных в текущем сеансе ведения журнала. |
Для событий отключения, Data структура содержит эти поля.
Имя поля | Описание |
|---|---|
| Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB:
|
| Вектор символов, содержащий причину, по которой сервер OPC обеспечивает завершение работы. |
Для событий таймера, Data структура содержит эти поля.
Имя поля | Описание |
|---|---|
| Абсолютное время возникновения события, возвращенное в формате вектора даты MATLAB:
|
В то время как opcda клиентский объект подключен, панель инструментов сохраняет информацию о событии в opcda клиентский объект EventLog собственность. Значение этого свойства представляет собой массив структур событий. Каждая структура представляет одно событие. Дополнительные сведения о структуре события для каждого типа события см. в разделе Структуры события.
Панель инструментов добавляет структуры событий к EventLog массив в порядке, в котором происходят события. Первая структура события отражает первое записанное событие, вторая структура события отражает второе записанное событие и так далее.
Примечание
События изменения данных, полученные события записей и события таймера не включены в EventLog. Структуры событий для этих событий (и всех других событий) доступны для функций обратного вызова. Дополнительные сведения см. в разделе Создание и выполнение функций обратного вызова.
Чтобы проиллюстрировать журнал событий, этот пример создает иерархию объектов OPC Toolbox, выполняет задачу ведения журнала, а затем проверяет объект EventLog свойство:
В этом примере создается иерархия объектов панели инструментов OPC для сервера моделирования Matrikon™. Для запуска этого примера в системе необходимо установить сервер моделирования Matrikon. Можно также заменить значения, используемые при создании объектов, значениями для сервера, к которому можно получить доступ.
da = opcda('localhost','Matrikon.OPC.Simulation.1'); connect(da); grp = addgroup(da,'CallbackTest'); itm1 = additem(grp,'Triangle Waves.Real8');
Запустите dagroup объект. По умолчанию объект получает 120 записей с интервалом 0,5 секунды, а затем останавливается. Дождитесь, пока объект остановит запись данных в журнал.
start(grp) wait(grp)
Доступ к 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Всегда удаляйте объекты панели инструментов из памяти и переменные, которые ссылаются на них, когда они больше не нужны. Удаление opcda объект клиента также удаляет объекты группы и элемента.
disconnect(da) delete(da) clear da grp itm1