OPC UA, MODBUS и MasterScada нет сквозной передачи признака достоверности

Все? Больше советов не будет?
А какой признак недостоверности вы передаете?
Более того, после восстановления подключения модуля по modbus данные на opc ua не начинают приходить.
Требуется перезапуск проекта СКАДА.
PS.
Вывод такой - OPC UA не обновляет признаки качества после установки соединения с клиентом.
Был отключен modbus при запуске проекта - всегда будет плохой признак качества. Даже если обратно на горячую подключить модуль по модбас. И наоборот.

Вот немного конкретики хочется по данному вопросу… Варианты:

  1. У нас все норм, разбирайся сам.
  2. У нас тоже не норм, разбираемся.
  3. Делать ничего не будем, ибо нефиг.
  4. Все в отпусках (на больничном), через пару недель займемся вопросом.

Здравствуйте!

Ответственный за тему разработчик шлюза действительно в отпуске до конца недели, поэтому мы не уследили.

Сейчас попробую привлечь дежурного.

Здравствуйте!
Пришлите пожалуйста диагностический архив, интересуют логи. Напишите полное название и версию Мастерскады, которой Вы пользуетесь.

image

приложен диагностический архив, доступен только сотрудникам поддержки
(72,2 КБ)

Спасибо. Завтра проверю еще раз наши исправления конкретно в этой версии программы.
Хочу вас предупредить, что для получения исправлений (касательно этой проблемы) вам будет нужно обновиться на свежий релиз. Потому что обновления для релиза 2207 больше не выпускаются.

Стиснув зубы, и преодолевая нехватку дискового пространства перевел систему на свежую версию. Теперь целевая система у нас вот такая:

В wb-2307 можно расширить размер рутфс в 2 раза.

С расширением я справился, а вот как там дела с OPC UA?

Изменили тип ошибки, передаваемой в OPCUA. Теперь мастерскада будет выдавать предупреждение.
Для тестирования установите экспериментальный репозиторий, как я писал выше. Если он установлен, то сделайте

apt update
apt install wb-mqtt-opcua
1 лайк

Уже лучше, но давайте почитаем документацию и посмотрим на текущее поведение системы.


На картинке ниже мы видим нормальное состояние системы. Модбас подключен, связь с модулем есть.
Выводим признаки качества для канала:
image
Наблюдаем следующее:

Отключаем modbus физически от контроллера.
У нас меняется только одно свойство - “Значение не определено”, но если верить описанию ошибок OPC UA, при подобной проблеме еще должны приходить флаги “Нет связи” и “Ошибка” для данных каналов.

Давайте, обратимся к первоисточнику.

Вот структура ответа на запрос значения. Тут нас интересует StatusCode
Вот структура поля StatusCode. Видно, что мы не можем одновременно передавать несколько кодов.
Вот коды ошибок. Сейчас шлюз шлёт Uncertain_NoCommunicationLastUsable

Также мы не можем точно сказать, что связи нет. Шлюз интерпретирует топик /meta/error, в нём появляется символ r при любой ошибке во время запроса значения. Это может быть как физический обрыв связи, так и какая-то временная ошибка в одном конкретном пакете.

Так там разве не битовое поле?

The StatusCode is a 32-bit unsigned integer. The top 16 bits represent the numeric value of the code that shall be used for detecting specific errors or conditions. The bottom 16 bits are bit flags that contain additional information but do not affect the meaning of the StatusCode.

Согласен, можно не ставить признак “нет связи”, но “Ошибку” наверное хотелось бы видеть. Конечно, и текущая реализация уже позволяет как-то решить проблему мониторинга, но почему бы ее не довести до логического конца, пока задача в работе.

Я специально дал ссылку на структуру поля StatusCode


Нельзя одновременно слать Bad и Uncertain

Ну ОК. Признак есть, будем использовать его. Может слать Bad? Bad категоричнее Uncertain.
Тут по доработкам важнее что стала автоматически восстанавливаться передача данных после восстановлении связи с устройством, чего ранее не отмечалось.

ALARM!!!
После перезагрузки контроллера не восстанавливается передача данных с MODBUS устройств.
Остальные теги OPC UA восстанавливаются нормально!

Помогает, например, перезагрузка Скады.

ЗЫ, service wb-mqtt-opcua restart тоже помогает.

Обновите сервис ещё раз. Сделали передачу просто Bad.

Вижу Bad.
Вижу восстановление связи после перезагрузки контроллера.
И пожалуй это есть хорошо!

1 лайк

Добавили изменения в testing, можете удалить /etc/apt/sources.list.d/opcua.list и обновляться из стандартного репозитория.

Эта тема была автоматически закрыта через 7 дней после последнего ответа. В ней больше нельзя отвечать.