OPC UA Cancel: отменять запрос по handle и учитывать фактический результат
Увеличить схему
Фотография конкретного исполнения не приложена.
Cancel предназначен для отмены ожидающих сервисных запросов OPC UA. Он использует requestHandle: отменяются все ещё ожидающие запросы с совпадающим значением. Поэтому повторное использование одного handle для независимых операций может расширить область отмены по сравнению с намерением пользователя.
Клиент заранее определяет правила назначения и хранения идентификаторов. Команда «отменить выгрузку» должна ссылаться на её действующие запросы, а не на случайно переиспользованный номер. Сопоставление особенно важно при параллельных чтениях, автоматических повторах и обновлении интерфейса в фоновом режиме.
В ответе Cancel возвращается cancelCount — количество действительно отменённых запросов. Успешно отменённые запросы получают Bad_RequestCancelledByClient. Прикладная программа должна обработать и ответ отмены, и завершение исходной операции; одной отправки команды недостаточно для заключения, что ожидающих действий больше нет.
Отмена сервисного ожидания сама по себе не описывает откат уже выполненного физического действия. В приёмке проверяют одиночный запрос, несколько совпадающих handles и операцию, завершившуюся раньше отмены. Для команд оборудованию отдельно устанавливают фактическое состояние и допустимость дальнейших действий оператора.
Основание — OPC Foundation OPC 10000-4, v1.05.07, 2026-04-15, разделы 5.7.5. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Клиент, сервер и физический объект не испытывались. Приведён проектный критерий проверки, а не отчёт о выполненной настройке.
Запросы отправляются на наш e-mail из вашей почтовой программы.