Bird
Raised Fist0
PLC Programmingscripting~10 mins

CASE statement in PLC Programming - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to start the CASE statement with the variable 'command'.

PLC Programming
CASE [1] OF
  1: Start;
  2: Stop;
  ELSE Idle;
END_CASE;
Drag options to blanks, or click blank then click option'
Astate
Bstatus
Cmode
Dcommand
Attempts:
3 left
💡 Hint
Common Mistakes
Using a variable name that is not defined like 'status' or 'mode'.
Leaving the CASE statement without a controlling variable.
2fill in blank
medium

Complete the code to handle the case when 'command' equals 3.

PLC Programming
CASE command OF
  1: Start;
  2: Stop;
  [1]: Pause;
  ELSE Idle;
END_CASE;
Drag options to blanks, or click blank then click option'
A3
B0
C4
D5
Attempts:
3 left
💡 Hint
Common Mistakes
Using a number not matching the Pause command.
Confusing the ELSE case with a specific case.
3fill in blank
hard

Fix the error in the CASE statement by completing the missing keyword.

PLC Programming
CASE command [1]
  1: Start;
  2: Stop;
  ELSE Idle;
END_CASE;
Drag options to blanks, or click blank then click option'
AOF
BIS
CTHEN
DDO
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'IS', 'THEN', or 'DO' instead of 'OF'.
Omitting the keyword entirely.
4fill in blank
hard

Fill both blanks to complete the CASE statement that handles commands 1 and 2.

PLC Programming
CASE command [1]
  [2]: Start;
  2: Stop;
  ELSE Idle;
END_CASE;
Drag options to blanks, or click blank then click option'
AOF
B1
C3
DIS
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'IS' instead of 'OF'.
Using wrong case numbers like 3 for Start.
5fill in blank
hard

Fill all three blanks to create a CASE statement that returns 'Running' for 1, 'Stopped' for 2, and 'Paused' for 3.

PLC Programming
CASE [1] [2]
  1: [3];
  2: Stopped;
  3: Paused;
  ELSE Idle;
END_CASE;
Drag options to blanks, or click blank then click option'
Astatus
BOF
CRunning
Dcommand
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong variable names like 'status'.
Using wrong keywords instead of 'OF'.
Putting wrong action names for case 1.

Practice

(1/5)
1. What is the main purpose of a CASE statement in PLC programming?
easy
A. To stop the program execution immediately
B. To repeat a set of instructions multiple times
C. To select one action from many based on a variable's value
D. To declare variables for use in the program

Solution

  1. Step 1: Understand the role of CASE statement

    The CASE statement evaluates a variable and chooses one matching action from multiple options.
  2. Step 2: Compare with other options

    Repeating instructions is done by loops, declaring variables is separate, and stopping execution is a different command.
  3. Final Answer:

    To select one action from many based on a variable's value -> Option C
  4. Quick Check:

    CASE statement = Select action by value [OK]
Hint: CASE chooses action based on value, like a traffic signal [OK]
Common Mistakes:
  • Confusing CASE with loops
  • Thinking CASE declares variables
  • Assuming CASE stops program
2. Which of the following is the correct syntax to start a CASE statement in PLC structured text?
easy
A. CASE variable OF
B. SWITCH(variable) {
C. IF variable THEN
D. SELECT variable FROM

Solution

  1. Step 1: Recall PLC structured text CASE syntax

    The correct syntax to start a CASE statement is CASE variable OF.
  2. Step 2: Eliminate other options

    SWITCH(variable) { is JavaScript style, C is IF statement, D is invalid syntax.
  3. Final Answer:

    CASE variable OF -> Option A
  4. Quick Check:

    PLC CASE starts with 'CASE variable OF' [OK]
Hint: PLC CASE always uses 'CASE variable OF' to start [OK]
Common Mistakes:
  • Using SWITCH instead of CASE
  • Confusing IF with CASE
  • Writing SELECT instead of CASE
3. Given the following PLC code snippet, what will be the value of output after execution?
CASE input OF
  1: output := 'One';
  2: output := 'Two';
  3: output := 'Three';
ELSE
  output := 'Other';
END_CASE;

If input is 2?
medium
A. 'One'
B. 'Two'
C. 'Three'
D. 'Other'

Solution

  1. Step 1: Match input value with CASE options

    The input is 2, so the CASE matches the line 2: output := 'Two';.
  2. Step 2: Determine output value

    Since input is 2, output is assigned the string 'Two'.
  3. Final Answer:

    'Two' -> Option B
  4. Quick Check:

    Input 2 matches case 2, output = 'Two' [OK]
Hint: Match input to CASE label to find output [OK]
Common Mistakes:
  • Choosing ELSE output for matching case
  • Confusing input 2 with 1 or 3
  • Ignoring ELSE clause
4. Identify the error in this CASE statement snippet:
CASE status OF
  0: action := 'Stop';
  1: action := 'Start';
  2 action := 'Pause';
ELSE
  action := 'Unknown';
END_CASE;
medium
A. Missing colon after 2 in third case
B. ELSE clause is not allowed in CASE
C. END_CASE should be ENDCASE
D. Variable 'action' is not declared

Solution

  1. Step 1: Check syntax of each CASE line

    The third case line is missing a colon after 2; it should be 2: action := 'Pause';.
  2. Step 2: Verify other parts

    ELSE clause is valid, END_CASE is correct syntax, and variable declaration is not shown but not an error here.
  3. Final Answer:

    Missing colon after 2 in third case -> Option A
  4. Quick Check:

    Each case label needs a colon ':' [OK]
Hint: Each case label must end with ':' [OK]
Common Mistakes:
  • Omitting colon after case value
  • Thinking ELSE is invalid
  • Confusing END_CASE syntax
5. You want to use a CASE statement to control a motor speed setting based on an integer input from 0 to 4, where 0 means 'Stop', 1 means 'Slow', 2 means 'Medium', 3 means 'Fast', and any other value means 'Error'. Which of the following CASE statements correctly implements this logic?
hard
A. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; END_CASE;
B. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; 4: motor_speed := 'Error'; END_CASE;
C. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; 4: motor_speed := 'Error'; ELSE motor_speed := 'Error'; END_CASE;
D. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; ELSE motor_speed := 'Error'; END_CASE;

Solution

  1. Step 1: Check the required mapping

    Values 0 to 3 have specific motor speeds; any other value should set 'Error'.
  2. Step 2: Analyze each option

    CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; ELSE motor_speed := 'Error'; END_CASE; uses ELSE for all other values, correctly handling unexpected inputs. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; 4: motor_speed := 'Error'; END_CASE; treats 4 as 'Error' but misses ELSE for other values. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; 4: motor_speed := 'Error'; ELSE motor_speed := 'Error'; END_CASE; incorrectly uses a colon after ELSE ('ELSE:'), which is invalid syntax. CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; END_CASE; lacks handling for values outside 0-3.
  3. Final Answer:

    CASE speed OF 0: motor_speed := 'Stop'; 1: motor_speed := 'Slow'; 2: motor_speed := 'Medium'; 3: motor_speed := 'Fast'; ELSE motor_speed := 'Error'; END_CASE -> Option D
  4. Quick Check:

    Use ELSE for unexpected values in CASE [OK]
Hint: Use ELSE to catch all unexpected values in CASE [OK]
Common Mistakes:
  • Not using ELSE for unexpected values
  • Assigning error to a specific case instead of ELSE
  • Missing cases for valid inputs
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