
Real machine physics
Every scenario simulates real equipment. Tanks fill, motors spin, valves modulate — driven by your actual ladder logic.
12 lessons, 8 vendor dialects, real-time scan-cycle simulation, and 5 free real-world scenarios. No install, no card.
$0 forever free·Pro $29/mo·7-day money-back
Join 700+ learners practicing PLC programming
No install. Works in any browser. · From the team at plcprogramming.io

The PLC simulator steps through your ladder program in real time. Every contact, coil, and timer lights up exactly when it activates — so you can see the scan cycle in action, not just read about it.
(* Motor Start/Stop — IEC 61131-3 *)
IF Start_PB AND NOT Stop_PB THEN
Motor_Run := TRUE;
END_IF;
IF Stop_PB THEN
Motor_Run := FALSE;
END_IF;The same program, rendered in IEC 61131-3, Allen-Bradley, Siemens, Mitsubishi, Omron, Delta, Keyence, or Panasonic syntax. Switch between them without rewriting a line.
A structured path from absolute beginner to job-ready PLC programmer. Each lesson is paired with a live simulator exercise — you write real code against a real machine model.
A random wiring fault is injected into a running simulation — a swapped NO/NC contact, a broken wire, a floating input. Your job is to find it using the scan-cycle highlight, cross-reference, and the variable table.
The same physical machine — a motor start/stop, a conveyor, a tank fill — taught in the syntax your actual employer uses. Mitsubishi GX Works, Siemens TIA Portal, Allen-Bradley Studio 5000, Omron Sysmac, Delta, Keyence, Panasonic, and IEC 61131‑3.
(* Press START → light comes on *)IF Start_PB THEN Run_Lamp := TRUE;END_IF;Showing 3 of 8 — see all 8 dialect tracks
An interactive lab where you drag wires through a real panel layout — DIN rails, contactors, photoeyes, safety relays — and trace physical faults with a virtual multimeter. Eleven wiring lessons, eight fault scenarios.
Four complementary product lines that take you from zero PLC knowledge to interview-ready — all in the browser.
Structured theory with embedded exercises — from scan-cycle basics to PID tuning.
Write real ladder logic against physics-driven machines. Automated test cases grade your solution.
Timed multiple-choice sets that test concepts before and after you work through scenarios.
Full mock interviews with Q&A rounds and live scenarios. Pass to earn a downloadable certificate.
A browser tab that behaves like a real PLC bench — without the hardware budget.

Every scenario simulates real equipment. Tanks fill, motors spin, valves modulate — driven by your actual ladder logic.

Toggle inputs by hand to see how the PLC responds. No wiring, no hardware — just click and learn.

Pass an interview track and earn a downloadable PDF certificate. Pro users get solution walk-throughs with expert commentary on every scenario.
Desktop PLC tools punish beginners with install friction, licensing, and one-vendor lock-in. We strip all of that out so you can focus on the logic.
A full PLC programming simulator that runs in any modern browser. No Windows-only install, no vendor runtime, no license keys. Write and test ladder logic from a Chromebook, a Mac, or a rusty lab PC and get identical behaviour.
PLC programming simulator →One ladder logic source compiles against IEC 61131-3, Allen-Bradley (RSLogix-style), Siemens (TIA Portal-style), and Delta dialects. Practice the syntax your employer or certification body actually uses without juggling three separate tools.
Ladder logic simulator →Forty physics-backed scenarios across motor control, water & HVAC, packaging, material handling, safety, process, and food & beverage. Each runs a real scan cycle, drives an animated scene, and grades your program against scripted test cases.
Learn PLC programming →You write the logic. We handle the compiler, the scan loop, the physics, and the test report.
Use the in-browser editor. IEC 61131-3 Structured Text today; Allen-Bradley, Siemens, and Delta dialects also supported.
Your program compiles and starts driving the simulated I/O. Test cases track objectives and catch violations automatically.
A Phaser-rendered scene animates in real time — lamps, motors, photo-eyes, valves, limit switches respond to your logic.
Automated test cases mark each objective pass or fail. A score card tells you exactly where your logic fell short.
The same motor seal-in rung, expressed in each syntax your employer might use. Switch dialects without rewiring your mental model.
| START_PB OR RUN_BIT | AND NOT STOP_PB | := RUN_BIT ;
| RUN_BIT | := MOTOR_CONTACTOR ;Auto-advances every 3 seconds · click any dialect to jump directly
See all 8 dialects → full comparisonEach scenario ships with a briefing, canonical solution, automated test cases, and a physics-driven animation. Sign up to play — the first two are free.
Classic 3-wire motor start-stop with seal-in, emergency stop, and thermal overload protection. The contactor must latch on a momentary start-button press, drop out on stop, and latch a fault on E-stop or thermal trip. Faults may only be cleared by an explicit stop-button press once the underlying condition has gone away. You also need to detect a welded contactor via the auxiliary feedback contact.
An automatic car-wash bay runs a fixed wash sequence. When a car drives into the bay it breaks the CAR_PRESENT photo-eye. The operator then presses START to begin the cycle. The bay must run each stage for three seconds, one stage at a time, in order: SOAP, then BRUSHES, then RINSE, then DRYER. When the dryer finishes, a DONE lamp latches on to tell the driver the wash is complete. Pressing STOP at any point is an emergency abort: every output must drop immediately.
Your first PLC program. When SWITCH is ON, LIGHT turns ON. When SWITCH is OFF, LIGHT turns OFF. That's it — one rung. A contact reads an input. A coil writes an output. When the contact is true, energy flows right to the coil and the output energises.
Two switches in series. The light only turns on when SWITCH_1 AND SWITCH_2 are both ON. If either is OFF the light is OFF. This is how interlocks work — guard-closed AND start-pressed, both required to start the motor. Series contacts read as AND.
Two switches in parallel. The light turns on when SWITCH_1 OR SWITCH_2 is ON. Either one is enough. This is how you wire two start buttons — front-of-machine and back-of-machine — so an operator on either side can run the line. Parallel contacts read as OR.
The light is on by default. Pressing STOP_BUTTON should turn it OFF. That's a normally-closed (NC) contact — current passes through it until the input is true, then it breaks. This is exactly how a real stop button works: idle = circuit complete, pressed = circuit broken. Same idea as an e-stop.
Combine an NO START with an NC STOP. Hold START to turn the LIGHT on, release it and the LIGHT drops out. STOP also turns it off. This is the obvious-but-wrong design. Try it. Notice what you have to do to keep the LIGHT on. The next lesson fixes the problem with a latch.
Now we fix stage 4. A SET coil (S=) latches a bit on. Pulse START once — the LIGHT turns on and stays on, even after you release the button. That's how real machines work: you tap the start button, the motor runs. You don't stand there holding the button down all day.
Add a STOP to the previous scenario. Pulse START, LIGHT latches on. Pulse STOP, LIGHT resets off. Pulse START again, it comes back on. Two rungs: one SET, one RESET. That's the pattern behind nearly every industrial start/stop circuit you'll ever read.
An on-delay timer: after SWITCH closes, wait 2 seconds, then turn LIGHT on. Release the switch early and the timer resets — the LIGHT never comes on. A TON ("Timer On-Delay") is a function block. You declare an instance in VAR, call it with an enable input and a preset time in milliseconds, then read its .Q output bit on a rung.
Pull everything together. Tap START — MOTOR latches on. After 3 seconds, a timer auto-shuts the MOTOR off. That's a real industrial pattern: short-cycle a conveyor with a single button press. Three rungs: a SET on START, a TON enabled by MOTOR, and a RESET when the timer's .Q goes true.
Build anything you like. Wire up the available tags and write ladder logic — no objectives, no grading, just experimentation.
This week’s featured challenge
Lesson 2 — E-Stop (NC contact)
No completions yet — be the first!
Video courses explain concepts. Vendor software locks you to one platform. We let you practice on real machines in your browser, across every major dialect.
| Feature | PLC Simulator | Video courses(typical) | Vendor software(RSLogix / TIA Portal) |
|---|---|---|---|
| Browser-based | |||
| Multi-dialect | Limited | Limited | |
| Real machine scenarios | Video only | ||
| Interview prep + certificates | |||
| Solution walk-throughs | |||
| PLC handbook PDF | |||
| No install needed | |||
| Scenario / lab count | 40+ | ~12 | N/A |
| Starting price | $12/mo | $99/yr | $1,500+ license |
Comparison represents typical tools in each category. Features vary; check individual vendors.
A hands-on PLC practice library, interview portfolio, and reference handbook — for less than one hour of a controls engineer’s rate.
Sample the simulator — no card needed.
Serious learners and students.
Working engineers and job candidates.
Training a class or team? Create a team free — bulk Pro at $199/seat/year.
See full pricing →Two free scenarios. No credit card. Sign up in under a minute.
Used by learners and engineers worldwide. No install, no vendor lock-in.