Bird
Raised Fist0
PLC Programmingscripting~20 mins

FOR and WHILE loops in PLC Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Loop Mastery Badge
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of a FOR loop incrementing a counter
What is the value of the counter variable after this FOR loop runs in a PLC structured text program?
PLC Programming
VAR
  counter : INT := 0;
  i : INT;
END_VAR

FOR i := 1 TO 5 DO
  counter := counter + 2;
END_FOR
A0
B5
C10
D15
Attempts:
2 left
💡 Hint
Think about how many times the loop runs and how much the counter increases each time.
💻 Command Output
intermediate
2:00remaining
WHILE loop execution count
How many times does the WHILE loop execute in this PLC structured text code?
PLC Programming
VAR
  count : INT := 0;
  x : INT := 3;
END_VAR

WHILE x < 7 DO
  count := count + 1;
  x := x + 2;
END_WHILE
A2
B3
C4
D1
Attempts:
2 left
💡 Hint
Check how x changes each loop and when the condition becomes false.
📝 Syntax
advanced
2:00remaining
Identify the syntax error in this FOR loop
Which option shows the correct syntax for a FOR loop in PLC structured text?
PLC Programming
FOR i := 1 TO 5
  counter := counter + i;
END_FOR
A
FOR i IN 1 TO 5 DO
  counter := counter + i;
END_FOR
B
FOR i = 1 TO 5 DO
  counter := counter + i;
END_FOR
C
FOR i := 1 TO 5 THEN
  counter := counter + i;
END_FOR
D
FOR i := 1 TO 5 DO
  counter := counter + i;
END_FOR
Attempts:
2 left
💡 Hint
Look for the required keyword after the FOR statement.
🔧 Debug
advanced
2:00remaining
Why does this WHILE loop never end?
What is the reason this WHILE loop runs forever in PLC structured text?
PLC Programming
VAR
  x : INT := 0;
END_VAR

WHILE x < 5 DO
  x := x - 1;
END_WHILE
AWHILE loops require a break statement to end
Bx decreases each loop, so condition x < 5 is always true, causing infinite loop
Cx is not initialized, causing runtime error
Dx should be incremented, not decremented, to reach 5
Attempts:
2 left
💡 Hint
Think about how the variable changes and the loop condition.
🚀 Application
expert
3:00remaining
Calculate sum of even numbers using FOR loop
Which code correctly calculates the sum of even numbers from 2 to 10 inclusive in PLC structured text?
A
VAR
  sum : INT := 0;
  i : INT;
END_VAR
FOR i := 1 TO 10 DO
  IF i MOD 2 = 0 THEN
    sum := sum + i;
  END_IF
END_FOR
B
VAR
  sum : INT := 0;
  i : INT;
END_VAR
FOR i := 2 TO 10 BY 2 DO
  sum := sum + i;
END_FOR
C
VAR
  sum : INT := 0;
  i : INT := 2;
END_VAR
WHILE i &lt;= 10 DO
  sum := sum + i;
  i := i + 2;
END_WHILE
D
VAR
  sum : INT := 0;
  i : INT;
END_VAR
FOR i := 2 TO 10 DO
  IF i MOD 2 = 1 THEN
    sum := sum + i;
  END_IF
END_FOR
Attempts:
2 left
💡 Hint
Check which code sums only even numbers correctly.

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