Чтобы проиллюстрировать, как использовать коллбэки, этот раздел представляет простой пример, который создает иерархию объектов OPC Toolbox™ и сопоставляет функцию обратного вызова с событием запуска, полученным событием записей и событием остановки OPC Data доступ к Групповому объекту (dagroup
объект. Для получения информации обо всех коллбэках события, поддержанных тулбоксом, смотрите Типы событий.
Пример использует функцию обратного вызова по умолчанию, которой предоставляют тулбокс, opccallback
. Функция обратного вызова по умолчанию отображает имя объекта наряду с информацией о типе события, которое произошло и когда это произошло. Чтобы изучить, как создать ваши собственные функции обратного вызова, смотрите, Создают и Выполняют Функции обратного вызова.
Этот пример создает иерархию объектов OPC Toolbox для Сервера Симуляции Matrikon™. Чтобы запустить этот пример в вашей системе, у вас должен быть установленный Сервер Симуляции 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