Пришел к выводу, что когда ТМ5 работает в качестве ОРС клиента, то при обмене по режиму Advise использует Async I/O 1.0, т.е. спецификацию OPC Data Access версии 2.0 не подерживает, а использует устаревшую OPC DA 1.0
Неплохо бы подправит данную ситуацию, а то некоторые ОРС сервера уже Async I/O 1.0 не реализуют
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Названия режимов - ASYNC и ADVISE являются специфичными для TraceMode.
В режиме ADVISE клиент OPC TraceMode осуществляет подписку на изменения значений параметров по интерфейсам IDataObject или IOPCDataCallback (в зависимости от версии OPC-сервера). При этом RTM не инициирует запросов на чтение параметров - он только принимает оповещения об изменении значений по инициативе сервера.
В режиме ASYNC RTM сам периодически опрашивает OPC-сервер, используя интерфейсы IOPCAsyncIO/IOPCAsyncIO2. При этом RTM сохраняет способность принимать уведомления об изменении параметров по инициативе сервера (это является побочным эффектом). Можно считать, что ASYNC = ADVISE + принудительный асинхронный опрос.
Так что в режиме ADVISE действительно происходит прием уведомлений об измененных значениях, генерируемых по инициативе сервера.
Все вопросы адаптации к более поздним версиям OPC-интерфейса будут рассматриваться в следующей версии - Трейс Моуд 6.0.