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

Введение в OPC Data

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

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

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

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

  • Значение Value из серверного элемента последнее значение, которое Сервер OPC сохранил для того конкретного элемента. Значение в кэше обновляется каждый раз, когда сервер читает из устройства. Сервер читает значения из устройства в частоте обновления, заданной dagroup UpdateRate объекта свойство, и только когда элемент и группа оба активны. Вы управляете активным состоянием элемента или группы, использующей что 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 возвращает данные в структуре output от операции чтения. Каждый элемент массива структур содержит информацию об одном из чтения элементов.

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

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

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

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

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