Author |
Message |
Written on: 02. 12. 2013 [12:48]
|
rxs5
Дмитрий Лыков
In tech support
Topic creator
registered since: 06.11.2013
Posts: 205
|
"roman" wrote:
"MonitoredItems" дописать не успел, сейчас дописываю.
Роман, спасибо за информацию. Сообщите, пожалуйста, о завершении, чтобы начать тестирование.
|
Written on: 04. 12. 2013 [22:21]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"rxs5" wrote:
Роман, спасибо за информацию. Сообщите, пожалуйста, о завершении, чтобы начать тестирование.
Запишите пожалуйста сеанс обмена клиента со сторонним сервером, который нормально данные в реальном времени отдаёт.
Упёрся тут в описание DataChangeNotification, пример которого у меня есть только для источника с неизменными данными, вот и не пойму что там должно быть если данные меняются часто и опрашивается несколько объектов.
Learn, learn and learn better than work, work and work.
|
Written on: 05. 12. 2013 [14:42]
|
rxs5
Дмитрий Лыков
In tech support
Topic creator
registered since: 06.11.2013
Posts: 205
|
"roman" wrote:
Запишите пожалуйста сеанс обмена клиента со сторонним сервером, который нормально данные в реальном времени отдаёт.
Упёрся тут в описание DataChangeNotification, пример которого у меня есть только для источника с неизменными данными, вот и не пойму что там должно быть если данные меняются часто и опрашивается несколько объектов.
Записал обмен 2-х переменных с изменяющимися данными.
Сервер OPC UA: Ignition 7.6.4
Клиент OPC UA: IWS 7.1 sp2
Ссылка на файл в личной переписке.
|
Written on: 06. 12. 2013 [13:54]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"rxs5" wrote:
Записал обмен 2-х переменных с изменяющимися данными.
Сервер OPC UA: Ignition 7.6.4
Клиент OPC UA: IWS 7.1 sp2
Спасибо — несколько прояснило ситуацию.
Закончил в степени нормальной отдачи данных через Publish сервис. Проверил на UAExpert с тремя живыми параметрами. На сейчас не реализован "RePublish", которого вообще ещё не встречал и ряд экзотических особенностей. Позже, в процессе перечитывания спецификации, дополню и приведу в соответствие, хотя очевидно не проверю.
В процессе выявил ошибку в UAExpert, который не удаляет "Subscribe" для опрашиваемых данных, при отключении, хотя свой "левый" для странного параметра с фильтром удаляет. И да, фильтры тоже не реализовывал.
Ещё выявил проблему в GLibC при работе с памятью в конфигурации некоторых объектов, а именно при вызове "new string" из разных объектов возвращает одинаковый адрес, а затем сам-же и ругается на двойное освобождение, что обошёл переписав проблемный объект NodeId и оставил ключик для включения сборки с воспроизведением проблемы — погляжу на других конфигурациях.
Выгрузил, проверяйте у себя!
Learn, learn and learn better than work, work and work.
|
Written on: 08. 12. 2013 [13:41]
|
rxs5
Дмитрий Лыков
In tech support
Topic creator
registered since: 06.11.2013
Posts: 205
|
Проверил на сборке 2018.
"roman" wrote:
В процессе выявил ошибку в UAExpert, который не удаляет "Subscribe" для опрашиваемых данных, при отключении, хотя свой "левый" для странного параметра с фильтром удаляет.
Да, тоже заметил эту ошибку. Вы сообщите об этом разработчикам UAExpert ?
Что вообще видел по тестированию.
Сначала IWS + OPC UA - вместо данных 0.
Затем подключился UAExpert + OpenSCADA - данные вижу.
Потом снова IWS + OpenSCADA - нет данных, и качество связи вдруг плохое.
Заметил по wireshark, что идет постоянный опрос. Закрыл UAExpert, перезапустил OpenSCADA, чтобы не было опроса OPC UA.
Подключаюсь IWS + OPC UA - вместо данных 0.
Лог записал в wireshark и выложил, ссылка в личном сообщении.
Еще видел ошибку в UAExpert при отключении
14:54:36.119 | Server Node | OpenScadaOpcServer@centos97... | Disconnecting failed with error 'BadInvalidState'
|
Written on: 08. 12. 2013 [19:35]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"rxs5" wrote:
Да, тоже заметил эту ошибку. Вы сообщите об этом разработчикам UAExpert ?
У меня связей с ними нет.
"rxs5" wrote:
...
Подключаюсь IWS + OPC UA - вместо данных 0.
Лог записал в wireshark и выложил, ссылка в личном сообщении.
Не увидел там Publish ответов, а так-же причин тому. Подозреваю, что KeepAlive нужно у входщего транспорта отключить, иначе может получиться ситуация, что протокол и входящий транспорт для асинхронной отправки на момент отправки может быть уже закрыт. Отключить тут установкой обоих полей в "0": http://wiki.oscada.org/Doc/Soskets/files?get=sock_in.png
"rxs5" wrote:
Еще видел ошибку в UAExpert при отключении
14:54:36.119 | Server Node | OpenScadaOpcServer@centos97... | Disconnecting failed with error 'BadInvalidState'
У себя такого не замечал. Запишите сеанс для этого.
Learn, learn and learn better than work, work and work.
|
Written on: 08. 12. 2013 [20:35]
|
rxs5
Дмитрий Лыков
In tech support
Topic creator
registered since: 06.11.2013
Posts: 205
|
"roman" wrote:
Не увидел там Publish ответов, а так-же причин тому. Подозреваю, что KeepAlive нужно у входщего транспорта отключить, иначе может получиться ситуация, что протокол и входящий транспорт для асинхронной отправки на момент отправки может быть уже закрыт. Отключить тут установкой обоих полей в "0": http://wiki.oscada.org/Doc/Soskets/files?get=sock_in.png
Сделал, ничего не изменилось, также 0 в IWS.
В логе клиента OPC UA - в IWS есть сообщения об ошибках, возможно они помогут чем-то.
OPC UA Client: Info: Имя пользователя/пароль не установлен
OPC UA Client: Info: Connecting to the server ignition_opcua.
OPC UA Client: Info: Имя пользователя/пароль не установлен
OPC UA Client: Info: Connecting to the server oscada_opcua.
OPC UA Client: Info: Connection established successfully to the server ignition_opcua.
OPC UA Client: Info: Connection established successfully to the server oscada_opcua.
OPC UA Client: Warning: Group 1 => Could not read item 1 upon connection. : '0x80d2000' (Error: 0x80D20000)
OPC UA Client: Warning: Group 1 => Could not read item 2 upon connection. : '0x80d2000' (Error: 0x80D20000)
OPC UA Client: Error: Group 1 => Item 2 received a dataChange with status 0x80d2000.
OPC UA Client: Error: Group 1 => Item 1 received a dataChange with status 0x80d2000.
OPC UA Client: Error: Group 1 => Item 2 received a dataChange with status 0x80d2000.
OPC UA Client: Error: Group 1 => Item 1 received a dataChange with status 0x80d2000.
По традиции дамп wireshark с этого сеанса в личном сообщении.
|
Written on: 08. 12. 2013 [21:05]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"rxs5" wrote:
Сделал, ничего не изменилось, также 0 в IWS.
В логе клиента OPC UA - в IWS есть сообщения об ошибках, возможно они помогут чем-то.
OPC UA Client: Info: Имя пользователя/пароль не установлен
OPC UA Client: Info: Connecting to the server ignition_opcua.
OPC UA Client: Info: Имя пользователя/пароль не установлен
OPC UA Client: Info: Connecting to the server oscada_opcua.
OPC UA Client: Info: Connection established successfully to the server ignition_opcua.
OPC UA Client: Info: Connection established successfully to the server oscada_opcua.
OPC UA Client: Warning: Group 1 => Could not read item 1 upon connection. : '0x80d2000' (Error: 0x80D20000)
Такой ошибки даже в перечне статусов OPC UA нет.
"rxs5" wrote:
По традиции дамп wireshark с этого сеанса в личном сообщении.
По прежнему Publish ответов нет в сеансе.
Добавлю отладочных сообщений в модуль DAQ.OPC_UA тогда включите отладку и поглядите, почему не идут Publish ответы.
Learn, learn and learn better than work, work and work.
|
Written on: 09. 12. 2013 [12:20]
|
roman
Roman Savochenko
Moderator Contributor Developer
registered since: 12.12.2007
Posts: 3750
|
"roman" wrote:
"rxs5" wrote:
По традиции дамп wireshark с этого сеанса в личном сообщении.
По прежнему Publish ответов нет в сеансе.
Добавлю отладочных сообщений в модуль DAQ.OPC_UA тогда включите отладку и поглядите, почему не идут Publish ответы.
Пока без отладки обошлось поскольку увидел в чём причина, а именно в провакативности клиента. :)
Он шлёт запрос активации нулевого сеанса, который обычно является по сути признаком отсутствия сеанса, а если сервису Read объект сеанса не нужен, то Subscribe именно там и хранится.
Проверяйте!
Learn, learn and learn better than work, work and work.
|
Written on: 09. 12. 2013 [13:53]
|
rxs5
Дмитрий Лыков
In tech support
Topic creator
registered since: 06.11.2013
Posts: 205
|
"roman" wrote:
Пока без отладки обошлось поскольку увидел в чём причина, а именно в провакативности клиента. :)
Он шлёт запрос активации нулевого сеанса, который обычно является по сути признаком отсутствия сеанса, а если сервису Read объект сеанса не нужен, то Subscribe именно там и хранится.
Проверяйте!
Проверил, есть данные в IWS (проверял int, float). Роман, спасибо за оперативные изменения.
Правда клиент OPC UA в IWS все равно дает ошибки
OPC UA Client: Error: Group 1 => Item 1 received a dataChange with status 0x80d2000.
OPC UA Client: Error: Group 1 => Item 2 received a dataChange with status 0x80d2000.
Но это, видимо, к разработчику IWS.
У вас остались еще какие-то задачи по OPC UA (серверная часть) ?
|