Серверы OPC предоставляют доступ ко многим элементам сервера. Уменьшение сетевого трафика между сервером и «устройством», связанным с каждым элементом сервера (полевой прибор или область памяти в системе ПЛК, SCADA или РСУ) сервер OPC сохраняет информацию о каждом элементе сервера в «кэше» сервера, обновляя эту информацию только так часто, как это требуется для удовлетворения запросов всех клиентов, подключенных к этому серверу. Поскольку этот процесс приводит к появлению в кэше данных, которые могут не отражать фактическое значение устройства, сервер OPC предоставляет клиенту дополнительную информацию об этом значении.
В этом разделе описывается OPC. Value, Quality, и TimeStamp свойства и способ их совместного использования для оценки информации, предоставляемой сервером OPC.
Каждый элемент сервера на сервере OPC имеет три свойства, описывающие состояние устройства или местоположения памяти, связанного с этим элементом сервера:
Значение - Value элемента сервера является последним значением, сохраненным сервером OPC для данного элемента. Значение в кэше обновляется всякий раз, когда сервер считывает данные с устройства. Сервер считывает значения с устройства с частотой обновления, указанной dagroup объект UpdateRate и только в том случае, если элемент и группа активны. Управление активным статусом номенклатуры или группы осуществляется с помощью объектов Active собственность.
Кроме того, для данных аналогового типа (данные с дополнительными рекомендованными свойствами OPC Foundation 'High EU' и 'Low EU') процентное изменение между кэшированным значением и значением устройства должно превышать DeadbandPercent свойство, указанное для этого элемента для обновления кэшированного значения.
Качество - 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 Access Standard для чтения данных с сервера OPC. Панель инструментов использует эти три механизма различными способами для возврата данных из этих функций, для предоставления информации о событиях, для обновления свойств объектов панели инструментов и для регистрации данных в памяти и на диске.
В следующих разделах описывается, как программное обеспечение OPC Toolbox использует три механизма OPC Data Access:
OPC Data Return from Synchronous Read Operations описывает механизм синхронного чтения, используемый read функция.
OPC Data Return in Asynchronous Read Operations описывает механизм асинхронного чтения, используемый readasync функция.
OPC Данные, возвращенные из события изменения данных, описывает механизм уведомления о событии изменения данных, используемый с подписанными, активными группами, с функцией обновления и процессом ведения журнала панели инструментов.
Вы инициируете синхронное чтение с помощью read функция. При чтении из dagroup все элементы в этой группе считываются в одной инструкции.
Можно указать источник синхронной операции чтения как 'cache' или 'device'. При чтении из кэша сервер просто возвращает значение в кэше. При чтении с устройства сервер получает значение с устройства и обновляет кэш перед отправкой данных Value, Quality и TimeStamp обратно в рамках операции чтения.
Программа OPC Toolbox возвращает данные в структуре вывода из операции чтения. Каждый элемент массива структуры содержит информацию об одном из считанных элементов.
При каждом чтении значений с помощью функции чтения панель инструментов обновляет 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', то каждый раз, когда сервер обновляет значения кэша для элементов в этой группе, сервер отправляет событие изменения данных для этой группы объекту клиента. Событие изменения данных содержит информацию о каждом элементе, значение которого, качество или отметка времени обновлены.
Если установить Subscription свойство для 'off', то OPC-сервер не будет генерировать события изменения данных. Однако пока группа все еще активна, OPC-сервер продолжит сканирование всех активных элементов для этой группы со скоростью, указанной в UpdateRate собственность.
Когда сервер OPC генерирует событие изменения данных, программное обеспечение OPC Toolbox выполняет следующие задачи:
daitem объект Value, Quality, и TimeStamp обновляются свойства для каждого элемента, включенного в событие изменения данных.
Функция обратного вызова, определенная DataChangeFcn имущества dagroup вызывается объект. Дополнительные сведения о обратных вызовах см. в разделе Создание и выполнение функций обратного вызова.
Если группа регистрирует данные, событие изменения данных сохраняется в памяти и/или на диске. Дополнительные сведения о ведении журнала см. в разделе Регистрация данных сервера OPC.
Если группа ведет журнал, и количество полученных записей кратно RecordsAcquiredFcnCount имущества dagroup объект, затем функция обратного вызова, определенная RecordsAcquiredFcn имущества dagroup вызывается объект. Дополнительные сведения о обратных вызовах см. в разделе Создание и выполнение функций обратного вызова.
Дополнительные сведения о структуре события изменения данных см. в разделах Поля данных для отмены асинхронных событий, Изменение данных, Ошибка, Чтение асинхронных событий и Запись асинхронных событий.