Integrations OPC UA
OPC UA
Verified livePrefer this one when a device offers a choice. It browses, it is properly secured, and it subscribes.
Verified against Microsoft opc-plc (C#)Emberburn (Python)
The driver subscribes rather than polls. The server sends a value when it changes, at a rate it can sustain, instead of being asked the same question every scan by a client with no idea whether anything moved. If a server refuses a subscription, the driver falls back to batched reads rather than failing the device.
Address nodes by namespace URI. Browse returns the URI form for exactly this reason, because the URI does not move when a server reloads.
A bare string is rejected as an address. The underlying library would happily read Temperature as ns=0;s=Temperature, which means a typo parses cleanly into a node that does not exist and the tag reads bad forever. An explicit form is required, so the mistake surfaces when you save it.
Addressing
| Address | Means |
|---|---|
nsu=http://opcua.edge.server;s=Zone1_Temperature | Good. The namespace URI is part of the model and does not move. |
ns=3;s=Zone1_Temperature | Works until it doesn't. The index depends on load order. |
A namespace index is assigned in whatever order the server happens to load its namespaces. Add a namespace, upgrade firmware, and index 3 quietly becomes something else, so every reading is wrong with no error anywhere.
Configuration
securityPolicysecurityModeusernamepasswordcertFilekeyFilesubscribepublishIntervalMssamplingIntervalMsbrowseMaxNodesbrowseRoot