Ignition without OPC-UA?

Hi all,

in the past I've had two customers trying my ADS driver and reporting class not found exceptions. I was a bit puzzled as they are core classes of the OPC-UA sub-system.

Recently one of them reported that he had to install the OPC-UA module and that made my driver work.

Now my question here is: Isn't OPC-UA the central nerve system of Ignition? How can it even work without?

And is there a way I can make my module declare a dependency on that module so users get a clear warning?

Chris

OPC UA is provided by the OPC UA module.

Modules can (and should... must?) declare their dependency on other modules, see e.g. modbus-server-driver/msd-build/pom.xml at fedfe7082869520a415cae91e3e1fb97873e1564 · kevinherron/modbus-server-driver · GitHub

I did provide that in my build ... however it seems this isn't enforced ... there seems to be a way to mark it required for 8.3, however the ignition-maven-plugin 1.1.0 doesn't seem to support that.

Unfortunatley, I wasn't able to reproduce that scenario yet ... so I guess I'm simply going to catch the CNFE and log something senslible.

But the thing I was confused about ... how can Ignition work without OPC-UA?

Nothing in Ignition requires OPC UA :man_shrugging:

The tag system is independent of OPC UA. OPC tags are just one kind of tag, and even that is a generalized "OPC" tag and not an OPC UA specific tag (e.g. OPC Classic).

If you aren't using our OPC UA server and drivers, and aren't making outbound OPC UA connections to external OPC UA servers... you don't need the OPC UA module for anything. Not very common that it's uninstalled, but it's a possibility.

Oh ... interesting ... possibly I should update my plugins to not even require OPC-UA ... I always thought Ignition was built around OPC-UA ... will investigate that ... If I could completely eliminate the dependency on OPC-UA that would be even better ... thanks :wink:

Drivers are built around OPC UA - they are essentially plugins for the OPC UA server.

Aaaah ... so my approach was the normal one? ... hmm ... ok. Then I need to make it more robust so users can diagnose problems themselves.

Your gateway hook's setup method can request the OPC UA module's hook instance by module ID (via the provided gateway context) and throw a more informative error if you get a null. (But only if none of the OPC UA classes are actually referenced by your hook class prior to the setup method running. Check the stack trace to see exactly how far it got.)

That's an even better idea ... thanks for that ... will adopt that.