Write ladder logic, press Run, and watch a simulated machine respond. 40 auto-graded scenarios across IEC 61131-3, Allen-Bradley, and Siemens dialects — all in a browser tab.
A PLC programming simulator lets you write controller code and test it against a virtual plant — sensors, motors, valves, conveyors — without owning hardware. Traditionally these tools have been Windows-only, license-gated, and married to one vendor. Siemens\u2019 PLCSIM ships with TIA Portal. Rockwell\u2019s Studio 5000 Logix Emulate targets Studio 5000. LogixPro is a commercial teaching product. CoDeSys ships a simulator with its IDE. Each one requires install, each one locks you to a single instruction set, and most require a paid license to do anything meaningful.
Our PLC Simulator removes all of that friction. It runs entirely in the browser. It supports three dialects — IEC 61131-3, Allen-Bradley (RSLogix-style), and Siemens (TIA Portal-style) — from one editor. It grades your program against scripted tests. It is free to try with no account required at /scenarios/traffic-light.
The intended audience is anyone who needs ladder-logic practice without hardware: PLC students working through a first course, mechatronics and controls-engineering students prepping for interviews, plant engineers verifying logic changes offline before commissioning, and self-taught hobbyists. Every scenario is designed to be completable in 15–45 minutes so you get many reps per sitting.
Every scenario follows the same loop: write logic, press Run, and watch the simulated IO table update as your program executes through each scan cycle.
40 real machine simulations are indexed at /scenarios. Each ships with an IO list, a scripted test suite, and a written objective. Start with the free Traffic Light or Motor Start/Stop scenarios to see the flow.
The Monaco-based editor accepts IEC 61131-3, Allen-Bradley, or Siemens syntax. Switch dialect from the toolbar. Contacts, coils, timers, counters, edges, and PID function blocks are all wired up.
Press Run and your program drives a Phaser-rendered physics scene. Test cases evaluate every objective (correct sequencing, interlocks, timing windows) with pass/fail feedback and failure reasons.
40 scenarios, each with a physics model and a scripted test harness. Full list at /scenarios. Free-tier scenarios are accessible without an account at /scenarios/{slug}.
Four-way signal with timer chain and all-red safety phase.
Three-wire control with seal-in, E-stop, and thermal overload.
Reversing drive with obstacle detection and limit switches.
Photo-eye sort station with counters and reject actuator.
Level sensors with hysteresis and latched high-level alarm.
Multi-step sequencer with ingredient timing and agitator interlock.
Entry/exit sequencing with loop detectors and barrier arm.
Multi-floor call queue, door timing, and direction logic.
Closed-loop control of a heated vessel with tuning feedback.
Indexing conveyor with filler, capper, and reject interlocks.
The compiler pipeline normalises each dialect into a common IR before execution, so your program runs against the same scan loop and the same test harness regardless of which syntax you wrote it in.
The international standard. Structured Text + ladder with portable tag declarations (VAR ... END_VAR) and standard function blocks (TON, CTU, R_TRIG).
RSLogix-style XIC / XIO / OTE / OTL / OTU with AB tag notation (I:0/0, O:0/0, B3:0/0, T4:0, C5:0).
TIA Portal / STEP 7-style STL networks with A / AN / O / ON / = / S / R and Siemens IO notation (%I0.0, %Q0.0).
Most PLC software was built for plant engineers on dedicated Windows workstations, not for students or self-learners. The result: install friction kills the first-hour experience. You download a 4 GB installer, reboot twice, hit a licensing wall, and never write a line of ladder logic.
A browser-based PLC simulator changes the shape of that first hour. You load a URL, see the editor, pick a scenario, and get a passing test within minutes. Portability follows naturally: the same simulator works on a Chromebook in a university lab, on a Linux desktop at home, on a locked-down corporate laptop where you cannot install admin-gated software, and on a phone in a pinch.
This matters for three groups. Students cannot afford per-seat licensing and often do not have admin rights on shared lab machines. Engineers prepping for interviews want something they can run from a coffee shop. Plant engineers testing a quick logic change before a commissioning window do not want to spin up a VM just to verify a rung. Removing the install is the single biggest usability lever, and it is the one lever that a browser-native tool can pull cleanly.
We make no secret about the trade-off: a browser simulator is a learning and prototyping tool, not a production PLC. The final word on any logic change lives on the real controller. Our pitch is that getting there is cheaper, faster, and less painful if the first hundred iterations happen in a tab you can close.
The simulator implements the three-phase PLC scan cycle faithfully: input image update, program execution (rung-by-rung, top-to-bottom), then output image update. A configurable scan-time clock drives the whole loop so timers and counters behave identically to hardware.
The IO table is explicit and inspectable. Every input address (%I0.0, I:0/0) and every output coil (%Q0.1, O:0/0) has a live value you can watch during a run. Internal memory bits, timer accumulators, and counter presets are all visible so you can debug a rung without guesswork.
Function blocks follow the 61131-3 spec: TON (on-delay timer), TOF (off-delay), TP (pulse), CTU/CTD/CTUD (counters), R_TRIG/F_TRIG (edge detection), EQ/NE/GT/GE/LT/LE (compare), and PID. These map directly to the AB and Siemens equivalents when you switch dialect.
The nine-scenario Beginner Track is free. No credit card. Sign up in under a minute — or try the Traffic Light scenario without an account.
Related: learn PLC programming · ladder logic simulator.