DataTalk

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

Create the UDT template

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.

Instantiate for each device

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.

Repeat for every device

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.

Combine with Categories for organized projects

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.