exponenta event banner

OPC Data: значение, качество и TimeStamp

Введение в OPC Data

Серверы OPC обеспечивают доступ ко многим серверным элементам. Чтобы уменьшать сетевой трафик между сервером и “устройством”, сопоставленным с каждым серверным элементом (полевой инструмент или ячейка памяти в PLC, SCADA или системе DCS), Сервер OPC хранит информацию о каждом серверном элементе в “кэше” сервера, обновляя ту информацию только так же часто как требуется, чтобы удовлетворить запросы всех клиентов, соединенных с тем сервером. Поскольку этот процесс приводит к данным в кэше, который не может отразить фактическое значение устройства, Сервер OPC предоставляет клиенту дополнительную информацию о том значении.

В этом разделе описываются Value OPC, Quality и свойства TimeStamp, и как они должны использоваться вместе, чтобы оценить информацию, предоставленную Сервером OPC.

Отношение между значением, качеством и TimeStamp

Каждый серверный элемент на Сервере OPC имеет три свойства, которые описывают состояние местоположения устройства или ячейки памяти, сопоставленной с тем серверным элементом:

  • Значение Value серверного элемента является последним значением, которое Сервер OPC сохранил для того конкретного элемента. Значение в кэше обновляется каждый раз, когда сервер читает из устройства. Сервер читает значения из устройства в частоте обновления, заданной свойством UpdateRate объекта dagroup, и только когда элемент и группа оба активны. Вы управляете активным состоянием элемента или группы, использующей что свойство Active объекта.

    Кроме того, для данных об аналоговом типе (данные с дополнительной OPC Foundation Recommended Properties 'High EU' и 'Low EU') процентное изменение между кэшируемым значением и значением устройства должно превысить свойство DeadbandPercent, заданное для того элемента для кэшируемого значения, которое будет обновлено.

  • QualityQuality серверного элемента является вектором символов, который представляет информацию о том, как хорошо значение кэша совпадает со значением устройства. Quality составлен из двух частей: главное качество, которое может быть 'Good', 'Bad', или 'Uncertain' и незначительным качеством, которое описывает причину главного качества. Для получения дополнительной информации о Quality см. Качество OPC.

    Quality серверного элемента может измениться без изменения Value. Например, если Сервер OPC попытается получить Value из устройства, но та операция перестала работать, Quality будет установлен в 'Bad'. Кроме того, когда вы измените свойство Active клиента, Quality изменится.

    Необходимо всегда исследовать Quality элемента перед использованием свойства Value того элемента.

  • TimeStampTimeStamp серверного элемента представляет новое время, когда сервер оценил это, устройство установило свойства Value и Quality того серверного элемента. TimeStamp может измениться без изменения Value. Например, если Сервер OPC получит значение из устройства, которое совпадает с текущим Value, свойство TimeStamp будет все еще обновлено, даже если свойство Value не будет.

Программное обеспечение OPC Toolbox™ обеспечивает доступ к Value, Quality и свойствам TimeStamp серверного элемента через свойства объекта daitem, сопоставленного с тем серверным элементом.

Как значение, качество и TimeStamp получены

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

Путем программное обеспечение OPC Toolbox использует три Механизма доступа OPC Data, описан в следующих разделах:

OPC Data возвращен в синхронные операции чтения

Вы инициируете синхронную операцию чтения при помощи функции read. Когда вы читаете из объекта dagroup, все элементы в той группе читаются в одной инструкции.

Можно задать источник синхронной операции чтения как 'cache' или 'device'. Если вы читаете из кэша, сервер просто возвращает значение в кэше. Если вы будете читать из устройства, сервер получит значение от устройства и обновит кэш прежде, чем отправить Значение, Качество и информацию о TimeStamp назад как часть операции чтения.

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

Каждый раз, когда вы читаете значения с помощью функции чтения, тулбокс обновляет объект daitem Value, Quality и свойства TimeStamp со значениями, считанными из сервера.

OPC Data возвращен в асинхронных операциях чтения

Вы инициируете асинхронную операцию чтения при помощи функции readasync. Когда вы читаете из объекта dagroup, все элементы в той группе читаются в одной инструкции.

Асинхронные операции чтения всегда используют устройство в качестве источника чтения. Каждый раз, когда вы отправляете асинхронный запрос чтения, сервер считает значения из устройств, соединенных к элементам. Сервер затем обновит Значение того серверного элемента, Качество и TimeStamp в кэше прежде, чем передать асинхронное событие чтения обратно в тулбокс.

Программное обеспечение OPC Toolbox возвращает информацию в асинхронную операцию чтения через чтение асинхронная структура события. Эта структура события хранится в журнале событий объекта клиента opcda, который можно получить доступ к использованию свойства EventLog клиента. Структура события также передается функции обратного вызова, заданной в свойстве ReadAsyncFcn объекта dagroup, который инициировал асинхронную операцию чтения. Для получения дополнительной информации о формате структур события смотрите Структуры События.

Когда асинхронная операция чтения успешно выполняется, в дополнение к возвращающимся данным через структуры события, тулбокс также обновляет Value, Quality и свойства TimeStamp связанного объекта daitem.

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

Третий механизм для получения данных из Сервера 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 выполняет следующие задачи:

  1. Value объекта daitem, Quality и свойства TimeStamp обновляются для каждого элемента, который включен в событие изменения данных.

  2. Функция обратного вызова, заданная свойством DataChangeFcn объекта dagroup, называется. Для получения дополнительной информации о коллбэках смотрите, Создают и Выполняют Функции обратного вызова.

  3. Если группа регистрирует данные, событие изменения данных хранится в памяти и/или на диске. Для получения дополнительной информации о журналировании смотрите, Регистрируют Данные о Сервере OPC.

  4. Если группа регистрирует, и количество полученных записей является кратным свойству RecordsAcquiredFcnCount объекта dagroup, то функция обратного вызова, заданная свойством RecordsAcquiredFcn объекта dagroup, называется. Для получения дополнительной информации о коллбэках смотрите, Создают и Выполняют Функции обратного вызова.

Для получения дополнительной информации о структуре события изменения данных см. Поля данных для Асинхронной Отмены, Изменение Данных, Ошибка, Асинхронное Чтение, и Запись Асинхронные События.