Bird
Raised Fist0
SCADA systemsdevops~10 mins

Polling vs report-by-exception in SCADA systems - Visual Side-by-Side Comparison

Choose your learning style10 modes available
Process Flow - Polling vs report-by-exception
Start
↓
Polling?
Yes→Send request to device
↓
Device responds with data
↓
Report-by-exception?
Yes→Device sends data only on change
↓
SCADA receives data
↓
End
Polling repeatedly asks devices for data; report-by-exception sends data only when changes happen.
Execution Sample
SCADA systems
1. Polling loop:
   send_request()
   wait_response()
   process_data()
2. Report-by-exception:
   device_detects_change()
   send_update()
   process_data()
Shows how polling requests data regularly, while report-by-exception sends data only on changes.
Process Table
StepMethodActionData SentSCADA ReceivesNext Step
1PollingSend request to deviceRequestNoWait for response
2PollingDevice responds with current dataDataYesProcess data
3PollingProcess dataNoneYesSend next request
4PollingSend next requestRequestNoRepeat steps 2-4
5Report-by-exceptionDevice monitors dataNoneNoWait for change
6Report-by-exceptionData changes detectedData updateYesProcess data
7Report-by-exceptionProcess dataNoneYesWait for next change
8Report-by-exceptionNo data changeNoneNoWait continues
9PollingCondition: polling continuesN/AN/ALoop or stop
10Report-by-exceptionCondition: no change, no sendN/AN/AWait or stop
💡 Polling stops when manual stop or error; report-by-exception waits indefinitely for changes.
Status Tracker
VariableStartAfter Step 2After Step 3After Step 6After Step 7Final
Request SentNoYesYesNoNoDepends on loop
Data ReceivedNoYesYesYesYesDepends on changes
Data ChangedNoNoNoYesNoDepends on device
Waiting StateYesNoNoYesYesDepends on method
Key Moments - 3 Insights
Why does polling send requests even if data hasn't changed?
Polling always sends requests to get current data, shown in execution_table rows 1 and 4, regardless of data changes.
How does report-by-exception reduce network traffic?
Report-by-exception sends data only when changes occur, as seen in rows 6 and 8, avoiding unnecessary data transfer.
What happens if no data changes in report-by-exception?
The device waits silently without sending data, shown in row 8, reducing load compared to polling.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, at which step does polling send a request to the device?
AStep 2
BStep 6
CStep 1
DStep 5
💡 Hint
Check the 'Action' column for 'Send request to device' in polling rows.
According to variable_tracker, after which step does 'Data Changed' become Yes?
AAfter Step 2
BAfter Step 6
CAfter Step 3
DAfter Step 7
💡 Hint
Look at the 'Data Changed' row and see when it switches to Yes.
If the device never detects a change, how does report-by-exception behave according to execution_table?
ASends no data and waits silently
BSends data regularly like polling
CSends data only once at start
DSends error messages
💡 Hint
Refer to row 8 where 'No data change' leads to no data sent.
Concept Snapshot
Polling repeatedly asks devices for data at set intervals.
Report-by-exception sends data only when changes occur.
Polling uses more network traffic; report-by-exception is efficient.
Polling: SCADA initiates communication.
Report-by-exception: device initiates on change.
Full Transcript
Polling and report-by-exception are two ways SCADA systems get data from devices. Polling means SCADA asks devices regularly for data, even if nothing changed. Report-by-exception means devices send data only when something changes. Polling can cause more network traffic because it sends requests and responses all the time. Report-by-exception reduces traffic by sending updates only on changes. In polling, SCADA controls when data is requested. In report-by-exception, the device controls when to send data. This makes report-by-exception more efficient but requires devices to detect changes. Understanding these methods helps optimize SCADA communication.

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