You're currently browsing the Ignition 8.0 docs. Click here to view the latest docs.


There are several different types of Tags you can create in Ignition: standard Tags, System Tags, and Vision Client Tags.  All these Tag types are available in the Tag Browser.

Tags executed in the Gateway support all of the primary features of Tags: scaling, alarming, history, and role-based permissions. These Tags run in the  Gateway, and the values of the Tags are shared among all running sessions and clients. They are identical in their configurations, apart from defining how the value is generated.

Tag Browser

You can create Tags in the Tag Browser by right clicking on the Tags folder, scroll down to New Tag and select the desired type of Tag.

On this page ...


OPC Tags

An OPC Tag is driven by an OPC Item Path and OPC server. The OPC Item Path is a string path to a particular device connection. The exact path is defined by the driver and OPC server used to communicate with the device. Many drivers support browsing, allowing you to automatically create OPC Tags by dragging-and-dropping from the OPC Browser. However, in cases where browsing isn't supported, OPC Tags can manually be created. 

In the Tag Browser, double click on any existing OPC Tag, to see the the OPC Server name and Item Path.  

 


Memory Tags

Memory Tags are simple tags, that do not automatically poll or update their value. They hold the same value until some other entity (script, binding, or some other user-created mechanism) changes their value. They're useful in situations where a value must be stored outside of a PLC or database. 

IULocgo


Memory Tags


Expression Tags

The Expression Tags are driven by an expression, and its values are derived from a calculation. The expression syntax is the same as for property bindings, and allows mathematical operations, references to other Tags, logic operations, functions, and more. This expression example converts Celsius to Fahrenheit.

IULocgo


Expression Tags


Query Tags

The Query Tags execute a SQL Query, the result of that query are returned to the value on the tag. Query Tags can reference other Tags to build dynamic queries. This SQL query example is getting the current timestamp. 

Each query Tag will run a separate query, so large numbers of this type of Tag will dramatically increase the number of queries running against the database. It is highly recommended to attempt to optimize and restrict the number of query Tags. Instead of having several query Tags pulling values from the same table, have one query Tag configured to a Dataset data type that returns large portions of the table, and use several expression Tags to extract values from the individual elements in the dataset.

IULocgo


Query Tags


Reference Tags

A Reference Tag simply refers to an existing tag. For example, it can be used to create an alias for the tag or create a scaled version of a tag. The Reference tag can write back to the original Tag. 

IULocgo


Reference Tags



Derived Tags

A Derived Tag is an abstracted Tag that refers to another Tag. They are similar conceptually to Expressions Tags and Reference Tags, but Derived Tags have some additional functionality. Namely, they can apply a separate expression to an incoming write, before writing back to the source tag. 

Source Tag Path

The Source Tag Path property of a Derived Tag depicts which Tag the Derived Tag should reference. This is similar to the OPC Item Path on an OPC Tag, except it points to an Ignition Tag.  

The Derived Tag will update at the rate of the source Tag.

IULocgo


Derived Tags

Value Derivation

Derived Tags have a Value section in the Tag Editor that contains two options that enable you to leverage Expressions when reading from or writing to the source Tag. This provides a greater degree of customization than the traditional Numeric scaling settings available to OPC Tags. 


Read Expression

Determines what value should appear on the Derived Tag.

The current value of the source Tag may be referenced with the {source} reference.

Write Expression

When writing to the Derived Tag, this expression determines what value should be written to the source Tag.

The current value of the source Tag may be referenced with the {source} reference.

The raw value passed to the Derived Tag may be referenced with the {value} reference.


This interface provides an opportunity to scale the written and read value. For example, if the source Tag was in Fahrenheit, and the derived Tag should be Celsius, we could use the following expressions:

//Read Expression
({source}-32)*(5/9)
 
//Write Expression
{value}*(9/5) + 32

Derived Tags in UDTs

When added as a member of a UDT, Derived Tags may reference peer members. Additionally, UDT parameters may be used in the Source Tag Path. 

Changing the Source

Aside from editing the Tag from the Designer, the Source Tag Path on a Derived Tag may be modified by writing directly to the SourceTagPath property on the Tag, or using a Tag Binding on a Vision component.

Additionally, the SourceTagPath property may be changed through scripting: 

#Example of writing to the SourceTagPath attribute via Python Script
system.tag.writeBlocking(["Derived Example/Derived Tag.SourceTagPath"], ["[.]Folder/New Source Tag"])


User Defined Types (UDTs)

UDTs are created out of standard Tag types, but they offer a variety of additional features. You can think of them as a way to create "data templates", where a particular structure of Tags is defined, and can then be created as if it were a single Tag. This UDT example shows two Motor instances, the data type Motor, and all the Parameters and Tags that make up the structure (i.e., Amps and HOA). For more information, see User Defined Types - UDTs.


System Tags

System Tags provide status about the Ignition system, such as memory usage, performance metrics, and so on. In the Tag Browser, under the System folder, there are folders for the Client System Tags and Gateway System Tags. The scope for each is slightly different. You can modify the Gateway System Tags to perform alarming, history, and scaling, but you cannot modify the Client System Tags. For more information, see System Tags.


Vision Client Tags

Within the Vision Module, you can also have Vision Client Tags that are specific to a Vision Client. Their values are isolated to a Client runtime. For more information, see Vision Client Tags.




  • No labels