Чтобы проиллюстрировать, как использовать коллбэки, в этом разделе представлен простой пример, который создает иерархию объектов OPC Toolbox™ и связывает функцию обратного вызова с событием запуска, записывает полученное событие и событие остановки объекта OPC Data Access Group (dagroup
объект). Дополнительные сведения обо всех коллбэках событий, поддерживаемых тулбоксом, см. в разделе Типы событий.
В примере используется функция обратного вызова по умолчанию, предоставляемая тулбоксом opccallback
. Функция обратного вызова по умолчанию отображает имя объекта вместе с информацией о типе события, которое произошло и когда оно произошло. Чтобы узнать, как создать собственные функции обратного вызова, смотрите Создание и Выполнение функций обратного вызова.
Этот пример создает иерархию объектов 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'});
В данном примере мы регистрируем 20 записей с интервалом 0,5 секунды.
grp.RecordsToAcquire = 20; grp.UpdateRate = 0.5;
Установите значения трех свойств коллбэка. В примере используется функция обратного вызова по умолчанию opccallback
.
grp.StartFcn = @opccallback; grp.StopFcn = @opccallback; grp.RecordsAcquiredFcn = @opccallback;
В данном примере задайте, как часто генерировать событие получения записей.
grp.RecordsAcquiredFcnCount = 5;
Запустите 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.
Всегда удаляйте объекты тулбокса из памяти, и переменные, которые ссылаются на них, когда они вам больше не нужны.
disconnect(da) delete(da) clear da grp itm