Skip to main content

Logical Operators

Logical operators combine or invert BOOL expressions that evaluate to 1 or 0. They are essential for writing expressive, multi-condition IF statements.

Operators

OperatorDescriptionExample
AND1 when both operands are 1, else 0A AND B
OR1 when either operand is 1, else 0A OR B
NOTInverts a BOOL1 becomes 0 and vice versaNOT A

Operator Use in IF Statements

Logical operators are typically used inside IF conditions to control flow based on multiple inputs or states.

Example 1: Basic AND condition


IF Start_Button AND NOT Stop_Button THEN
Motor_Run := 1;
END_IF;

This will start the motor only if the start button is pressed and the stop button is not pressed.

Example 2: Using OR


IF Emergency_Stop OR Fault THEN
System_Enabled := 0;
END_IF;

This disables the system if either the emergency stop or a fault is active.

Example 3: Multiple combined conditions


IF (Level < 50) AND (Pump_Enabled OR Manual_Override) THEN
Pump := 1;
END_IF;

This turns on the pump if the level is low and either the pump is enabled or overridden manually.

Notes

  • Parentheses can be used to group logic for clarity and precedence.

  • Avoid long, complex IF conditions without parentheses — they can become hard to read and debug.

Best Practices

  • Keep BOOL expressions readable and explicit.

  • Use descriptive variable names so conditions make sense on their own.

  • Use NOT carefully — it only applies to the next expression, so grouping with parentheses is often safer.