OPC UA (OPC Unified Architecture) — это независимый от платформы, машиночитаемый и сервис-ориентированный протокол передачи данных, разработанный для обмена промышленной информацией. OPC UA обеспечивает безопасную, масштабируемую и гибкую модель связи между устройствами, контроллерами, SCADA, MES и ERP-системами.
Архитектура
Модель данных (Information Model)
Позволяет описывать как простые данные (переменные), так и сложные объекты с методами и событиями.
Службы (Services Layer)
Определяет стандартный набор операций для взаимодействия клиентов и серверов: чтение, запись, подписка, вызов методов, браузинг адресного пространства и др.
Транспортный уровень (Transport Layer)
Поддерживает несколько протоколов передачи:
- UA TCP (бинарный протокол, низкая задержка, высокая производительность)
- SOAP/HTTP (Web Services, совместимость с сервис-ориентированными архитектурами)
- WebSocket, MQTT, AMQP (в новых реализациях)
Уровень безопасности (Security Layer)
Включает:
- Аутентификацию (по сертификатам X.509, логин/пароль, анонимный доступ)
- Шифрование трафика (например, TLS)
- Цифровые подписи
- Контроль доступа на уровне узлов адресного пространства
Основные особенности
Функциональность | Описание |
---|---|
Платформонезависимость | Поддержка Windows, Linux, встроенных систем |
Расширяемая модель данных | Позволяет моделировать сложные структуры |
Поддержка событий | Асинхронная передача информации об изменениях и событиях |
Сервис безопасности | Встроенная поддержка шифрования и сертификации |
Сетевые протоколы | TCP, HTTPS, WebSockets, MQTT |
Режимы связи | Client-Server, Pub-Sub |
Поддержка исторических данных | Запрос и анализ архивных данных |
Структура адресного пространства
Структура адресного пространства (Address Space) — это один из ключевых элементов OPC UA, который позволяет унифицированно и иерархически описывать все данные, методы, события и объекты в системе. Именно благодаря адресному пространству OPC UA способен структурированно моделировать как простые переменные, так и сложные производственные процессы.
Все элементы представляются в виде узлов (Nodes), а связи между ними — в виде ссылок (References). Вся система представляет собой ориентированный граф.
Каждый узел имеет:
- Уникальный идентификатор (NodeId)
- Атрибуты (имя, описание, значение, доступность и др.)
- Тип (Object, Variable, Method и др.)
- Ссылки на другие узлы
Типы узлов:
Node Class | Назначение |
---|---|
Object | Представляет физический или логический объект (например, насос, двигатель) |
Variable | Переменные — данные, связанные с объектами (например, температура, скорость) |
Method | Процедуры, которые можно вызвать (например, сброс ошибки, старт процесса) |
ObjectType | Шаблон для объектов (например, тип двигателя) |
VariableType | Шаблон для переменных |
ReferenceType | Определяет тип связи между узлами |
DataType | Описание типов данных (включая структуры и перечисления) |
View | Представляет подмножество адресного пространства для фильтрации |
Пример графа адресного пространства:
Objects │ ├── Device1 (Object) │ ├── Temperature (Variable) │ ├── Pressure (Variable) │ └── Start (Method) │ ├── Device2 (Object) │ ├── Temperature (Variable) │ └── Stop (Method) │ └── Alarms (Object) └── AlarmList (Variable)
Режимы взаимодействия
- Client-Server:
- Клиент запрашивает данные или подписывается на события
- Сервер предоставляет данные и генерирует события
- Publisher-Subscriber (Pub/Sub):
- Подходит для высоконагруженных сетей, поддерживает OPC UA over UDP и MQTT
Поддержка стандартов и совместимость
- OPC UA совместим с классическим OPC через шлюзы
- Поддерживает интеграцию с другими стандартами: PLCopen, ISA-95, IEC 62541, AutomationML
Основные преимущества
- Высокий уровень безопасности
- Универсальность и масштабируемость
- Простота интеграции в IT-системы
- Гибкость модели данных