В этом примере показано, как использовать коллбэки для мониторинга задачи логгирования OPC Data Access.
Используйте коллбэки для регистрации или отчета о событиях в задаче регистрации, для обновления графических интерфейсов пользователя для отображения состояния логгирования или для графического отображения записанных данных во время задачи регистрации.
НЕОБХОДИМЫЕ УСЛОВИЯ:
Создайте клиент, соедините и создайте связанные объекты для задачи регистрации.
da = opcda('localhost','Matrikon.OPC.Simulation.1'); connect(da); grp = addgroup(da,'CallbackTest'); additem(grp,{'Random.Real8','Saw-toothed Waves.UInt2'});
Установите группу, чтобы получить 20 записей с интервалом 0,5 секунды.
grp.RecordsToAcquire = 20; grp.UpdateRate = 0.5; disp(grp)
Summary of OPC Data Access Group Object: CallbackTest Object Parameters Group Type : private Item : 2-by-1 daitem object Parent : localhost/Matrikon.OPC.Simulation.1 Update Rate : 0.5 Deadband : 0% Object Status Active : on Subscription : on Logging : off Logging Parameters Records : 20 Duration : at least 10 seconds Logging to : memory Status : Waiting for START. 0 records available for GETDATA/PEEKDATA
Используйте коллбэк по умолчанию, opccallback, чтобы отобразить событие запуска (StartFcn
свойство), событие остановки (StopFcn
свойство), и когда каждая последовательная 5 записей была приобретена (RecordsAcquiredFcn
и RecordsAcquiredFcnCount
свойства).
grp.StartFcn = @opccallback; grp.StopFcn = @opccallback; grp.RecordsAcquiredFcn = @opccallback; grp.RecordsAcquiredFcnCount = 5;
Запустите задачу ведения журнала и дождитесь ее завершения.
start(grp) wait(grp)
OPC Start event occurred at local time 14:22:38 Group 'CallbackTest': 0 records acquired. OPC RecordsAcquired event occurred at local time 14:22:41 Group 'CallbackTest': 5 records acquired. OPC RecordsAcquired event occurred at local time 14:22:44 Group 'CallbackTest': 10 records acquired. OPC RecordsAcquired event occurred at local time 14:22:47 Group 'CallbackTest': 15 records acquired.
Отсоедините клиент от сервера и удалите объекты OPC Toolbox™ из памяти, когда они вам больше не нужны. Удаление объекта клиента также удаляет группу и объекты элемента.
disconnect(da) delete(da)