Scan Classes

Scan classes dictate the rate of execution of tags, and therefore play a crucial role in the design of large and high-performance systems. It will often make sense to have more than one scan class as usually not all of your tags will need to be subscribed at the same rate. Some tags you may wish to see updated at 250-500ms, while others may not be so crucial and may only need to be subscribed at 1500ms.

Creating different scan classes allow you to organize your tags into groups that subscribe at different rates. It is good practice to put some forethought and planning into the organization of your Tags and scan classes.

Tag Execution by Scan Class

Tags are executed by scan classes inside of a tag provider. In a typical system, there are a number of scan classes and one or two tag providers: the internal tag provider and possibly an external tag provider.

  • Internal provider keeps the tag configuration in the project.

  • External provider stores tag configuration and values in a database.

Tags stored in an external provider are available to all Ignition installations that have access to that database. One of the installations can be specified as the tag's driver. The driving system has a copy of the scan class that it executes, which in turn evaluates the tag. The value is stored to the database and all of the other installations are notified of the new value.

There are several key execution modes to help create efficient projects. The different execution modes are as follows:

  • Direct executes based on the slow rate setting at a fixed rate.

  • Driven executes based on a condition.

  • Driven one-shot executes only once when a condition is true.

  • Leased executes according to on-demand polling.

Adding and Editing Scan Classes

You can add and edit scan classes by clicking on the Edit Scan Classes icon in the Tag Browser. The Scan Class Editor window is displayed showing a list of already configured Scan Classes on the left, and configuration settings on the right. To add a scan class, simply click the green + icon on the lower-left of the Scan Class Editor and then specify the name and the properties for it.

Scan Class Editor

Edit Selected Scan Class

Scan Class Name

Unique name of the scan class.

Mode

Direct
The scan class executes at a fixed rate, defined by the slow rate setting.

Leased
The scan class executes at the fast rate when any of the tags it contains are subscribed and visible in a Client window. If no tags are subscribed, the scan class runs at the slow rate.

Driven
The rate of the scan class 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 scan class 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, the scan class will not run at a rate. Instead, it will be triggered by a change in the driving tag's value. Any Change will execute each time the value changes, and One-shot will execute once when the comparison condition is true, and not again until the condition become false, and subsequently true. 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 scan class triggering.

Slow Rate

Base update rate, specified in milliseconds, at which tags will be executed.
Note: If the rate is set to 0, the scan class will not be executed. It is common for leased and driven modes to use 0 as a slow rate in order to achieve an on/off effect.

Fast Rate

Used by the Driven and Leased modes, this is the faster rate that the tags will be executed at when those modes are active.
Note: If the rate is set to 0, the scan class will not be executed.

Stale Timeout

How long to wait before the tags in the scan class are determined to be stale (not running). This is calculated off of the last expected execution time of the scan class, and is particularly important for scan classes executed by other drivers through the external Tags provider. This property is not used by internal providers.

Driven Properties

Used by the driven mode to determine when the scan class should run at the fast rate.

Advanced Properties

Settings that subtly affect how the scan class operates.

OPC Data Mode

This mode dictates how OPC values are obtained. The default mode, Subscription, is generally recommended.

Subscribed
All OPC tags in the scan class will be subscribed according to the scan class rate. Values will come in asynchronously as they change.

Read
Tags will not be subscribed, but will instead be synchronously read each time the scan class 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.

Historical Scan Classes

Historical scan classes are simply standard scan classes used by Tags to store history. By using separate scan classes 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 scan classes, it is recommended that you create separate scan classes for each purpose and name them in a manner that indicates their usage. It is common to modify scan classes 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.

In this section ...