Why not import PLC UDTs tags?

hi there,
I’ve seen some posts about PLC UDT tags to be imported via OPC-UA and my question is:
Is this the best way to import tags from the PLC ?
Is something wrong with creating UDTs inside PLC tags ?
Any comments about the data types and the size of the variables to fit inside the UDTs?

thanks in advance
Erik

We export Rockwell PLC programs to XML and then parse them using Ignition to get UDT definitions, Devices, tags, alarms, I/O, etc. and then automatically create the tags/UDTs in Ignition.

I find it is good practice to have your UDT in Ignition match the UDT in the PLC.

Blegh. That means you’re subscribing to everything in the UDT, whether you use it in Ignition or not.

You know me better than that, we do trim them down to what we use.
But what is in the Ignition UDT is exactly the same as the PLC UDT.
:stuck_out_tongue:

1 Like

@pturmel what’s your advice on the data structures both on PLC side and SCADA Ignition side?

On the Scada side, I recommend UDTs for all repeating devices, using naming conventions to maximize their utility in dynamically populated windows and templates.

On the PLC side, I recommend maintaining separate UDTs for data exposed to Ignition versus internal control use only. This dramatically improves Ignition’s ability to optimize driver polling messages. I recommend keeping UDT element names short, also to optimize access, even if that means the PLC UDT element names don’t match the names in the UDTs in Ignition.

thanks @pturmel, so in this way UDT on both sides PLC and SCADA.
What about the data types,structures and size of the UDTs?
For example, in some PLCs some data types such as DINTs are more efficient than other types of INT…

Depends on where your bottlenecks are. If PLC scan time is a problem, use the data types that run faster. If Scada/PLC comms is a bottleneck, use the smallest data types that make sense for the content, so more of them can be packed into optimized messages. In my experience with modern processors, scan time is rarely a concern.

Thanks, are there some simple examples to illustrate a good architecture?