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
| Operator | Description | Example |
|---|---|---|
AND | 1 when both operands are 1, else 0 | A AND B |
OR | 1 when either operand is 1, else 0 | A OR B |
NOT | Inverts a BOOL — 1 becomes 0 and vice versa | NOT 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
BOOLexpressions 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.