A boolean tag is a single-bit software variable in a PLC, HMI, or SCADA system that stores a discrete binary state (True/1 or False/0), acting as the logical bridge between physical 24VDC electrical I/O and software control routines. In industrial automation and advanced home control systems, this single bit of memory is the fundamental atom of logic, translating the physical closure of a relay contact or the beam-break of a photoelectric sensor into a software decision.
The Anatomy of a Boolean Tag vs. Other Data Types
To understand the boolean tag, you must see it in the context of a controller's memory map. When programming an Allen-Bradley ControlLogix or a Siemens S7-1500, you allocate memory based on the data type. A boolean tag consumes exactly one bit of memory, making it the most lightweight and fastest-scanning data type available. Below is a spec-sheet breakdown of how the boolean tag compares to other standard PLC data types.
| Data Type | Memory Size | Typical Electrical Mapping | Scan Time Impact | Example Use Case |
|---|---|---|---|---|
| Boolean (BOOL) | 1 Bit | Discrete I/O (Pushbuttons, limit switches, relay coils) | ~0.001ms (Negligible) | Motor starter seal-in logic |
| Integer (INT/DINT) | 16 / 32 Bits | Word-packed I/O, absolute encoders, BCD thumbwheels | ~0.005ms per math operation | Counting parts on a conveyor |
| Real (REAL) | 32 Bits | Scaled analog 4-20mA or 0-10V signals | ~0.015ms (Floating math heavy) | PID temperature control loop |
| String (STRING) | 88+ Bits (Array) | Serial ASCII, RFID tags, barcode scanners | High (Memory copy overhead) | Logging batch recipe names |
Because a boolean tag only requires evaluating a single bit (is it a 1 or a 0?), PLC processors can evaluate thousands of boolean instructions in a single millisecond. This is why complex safety interlocks and permissive chains are always built using boolean logic rather than integer comparisons.
What a Boolean Tag Changes in a Real Installation
In a physical circuit, introducing a boolean tag fundamentally changes the installation by decoupling the physical hardware wiring from the software logic. This abstraction is known as 'aliasing'.
Consider a physical 24VDC PNP proximity sensor (like an Omron E2E) wired to an Allen-Bradley 1769-IQ16 discrete input card. The physical input address might be Local:2:I.Data.3. If you hardcode this physical address into your motor start logic, you are permanently tying your software to that specific wire on that specific terminal block.
By creating a boolean tag named Motor_Proximity_Present and mapping it to Local:2:I.Data.3, you change the installation's maintainability. If the sensor fails and the electrician moves the wire to terminal 4 (Local:2:I.Data.4), you only have to change the mapping of the boolean tag in one place. The hundreds of rungs of ladder logic, HMI animations, and SCADA alarms tied to Motor_Proximity_Present remain completely untouched.
Where You Meet This in Practice
You will encounter boolean tags in almost every layer of modern electrical control systems, from the machine-level PLC up to the enterprise SCADA network.
- Motor Control Centers (MCCs): A boolean tag like
M1_Run_Fdbkmaps to the physical auxiliary contact of a NEMA size 2 motor starter. The PLC uses this tag to confirm the contactor actually pulled in after the start command was issued. - Safety Interlock Chains: Emergency stop circuits are hardwired in series, but the final safety relay feeds a single discrete input to the PLC. This is mapped to a global boolean tag (e.g.,
Sys_EStop_OK). Every motion sequence in the machine checks this tag as a primary permissive before executing. - SCADA and HMI Polling: In systems like Ignition SCADA, a boolean tag is created in the tag browser and linked to the PLC via OPC UA. The SCADA system polls this tag every 250ms to update a green/red indicator light on the operator's screen. As noted in the Inductive Automation tag documentation, boolean tags in SCADA are often configured with 'deadband' or 'quality' overlays to prevent HMI flickering during network latency spikes.
- Home Automation (Node-RED / Home Assistant): When integrating a Shelly 1 relay or an ESP32 via MQTT, the physical state of the dry contact is published as a boolean payload (
true/false). The automation software uses this boolean tag to trigger scenes, like turning on hallway lights when the front door contact opens.
Common Confusions and Troubleshooting
Even experienced technicians and junior programmers trip over a few specific quirks when dealing with boolean tags. Here is a troubleshooting matrix for the most common field issues.
Why is my boolean tag True in the PLC, but the physical output isn't turning on?
This is the classic 'Forced I/O' trap. A programmer may have manually 'forced' the boolean tag to True in the software to test logic, overriding the physical output card. Alternatively, the boolean tag might be mapped to an internal memory bit (like a B3 or M area) rather than a physical O: (Output) address. Always verify that the tag is mapped to a physical Output address and that no software forces are active.
What is the difference between a boolean tag and a discrete I/O point?
Think of the discrete I/O point as a physical mailbox on the street, and the boolean tag as the name on the envelope inside. The I/O point is the actual hardware terminal where the 24VDC wire lands. The boolean tag is the software alias that reads the mailbox. You can change the name on the envelope (the tag name) without moving the physical mailbox (the I/O wiring).
My boolean tag is flickering (chattering) on the HMI. How do I fix it?
Flickering usually indicates electrical noise or a voltage floating in the undefined threshold zone (5V-10V on a 24V system). Fix 1 (Hardware): Check for missing pull-down resistors on 2-wire proximity sensors, or ensure shielded cable drains are grounded at only one end to prevent ground loops. Fix 2 (Software): Add a simple 'timer on delay' (TON) instruction in the PLC. Route the raw boolean tag into the TON enable bit, set the preset to 50ms, and use the TON 'Done' bit as your clean boolean tag for the HMI. This filters out any electrical noise shorter than 50ms.
Can I use a boolean tag for an analog sensor?
No. A boolean tag only holds a 1 or 0. If you wire a 4-20mA pressure transducer to an analog input card, you must use an Integer or Real tag to capture the 16-bit resolution of the analog-to-digital converter. However, you can use a 'Greater Than' (GRT) instruction to compare that Real tag against a setpoint, and write the result of that comparison into a new boolean tag (e.g., Pressure_High_Alarm) for use in your logic.
Mastering the boolean tag is the first step in moving from simply wiring electrical panels to designing robust, maintainable control architectures. By strictly aliasing your physical I/O to descriptive boolean tags and understanding the voltage thresholds that drive them, you eliminate the most common sources of machine downtime and commissioning delays.






