Tag Properties
Tags are points of data and may have static values or dynamic values that come from an OPC address, an Expression, or a SQL query. The values can be used on screens and in Transaction Groups. Additionally, tags offer a core set of features above and beyond simple values, such as scaling, alarming, and history logging. Depending on the specific type of tag, even more options are available. In general, tags provide a common interface for tying together many types of data in Ignition.
In 8.1.17, the Tag Editor was redesigned to improve usability. The new Tag Editor now requires fewer clicks and keeps relevant tag information visible while modifying bindings, alarms, and event scripts. Pages detailing features of the previous Tag Editor can be found in Deprecated Ignition Features.
Tag Configuration in the Designer​
Tags are managed in the Tag Editor. To configure a tag, right-click on it and select Edit Tag. Or create a new tag by right-clicking on the Tags folder in the Tag Browser and use the New Tag option to select a new tag type.
Once the Tag Editor window is displayed you can set the properties for that tag. The Tag Editor window has the following sections depending on the type of tag you are creating:
- Basic Properties
- Value
- Numeric Properties
- Meta Data Properties
- Security
- Scripting
- Alarms
- History
Tag Object Types​
Some features, such as system.tag.browse, can access the Object Type of the tag (sometimes called "tagType"). Below is a table representing the possible types.
Tag Object | Description |
---|---|
Property | A single value underneath an node. |
Node | An entity that may have a value and may have children. Node is a generic term for other objects in this table, such as a Folder or AtomicTag. |
Folder | Represented by a folder in the Tag Browser. Folders generally have child nodes, but don't have values or other properties that make up a tag. |
AtomicTag | A normal type of tag. Objects with this type can be one of the following (based on the Value Source property):
|
UdtInstance | An instance of a complex tag (UDT Instance). It's important to note that UdtInstances contain other nodes, so this type is generally only seen at the root of a UDT instance. Thus, nodes under a UdtInstance are not considered to have a type of UdtInstance , unless the child node is actually a UdtInstance, in other words, a nested UDT instance. |
UdtType | Represents the root of a complex tag definition (UDT Definition). Similar to UdtInstance, nodes under a UdtType have their own object type, so a UdtType represents the root of a complex tag. |
Provider | Represents a Tag Provider. |
Standard Tag Properties Table​
This following table provides detail on each Tag Property, including the binding name, description, data type, and the tag types that use the property.
Basic Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Name | name | How the tag will be presented and referenced in the system. The tag path will be the provider, the folder structure, and this name. Valid names begin with either a letter or underscore and can contain:
| String | OPC, Query, Expression, Derived, Client, Reference, Memory |
Tag Group | tagGroup | The Tag Group that will execute the tag. The Tag Group dictates the rate and conditions on which the tag will be evaluated. For more details, see Tag Groups. | String | OPC, Query, Expression, Derived, Reference, Memory |
Enabled | enabled | Whether the tag will be evaluated by the Tag Group. If false, the tag will still be present, but will not return a value or good quality. Default value is Enabled. | Boolean | OPC, Query, Expression, Derived, Reference, Memory |
Value Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Tag Type (unlisted) | tagType | The type of the node, automatically determined by the tag type created. See the Tag Object Types table for more information. Commonly used values are folder, UdtInstance, UdtType, and AtomicTag. Default value is AtomicTag. Note: This property does not appear in the Tag Editor, but is accessible via scripting. | String | OPC, Query, Expression, Derived, Reference, Memory |
Type ID | typeId | Returns a path representing which UDT this instance is derived from. If the node is not a UDT, then this property will return a None object. Note: This property appears in a UDT Definition/Instance editor as Parent Data Type. Additionally, parent data types can only be set from UDT Definitions within the same provider. | String | OPC, Query, Expression, Derived, Reference, Memory |
Value Source | valueSource | Specifies how the tag determines its value. In other words, sets the type of the Tag (Memory, OPC, Expression, etc). Below is a list of possible values and their JSON representation:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Data Type | dataType | The data type of the tag. It is important that this be set as correctly as possible with regards to the tag's underlying data source. The tag system will attempt to coerce any raw incoming value (for example, from OPC or a SQL query) into the desired type. For detailed information and a list of possible values, see Tag Data Types. Default value is Integer. Note: Regarding Array data types, Alarming, Scaling, and Historical settings applied to an array tag are propagated down to elements in the array. | String | OPC, Query, Expression, Derived, Reference, Memory |
Value | value | The value of the tag. Can only be modified if the tag allows value writing and the user has sufficient privileges. Note: In UDT instances, certain types of tag values, such as DB and OPC, can get stored within the definition, causing a tag to appear to have an override when it actually doesn't. | Object (depends on the data type of the tag) | Memory |
OPC Server | opcServer | Only present for OPC tags. The server against which to subscribe the data point. Only present for OPC tags. The list displayed is the OPC Clients in Ignition section. | String | OPC |
OPC Item Path | opcItemPath | Only present for OPC tags. The path to the node to subscribe to via the OPC Client. The point will be subscribed at the rate dictated by the Tag Group. ​ New in 8.1.5 It's possible to escape curly braces {} in the item path by using additional curly braces. For example: {{device_name}} would evaluate to {<device_name value>} , allowing you to include braces in the Item Path. | String | OPC |
Source Tag Path | sourceTagPath | The path to the tag that this tag is referencing. Only present for Reference and Derived tags. | String | Derived, Reference |
Execution Mode | executionMode | Determines how and when the tag executes. Possible values are listed below along with JSON names and descriptions:
| String | Expression, Query |
Expression | expression | The expression the tag will use to determine its value. | String | Expression |
Read Expression | deriveExpressionGetter | The expression that determines how the value on the Derived tag is read from the source tag. | String | Derived |
Query | query | The SQL query to be run, which drives the tag's value. Queries doing database reads and writes are possible, see the Query Type property description for details. | String | Query |
Write Expression | deriveExpressionSetter | The expression that determines how the value on the Derived Tag is written to the source tag. | String | Derived |
Datasource | datasource | The database connection that the Query tag will execute against. The list displayed is the DB connections section. | String | Query |
Query Type | queryType | ​ New in 8.1.3 Defines whether the query is executing a database read or a database write. Important for determining the value behavior of the tag.Possible values are:
| String | Query |
Numeric Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Deadband | deadband | A numerical value used to prevent unnecessary updates for tags whose values change by small amounts. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Deadband Mode | deadbandMode | Defines how the deadband value is used. Possible values along with JSON names and descriptions are listed below:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Scale Mode | scaleMode | If and how the tag value will be scaled between the source, and what is reported for the tag. A listing of possible values along with their JSON names and numerical representation can be found below:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Raw Low | rawLow | Start of the "raw" value range. Only present if Scale Mode is set to Linear or Square Root. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Raw High | rawHigh | End of the "raw" value range. Only present if Scale Mode is set to Linear or Square Root. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Scaled Low | scaledLow | Start of "scaled" value range. Raw low will map to Scaled low for the tag. Only present if Scale Mode is set to Linear or Square Root. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Scaled High | scaledHigh | End of "scaled" value range. Raw high will map to Scaled high for the tag. Only present if Scale Mode is set to Linear or Square Root. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Clamp Mode | clampMode | How values that fall outside of the ranges will be treated. Clamped values are only present if Scale Mode is set to Linear or Square Root, and will be adjusted to the low/high scaled value as appropriate. Possible values along with their JSON names and numerical representation are listed below:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Scale Factor | scaleFactor | The factor parameter for the equation, used when the Scale Mode property is set to Exponential Filter | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Engineering Units | engUnit | The engineering units of the value, which can be manually entered or selected from a list. Some Vision components, such as the Numeric Label, will automatically show these units. | String | OPC, Query, Expression, Derived, Reference, Memory |
Engineering Low Limit | engLow | The lowest expected value of the tag. This property can be leveraged for use by:
Minimum property of the component. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Engineering High Limit | engHigh | The highest expected value of the tag. This property can be leveraged for use by:
Maximum property of the component. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Engineering Limit Mode | engLimitMode | Dictates how the engineering range should be enforced on the tag. If not "Off", the tag will change to bad quality ("limit exceeded"), when the value falls outside the specified range. Possible values along with their JSON names and numerical representations are listed below:
| Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Format String | formatString | How the value should be formatted when converted to a string (only applies to numerical data types). Uses # and 0 characters to describe the format.
Decimal Format property of the component. | String | OPC, Query, Expression, Derived, Reference, Memory |
Meta Data Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Tooltip | tooltip | The tooltip provides a hint to visual components as to what should be displayed when the user hovers their mouse cursor over the component that is being driven by the value of this tag. In some cases, using drag and drop onto Vision components may automatically bind this property to the Mouseover Text property of the component. New in 8.1.18 Hovering over the tag itself in the Tag Browser will also display this hint. | String | OPC, Query, Expression, Derived, Reference, Memory |
Documentation | documentation | A freeform text property for information about the tag. | String | OPC, Query, Expression, Derived, Reference, Memory |
Security Data Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Read Permissions | readPermissions | Defines the security levels required in order to read values from a tag. Roles under authenticated will show up based on property Security Levels being configured. For more information, see Tag Security Properties. See the Permission Values section for a description of possible values. | JSON Object | OPC, Query, Expression, Derived, Reference, Memory |
Read Only | readOnly | Defines whether a tag is read-only or writeable. For more information, see Tag Security Properties. | Boolean | OPC, Query, Expression, Derived, Reference, Memory |
Write Permissions | writePermissions | Defines the security levels required in order to read values from a tag. Roles under authenticated will show up based on property Security Levels being configured. For more information, see Tag Security Properties. See the Permission Values section for a description of possible values. | JSON Object | OPC, Query, Expression, Derived, Reference, Memory |
Permission Values​
Mode | JSON/Scripting Name | Description |
---|---|---|
Type | type | Represents the selected radio button on the security level UI, determining if all of the elements in the securityLevels array are required, or if any of the elements are allowed. Possible values are:
|
Security Levels | securityLevels | Represents allowed security levels for this permission. Each level is represented as a JSON object, containing a "name" value that represents the name of a security level, and a "children" array which represents any levels under the current. The actual "selected" levels are any levels that have an empty "children" object. See the example below for more information. |
JSON Example
The JSON in this example uses the configuration shown in the image below. Permission is granted if the security levels on the request are from either an "Administrator" user, or if the request originated from the "Zone A" Security Zone.
"readPermissions": {
"type": "AnyOf",
"securityLevels": [
{
"name": "Authenticated",
"children": [
{
"name": "Roles",
"children": [
{
"name": "Administrator",
"children": []
}
]
}
]
},
{
"name": "SecurityZones",
"children": [
{
"name": "Zone A",
"children": []
}
]
}
]
}
Scripting Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Tag Event Scripts | eventScripts | Each tag has the option to have Tag Event Scripts on it. When you edit a tag, you can navigate to the Tag Events screen to see a list of all of the tag scripts. You can then select which event you would like to write a script for. You can even write a script for multiple events if you like. For detailed information, see Tag Event Scripts. When interacting with a tag from a script, the Tag Event Scripts are represented as an array of JSON objects. Each JSON object is described below in the Key Description section. | JSON Array | OPC, Query, Expression, Derived, Reference, Memory |
Key Description​
Key | Description |
---|---|
eventid | A value representing the type of event script. See values below for a list of possible events.qualityChanged valueChanged alarmActive alarmCleared alarmAcked |
script | A value representing the content of the script |
Alarms Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
Alarms | alarms | Tags have the ability to define any number of alarms. Each alarm is a condition that will be evaluated when the value of the Tag changes. When the condition becomes true, the alarm is said to be active. When it becomes false, the alarm is said to be cleared. For detailed information, see Tag Alarm Properties. | JSON Array of JSON objects. For detailed information, see Tag Alarm Properties . | OPC, Query, Expression, Derived, Reference, Memory |
Alarm Eval Enabled | alarmEvalEnabled | Determines if alarms will be evaluated on this tag. | Boolean | OPC, Query, Expression, Derived, Reference, Memory |
History Properties​
Property | JSON/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
History Enabled | historyEnabled | Whether the tag will report its history to the Tags Historian system. | Boolean | OPC, Query, Expression, Derived, Reference, Memory |
Storage Provider | historyProvider | Which Tag Historian data store the tag will target. A particular tag can only target one history store. For more information, refer to History Providers on the Tag History Gateway Settings page. Note: The Storage Provider dropdown displays the provider names as they are written at the time of tag configuration. If the Storage Provider name is updated later, this setting will need to be adjusted to match the new Storage Provider name. | String | OPC, Query, Expression, Derived, Reference, Memory |
Deadband Style | historicalDeadbandStyle | There are three styles to choose from: Auto, Analog, or Discrete. When set to Auto, this setting will automatically pick from Analog or Discrete, based on the data type of the tag:
More information on the Analog and Discrete types can be found on the Configuring Tag History page. A list of possible values along with their JSON name are below:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Deadband Mode | historicalDeadbandMode | Defines how the deadband value is used. Possible values along with JSON names and descriptions are listed below:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Historical Deadband | historicalDeadband | A deadband that applies only to historical evaluation. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Sample Mode | sampleMode | Determines how often to check if a historical record should be collected. Possible values include:
| String | OPC, Query, Expression, Derived, Reference, Memory |
Sample Rate | historySampleRate | When the Sample Mode property is set to "Periodic", this property (working in conjunction with the Sample Rate Units property) determines how often a record should be collected. | Numeric | OPC, Query, Expression, Derived, Reference, Memory |
Sample Rate Units | historySampleRateUnits | When the Sample Mode property is set to "Periodic", this property (working in conjunction with the Sample Rate property) determines the unit of time that will be use in record collection. For a list of units, see the Units of Time section. | String | OPC, Query, Expression, Derived, Reference, Memory |
Historical Tag Group | historyTagGroup | When the Sample Mode property is set to Tag Group, this property determines which Tag Group will be used to collect records. See Tag Groups for more information. | String | OPC, Query, Expression, Derived, Reference, Memory |
Min Time Between Samples | historyTimeDeadband | Minimum time between records. Useful in restricting the number of records collected when the Sample Mode is set to Tag Change. Prevents multiple consecutive tag changes from triggering consecutive record collections. Works in conjunctions with the Min Time Units property. The Value is calculated off of the value timestamp. | Integer | OPC, Query, Expression, Derived, Reference, Memory |
Min Time Units | historyTimeDeadbandUnits | Units of time to use with the Min Time Between Samples property. For a list of units, see the Units of Time section. | String | OPC, Query, Expression, Derived, Reference, Memory |
Max Time Between Samples | historyMaxAge | Maximum time between samples. Works in conjunction with the Max Time Units property. If a sample has not been collected by the time range specified by these two properties, then a record will be collected on the next sample interval. This setting cannot be less than 1000ms. Setting this value to 0 will disable automatic record collection. Default is 0.Note: This setting will be ignored if the Sample Mode is set to Tag Group, and the targeted Tag Group is using non-default values for its Max Time Between Samples setting. The implication being that non-default values on the Tag Group settings take precedence over this setting. | Integer | OPC, Query, Expression, Derived, Reference, Memory |
Max Time Units | historyMaxAgeUnits | Maximum time in units. For a list of units, see the Units of Time section. | String | OPC, Query, Expression, Derived, Reference, Memory |
Units of Time​
Unit of Time | JSON/Scripting Name |
---|---|
Milliseconds | MS |
Seconds | SEC |
Minutes | MIN |
Hour | HOUR |
Day | DAY |
Week | WEEK |
Month | MONTH |
Year | YEAR |
Runtime Properties​
In addition to properties listed in the Tag Editor, some properties are exposed as runtime properties in the Tag Browser. These properties are valid targets for component bindings and tag reads/writes.
Most runtime properties are representations of properties that can be configured in the Tag Editor. However there are some properties only listed in the Tag Browser:
Property | Description |
---|---|
CanRead | New in 8.1.8 A read-only property that represents whether or not this tag can be read from the current security context. This is determined by looking at the read permission settings on the tag and the Tag Provider's permission settings. |
CanWrite | New in 8.1.8 A read-only property that represents whether or not this tag can be written to from the current security context. This is determined by looking at the write permission settings on the tag, the Read Only property, and the Tag Provider's permission settings. |
Custom Tag Properties​
Custom Tag Properties
Watch the videoCustom tag properties allow application designers to configure their own properties on tags to store unique values on any tag. Once added, a custom property can be referenced like any other tag property via bindings, expressions, and scripts.
Both the Perspective and Vision visualization systems can bind to custom properties. In the following example, we already have Array tag. Now let's add a custom property.
- Open an existing tag and select the Custom properties category.
- Click on the Add icon in the Tag Editor. This will open the Custom Property dialog box.
- Enter a Name for your property, select the Data Type, and click OK.
- When you open your Tag Browser and expand the My Array Tag, you'll see your Custom Property.
Vision Client Tags​
Client tags have the ability to be used as either Expression or SQL Query tags. There is an Expression/SQL page in the Tag Editor that allows you to select what type it is.
Property | Binding/Scripting Name | Description | Data Type | Applicable Tag Type |
---|---|---|---|---|
OPC Server | OPCWriteBackServer | The server against which to subscribe the data point. Note: this property is only present on legacy tag imports, from 7.9 and earlier | String | Query, Expression |
OPC Item Path | OPCWriteBackItemPath | The path to subscribe to on the server. Note: this property is only present on legacy tag imports, from 7.9 and earlier | String | Query, Expression |
Query | Expression | Text area to build your query or expression. This is the code used by the tag: either a SQL Query for Query tags, or an Expression for Expression tags. | String | Query, Expression |
Query Type | QueryType | When the TagType property is set to 1, this property determines if the tag should be a Memory, Expression, or Query tag. A mapping of supported values is listed below:
| Integer | Query, Expression, Memory |
Datasource | SQLBindingDatasource | The default data source of the Tag Provider. | String | Query |