Использование read
и readasync
функции, описанные в разделе Чтение Данных из элемента, можно получить информацию о Сервере OPC значениях элемента по запросу. Спецификация OPC Data Access предоставляет другой механизм получения клиентами информации о значениях серверных элементов. Этот механизм позволяет Серверу OPC уведомлять клиента при обновлении серверного элемента значения или качества. Этот механизм называется событием изменения данных. Программное обеспечение OPC Toolbox™ поддерживает уведомление о событиях изменения данных путем выполнения MATLAB® функция, когда событие изменения данных принимается от подключенного Сервера OPC. В этом разделе описывается использование уведомления об изменении данных.
Событие изменения данных происходит в dagroup
уровень объекта. Использование dagroup
свойства объекта, можно контролировать, сгенерировано ли событие изменения данных для конкретной группы, минимальное время между последовательными событиями и функция MATLAB, чтобы запустить, когда уведомление о событии получено и обработано программным обеспечением OPC Toolbox. Можно также контролировать, какие элементы в определенной группе должны контролироваться для изменения данных. Таким образом, можно управлять количеством и частотой событий изменения данных, которые MATLAB должен обработать. На занятой Сервер OPC можно также отключить уведомление об изменении данных для групп, которые в данный момент не заинтересованы.
В следующих разделах описывается, как управлять уведомлением об изменении данных.
Управление уведомлением об изменении данных для группы описывает, как отключить уведомление об изменении данных для dagroup
объект.
Временное отключение элементов в группе описывает, как управлять элементами группы, которые должны контролироваться для изменения данных.
Настройте ответ события изменения данных, предоставленный информацией о том, как настроить функцию MATLAB для запуска при возникновении события изменения данных.
Следующие свойства 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
свойства приведены в следующей таблице.
Активный | Подписка | Читать | Написать | Изменение данных |
---|---|---|---|---|
|
| Да | Да | Да |
|
| Да | Да | Нет |
|
| Нет | Нет | Нет |
|
| Нет | Нет | Нет |
Можно временно отключить элементы в группе, не удаляя элемент из группы. Когда вы отключаете daitem
объект, OPC-сервер больше не отслеживает изменения связанного значения серверного элемента и, следовательно, не будет генерировать события изменения данных, когда значение этого серверного элемента изменяется.
Можно отключить daitem
объект путем установки Active
этого объекта свойство к
'off'
. Можно снова включить daitem
объект путем установки Active
свойство к 'on'
.
Можно заставить Сервер OPC сгенерировать событие изменения данных для всех активных элементов в группе с помощью refresh
функция со dagroup
объект как первый аргумент. Этот Сервер OPC сгенерирует событие изменения данных, содержащее информацию для каждого активного элемента в группе.
Вы можете передать дополнительный второй аргумент в refresh
функция, чтобы проинструктировать Сервер OPC, где исходить значения данных, которые отправляются назад в событии изменения данных. Путем определения источника 'device'
, вы инструктируете Сервер OPC обновить значения с устройства. Путем определения источника 'cache'
(по умолчанию) вы инструктируете OPC-сервер возвращать значения из кэша OPC-сервера.
Программное обеспечение OPC Toolbox использует события изменения данных для ряда задач. При возникновении события изменения данных выполняются следующие действия:
The Value
, Quality
, и TimeStamp
свойства daitem
объект обновляется автоматически. Для получения дополнительной информации об этих свойствах смотрите OPC Data: Значение, Качество и TimeStamp.
Если на dagroup
объект регистрируется, событие изменения данных регистрируется в памяти и/или диске как запись. Для получения информации о логгировании см. раздел Журнал данных Сервер OPC.
Если на dagroup
DataChangeFcn
объекта свойство не пустое, эта функция вызывается с информацией о событии изменения данных. По умолчанию это свойство пустое, поскольку события изменения данных происходят часто. Можно настроить поведение тулбокса путем установки этого свойства, чтобы вызвать выбранную функцию. Для получения информации о событии изменения данных смотрите страницу с описанием для
DataChangeFcn
свойство.
Примечание
Если вы отключаете события изменения данных путем установки Subscription
свойство к 'off'
или Active
свойство к 'off'
, ни одно из перечисленных выше мероприятий не может быть осуществлено. Вы не можете изменить Active
или Subscription
свойства в то время как dagroup
объект ведет журнал, в противном случае задача ведения журнала может никогда не завершиться.
Одним из действий, которые происходят, когда программное обеспечение OPC Toolbox получает событие изменения данных от сервера OPC, является выполнение функции, заданной в DataChangeFcn
свойство. Задав для этого свойства имя функции, которую вы написали, можно полностью настроить поведение события изменения данных тулбокса. Для примера можно сконфигурировать dagroup
объект для мониторинга серверного элемента, которая обновляется из интерфейса оператора. При нажатии кнопки на интерфейсе оператора значение серверного элемента изменится, инициируя событие изменения данных в этой группе. Путем конфигурирования DataChangeFcn
свойство для запуска функции MATLAB, которая выполняет оптимизацию цикла управления, можно позволить оператору инициировать тест эффективности цикла управления для всех критических циклов управления на объекте.