List of Tag Properties

Tag properties (also known as "tag fields") are metadata attached to each tag in the database. Most of these properties can be set using the Tag Properties dialog, which you can open by clicking the Tag Properties button on the Tag Properties toolbar.

To access a tag property during runtime, use the following syntax (without spaces) anywhere that you would normally specify a tag:
tag_name->property_name
You can access the following tag properties during runtime:
Tag Property Description R or R/W Data Type Available on Data Type… Retain
Bool Int Real Str
Name The name of the tag, as configured in the Project Tags database. R String, up to 32 chars Y Y Y Y n/a
MemberName The name of the class member, in a properly configured Class. NOTE: The syntax must be:
Class.Member->MemberName

Example: Tank.Lvl->MemberName = Lvl

R String, up to 32 chars Y Y Y Y n/a
Size Array Size. If the tag is not an array tag, it returns the value 0 R Integer Y Y Y Y n/a
Index The index number of an element in an Array. (An Array is any Tag of size greater than 0.) NOTE: The syntax must be:
Tag[Index]->Index

Example: Tag[1]->Index = 1

R Integer Y Y Y Y n/a
Description The description of the tag, configured in the Tags datasheet. R String Y Y Y Y Y
Quality Tag quality (192=GOOD; 0=BAD). The project updates this field every time the tag receives the result of an expression or a value from a communication task (such as driver or OPC).

If the expression is invalid (such as, division by zero) or if there is a reading communication error associated with the tag, then the project sets the quality to BAD.

R Integer Y Y Y Y N
TimeStamp Time and date when the value of the tag last changed. R String Y Y Y Y N
Blocked This property can have two values:
  • 0: The tag is blocked and all runtime tasks will ignore it. It is effectively removed from the project database.
  • 1: The tag is unblocked and all runtime tasks can access it normally.

This is useful when you want to dynamically disable all actions associated with a specific tag. Even when a tag is blocked, however, it still counts towards the total number of tags used for licensing purposes.

R/W Boolean Y Y Y Y N
Unit A brief description (up to 9 characters) of the Engineering Unit (i.e., the unit of measurement) for the Tag value. For example, Kg, BTU, psi. R/W String, up to 9 chars Y Y Y Y Y
Max The maximum value that can be written to the tag during runtime. R/W Real N Y Y N Y
Min The minimum value that can be written to the tag during runtime R/W Real N Y Y N Y
B0 … B31 Value (0 or 1) of any of the 32 bits (b0, b1, b2, … b31) of an Integer tag. (B0: LSB B31: MSB) R/W Boolean N Y N N N
DisplayValue A converted Tag value that is only displayed on-screen:

DisplayValue = (Value / UnitDiv) + UnitAdd

This is used when the actual Tag values have one Engineering Unit (see Unit above) but need to be displayed on-screen in another Engineering Unit (see DisplayUnit below). For example, Celsius degrees and Farenheit degrees.

If user input changes DisplayValue during runtime, then the conversion is reversed before the change is actually written to the Tag:

Value = (DisplayValueUnitAdd) * UnitDiv

R/W Real N Y Y N n/a
DisplayUnit A brief description (up to 9 characters) of the Engineering Unit for DisplayValue.

NOTE: This property can only be set by using the SetDisplayUnit and SetTagDisplayUnit functions.

R String, up to 9 chars N Y Y N N
UnitDiv Number by which the Tag value is divided to get DisplayValue. To perform no division, UnitDiv should be 1.

NOTE: This property can only be set by using the SetDisplayUnit and SetTagDisplayUnit functions.

R Real N Y Y N N
UnitAdd Number added to the Tag value to get DisplayValue. To perform no addition, UnitAdd should be 0.

NOTE: This property can only be set by using the SetDisplayUnit and SetTagDisplayUnit functions.

R Real N Y Y N N
DisplayMax The maximum value that can be input to DisplayValue during runtime:

DisplayMax = (Max / UnitDiv) + UnitAdd

If DisplayMax is changed during runtime, then Max is also changed as follows:

Max = (DisplayMaxUnitAdd) * UnitDiv

R/W Real N Y Y N N
DisplayMin The minimum value that can be input to DisplayValue during runtime:

DisplayMin = (Min / UnitDiv) + UnitAdd

If DisplayMin is changed during runtime, then Min is also changed as follows:

Min = (DisplayMinUnitAdd) * UnitDiv

R/W Real N Y Y N N
HiHiLimit Limit value for the HiHi alarm. R/W Real N Y Y N Y
HiLimit Limit value for the Hi alarm. R/W Real N Y Y N Y
LoLimit Limit value for the Lo alarm. R/W Real N Y Y N Y
LoLoLimit Limit value for the LoLo alarm. R/W Real N Y Y N Y
RateLimit Limit value for the Rate alarm. R/W Real N Y Y N Y
DevSetpoint Setpoint value for Deviation alarms. R/W Real N Y Y N n/a
DevPLimit Limit value for the Deviation+ alarm. R/W Real N Y Y N Y
DevMLimit Limit value for the Deviation- alarm. R/W Real N Y Y N Y
HiHi If 0, the HiHi alarm is not active. If 1, the HiHi alarm is active. R Boolean Y Y Y N n/a
Hi If 0, the Hi alarm is not active. If 1, the Hi alarm is active. R Boolean Y Y Y N n/a
Lo If 0, the Lo alarm is not active. If 1, the Lo alarm is active. R Boolean Y Y Y N n/a
LoLo If 0, the LoLo alarm is not active. If 1, the LoLo alarm is active. R Boolean Y Y Y N n/a
Rate If 0, the Rate alarm is not active. If 1, the Rate alarm is active. R Boolean Y Y Y N n/a
DevP If 0, the Deviation+ alarm is not active. If 1, the DevP alarm is active. R Boolean N Y Y N n/a
DevM If 0, the Deviation- alarm is not active. If 1, the DevM alarm is active. R Boolean N Y Y N n/a
AlrStatus Integer value with the status of the current active alarms associated to the tag. Each bit of this integer value indicates a specific status:
  • Bit 0 (LSB): HiHi Alarm active
  • Bit 1: Hi Alarm active
  • Bit 2: Lo Alarm active
  • Bit 3: LoLo Alarm active
  • Bit 4: Rate Alarm active
  • Bit 5: Deviation+ Alarm active
  • Bit 6: Deviation- Alarm active

Examples: If Tag‑>AlrStatus returns the value 2, it means that "Hi" alarm is active. If it returns the value 3, it means that the "HiHi" and the "Hi" alarm are active simultaneously.

If this property returns the value 0, it means that there are no active alarms associated to this tag.

For Boolean tags, only the values 1 (bit 1), 4 (bit 2) or 16 (bit 4) can be returned.

R Integer Y Y Y N N
Ack This property can have two values:
  • 0: There are no alarms associated with this tag that require acknowledgment.
  • 1: There is at least one alarm associated with this tag that requires acknowledgment.

This works as a global acknowledge for the tag and goes to 0 only when all alarms for the tag have been acknowledged.

R Boolean Y Y Y N N
UnAck This property can have two values:
  • 0: There is at least one alarm associated with this tag that requires acknowledgment.
  • 1: There are no alarms associated with this tag that require acknowledgment.

If you manually set this value to 1, then the active alarms (if any) are acknowledged. The value of this property is always the opposite of the Ack property.

R/W Boolean Y Y Y N N
AlrAckValue Text associated with the Acknowledged state of a Boolean tag. This text is displayed in the Value column of an Alarm/Event Control.

You can also edit this text in the Tag Properties dialog (Alarms – Bool Type).

R/W String, up to 32 chars Y N N N Y
AlrOffValue Text associated with the Normalized state of a Boolean tag. This text is displayed in the Value column of an Alarm/Event Control.

You can also edit this text in the Tag Properties dialog (Alarms – Bool Type).

R/W String, up to 32 chars Y N N N Y
AlrOnValue Text associated with the Active state of a Boolean tag. This text is displayed in the Value column of an Alarm/Event Control.

You can also edit this text in the Tag Properties dialog (Alarms – Bool Type).

R/W String, up to 32 chars Y N N N Y
AlrDisable This property can have two values:
  • 0: The alarms associated with this tag are enabled. This means that when an alarm condition occurs, the alarm will become active.
  • 1: The alarms associated to this tag are disabled. This means that even if an alarm condition occurs, the alarm will not become active.
R/W Boolean Y Y Y N N
Note: