События изменения данных и подписка

Введение в события изменения данных

Использование read и readasync функции, описанные в разделе Чтение Данных из элемента, можно получить информацию о Сервере OPC значениях элемента по запросу. Спецификация OPC Data Access предоставляет другой механизм получения клиентами информации о значениях серверных элементов. Этот механизм позволяет Серверу OPC уведомлять клиента при обновлении серверного элемента значения или качества. Этот механизм называется событием изменения данных. Программное обеспечение OPC Toolbox™ поддерживает уведомление о событиях изменения данных путем выполнения MATLAB® функция, когда событие изменения данных принимается от подключенного Сервера OPC. В этом разделе описывается использование уведомления об изменении данных.

Настройте объекты OPC Toolbox для событий изменения данных

Событие изменения данных происходит в dagroup уровень объекта. Использование dagroup свойства объекта, можно контролировать, сгенерировано ли событие изменения данных для конкретной группы, минимальное время между последовательными событиями и функция MATLAB, чтобы запустить, когда уведомление о событии получено и обработано программным обеспечением OPC Toolbox. Можно также контролировать, какие элементы в определенной группе должны контролироваться для изменения данных. Таким образом, можно управлять количеством и частотой событий изменения данных, которые MATLAB должен обработать. На занятой Сервер OPC можно также отключить уведомление об изменении данных для групп, которые в данный момент не заинтересованы.

В следующих разделах описывается, как управлять уведомлением об изменении данных.

Управление уведомлением об изменении данных для группы

Следующие свойства dagroup управление объектом, уведомляет ли сервер группу изменений данных об элементах этой группы:

  • UpdateRate: The UpdateRate свойство определяет скорость, с которой Сервер OPC должно контролировать значения серверного элемента и генерировать события изменения данных. Даже если значение серверного элемента изменяется чаще, чем скорость обновления, Сервер OPC будет генерировать изменение данных только в интервале, заданном частотой обновления.

  • Subscription: The Subscription свойство определяет, будет ли Сервер OPC генерировать событие изменения данных для группы. Когда вы создаете dagroup объект, Subscription для свойства задано значение 'on'. Когда вы устанавливаете Subscription свойство к 'off'сервер OPC не должен генерировать события изменения данных для этой группы.

  • Active: The Active свойство должно быть 'on' для событий изменения данных, которые будут сгенерированы. Когда вы создаете dagroup объект, Active для свойства задано значение 'on'. Когда вы устанавливаете Active свойство к 'off'Вы удаляете любую возможность считывать данные из группы, будь то с помощью операций чтения или событий изменения данных.

Набор сводных данных для чтения, записи и изменения данных для Active и Subscription свойства приведены в следующей таблице.

Активный

Подписка

Читать

Написать

Изменение данных

'on'

'on'

Да

Да

Да

'on'

'off'

Да

Да

Нет

'off'

'on'

Нет

Нет

Нет

'off'

'off'

Нет

Нет

Нет

Временное отключение элементов в группе

Можно временно отключить элементы в группе, не удаляя элемент из группы. Когда вы отключаете daitem объект, OPC-сервер больше не отслеживает изменения связанного значения серверного элемента и, следовательно, не будет генерировать события изменения данных, когда значение этого серверного элемента изменяется.

Можно отключить daitem объект путем установки Active этого объекта свойство к 'off'. Можно снова включить daitem объект путем установки Active свойство к 'on'.

Форсирование события изменения данных

Можно заставить Сервер OPC сгенерировать событие изменения данных для всех активных элементов в группе с помощью refresh функция со dagroup объект как первый аргумент. Этот Сервер OPC сгенерирует событие изменения данных, содержащее информацию для каждого активного элемента в группе.

Вы можете передать дополнительный второй аргумент в refresh функция, чтобы проинструктировать Сервер OPC, где исходить значения данных, которые отправляются назад в событии изменения данных. Путем определения источника 'device', вы инструктируете Сервер OPC обновить значения с устройства. Путем определения источника 'cache' (по умолчанию) вы инструктируете OPC-сервер возвращать значения из кэша OPC-сервера.

Как программное обеспечение OPC Toolbox обрабатывает события изменения данных

Программное обеспечение OPC Toolbox использует события изменения данных для ряда задач. При возникновении события изменения данных выполняются следующие действия:

  1. The Value, Quality, и TimeStamp свойства daitem объект обновляется автоматически. Для получения дополнительной информации об этих свойствах смотрите OPC Data: Значение, Качество и TimeStamp.

  2. Если на dagroup объект регистрируется, событие изменения данных регистрируется в памяти и/или диске как запись. Для получения информации о логгировании см. раздел Журнал данных Сервер OPC.

  3. Если на dagroup DataChangeFcn объекта свойство не пустое, эта функция вызывается с информацией о событии изменения данных. По умолчанию это свойство пустое, поскольку события изменения данных происходят часто. Можно настроить поведение тулбокса путем установки этого свойства, чтобы вызвать выбранную функцию. Для получения информации о событии изменения данных смотрите страницу с описанием для DataChangeFcn свойство.

    Примечание

    Если вы отключаете события изменения данных путем установки Subscription свойство к 'off' или Active свойство к 'off', ни одно из перечисленных выше мероприятий не может быть осуществлено. Вы не можете изменить Active или Subscription свойства в то время как dagroup объект ведет журнал, в противном случае задача ведения журнала может никогда не завершиться.

Настройка отклика события изменения данных

Одним из действий, которые происходят, когда программное обеспечение OPC Toolbox получает событие изменения данных от сервера OPC, является выполнение функции, заданной в DataChangeFcn свойство. Задав для этого свойства имя функции, которую вы написали, можно полностью настроить поведение события изменения данных тулбокса. Для примера можно сконфигурировать dagroup объект для мониторинга серверного элемента, которая обновляется из интерфейса оператора. При нажатии кнопки на интерфейсе оператора значение серверного элемента изменится, инициируя событие изменения данных в этой группе. Путем конфигурирования DataChangeFcn свойство для запуска функции MATLAB, которая выполняет оптимизацию цикла управления, можно позволить оператору инициировать тест эффективности цикла управления для всех критических циклов управления на объекте.