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

communitation OpenSCADA - python via OPCUA


Author Message
Written on: 19. 11. 2023 [00:22]
arccis
Arkadii Kysil
Topic creator
registered since: 18.11.2023
Posts: 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".
Written on: 19. 11. 2023 [09:23]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"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.
Written on: 20. 11. 2023 [15:43]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3742
"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.



17367