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:
Роман, я указывал по какому ключу искал - "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 будет немного позже.
|
|
|