Здравствуйте. Разрабатываю OPC сервер для нашего оборудования.
Прошу поделиться соображениями - вопрос в следующем.

OPC сервер с заданной частотой получает данные от аппаратуры. "Мост" между OPC и оборудованием - dll-ка с функциями доступа к данным.
Если вручную запустить OPC сервер, начнется периодический опрос устройства.
Теперь к сути вопроса. OPC-клиент может в любой момент пожелать принудительно прочитать набор переменных - неважно, синхронно или асинхронно. Я не пойму, как это согласовать с внутренним режимом опроса устройства OPC сервером? Чтение данных с устройства занимает в среднем 20 сек, и как должен реагировать сервер, если в то время, как он читает данные с оборудования, поступает синхронный/асинхронный запрос от клиента на чтение переменных? Если чтение требуется из КЭШа - понятно, выдасть уже прочитанные данные... а если указан параметр OPC_DS_DEVICE?

Еще один вопрос.
OPC сервер при опросе устройства читает сразу несколько блоков данных - статус аварий, статус модулей и т.п. Клиент же может запрашивать ограниченный набор переменных, то есть он подразумевает, что читаться будут только они. Но при поступлении такого запроса на сервер будут читаться все данные , а на это требуется больше времени. Состояние аппаратуры описывается множеством переменных, и библиотека для работы с устройством содержит всего 3 функции для чтения всех этих данных. Не разрабатывать же для чтения каждого параметра свою функцию, которую можно бы было вызывать при запросе клиентом определенного параметра?