Using the same parameter names in multiple UDT definitions means those types cannot be conveniently nested inside each other, due to the clashing parameter names. I recommend using a parameter naming scheme where the UDT's own name is part of each nestable parameter's name. So for a UDT named SomePLCtype1
, I make it's base OPC item path parameter opc_SomePLCtype1
. That way a nested type can construct its parameter value from an outer type's parameter.
For examples, consider playing with my EtherNet/IP v2 beta module--it's JSON UDT definitions exported from the PLC use this scheme.