OPC-сервер — это программа-посредник, которая отдаёт данные от контроллеров и устройств клиентам (SCADA, MES, ERP) по единому протоколу. OPC UA — современный стандарт OPC, не зависящий от DCOM, с встроенной безопасностью. OPC DA — старая спецификация на базе COM/DCOM, работающая только в Windows и требующая сложной настройки DCOM.
OPC-сервер решает задачу унификации доступа к разнородному оборудованию. Вместо того чтобы каждая SCADA писала свой драйвер под каждый контроллер, драйверы сосредоточены в OPC-сервере, а клиенты общаются с ним по стандартному интерфейсу. Такой сервер может опрашивать модули ввода-вывода, контроллеры и другие источники, а затем отдавать теги клиентам [2][7].
OPC DA (Data Access) — первая широко распространённая спецификация для обмена текущими данными. Она построена на технологиях COM/DCOM, поэтому привязана к Windows. Для связи OPC-сервера и OPC-клиента на разных ПК требуется настройка службы DCOM, что на практике часто оказывается сложной задачей [6]. Кроме того, в исходном стандарте практически не проработаны вопросы информационной безопасности и удалённого доступа [6].
OPC UA (Unified Architecture) — принципиально новый набор спецификаций, который уже не базируется на DCOM [7]. Отказ от DCOM стал возможен за счёт транспортных механизмов на основе SOAP, XML, HTTP и сервисов, что позволяет безопасно и надёжно доставлять информацию и объединить в одном сервере функциональность OPC DA, OPC HDA и OPC A&E [8]. Для защиты используются стандартные web-сервисы безопасности, такие как WS-Security, WS-Trust, WS-SecureConversation [8]. OPC UA не заменяет существующие спецификации, а дополняет и расширяет их [8].
На практике часто встречается сценарий, когда старое оборудование отдаёт данные только по OPC DA, а современная SCADA умеет работать с OPC UA. Тогда применяют мультипротокольный OPC-сервер-шлюз: он подключается к удалённому OPC DA-серверу, импортирует теги и отдаёт их уже по OPC UA [1]. Аналогичную роль играют конвертеры OPC DA → OPC UA, которые обеспечивают безопасную передачу данных со старых OPC DA-серверов без DCOM [4]. Встречается и обратная ситуация: Trace Mode 6 может выступать как OPC DA-сервером, так и OPC DA-клиентом, получая данные от серверов разных производителей [2].
Типичные ошибки: попытка организовать связь между ПК через OPC DA без корректной настройки DCOM; отсутствие учёта требований информационной безопасности при удалённом доступе; ожидание, что OPC UA автоматически заменит все старые интерфейсы — на деле он сосуществует с ними и расширяет их [8].
Материалы сайта по теме
- Технология OPC UA. Урок 3
- Просто о стандартах OPC DA и OPC UA
- Настройка OPC-сервера/клиента на WinCC Professional/Advanced/Unified
- SIMP OPC Server. Конвертер OPC DA → OPC UA
- Уязвимости и защита протокола OPC DA
- Протокол OPC UA в приборах ОВЕН
Частые вопросы
Зачем вообще нужен OPC-сервер, если можно опрашивать контроллер напрямую?
OPC-сервер унифицирует доступ: драйверы под оборудование сосредоточены в одном месте, а клиенты (SCADA, MES, ERP) общаются по стандартному интерфейсу, не завися от конкретного производителя.
Чем OPC UA отличается от OPC DA?
OPC DA работает на COM/DCOM, привязан к Windows и требует настройки DCOM для связи между ПК. OPC UA не зависит от DCOM, использует SOAP, XML, HTTP и имеет встроенные средства безопасности [7][8].
Можно ли подружить старое оборудование с OPC DA и новую SCADA с OPC UA?
Да, через мультипротокольный OPC-сервер-шлюз или конвертер OPC DA → OPC UA. Шлюз подключается к OPC DA-серверу, импортирует теги и отдаёт их по OPC UA [1][4].
Почему OPC DA считают небезопасным?
В период его создания системы были в основном локальными, и вопросы удалённого доступа и защиты практически не рассматривались [6]. Плюс связь через DCOM сложна в настройке.
Заменяет ли OPC UA старые спецификации OPC?
Нет. OPC UA не предназначен для замены существующих спецификаций, а дополняет и расширяет их возможности [8].