Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.

What 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. It is beneficial to have multiple Tag Groups so you can set groups of Tags to run at different rates. Since it takes up computer resources to constantly fetch new Tag values, this frees up a lot of resources if many of the Tags are running slower. Some Tags you may wish to see updated at 250-500ms, while others may not be so crucial and may only need an update every 10-30 seconds.

Creating different Tag Groups allows you to organize your Tags into groups that subscribe (continually poll) at different rates. It is good practice to put some forethought and planning into the organization of your Tags and Tag Groups.


NameTag Group Overview

Tag Execution by Tag Group

Tags are executed by Tag Groups inside of a Tag Provider. In a typical system, there are a number of Tag Groups and one or more Tag Providers. Tag Providers can be either internal or external.

  • Internal provider keeps the Tag configuration and execution in this Ignition Gateway. 
  • Remote provider allows this Ignition Gateway to view Tags from another Ignition Gateway.

Tags inside Internal Providers are available to other Ignition Gateways that use the Remote provider type.

titleThe words Tag Group "types" and "modes" used interchangeability

When referring to Tag Groups, we often use the words "type" and "mode" interchangeably throughout this manual. Ignition has three Tag Group modes: Direct, Driven, and Leased. There can be different variations of these modes that can change their behavior. For example, the Driven Tag Group has "one-shot" and "any change" options that you can set, and we often refer to these as different "types" of Tag Groups as well. When you create a new Tag Group, you will select one of the three "modes" and any properties you need to build your Tag Group.

Types of Tag Groups

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 to build your own, each with a different options:

  • Direct - Executes at a fixed rate (10 second, 250ms, etc). Every Tag that uses a Direct Tag Group will poll the PLC at the Rate setting at all times (24x7x365). Ignition provides a Direct Tag Group to help you get started, but you can change them however you'd like. It is recommended to adjust the "Default" Tag Group to a slower rate as all new Tags are automatically added to this Tag Group.
  • Driven - Executes fast or slow based on a condition. The rate of the Driven Tag Group is determined by a condition based on the value of the selected Driving Expression which can be a Tag or an Expression.This condition is a simple comparison between a driving Tag's value and a static number (equal to, greater than, etc.). While the condition is true, the Tag Group executes at the Leased/Driven Rate (fast rate). If false, it runs at the Rate (slow). (It's useful to keep in mind that the driving Tag can also be an Expression Tag that performs complex calculations and references other Tags. In this way, it's possible to create robust Tag Group triggering). 

    • Driven One-shot - If you want to read Tag values only once on certain conditions (instead of polling), there are two properties that change the behavior of the Driven mode: the One-shot property, and the Any Change Operator option. Using either of these, the Tag Group does not run at either the fast or slow rate. Instead, it will be triggered once each time your condition is met. Any Change will execute each time the driving Tag value changes, and one-shot will execute once when the comparison condition is true and not again until the condition becomes false and subsequently true.

  • Leased - Executes as on-demand polling. It works similar to the Driven Tag Group except there is no driving Tag. Instead, the driving mechanism is whether a Tag is being used on an open window or session. That is, if a user is looking at a Tag, it runs at the fast rate, and if the Tag is not being shown anywhere, it is moved to the slow rate.

Historical Tag Groups

Historical Tag Groups are simply standard Tag Groups used by Tags to store history. By using separate Tag Groups for status and history, it's possible to maintain a Tag's status at a fast rate, without storing large amounts of history unnecessarily.

Despite the fact that there is not a technical differentiation between standard and historical Tag Groups, it is recommended that you create separate Tag Groups for each purpose and name them in a manner that indicates their usage. It is common to modify Tag Groups in order to affect a large number of Tags, and without a consistent distinction it may be possible to affect Tag execution in unexpected ways.


When using Tag Groups with both the Rate (slow rate) and Leased/Drive (fast rate), a 0 poll rate can be specified. This means the Tags in this Tag Group will not poll at all. Do not set a 0 poll rate on Tags that are storing history or need other regular updates.

NameDriven Tag Group

NameLeased Tag Group

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.

  1. In the Tag Browser, click on the Tag Group  icon to open the Tag Group Editor window.

  2. 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.)

  3. To create a new Tag Group, specify the Name of the Tag Group, and select a Mode: Direct, Driven, or Leased. 

  4. Each mode will have slightly different settings that will need to be configured. Enter the applicable settings to the type of Tag Group you're using.
    To see the properties for each Tag Group mode and how to set each of them up, refer to DirectDrivenLeased, and One-shot pages.

For descriptions of the Tag Group properties, refer to the properties table on each Tag Group page: Direct Mode, Driven Mode, Leased Mode, and One Shot Tag Group.

Setting a Tag's Tag Group

Each Tag in Ignition is assigned a Tag Group which dictates the polling rate and conditions on which the Tag will be evaluated. For example, the Tag Group will dictate how often that value is going to poll from the PLC if it's an OPC Tag, or how often the expression is going to run if it is an Expression Tag, or how often the value is going to query the database if it is a Query Tag. Whatever type of Tag you're using, you can set a Tag Group on that Tag. You can also specify both a Realtime Tag Group and a Historical Tag Group for each Tag.

  1. In the Tag Browser, right-click on any Tag, and click the Edit tag  icon. The Tag Editor window opens. 

  2. A list of Tag properties is displayed. Under Basic Properties, on the right side of the Tag Group property, click the dropdown list and choose Direct Mode.

  3. The Tag also uses the Tag Group to determine how fast to log data for the Historian. Enabling History doesn't affect how fast the values get polled from the PLC, but affects how fast the data gets logged to a database. There are number of History properties so you might want to review them in Direct Mode Property table.

    1. Under History set History Enabled to 'true'.
    2. Select the Storage Provider from the dropdown list.
    3. Choose the Sample Mode.


  4. Click OK to save it.
    You will immediately see your Tag updating at a different rate.

  5. As you can see, setting Tag Groups on a Tag is easy. 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.

NameUnique name of the Tag Group.
Driven Mode

The rate of the Tag Group is based on the value of a driving Tag. The condition is a simple comparison between a Tag value and a number. If the condition is true, the Tag Group will execute at the fast rate. If false, it will run at the slow rate. There are two exceptions to this: the Any Change operator, and One-shot mode. Using either of these conditions will not run at a rate. Instead, it will be triggered by a change in the driving Tag's value. Keep in mind that the driving Tag can be an Expression Tag that performs complex calculations and references other Tags. In this way, it's possible to create robust Tag Group triggering.


Base update rate, specified in milliseconds, at which Tags will be executed.


If the rate is set to 0, the Tag Group will not be executed.

Leased/Driven RateUsed by both the Leased and Driven Modes to determine when the Tag Group should run at the fast rate.
Driving ExpressionThe Tag Group executes based on the condition set on the Driving Expression: Tag or Expression. (Driven mode only.)
Driving Comparison

How the Comparison Value property should be compared to the Driving Tag's value. If the comparison is true, then the Fast Rate will be used by the Tag Group, otherwise, the Slow Rate will be used.

The Any Change operator works differently than the other operators: The Tag Group will execute immediately whenever the driving Tag changes value. Using the Any Change operator means that the Tag Group no longer uses the Slow Rate or Fast Rate properties. (Driven mode only.)

Comparison ValueUsed by the Driving Comparison property to determine if the Tag Group should execute at the slow or fast rate. (Driven mode only.)
One ShotOne-shot will execute once when the comparison condition is true, and not again until the condition becomes false, and subsequently true. (Driven mode only.)
OPC Settings
Data Mode

This mode dictates how OPC values are obtained. The default mode, Subscribed, is preferred because it is more efficient than a read.

All OPC Tags in the Tag Group will be subscribed according to the Tag Group rate. Values will come in asynchronously as they change.

Tags will not be subscribed, but will instead be synchronously read each time the Tag Group executes. This operation is less efficient, but allows more precise control over when values are obtained. This mode is particularly useful when collecting data over a slow or expensive connection for display. When combined with the one-shot execution mode above, and a static Tag tied to a momentary button, it's easy to create a manual refresh button on a screen that pulls data on-demand.

Read After Write

When enabled, a read request will be sent immediately after a write request. This means that the value on the Tag will be updated much quicker to reflect the latest written value.

Enabling this property is less efficient as a single write to a Tag becomes two separate requests. This is especially helpful with slower Tag Groups as the Tags will show the latest value quicker than the normal execution would allow.

Optimistic Writes

Optimistic Writes are only valid on OPC Tags. Optimistic Writes set a newly written Tag value in Ignition before receiving confirmation of the write from the PLC. This helps the operators see their newly entered value right away and is useful if you have slow a Tag Group rate. A faster rate (1 second or quicker) will have less need to turn on Optimistic Writes.

If enabled, written values will be applied to the Tag in Ignition immediately. Normally, the system must receive confirmation that a write was successful from the device before the Tag in Ignition's value would change. The Optimistic Writes property changes the behavior by assuming the write went through until the next read value or subscription update proves otherwise. Enabling this will make writes appear to execute much quicker.

Works in conjunction with the OPC Optimistic Write Timeout property below. If the Tag in Ignition does not receive confirmation that the new write was successful within the timeout, the Tag will change back to the last known value. While in an ambiguous state, the Tag with have a quality of "Good (Provisional)".

This setting can be paired with the OPC Read After Write: the Ignition Tag will assume the newly written value, while an asynchronous read request is quickly sent out to confirm the write went through.

While the write is pending, values received from subscription activities will override the current value. Assuming an initial value of 0, if a write of 10 is applied to the Ignition Tag, then the Tag will show a value of 10 until the system can confirm the new value. If a subscription update then returns a value of 5, the Ignition Tag will change to 5.

Optimistic Write Timeout (MS)

The timeout period for Optimistic Writes. A value of 0 effectively disables the fallback functionality: the new value is maintained on the Tag until the next read or subscription activity.

Publishing Interval (ms)

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.

Queue Size

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. 

  • DNP3 - See the DNP3 page for details on how buffered data and Sequence of Events works
Min Time Between SamplesMinimum time between samples (integer).
Min Time UnitsMinimum time in units is defined as: Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Months, and Years.
Max Time Between SamplesMaximum time between samples (integer).
Max Time UnitsMaximum time in units is defined as: Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Months, and Years.