Серверы OPC обеспечивают доступ ко многим серверным элементам. Чтобы уменьшать сетевой трафик между сервером и “устройством”, сопоставленным с каждым серверным элементом (полевой инструмент или ячейка памяти в PLC, SCADA или системе DCS), Сервер OPC хранит информацию о каждом серверном элементе в “кэше” сервера, обновляя ту информацию только так же часто как требуется, чтобы удовлетворить запросам всех клиентов, соединенных с тем сервером. Поскольку этот процесс приводит к данным в кэше, который не может отразить фактическое значение устройства, Сервер OPC предоставляет клиенту дополнительную информацию о том значении.
В этом разделе описываются Value
OPC,
Quality
, и TimeStamp
свойства, и как они должны использоваться вместе, чтобы оценить информацию, предоставленную Сервером OPC.
Каждый серверный элемент на Сервере OPC имеет три свойства, которые описывают состояние местоположения устройства или ячейки памяти, сопоставленной с тем серверным элементом:
Значение Value
из серверного элемента последнее значение, которое Сервер OPC сохранил для того конкретного элемента. Значение в кэше обновляется каждый раз, когда сервер читает из устройства. Сервер читает значения из устройства в частоте обновления, заданной dagroup
UpdateRate
объекта свойство, и только когда элемент и группа оба активны. Вы управляете активным состоянием элемента или группы, использующей что
Active
объекта свойство.
Кроме того, для данных об аналоговом типе (данные с дополнительной OPC Foundation Recommended Properties 'High EU'
и 'Low EU'
) процентное изменение между кэшируемым значением и значением устройства должно превысить DeadbandPercent
свойство, заданное для того элемента для кэшируемого значения, которое будет обновлено.
Quality — Quality
из серверного элемента вектор символов, который представляет информацию о том, как хорошо значение кэша совпадает со значением устройства. Quality
составлен из двух частей: главное качество, которое может быть 'Good'
, 'Bad'
, или 'Uncertain'
, и незначительное качество, которое описывает причину главного качества. Для получения дополнительной информации о Quality
, см. Качество OPC.
Quality
из серверного элемента может измениться без Value
изменение. Например, если Сервер OPC пытается получить Value
от устройства, но той операции сбои, Quality
будет установлен в 'Bad'
. Кроме того, когда вы изменяете Active
клиента свойство,
Quality
изменится.
Необходимо всегда исследовать Quality
из элемента перед использованием Value
свойство того элемента.
TimeStamp — TimeStamp
из серверного элемента представляет новое время, когда сервер оценил это, устройство установило Value
и Quality
свойства того серверного элемента. TimeStamp
может измениться без Value
изменение. Например, если Сервер OPC получает значение из устройства, которое совпадает с текущим Value
, TimeStamp
свойство будет все еще обновлено, даже если Value
свойство не.
Программное обеспечение OPC Toolbox™ обеспечивает доступ к Value
, Quality
, и TimeStamp
свойства серверного элемента через свойства daitem
объект сопоставлен с тем серверным элементом.
Программное обеспечение OPC Toolbox предоставляет всем трем OPC Data доступ к Стандартным механизмам для чтения данных из Сервера OPC. Тулбокс использует эти три механизма в различных способах возвратить данные из тех функций, обеспечить информацию о событии, обновить свойства объектов тулбокса, и к данным логов к памяти и диску.
Путем программное обеспечение OPC Toolbox использует три Механизма доступа OPC Data, описан в следующих разделах:
OPC Data, Возвращенный в Синхронные Операции чтения, описывает синхронный механизм чтения, используемый read
функция.
OPC Data, Возвращенный в Асинхронных Операциях чтения, описывает асинхронный механизм чтения, используемый readasync
функция.
OPC Data, Возвращенный в Событие Изменения Данных, описывает механизм уведомления о событии изменения данных, используемый с подписанными, активными группами с функцией обновления, и процессом логгирования тулбокса.
Вы инициируете синхронную операцию чтения при помощи read
функция. Когда вы читаете из dagroup
объект, все элементы в той группе читаются в одной инструкции.
Можно задать источник синхронной операции чтения как 'cache'
или 'device'
. Если вы читаете из кэша, сервер просто возвращает значение в кэше. Если вы будете читать из устройства, сервер получит значение от устройства и обновит кэш прежде, чем отправить Значение, Качество и информацию о TimeStamp назад как часть операции чтения.
Программное обеспечение OPC Toolbox возвращает данные в структуре output от операции чтения. Каждый элемент массива структур содержит информацию об одном из чтения элементов.
Каждый раз, когда вы читаете значения с помощью функции чтения, тулбокс обновляет 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
объект. Сервер обновляет Значение, Качество и значения TimeStamp в кэше для элементов в той группе в необходимой частоте обновления. Обратите внимание на то, что, если устройство не может ввести значение в то время, сервер может уменьшать уровень, на котором это обновляет значение в кэше сервера для того элемента.
Если вы устанавливаете Active
элемента свойство к
'off'
, сервер прекратит сканировать тот элемент. Необходимо установить Active
свойство к 'on'
для сервера, чтобы отсканировать элемент снова.
Если вы устанавливаете свойство Active dagroup
возразите против 'off'
, сервер прекратит сканировать все элементы в той группе. Можно все еще выполнить асинхронные операции чтения и синхронные операции чтения от 'device'
, но никакие операции, включающие кэш сервера, не могут быть выполнены. Необходимо установить Active
свойство к 'on'
включить операции, включающие кэш сервера.
Если Subscription
свойство для dagroup
объект установлен в 'on'
, затем каждый раз значения кэша обновлений сервера для элементов в той группе, сервер отправит событие изменения данных за той группой к объекту клиента. Событие изменения данных содержит информацию о каждом элементе чье Значение, Качество или обновленный TimeStamp.
Если вы устанавливаете Subscription
свойство к 'off'
, затем Сервер OPC не сгенерирует события изменения данных. Однако, пока группа все еще активна, Сервер OPC продолжит сканировать все активные элементы для той группы на уровне, заданном UpdateRate
свойство.
Когда Сервер OPC генерирует событие изменения данных, программное обеспечение OPC Toolbox выполняет следующие задачи:
daitem
объект Value
, Quality
, и TimeStamp
свойства обновляются для каждого элемента, который включен в событие изменения данных.
Функция обратного вызова задана DataChangeFcn
свойство dagroup
объект называется. Для получения дополнительной информации о коллбэках смотрите, Создают и Выполняют Функции обратного вызова.
Если группа регистрирует данные, событие изменения данных хранится в памяти и/или на диске. Для получения дополнительной информации о логгировании смотрите, Регистрируют Данные о Сервере OPC.
Если группа регистрирует, и количество полученных записей является кратным RecordsAcquiredFcnCount
свойство dagroup
объект, затем функция обратного вызова задана RecordsAcquiredFcn
свойство dagroup
объект называется. Для получения дополнительной информации о коллбэках смотрите, Создают и Выполняют Функции обратного вызова.
Для получения дополнительной информации о структуре события изменения данных см. Поля данных для Асинхронной Отмены, Изменение Данных, Ошибка, Асинхронное Чтение, и Запись Асинхронные События.