OPC UA Publish: поддерживать окно запросов на канале с задержкой

Запросить

Фотография конкретного исполнения не приложена.

Подписка OPC UA возвращает уведомления в ответ на запросы Publish. Открытая сессия сама по себе не обеспечивает непрерывную доставку. Клиент должен поддерживать поступление этих запросов и одновременно подтверждать полученные NotificationMessages по их номерам последовательности.

На канале с большой задержкой схема «получить ответ и только затем отправить следующий запрос» может ограничить частоту выдачи данных. Спецификация предусматривает конвейер: несколько запросов остаются ожидающими ответа. Размер такого окна согласуют с задержкой канала, интервалами подписок и ограничениями сервера.

Бесконечное увеличение окна создаёт другую проблему. При превышении серверного лимита возвращается Bad_TooManyPublishRequests. Получив этот результат, клиент не должен отправлять очередной Publish до возврата одного из уже ожидающих запросов. Немедленный повтор в цикле усиливает перегрузку вместо восстановления потока.

В приёмке увеличивают сетевую задержку и отдельно проверяют ограничение числа ожидающих запросов. Журнал должен позволять связать ответы, подписки и подтверждения последовательностей. Устойчивый поток после задержки и отсутствие шторма повторов важнее одного удачного ответа на коротком локальном соединении.

Основание — OPC Foundation OPC 10000-4, v1.05.07, 2026-04-15, разделы 5.14.5. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Клиент, сервер и физический объект не испытывались. Приведён проектный критерий проверки, а не отчёт о выполненной настройке.

Все разборы