Українська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.



0209