ru OPC UA Server - SEB103/QtOpcUaManager GitHub Wiki

English · Deutsch · Français · Italiano · Русский · Українська

OPC UA Server

Server Studio позволяет спроектировать OPC UA-сервер, запустить его локально, защитить и симулировать значения — без написания кода. Спроектированный сервер работает как отдельный процесс (автономная OpcUaServerRuntime, встраивающая open62541), управляемый из интерфейса через ServerStudio и ServerRuntimeController (см. Архитектура).

Серверные проекты

Серверный проект (.uaserver) — это JSON-файл со всем, что нужно среде исполнения: пользовательскими пространствами имён, узлами адресного пространства, любыми пользовательскими перечислимыми типами данных, конфигурацией конечной точки, настройками безопасности и правилами поведения (ServerProject::ProjectData). Проекты создаются, открываются, сохраняются и закрываются в Server Studio.

Проектирование адресного пространства

В студии вы строите дерево узлов (ServerNodeModel):

  • объекты для организации адресного пространства;
  • переменные с типом данных и начальным значением;
  • пользовательские перечислимые типы данных, на которые ссылаются переменные;
  • пользовательские пространства имён, которым принадлежат ваши узлы.

Адресное пространство можно также получить, а не рисовать вручную:

  • Импорт/экспорт NodeSet2 — обмен моделью как стандартным OPC UA NodeSet2 XML (ServerProject::NodeSet).
  • Клонирование с просматриваемого сервера — перенос адресного пространства сервера, к которому вы подключены в клиенте, в новый серверный проект.

Перед сборкой или запуском проект проверяется валидатором (ServerProject::Validator).

Конечная точка и безопасность

Конфигурация конечной точки задаёт порт и имя приложения. Конфигурация безопасности выбирает политику безопасности и принимаемые удостоверения:

  • Без безопасности для быстрых локальных тестов;
  • Basic256Sha256 с подписью и шифрованием, используя самоподписанный сертификат сервера, создаваемый в собственном хранилище PKI сервера;
  • анонимный доступ и/или пользователи по имени/паролю.

Эти настройки позволяют проверить клиент против реалистичной безопасности без внешнего сервера.

Запуск сервера

При запуске сервера стартует процесс среды исполнения; студия ждёт, пока он сообщит свою конечную точку, и затем показывает его как работающий. Диагностика в реальном времени — число сеансов, защищённых каналов и время работы — передаётся в студию по локальному побочному каналу (DiagnosticsServer). Вы можете остановить, перезапустить или принудительно завершить среду исполнения; контроллер сообщает о сбоях и позволяет переподключиться.

Симуляция значений

Переменным можно назначить симуляцию, чтобы их значения менялись во времени во время работы сервера — счётчик, переключатель, случайное, синус или пила (SimulationEngine). Среда исполнения записывает симулированные значения в сервер, поэтому подключённые клиенты получают настоящие уведомления об изменении данных, что полезно для тестирования трендов и подписок.

Реакция на запись (правила поведения)

Переменной можно назначить правила поведения: когда клиент записывает переменную, среда исполнения выполняет одно или несколько действий над другими переменными. Действие либо записывает фиксированное значение, либо копирует только что записанное значение, при необходимости с задержкой. Это воспроизводит обмены «запрос/ответ», которых HMI ожидает от ПЛК — например, запись PageRequest заставляет сервер установить PageResponse, — чего не может статический снимок адресного пространства. Правила хранятся в проекте и вычисляются средой исполнения через колбэки записи OPC UA (RuleEngine).