Серверы OPC обеспечивают доступ ко многим серверным элементам. Чтобы уменьшить сетевой трафик между сервером и «устройством», связанным с каждым серверным элементом (полевой прибор или место памяти в системе PLC, SCADA или DCS) сервер OPC хранит информацию о каждом элементе сервера в «кэше» сервера, обновляя эту информацию только так часто, как требуется для удовлетворения запросов всех клиентов, подключенных к этому серверу. Поскольку этот процесс результатов в данных в кэше, которые могут не отражать фактическое значение устройства, Сервер OPC предоставляет клиенту дополнительную информацию об этом значении.
В этом разделе описывается OPC Value
, Quality
, и TimeStamp
свойства и как они должны использоваться вместе для оценки информации, предоставляемой Серверу OPC.
Каждый серверный элемент на OPC-сервере имеет три свойства, которые описывают состояние устройства или места памяти, сопоставленного с этим серверным элементом:
Value - The Value
из серверного элемента является последним значением, которое сервер OPC хранил для этого конкретного элемента. Значение в кэше обновляется каждый раз, когда сервер считывает данные с устройства. Сервер считывает значения с устройства со частотой обновления, заданной dagroup
UpdateRate
объекта свойство, и только когда элемент и группа активны. Вы управляете активным статусом элемента или группы, используя
Active
этого объекта свойство.
В сложение, для данных аналогового типа (данные с дополнительными рекомендуемыми свойствами OPC Foundation 'High EU'
и 'Low EU'
) процентное изменение между кэшированным значением и значением устройства должно превысить DeadbandPercent
свойство, заданное для этого элемента в порядок для кэшированного значения, которое должно быть обновлено.
Quality - The Quality
серверного элемента является вектор символов, которое представляет информацию о том, насколько хорошо значение кэша соответствует значению устройства. The Quality
состоит из двух частей: основное качество, которое можно 'Good'
, 'Bad'
, или 'Uncertain'
, и незначительное качество, которое описывает причину основного качества. Для получения дополнительной информации о Quality
, см. «Качество OPC».
The Quality
из серверного элемента может измениться без Value
изменение. Для образца, если Сервер OPC пытается получить Value
от устройства, но эта операция прекращает работать, Quality
будет установлено значение 'Bad'
. Кроме того, когда вы меняете Active
клиента свойство,
Quality
изменится.
Вы должны всегда исследовать Quality
элемента перед использованием Value
свойство этого элемента.
TimeStamp - The TimeStamp
из серверного элемента представляет самое последнее время, когда сервер оценивал, что устройство установило Value
и Quality
свойства этого серверного элемента. The TimeStamp
может измениться без Value
изменение. Для примера, если Сервер OPC получает значение от устройства, которое совпадает с текущим Value
, а TimeStamp
свойство все еще будет обновлено, даже если Value
свойство не является.
Программное обеспечение OPC Toolbox™ обеспечивает доступ к Value
, Quality
, и TimeStamp
свойства серверного элемента через свойства daitem
объект, сопоставленный с этим серверным элементом.
Программное обеспечение OPC Toolbox предоставляет все три механизма OPC Data Доступа Standard для считывания данных с Сервером OPC. Тулбокс использует эти три механизма различными способами для возврата данных из этих функций, для предоставления информации о событиях, для обновления свойств объектов тулбокса и для регистрации данных в памяти и диске.
То, как программное обеспечение OPC Toolbox использует три механизма Доступ, описано в следующих разделах:
OPC Data Returned from Synchronous Read Operations описывает механизм синхронного чтения, используемый read
функция.
OPC Data, возвращенный в операциях асинхронного чтения, описывает механизм асинхронного чтения, используемый readasync
функция.
OPC Data Returned from a Data Change Event описывает механизм уведомления о событиях изменения данных, используемый с подписанными активными группами, с функцией обновления и процессом логгирования тулбоксов.
Вы инициируете операцию синхронного чтения с помощью read
функция. Когда вы читаете с dagroup
объект, все элементы в этой группе считываются в одной инструкции.
Можно задать источник операции синхронного чтения следующим 'cache'
или 'device'
. Если вы читаете из кэша, сервер просто возвращает значение в кэше. Если вы читаете с устройства, сервер получит значение с устройства и обновит кэш перед отправкой информации Value, Quality и TimeStamp обратно в рамках операции read.
Программное обеспечение OPC Toolbox возвращает данные в структуру output от операции read. Каждый элемент массива структур содержит информацию об одном из прочитанных элементов.
Каждый раз, когда вы читаете значения с помощью функции read, тулбокс обновляет daitem
Value
объекта,
Quality
, и TimeStamp
свойства со значениями, считанными с сервера.
Вы инициируете операцию асинхронного чтения с помощью readasync
функция. Когда вы читаете с dagroup
объект, все элементы в этой группе считываются в одной инструкции.
Операции асинхронного чтения всегда используют устройство в качестве источника чтения. Каждый раз, когда вы отправляете запрос на асинхронное чтение, сервер считывает значения с устройств, подключенных к элементам. Сервер обновит этот серверный элемент Значение, Качество и TimeStamp в кэше перед отправкой события асинхронного чтения обратно в тулбокс.
Программное обеспечение OPC Toolbox возвращает информацию из операции асинхронного чтения через структуру асинхронного события чтения. Эта структура события сохранена в opcda
журнал событий клиентского объекта, к которому можно получить доступ с помощью EventLog
свойство клиента. Структура события также передается в функцию обратного вызова, определенную в ReadAsyncFcn
свойство dagroup
объект, который инициировал операцию асинхронного чтения. Дополнительные сведения о формате структур событий см. в разделе Структуры событий.
Когда асинхронная операция чтения завершается успешно, в дополнение к возврату данных через структуры событий, тулбокс также обновляет Value
, Quality
, и TimeStamp
свойства связанного daitem
объект.
Третий механизм получения данных из Сервера OPC включает событие изменения данных. Сервер OPC генерирует событие изменения данных для группы в период, заданный UpdateRate
свойство при изменении значения или качества элемента в группе. Вы не должны специально запрашивать событие изменения данных, потому что Сервер OPC автоматически сгенерирует событие изменения данных. Однако можно в любой момент форсировать событие изменения данных с помощью refresh
функция.
Событие изменения данных будет сгенерировано Сервером OPC только для активной, подписанной группы, содержащей активные элементы. Вы управляете активным статусом dagroup
объекты и daitem
объекты путем установки их Active
свойство. Вы управляете подписанным статусом dagroup
объект путем установки Subscription
свойство dagroup
объект.
Следующие точки описывают, как Сервер OPC генерирует событие изменения данных:
Когда вы конфигурируете группу, вы задаете скорость, с которой сервер должен сканировать элементы этой группы. Эта скорость управляется UpdateRate
свойство для dagroup
объект. Сервер обновляет значения Value, Quality и TimeStamp в кэше для элементов этой группы с необходимой частотой обновления. Обратите внимание, что если устройство не может предоставить значение за это время, сервер может снизить скорость обновления значения в кэше сервера для этого элемента.
Если вы задаете элемент Active
свойство к 'off'
сервер перестанет сканировать этот элемент. Вы должны задать Active
свойство к 'on'
чтобы сервер снова осмотрел элемент.
Если вы задаете свойство Active dagroup
объект к 'off'
сервер прекратит сканирование всех элементов этой группы. Вы по-прежнему можете выполнять асинхронные операции чтения и синхронные операции чтения из 'device'
, но никакие операции с использованием кэша сервера не могут быть выполнены. Вы должны задать Active
свойство к 'on'
для активации операций с использованием кэша сервера.
Если на Subscription
свойство для dagroup
для объекта задано значение 'on'
затем каждый раз, когда сервер обновляет значения кэша для элементов этой группы, сервер отправляет событие изменения данных для этой группы объекту клиента. Событие изменения данных содержит информацию о каждом элементе, Значение, Качество или TimeStamp которого обновлено.
Если вы задаете Subscription
свойство к 'off'
, тогда Сервер OPC не будет генерировать события изменения данных. Однако, пока группа все еще активна, Сервер OPC продолжит сканировать все активные элементы для этой группы со скоростью, заданной UpdateRate
свойство.
Когда Сервер OPC генерирует событие изменения данных, программное обеспечение OPC Toolbox выполняет следующие задачи:
The daitem
Value объекта
, Quality
, и TimeStamp
свойства обновляются для каждого элемента, включенного в событие изменения данных.
Функция обратного вызова, заданная DataChangeFcn
свойство dagroup
вызывается объект. Для получения дополнительной информации о коллбэках см. Раздел «Создание и выполнение функций обратного вызова».
Если группа регистрирует данные, событие изменения данных хранится в памяти и/или на диске. Для получения дополнительной информации о логгировании смотрите Логгирование Серверы OPC данных.
Если группа ведет журнал, и количество полученных записей кратно RecordsAcquiredFcnCount
свойство dagroup
объект, затем функция обратного вызова, заданная как RecordsAcquiredFcn
свойство dagroup
вызывается объект. Для получения дополнительной информации о коллбэках см. Раздел «Создание и выполнение функций обратного вызова».
Для получения дополнительной информации о структуре события изменения данных см. Поля данных для Cancel Async, Data Change, Error, Read Async и Write Async Events.