OPC UA и OPC DA в BMS: архитектура, безопасность и приёмка на ПНР
- OPC DA и OPC UA: архитектурная разница
- Когда Classic OPC DA ещё встречается в BMS
- Безопасность OPC UA: endpoints, сертификаты, политики
- Отображение тегов, качество и метки времени
- Сеть и порты: типовые значения и оговорки
- Приёмочные испытания на ПНР
- Чек-лист приёмки OPC UA / OPC DA
OPC (Open Platform Communications) — распространённый способ связать контроллеры, шлюзы и SCADA/BMS. На объектах сосуществуют Classic OPC DA (Data Access на COM/DCOM) и OPC UA (Unified Architecture, спецификации OPC Foundation). Для инженера ПНР важно не путать стеки: разные модель безопасности, развёртывание, диагностика и критерии приёмки. Ниже — практическая методика без выдуманных пунктов ГОСТ: ориентир — документация OPC Foundation, проект и руководства SCADA/BMS.

1. OPC DA и OPC UA: архитектурная разница
| Критерий | Classic OPC DA | OPC UA |
|---|---|---|
| Транспорт / API | COM/DCOM (Windows) | TCP (бинарный), HTTPS и др. по профилю |
| Платформы | Практически Windows-сервер/клиент | Кроссплатформенно (Windows, Linux, встраиваемые) |
| Адрес пространства | Items / Groups в DA-сервере | Nodes (Objects, Variables) в Address Space |
| Безопасность | Учётки Windows, DCOM permissions, firewall DCOM | Security Policy, Mode, сертификаты Application Instance |
| Обнаружение | OPCEnum / ProgID сервера | Discovery URL / Endpoint URL |
OPC UA не является «DA по TCP»: это другая информационная модель и другой стек безопасности. Миграция часто идёт через шлюз DA↔UA или замену драйвера SCADA — план миграции должен быть в проекте.
2. Когда Classic OPC DA ещё встречается в BMS
- Legacy-шлюзы полевых шин (Modbus, BACnet) с DA-сервером под старую SCADA.
- Рабочие станции диспетчеризации на Windows с историческими проектами.
- Интеграция со сторонним ПО, у которого есть только DA-клиент.
3. Безопасность OPC UA: endpoints, сертификаты, политики
Клиент OPC UA подключается к Endpoint URL (например, opc.tcp://host:4840 — порт часто 4840, но настраивается). Сервер публикует несколько endpoint с разными Security Policy / Message Security Mode.
- Security Policy — набор криптографии (например, профили None / Basic256Sha256 и др. — актуальный перечень в спецификации OPC UA и руководстве сервера).
- Message Security Mode — None / Sign / SignAndEncrypt.
- Application Instance Certificate — сертификат приложения клиента и сервера; взаимное доверие через trust list / отказ в rejected.
- User token — Anonymous / Username / Certificate — по политике объекта.
Процедура trust: клиент подключается → сертификат сервера попадает в rejected → инженер переносит в trusted (или наоборот для клиента на сервере) → повторное соединение. Точные пути папок сертификатов — в руководстве конкретного стека (Siemens, Schneider, Ignition, Prosys, Unified Automation и т.д.).
4. Отображение тегов, качество и метки времени
На ПНР связка «точка поля ↔ тег SCADA» проверяется не только по имени:
| Аспект | Что проверить |
|---|---|
| NodeId / ItemId | Совпадение с таблицей точек проекта; пространство имён (Namespace Index) для UA |
| Data type | Boolean / Int16 / Float / Double — без неявных обрезаний |
| Engineering units / scale | Сырое значение vs отображаемое (°C, %, Па) |
| Quality / StatusCode | Good при живом источнике; Bad/Uncertain при обрыве — отображение на графике |
| Timestamp | Источник времени (сервер/источник); синхронизация NTP на хостах |
| Write | Разрешённые уставки: запись из SCADA доходит до контроллера и возвращается в Read |
Подписка (Subscription / MonitoredItems в UA, Groups в DA): проверьте publishing interval и чувствительность к изменению — слишком редкий опрос маскирует аварии, слишком частый перегружает CPU/сеть.
5. Сеть и порты: типовые значения и оговорки
- OPC UA: часто используют порт 4840/tcp для
opc.tcp, но значение задаётся конфигурацией сервера. HTTPS-профили — свои порты (часто 443 или иной по проекту). - OPC DA / DCOM: RPC Endpoint Mapper (типично 135/tcp) плюс динамический диапазон портов high ports — диапазон должен быть зафиксирован политикой ИБ и открыт на МСЭ между клиентом и сервером.
- VLAN диспетчеризации, ACL, запрет маршрутизации «в интернет» для OPC-хостов — по проекту ИБ объекта.
6. Приёмочные испытания на ПНР
- Connectivity: клиент SCADA устанавливает сессию (UA) / подключается к DA-серверу.
- Security: подтверждён режим безопасности и trust сертификатов (или согласованный None).
- Browse: дерево узлов соответствует таблице точек (выборка критичных + случайная).
- Read path: изменение на поле (датчик/имитация) → обновление тега в SCADA с корректным Quality.
- Write path: уставка из SCADA → подтверждение на контроллере / обратный Read.
- Fail path: отключение источника / обрыв канала → Bad/Uncertain и авария связи на графике/в журнале.
- Time: NTP; расхождение часов клиент/сервер в допуске проекта.
- Load (по ТЗ): число мониторных элементов и интервал подписки без потери обновлений.
- Документы: список endpoint, политика безопасности, резервная копия конфигурации сервера/клиента.
7. Чек-лист приёмки OPC UA / OPC DA
| № | Пункт | ☐ |
|---|---|---|
| 1 | Тип интеграции (DA / UA / шлюз) соответствует проекту | ☐ |
| 2 | Endpoint URL / ProgID зафиксированы в исполнительной документации | ☐ |
| 3 | Security Mode / Policy согласованы с ИБ; сертификаты в trust | ☐ |
| 4 | Правила МСЭ открывают фактические порты (не «мифический ГОСТ») | ☐ |
| 5 | Выборка тегов: Read с поля совпадает с ожиданием | ☐ |
| 6 | Разрешённые Write проверены туда-обратно | ☐ |
| 7 | Обрыв связи даёт Bad/Uncertain и аварию в SCADA | ☐ |
| 8 | NTP / метки времени в допуске проекта | ☐ |
| 9 | Резервная копия конфигурации OPC-сервера и клиента сохранена | ☐ |
| 10 | Протокол испытаний подписан сторонами | ☐ |
Приёмка OPC — это подтверждение сессии, политики безопасности, соответствия тегов таблице точек и корректной деградации при обрыве. «Теги зелёные на экране» без fail-теста и без фиксации endpoint/сертификатов — недостаточный результат ПНР.
