📖 Scenario: You are working in a factory where two PLCs (Programmable Logic Controllers) need to share data to coordinate their tasks. You will create a simple program to send and receive data between these two PLCs using basic communication tags.
🎯 Goal: Build a PLC program that sets up communication variables, configures a communication status flag, writes data to a send tag, reads data from a receive tag, and finally outputs the received data.
📋 What You'll Learn
Create communication data tags with exact names and values
Add a communication status flag variable
Write data to the send tag using a simple assignment
Read data from the receive tag using a simple assignment
Print or display the received data value
💡 Why This Matters
🌍 Real World
PLC-to-PLC communication is essential in factories where multiple controllers coordinate tasks like assembly lines, packaging, and safety monitoring.
💼 Career
Understanding basic PLC communication helps automation technicians and engineers design reliable control systems that keep industrial processes running smoothly.
Progress0 / 4 steps
1
Create communication data tags
Create two integer variables called send_data and receive_data. Initialize send_data with the value 100 and receive_data with the value 0.
PLC Programming
Hint
Use simple variable assignments to create the tags.
2
Add communication status flag
Create a boolean variable called comm_status and set it to False to represent the communication status.
PLC Programming
Hint
This flag will help track if communication is active.
3
Write and read communication data
Assign the value send_data to a variable called plc_send_tag to simulate sending data. Then assign the value plc_receive_tag to receive_data to simulate receiving data. Assume plc_receive_tag has the value 200.
PLC Programming
Hint
Use simple assignments to simulate data transfer.
4
Output the received data
Print the value of receive_data to display the data received from the other PLC.
PLC Programming
Hint
Use the print function to show the received data.
Practice
(1/5)
1. What is the main purpose of PLC-to-PLC communication?
easy
A. To share data between controllers for coordinated control
B. To program the PLC using a computer
C. To power the PLC devices
D. To store data permanently in the PLC
Solution
Step 1: Understand PLC communication basics
PLC-to-PLC communication allows multiple controllers to exchange data and work together.
Step 2: Identify the main goal
The main goal is to share data for coordinated control, not programming or power supply.
Final Answer:
To share data between controllers for coordinated control -> Option A
Quick Check:
PLC communication = data sharing [OK]
Hint: PLC communication means controllers talk to share data [OK]
Common Mistakes:
Confusing communication with programming
Thinking PLC communication powers devices
Assuming it stores data permanently
2. Which of the following is the correct syntax to define a Modbus TCP client in a PLC script?
easy
A. modbusClient = ModbusTCPClient('192.168.1.10')
B. modbusClient = TCPModbus('192.168.1.10', 502)
C. modbusClient = ModbusTCP('192.168.1.10', 502)
D. modbusClient = Modbus('192.168.1.10', 80)
Solution
Step 1: Identify correct class and parameters
The standard syntax uses ModbusTCP with IP and port 502 for Modbus TCP.
Step 2: Check options for correct syntax
modbusClient = ModbusTCP('192.168.1.10', 502) matches the correct class name and port number for Modbus TCP client.
Final Answer:
modbusClient = ModbusTCP('192.168.1.10', 502) -> Option C
Quick Check:
ModbusTCP + port 502 = correct client syntax [OK]
Hint: Modbus TCP uses port 502 and class ModbusTCP [OK]
Common Mistakes:
Using wrong class names like TCPModbus
Using incorrect port numbers
Omitting the port parameter
3. Given the following PLC script snippet for sending a signal:
modbusClient.write_coil(1, True)
status = modbusClient.read_coil(1)
What will be the value of status after execution?
medium
A. False
B. Error
C. 0
D. True
Solution
Step 1: Understand write_coil and read_coil functions
write_coil(1, True) sets coil 1 to True; read_coil(1) reads its current value.
Step 2: Trace the code execution
After writing True to coil 1, reading coil 1 returns True.
Final Answer:
True -> Option D
Quick Check:
Write True then read coil = True [OK]
Hint: Write True, then read coil returns True [OK]
Common Mistakes:
Assuming read_coil returns False immediately
Confusing coil values with integers
Expecting an error without connection
4. Identify the error in this PLC-to-PLC communication code snippet:
A. Missing port number in ModbusTCP initialization
B. write_register function does not exist
C. IP address format is incorrect
D. Register address 10 is invalid
Solution
Step 1: Check ModbusTCP initialization parameters
ModbusTCP requires IP address and port number (usually 502).
Step 2: Identify missing port parameter
The code only provides IP, missing port number causes connection error.
Final Answer:
Missing port number in ModbusTCP initialization -> Option A
Quick Check:
ModbusTCP needs IP and port [OK]
Hint: Always include port number when creating ModbusTCP client [OK]
Common Mistakes:
Forgetting the port number argument
Assuming default port without specifying
Misreading IP address format
5. You want to synchronize two PLCs so that PLC A sends a temperature value to PLC B every second using Modbus TCP. Which approach best ensures reliable data transfer?
hard
A. PLC A sends temperature as a coil value; PLC B reads it once at startup
B. PLC A writes the temperature to a holding register; PLC B reads it every second with error checking
C. PLC B writes a command to PLC A; PLC A sends temperature only on command
D. PLC A broadcasts temperature on UDP; PLC B listens without confirmation
Solution
Step 1: Identify reliable data transfer method
Using holding registers with regular writes and reads plus error checking is reliable.
Step 2: Evaluate other options
Coils are for binary signals, not values; reading once or UDP without confirmation is unreliable.
Final Answer:
PLC A writes the temperature to a holding register; PLC B reads it every second with error checking -> Option B
Quick Check:
Regular register write/read with error check = reliable [OK]
Hint: Use holding registers and error checks for reliable data [OK]
Common Mistakes:
Using coils for analog values
Reading data only once instead of periodically
Using UDP without confirmation for critical data
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.