PLC Simulator
Pillar page

Browser-Based PLC Programming Simulator — Free Tier, No Install.

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.

How the browser-based PLC programming simulator runs ladder logic with no installA web browser window running a PLC ladder logic simulator with an input/output strip, requiring no installation or download.plcsimulator.app/playno installINPUTSOUTPUTS
Your code, a simulated scan loop, and a live IO table — all in a browser tab, no download or license key.
What it is

A PLC programming simulator built for the browser.

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.

How it works

From code to machine in three steps.

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.

1

Pick a scenario

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.

2

Write ladder logic

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.

3

Run and grade

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.

The three-phase PLC scan cycle the programming simulator runs each cycleThe repeating PLC scan cycle: read inputs, execute the ladder logic, update outputs, then housekeeping, looping continuously.1Read Inputs2Execute Logic3Update Outputs4HousekeepingSCANCYCLE
Inputs → solve every rung top-to-bottom → outputs, on a repeating clock. The simulator runs this real scan loop so timers and counters behave like hardware.

Start in 30 seconds

There is nothing to download and no trial clock. Open /scenarios/traffic-light, drop a few contacts and coils onto a rung, press Run, and read the pass/fail result. No account is needed for the free scenarios, so you can write working ladder logic before you decide whether to sign up.

Languages & instructions

What you can write in the simulator.

The editor speaks the two IEC 61131-3 languages most people actually use to learn: ladder diagram (LD) and Structured Text (ST). You build rungs from the standard instruction set — contacts, coils, timers, counters, edges, compares, and math — and the simulator executes them against a live IO table.

Ladder logic, rung by rung

Ladder is the default. A rung reads left-to-right: examine-if-closed and examine-if-open contacts in series form an AND, parallel branches form an OR, and the coil on the right energises when the path is true. The simulator solves each rung in order, every scan, so the logic you draw is the logic that runs.

Ladder logic programming simulator →
A ladder logic rung — series contacts and a coil — running in the PLC programming simulatorA basic ladder logic rung between two power rails: an examine-if-closed contact (XIC) in series driving an output coil (OTE).L1L2] [StartXIC I:0/0LampOTE O:0/0
Series contacts AND together; the coil energises when the rung path is true.
Ladder logic contact and coil symbols you program in the PLC simulatorThe core ladder logic symbols side by side: XIC examine-if-closed, XIO examine-if-open, OTE output energize, OTL output latch and OTU output unlatch.XICIfXIOIfOTEEnergizeLOTLLatchUOTUUnlatch
Normally-open / normally-closed contacts, output, latch and unlatch coils — the core symbol set.

The instruction set

Beyond contacts and coils you get the full beginner-to-intermediate toolkit: on/off-delay and pulse timers, up/down counters, rising- and falling-edge detection, comparison and math blocks, and latch/unlatch for retentive state. Each instruction maps cleanly onto its Allen-Bradley and Siemens equivalent when you switch dialect.

Programming a seal-in motor-start rung in the PLC programming simulatorA seal-in latch rung: a Start contact in parallel with a Hold contact, in series with a normally-closed Stop contact, driving an output coil.StartHold (seal)StopMotor
Seal-in (latching) start/stop — the first real rung most learners build.
An on-delay (TON) timer running in the PLC programming simulatorA TON on-delay timer: the accumulated time bar ramps up toward the preset value, and the done (DN) bit turns on when the accumulator reaches preset.TONPRE 5000ACCACC ramps to PREPREDNdone bit
TON / TOF / TP timers behave to the IEC 61131-3 spec against the scan clock.
An up-counter (CTU) running in the PLC programming simulatorA CTU count-up counter: each input pulse increments the accumulator toward the preset, and the done (DN) bit turns on when count reaches preset.count pulsesCTUPRE 5ACC 3ACCcount toward presetDNdone bit
CTU / CTD / CTUD counters with live accumulator and preset you can watch.
Dialects

Three PLC dialects, one editor.

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.

IEC 61131-3

The international standard. Structured Text + ladder with portable tag declarations (VAR ... END_VAR) and standard function blocks (TON, CTU, R_TRIG).

Ladder logic simulator →

Allen-Bradley

RSLogix-style XIC / XIO / OTE / OTL / OTU with AB tag notation (I:0/0, O:0/0, B3:0/0, T4:0, C5:0).

Allen-Bradley PLC simulator →

Siemens

TIA Portal / STEP 7-style STL networks with A / AN / O / ON / = / S / R and Siemens IO notation (%I0.0, %Q0.0).

Siemens PLC simulator →
The IEC 61131-3 programming languages supported by the PLC programming simulatorThe five IEC 61131-3 PLC programming languages as chips: Ladder Diagram, Function Block Diagram, Structured Text, Instruction List and Sequential Function Chart.IEC 61131-3 — five languagesLDLadder DiagramFBDFunction BlockSTStructured TextILInstruction ListSFCSequential Func. Chart
IEC 61131-3 defines the languages — the simulator focuses on the two you learn first: ladder diagram and Structured Text.
Writing Structured Text in the PLC programming simulator and exporting it to a real controllerA small Structured Text code block in an editor: an IF/THEN condition, a TON timer call and assignments, showing text-based PLC programming.main.st — Structured Text1IF Start AND NOT Stop THEN2 Run := TRUE;3END_IF;4DelayTmr(IN := Run, PT := T#5s);5Lamp := DelayTmr.Q;
Structured Text is portable today — write it here, then copy it into Codesys, OpenPLC, or any ST-compatible IDE.
Why browser-based

Why browser-based PLC programming matters.

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.

Under the hood

A real scan cycle, in your browser.

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.

How field inputs and outputs map to the IO table in the PLC programming simulatorA digital input pushbutton wired to a PLC input card, and a PLC output card driving a lamp, with a sinking versus sourcing hint.I/O CARDINPUTOUTPUTPushbuttonI:0/0LampO:0/0sinking (NPN) vs sourcing (PNP)
Field devices wire to discrete inputs and outputs; the simulator exposes every bit in a live IO table you can watch as the program runs.
Questions

Frequently asked.

Yes. There is a free tier with two scenarios (Traffic Light and Motor Start/Stop). No credit card required, no install, no trial clock. Upgrade to Basic or Pro when you want access to the full 40-scenario library and interview-timer mode.

Start programming in your browser.

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.