УкраїнськаEnglishmRussian
Вход/Новый
В теме много сообщений

OPC UA


Автор Сообщение
Сообщение создано: 15. 01. 2014 [18:36]
rxs5
Дмитрий Лыков
In tech support
Зарегистрирован(а) с: 06.11.2013
Сообщения: 205
"roman" wrote:

"rxs5" wrote:

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

Нет там никакого обмена. Он только шлёт Hello запросы, а OpenSCADA их отбрасывает.
В тоже время активных клиентов уже нет: UAExpert отключен, в IWS завершился Trial. Но OpenSCADA поддерживает соединения ?
Соединения не должны закрываться, если обмена нет и идет флаг FIN ?
Сообщение создано: 15. 01. 2014 [19:40]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"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.
Сообщение создано: 15. 01. 2014 [21:07]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"roman" wrote:

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

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

Learn, learn and learn better than work, work and work.
Сообщение создано: 16. 01. 2014 [12:49]
rxs5
Дмитрий Лыков
In tech support
Зарегистрирован(а) с: 06.11.2013
Сообщения: 205
"roman" wrote:

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

[Сообщение редактировалось 1 раз(а), в последний раз 16.01.2014 в 13:02.]
Сообщение создано: 21. 01. 2014 [13:39]
rxs5
Дмитрий Лыков
In tech support
Зарегистрирован(а) с: 06.11.2013
Сообщения: 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. Странные сообщения в консоли о протоколе.

[Сообщение редактировалось 1 раз(а), в последний раз 21.01.2014 в 13:41.]
Вложенный файл

2_client_not_connecting.pcapng (Тип файла: application/octet-stream, Размер: 10.76 килобайт) — 833 загрузок
2_client_not_connecting_waiting.png (Тип файла: image/png, Размер: 180.52 килобайт) — 766 загрузок
2_client_not_connecting_only1.png (Тип файла: image/png, Размер: 288.71 килобайт) — 780 загрузок
Сообщение создано: 21. 01. 2014 [13:47]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3742
"rxs5" wrote:

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

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

Learn, learn and learn better than work, work and work.
Сообщение создано: 21. 01. 2014 [13:55]
rxs5
Дмитрий Лыков
In tech support
Зарегистрирован(а) с: 06.11.2013
Сообщения: 205
"roman" wrote:

"rxs5" wrote:

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

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

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

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

Learn, learn and learn better than work, work and work.
Сообщение создано: 21. 01. 2014 [14:20]
rxs5
Дмитрий Лыков
In tech support
Зарегистрирован(а) с: 06.11.2013
Сообщения: 205
"roman" wrote:

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

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

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

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



6051