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

Обзор примера коллбэка

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

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

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

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