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

communitation OpenSCADA - python via OPCUA


Автор Сообщение
Сообщение создано: 19. 11. 2023 [00:22]
arccis
Arkadii Kysil
Создатель темы
Зарегистрирован(а) с: 18.11.2023
Сообщения: 2
Hello! python has freeopcua library which consist client and server. And there is "FreeOpcUa Client" with gui. I have done some tests.
1) FreeOpcUa Client can read and write AGLKS without problem.
2) I make simple server based on server-minimal.py with two variables: readable and writable. when I go to "Server nodes browser" I see "0x80070000:Variant type '0' is not supported." where 0x80070000 = OpcUa_BadDecodingError. and OpenSCADA does not expect type 0. see picture = print screen of FreeOpcUa Client. As far as I understand, the type "0" is equal to "Null". Object with problem is not my variable.Wireshark knows Null type too.
3) OpenSCADA can read and write my variables from "server".
Сообщение создано: 19. 11. 2023 [09:23]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"arccis" wrote:

2) I make simple server based on server-minimal.py with two variables: readable and writable. when I go to "Server nodes browser" I see "0x80070000:Variant type '0' is not supported." where 0x80070000 = OpcUa_BadDecodingError. and OpenSCADA does not expect type 0. see picture = print screen of FreeOpcUa Client. As far as I understand, the type "0" is equal to "Null". Object with problem is not my variable.Wireshark knows Null type too.

The external server just sends wrong data type, which OpenSCADA.OPC_UA considers as an error and normal servers never sends such data type!

Learn, learn and learn better than work, work and work.
Сообщение создано: 20. 11. 2023 [15:43]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"roman" wrote:

"arccis" wrote:

2) I make simple server based on server-minimal.py with two variables: readable and writable. when I go to "Server nodes browser" I see "0x80070000:Variant type '0' is not supported." where 0x80070000 = OpcUa_BadDecodingError. and OpenSCADA does not expect type 0. see picture = print screen of FreeOpcUa Client. As far as I understand, the type "0" is equal to "Null". Object with problem is not my variable.Wireshark knows Null type too.

The external server just sends wrong data type, which OpenSCADA.OPC_UA considers as an error and normal servers never sends such data type!

And that is a real problem of that server since the OPC-UA specification have nothing about type 0 in the Table 1 of the OPC UA Part 6, that is the server sets flag "0x01 False if the Value is Null" of the value presence in the Encoding Mask field of the Table 15 of the same part and sets the missing value type 0, what is wrong!

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



10499