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

OPC UA


Author Message
Written on: 15. 01. 2014 [18:36]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
"roman" wrote:

"rxs5" wrote:

Даже после завершения trial period рантайма для IWS все равно шел обмен данными.

Нет там никакого обмена. Он только шлёт Hello запросы, а OpenSCADA их отбрасывает.
В тоже время активных клиентов уже нет: UAExpert отключен, в IWS завершился Trial. Но OpenSCADA поддерживает соединения ?
Соединения не должны закрываться, если обмена нет и идет флаг FIN ?
Written on: 15. 01. 2014 [19:40]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"rxs5" wrote:

Нет там никакого обмена. Он только шлёт Hello запросы, а OpenSCADA их отбрасывает.
В тоже время активных клиентов уже нет: UAExpert отключен, в IWS завершился Trial. Но OpenSCADA поддерживает соединения ?

А кто (192.168.195.192) "Hello" сообщения шлёт?

"rxs5" wrote:

Соединения не должны закрываться, если обмена нет и идет флаг FIN ?

Согласно спецификации OPC UA сервер по своей инициативе закрывать сообщения должен по запросу "CLO" (CloseSecureChannel). Во всех остальных случаях удержание соединения определяет клиент.
И опять, "FIN" OpenSCADA не видит и видеть не может, поскольку это внутреннее дело стека TCP. Закрытие соединения OpenSCADA может увидеть только по ошибке от select(функция ожидания данных в потоке).

Learn, learn and learn better than work, work and work.
Written on: 15. 01. 2014 [21:07]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"roman" wrote:

Согласно спецификации OPC UA сервер по своей инициативе закрывать сообщения должен по запросу "CLO" (CloseSecureChannel). Во всех остальных случаях удержание соединения определяет клиент.

А также по ошибкам, ну и не полным запросам. Добавил!

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

А также по ошибкам, ну и не полным запросам. Добавил!
На новой версии 2038 запускал задачу 2 раза с указанными ранее условиями. Пока нет замечаний, все работает.

[This article was edited 1 times, at last 16.01.2014 at 13:02.]
Written on: 21. 01. 2014 [13:39]
rxs5
Дмитрий Лыков
In tech support
registered since: 06.11.2013
Posts: 205
Есть новости по тестированию OPC UA сервера в OpenSCADA.
Как обычно работали 3 клиента OPC UA: UAExpert, IWS, контроллер OpenSCADA.
В какой-то момент времени (не увидел точно) из 3-х клиентов подключенных остался только 1. Два другие видимо пытаются постоянно подключиться, но это не удается, хотя в state входящего транспорта OPC UA количество соед соединений постоянно увеличивается.
При этом в консоли такие сообщения
JAVASCRIPT
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | The protocol '' is not present.                                                                                           
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Error request to protocol.                                                                                                
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been disconnected by '192.168.195.192'!                                                                        
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket received message '77' from '192.168.195.97'.                                                                       
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | The protocol '' is not present.                                                                                           
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Error request to protocol.                                                                                                
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been disconnected by '192.168.195.97'!                                                                         
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been connected by '192.168.195.97'!                                                                            
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket received message '77' from '192.168.195.97'.                                                                       
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | The protocol '' is not present.                                                                                           
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Error request to protocol.                                                                                                
4|/sub_DAQ/mod_OPC_UA/cntr_OPCUA_controller/ | 0x80ab0000:Remote host error                                                                                             
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been disconnected by '192.168.195.97'!                                                                         
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been connected by '192.168.195.97'!                                                                            
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been connected by '192.168.195.192'!                                                                           
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket received message '61' from '192.168.195.192'.                                                                      
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | The protocol '' is not present.                                                                                           
4|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Error request to protocol.                                                                                                
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been disconnected by '192.168.195.192'!                                                                        
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket has been connected by '192.168.195.192'!                                                                           
0|/sub_Transport/mod_Sockets/in_OPCUA_4848/ | Socket received message '61' from '192.168.195.192'.


В логе UAExpert имеются следующие сообщения
14:30:36.379 | Server Node | OpenScadaOpcServer@... | Connection status of server 'OpenScadaOpcServer@.- None - None' changed to 'ConnectionErrorApiReconnect'.
13:50:42.142 | DA Plugin | OpenScadaOpcServer@... | Calling Republish with sequence number 14524
13:49:55.142 | DA Plugin | OpenScadaOpcServer@... | Calling Republish with sequence number 14476
13:49:54.143 | DA Plugin | OpenScadaOpcServer@... | Calling Republish with sequence number 14474
13:49:53.147 | DA Plugin | OpenScadaOpcServer@... | Calling Republish with sequence number 14472


Еще при текущем состоянии сделал дамп в wireshark (он во вложении).
Также во вложении скриншот соединений в nix системе.
И скриншот состояния транспорта OpenSCADA

Не понимаю следующего:
1. Почему отключились клиенты.
2. Почему они не могут подключиться при наличии ссвободных соединений.
3. Странные сообщения в консоли о протоколе.

[This article was edited 1 times, at last 21.01.2014 at 13:41.]
Attachment

2_client_not_connecting.pcapng (File type: application/octet-stream, Size: 10.76 kilobytes) — 873 downloads
2_client_not_connecting_waiting.png (File type: image/png, Size: 180.52 kilobytes) — 807 downloads
2_client_not_connecting_only1.png (File type: image/png, Size: 288.71 kilobytes) — 818 downloads
Written on: 21. 01. 2014 [13:47]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"rxs5" wrote:

В какой-то момент времени (не увидел точно) из 3-х клиентов подключенных остался только 1. Два другие видимо пытаются постоянно подключиться, но это не удается, хотя в state входящего транспорта OPC UA количество соед соединений постоянно увеличивается.

Всё остальное лишнее.
Зачем поле "Транспортный протокол" очистили?

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

"rxs5" wrote:

В какой-то момент времени (не увидел точно) из 3-х клиентов подключенных остался только 1. Два другие видимо пытаются постоянно подключиться, но это не удается, хотя в state входящего транспорта OPC UA количество соед соединений постоянно увеличивается.

Всё остальное лишнее.
Зачем поле "Транспортный протокол" очистили?
Только сейчас заметил, что поле пустое. Не очищал его самостоятельно.
Начиная со вчерашнего дня постоянно крутил тесты стабильности по темам c bad_alloc и lib_opcua.
Соответственно было 3-4 итерации рабочих, и вот при очередной итерации сегодня оно вдруг стало пустым. Значения поля точно вручную не изменял !
Written on: 21. 01. 2014 [14:16]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"rxs5" wrote:

Только сейчас заметил, что поле пустое. Не очищал его самостоятельно.

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

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

Внутри оно тоже никогда не меняется, если конечно скриптов таких не писали.
А очистить могли случайно, например, скролили мышью в области около комбобокса.
Действительно мог быть скрол, он легко меняет протокол. Можно тогда сделать так, чтобы фиксировать протокол, так же как и адрес ? Чтобы его невозможно было сменить в запущенном в Running транспорте.
Written on: 21. 01. 2014 [19:18]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3747
"rxs5" wrote:

Действительно мог быть скрол, он легко меняет протокол. Можно тогда сделать так, чтобы фиксировать протокол, так же как и адрес ? Чтобы его невозможно было сменить в запущенном в Running транспорте.

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

Learn, learn and learn better than work, work and work.



0500