Drawbacks of structs and UDTs
Despite Siemens' excellent approach toward UDTs and structs, there are some drawbacks to using them.
Most of the issues are small and are easily managed, however, a potentially confusing issue (especially to programmers that are new to using libraries and UDTs) occurs when a UDT and a block dependent upon the UDT both appear in a Project library.
Libraries
UDTs that are stored in a library and are utilized in many places can cause a large number of objects to upgrade to a newer version if modified.
Remember
A program block is dependent upon a UDT if its interface contains a declaration of the UDT.
When a project library has no objects in test, it would look something like the following:
If UDT_Sample_Pump_Raw_IO
is modified and a new version is created, the project library indicates that the UDT is in test: