Status Tags
- Last UpdatedJul 08, 2025
- 3 minute read
A status tag can be defined in the Citect.INI file to determine whether or not to set all or any ControlLogix system PLC devices offline or online depending on the condition of the status tag. If the condition is true, the device is allowed to come online; otherwise the device is set to offline by the ABCLX driver.
There can be one general status tag (defined in the general [ABCLX] section of the project Citect.INI file) which determines the online status of all I/O devices using the ABCLX driver. There can also be an individual status tag set for each I/O device (using the syntax [IOServerName.IOPortName]) that will override the general section status tag.
By default, no status tag is created for the driver or a device until defined in the project Citect.INI file.
The status tag is polled at the same rate configured for the groups of the corresponding device. The ABCLX driver supports STATUS_UNIT commands on the inactive server, so even though a particular device is not currently servicing Plant SCADA requests, the state of the status condition will be checked periodically allowing the device to be taken offline or online. See Stop_Unit Handling.
Note:
-
If both the primary and standby devices have the same status condition and the condition does not meet requirements, both will be taken offline. All points in the system for that unit will display "#COM".
-
Supported PLC data types for status tags are BOOL, SINT, INT, DINT and REAL. The STRING type is not supported.
-
PLC data type REAL cannot be used with bit operator's '&','!&' to form a status tag expression. The driver will ignore decimal point values in REAL condition checks, the maximum REAL number that can be correctly read is 2^32 for the purposes of the condition check
The syntax for a status tag is:
StatusTag=<TagName><Operator><Operand>
where:
<TagName> = the name of the PLC tag address whose value is to be used in the comparison operation;
<Operator> = the comparison operator (see operator list below);
<Operand> = the value to be used in the comparison operation against the value of <TagName>.
The comparison operator can be one of the following:
|
Operator |
Description |
|
> |
<TagName> is greater than <Operand> |
|
>= |
<TagName> is greater than or equal to <Operand> |
|
< |
<TagName> is less than <Operand> |
|
<= |
<TagName> is less than or equal to <Operand> |
|
& |
<TagName> has common asserted bit(s) with <Operand> |
|
= |
<TagName> is equal to <Operand> |
|
!& |
<TagName> has no common asserted bit(s) with <Operand> |
|
!= |
<TagName> is not equal to <Operand> |
Examples
Bring all ABCLX driver devices online only when the integer tag named "TankLevel" is greater than 100:
[ABCLX]
StatusTag=TankLevel>100
Bring any device on the port named "Port1" on the I/O server named "CLServer" online only when the digital tag named "isReady" is true (where 0=false and 1=true):
[CLServer.Port1]
StatusTag=isReady=1
Bring the device named "Port123" on the I/O server named "CLServer" online only when the current value shares common asserted bits with "5".
[CLServer.Port123]
StatusTag=TagName&5
If the current value for the tag called "TagName" was 3, the example above would set the status to true and bring the device online, as 3 and 5 share a common bit (3 = 0011 in binary, and 5 = 0101). If the value for TagName were 2, the device would remain off line as 2 and 5 do not share common bits (2 = 0010, 5 = 0101).
With the example below, the port named "Port123" on "CLServer" will come online only when the current value for TagName does not share common asserted bits with "5".
[CLServer.Port123]
StatusTag=TagName!&5