Tag Groups
Tag Group Overview
Watch the videoWhat Is a Tag Group?​
Tag Groups dictate the rate of execution of Tags, and therefore play a crucial role in the design of large and high-performance systems. Highly optimized systems generally use multiple Tag Groups which allows for each data point to be polled only as fast as it needs to be. For example some Tags may need to updated every 500ms, while others may only need to be updated every 30 seconds.
Creating different Tag Groups allows you to organize your Tags into groups that subscribe or poll at different rates.
Tag Groups Modes​
Tags are assigned to a Tag Group that determine how often they update. For example, how often an OPC value is polled from the PLC, how often an Expression Tag calculates its expression, and how often a Query Tag runs its query. It's easy to create Tag Groups in Ignition for just about any scenario you can think of. Tag Groups are extremely powerful and flexible, and you can create them based entirely on your individual business requirements.
There are three different Tag Group modes in Ignition that you can use. Each mode works a bit differently.
Direct​
Executes at one fixed rate, as determined by the Rate property in milliseconds. This is the most simplistic option, as the rate of the group doesn't intentionally change between two different rates. The default tag group on newly installed Ignition systems uses this mode. It's the simplest mode in that there is only a single rate for this mode.
See the Direct Tag Group Example page on steps to add a Direct Tag Group.
Driven​
Driven Tag Group
Watch the videoDriven Tag Groups switch between two different rates based on a condition you configure directly onto the Tag Group. The condition in this case is an expression on the Driving Expression property. The result of the expression is then compared to the Comparison Value property. If the comparison of the two values is equivalent, then the entire tag group executes at the Leased/Driven Rate in milliseconds, otherwise it executes at the Rate.
Thus, you can have a tag group that switches between a fast and slow rate under certain conditions.
Furthermore, Driven Tag Groups have a One Shot property. When set to true, means the group only executes every time the comparison is equivalent. Furthermore, it only executes once every time that comparison transitions from false to true: this is sometimes called "a rising edge".
The One Shot property allows for more interesting tag executions. Instead of running at set rates, you can trigger an execution for all tags on the group by incorporating a tag value as part (or all) of the driving expression, allowing a single tag value change to cause many other tags to update.
See the Driven Tag Group Examples page on steps to add a Driven Tag Group.
Leased​
Leased groups have two different execution rates, much like a Driven group. However Leased groups don't rely on a comparison to determine rate. Instead, the driving mechanism is whether a Tag is being displayed on an open window or view: generally via a Tag Binding of some sort.
Tags that are displayed (leased) will run at the Leased/Driven Rate, while those Tags on the same group that aren't leased will run at the Rate.
Leased groups are unique in that Tags on the same group may execute at different rates while being in the same group. For example, if Tags A and B are both on the same Leased group, and all Designer, Vision Client, and Perspective Sessions are closed, then both tags execute using the Rate value. If a user launches a Perspective Session and switches to a view where the value of A is displayed on a component binding, then A will switch to the Leased/Driven Rate. However, since B isn't displayed anywhere, it will continue to execute using the Rate value.
See the Leased Tag Group Example page on steps to add a Leased Tag Group.
Viewing the Tag only in the Tag Browser will not cause the Tag Group to execute at the Leased Rate.
Adding and Editing Tag Groups​
Adding and editing Tag Groups is easy in the Designer once you understand how the different Tag Group modes work. It's just a matter of choosing which Tag Group mode you want to use for your Tag, and entering the properties for your Tag Group.
In the Tag Browser, click on the Edit Tag Group icon under the Options Menu to open the Tag Group Editor window.
A list of already configured Tag Groups appear on the left side of the window and configuration settings on the right. To add a Tag Group, click the Add icon. (Alternatively, you can click on an existing Tag Group to edit it.)
When a Tag Group in the list is selected, the properties for the group will appear on the Properties Table. Each mode will have slightly different settings that will need to be configured. You can find descriptions for those properties in the Tag Group Properties section below.
Setting a Tag Group on a Tag​
The example below demonstrates how to find the Tag Group on a tag, and change it to something else.
- In the Tag Browser, right-click on any Tag, and click the Edit tag icon. The Tag Editor window opens. A list of Tag properties is displayed.
- Under Basic Properties, on the right side of the Tag Group property, click the dropdown list and a list of available Tag Groups will appear. Again, Tag Groups are configured per Tag Provider, so this list will only contain Tag Groups that are present in the Tag's Tag Provider.
- If you wish to change the Tag Group. Select the new option, and click OK or Apply to apply the new Tag Group. The Tag will switch rates and start using the new Tag Group.
As a reminder, you can select multiple Tags in the Tag Browser by right clicking to edit the Tags. This opens the Tag Editor, and sets the Tag Group for all the selected Tags at the same time.
Tag Group Properties​
The following table lists the properties for Tag Groups. Note that some properties are available only for specific modes.
Common​
Name | Category | Description | Applicable Modes |
---|---|---|---|
Name | Common | Unique name of the Tag Group. | All |
Mode | Common | Defines how the Tag Group executes:
| All |
Rate | Common | Base update rate for tag execution, in milliseconds. Note: A rate of 0 means the Tag Group will not execute. | All |
Leased/Driven Rate | Common | Rate used when Leased or Driven triggers are active. Ignored if Driven Mode with One Shot is enabled. | Leased, Driven |
Driving Expression | Common | The resulting value of this expression is compared to the Comparison Value using the Driving Comparison to determine when tags in this group will be executed at the Leased/Driven Rate, instead of the base Rate. Note that this expression can reference a single tag's value instead of a calculation. | Driven |
Driving Comparison | Common | Operator of comparison (=, !=, <, <=, >, >=) used between the Driving Expression and Comparison Value to determine when tags will be executed at Leased/Driven Rate. If Any Change operator is selected, the Tag Group will execute immediately whenever the Driving Expression changes value, and the Tag Group no longer uses the base Rate or Leased/Driven Rate properties. | Driven |
Comparison Value | Common | Static value that is compared to the Driving Expression using the Driving Comparison to determine when tags in this group will be executed at the Leased/Driven Rate, instead of the base Rate. | Driven |
One Shot | Common | Executes once when conditions are true, waits for false then true to re-execute. | Driven |
OPC Settings​
Name | Category | Description | Applicable Modes |
---|---|---|---|
Data Mode | OPC Settings | Dictates how OPC values are obtained:
| All |
Read After Write | OPC Settings | Value changes from Ignition to an OPC device will send a write request, followed by a read request. This varies from Optimistic Writes because value changes will not show in the Ignition tag until hearing back from the read request. Note: Read After Write doubles network traffic for each value change. Caution: Do not use Read After Write with OPC tags in subscription mode due to a race condition that can leave you with Ignition tag values that don't match PLC tag values. | All |
Optimistic Writes | OPC Settings | Only applies to OPC tags in the Tag Group. Value changes will be applied immediately to Ignition tags, with a quality of "Good (Provisional)", until the next poll or subscription update proves it correct, gives it a new value, or times out (reverting to the last good value). The time out duration is determined by Optimistic Write Timeout. So although writes may appear to execute quicker on slow connections, the correct OPC tag value isn't guaranteed to show on the Ignition tag. Using a slow polling Tag Group example of 30 seconds where an operator makes a manual change, this option would allow the operator to see the new value immediately, even though it won't be confirmed for 30 seconds. If both Optimistic Writes and Read After Write were enabled, the operator would see the new value immediately and it would be confirmed as soon as the read request comes back (earlier than 30 seconds). | All |
Optimistic Write Timeout (MS) | OPC Settings | The timeout duration for Optimistic Writes. A value of 0 will effectively disable this option. Keep Optimistic Write Timeout greater than Rate. Otherwise this will happen: a value changes from 0 to 1 will show 1 immediately, then after the timeout revert back to 0, then after polling rate will change to 1 (which would be confusing for users). | All |
OPC UA​
Name | Category | Description | Applicable Modes |
---|---|---|---|
Publishing Interval (ms) | OPC UA | The rate at which data is delivered to the OPC-UA client.A value of -1 means automatic, allowing the OPC-UA client to determine the rate. | All |
Sampling Interval (ms) | OPC UA | ​ New in 8.1.24 Allows the Requested Sampling Interval column on the Gateway Status > OPC Connections > Clients > Nodes page to be requested independently of the Tag Group Rate . The default value for this is -1, which indicates that the value will be inherited from the Tag Group Rate value. Note: Setting the Sampling Interval value to 0 against a driver that supports it will show the requested value on the Gateway. Setting the value to 0 against a driver that doesn't support it will show a Revised Sampling Interval of 500. Setting the value below 0 will show the the interval rate of the Tag Group setting in the Requested/Revised Sampling Interval columns. | All |
Queue Size | OPC UA | The OPC-UA specifications states that in cases where the sampling interval (the rate as which the server checks the data source for changes) is faster than the publishing interval (rate at which the the data is delivered to the client), the samples may be queued or batched together before publishing. This setting determines the maximum size of that queue. When the maximum is reached and a publish has not yet occurred, oldest samples are dropped first.Currently, there are not many features in Ignition that utilize multiple entries in the queue, but 3rd party OPC-UA clients may be able to take advantage of this setting.Note that values on Ignition Tags will only ever show one value at a time, regardless of what this property is set to. (If the value is 0, nothing will be queued.)Support for this feature is dictated by the driver. See the DNP3 page for details on how buffered data and Sequence of Events works | All |
Include Timestamp-Only Changes | OPC UA | ​ New in 8.1.10 If true, allows the OPC-UA client to receive timestamp-only changes for tags in this group. By default, the OPC-UA client only receives value and quality changes. | All |
History​
Name | Category | Description | Applicable Modes |
---|---|---|---|
Min Time Between Samples | History | Minimum time between samples (integer). | All |
Min Time Units | History | Minimum time in units is defined as: Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Months, and Years. | All |
Max Time Between Samples | History | Maximum time between samples (integer). When a Tag uses the "Tag Group" sample mode, and is set to this Tag Group, it will ignore it's own Max Time Between Settings setting (configured directly on the Tag), but only if this Max Time Between Samples setting (on the Tag Group) is using non-default values. Defaults to 0. | All |
Max Time Units | History | Maximum time in units is defined as: Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Months, and Years. | All |