Dynamic external data integration through runtime-managed discovery and extensibility services.
Platform → Technology → Supporting → TagProvider Services | Concept | Reference
TagProvider Services extend the Unified Namespace beyond traditional tag management, enabling dynamic discovery of external data sources and embedding of third-party modules. These services represent a shift from static configuration to dynamic, runtime-managed connectivity.
Two Service Types:
TagProvider Services are completely independent from the Devices module. Both can connect to external systems, but TagProvider Services focus on auto-discovery and dynamic namespace integration, while the Devices module provides explicit point-by-point control with full tag metadata.
Some protocols (MQTT, OPC UA, ControlLogix) are available in both, with different workflows..
Service Types
Service Type | Purpose | Key Benefit | Example Use |
|---|---|---|---|
Tag Discovery | Auto-discover external tags without pre-mapping | Runtime-managed, on-demand communications | MQTT, OPC UA, ControlLogix, SQL, Beckhoff |
Module Extension | Embed third-party modules as native UNS components | Full Designer integration, standard UNS access | Sorba.AI, custom analytics |
Not a TagProvider Service
Storage Locations (Historian module) allow archiving to external databases such as Canary, InfluxDB, or GE Proficy. While the underlying library is shared with TagProvider Services, Storage Locations are configured in the Historian module and serve a completely different purpose — they send data out for archiving, not discover data in. See Historian Module for details.
The primary TagProvider service. It enables three patterns for connecting external data into the UNS. The runtime creates actual tags in the real-time database (RTDB) so that all modules (alarms, displays, historians) access external data uniformly.
Pattern | How It Works | Access Method | DataLink Property |
|---|---|---|---|
Local Tags | Tag created in UNS configuration. No external binding — values come from Devices, scripts, or manual entry. |
| Not set |
Linked Tags | Tag created in UNS configuration with the DataLink property pointing to a TagProvider path. The runtime auto-manages communication to the external source. |
| Set (e.g. |
Dynamic Tags | No tag pre-created. At runtime, |
| N/A — resolved dynamically |
DataLink
DataLink is a property on UnsTags. When set, it binds a local tag to a path in a TagProvider's discovered namespace. The runtime automatically manages the connection — communication is activated on demand when the tag is read, and released when no longer needed. This is the key mechanism behind Linked Tags.
The choice between patterns depends on where namespace governance resides:
Local UNS Governance (Local Tags and Linked Tags):
External Governance (Dynamic Tags):
Asset()Enables third-party modules to integrate as native FrameworX components with full Designer support. Shipping ~Q2 2026 with Sorba.AI as the first partner.
Once configured, Sorba.AI module elements appear in the Asset Tree alongside regular tag folders:
The module exposes all properties through standard UNS access patterns — accessible via Asset() syntax and standard tag bindings like any native data.
Both service types share these runtime behaviors:
Service Type | Protocol Requirement | Available Connectors |
|---|---|---|
Tag Discovery | Protocol must support browsing/discovery | ~16 connectors (MQTT, OPC UA, ControlLogix, SQL, Beckhoff, Codesys, and others) |
Module Extension | .NET assembly with XML descriptor | Partner-provided (Sorba.AI first) |
Both TagProvider Services and the Devices module connect FrameworX to external systems, but they serve different workflows:
Aspect | TagProvider Services | Devices Module |
|---|---|---|
Design philosophy | Auto-discover, bind dynamically | Define explicitly, validate strictly |
Tag creation | Optional (Dynamic Tags need none) | Required — every point maps to a tag |
Namespace control | External source can define structure | Solution architect defines everything |
Metadata (alarms, historian, units) | Full control on Linked Tags; limited on Dynamic Tags | Full control on every point |
Available protocols | ~16 (discovery-capable only) | ~100 (all industrial protocols) |
Best for | IIoT monitoring, dynamic environments, UNS integration | SCADA control, regulatory compliance, FDA validation |
Can coexist? | Yes — same solution can use both, even for the same protocol | Yes |
Use TagProvider Services | Use Devices Module |
|---|---|
External source has a browsable namespace (MQTT, OPC UA) | Protocol requires explicit point addressing (Modbus registers) |
Data model is dynamic or changes frequently | Fixed, well-known set of control points |
Monitoring and visualization are the primary use case | Tight control loops, setpoint writing, regulatory compliance |
Engineering speed is a priority — minimize configuration | Full metadata (alarms, scaling, units) needed per point |
TagProvider Services are powered by a protocol library that supports runtime discovery, on-demand communication, and automatic resource management. This same underlying library is also used by the Historian module for Storage Locations (external archiving to Canary, InfluxDB, GE Proficy, etc.).
From the user's perspective, these are separate features in separate modules — TagProvider Services live in UNS, Storage Locations live in Historian. The shared library is an implementation detail, not an architectural relationship.
Partners building Module Extensions or custom connectors may encounter this shared foundation when working with the SDK.