UDT — User-Defined Types
Create reusable tag structure templates for repeated equipment types — define the register layout once and instantiate it for every device of that type.
On this page
UDT (User-Defined Types) solve one of the most common problems in industrial projects: repeated equipment. When a plant has 20 identical pumps, each with the same 12 PLC registers, creating 240 individual tags manually is time-consuming and error-prone. A UDT defines the structure once as a reusable template and generates all tags automatically for each instance.
How UDTs work
Click Add to create a new UDT. Give it a name that reflects the equipment type (e.g., ConveyorDrive, CoolingPump, PressureTransmitter).
Define the member tags — the individual registers that make up one instance of this equipment:
- Relative register address (offset from the instance’s base address)
- Data type
- Scale, unit, and format
- Label and description
The template has no physical device yet — it is a blueprint.
In the Tag Database, add a tag of type UDT, select your template, and enter:
- The Connection (which device to read from)
- The base address for this specific instance
The system calculates each member tag’s absolute address as base + relative offset and generates all member tags automatically, prefixed with the instance name.
Add one UDT instance per physical device with its unique base address. All instances share the same structure from the template.
For 20 pumps, this means 20 tag additions instead of 240.
Naming convention
Instances are prefixed with the name you give when creating the UDT tag. Example for template PumpUnit instantiated as Pump_01:
Pump_01.Speed
Pump_01.Current
Pump_01.FaultCode
Pump_01.RunHours
Pump_01.StartCommand
All 20 pumps follow the same pattern: Pump_02.Speed, Pump_03.Speed, etc. — making navigation and filtering in the Tag Database straightforward.
Updating a template
If a new firmware version of your device adds a register, add the new member to the UDT template. All existing instances automatically include the new member tag — no per-instance changes needed.
Assign all UDT-based pump tags to a Pumps category automatically by configuring the category in the template’s member definitions. Every instance then inherits the category.
Benefits
Efficiency — reduces manual tag creation time significantly, especially for projects with many similar components (e.g., 50 motors, 20 pumps). One template addition replaces dozens of individual tag edits.
Consistency — all instances of a component share the same structure, data types, and configuration. No risk of mismatched register maps between units.
Scalability — adding new variables to all components is a single edit to the UDT template. Every existing instance inherits the new member automatically without per-device changes.