[BUG-1461] Changing nested UDT Parent Type not working in instance


I have a UDT that has a UDT instance nested within it that I want to be configurable at the parent UDT’s instance level.
For example, in the screenshot below, Interface Test is an instance of PLC Itnerface 1, and I want to change the nested UDT instance within it, called Payload, from it’s original Bay UDTType to Location. I have done this in the screenshot and applied it, but you can see that the tags under it do not reflect the tags within the Location UDT definition.

I also end up getting these warning signs beside the tags (which belong to the Bay UDTType, and not to the new Location UDTType)

Can you decribe where Payload>Height Length and Width, come from. Is it from Bay Data Tye?

Correct, these come from the original Bay data type

What you’re to do is not conventional. Making a change of a parent data type inside a UDT instance with nested data types. I advice to create in the data type, in your case, two nested data types with it parent variation. And when creating the UDT instance just disable the one you don’t need.

and then

It may not be conventional, but the facility to do it is certainly made available, as any (most?) properties of a UDT are property overridable, including the Parent Type. So this, in my opinion, is most certainly a bug in behaviour. It’s also a very common way to use templates within another SCADA application (not that features of different SCADA packages are necessarily interchangeable).

@nminchin did you ever find a solution for this?
I’m running into a similar situation where I’d really like to be able to change the parent type of a nested UDT. The green “override” icon updates as if the change was accepted, but the child UDT doesn’t change type. I’m on 8.1.2 nightly (20210105-0209).

Nope, never heard anything from IA about it. It wasn’t actually for my project but for a colleague’s. I think he probably went with the method Jonathan mentioned.

I just found your post after i spent a couple of hours on this problem. I have a comples UDT defined with a default nested type and want to change the nested type to a specific implementation depending on the connected plc type.

Maybe a developer can at least tell if this a bug or a misunderstood feature.

That’s exactly what I’m trying to accomplish too.

I agree, if this override is not meant to work then the UI should probably be updated to remove the option.

Looks like this is under development, and the resolution is to disallow changing the UDT parent type from an instance, for what it’s worth.