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

Введение в OPC Data

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

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

Связь между значением, качеством и TimeStamp

Каждый серверный элемент на 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 объект, сопоставленный с этим серверным элементом.

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

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

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

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

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

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

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

Каждый раз, когда вы читаете значения с помощью функции read, тулбокс обновляет 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 объект. Сервер обновляет значения 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 выполняет следующие задачи:

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

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

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

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

Для получения дополнительной информации о структуре события изменения данных см. Поля данных для Cancel Async, Data Change, Error, Read Async и Write Async Events.