Этот пример показывает вам, как использовать коллбэки, чтобы контролировать OPC Data доступ к задаче логгирования.
Используйте коллбэки, чтобы регистрировать или сообщить о событиях в задаче логгирования, обновить графические интерфейсы пользователя к состоянию show логгирования или графически отобразить записанные данные во время задачи логгирования.
ПРЕДПОСЫЛКИ:
Создайте клиент, подключение, и создайте сопоставленные объекты для задачи логгирования.
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)