Download the solution: Tag Reference Display Open Example.dbsln This example demonstrates the use of the Reference Tag type to open displays. |
When you click any of the buttons, a display will open and a reference tag will be linked to the corresponding machine. This way, you can use a single display for all machines — instead of creating one per machine — simply by changing the reference tag.
The buttons are also implemented as Symbols for easier maintenance. For a better understanding, right-click a button, select Edit Symbol, and explore Settings → Label Text and Dynamics → Action.
All machines share the same UserType, which defines the following process variables:
Member | Type |
|---|---|
Temperature | Integer |
Pressure | Integer |
Power | Integer |
Tag | Type | Domain | Description |
|---|---|---|---|
Machine1 | Machine | Server | Instance of the Machine UserType |
Machine2 | Machine | Server | Instance of the Machine UserType |
Machine3 | Machine | Server | Instance of the Machine UserType |
RefMachine | Reference (Machine) | Server | Reference tag — points to whichever machine is currently selected |
EquipNumber | Integer | Server | Drives the reference tag during Previous/Next navigation |
Machine | All Process Variables |
|---|---|
Machine 1 | 10 |
Machine 2 | 20 |
Machine 3 | 30 |
The home screen. Contains three instances of the MyButton symbol, one per machine.
Each symbol instance receives two inputs:
SymbolLabel | Value |
|---|---|
Equipment | @Tag.Machine1 / @Tag.Machine2 / @Tag.Machine3 |
EquipmentNumber | 1 / 2 / 3 |
Open the MachineStatus display |
When clicked, the button:
@Tag.RefMachine.Link to the name of the selected machine tag@Tag.EquipNumber to the corresponding machine numberThis is the single shared display used for all machines. All bindings reference RefMachine, never a specific machine tag directly.
Element | Binding |
|---|---|
Temperature TextBox | @Tag.RefMachine.Temperature |
Pressure TextBox | @Tag.RefMachine.Pressure |
Power TextBox | @Tag.RefMachine.Power |
Because all bindings go through RefMachine, the same display automatically reflects whichever machine is currently linked — no duplication required.
The buttons on MainPage are instances of the MyButton symbol. Using a Symbol instead of a plain button means any visual or behavioral change made to the symbol definition is automatically applied to every instance across all displays.
Label | Description |
|---|---|
Equipment | Tag reference for the target machine (e.g. @Tag.Machine1) |
EquipmentNumber | Integer identifying the machine (e.g. 1, 2, 3) |
The button executes three expressions on MouseLeftButtonDown:
Expression | Result |
|---|---|
| Written to |
| Written to |
| Opens the MachineStatus display |
The button label is built at runtime:
{#Equipment:(@Tag.Machine1).GetName().Replace("Tag.", "")}
|
This strips the Tag. prefix so the button displays a clean name like Machine1.
To inspect the symbol configuration: right-click any button → Edit Symbol, then check Settings → Label Text and Dynamics → Action. |
The Header display includes Previous and Next buttons that are only visible when the MachineStatus display is open. They allow the operator to cycle through machines sequentially without returning to the main page.
An EquipNumber tag (Integer) drives the reference tag change.
Expression | Result |
|---|---|
| Written to |
| Written to |
Expression | Result |
|---|---|
| Written to |
| Written to |
Both buttons use VisibilityDynamic with condition:
@Display.MachineStatus.IsOpened == true |
So they only appear when the MachineStatus page is active.