Bird
Raised Fist0
PLC Programmingscripting~5 mins

FOR and WHILE loops in PLC Programming

Choose your learning style10 modes available
Introduction
Loops help repeat tasks automatically without writing the same steps many times.
When you want to turn a motor on and off 10 times.
When you need to check sensor values repeatedly until a condition is met.
When you want to count items on a conveyor belt.
When you want to run a process step multiple times.
When you want to wait until a button is pressed before moving on.
Syntax
PLC Programming
FOR loop:
FOR variable := start TO end DO
  // actions
END_FOR

WHILE loop:
WHILE condition DO
  // actions
END_WHILE
FOR loops run a set number of times, counting from start to end.
WHILE loops run as long as the condition is true.
Examples
This FOR loop runs 5 times, turning on the light each time.
PLC Programming
FOR i := 1 TO 5 DO
  // Turn on light
END_FOR
This WHILE loop runs until the sensor value reaches 100.
PLC Programming
WHILE sensorValue < 100 DO
  // Increase motor speed
END_WHILE
Sample Program
This program uses a FOR loop to add 1 to count three times, then a WHILE loop to add 1 until count reaches 6.
PLC Programming
PROGRAM LoopExample
VAR
  i : INT := 0;
  count : INT := 0;
END_VAR

// FOR loop example
FOR i := 1 TO 3 DO
  count := count + 1;
END_FOR

// WHILE loop example
WHILE count < 6 DO
  count := count + 1;
END_WHILE

// Output the final count
// (In real PLC, this might be sent to an HMI or debug console)
END_PROGRAM
OutputSuccess
Important Notes
In PLCs, loops must be used carefully to avoid long cycle times.
Always ensure WHILE loops have a condition that will become false to stop the loop.
FOR loops are good when you know exactly how many times to repeat.
Summary
FOR loops repeat actions a fixed number of times.
WHILE loops repeat actions while a condition is true.
Loops help automate repeated tasks in PLC programs.

Practice

(1/5)
1. Which statement best describes a FOR loop in PLC programming?
easy
A. It repeats a set of instructions a fixed number of times.
B. It repeats instructions only while a condition is true.
C. It runs instructions once and then stops.
D. It waits for an input before running.

Solution

  1. Step 1: Understand the purpose of a FOR loop

    A FOR loop repeats instructions a specific number of times, controlled by a counter.
  2. Step 2: Compare with other loop types

    WHILE loops repeat based on a condition, not a fixed count. The other options describe different behaviors.
  3. Final Answer:

    It repeats a set of instructions a fixed number of times. -> Option A
  4. Quick Check:

    FOR loop = fixed repetitions [OK]
Hint: FOR loops run fixed times; WHILE loops depend on conditions [OK]
Common Mistakes:
  • Confusing FOR loops with WHILE loops
  • Thinking FOR loops run only once
  • Believing FOR loops wait for input
2. Which of the following is the correct syntax for a FOR loop in PLC structured text?
easy
A. for i in range(1,6): ...
B. FOR (i = 1; i <= 5; i++) { ... }
C. FOR i := 1 TO 5 DO ... END_FOR;
D. WHILE i < 5 DO ... END_WHILE;

Solution

  1. Step 1: Identify PLC structured text syntax

    PLC uses FOR i := 1 TO 5 DO ... END_FOR; for loops.
  2. Step 2: Recognize other languages' syntax

    The syntax FOR (i = 1; i <= 5; i++) { ... } is C/JavaScript. The syntax for i in range(1,6): ... is Python. WHILE i < 5 DO ... END_WHILE; is a WHILE loop.
  3. Final Answer:

    FOR i := 1 TO 5 DO ... END_FOR; -> Option C
  4. Quick Check:

    PLC FOR loop uses := and TO [OK]
Hint: PLC FOR loops use ':=' and 'TO' keywords [OK]
Common Mistakes:
  • Using C or Python syntax in PLC code
  • Confusing FOR and WHILE syntax
  • Omitting END_FOR statement
3. What will be the output of this PLC structured text code?
VAR i: INT := 1; sum: INT := 0; END_VAR
FOR i := 1 TO 3 DO
  sum := sum + i;
END_FOR;
// Output sum
medium
A. Syntax error
B. 6
C. 0
D. 3

Solution

  1. Step 1: Trace the FOR loop iterations

    The loop runs with i = 1, 2, 3. sum starts at 0.
  2. Step 2: Calculate sum after each iteration

    sum = 0+1=1, then 1+2=3, then 3+3=6.
  3. Final Answer:

    6 -> Option B
  4. Quick Check:

    1+2+3 = 6 [OK]
Hint: Add loop variable each iteration to sum [OK]
Common Mistakes:
  • Adding only last value of i
  • Starting sum at 1 instead of 0
  • Confusing loop range boundaries
4. Identify the error in this PLC code snippet:
VAR i: INT := 0; count: INT := 0; END_VAR
WHILE i < 5 DO
  count := count + 1;
END_WHILE;
medium
A. Missing increment of i inside the WHILE loop
B. Incorrect variable declaration syntax
C. WHILE loop should be FOR loop
D. count variable should be BOOL, not INT

Solution

  1. Step 1: Analyze the WHILE loop condition and body

    The loop condition is i < 5, but i never changes inside the loop.
  2. Step 2: Identify infinite loop risk

    Without incrementing i, the condition stays true forever, causing an infinite loop.
  3. Final Answer:

    Missing increment of i inside the WHILE loop -> Option A
  4. Quick Check:

    Loop variable must change to avoid infinite loop [OK]
Hint: Always update loop variable inside WHILE loops [OK]
Common Mistakes:
  • Forgetting to increment loop variable
  • Confusing FOR and WHILE loops
  • Incorrect variable types
5. You want to use a loop to turn on 4 output coils named Q1 to Q4 in sequence using PLC structured text. Which code snippet correctly uses a FOR loop to do this?
hard
A. FOR i := 1 TO 4 DO Q[i-1] := TRUE; END_FOR;
B. FOR i := 1 TO 4 DO Q + i := TRUE; END_FOR;
C. FOR i := 1 TO 4 DO Qi := TRUE; END_FOR;
D. FOR i := 1 TO 4 DO Q[i] := TRUE; END_FOR;

Solution

  1. Step 1: Understand coil addressing in arrays

    Using Q[i] accesses coil Q1 to Q4 correctly if Q is an array of outputs.
  2. Step 2: Check other options for syntax errors

    FOR i := 1 TO 4 DO Q + i := TRUE; END_FOR; uses invalid syntax Q + i. FOR i := 1 TO 4 DO Qi := TRUE; END_FOR; treats Q1, Q2 as fixed names, not variable. FOR i := 1 TO 4 DO Q[i-1] := TRUE; END_FOR; uses i-1 which may cause off-by-one error if indexing starts at 1.
  3. Final Answer:

    FOR i := 1 TO 4 DO Q[i] := TRUE; END_FOR; -> Option D
  4. Quick Check:

    Use array indexing for sequential coil control [OK]
Hint: Use array indexing Q[i] for sequential outputs [OK]
Common Mistakes:
  • Using invalid syntax for coil names
  • Off-by-one errors in indexing
  • Treating coil names as strings
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard