Какво е OPC UA
OPC UA (Open Platform Communications — Unified Architecture) е платформено независим стандарт за сигурен обмен на индустриални данни. Разработен от OPC Foundation и стандартизиран като IEC 62541, той замества OPC Classic (OPC DA, OPC HDA, OPC A&E), които зависеха от Microsoft DCOM. OPC UA работи на Windows, Linux и вградени системи и предлага единен информационен модел за всички видове данни — реално време, исторически, аларми и събития.
Информационен модел
Основната сила на OPC UA е Address Space — йерархично дърво от възли (Nodes), свързани с референции (References). Всеки възел има:
- NodeId — уникален идентификатор (числов, низ или GUID).
- BrowseName — име за навигация.
- DisplayName — четимо име за потребителя.
- NodeClass — тип: Object, Variable, Method, View, DataType, ReferenceType, ObjectType, VariableType.
Variable node-ът съдържа стойност (Value), времеви печат на сървъра и на източника (SourceTimestamp), качествен код (StatusCode) и тип данни (DataType).
Типови дефиниции
OPC UA поддържа обектно-ориентирано моделиране: ObjectType и VariableType дефинират шаблони, а конкретните възли са инстанции. Това позволява клиентът да открие структурата на сървъра динамично, без предварителна конфигурация.
Companion Specifications
OPC Foundation публикува Companion Specifications — разширения на информационния модел за конкретни индустрии:
| Спецификация | Област |
|---|---|
| OPC UA for IEC 61850 | Маппинг на IEC 61850 логически възли към OPC UA Address Space |
| OPC UA for IEC 61850-7-420 | DER (разпределена генерация): фотоволтаика, батерии |
| OPC UA for Energy (IEC 61968/61970 CIM) | Модел на електроенергийната мрежа (CIM) |
| OPC UA for Machinery | Обща машинна идентификация и мониторинг |
| OPC UA for ISA-95 / IEC 62264 | Интеграция между MES и ERP |
Companion Specifications стандартизират имената и структурата на възлите, така че клиент, написан за един производител, работи и с друг.
Транспортни протоколи
| Протокол | Описание | Типична употреба |
|---|---|---|
| opc.tcp:// | Бинарен, над TCP (порт 4840) | Основен — бърз, компактен, за LAN и WAN |
| https:// | JSON или бинарен над HTTPS | Преминаване през firewall, облачни услуги |
| OPC UA Pub/Sub (UADP) | UDP multicast или MQTT/AMQP | Поточни данни, голям брой абонати |
Client-Server модел
Основният режим на OPC UA е client-server:
- Discovery — клиентът открива сървъри чрез Local Discovery Server (LDS) или GDS (Global Discovery Server).
- SecureChannel — клиентът и сървърът установяват криптиран канал (TLS-подобен, с X.509).
- Session — автентикация (Anonymous, Username/Password, X.509 Certificate).
- Browse — клиентът навигира Address Space-а.
- Read / Write — четене и запис на стойности.
- Subscription + MonitoredItems — клиентът се абонира за промени; сървърът изпраща Notifications при промяна (аналог на спонтанното предаване в IEC 104).
- Method Call — извикване на метод на сървъра (напр. нулиране на брояч, стартиране на процедура).
Pub/Sub модел
OPC UA 1.04 добавя Pub/Sub — publish-subscribe комуникация без нужда от постоянна client-server връзка:
- UADP over UDP multicast — за LAN с висока скорост (TSN-ready).
- UADP / JSON over MQTT — за облачна интеграция; OPC UA данни се пренасят през MQTT broker.
- UADP / JSON over AMQP — за enterprise messaging (Azure Service Bus).
Pub/Sub е подходящ за сценарии с много консуматори и поточни данни, докато Client-Server остава за двупосочна комуникация (четене, запис, извикване на методи).
Сигурност
OPC UA има вградена многослойна сигурност:
| Слой | Механизъм |
|---|---|
| Транспортен | SecureChannel с TLS 1.2/1.3 (за opc.tcp) или HTTPS |
| Автентикация на приложението | X.509 Application Instance Certificate — взаимна проверка на клиент и сървър |
| Автентикация на потребителя | Anonymous, Username/Password, X.509 User Certificate, Kerberos |
| Оторизация | Role-Based Access Control (RBAC) — различни права за различни роли (Observer, Operator, Engineer, Admin) |
| Одит | AuditEvents — сървърът записва кой какво е направил |
Тази архитектура надхвърля всичко, предлагано от IEC 104, Modbus или DNP3 без допълнителни слоеве.
OPC UA спрямо OPC Classic
| Характеристика | OPC Classic (DA/HDA/A&E) | OPC UA |
|---|---|---|
| Платформа | Само Windows (DCOM) | Всяка (Linux, Windows, вградени) |
| Модел на данните | Три отделни спецификации | Единен Address Space |
| Сигурност | DCOM сигурност (сложна, слаба) | X.509, TLS, RBAC |
| Discovery | OPCEnum (Windows service) | LDS / GDS (кросплатформен) |
| Firewall | Динамични DCOM портове — трудно | Един порт (4840) или HTTPS (443) |
OPC UA в енергетиката
- SCADA ↔ Historian — OPC UA замества OPC DA за връзка между SCADA (Ignition, AVEVA, Siemens WinCC) и Historian (OSIsoft PI, AVEVA Historian). Subscription-ите осигуряват реалновремево записване.
- SCADA ↔ MES/ERP — Companion Specification за ISA-95 позволява на MES (Manufacturing Execution System) да чете оперативни данни директно от SCADA без междинен слой.
- Gateway IEC 61850 → OPC UA — подстанционни данни от IEC 61850 MMS се публикуват в OPC UA Address Space чрез Companion Specification за IEC 61850.
- Електроцентрали — DCS (Distributed Control System) на турбини и котли предоставя OPC UA интерфейс за мониторинг от централизирана SCADA.
- Вятърни и соларни паркове — контролерите на инверторите и турбините ползват OPC UA за връзка с паркова SCADA.
Въвеждане в експлоатация
- Идентифициране на OPC UA сървъри в мрежата (LDS, ръчно въвеждане на endpoint URL).
- Обмен на Application Instance Certificates между клиент и сървър (trust).
- Настройка на Security Policy (Basic256Sha256) и Security Mode (SignAndEncrypt).
- Автентикация на потребителя — създаване на акаунти или конфигуриране на X.509 user certificate.
- Browse на Address Space — идентифициране на необходимите възли.
- Създаване на Subscription-и с подходящ Publishing Interval (напр. 1000 ms) и MonitoredItems.
- Тест с OPC UA клиент (UaExpert, Prosys OPC UA Browser).
- Интеграция със SCADA/Historian — маппинг на OPC UA NodeId към вътрешни тагове.
Типични проблеми
- Грешна Certificate Trust конфигурация — клиентът и сървърът не се доверяват взаимно.
- Firewall блокира порт 4840 — да се отвори или да се ползва HTTPS профилът.
- Прекалено кратък Publishing Interval при много MonitoredItems — сървърът не встига.
- Несъвместимост на Companion Specification версии — клиентът очаква възли, които сървърът не предоставя.
- Загуба на Subscription при мрежово прекъсване — клиентът трябва да пресъздаде сесията и абонаментите (TransferSubscriptions).
Кога се избира OPC UA
Когато е необходима интеграция между различни индустриални системи (SCADA, DCS, Historian, MES), когато се замества OPC Classic, или когато стандартизиран информационен модел (Companion Specification) спестява ръчно конфигуриране. В енергетиката OPC UA е мостът между подстанционния свят (IEC 61850/IEC 104) и бизнес системите — той не замества телемеханичните протоколи, а ги допълва на по-високо ниво.