Bird
Raised Fist0
PLC Programmingscripting~30 mins

Traffic light sequence in PLC Programming - Mini Project: Build & Apply

Choose your learning style10 modes available
Traffic Light Sequence
📖 Scenario: You are programming a simple traffic light controller for a pedestrian crossing. The traffic light has three lights: Red, Yellow, and Green. The lights change in a fixed sequence to control traffic safely.
🎯 Goal: Build a program that cycles through the traffic light sequence: Red, Green, Yellow, then back to Red. Each light should be represented by a boolean variable indicating if it is ON (True) or OFF (False).
📋 What You'll Learn
Create boolean variables for Red, Yellow, and Green lights.
Create a variable current_light to track which light is currently ON.
Write logic to change the current_light in the order: Red -> Green -> Yellow -> Red.
Print the state of each light after the change.
💡 Why This Matters
🌍 Real World
Traffic light controllers use similar logic to manage safe vehicle and pedestrian flow at intersections.
💼 Career
Understanding basic control logic and state management is essential for automation engineers and PLC programmers.
Progress0 / 4 steps
1
Create traffic light variables
Create three boolean variables called Red, Yellow, and Green. Set Red to True and the others to False to start with the red light ON.
PLC Programming
Hint

Think of each light as a switch that can be ON (True) or OFF (False).

2
Create current_light variable
Create a variable called current_light and set it to the string 'Red' to track which light is ON.
PLC Programming
Hint

This variable helps remember which light is currently ON.

3
Write logic to change lights
Write code that changes the current_light variable to the next light in the sequence: if current_light is 'Red', change it to 'Green'; if 'Green', change it to 'Yellow'; if 'Yellow', change it back to 'Red'. Then update the Red, Yellow, and Green variables to reflect the new current_light state.
PLC Programming
Hint

Use if and elif to check current_light and update it. Then set each light variable to True only if it matches current_light.

4
Print the traffic light states
Print the values of Red, Yellow, and Green variables in the format: Red: True, Yellow: False, Green: False.
PLC Programming
Hint

Use a print statement with an f-string to show the current state of each light.

Practice

(1/5)
1. What is the main purpose of a traffic light sequence in PLC programming?
easy
A. To control the order and timing of red, yellow, and green lights
B. To measure the speed of vehicles
C. To detect weather conditions
D. To count the number of cars passing

Solution

  1. Step 1: Understand traffic light function

    Traffic lights manage traffic by showing red, yellow, and green lights in a set order.
  2. Step 2: Identify PLC role

    PLC programs control the timing and sequence of these lights to keep traffic safe and flowing.
  3. Final Answer:

    To control the order and timing of red, yellow, and green lights -> Option A
  4. Quick Check:

    Traffic light sequence = control lights order and timing [OK]
Hint: Traffic lights cycle colors in order to manage traffic flow [OK]
Common Mistakes:
  • Confusing traffic light sequence with vehicle speed measurement
  • Thinking traffic lights detect weather
  • Assuming traffic lights count cars
2. Which of the following is the correct way to represent a state for the green light in a PLC program?
easy
A. state = GREEN
B. state = YELLOW
C. state = RED
D. state = OFF

Solution

  1. Step 1: Identify the green light state

    The green light state should be named clearly as GREEN to represent that light.
  2. Step 2: Match option to green state

    Only state = GREEN assigns the state variable to GREEN, which is correct for the green light.
  3. Final Answer:

    state = GREEN -> Option A
  4. Quick Check:

    Green light state = GREEN [OK]
Hint: Use clear names like GREEN for green light state [OK]
Common Mistakes:
  • Using RED or YELLOW for green light state
  • Using OFF which means no light
  • Confusing state names
3. Given this PLC pseudocode snippet for a traffic light sequence:
timer = 0
state = 'RED'
if timer < 10:
  light = 'RED'
elif timer < 15:
  light = 'GREEN'
else:
  light = 'YELLOW'

What will be the value of light when timer is 12?
medium
A. 'YELLOW'
B. 'RED'
C. 'GREEN'
D. Error

Solution

  1. Step 1: Check timer conditions for 12

    12 is not less than 10, so first if is false. 12 is less than 15, so second condition is true.
  2. Step 2: Determine light value

    Since timer < 15 is true, light is set to 'GREEN'.
  3. Final Answer:

    'GREEN' -> Option C
  4. Quick Check:

    timer=12 <15 -> light='GREEN' [OK]
Hint: Check conditions in order, timer 12 fits second condition [OK]
Common Mistakes:
  • Choosing 'RED' because timer is close to 10
  • Choosing 'YELLOW' by ignoring conditions order
  • Thinking code causes error
4. This PLC code snippet is intended to cycle traffic lights but does not work correctly:
state = 'RED'
if state == 'RED':
  state = 'GREEN'
elif state == 'GREEN':
  state = 'YELLOW'
elif state == 'YELLOW':
  state = 'RED'

What is the main problem?
medium
A. The state variable is misspelled
B. The state changes only once because conditions are checked once
C. The code uses wrong comparison operators
D. The code lacks a timer to delay state changes

Solution

  1. Step 1: Analyze state change logic

    The code changes state immediately but only once; no loop or repeated check.
  2. Step 2: Identify missing repeated execution

    Without looping or timer, state changes once and stops, so no cycling happens.
  3. Final Answer:

    The state changes only once because conditions are checked once -> Option B
  4. Quick Check:

    Single run code = no cycling [OK]
Hint: State must update repeatedly, not just once [OK]
Common Mistakes:
  • Thinking variable name is wrong
  • Believing comparison operators are incorrect
  • Ignoring need for timing or looping
5. You want to create a PLC program that cycles traffic lights with these timings: red for 10 seconds, green for 15 seconds, yellow for 3 seconds. Which approach best implements this sequence?
hard
A. Use separate timers for each light but no state variable
B. Use a single timer that counts total time without resetting
C. Use random delays between light changes
D. Use a state machine with a timer that resets after each state duration

Solution

  1. Step 1: Understand timing requirements

    Each light needs a specific duration before switching to the next.
  2. Step 2: Choose best control method

    A state machine with a timer that resets after each state's time allows precise control and cycling.
  3. Final Answer:

    Use a state machine with a timer that resets after each state duration -> Option D
  4. Quick Check:

    State machine + timer reset = correct timing control [OK]
Hint: Reset timer each state for exact light durations [OK]
Common Mistakes:
  • Using one timer without reset causes wrong timing
  • Random delays break predictable sequence
  • No state variable causes confusion in sequence
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