OPC-UA Interface

The OPC-UA interface is provided by the vnx.opc_ua.Server and vnx.opc_ua.Proxy modules.

They allow to access internal modules via OPC-UA method calls, as well as call methods on another OPC-UA server via a Lua Script for example.


To enable the vnx.opc_ua.Server set the following config option:

cd ~/pilot
echo true > config/local/enable_opcua_server

The server will listen on the address opc.tcp://

By default the following options are set:

        "export_services": [
        "export_topics": [
        "use_authentication": true,
        "default_access": "USER"

To add more modules and topics to the interface create a config file config/local/OPC_UA_Server.json as follows:

        "export_services+": [
        "export_topics+": [


To run a vnx.opc_ua.Proxy which connects to another OPC-UA server create the following config file config/local/opcua_proxy_map:

        ["OPC_UA_Proxy_1", "opc.tcp://"],

The above proxy will be available unter the module name OPC_UA_Proxy_1, see Lua Script for examples on how to use it.

Data Types

Primitive data types are directly mapped to their OPC-UA counter parts, such as int to INT32, float to FLOAT, etc. string is directly mapped to a OPC-UA STRING. Arrays of said types are directly mapped to OPC-UA arrays.

Anything else will be converted to JSON and transported via a LocalizedText object, with the locale set to JSON.