This project implements an automated conveyor sorting system using OpenPLC Editor v4 and Ladder Logic (IEC 61131-3).
The system controls a conveyor belt, detects incoming boxes, identifies tall boxes using a height sensor, and automatically activates a reject mechanism after a configurable delay using a TON timer. The design also incorporates industrial safety features such as Start/Stop controls and an Emergency Stop circuit.
This project demonstrates the implementation of industrial PLC programming concepts commonly used in automated manufacturing and material handling systems.
- Start/Stop push-button control
- Emergency Stop (E-Stop) safety circuit
- Conveyor motor control
- Box detection using a sensor
- Height-based box classification
- Automatic reject mechanism
- TON (On-Delay) timer implementation
- Warning lamp indication during reject cycle
- Modular ladder logic implementation
- OpenPLC Editor v4
- OpenPLC Runtime v4
- Ladder Diagram (LD)
- Windows
Start Button
│
▼
System Starts
│
▼
Conveyor Motor Runs
│
▼
Box Detected
│
▼
Height Sensor Checks Box
│
├──────────────┐
│ │
Normal Box Tall Box
│ │
│ ▼
│ Reject Cycle
│ │
│ TON Timer (2 s)
│ │
│ ▼
│ Reject Pusher ON
│ │
│ ▼
│ Warning Lamp ON
│
▼
Continue Conveyor
| Variable | Type | Description |
|---|---|---|
| StartPB | BOOL | Start push button |
| StopPB | BOOL | Stop push button |
| EStop | BOOL | Emergency stop |
| BoxSensor | BOOL | Detects arriving box |
| HeightSensor | BOOL | Detects tall boxes |
| Variable | Type | Description |
|---|---|---|
| ConveyorMotor | BOOL | Drives conveyor belt |
| RejectPusher | BOOL | Reject actuator |
| WarningLamp | BOOL | Indicates reject operation |
| Variable | Description |
|---|---|
| SystemRun | System latch |
| BoxDetected | Box detected flag |
| TallBox | Tall box identification |
| RejectCycle | Reject sequence trigger |
| TON0 | TON timer instance |
| TimerPreset | Timer preset (2 seconds) |
Implements the system start and stop logic with a seal-in (holding) circuit.
Runs the conveyor whenever the system is active and the Emergency Stop is not pressed.
Detects the arrival of a box while the conveyor is operating.
Uses the height sensor together with the box detection signal to identify tall boxes.
Initiates the reject sequence whenever a tall box is detected.
Uses a TON timer to activate the reject pusher after a 2-second delay.
Turns on a warning lamp whenever the reject cycle is active.
| Test Case | Expected Result | Status |
|---|---|---|
| Start Button | System starts | ✅ Pass |
| Stop Button | System stops | ✅ Pass |
| Emergency Stop | Conveyor stops immediately | ✅ Pass |
| Conveyor Operation | Motor runs correctly | ✅ Pass |
| Box Detection | Box detected successfully | ✅ Pass |
| Tall Box Detection | Tall box identified | ✅ Pass |
| Reject Cycle | Reject sequence initiated | ✅ Pass |
| TON Timer | 2-second delay before rejection | ✅ Pass |
| Reject Pusher | Activates correctly | ✅ Pass |
| Warning Lamp | Turns ON during reject cycle | ✅ Pass |
See:
Media/Variables.png
Media/network_1_2.png
Media/network_3_4_5.png
Media/network_6_7.png
A complete project demonstration is included in:
Media/PLC_ConveyorSorting_mp4.mp4
This project demonstrates practical experience with:
- PLC Programming
- Ladder Logic Design
- Industrial Automation
- IEC 61131-3 Standard
- TON Timers
- Safety Interlocks
- Conveyor Automation
- Sensor-Based Control Systems
- Sequential Logic Design
PLC-Conveyor-Sorting-System-OpenPLC
│
├── build/
├── devices/
├── pous/
├── Media/
│ ├── Variables.png
│ ├── network_1_2.png
│ ├── network_3_4_5.png
│ ├── network_6_7.png
│ └── PLC_ConveyorSorting_mp4.mp4
│
├── project.json
└── README.md
Aliya Rasheed
Mechatronics Engineering Student
NUST College of Electrical & Mechanical Engineering (CEME)
This project is intended for educational and portfolio purposes.