Bird
Raised Fist0
SCADA systemsdevops~6 mins

Polling vs report-by-exception in SCADA systems - Key Differences Explained

Choose your learning style10 modes available
Introduction
Imagine trying to keep track of many machines in a factory. You need to know when something changes or goes wrong, but checking every machine all the time can be slow and waste resources. This is where two ways of getting updates come in: polling and report-by-exception.
Explanation
Polling
Polling means the control system regularly asks each device for its current status, even if nothing has changed. This happens at fixed time intervals, like every few seconds. It ensures the system always has up-to-date information but can create a lot of unnecessary communication if changes are rare.
Polling constantly checks devices at set times, whether or not there is new information.
Report-by-exception
Report-by-exception means devices only send updates when something important changes, like a sensor reading crossing a threshold. Instead of asking repeatedly, the system waits for these special messages. This reduces communication and speeds up response to real changes but depends on devices to detect and report exceptions correctly.
Report-by-exception sends updates only when significant changes happen, reducing unnecessary checks.
Real World Analogy

Think of a teacher who either calls on every student every minute to ask if they have questions (polling), or waits for students to raise their hands only when they need help (report-by-exception). The first way uses more time but guarantees no question is missed; the second saves time but relies on students to speak up.

Polling → Teacher asking every student regularly if they have questions
Report-by-exception → Students raising their hands only when they need help
Diagram
Diagram
┌───────────────┐       ┌───────────────┐
│ Control System│──────▶│ Device 1      │
│ (Polls every │       │ (Responds with │
│  fixed time) │       │  current data) │
└───────────────┘       └───────────────┘
       │                      ▲
       │                      │
       │                      │
       │                      │
       │                      │
       ▼                      │
┌───────────────┐             │
│ Control System│◀────────────┘
│ (Waits for    │
│  exception    │
│  reports)     │
└───────────────┘
       ▲
       │
       │
┌───────────────┐
│ Device 2      │
│ (Sends update │
│  only on      │
│  change)      │
└───────────────┘
Diagram showing control system polling devices regularly versus waiting for devices to send updates only on changes.
Key Facts
Polling → A method where the control system regularly requests data from devices at fixed intervals.
Report-by-exception → A method where devices send data only when a significant change or event occurs.
Communication overhead → The amount of data exchanged between devices and control system, which is higher in polling.
Responsiveness → How quickly the system learns about changes; report-by-exception can be faster for important events.
Common Confusions
Polling always provides faster updates than report-by-exception.
Polling always provides faster updates than report-by-exception. Report-by-exception can provide faster updates for important changes because devices send updates immediately when events occur, while polling waits for the next scheduled check.
Report-by-exception means the control system never asks for data.
Report-by-exception means the control system never asks for data. The control system may still poll occasionally to verify status, but report-by-exception reduces the need for constant polling.
Summary
Polling means regularly asking devices for data, which ensures updates but can waste resources.
Report-by-exception means devices send updates only when important changes happen, saving communication.
Choosing between polling and report-by-exception depends on the system's need for timely updates and communication limits.

Practice

(1/5)
1. What is the main difference between polling and report-by-exception in SCADA systems?
easy
A. Polling sends data only on changes; report-by-exception requests data regularly.
B. Polling and report-by-exception both send data at fixed intervals.
C. Polling requests data regularly; report-by-exception sends data only on changes.
D. Polling uses less network bandwidth than report-by-exception.

Solution

  1. Step 1: Understand polling behavior

    Polling means the system asks for data at fixed times, regardless of changes.
  2. Step 2: Understand report-by-exception behavior

    Report-by-exception sends data only when there is a change or event to report.
  3. Final Answer:

    Polling requests data regularly; report-by-exception sends data only on changes. -> Option C
  4. Quick Check:

    Polling = regular requests, Report-by-exception = event-driven [OK]
Hint: Polling = ask often; report-by-exception = send only on change [OK]
Common Mistakes:
  • Confusing which method sends data regularly
  • Thinking both methods behave the same
  • Assuming report-by-exception always uses more bandwidth
2. Which of the following is the correct syntax to configure polling interval in a SCADA system configuration file?
easy
A. polling-interval = 5 seconds
B. polling_interval = '5s' # Poll every 5 seconds
C. pollingInterval: 5sec
D. polling interval = 5s

Solution

  1. Step 1: Identify correct syntax format

    Configuration files often use key = 'value' format with quotes for time strings.
  2. Step 2: Check each option for syntax correctness

    polling_interval = '5s' # Poll every 5 seconds uses correct key, equals sign, and quotes with valid time unit '5s'. Others have syntax errors or invalid formats.
  3. Final Answer:

    polling_interval = '5s' # Poll every 5 seconds -> Option B
  4. Quick Check:

    Correct config syntax uses key = 'value' [OK]
Hint: Config keys use underscores and quotes for values [OK]
Common Mistakes:
  • Using spaces instead of underscores in keys
  • Missing quotes around time values
  • Using colons instead of equals sign
3. Given this SCADA polling setup code snippet:
polling_interval = 10  # seconds
last_value = 100
current_value = 100
if current_value != last_value:
    send_report()
else:
    wait(polling_interval)

What will happen when this code runs?
medium
A. The code causes an error due to missing function definitions.
B. send_report() is never called because values are equal.
C. send_report() is called every 10 seconds regardless of value changes.
D. send_report() is called only if current_value changes from last_value.

Solution

  1. Step 1: Analyze the condition

    The code compares current_value and last_value; if different, it calls send_report().
  2. Step 2: Check values given

    Both values are 100, so condition is false; else branch waits for polling_interval.
  3. Final Answer:

    send_report() is called only if current_value changes from last_value. -> Option D
  4. Quick Check:

    Report sent only on value change [OK]
Hint: send_report() triggers only on value difference [OK]
Common Mistakes:
  • Assuming send_report() runs every time
  • Ignoring the if condition logic
  • Thinking wait() causes an error
4. You have a SCADA system using report-by-exception, but it never sends updates even when values change. What is the most likely cause?
medium
A. Exception reporting is disabled or misconfigured.
B. The system is polling too frequently.
C. Network bandwidth is too high.
D. Polling interval is set too low.

Solution

  1. Step 1: Understand report-by-exception behavior

    It sends data only when exceptions or changes occur and reporting is enabled.
  2. Step 2: Identify cause of no updates

    If no updates are sent despite changes, reporting is likely disabled or misconfigured.
  3. Final Answer:

    Exception reporting is disabled or misconfigured. -> Option A
  4. Quick Check:

    Disabled reporting stops updates [OK]
Hint: Check if exception reporting is enabled first [OK]
Common Mistakes:
  • Confusing polling interval with report-by-exception
  • Assuming high bandwidth stops updates
  • Thinking frequent polling affects exception reporting
5. A SCADA system monitors temperature sensors. To reduce network load but ensure critical alerts are sent immediately, which approach is best?
hard
A. Use report-by-exception for normal data and polling for critical alerts.
B. Use report-by-exception only, ignoring polling.
C. Use polling only with a very short interval.
D. Use polling with a long interval and no exception reporting.

Solution

  1. Step 1: Analyze network load and alert needs

    Polling often increases network load; report-by-exception reduces it by sending only changes.
  2. Step 2: Combine methods for best result

    Using report-by-exception for normal data saves bandwidth, while polling ensures critical alerts are checked regularly.
  3. Final Answer:

    Use report-by-exception for normal data and polling for critical alerts. -> Option A
  4. Quick Check:

    Combine polling and exception reporting for efficiency [OK]
Hint: Mix polling and exception reporting for best balance [OK]
Common Mistakes:
  • Using polling only causes high network load
  • Ignoring critical alert needs
  • Relying solely on report-by-exception may miss urgent data
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