Derived Tags in UDTs Issue

Hi,

I’m using Ignition v8.0.12.

I’m working on trying to get derived tags working inside UDTs (I’m trying to do unit conversion). While doing this I’m unable to get the source to work properly. First, I make a UDT (named “testUDT”) as shown below with two tags: “val_1” is a stock memory tag and “val_2” is a stock derived tag with the only modification of using the bind “Browse Tags” feature to select “val_1”.


When I create an instance of this UDT the “val_2” value doesn’t update the value at all. In fact, the “SourceTagPath” property appears to still be referencing the “val_1” description in the UDT definition.

If I instead manually type the tag path in the “val_2” source as shown below:
image

I get the following error:
image

If I use the scripting example from https://docs.inductiveautomation.com/display/DOC80/Types+of+Tags (Changing the Source section) the script returns [Good] but the SourceTagPath doesn’t actually change.

If I then go into the UDT instance and override the “Source Tag Path” property:

I am now able to successfully run the script and the “val_2” value updates properly. I’m also able to just update the SourceTagPath property by hand in the Tag Browser and it works.

My question is if I am doing something wrong or is Ignition misbehaving?

Thank you if you made it to the bottom of this post!

@BryanB,

Thanks for the details. There are two things going on, one that we need to address and one that you will need to address.

The first issue is the code that is generating the path to the relative tag isn't doing the correct thing. As you noticed, it is setting a path to the definition and not the relative tag.

The second issue is the syntax for relative pathing. You will want to use [.]val_1 without the braces {}. Adding the braces indicates to the system that you want to use one of the parameters you defined within the UDT. Because you are providing a location to a tag, they are not necessary.

Thanks,
Garth

Thanks for looking into this. As you mentioned, if you manually type “[.]val_1” into the SourceTagPath in the UDT definition it appears to work properly.