📖 Scenario: You are working with a simple PLC (Programmable Logic Controller) system that controls a machine. The PLC works in a cycle: it first reads the inputs, then runs the program logic, and finally updates the outputs.Imagine the inputs are sensors that tell if a button is pressed or not. The program logic decides if a motor should run based on the button state. The outputs control the motor.
🎯 Goal: Build a simple PLC scan cycle simulation in code. You will create the input data, set a threshold for the motor to run, write the logic to check inputs and decide outputs, and finally display the output state.
📋 What You'll Learn
Create a dictionary called inputs with keys 'button1' and 'button2' and boolean values
Create a variable called motor_threshold set to 1
Write code to count how many buttons are pressed and store in pressed_count
Create a dictionary called outputs with key 'motor' set to True if pressed_count is greater or equal to motor_threshold, else False
Print the outputs dictionary
💡 Why This Matters
🌍 Real World
PLC scan cycles are used in factories and machines to continuously monitor sensors and control devices safely and reliably.
💼 Career
Understanding PLC scan cycles is essential for automation technicians and engineers who program and maintain industrial control systems.
Progress0 / 4 steps
1
Create the input dictionary
Create a dictionary called inputs with these exact entries: 'button1': True and 'button2': False.
PLC Programming
Hint
Use curly braces to create a dictionary. The keys are 'button1' and 'button2'. The values are True and False exactly.
2
Set the motor threshold
Create a variable called motor_threshold and set it to 1.
PLC Programming
Hint
Just assign the number 1 to the variable motor_threshold.
3
Count pressed buttons
Write code to count how many buttons are pressed (true) in inputs and store the count in a variable called pressed_count. Use a for loop with variables button and state to iterate over inputs.items().
PLC Programming
Hint
Start pressed_count at 0. Loop over inputs.items(). If state is true, add 1 to pressed_count.
4
Set outputs and print
Create a dictionary called outputs with key 'motor'. Set its value to True if pressed_count is greater than or equal to motor_threshold, otherwise False. Then print the outputs dictionary.
PLC Programming
Hint
Use a comparison to set outputs['motor']. Then print outputs.
Practice
(1/5)
1. What is the correct order of the PLC scan cycle steps?
easy
A. Output update, input scan, program execution
B. Input scan, program execution, output update
C. Program execution, input scan, output update
D. Program execution, output update, input scan
Solution
Step 1: Understand the PLC scan cycle process
The PLC first reads all inputs to get the current state of sensors and switches.
Step 2: Follow the sequence of operations
After reading inputs, the PLC runs the user program logic, then updates outputs accordingly.
Final Answer:
Input scan, program execution, output update -> Option B
Quick Check:
Scan cycle order = Input, Program, Output [OK]
Hint: Remember: Inputs first, then logic, then outputs [OK]
Common Mistakes:
Mixing up the order of program execution and input scan
Thinking outputs update before program runs
Assuming outputs update before inputs are scanned
2. Which of the following is the correct syntax to represent the PLC scan cycle steps in order?
easy
A. InputScan(); ProgramExecution(); OutputUpdate();
B. OutputUpdate(); InputScan(); ProgramExecution();
C. ProgramExecution(); OutputUpdate(); InputScan();
D. OutputUpdate(); ProgramExecution(); InputScan();
Solution
Step 1: Identify the correct function call order
The PLC scan cycle functions must be called in the order: InputScan, ProgramExecution, then OutputUpdate.
Step 2: Match the syntax with the correct order
InputScan(); ProgramExecution(); OutputUpdate(); correctly shows the functions in the right sequence with proper syntax.
Final Answer:
<code>InputScan(); ProgramExecution(); OutputUpdate();</code> -> Option A
Quick Check:
Function calls order = InputScan, ProgramExecution, OutputUpdate [OK]
3. Given the following PLC scan cycle pseudo-code, what will be the output state after one full scan if input sensor is ON?
InputScan(): sensor = ON
ProgramExecution(): if sensor == ON then output = ON else output = OFF
OutputUpdate(): set output device to output
medium
A. Output device state will not change
B. Output device will be OFF
C. Output device will be ON
D. Output device will toggle randomly
Solution
Step 1: Analyze input scan step
The sensor input is read as ON during InputScan.
Step 2: Evaluate program execution logic
Since sensor == ON, the program sets output = ON.
Step 3: Understand output update effect
OutputUpdate sets the output device state to ON based on program logic.
Final Answer:
Output device will be ON -> Option C
Quick Check:
Sensor ON leads to output ON [OK]
Hint: Input ON means output ON after program runs [OK]
Common Mistakes:
Confusing input and output states
Ignoring program logic conditions
Assuming output updates before program execution
4. A PLC program is not updating outputs correctly. The code snippet is:
OutputUpdate()
InputScan()
ProgramExecution()
What is the main problem here?
medium
A. OutputUpdate is called before inputs are scanned and program runs
B. InputScan should be last in the cycle
C. ProgramExecution should be before OutputUpdate only
D. No problem, this order is correct
Solution
Step 1: Review the correct PLC scan cycle order
The correct order is InputScan, ProgramExecution, then OutputUpdate.
Step 2: Identify the error in the given code
OutputUpdate is called first, before inputs are scanned and program logic runs, causing incorrect output updates.
Final Answer:
OutputUpdate is called before inputs are scanned and program runs -> Option A
Quick Check:
OutputUpdate must be last in scan cycle [OK]
Hint: Output update must come after input scan and program execution [OK]
Common Mistakes:
Calling OutputUpdate too early
Swapping InputScan and ProgramExecution order
Assuming any order works for scan cycle
5. You want to ensure a safety output turns OFF immediately when an emergency stop input is pressed. Which scan cycle step should you prioritize to minimize delay?
hard
A. None, PLC scan cycle cannot be changed
B. Program execution to run safety logic faster
C. Output update to apply changes immediately
D. Input scan to detect emergency stop as early as possible
Solution
Step 1: Understand the scan cycle timing
The input scan step reads all inputs at the start of the cycle, so detecting emergency stop early is critical.
Step 2: Prioritize input scan for safety
By ensuring input scan happens promptly, the PLC can detect emergency stop quickly and then run program logic to turn off outputs.
Step 3: Output update applies changes but depends on earlier steps
Output update applies the result but cannot act before inputs are scanned and logic runs.
Final Answer:
Input scan to detect emergency stop as early as possible -> Option D
Quick Check:
Early input scan = faster emergency response [OK]
Hint: Detect emergency input ASAP in input scan step [OK]