
PLC programming practice projects work best when each is a small control problem with a written spec: an I/O list, a sequence, the faults to handle and test cases. With those four things you can run it in a simulator, document it and show it to an employer. This guide gives ten, by level.
One fact about our own offer, so you can judge this fairly. An EDWartens job simulation is a training project at a simulated company, done day by day with project documents, emails and tickets. It is not employment, an internship or a work placement. The first week is free and every ticket is checked as you hand it in. A graded, verifiable certificate is optional, and the longer Premium version is paid; prices show in your own currency before you pay. It shows on your EDWartens profile under Work experience, marked as a job simulation.
What counts as a real PLC project?
Forum threads on PLC practice keep returning to the same complaint: course projects are too trivial. A poster on PLCTalk asks for work that feels like the real thing, and the answers are almost always the same. Real work starts with a requirement written by someone else, has more inputs than you expected, includes things that go wrong, and ends with a check that the machine does what the document says.
So a trivial project is not one with few rungs. It is one with no spec, no faults and no test. A three-rung motor start/stop becomes a decent project when you add an overload input, an emergency stop that drops everything, a run-hours counter and a test sheet. Use this checklist on any idea before you start:
- A one-page spec in plain words: what the machine does, who operates it, what must never happen.
- An I/O list with a tag, an address, a type (digital or analogue) and a description for every signal.
- A sequence you can draw: start state, steps, conditions to move on, stop and reset.
- At least two faults with a defined response, such as a sensor stuck on or a motor that fails to start.
- Test cases with expected results, run and recorded.
The ten PLC programming practice projects at a glance
| # | Project | Level | Main ideas practised |
|---|---|---|---|
| 1 | Tank filler with level switches | 1 | Latching, interlocks, alarms |
| 2 | Conveyor with jam detection | 1 | Timers, sensors, fault latch |
| 3 | Duty and standby pumps | 1 | Alternation, run-hours, failover |
| 4 | Traffic junction | 1 | Timers, sequence, fault mode |
| 5 | Three-floor lift | 2 | Request memory, interlocks, priority |
| 6 | Star-delta motor starter | 2 | Timers, contactor interlocks, overload |
| 7 | Filling and packing line | 2 | Counters, rejects, resets |
| 8 | Batch mixer | 3 | State machine, recipe data |
| 9 | Water pumping station | 3 | Analogue scaling, alarms, hysteresis |
| 10 | Boiler burner start-up sequence (simulation only) | 3 | Purge, proving, lockout |
Each project below has an I/O list, a sequence and test cases. Addresses are written in a neutral I0.0 and Q0.0 style; change them to match your software.
Level 1: interlocks, timers and simple sequences
1. Tank filler. Inputs: I0.0 start button, I0.1 stop button (normally closed), I0.2 low-level switch, I0.3 high-level switch, I0.4 emergency stop (normally closed). Outputs: Q0.0 inlet valve, Q0.1 outlet valve, Q0.2 alarm lamp. Sequence: on start, open the inlet until the high switch is made, close it, hold for a set time, open the outlet until the low switch clears, then stop. Fault: if the high and low switches are both made at once, latch an alarm and close both valves. Test cases: stop during filling closes the inlet; emergency stop drops all outputs; high switch failing to make for too long raises a fill-timeout alarm.
2. Conveyor with jam detection. Inputs: start, stop, I0.2 photo-eye at the discharge end, I0.3 motor overload (normally closed). Output: Q0.0 conveyor contactor. Sequence: run on start, stop when the eye has been blocked for 3 seconds, which means the belt is backing up. Fault: if the motor runs for 10 seconds and the eye never sees a box, latch a jam alarm and stop. Test cases: removing the overload input stops the belt at once; a reset is needed after a jam, and the reset does not restart the belt by itself.
3. Duty and standby pumps. Inputs: I0.0 auto/manual selector, I0.1 level high, I0.2 and I0.3 pump overloads, I0.4 and I0.5 run feedback. Outputs: Q0.0 and Q0.1 pump contactors. Sequence: on each demand, swap which pump is duty so wear is shared, and keep a run-hours counter for each. Fault: if the duty pump gets a start command and the run feedback does not arrive within 5 seconds, stop it, raise an alarm and start the other. Test cases: both pumps tripped gives a single high-priority alarm; the swap happens only after the first pump has stopped.
4. Traffic junction. Outputs: red, amber and green for two directions, so six outputs. Sequence: a fixed cycle with an all-red gap between phases and a timer for each state. Fault mode: if a conflict is detected, such as both greens on, go to flashing amber on both directions. Test cases: power-up always starts in all-red; the green timers can be changed without touching the logic. This is the classic first project, and the flashing-amber fault is what makes it more than a toy.
Level 2: motors, lifts and counting
5. Three-floor lift. Inputs: three call buttons, three landing sensors, door closed switch, overload. Outputs: motor up, motor down, door open. Sequence: remember each request until served, serve the nearest in the direction of travel, open the door at the floor and close it after a delay. Fault: if the car passes a floor sensor in the wrong order, stop and alarm. Test cases: calls pressed while moving are not lost; the car never moves with the door open. The hard part is the request memory, so write it as a small state machine.
6. Star-delta motor starter. Inputs: start, stop (normally closed), overload (normally closed). Outputs: main contactor, star contactor, delta contactor. Sequence: close the main and star contactors, wait 5 seconds, drop star, wait a short gap, then close delta. Faults: star and delta must never be on together, and an overload drops everything. Test cases: the output states at each second of the sequence are written in a table and checked. Our free course on industrial motor control explains the power circuit behind this logic.
7. Filling and packing line. Inputs: bottle present sensor, fill-complete sensor, reject sensor, reset. Outputs: filler valve, reject pusher, a run lamp. Sequence: count bottles, fill each, reject any that fail the check, and stop at a batch count. Fault: no bottle seen for too long means the supply is empty, so pause and alarm. Test cases: the batch count survives a stop and restart until reset is pressed; a reject never counts as good product.
Level 3: state machines, analogue values and safety sequences
8. Batch mixer. Inputs: low and high level in the tank, two ingredient flow signals, mixer feedback. Outputs: two ingredient valves, mixer motor, drain valve. Sequence: fill ingredient A to a quantity, fill B, mix for a set time, drain, report done. Keep the recipe quantities and times in data, not in the logic, so a second recipe is a data change. Fault: a step that does not finish in its time limit stops the batch and names the step. Test cases: pressing hold freezes the timers; resume continues from the same step.
9. Water pumping station. Inputs: an analogue level transmitter (a 4-20 mA signal), two pump overloads, a local/remote switch. Outputs: two pump contactors, high and low alarm lamps. Sequence: scale the raw reading to a level, start the lead pump at one level, the lag pump at a higher one, and stop them with a gap so they do not chatter. Fault: a reading below 4 mA means a broken wire, so raise a sensor-fail alarm and fall back to a safe mode. Test cases: step the simulated level up and down across each setpoint and record when each pump moves. Our 4-20 mA loop explainer covers the signal itself.
10. Boiler burner start-up sequence, simulation only. Inputs: purge air proved, pilot flame proved, main flame proved, low water, high pressure. Outputs: fan, pilot valve, main valve, alarm. Sequence: purge, light the pilot, prove it, open the main valve, prove the main flame. Fault: loss of flame at any stage closes the fuel valves and locks out until a manual reset. Test cases: each missing proof stops the sequence at the right step. A real burner is protected by a certified management system and not by a hobby program, so keep this as a logic exercise and say so in your write-up.
How do you document a project for a portfolio?
Documents turn a program into evidence. For each project keep one folder: the one-page spec, the I/O list, a sequence drawing, the program export or screenshots, and a test record with the date, each case, the expected result and the actual result. Add a short “what I would change” note. Reviewers read that note more closely than the code, because it shows you can judge your own work. For more on presenting course work, see our guide to an engineering portfolio from course projects and the ATS-friendly resume for automation engineers.
Name signals the way the plant would, with a tag, not a nickname. “LSH-101 Tank high level” tells a maintenance engineer more than “Switch3”. Use the same tag in the spec, the I/O list and the program, and the three documents will agree.
What tools can you use for free?
| Tool | What it is for | Cost note (October 2026) |
|---|---|---|
| CODESYS development system | Ladder, structured text and function blocks with a built-in soft PLC | Free to download; check the licence for your use |
| OpenPLC | Open-source runtime and editor, runs on a PC or a small board | Free, open source |
| Vendor trial software with a simulator | Practice in the language a plant near you uses | Time-limited trials; check each vendor |
| 3D machine simulators | Conveyors and sorters to drive from your program | Free trials exist; limits vary |
| EDWartens 3D lab and job simulation | A plant with real faults and a ticket system | First week free; optional certificate |
Our free courses use the same tools. The Siemens TIA Portal course and the Allen-Bradley Studio 5000 course run in simulation, the OpenPLC course needs only a PC, and the structured text course covers the language for projects 8 and 9. Our comparison of free PLC simulators lists what each one can and cannot do.
How do hiring managers judge a PLC project?
We cannot speak for every employer, so here is how the questions usually go in engineering interviews, based on what reviewers ask of any submitted work. Can I read it? Are the names clear and the logic split into sensible blocks? What happens when an input fails? How did you test it? What would you do differently? A project that answers all five without being asked is a strong one. Be ready to explain every rung. If you used a code assistant, say what you used it for and show that you checked the result; our guide on AI copilots for PLC programming covers where that helps and where it misleads.
Be honest about scope. A simulated project is a training exercise, and describing it that way is not a weakness. Employers who work with PLCs can tell a copied tutorial from a project that was tested against faults, and they respect a candidate who says plainly what was real and what was simulated.
Try the projects in a job simulation
If you want the brief, the documents and a mid-project change request handed to you, the PLC programmer job simulation gives you that in a simulated company: you write the I/O list, program the line, run a test and handle a change request, and every ticket is checked as you hand it in. Hands-on tasks run in the EDWartens 3D lab. The first week is free, and the certificate is optional. A finished simulation shows on your EDWartens profile under Work experience, marked as a job simulation, and the certificate, if you take it, has a public page where anyone can verify it.
If you prefer to build your own, take one project from each level, write the spec first, test against the faults and keep the records. When you are ready to apply, the jobs board lists current openings, and the free PLC internship gives four weeks of guided practice with a simulated team.
Practise with us
Internship
PLC Programming
Free internship: 4 weeks, a free certificate and nothing to buy. Premium adds mentor calls and the graded certificate.
See the internshipRoles
PLC and automation
Roles that ask for this skill, 171 open in this country now. Free to see and to apply. We are not a recruitment agency.
See rolesTake the free course
Questions
Which PLC projects impress employers?
Projects that look like a real job: a written spec, an I/O list with tag names, a sequence that handles faults and stops safely, and a test record showing what you checked. A tank filler with alarms and a test sheet says more than a flashy project with no documents.
How many PLC projects do I need for a portfolio?
Three to five well-documented projects beat ten thin ones. Pick one from each level so a reader sees range: a simple interlock, a motor or pump sequence, and a state-machine project with faults. Quality of documents matters more than the count.
Can I practise PLC programming without hardware?
Yes. Vendor trial software with a simulator, CODESYS, OpenPLC and 3D machine simulators let you run and test a program on a laptop. Real hardware teaches wiring and noise later, but logic, sequences and fault handling can all be practised without it.
Should I use ladder logic or structured text?
Start with ladder logic for interlocks and simple sequences because technicians read it easily, then use structured text for calculations, scaling and state machines. Most plants mix both, so one project in each language is a sensible portfolio.
How do I show PLC projects on a resume?
Put them under Projects, not Work experience. Give each a one-line result, the language and software, and a link to the spec and test record. For a simulated company project, say so plainly, for example “PLC programmer job simulation (simulated company)”.
Is a job simulation better than a self-made project?
Neither is better by itself. A self-made project shows initiative; a job simulation gives you a ready brief, documents and a change request, which are hard to invent alone. Doing one of each, and documenting both, shows the most.
Sources
- PLCTalk, beginner and intermediate real-world projects for practice (read 19 October 2026)
- Industrial Monitor Direct, PLC programming practice projects for beginners (read 19 October 2026)
- PLCopen, IEC 61131-3 languages (read 19 October 2026)
- CODESYS, free download of the development system (read 19 October 2026)
Written by the EDWartens engineering team for general education. Product names are trademarks of their owners; mentioning them does not imply endorsement. Prices and terms of other providers were checked on the date shown and can change.

PLC Programming Languages: Which One to Learn First in 2026

Virtual PLC Lab: Practise PLC Online in 3D, Free

Data Analyst Portfolio Projects With Messy Data

How to Learn PLC Programming From Zero in 8 Weeks

Ladder Logic Symbols: A Cheat Sheet with Examples

PLC Timers TON, TOF and TP Explained With a Video Demo



