Bird
Raised Fist0
PLC Programmingscripting~10 mins

PLC-to-SCADA communication in PLC Programming - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - PLC-to-SCADA communication
PLC collects data
↓
PLC formats data
↓
PLC sends data via protocol
↓
SCADA receives data
↓
SCADA processes and displays data
↓
Operator monitors and controls
↓
SCADA sends commands back to PLC
↓
PLC receives commands and acts
↩Back to PLC collects data
The PLC collects and formats data, sends it to SCADA, which processes and displays it. Operators can send commands back, which PLC receives and acts on.
Execution Sample
PLC Programming
PLC_Data := ReadSensors();
SendToSCADA(PLC_Data);
SCADA_Data := ReceiveFromPLC();
Display(SCADA_Data);
Command := GetOperatorCommand();
SendToPLC(Command);
This code shows PLC reading sensors, sending data to SCADA, SCADA displaying it, and sending operator commands back to PLC.
Execution Table
StepActionData/CommandSourceDestinationResult
1Read sensorsSensor valuesPLCPLC memoryData stored in PLC
2Format and send dataSensor valuesPLCSCADAData sent via protocol
3Receive dataSensor valuesSCADASCADA memoryData received and stored
4Display dataSensor valuesSCADA memoryOperator screenData shown to operator
5Get operator commandStart pumpOperatorSCADA memoryCommand ready to send
6Send commandStart pumpSCADAPLCCommand sent to PLC
7Receive commandStart pumpPLCPLC control logicPLC acts on command
8PLC actsPump startedPLC control logicPumpPump turns on
9Loop backNew sensor dataPumpPLCCycle repeats
💡 Process runs continuously for real-time monitoring and control
Variable Tracker
VariableStartAfter Step 1After Step 3After Step 5After Step 7Final
PLC_Dataemptysensor values readunchangedunchangedunchangedupdated each cycle
SCADA_Dataemptyemptysensor values receivedunchangedunchangedupdated each cycle
Commandemptyemptyemptyoperator command readycommand receivedupdated each cycle
Key Moments - 3 Insights
Why does the PLC send data to SCADA instead of SCADA reading directly from sensors?
PLC collects and formats sensor data in real-time and sends it to SCADA. SCADA depends on PLC for accurate, processed data (see execution_table steps 1 and 2).
How does SCADA send commands back to PLC and how does PLC know what to do?
SCADA sends operator commands via the communication protocol. PLC receives and interprets these commands in its control logic (see execution_table steps 6 and 7).
Why is this communication loop continuous?
Continuous data exchange allows real-time monitoring and control, so PLC keeps sending data and receiving commands repeatedly (see execution_table step 9).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what data does the PLC send to SCADA at step 2?
ASensor values
BOperator commands
CPump status
DSCADA display data
💡 Hint
Check the 'Data/Command' column at step 2 in the execution_table
At which step does SCADA send commands back to the PLC?
AStep 4
BStep 3
CStep 6
DStep 8
💡 Hint
Look for 'Send command' action in the execution_table
If the operator changes the command, which variable updates in the variable_tracker?
ASCADA_Data
BCommand
CPLC_Data
DPump status
💡 Hint
See the 'Command' row in variable_tracker after step 5
Concept Snapshot
PLC-to-SCADA communication:
- PLC reads sensors and formats data
- PLC sends data to SCADA via protocol
- SCADA receives and displays data
- Operator sends commands via SCADA
- SCADA sends commands to PLC
- PLC receives commands and acts
- Loop repeats for real-time control
Full Transcript
PLC-to-SCADA communication is a continuous loop where the PLC reads sensor data, formats it, and sends it to the SCADA system. SCADA receives this data and displays it to the operator. The operator can send commands back through SCADA, which sends them to the PLC. The PLC receives these commands and acts accordingly, such as starting a pump. This cycle repeats continuously to allow real-time monitoring and control of industrial processes.

Practice

(1/5)
1. What is the main purpose of PLC-to-SCADA communication?
easy
A. To program the PLC hardware directly
B. To replace the PLC with a SCADA system
C. To allow remote control and monitoring of machines
D. To connect two PLCs without a SCADA system

Solution

  1. Step 1: Understand the role of PLC and SCADA

    PLC controls machines locally, SCADA monitors and controls remotely.
  2. Step 2: Identify communication purpose

    Communication enables SCADA to read data and send commands to PLC for remote control.
  3. Final Answer:

    To allow remote control and monitoring of machines -> Option C
  4. Quick Check:

    PLC-to-SCADA communication = remote control and monitoring [OK]
Hint: Think: Who controls and who monitors remotely? [OK]
Common Mistakes:
  • Confusing PLC programming with communication
  • Thinking SCADA replaces PLC
  • Assuming PLCs communicate without SCADA
2. Which of the following is a common protocol used for PLC-to-SCADA communication?
easy
A. Modbus
B. FTP
C. HTTP
D. SMTP

Solution

  1. Step 1: Recall common industrial communication protocols

    Modbus and OPC UA are widely used for PLC-to-SCADA data exchange.
  2. Step 2: Identify correct protocol from options

    Modbus is a standard protocol for PLC communication; HTTP, FTP, SMTP are not typical for this use.
  3. Final Answer:

    Modbus -> Option A
  4. Quick Check:

    Industrial protocol for PLC-SCADA = Modbus [OK]
Hint: Industrial control uses Modbus, not web or email protocols [OK]
Common Mistakes:
  • Choosing HTTP thinking it's for all network communication
  • Confusing FTP or SMTP with control protocols
  • Not knowing Modbus is designed for industrial use
3. Given this PLC script snippet reading a SCADA command:
IF SCADA_Command = 1 THEN
  Motor_Start := TRUE;
ELSE
  Motor_Start := FALSE;
END_IF;

What will be the value of Motor_Start if SCADA_Command is 0?
medium
A. Error
B. TRUE
C. 1
D. FALSE

Solution

  1. Step 1: Analyze the IF condition

    The condition checks if SCADA_Command equals 1; if true, Motor_Start is TRUE.
  2. Step 2: Evaluate with SCADA_Command = 0

    Since 0 is not equal to 1, ELSE branch runs, setting Motor_Start to FALSE.
  3. Final Answer:

    FALSE -> Option D
  4. Quick Check:

    SCADA_Command=0 means Motor_Start=FALSE [OK]
Hint: IF equals 1? No? Then FALSE [OK]
Common Mistakes:
  • Assuming Motor_Start stays TRUE by default
  • Confusing numeric 0 with TRUE
  • Expecting error due to zero value
4. Identify the error in this PLC-to-SCADA communication snippet:
IF SCADA_Status = TRUE THEN
  Alarm := TRUE
ELSE
  Alarm := FALSE;
END_IF;
medium
A. Missing semicolon after Alarm := TRUE
B. Incorrect use of ELSE statement
C. SCADA_Status should be compared to 1, not TRUE
D. END_IF is not needed

Solution

  1. Step 1: Check statement syntax

    Each assignment must end with a semicolon in PLC languages.
  2. Step 2: Locate missing semicolon

    Alarm := TRUE line lacks a semicolon at the end, causing syntax error.
  3. Final Answer:

    Missing semicolon after Alarm := TRUE -> Option A
  4. Quick Check:

    Semicolon missing after assignment = syntax error [OK]
Hint: Every assignment needs a semicolon [OK]
Common Mistakes:
  • Ignoring missing semicolon errors
  • Thinking ELSE syntax is wrong
  • Confusing boolean TRUE with numeric 1
5. You want to send a temperature value from PLC to SCADA every 5 seconds using Modbus. Which approach is best?
hard
A. Send temperature as a string message over HTTP every 5 seconds
B. Write temperature to a Modbus register and update it every 5 seconds
C. Use SCADA to poll the PLC once and never update
D. Send temperature only when it changes, ignoring timing

Solution

  1. Step 1: Understand Modbus data exchange

    Modbus uses registers to hold data; PLC writes values, SCADA reads them.
  2. Step 2: Choose update method for regular timing

    Writing temperature to a register and updating every 5 seconds ensures SCADA gets fresh data regularly.
  3. Final Answer:

    Write temperature to a Modbus register and update it every 5 seconds -> Option B
  4. Quick Check:

    Regular register update = reliable Modbus communication [OK]
Hint: Use Modbus registers for periodic data updates [OK]
Common Mistakes:
  • Using HTTP which is not standard for PLC-Modbus
  • Polling only once misses updates
  • Ignoring timing causes stale 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