UNS Tag Discovery Service 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.
Key Requirement: These are advanced technics, master the traditional SCADA/HMI concept of creating tags and mapping to devices before learning about those other alternatives.
Advanced Topic This content covers advanced functionality not required for most projects. Start and learn Local Tags mapping 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 | Tag.TagName |
Linked Tags | Governed flexibility | Stable models, changing sources, enterprise data | Tag.TagName |
Smart-Binding | Dynamic discovery | Diagnostics, ephemeral assets, unknown structures | Asset("path") |
Choose based on data characteristics, not development phase:
If Your Data... | Use This Pattern | Why | Access Syntax |
---|---|---|---|
Requires deterministic polling | Local Tags & Device Points | Explicit control over timing | Tag.TagName |
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 | Smart-Binding | No configuration overhead | |
Has unknown/changing structure | Smart-Binding | Dynamic discovery at runtime |
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:
Configuration Approach:
1. Create Tags in UNS
2. Configure Device Channels
3. Map Points to Tags
4. Define AccessType (read, write or read write)
5. Customize AccessType poling rate as necessary.
Maintain local tag definitions while linking them to external sources. Runtime automatically manages communications when tags are accessed.
Characteristics:
When This Pattern is Optimal:
1. Create Tags in UNS
2. Set LinkedData field to external path
3. Runtime auto-manages communication
LinkedData Field Example:
Direct binding to external paths without creating local tags. System dynamically creates communication entries as paths are accessed.
Characteristics:
When This Pattern is Optimal:
System diagnostics and troubleshooting
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 (30%)
? ??? Safety interlocks
? ??? Control loops
? ??? Legacy PLCs and Protocols
??? Linked Tags (60%)
? ??? Enterprise metrics
? ??? Standard equipment
? ??? Newer protocols
??? Smart-Binding (10%)
??? Enterprise UNS / systems with dynamic external governance
??? Temporary sensors or diagnostic overlays
??? Maintenance tools
The "Typical" Architecture
Rarely a "Typical" profile matches exactly the field requirements, reason why we keep all those options.
Therefore the numbers provided are merely illustrative, reach out the community and support as needed when applying those concepts to specific case.
Example Scenarios
Manufacturing Line:
Water Treatment Plant:
Linked Tags and Smart-Binding share the same runtime infrastructure:
User Configuration
Linked Tag → LinkedData field → Communication Table
Asset("path") → Auto-created entry → Communication Table
↓
Same Runtime Engine
(Polling, Subscription, Caching)
All patterns handle errors consistently:
Using Smart-Binding for safety-critical control
Forcing Local Tags when discovery would simplify
Mixing Device Points and LinkedData for same tag
Ignoring protocol capabilities
This advanced functionality enables flexible, efficient data connectivity. Choose patterns based on your specific data characteristics and operational requirements, not development phases.
While both the Devices module and TagProvider connections enable data exchange with remote systems, they have different focuses and complement each other.
There are features in the Devices module that can't be accomplished using TagProviders, and features from TagProviders that could be emulated with the Devices module.
This section details what these interfaces have in common, where they differ, and provides guidance on how to select what best fits your requirements, keeping in mind that both can be used in the same solution.
On this page:
Before we explore the differences, let's start with what they have in common.
In both cases, we establish a connection with a remote system, and the configuration settings for those connection is essentially the same.
At Devices, you create a Channel a Protocol, configure the ProtocolOptions, then create a Node to configure the PrimaryStation.
At TagProviders, you select a Protocol, and the configuration of ProtocolOptions and PrimaryStation is on the same dialog.
Despite the fact the TagProvider combines the configuration of Channel and Node, the fields for ProtocolOptions and PrimaryStation are the same, which is the reason why the documentation of the protocol is the same in both cases.
Using Devices, the AccessType can customize the read and write cycles and events, and you can use multiple AccessTypes on the same Node.
Using TagProviders, there is the ReadCycle and the WriteCycle, which applies to all communication on that TagProvider Connection.
Finally, on Devices, you create Points and maps to Tags. When working with TagProviders, that steps is not necessary, as you can access directly the address within the connected system.
In summary:
• Devices Module: Maps locally created Tags with address on the connected devices, offering detailed control over read/write events and diagnostics for each address.
• TagProvider: Establishes dynamic communication with remote sources, enabling direct browsing or writing on the remote data definition without using local tags.
Best Usage for Devices Module:
Best Usage for TagProviders:
In some solutions, it is quite possible that some of the data is better suited for use with the Devices module, while other data in the solution is better acquired using TagProvider.