UNS Services provide 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.
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 |
Maintain local tag definitions while linking them to external sources. Runtime automatically manages communications when tags are accessed.
Characteristics:
When This Pattern is Optimal:
Configuration Approach:1. Create Tags in UNS LinkedData Field Example: Tag: TankLevel |
Direct binding to external paths without creating local tags. System dynamically creates communication entries as paths are accessed.
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')}" /> |