Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Automatic vs Manual Mode Switching in SCADA Systems
📖 Scenario: You are working with a SCADA (Supervisory Control and Data Acquisition) system that controls a water pump station. The system can operate in two modes: automatic mode, where the pump runs based on sensor readings, and manual mode, where an operator controls the pump directly.To ensure safety and flexibility, the system must switch between these modes correctly.
🎯 Goal: Build a simple program that stores the current mode of the pump station, allows switching between automatic and manual modes, and prints the current mode.
📋 What You'll Learn
Create a variable to store the current mode with the exact name current_mode.
Create a variable called allowed_modes that holds the list of modes: 'automatic' and 'manual'.
Write a function called switch_mode that takes a mode name and changes current_mode only if the mode is in allowed_modes.
Print the current mode using print.
💡 Why This Matters
🌍 Real World
SCADA systems control critical infrastructure like water pumps, power grids, and factories. Correct mode switching ensures safety and proper operation.
💼 Career
Understanding mode switching logic is essential for DevOps engineers working with industrial automation and monitoring systems.
Progress0 / 4 steps
1
Set the initial mode
Create a variable called current_mode and set it to the string 'manual'.
SCADA systems
Hint
Use a simple assignment to set current_mode to 'manual'.
2
Define allowed modes
Create a list called allowed_modes containing the strings 'automatic' and 'manual'.
SCADA systems
Hint
Use square brackets to create a list with the two mode strings.
3
Create the mode switching function
Write a function called switch_mode that takes a parameter mode. Inside the function, check if mode is in allowed_modes. If yes, update the global variable current_mode to mode. Use the global keyword to modify current_mode inside the function.
SCADA systems
Hint
Remember to declare current_mode as global inside the function to modify it.
4
Switch mode and print the result
Call the function switch_mode with the argument 'automatic'. Then print the value of current_mode using print(current_mode).
SCADA systems
Hint
Call switch_mode('automatic') and then print current_mode.
Practice
(1/5)
1. What is the main difference between automatic and manual mode in a SCADA system?
easy
A. Both modes require human control but differ in speed.
B. Manual mode runs the system by itself, automatic mode requires human control.
C. Automatic mode runs the system by itself, manual mode requires human control.
D. Automatic mode is only for emergencies, manual mode is for normal operation.
Solution
Step 1: Understand automatic mode
Automatic mode means the system operates on its own without human intervention.
Step 2: Understand manual mode
Manual mode means a person directly controls the system actions.
Final Answer:
Automatic mode runs the system by itself, manual mode requires human control. -> Option C
Quick Check:
Automatic = self-run, Manual = human control [OK]
Hint: Automatic = system runs itself; manual = human controls [OK]
Common Mistakes:
Confusing which mode requires human control
Thinking both modes run automatically
Assuming manual mode is only for emergencies
2. Which of the following is the correct syntax to switch a SCADA system to manual mode using a command?
easy
A. mode = manual
B. manual_mode = true
C. switchToManual()
D. set_mode('manual')
Solution
Step 1: Identify correct function call syntax
The command to switch mode should be a function call with mode as a string argument.
Step 2: Compare options
Only set_mode('manual') correctly uses a function call with a string parameter.
Final Answer:
set_mode('manual') -> Option D
Quick Check:
Function call with string argument = set_mode('manual') [OK]
Hint: Look for function call with mode as string [OK]
Common Mistakes:
Using assignment without quotes
Using undefined function names
Missing parentheses for function calls
3. Given this code snippet controlling mode switching:
mode = 'automatic'
if emergency_detected:
mode = 'manual'
print(mode)
What will be printed if emergency_detected is True?
medium
A. manual
B. automatic
C. error
D. None
Solution
Step 1: Check initial mode value
Initially, mode is set to 'automatic'.
Step 2: Evaluate condition with emergency_detected = True
The if condition is true, so mode is changed to 'manual'.
Step 3: Print the mode
The printed value is 'manual' because of the condition.
Final Answer:
manual -> Option A
Quick Check:
Condition true switches mode to manual [OK]
Hint: If emergency is true, mode switches to manual [OK]
Common Mistakes:
Ignoring the if condition
Assuming mode stays automatic
Expecting an error instead of output
4. You have this code snippet:
mode = 'automatic'
if emergency_detected = True:
mode = 'manual'
What is the error in this code?
medium
A. Using assignment '=' instead of comparison '==' in if condition
B. Missing quotes around 'manual'
C. Variable 'mode' is not defined
D. No error, code runs fine
Solution
Step 1: Identify the if condition syntax
The condition uses '=' which is assignment, not comparison.
Step 2: Correct syntax for comparison
It should use '==' to compare values in the if statement.
Final Answer:
Using assignment '=' instead of comparison '==' in if condition -> Option A
Quick Check:
Use '==' for comparison in if conditions [OK]
Hint: Use '==' for comparison, '=' is assignment [OK]
Common Mistakes:
Confusing '=' and '==' in conditions
Assuming missing quotes cause error here
Thinking variable is undefined
5. In a SCADA system, you want to switch from automatic to manual mode only if the system is stable and an operator requests it. Which logic correctly implements this?
hard
A. if system_stable:
mode = 'manual'
else:
mode = 'automatic'
B. if system_stable and operator_request:
mode = 'manual'
else:
mode = 'automatic'
C. if not system_stable and operator_request:
mode = 'manual'
else:
mode = 'automatic'
D. if system_stable or operator_request:
mode = 'manual'
else:
mode = 'automatic'
Solution
Step 1: Understand the condition requirements
Manual mode should activate only if system is stable AND operator requests it.
Step 2: Analyze each option's logic
if system_stable and operator_request:
mode = 'manual'
else:
mode = 'automatic' uses 'and' which matches the requirement; others use 'or' or incomplete conditions.
Final Answer:
if system_stable and operator_request:
mode = 'manual'
else:
mode = 'automatic' -> Option B
Quick Check:
Both conditions must be true to switch to manual [OK]
Hint: Use 'and' to require both conditions true [OK]