Skip to main content
Version: Deprecated Pages

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.

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 ObjectType
PropertyA single value underneath an node.
NodeAn 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.
FolderRepresented 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.
AtomicTagA "normal" type of tag. Objects with this type can be one of the following (based on the Value Source property):
  • OPC Tag
  • Query Tag
  • Expression Tag
  • Derived Tag
  • Reference Tag
  • Memory
  • Tag
  • UdtInstanceAn instance of a complex tag instance (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.
    UdtTypeRepresents 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.
    ProviderRepresents 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

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    NamenameHow the Tag will be presented and referenced in the system. The Tag path will be the provider, the folder structure, and this name.StringOPC, Query, Expression, Derived, Client, Reference, Memory
    Tag GrouptagGroupThe 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.StringOPC, Query, Expression, Derived, Reference, Memory
    EnabledenabledWhether the Tag will be evaluated by the Tag Group. If false, the Tag will still be present, but will have a bad quality.BooleanOPC, Query, Expression, Derived, Reference, Memory

    Value

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    Value SourcevalueSourceSpecifies how the Tag determines its value. In other words, sets the type of the Tag (Memory, OPC, Expression, etc). The following lists valid value sources and their JSON Name:
  • Reference: reference
  • Query: db
  • OPC: opc
  • Memory: memory
  • Expression: expr
  • Derived: derived
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Data TypedataTypeThe 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, see Tag Data Types. Click here to see valid values.

    Note: Regarding Array data types, Alarming, Scaling, and Historical settings applied to an array Tag are propagated down to elements in the array.
    StringOPC, Query, Expression, Derived, Reference, Memory
    ValuevalueThe value of the Tag. Can only be modified if the Tag allows value writing and the user has sufficient privileges.Object (depends on the data type of the Tag)Memory
    OPC ServeropcServerOnly p resent for OPC Tags. The server against which to subscribe the data point. Only present for OPC Tags.StringOPC
    OPC Item PathopcItemPathOnly present for OPC Tags. The path to subscribe to on the server. 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.
    StringOPC
    Source Tag PathsourceTagPathThe path to the Tag that this Tag is referencing. Only present for Reference and Derived Tags.StringDerived, Reference
    Execution ModeexecutionModeOnly present for Query and Expression Tags. Determines how when the Tag executes.
  • Event Driven: Updates when something happens (i.e., value event or alarm event) within the expression.
  • Fixed Rate: Tag will be executed at the set or fixed rate. Adds the Execution Rate property, which determines how often the Tag executes in milliseconds.
  • Tag Group: Tags are executed by Tag Groups, which dictate the rate of execution.
    • Event Driven: EventDriven
    • Fixed Rate: FixedRate
    • Tag Group: TagGroupRate
    StringExpression, Query
    ExpressionexpressionThe expression the Tag will use to determine its value.StringExpression
    Read ExpressionderiveExpressionGetterThe expression that determines how the value on the Derived Tag is displayed.StringDerived
    QueryqueryThe 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.
    Write ExpressionderiveExpressionSetterThe expression that determines how the value on the Derived Tag is displayed.StringDerived
    DatasourcedatasourceThe database connection that the query Tag will execute against.StringQuery
    Query TypequeryType
    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:
  • AutoDetect: Query type is determined from the query itself.
  • Select: Dictates that the query is reading data from the database. The query result set will be stored on the Tag's value.
  • Update: Dictates that the query is writing data to the database (but does not require an UPDATE statement in the query, specifically). The value on the query Tag will be the number of affected rows.
  • StringQuery

    Valid Data Type Values

    Data TypeString ValueInteger Value
    ByteInt10
    ShortInt21
    IntegerInt42
    LongInt83
    FloatFloat44
    DoubleFloat85
    BooleanBoolean6
    StringString7
    DateTimeDateTime8
    TextText10
    Byte ArrayInt1Array17
    Short ArrayInt2Array18
    Integer ArrayInt4Array11
    Long ArrayInt8Array12
    Float ArrayFloat4Array19
    Double ArrayFloat8Array13
    Boolean ArrayBooleanArray14
    String ArrayStringArray15
    DateTime ArrayDateTimeArray16
    Binary DataByteArray20
    DatasetDataSet9
    DocumentDocument29

    Numeric Properties

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    DeadbanddeadbandA numerical value used to prevent unnecessary updates for Tags whose values change by small amounts.NumericOPC, Query, Expression, Derived, Reference, Memory
    Deadband ModedeadbandModeDefines how the deadband value is used.
  • Absolute: The deadband setting is considered to be an absolute value.
  • Percent: The actual deadband is calculated as a percent of the Tag's engineering unit span.
  • Valid values are as follows:
  • Absolute: Absolute
  • Percent: Percent
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Scale ModescaleModeIf and how the Tag value will be scaled between the source, and what is reported for the Tag. Valid values are as follows:
  • 0- Off: Off
  • 1- Linear: Linear
  • 2- Square Root: SquareRoot
  • 3- Exponential Filter: ExponentialFilter
  • 4- Bit Inversion: BitInversion
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Raw LowrawLowStart of the "raw" value range. Only present if Scale Mode is set to Linear or Square Root.NumericOPC, Query, Expression, Derived, Reference, Memory
    Raw HighrawHighEnd of the "raw" value range. Only present if Scale Mode is set to Linear or Square Root.NumericOPC, Query, Expression, Derived, Reference, Memory
    Scaled LowscaledLowStart 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.NumericOPC, Query, Expression, Derived, Reference, Memory
    Scaled HighscaledHighEnd 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.NumericOPC, Query, Expression, Derived, Reference, Memory
    Clamp ModeclampModeHow values that fall outside of the ranges will be treated. "Clamped" values will be adjusted to the low/high scaled value as appropriate. Only present if Scale Mode is set to Linear or Square Root. Valid values are as follows:
  • 0 - No_Clamp: No_Clamp
  • 1 - Clamp_Low: Clamp_Low
  • 2 - Clamp_High: Clamp_High
  • 3 - Clamp_Both: Clamp_Both
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Scale FactorscaleFactorFor single parameter modes (currently only Exponential Filter), the factor parameter for the equation. Used when the Scale Mode property is set to Exponential FilterNumericOPC, Query, Expression, Derived, Reference, Memory
    Engineering UnitsengUnitThe engineering units of the value.StringOPC, Query, Expression, Derived, Reference, Memory
    Engineering Low LimitengLowThe lowest expected value of the Tag.NumericOPC, Query, Expression, Derived, Reference, Memory
    Engineering High LimitengHighThe highest expected value of the Tag.NumericOPC, Query, Expression, Derived, Reference, Memory
    Engineering Limit ModeengLimitModeDictates 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. Valid values are as follows:
  • 0 - No_Clamp: No_Clamp
  • 1 - Clamp_Low: Clamp_Low
  • 2 - Clamp_High: Clamp_High
  • 3 - Clamp_Both: Clamp_Both
  • NumericOPC, Query, Expression, Derived, Reference, Memory
    Format StringformatStringHow the value should be formatted when converted to a string (only applies to numerical data types). Uses # and 0 characters to describe the format.

    # : If the number in this position is non-zero, then do not show the position. Otherwise, show the number. Useful when you only want to show a decimal position if the value is non-zero.

    0 : If the number in this position is non-zero, then show that number. Otherwise, show a zero. Useful to add leading and trailing zeros to a value.

    See Data Type Formatting Reference.
    StringOPC, Query, Expression, Derived, Reference, Memory

    Meta Data Properties

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    TooltiptooltipThe 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.StringOPC, Query, Expression, Derived, Reference, Memory
    DocumentationdocumentationA freeform text property for information about the Tag.StringOPC, Query, Expression, Derived, Reference, Memory

    Security

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    Read PermissionsreadPermissionsDefines the security levels required in order to read values from a Tag.  For more information, see Tag Security Properties. Contains the following elements:
  • 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:
    • AnyOf
    • AllOf
  • 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.
  •  Click here to see an example in JSON...
    JSON ObjectOPC, Query, Expression, Derived, Reference, Memory
    Read OnlyreadOnlyDefines whether a Tag is read-only or writeable. For more information, see Tag Security Properties.value: booleanOPC, Query, Expression, Derived, Reference, Memory
    Write PermissionswritePermissionsDefines the security levels required in order to read values from a Tag. For more information, see Tag Security Properties. Contains the following elements:
  • 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:
    • AnyOf
    • AllOf
  • 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.
  •  Click here to see an example in JSON...
    JSON ObjectOPC, Query, Expression, Derived, Reference, Memory

    Read Permissions 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": []
    }
    ]
    }
    ]
    }

    Write Permissions 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.

    "writePermissions": {
    "type": "AnyOf",
    "securityLevels": [
    {
    "name": "Authenticated",
    "children": [
    {
    "name": "Roles",
    "children": [
    {
    "name": "Administrator",
    "children": []
    }
    ]
    }
    ]
    },
    {
    "name": "SecurityZones",
    "children": [
    {
    "name": "Zone A",
    "children": []
    }
    ]
    }
    ]
    }

    Scripting

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    Tag Event ScriptseventScriptsEach 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.

    Key Description:
  • eventid: A value representing the type of event script
  • script: A value representing the content of the script
  • Possible eventid values:
  • Quality Changed: qualityChanged
  • Value Changed: valueChanged
  • Alarm Active: alarmActive
  • Alarm Cleared: alarmCleared
  • Alarm Acknowledged: alarmAcked
  • JSON ArrayOPC, Query, Expression, Derived, Reference, Memory

    Alarms

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    AlarmsalarmsTags 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 EnabledalarmEvalEnabledDetermines if alarms will be evaluated on this tag.BooleanOPC, Query, Expression, Derived, Reference, Memory

    History

    PropertyJSON/Scripting NameDescriptionData TypeApplicable Tag Type
    History EnabledhistoryEnabledWhether the Tag will report its history to the Tags Historian system.BooleanOPC, Query, Expression, Derived, Reference, Memory
    Storage ProviderhistoryProviderWhich 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.StringOPC, Query, Expression, Derived, Reference, Memory
    Deadband StylehistoricalDeadbandStyleThere 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.
  • If the data type of the Tag is set to a float or double, then Auto will use the Analog Style
  • If the data type of the Tag is any other type, then the Discrete style will be used.
  • More information on the Analog and Discrete types can be found on the Configuring Tag History page.

    Valid values are as follows:
  • Auto: Auto
  • Analog: Analog
  • Discrete: Discrete
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Deadband ModehistoricalDeadbandModeDefines how the deadband value is used.
  • Absolute (Absolute) - The deadband setting is considered to be an absolute value.
  • Percent (Percent) - The actual deadband is calculated as a percent of the Tag's engineering unit span.
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Historical DeadbandhistoricalDeadbandA deadband that applies only to historical evaluation.NumericOPC, Query, Expression, Derived, Reference, Memory
    Sample ModesampleModeDetermines how often a historical record should be collected.
  • On Change (OnChange) - Collects a record whenever the value on the Tag changes.
  • Periodic (Periodic) - Collects a record based on the Sample Rate and Sample Rate Units properties.
  • Tag Group (TagGroup) - Collects a record based on the Tag Group specified under the Historical Tag Group property.
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Sample RatehistorySampleRateWhen 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.NumericOPC, Query, Expression, Derived, Reference, Memory
    Sample Rate UnitshistorySampleRateUnitsWhen 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.
  • Milliseconds: MS
  • Seconds : SEC
  • Minutes: MIN
  • Hour: HOUR
  • Day: DAY
  • Week: WEEK
  • Month: MONTH
  • Year: YEAR
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Historical Tag GrouphistoryTagGroupWhen the Sample Mode property is set to "Tag Group", this property determines which Tag Group will be used to collect records.StringOPC, Query, Expression, Derived, Reference, Memory
    Min Time Between SampleshistoryTimeDeadbandMinimum 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.IntegerOPC, Query, Expression, Derived, Reference, Memory
    Min Time UnitshistoryTimeDeadbandUnitsUnits of time to use with the Min Time Between Samples property.
  • Milliseconds: MS
  • Seconds : SEC
  • Minutes: MIN
  • Hour: HOUR
  • Day: DAY
  • Week: WEEK
  • Month: MONTH
  • Year: YEAR
  • StringOPC, Query, Expression, Derived, Reference, Memory
    Max Time Between SampleshistoryMaxAgeMaximum 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.

    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.
    IntegerOPC, Query, Expression, Derived, Reference, Memory
    Max Time UnitshistoryMaxAgeUnitsMaximum time in units is defined as: Milliseconds, Seconds, Minutes, Hours, Days, Weeks, Months, and Years.
  • Milliseconds: MS
  • Seconds : SEC
  • Minutes: MIN
  • Hour: HOUR
  • Day: DAY
  • Week: WEEK
  • Month: MONTH
  • Year: YEAR
  • StringOPC, Query, Expression, Derived, Reference, Memory

    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:

    PropertyDescription
    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 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.

    1. Open an existing Tag and click on the Add icon in the Tag Editor.

    2. This opens the Custom Property dialog box. Enter a Name for your Tag, select the Data Type, and click OK.

    3. Scroll down to the bottom of your Tag properies and you'll see your Custom Property. We added the value "Hello Ignition".

    4. 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.

    Query/Expression Attributes

    PropertyBinding/Scripting NameDescriptionData TypeApplicable Tag Type
    OPC ServerOPCWriteBackServerThe server against which to subscribe the data point.StringQuery, Expression
    OPC Item PathOPCWriteBackItemPathThe path to subscribe to on the server.StringQuery, Expression
    QueryExpressionText area to build your query or expression.String

    This is the code used by the Tag: either a SQL Query for Query Tags, or an Expression for Expression Tags.
    Query, Expression
    Query TypeQueryTypeWhen the TagType property is set to 1, this property determines if the Tag should be a Memory, Expression, or Query Tag.Integer

    Supported tag types and their integer values include:
  • Memory Tag: 0
  • Expression Tag: 1
  • Query Tag: 2
  • Query, Expression, Memory
    DatasourceSQLBindingDatasourceThe default data source of the Tag provider.StringQuery