EnglishУкраїнськаmRussian
Login/New
Topic with many replies

OPC UA


Author Message
Written on: 05. 03. 2014 [12:22]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
"fido_max" wrote:

А можно поподробнее как подключить IWS к OpenSCADA через OPC UA?
А то у меня такая проблема:
Сервер вроде видит, подключается, браузер даже что-то показывет, но при попытке открыть узел DAQ IWS повисает. если тормознуть транспорт, то OpenSCADA падает в сегфолт, а IWS показывает только блочный вычислитель. Другие клиенты сразу же вышибают OpenSCADA в сегфолт.
В двух словах опишите последовательность действий (особенно про безопасность и сертификаты)
Добро пожаловать в тему http://oscada.org/ru/forum/posts/vnedrenie/indusoft_web_studio_i_opc_ua/
Думаю там будет ответ.
Written on: 24. 10. 2014 [20:05]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
Добрый день.
Cтал получать на UAExpert 1.3 ошибку создания подписки bad too many subscription. OpenSCADA сборки 2165
При переносе узла на окно наблюдения в UAExpert появляется набор сообщений
CreateSubscription failed [ret = BadTooManySubscriptions]
Creating new subscription: ClientHandle=10, PublishingEnable=1, LifeTimeCount=2400, MaxKeepAliveCount=10, Priority=0, PublishingInterval=1100
No subscription available for ServerId 8
QascDaModel::dropMimeData
QascAddressSpaceModel::mimeData

Насколько помню, то ранее без сложностей добавлял узлы на окно наблюдений.
Что это может быть?

[This article was edited 1 times, at last 24.10.2014 at 20:07.]
Written on: 25. 10. 2014 [09:54]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rxs5" wrote:

Cтал получать на UAExpert 1.3 ошибку создания подписки bad too many subscription.

Сталкивались с этим уже ранее, помнится.
Но, в первую очередь, в модуле OPC_UA давно ничего существенного не менялось, а значит если и появилось то не по вине OpenSCADA.

Ну и по сути — это говорит, что клиент плодит и не закрывает подписки, которые жестко ограничены десятью на сессию. Ещё возможно, что Вы подзабыли и во входящем транспорте обнулили или поставили очень большим KeepAlive таймаут, что может привести в размножению "утерянных" подключений с реюзингом одного сеанса, а значит и быстрого достижения лимита подписок.

Кстати лимит в 10 подписок вовсе не мал, поскольку нормально их там вообще более одной быть не должно, а более это проблемы у клиента с их менеджментом.

"rxs5" wrote:

Насколько помню, то ранее без сложностей добавлял узлы на окно наблюдений.

Ну да, и нормальный клиент добавляет узлы в существующую подпику, а не плодит их.

Learn, learn and learn better than work, work and work.
Written on: 25. 10. 2014 [11:05]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
"roman" wrote:

"rxs5" wrote:

Cтал получать на UAExpert 1.3 ошибку создания подписки bad too many subscription.

Сталкивались с этим уже ранее, помнится.
Но, в первую очередь, в модуле OPC_UA давно ничего существенного не менялось, а значит если и появилось то не по вине OpenSCADA.

Ну и по сути — это говорит, что клиент плодит и не закрывает подписки, которые жестко ограничены десятью на сессию. Ещё возможно, что Вы подзабыли и во входящем транспорте обнулили или поставили очень большим KeepAlive таймаут, что может привести в размножению "утерянных" подключений с реюзингом одного сеанса, а значит и быстрого достижения лимита подписок.

Кстати лимит в 10 подписок вовсе не мал, поскольку нормально их там вообще более одной быть не должно, а более это проблемы у клиента с их менеджментом.

Перед вопросом в теме OPCUA искал по форуму поиском bad too many subscription и не нашел.
Что интересно, в ситуации сообщения bad too many subscription: на момент такой ошибки в UAExpert в openscada было занято 2-3 соединения и ни одного закрытого по лимиту. Т.е. клиент не плодит подписки при просмотре в узле наблюдений.
Keep alive timeout действительно 0, но он давно не менялся и с таким значением использовался на ~ 10 устройствах - OPC UA серверах. Но опять же, подписки не множатся.
Есть еще кое-что, на что внимание обратил: по временной шкале сообщения идут в следующем порядке
QascAddressSpaceModel::mimeData
QascDaModel::dropMimeData
No subscription available for ServerId 8
Creating new subscription: ClientHandle=10, PublishingEnable=1, LifeTimeCount=2400, MaxKeepAliveCount=10, Priority=0, PublishingInterval=1100
CreateSubscription failed [ret = BadTooManySubscriptions]

Т.е. сначала QascAddressSpaceModel::mimeData и потом все заканчивается CreateSubscription failed
(Обратный порядок в предыдущем сообщении указывал, т.к. текст лога скопировал из истории UAExpert и там по умолчанию чем выше, тем новее сообщение).
Т.е. клиент UAExpert уже перед созданием подписки выдает сообщение No subscription available for ServerId 8
Логично, что если available нет, то и создать подписку не удастся. И это при свободных соединениях в сокете на OPCUA в openscada.
По сообщениям
QascAddressSpaceModel::mimeData
QascDaModel::dropMimeData
No subscription available for ServerId 8

интересно узнать: что это такое, откуда они появляются, почему именно ServerId 8 и почему No subscription available.
Вряд ли это не связанные с указанной проблемой с подпиской сообщения, учитывая, что они приходят в одном пуле при попытке подписки на окне наблюдений.

[This article was edited 2 times, at last 25.10.2014 at 11:07.]
Written on: 25. 10. 2014 [12:17]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rxs5" wrote:

Перед вопросом в теме OPCUA искал по форуму поиском bad too many subscription и не нашел.
Что интересно, в ситуации сообщения bad too many subscription: на момент такой ошибки в UAExpert в openscada было занято 2-3 соединения и ни одного закрытого по лимиту. Т.е. клиент не плодит подписки при просмотре в узле наблюдений.

Плохо ищем!
Смотрим здесь: http://oscada.org/ua/forum/posts//opc_ua//11/ ищем по слову "лимит" и сразу получаем все ответы, тем более в UAExpert где эта проблема ярко выражена!

Learn, learn and learn better than work, work and work.
Written on: 25. 10. 2014 [12:29]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
"roman" wrote:

"rxs5" wrote:

Перед вопросом в теме OPCUA искал по форуму поиском bad too many subscription и не нашел.
Что интересно, в ситуации сообщения bad too many subscription: на момент такой ошибки в UAExpert в openscada было занято 2-3 соединения и ни одного закрытого по лимиту. Т.е. клиент не плодит подписки при просмотре в узле наблюдений.

Плохо ищем!
Смотрим здесь: http://oscada.org/ua/forum/posts//opc_ua//11/ ищем по слову "лимит" и сразу получаем все ответы, тем более в UAExpert где эта проблема ярко выражена!

Роман, я указывал по какому ключу искал - "bad too many subscription". Приводить результат поиска по другому ключу, в данном случае "лимит" (при том, что я указывал уже - лимит не выбирается клиентом) - это как минимум признак плохого тона, и притягивания за уши одного события к другому.
Еще раз повторяю: лимит соединений не выбирается, соответственно по нему искать не имеет смысла, так же как и его притягивать к проблеме с созданием подписок.
А вот на более существенные, с моей точки зрения, детали, вы не ответили, интересно почему, но повторю
Есть еще кое-что, на что внимание обратил: по временной шкале сообщения идут в следующем порядке
QascAddressSpaceModel::mimeData
QascDaModel::dropMimeData
No subscription available for ServerId 8
Creating new subscription: ClientHandle=10, PublishingEnable=1, LifeTimeCount=2400, MaxKeepAliveCount=10, Priority=0, PublishingInterval=1100
CreateSubscription failed [ret = BadTooManySubscriptions]

Т.е. сначала QascAddressSpaceModel::mimeData и потом все заканчивается CreateSubscription failed
(Обратный порядок в предыдущем сообщении указывал, т.к. текст лога скопировал из истории UAExpert и там по умолчанию чем выше, тем новее сообщение).
Т.е. клиент UAExpert уже перед созданием подписки выдает сообщение No subscription available for ServerId 8
Логично, что если available нет, то и создать подписку не удастся. И это при свободных соединениях в сокете на OPCUA в openscada.
По сообщениям
QascAddressSpaceModel::mimeData
QascDaModel::dropMimeData
No subscription available for ServerId 8
интересно узнать: что это такое, откуда они появляются, почему именно ServerId 8 и почему No subscription available.
Вряд ли это не связанные с указанной проблемой с подпиской сообщения, учитывая, что они приходят в одном пуле при попытке подписки на окне наблюдений.

Вы что-то можете сказать по приведенным сообщениям?
Прежде чем кидать ссылку на "лимит", обратите внимание, что по вашей ссылке были сообщения о действительно создании новых подключений. В данном случае новых подключений НЕ СОЗДАЕТСЯ.
Итого:
- искал хорошо, потому что лимит ни при чем, а по моему ключу поиска сообщений нет.
- внимательно прочитайте 2 моих последних сообщения, особенно про то, что ЛИМИТ НЕ ПРЕВЫШАЕТСЯ
- поясните 3 первых сообщения клиента из лога UAExpert: что это за запросы и почему клиент их указывает в логе

[This article was edited 1 times, at last 25.10.2014 at 12:31.]
Written on: 25. 10. 2014 [17:57]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rxs5" wrote:

"roman" wrote:

Плохо ищем!
Смотрим здесь: http://oscada.org/ua/forum/posts//opc_ua//11/ ищем по слову "лимит" и сразу получаем все ответы, тем более в UAExpert где эта проблема ярко выражена!

Роман, я указывал по какому ключу искал - "bad too many subscription". Приводить результат поиска по другому ключу, в данном случае "лимит" (при том, что я указывал уже - лимит не выбирается клиентом) - это как минимум признак плохого тона, и притягивания за уши одного события к другому.
Еще раз повторяю: лимит соединений не выбирается, соответственно по нему искать не имеет смысла, так же как и его притягивать к проблеме с созданием подписок.

А ничего, что Вы по ссылкам не ходите?!
Там вообще-то про "исчерпывает лимит подписок", а не подключений, что и есть "bad too many subscription" и это то, что есть проблемой UAExpert!

"rxs5" wrote:

- поясните 3 первых сообщения клиента из лога UAExpert: что это за запросы и почему клиент их указывает в логе

Я в принципе не могу и не должен комментировать логов сторонних программ!

А вот по сеансу связи прекрасно помню, как при подключении UAExpert создаёт одну левую подписку и одну нормальную, затем при каждом переподключении создаёт по левой подписке в конце концов исчерпывая их лимит. Чего кстати на других клиентах я не замечал, по поводу чего у меня возникло подозрение про то, что это своеобразная защита от коммерческого использования.
Записывайте сеанс и изучайте, могу из старых выслать.

Learn, learn and learn better than work, work and work.
Written on: 26. 10. 2014 [14:27]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
"roman" wrote:

А ничего, что Вы по ссылкам не ходите?!
Там вообще-то про "исчерпывает лимит подписок", а не подключений, что и есть "bad too many subscription" и это то, что есть проблемой UAExpert!

По ссылке ходил, вы можете посмотреть лог веб-сервера, и увидеть сей факт, т.е. Ваше заявление ошибочно.

"roman" wrote:

Я в принципе не могу и не должен комментировать логов сторонних программ!

А вот по сеансу связи прекрасно помню, как при подключении UAExpert создаёт одну левую подписку и одну нормальную, затем при каждом переподключении создаёт по левой подписке в конце концов исчерпывая их лимит. Чего кстати на других клиентах я не замечал, по поводу чего у меня возникло подозрение про то, что это своеобразная защита от коммерческого использования.
Записывайте сеанс и изучайте, могу из старых выслать.

Интересно, какой раз мне надо повторять, что развитие ситуации отличается от упомянутой 11-й страницы:
- сразу после подключения UAExpert вытаскиваю 1 параметр на окно наблюдения и получаю тот набор сообщений.
О каких переподключениях и левых подписках UAExpert идет речь вообще?
Почему же так сложно понять, что с предыдущим случаем общее только конечное сообщение BadTooManySubscriptions
В данном случае никаких Calling Republish нет. Также и сообщение о BadTooManySubscriptions даже иное
Прошлое
Register for ModelChangeEvents failed: createSubscription returned BadTooManySubscriptions
Настоящее
CreateSubscription failed [ret = BadTooManySubscriptions]
И вы не видите, что событие, приводящее к BadTooManySubscriptions в настоящей ошибке UAExpert развивается иначе?
В прошлом не было сообщений
QascAddressSpaceModel::mimeData
QascDaModel::dropMimeData
No subscription available for ServerId 8
И Вас это нисколько не смущает? Если есть общее слово BadTooManySubscriptions, то можно все свести к прежней проблеме и заявить, что это все клиент виноват?
Клиент получает то, что отдает сервер.
И вопрос к Вам как к разработчику сервера, что же отдает он такое клиенту, что клиент сообщает No subscription available for ServerId 8

Данные сторонние программы получают с Вашего OPC UA сервера. И вы не знаете почему они получают именно такие данные? Почему OPC UA сервера отдает именно такой ответ на запрос, который приводит к No subscription available for ServerId 8

Из полезного нашел вот это
Собственно лимит на подписи у сервера сейчас 10, в перспективе этот параметр хотел вынести в настройки.
Да и лимит к сеансу не мешало-бы привязать, что-бы один всех остальных не DOSил.

Дальше хочу уточнить логику, которая явно в документации не описана.
Число max подключений - это число одновременных сессий от одного или нескольких клиентов. Этот параметр настраивается во входящем сокете. По умолчанию равен 10. Верно?
Число max подписок - это число возможных подписей на сервере. Этот параметр не настраивается сейчас, и ограничен 10. Верно?
Напрямую число max подключений не связано с числом max подписок. Т.е. возможны ситуации, когда 1 клиент выбирает все доступные подписи с сервера. Соответственно другим клиентам, даже при наличии свободных слотов в подключениях подписок может не достаться. Верно?
Written on: 26. 10. 2014 [16:10]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"rxs5" wrote:

"roman" wrote:

А вот по сеансу связи прекрасно помню, как при подключении UAExpert создаёт одну левую подписку и одну нормальную, затем при каждом переподключении создаёт по левой подписке в конце концов исчерпывая их лимит. Чего кстати на других клиентах я не замечал, по поводу чего у меня возникло подозрение про то, что это своеобразная защита от коммерческого использования.
Записывайте сеанс и изучайте, могу из старых выслать.

Интересно, какой раз мне надо повторять, что развитие ситуации отличается от упомянутой 11-й страницы:

Интересно чем, если лог UAExpert нельзя считать исчерпывающим и для адекватного сравнения нужно сеанс записывать!?

"rxs5" wrote:

- сразу после подключения UAExpert вытаскиваю 1 параметр на окно наблюдения и получаю тот набор сообщений.
О каких переподключениях и левых подписках UAExpert идет речь вообще?

С чего Вы взяли, что он уже их (подписок) десяток не сделал, особенно если учесть, что спотыкается на номере подписки 8, которые в OpenSCADA идут от 1, т.е. создано уже минимум 7!

"rxs5" wrote:

Почему же так сложно понять, что с предыдущим случаем общее только конечное сообщение BadTooManySubscriptions
В данном случае никаких Calling Republish нет. Также и сообщение о BadTooManySubscriptions даже иное

Почему Вам тяжело понять, что лог сторонней программы для меня ничего не говорит, только сеанс обмена!?

"rxs5" wrote:

И вы не видите, что событие, приводящее к BadTooManySubscriptions в настоящей ошибке UAExpert развивается иначе?

Нет, читаем ранее почему!

"rxs5" wrote:

В прошлом не было сообщений
QascAddressSpaceModel::mimeData
QascDaModel::dropMimeData

Вот потому, что это к самому OPC UA вообще не имеет отношение, во всяком случае OpenSCADA про это ничего не знает!
Случаем это не нечто новое? UAExpert 1.2.2 175 уже минут 10 работает как работало и ранее. Не исключено, что они туда ещё фигни добавили, навязывая серверу свою политику, тогда как обычно клиент подстраивается под существующую у сервера, а не наоборот.

"rxs5" wrote:

No subscription available for ServerId 8
И Вас это нисколько не смущает? Если есть общее слово BadTooManySubscriptions, то можно все свести к прежней проблеме и заявить, что это все клиент виноват?

Ну да, а кто предыдущие 1-7 наделал?

"rxs5" wrote:

И вопрос к Вам как к разработчику сервера, что же отдает он такое клиенту, что клиент сообщает No subscription available for ServerId 8

Ещё раз повторяю! Берём, записываем и анализируем сеанс обмена в WireShark и не начинаем тут никого обвинять, хотя-бы потому-что я Вам тут ничего не должен, причём телепатить в том чего Вы там локально накрутили!

"rxs5" wrote:

Собственно лимит на подписи у сервера сейчас 10, в перспективе этот параметр хотел вынести в настройки.
Да и лимит к сеансу не мешало-бы привязать, что-бы один всех остальных не DOSил.

Дальше хочу уточнить логику, которая явно в документации не описана.
Число max подключений - это число одновременных сессий от одного или нескольких клиентов. Этот параметр настраивается во входящем сокете. По умолчанию равен 10. Верно?

Сразу видно, что OPC UA и не знаете поскольку из контекста взяли Subscription, говорите про Sessions, а спрашиваете про Connections, что всё разное. В транспорте это Connections и их лимит для всех подключений от любых киентов и да, по умолчанию их там 10. А Subscriptions создаются после подключения->сеанса->Подписки и жестко ограничены 10, причём, что подписки могут быть переиспользованы в другом сеансе, что сеанс в другом подключении, почему и может происходить накопление Подписок.

"rxs5" wrote:

Число max подписок - это число возможных подписей на сервере.
Этот параметр не настраивается сейчас, и ограничен 10. Верно?

Верно

"rxs5" wrote:

Напрямую число max подключений не связано с числом max подписок. Т.е. возможны ситуации, когда 1 клиент выбирает все доступные подписи с сервера. Соответственно другим клиентам, даже при наличии свободных слотов в подключениях подписок может не достаться. Верно?

Неверно, сейчас число подписок ограничивается по сеансам-клиентам, т.е. 10 на клиента.

Learn, learn and learn better than work, work and work.
Written on: 27. 10. 2014 [12:12]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
Роман. Вас никто не обвиняет. Не в этой теме, ни в других. Не стоит вопросы по openscada воспринимать как личные оскорбления или желание указать на ошибку.
По теме
Про что-то новое - в моем сообщении от 24. 10. 2014 [20:05] я указывал
UAExpert 1.3
А 26.10 Вы утверждаете, что UAExpert 1.2 работает хорошо, что я не опровергаю. Но я сразу указал, с какими версиями ПО есть непонятная ситуация, т.е. при использовании UAExpert 1.3.
Нравится Вам или нет, но если UAExpert 1.2 работал стабильно с OPCUA в openscada, то и UAExpert 1.3, предполагается, должен работать также. Согласны?
Однако я вижу по опыту работы с UAExpert 1.3, что что-то не так, и Вам, как разработчику OPC UA сообщаю. Вам подобные факты интересны?

Ну да, а кто предыдущие 1-7 наделал?
Даже если были сделаны уже 7 подписок и спотыкается на 8-й, то всего доступно 10 на сеанс. И спотыкаться UAExpert 1.3 не должен.

Далее, Роман, я не спрашивал Вашей оценки своих знаний, также как и не оценивал Ваши. Я уточнял описание реализованного Вами OPC UA сервера. Вы не против этого? Если по итогам в wiki по OPC UA появится чуть больше описания по подключениям и подпискам, чем есть сейчас, это будет еще лучше.

Обмен в WireShark будет немного позже.



3094