Отслеживайте прогресс регистрации с коллбэками OPC Toolbox

В этом примере показано, как использовать коллбэки для мониторинга задачи логгирования OPC Data Access.

Используйте коллбэки для регистрации или отчета о событиях в задаче регистрации, для обновления графических интерфейсов пользователя для отображения состояния логгирования или для графического отображения записанных данных во время задачи регистрации.

НЕОБХОДИМЫЕ УСЛОВИЯ:

Шаг 1: настройте объекты OPC Toolbox

Создайте клиент, соедините и создайте связанные объекты для задачи регистрации.

da = opcda('localhost','Matrikon.OPC.Simulation.1');
connect(da);
grp = addgroup(da,'CallbackTest');
additem(grp,{'Random.Real8','Saw-toothed Waves.UInt2'});

Шаг 2. Настройте свойства задачи ведения журнала

Установите группу, чтобы получить 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

Шаг 3: настройте коллбэки

Используйте коллбэк по умолчанию, opccallback, чтобы отобразить событие запуска (StartFcn свойство), событие остановки (StopFcn свойство), и когда каждая последовательная 5 записей была приобретена (RecordsAcquiredFcn и RecordsAcquiredFcnCount свойства).

grp.StartFcn = @opccallback;
grp.StopFcn = @opccallback;
grp.RecordsAcquiredFcn = @opccallback;
grp.RecordsAcquiredFcnCount = 5;

Шаг 4: Запуск задачи регистрации

Запустите задачу ведения журнала и дождитесь ее завершения.

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.

Шаг 5: Очистка объектов OPC Toolbox

Отсоедините клиент от сервера и удалите объекты OPC Toolbox™ из памяти, когда они вам больше не нужны. Удаление объекта клиента также удаляет группу и объекты элемента.

disconnect(da)
delete(da)