Overview
The TagProvider feature is a tool that allows you to access Data Models definitions from external systems, using those variables and structures in any FrameworX Module directly, without having to create any local definition of Tags inside your ProjectTagProviders enable direct interaction with variables in remote systems, bypassing the need to create specific tags in the solution. They establish connections with tag sources, enhancing data access and exploration within the Unified Namespace.
On this page:
Table of Contents | ||||
---|---|---|---|---|
|
Understanding TagProvider Connections
TagProviders allow connections with external systems to read or write data without creating local tags. Displays and other modules can directly access data from remote systems, even if their structure changes dynamically.
Automatic & Tagless Connections
:
- Connect to external data sources and consume their
- data models in
- the Unified Namespace.
- Access all tags and data structures
- automatically with
- simple configuration.
- The connected provider’s
- tags and data models are available for use in
- various modules (
- Displays,
- Scripts,
- Reports,
- etc.).
- Support for various systems: Protocols, Historians, or Devices
- .
- Easily plot trend charts and access archived data from external Historians.
Devices vs TagProviders
Some connections can be done through Devices and TagProviders. To define which one works best for your application, you should look at how your data is structured.
Devices handle predefined, static data, ensuring control, security, and advanced metadata management, suitable for applications requiring strict validation like HMI and SCADA systems. These environments often require strict regulatory compliance, such as FDA validation in pharmaceutical production or stringent monitoring in manufacturing plants. Devices provide detailed metadata management, including retentiveness, security settings, and visibility control within the platform.
TagProviders are ideal for applications where where data and device configurations change frequently, necessitating real-time update. That type of connections allows you to manage dynamic data, enabling flexible device addition, ideal for IoT and monitoring applications needing situational awareness, such as smart city infrastructures or home automation systems. For instance, TagProviders can dynamically integrate new environmental sensors in a smart energy grid, providing continuous updates and allowing city managers to respond promptly to changing conditions.
Supported TagProviders
Integration with Communication Protocols
Integration with other Applications
Integration with Historian Systems
Info | ||
---|---|---|
| ||
When the TagProvider Connection is created for a Historian system, it will have two additional features:
|
Configuring TagProviders
Configuration Workflow
- Identify the TagProvider: Based on the communication protocol
On this page:
Table of Contents | ||||
---|---|---|---|---|
|
Understanding Supported TagProvider Connections
Tag providers in FrameworkX serve as intermediaries between the software and external data sources, facilitating the exchange of data and enabling the software to access, process, and display information from various sources. By configuring and connecting to tag providers, users can efficiently integrate and manage data from different devices, systems, or protocols within the software.
The TagProvider feature is available for the following Communication Protocols:
- AB Rockwell - ControlLogix/CompactLogix Devices.
- OPC UA
- MQTT SparkPlugB (watch the video tutorial)
Connection with Remote Systems:
- Tatsoft FrameworX applications
Integration for data browsing and archiving with Historians:
- CanaryLabs (watch the video tutorial)
- InfluxDB Tag Provider and Historian Integration
- OSIsoft PI Systems
- SQL Databases
TagProvider Configuration
Configuration Workflow
To connect to external data sources to use its data definitions models, follow the steps below:
Step 1: Identify the appropriate tag provider based on the communication protocol of the external data source- (e.g., OPC UA, Modbus
- ).
Step 2: In the software, navigate to the tag provider configuration section and create a new tag provider instance. Provide necessary information such as the provider's name, communication settings, and any required authentication credentials.
Step 3: Configure the tag provider's settings to ensure proper communication with the external data source. This may include specifying the IP address, port number, or other communication parameters specific to the data source or protocol.
Step 4: Test the connection between the tag provider and the external data source. If the connection is successful, the software will be able to access and process the data from the external source.
Step 5: Import the tag definitions from the external data source using the methods described in the previous document (e.g., copy-pasting from other projects or Excel, importing from CSV files, using the Import Tag Wizards, or utilizing the EngWrapper API).
Step 6: Organize and manage the imported tags within the software using features such as Asset Modeling or custom templates.
- Create a New Instance: Navigate to the TagProviders section and provide necessary information.
- Test the Connection: Verify and explore the data.
- Create a New AssetFolder: In the AssetTree, use the toolbar command “Insert Link to TagProvider.”
- Customize the Alias: For the selected node
Integrating external data sources with tag providers in [Software Name] enables users to efficiently manage and process data from various systems within the software. By following the guidelines outlined in this document, users can successfully configure and connect to tag providers, ensuring seamless integration and enhanced software functionality
- .
Creating a new TagProvider
In your Engineering Environment, navigate to Edit → Tags. You should see a tab called Providers.
Click the Create New TagProvider...button to open a dialog window. Select a Communication Protocol from the list, and define its name.Connection
Steps:
1.Navigate: Go to Unified Namespace → TagProvider Connections.
2.New Item: Click the ‘New Item’ button to open the ‘Create New TagProvider’ dialog.
3.Select Protocol: Choose a communication protocol and assign a name.
4.Configure: Fill out the configuration table with:
Common Configuration Items:
- Provider: Specifies the platform the TagProvider will interface with.
- Access Mode: Determines permissions (Read, Write, ReadWrite).
- Name: User-defined identifier for the TagProvider instance.
- Description: Explains the purpose or platform it interfaces with.
- Test button: Verifies the connection settings.
Unique Configuration Parameters:
Each TagProvider has specific parameters tailored to its functionalities and technical requirements, ensuring proper data integration.
For example, using MQTTspB, the settings will be detailed similarly to Channels, Nodes, and Points.
Using TagProviders as Historian Storage Location:
Some TagProviders can be used with the Historian Module to define data storage locations. Typically, TagProviders for historian tools or MQTT can be used as Storage Locations.
By default, the Historian archives data in an SQL Database, but this can be extended with TagProviders.
Working with TagProviders
Browsing Values
InUnified Namespace → Asset Tree, after linking a folder to the data from the TagProvider Connection, you can browse the tree. The right-side tables will update, showing the values of the variables in the selected folder.
Reading and Writing Values from other Modules
After including TagProvider in the AssetTree Nodes, you can access that in using the Asset() method.
After you select a Protocol, you will see a configuration table with columns that are similar to the ones in the Channels, Nodes, and Points pages. However, the columns will all be grouped on a single page. For this example, we will use MQTTspB.
The configuration settings are detailed below:
- Name: Name of the provider. This will be used to access elements from this namespace.
- Provider: Communication Protocol of choice.
- Parameters: Char separator for the communication protocol of choice.
- Primary/Backup Station: Connection String information used to establish a communication (same as on Devices → Nodes).
- Access: AccessType for this connection (Read/Write/ReadWrite).
- ReadTime: Read Pooling Rate.
- WriteTime: Write Rate.
The Primary/Backup Station will be configured according to the communication protocol. For more information, please refer to the specific protocol documentation.
Access Elements in Engineering
Once you finish your configuration and establish a successful connection, you will be able to access the variables from the Device in various places within the Engineering Environment.
Browsing the tags
You can start by clicking on the Object Selectionbutton (1). In the left portion of the popup window, you should see a list of objects from every Project Namespace. Use the name that you defined in the TagProvider configuration (2) to search for the namespace.Expand the list so you can see all the variables from that Device. By selecting an element, you can see the current value read from the Device (3).
Directly accessing tags
You can also access your variables directly through their addresses, following the.E.g.: If using ControlLogix, the final part of the AssetPath is the address, using
same syntax used in Devices → Points: <ProviderName>.("<Type>:<Address>")
.E.g.:
- AssetControlLogix.("/Folder1/DINT:PROGRAM:MAINPROGRAM.MYDINTMyPlcTag")
- ControlLogix.Asset("/Area1/Line1/DINT:MyArray1DimDINT[0]")
You can also add a Remote Tag to your Display. Go to the Draw Environment, select a TextBox element (or any other component/symbol), and add it to your display. Double-click it and add a TextIO Dynamic with the same method as if you were assigning a tag.
In the ObjectName field, select the Browse button and search for the desired variables. By doing this, you can display the information from the Communication Protocol directly in you Display, without the need to create a Tag and Communication Point.
The expression field will be filled with the syntax: ?TagProviderName?.(”? Address In Provider ?”).
Since the address in the expression is a string, you can assign other Tags or Properties so that it has a Dynamic Configuration.
This feature is not limited to Displays. You can create AlarmItems, store data in Historian Tables, and use this remote variable as a Communication Point to Write Data for a different Protocol.
Tip |
---|
The best way to pickup the right syntax, it is to use the Object Browser from the top Toolbar, and navigate to the element you need. The proper AssetPath is shown on that window as you navigate the tree. |
You can use the Asset() syntax, not only in scripts, but on Displays, and in all fields in the software where a Tag is expected, including:
- On Displays, mapping symbol properties and linking to dynamic properties.
- On Alarms, creating alarm events.
- On Historian, archiving the data.
TagProvider Connections Columns
TagProvider Connection Properties | |
---|---|
ID | Identifies the TagProvider. |
VersionID | Shows the specific version number. |
Name | Names the TagProvider connection for identification and reference. |
Protocol | Specifies the communication protocol used for the connection. |
ProtocolOptions | Defines additional options for the selected communication protocol. |
PrimaryStation | Sets the main station or endpoint for the data source connection. |
BackupStation | Specifies a backup station for redundancy in the connection. |
FailOverStation | Configures the station to use in case of primary and backup failures. |
Interface | Indicates the interface type used. |
Settings | Lists the configuration settings for the connection. |
Timeout | Sets the maximum time to wait for a response from the remote system. |
InitialState | Defines the initial state of the connection when established. |
RemoteSettings | Specifies settings for interacting with the remote system. |
DriverVersion | Indicates the version of the driver. |
Separators | Sets the separators used in the data format. |
IsHistorian | Indicates whether the connection involves a historian system. |
Access | Specifies the access level required to interact with the connection. |
ReadTime | Records the time taken to read data from the remote system. |
WriteTime | Records the time taken to write data to the remote system. |
ServerIP | Defines the IP address of the remote server. |
Level | Classifies the connection within a specific level or hierarchy. |
Category | Groups the connection within a specific category for organization. |
LockState | Indicates whether the connection settings are locked and cannot be modified. |
LockOwner | Identifies the owner responsible for locking the connection settings. |
DateCreated | Records the date and time when the connection was created. |
DateModified | Records the date and time when the connection was last modified. |
Description | Summarizes the purpose and details of the TagProvider connection. |
In this section:
Working with TagProviders
Using TagProvider on Assets Displays
It is possible to have a full or partial view of the Data Model inside your Project. On Edit → Assets, you can create your own Levels and assign a part of the Device's structure to it from the Namespace discussed in the previous section.
This method allows you to import all your model, or just a piece of it, from the selected node down. The name of the Level in the Asset Tree (in Runtime) can be edited in the Description column.
In your Draw Environment, add the AssetControl component, open its configuration, and uncheck the Show only tags check box.
If you have done everything correctly, your Asset View should look something like this in Runtime.
In this section...
Page Tree | ||||
---|---|---|---|---|
|