enable direct interaction with variables in remote systems without creating local tags, establishing dynamic connections with external data sources for enhanced data access within the Unified Namespace.
\
Overview
TagProvider Services provide:
- Dynamic external data access
- Tagless connections to remote systems
- Automatic data model discovery
- Real-time structure updates
- Multi-protocol support
- Historian integration capabilities
TagProviders allow consuming external data models directly, ideal for IoT systems and dynamic environments where device configurations change frequently.
TagProviders vs Devices
Aspect | Devices | TagProviders |
---|---|---|
Data Structure | Static, predefined | Dynamic, discovered |
Tag Creation | Required locally | Not required |
Metadata | Full control | Limited control |
Security | Granular per tag | Connection level |
Use Case | SCADA/HMI systems | IoT/Monitoring |
Validation | Strict (FDA) | Flexible |
Configuration | Design-time | Runtime discovery |
Supported TagProviders
Communication Protocols
- MQTT - Standard and SparkPlugB
- OPC UA - Industrial standard
- ControlLogix - Rockwell PLCs
- Codesys - PLC Handler
- TwinCAT - Beckhoff systems
Application Integration
- Server to Server - Solution interconnection
- LineMonitor - Production monitoring
Historian Systems
- Canary Labs - Enterprise historian
- InfluxDB - Time-series database
- GE Proficy - Industrial historian
- SQL Database - Generic SQL sources
<ac:structured-macro ac:name="info"> ac:rich-text-body
<p>Historian TagProviders provide two additional features:</p> <ol> <li>Automatic historian querying for TrendCharts using Asset() syntax</li> <li>Can be used as Storage Locations for archiving time-series data</li> </ol> </ac:rich-text-body> </ac:structured-macro>
Configuration
Creating Connections
- Navigate to Unified Namespace → TagProvider Connections
- Click New Item button
- Select protocol from list
- Configure connection parameters
- Test connection
- Asset folder auto-created
Common Parameters
Parameter | Description | Required |
---|---|---|
Name | Connection identifier | Yes |
Protocol | Communication type | Yes |
PrimaryStation | Main endpoint | Yes |
BackupStation | Redundant endpoint | No |
Access | Read/Write/ReadWrite | Yes |
Timeout | Response timeout | Yes |
Description | Documentation | No |
Protocol-Specific Settings
Each protocol requires unique parameters:
- OPC UA: Server URL, Security Policy
- MQTT: Broker, Topic structure
- ControlLogix: IP Address, Slot
- SQL: Connection string, Query
Using TagProviders
Asset Tree Integration
After configuration, TagProviders appear in Asset Tree:
/Root
/MyOPCServer (TagProvider)
/Line1
/Motor1
/Speed
/Temperature
Accessing Data
Asset() Syntax:
csharp
// Read value
double speed = Asset("/MyOPCServer/Line1/Motor1/Speed");
// Write value
Asset("/MyOPCServer/Line1/Motor1/Speed") = 100;
// ControlLogix specific
Asset("/MyPLC/DINT:MyTag");
Asset("/MyPLC/DINT:MyArray[0]");
In Displays:
xml
<TextBox Text="{Asset('/MyOPCServer/Line1/Motor1/Speed')}" />
In Scripts:
csharp
if (Asset("/MyOPCServer/Line1/Motor1/Running"))
{
// Motor is running
}
Data Type Handling
WPF Displays (.NET Framework 4.8)
Dynamic handling supported:
csharp
var value = Asset("/Path/To/Tag");
// Automatically handled as correct type
HTML5/Portable (NetStandard 2.0)
Explicit conversion required:
csharp
int intValue = TK.ToInt(Asset("/Path/To/Tag"));
string strValue = TK.ToString(Asset("/Path/To/Tag"));
bool boolValue = TK.ToDigital(Asset("/Path/To/Tag"));
Historian Integration
As Data Source
csharp
// TrendChart automatic query
TrendChart.Asset = "/HistorianProvider/Temperature";
// Automatically fetches historical data
As Storage Location
Configure in Historian → Storage Locations:
- Select TagProvider as target
- Map tags to historian points
- Define storage intervals
Best Practices
- Use appropriate technology - Devices for static, TagProviders for dynamic
- Test connections - Verify before production
- Handle failures - Configure backup stations
- Monitor performance - Check read/write times
- Document providers - Clear naming and descriptions
- Plan redundancy - Use backup stations
- Consider security - Access mode restrictions
Browsing Data
Asset Tree Browser
- Navigate to Unified Namespace → Asset Tree
- Select TagProvider folder
- Browse structure in tree
- View live values in grid
Object Browser
Use toolbar Object Browser for correct syntax:
- Click Object Browser icon
- Navigate to desired element
- Copy displayed AssetPath
Configuration Properties
Property | Description | Type |
---|---|---|
Protocol | Communication protocol | Selection |
ProtocolOptions | Protocol-specific settings | String |
PrimaryStation | Main connection endpoint | String |
BackupStation | Backup endpoint | String |
Settings | Configuration parameters | String |
Timeout | Response timeout (ms) | Integer |
IsHistorian | Historian capability | Boolean |
Access | Read/Write permissions | Enum |
ServerIP | Remote server address | String |
Troubleshooting
Connection failed:
- Verify network connectivity
- Check protocol settings
- Review authentication
- Test with simple query
No data visible:
- Confirm connection active
- Check Asset Tree mapping
- Verify access permissions
- Review protocol specifics
Performance issues:
- Reduce polling frequency
- Check network latency
- Optimize queries
- Use local caching
Type conversion errors:
- Use explicit conversion (HTML5)
- Verify data types match
- Check null values
- Review error messages
In this section...