I understand how parameters can be used in a UDT to programmatically configure an OPC Item Path. However, it is possible to use a Vision Client Tag in the path so I can programmatically map all of the tags to a different PLC?
I have an application developed in another software package that I’m trying to replicate in Ignition. The application maps the tags to the appropriate PLC based on the machine selected from a screen. If the OPC Item Path in theUDT can’t be altered, is it possible to programmatically change the OPC UA Device configuration?
Definitely cannot use a Vision Client Tag for such, in any case. Vision client tags only exist in the open vision client–the gateway talking to your PLC has no knowledge of or access to them.
Dynamically changing an OPC tag’s item path is permitted with scripting. Write directly to the OPC item path property, or use system.tag.configure to write to it. Or, perhaps, use system.tag.configure to change a UDT parameter that affect many OPC tags at once.
There’s a variety of discussions about this on this forum.
If the set of PLCs is small, consider just instantiating tags for all of them and having the client use indirect tag binding to select the appropriate folder of tags. That makes the application compatible with multiple simultaneous clients looking at their choice of PLC.
Thanks for the quick responses. I would need to change multiple tags at once so I’ll look into your suggestions for using system.tag.configure and the indirect tag binding.
Actually, you can write to udt parameters using tag.write as well. Much easier than using configure!
From what you’re saying, it sounds like I’d have to write to the parameter in each tag individually. I’ll have hundreds of tags. That’s why I was looking to use a tag within the UDT so I could write a value to that tag once and it would update every tag using that UDT at once.
Take a hard look at indirect binding, using tag paths in window parameters and/or template parameters. It is entirely in the client. Multiple users won’t interfere with each other.