system.opc.readValues from Frontend to Backend

I need to read tag values via opc from a frontend Ignition GW, reading the tags from a backend GW OPC server. I can't issue a system.opc.readValues from the Frontend and have to request it to run on the backend, but...

The tag provider names are different, slightly, in both gateways. The frontend remote tag provider is slightly different to the relevant backend gateway tag provider. I would like some way to get the mapped remote tag provider name from the configuration rather than dumb hard-coding it.

How would I read the Frontend GW's remote tag provider info, and get the name of the tag provider it's looking at in the remote gateway?

If you are going to be using system.opc.*, you don't need to know the remote tag provider name. Just read the tag props for OPC Server and OPC Item Path in the front end. Then supply those in your system.util.sendRequest to the backend for it to do the actual OPC read.

This is what I was doing, but the opcitempath has the frontend's tag provider name when you read the tags (eg system.tag.readBlocking('tag/path.opcitempath')) from the frontend :confused:

OPC item paths don’t contain tag providers unless they are tags being exposed by the OPC server on the other end of that connection.

Your scenario is very unclear to me at the moment.

1 Like

True...

I think I over thought the issue which turns out to be a non-issue as I have all I need to read the OPC tags from the remote gateway... Tag providers are irrelevant for opc reads, whoops.

Thanks guys!

Extra question:
In a multi-backend system, how would I know which backend to request running the OPC read from, programmatically?

Hmmm. Have to poke around with introspecting a remote tag provider obtained from the gateway context. The Remote Tag Provider isn't in the SDK javadocs.