Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Ошибка отображения переменных с OPC UA сервера  (Прочитано 10025 раз)

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Если используемой переменной, считываемой с OPC UA сервера, назначить пользовательскую Шкалу, то переменная перестает отображаться в запущенном клиенте (показывается восклицательный знак слева от поля и нуль в поле).

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Здравствуйте.
Что-то здесь не так. Шкала переменной не имеет никакого отношения к OPC-серверам (ни UA, ни DA). Скорее всего дело в чем-то другом, а восклицательный знак после смены шкалы просто совпадение. Вы уверены, что указанная переменная на OPC-сервере всегда корректно считывается и имеет хорошее качество (можно посмотреть в окне самого OPC-сервера)? Какой UA-сервер Вы используете?

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Я долго не мог понять из-за чего не отображаются переменные. Потом удалил все переменные и заново добавил их в проект. Как только добавил переменные - они стали отображаться в клиенте. Затем я начал редактировать часть переменных - изменял формат, шкалу, архивирование. И заметил, что как только я изменяю шкалу, то переменная перестает отображаться, когда неизменные переменные отображаются - то есть проблем со считыванием данных с ОПС сервера нет.
Схема такая: на Сервере1 данные считываются MasterOPC Universal Modbus Server (Инсат), на нем же установлен плагин для туннелирования этих данных в другую сеть (Multi-Protocol MasterOPC Server конвертирует эти данные в OPC UA) и потом я считываю их с OPC UA сервера.

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Я Вас немного обманул. Пока записывал демонстрационное видео для Вас обнаружил, что переменные перестают отображаться, когда я делаю любые изменения после их добавления в проект, даже после того как убираю все изменения, то переменные не отображаются. Видать происходит какой-то сбой после сохранения редактированной переменной.
На видео видно ошибку https://yadi.sk/i/y9CcbYIyooG4og

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Нашел ошибку.
Получается при редактировании переменной меняется адрес тега (из адреса удаляются пробелы).
Из картинки видно - желтым отмечены измененные адреса тегов
вместо ns=1, s=OPCDACLIENT.Modbus.ГП201 M-GATE2.ENCONT.P2
подставляется такой адрес ns=1, s=OPCDACLIENT.Modbus.ГП201M-GATE2.ENCONT.P2

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Все верно, спасибо за тесты и приложенное видео. Исправим эту проблему в самое ближайшее время и опубликуем внеочередное обновление.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Скачайте последнюю версию скады повторно и установите её поверх текущей для обновления. Теперь не должно возникать проблем с пробелами в адресах.

Миханик

  • Постоялец
  • ***
  • Сообщений: 180
    • Просмотр профиля
    • www.vpa-dv.ru
Спасибо, теперь работает!

Neskad

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #8 : 15 Октября 2020, 12:19:37 »
Здравствуйте. Пробую подключить к SScada OPC UA сервер - Взлет СП4.
При импорте тега адрес переменной выглядит так: ns=3;EquipSetParam(E=4;SP=2)
В проекте тег работает и отображается корректно.

При попытке изменить шкалу переменной (и возможно, остальные свойства), от адреса остается только: ns=3;EquipSetParam(E=4. При попытке отредактировать адрес вручную, тот сохраняет адрес только до второго символа ";", а сам символ и всё последующее исчезает. Соответственно, при запуске проекта сервер скады пишет в журнал "неверный адрес тега", а сам тег перестает считываться из OPC UA.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #9 : 16 Октября 2020, 10:28:17 »
Здравствуйте. Проблема возникает из-за того, что в адресе используется ";", которая служит разделителем параметров. Попробуем исправить в ближайшем обновлении. Странно что такой адрес вообще работает, т.к. в OPC-UA адреса должны содержать пространство имён + тип идентификатора + сам идентификатор (подробное описание здесь). Но в данном случае есть только указание на пространство имён "ns=3;", а далее сразу идёт идентификатор, без типа, что неправильно. Вы уверены, что адрес после импорта выглядит именно так: "ns=3;EquipSetParam(E=4;SP=2)"?
Или может быть он такой:
"ns=3;s=EquipSetParam(E=4;SP=2)"?
« Изменён: 16 Октября 2020, 10:45:36 от Simple-Scada »

Neskad

  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #10 : 16 Октября 2020, 11:49:13 »
Извиняюсь, опечатался, адрес после импорта выглядит так, как вы указали: ns=3; s=EquipSetParam(E=4;SP=2)
« Изменён: 16 Октября 2020, 11:51:34 от Neskad »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3000
    • Просмотр профиля
    • Simple-Scada
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #11 : 20 Октября 2020, 21:49:07 »
Проблема исправлена в обновлении 2.4.0.10.
« Изменён: 09 Ноября 2020, 09:44:46 от Simple-Scada »

Roman93

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #12 : 07 Октября 2022, 08:34:38 »
Ошибка "некоторые переменные имеют неверный адрес (Bad_NodeIdUnknown):BlowbyPrees_31,not _qvit_alarm, not_qvit_alarm2,Tag30,Tag31" как убрать? Что за ошибка?
« Изменён: 07 Октября 2022, 09:07:34 от Simple Scada »

Simple_Scada

  • Администратор
  • *****
  • Сообщений: 1179
    • Просмотр профиля
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #13 : 07 Октября 2022, 09:59:07 »
Здравствуйте.

Ошибка говорит о том, что скада не смогла подписаться на данные теги, т.к. их нет в конфигурации UA-сервера. Если их действительно нет в конфигурации UA-сервера, то удалите такие переменные из проекта. При первом возникновении данной ошибки выдается список со всеми переменными, которые не удалось добавить на UA-сервер. При повторных неудачных попытках выдается только ошибка, без списка переменных(чтобы не засорять журнал сервера). Поэтому, нужно найти в логах первую такую ошибку и просмотреть список переменных.

Также, на UA-серверах, которые формируют конфигурацию тегов после подключения к ПЛК, данная ошибка может возникать из-за того, что в момент подписки на теги UA-сервер еще не подключился к ПЛК и у него в конфигурации нет этих тегов. Поэтому он будет возвращать такую ошибку. Для работы с такими UA-серверами можно в расширенных настройках UA-сервера установить опцию "Реакция на BadNodeIdUnknown" в "попытаться подписаться позже". Тогда, после ошибки скада будет периодически пытаться подписаться на теги повторно. Если конфигурация UA-сервера постоянная и не изменяется при подключении к ПЛК, то данная опция должна быть установлена в "прекратить попытки подписаться".

Roman93

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Ошибка отображения переменных с OPC UA сервера
« Ответ #14 : 07 Октября 2022, 10:12:51 »
Спасибо будем исправлять