UNS Tag Discovery provides three distinct patterns for connecting external data to the Unified Namespace. Each pattern is optimized for different data characteristics and operational requirements, and production systems typically use multiple patterns simultaneously based on the specific needs of each data set.
Key Understanding: These are not developmental stages but three equally valid architectural patterns. Choose based on your data's governance needs, stability, and control requirements.
Advanced Topic
This content covers advanced functionality not required for most projects. Start with Local Tags mapped to Devices first. Use this section when dynamic discovery or auto-managed communications is required.
Each pattern serves distinct operational needs:
Pattern | Control Model | Best For | Access Syntax |
|---|---|---|---|
Local Tags & Device Points | Explicit control | Critical control, legacy protocols, regulated systems |
|
Linked Tags | Governed flexibility | Stable models, changing sources, enterprise data |
|
Dynamic Tags | Dynamic discovery | IIoT monitoring, ephemeral assets, unknown structures |
|
Choose based on data characteristics, not development phase:
If Your Data... | Use This Pattern | Why |
|---|---|---|
Requires deterministic polling | Local Tags & Device Points | Explicit control over timing |
Uses legacy/proprietary protocols | Local Tags & Device Points | Only option for non-discovery protocols |
Needs local governance with flexible sources | Linked Tags | Stable names, changing connections |
Has stable structure but multiple sites | Linked Tags | Template once, link many |
Is temporary or diagnostic | Dynamic Tags | No configuration overhead |
Has unknown/changing structure | Dynamic Tags | Dynamic discovery at runtime |
Comes from an IIoT broker or enterprise UNS | Dynamic Tags | External system governs the namespace |
Traditional SCADA approach where you define tags locally and explicitly map them to device addresses through the Devices Module.
Characteristics:
When This Pattern is Optimal:
Maintain local tag definitions while linking them to external sources via the DataLink property. The runtime automatically manages communications when tags are accessed — on-demand, no Device Points needed.
Characteristics:
When This Pattern is Optimal:
DataLink Example:
Tag Name: Plant/Tank1/Level Type: Double DataLink: MyMQTT/sensors/tank1/level
When any module (display, alarm, historian) reads Tag.Plant/Tank1/Level, the runtime automatically activates communication to the MQTT broker path specified in DataLink. When no module is consuming the tag, communication is released.
Direct binding to external paths without creating local tags. The system dynamically creates tags in the real-time database (RTDB) as paths are accessed via Asset() syntax. Tags are created on demand and cleaned up automatically when no longer needed.
Characteristics:
When This Pattern is Optimal:
Access Method:
// Direct access in scripts
value = Asset("/mqtt/plant/tank01/level")
// Direct binding in displays
<TextBox Value="{Asset('/opcua/machine/status')}" />
Most production systems use multiple patterns based on specific data requirements:
Production System
??? Local Tags
? ??? Safety interlocks
? ??? Control loops
? ??? Legacy PLCs and protocols
??? Linked Tags
? ??? Enterprise metrics
? ??? Standard equipment (OPC UA, MQTT)
? ??? Multi-site template data
??? Dynamic Tags
??? Enterprise UNS / external governance
??? Temporary sensors or diagnostic overlays
??? Maintenance tools
The "Typical" Architecture
Rarely does a "typical" profile match exactly the field requirements — this is why all three patterns are available. The distribution varies widely by industry and application. Reach out to the community and support as needed when applying these patterns to a specific use case.
Manufacturing Line:
Water Treatment Plant:
Linked Tags and Dynamic Tags share the same runtime infrastructure:
User Configuration
Linked Tag ? DataLink field ? Communication Table
Asset("path") ? Auto-created entry ? Communication Table
?
Same Runtime Engine
(Polling, Subscription, Caching)
All patterns handle errors consistently:
Using Dynamic Tags for safety-critical control
Forcing Local Tags when discovery would simplify
Setting both DevicePoint and DataLink on the same tag
Ignoring protocol capabilities (not all protocols support discovery)
While both the Devices module and TagProvider connections enable data exchange with remote systems, they are completely independent and serve different workflows. A solution can use both simultaneously.
In both cases, you establish a connection with a remote system, and the core connection settings are essentially the same:
The TagProvider combines what is a Channel and Node in Devices into a single configuration. The fields for ProtocolOptions and PrimaryStation use the same format in both cases — which is why the protocol documentation applies to both.
Devices Module:
TagProvider Services:
Best for Devices Module | Best for TagProvider Services |
|---|---|
Local tag definition with full metadata (Min, Max, Retentive, Units, etc.) | Access data already defined in other systems |
Validation of address availability and diagnostics | Dynamic data definition that adapts without manual changes |
Control over communication performance, cycle times, read/write events | No detailed control required over communication messages |
The solution is the Publisher that creates topics in the remote system | The solution is a subscriber — reading from an existing namespace |
Regulatory compliance requiring explicit address mapping | Engineering speed — minimize configuration for monitoring use cases |
In many solutions, some data is better suited for the Devices module while other data is better acquired using TagProvider Services. Both approaches coexist naturally in the same solution.