exponenta event banner

Использование функции обратного вызова по умолчанию

Обзор примера обратного вызова

Для иллюстрации использования обратных вызовов в этом разделе представлен простой пример создания иерархии объектов OPC Toolbox™ и связывания функции обратного вызова с событием запуска, событием получения записей и событием остановки объекта OPC Data Access Group (dagroup объект). Сведения обо всех обратных вызовах событий, поддерживаемых панелью инструментов, см. в разделе Типы событий.

В примере используется функция обратного вызова по умолчанию, предоставляемая с панелью инструментов. opccallback. Функция обратного вызова по умолчанию отображает имя объекта вместе с информацией о типе произошедшего события и его времени. Сведения о создании собственных функций обратного вызова см. в разделе Создание и выполнение функций обратного вызова.

Шаг 1: Создание объектов группы OPC Toolbox

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

da = opcda('localhost','Matrikon.OPC.Simulation.1');
connect(da);
grp = addgroup(da,'CallbackTest');
itm = additem(grp,{'Random.Real8','Saw-toothed Waves.UInt2'});

Шаг 2: Настройка свойств задачи ведения журнала

В этом примере мы регистрируем 20 записей с интервалом 0,5 секунды.

grp.RecordsToAcquire = 20;
grp.UpdateRate = 0.5;

Шаг 3: Настройка свойств обратного вызова

Задайте значения трех свойств обратного вызова. В примере используется функция обратного вызова по умолчанию opccallback.

grp.StartFcn = @opccallback;
grp.StopFcn = @opccallback;
grp.RecordsAcquiredFcn = @opccallback;

В этом примере указывается частота генерации события получения записей.

grp.RecordsAcquiredFcnCount = 5;

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

Запустите dagroup объект. Объект регистрирует 20 с интервалом 0,5 секунды, а затем останавливается. С включенными тремя функциями обратного вызова объект выводит информацию о каждом событии по мере его возникновения. Событие получения записей происходит четыре раза для этого примера.

start(grp)
OPC Start event occurred at local time 18:52:38
   Group 'CallbackTest': 0 records acquired.
OPC RecordsAcquired event occurred at local time 18:52:41
   Group 'CallbackTest': 5 records acquired.
OPC RecordsAcquired event occurred at local time 18:52:44
   Group 'CallbackTest': 10 records acquired.
OPC RecordsAcquired event occurred at local time 18:52:47
   Group 'CallbackTest': 15 records acquired.
OPC RecordsAcquired event occurred at local time 18:52:49
   Group 'CallbackTest': 20 records acquired.
OPC Stop event occurred at local time 18:52:49
   Group 'CallbackTest': 20 records acquired.

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

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

disconnect(da)
delete(da)
clear da grp itm