I am running Vision and I have a few tags created from a UDT. I simply want to display tags from the UDT using a template and then a template repeater. I can individually set up a template and feed in my UDT but when I try to do it using a template repeater and feeding in my tag name just like the individual template it does not work.
See below:
This is my UDT, pretty basic, just have a label, value, and units:
Here are my UDT instances:
I created a template setup with a template parameter of UDT_Integer:
This is the template view. Can't see it but to the left is the label, you can see the value (PV) and units are to the right of the value:
Here is my individual template instance and it works. I have bound the template property to InletTemperature:
Here is my template repeater and I added the template parameter of UDT_Integer with the two instances of InletTemperature and OutletTemperature:
What am I missing? How come the template repeater doesn't populate with the UDT instances?
You found one of the many limitations of using UDTType Window properties
The solution: don't use them. Pass the tagpath to the udt instance instead and do away with using UDTType Window properties
(what you're actually passing to your template repeater dataset are the strings "InletTemperature" and "OutletTemperature". Strings are not magical links back to the UDT instances)
I really wish the pitfalls of using UDTTypes were mentioned in the user manual tbh, as they certainly aren't obvious when you first start using Ignition; they seem great until you start trying to use them in different situations. Then they fall apart
5 Likes
Gotcha. Good to know for the future. I thought it would be a slick way to do it.
I changed it so now I use indirect.tag addressing to populate the three items and I simply pass in the template parameter Tag. I use a template repeater again and feed in the template parameter Tag with two rows, one set to InletTemperature and the second set to OutletTemperature. It works if I set template parameter Tag to InletTemperature but it does not work if I do the same on the template repeater. What am I doing wrong now?
Figured it out. I had to set Repeat Behavior to Dataset instead of Count and it populated correctly. Thanks!
Another thing I'd suggest, is always pass in the full path to the UDT instance, not just bits and pieces as you are. You might eventually want to use the template to display a udt instance that doesn't conform to the strict tagpath you set, and you'll kick yourself.
I.e. Pass in [RTP_Utilities]Int/Inlet Temperature
1 Like
Yea that makes sense, thanks!