PLC Simulator
PLC simulator for Linux

PLC Simulator for Linux — No Wine, No Windows VM

A browser-based PLC practice environment that runs natively on any Linux distro. Save the Wine experimentation for a different weekend.

Join 1300+ learners practicing PLC programming

The problem

Why Linux users struggle with vendor PLC tools

Almost no major vendor ships a native Linux IDE. TIA Portal: Windows only. Studio 5000: Windows only. GX Works 3 (Mitsubishi): Windows only. Sysmac Studio (Omron): Windows only. Machine Expert (Schneider): Windows only. Codesys IDE: Windows only (the runtime is cross-platform, the editor is not). Even Factory IO, the 3D simulator, is Windows-exclusive.

The Linux escape hatch is usually Wine or CrossOver, and the experience is genuinely rough: Studio 5000 refuses to install on most configurations; TIA Portal partially works and crashes on complex projects; vendors will not help if something breaks. On Ubuntu, Fedora, Debian, Arch, or any other distro, Linux users have spent a lot of weekends fighting Wine instead of writing ladder.

A PLC simulator running in Chromium or Firefox on Linux — ladder editor, scan-cycle runtime and I/O strip — with no Wine, no vendor IDE and no distro-specific package to installA web browser window running a PLC ladder logic simulator with an input/output strip, requiring no installation or download.plcsimulator.app/playno installINPUTSOUTPUTS
The simulator is a tab in Chromium or Firefox — no Wine, no .deb, no .rpm, no dependency hell.

Workarounds

What Linux users try — and how it plays out

Wine + TIA Portal

Partial success on some Ubuntu and Fedora builds. Crashes opening medium projects. Official support: none. Debug time: high.

Wine + Studio 5000

Refuses to install cleanly on most Wine configurations. Even CrossOver's commercial support will not guarantee it.

VirtualBox / QEMU + Windows 11

Works, but you pay for a Windows licence, a Windows-side vendor PLC licence, and the disk space. CPU isolation on older hardware leaves the Linux host sluggish.

Dual-boot

A full Windows install next to your distro. Fine if you were going to install Windows anyway; overkill for PLC practice.

Codesys IDE via Wine

Codesys IDE is Windows-only. Wine results are mixed. The runtime is native Linux, but without an editor it does not help you write code.

OpenPLC + Beremiz

Both are genuine Linux-native IEC 61131-3 tools and great options — with a steeper learning curve and no scored curriculum. See the "other options" section below.

Browser-native on Linux

What this tool does on Linux

Distro-agnostic

If Chromium or Firefox runs, we run. Arch, Debian, Fedora, Mint, openSUSE, Pop!_OS, NixOS — all identical.

No dependency hell

No apt/dnf/pacman install, no systemd service, no SELinux exemption, no .deb or .rpm. The website is the app.

Pairs with Codesys and OpenPLC

Build fluency here, then deploy to Codesys SoftPLC or OpenPLC on the same laptop or a Raspberry Pi when you want real-hardware practice.

What you practise on Linux

The same IEC 61131-3 you deploy to OpenPLC on a Pi

Everything you build in the browser is standard IEC 61131-3 — so the ladder and structured text you drill here maps directly onto OpenPLC, Beremiz, or the Codesys runtime on a Raspberry Pi when you are ready for real hardware.

The PLC scan cycle — read inputs, execute the program, update outputs, repeat — the execution model shared by the browser simulator and the OpenPLC runtime on LinuxThe repeating PLC scan cycle: read inputs, execute the ladder logic, update outputs, then housekeeping, looping continuously.1Read Inputs2Execute Logic3Update Outputs4HousekeepingSCANCYCLE
The scan cycle — identical in the browser and in OpenPLC on a Pi.
The five IEC 61131-3 languages — Ladder, Function Block, Structured Text, SFC and Instruction List — the cross-platform standard both this Linux browser simulator and OpenPLC implementThe 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 — the standard that lets your code move from browser to OpenPLC unchanged.
An IEC 61131-3 Structured Text code block, the text language Linux automation engineers practise in the browser before deploying to Codesys or OpenPLCA 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 — the high-level IEC language, drilled in the browser, deployed on Linux.
A ladder logic rung with a normally-open contact driving an output coil, the first program a Linux PLC learner writes in the browser before porting it to OpenPLC on a Raspberry PiA 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
A contact driving a coil — port it to two relays on a Pi running OpenPLC.
PLC architecture — CPU, input modules, output modules and field devices — the hardware model a Linux learner maps onto a Raspberry Pi plus relay boardA modular PLC rack on a backplane: power supply, CPU processor, input module, output module and a communications module side by side.PLC RACKbackplane busPSUPowerCPUProcessorDIInputDOOutputNETComms
CPU / I/O / field devices — maps cleanly onto a Pi + relay-board project.
Modbus TCP communication between a PLC and field devices, the protocol Linux automation projects use to link a Pi running OpenPLC to remote I/OA Modbus master polling three slave devices over a shared serial or TCP link, reading and writing their holding registers and coils.MASTERpolls slavesModbus RTU / TCPID 01regs/coilsID 02regs/coilsID 03regs/coilsrequest / response polling
Modbus — the protocol that links your Linux SoftPLC to remote I/O.

Getting started

Three steps on Linux

  1. 1. Open Chromium, Firefox, or Edge. Snap, Flatpak, or native — does not matter.
  2. 2. Sign up free. Email and password. No sudo, no package manager, no driver install.
  3. 3. Pick a scenario. PID temperature is a good Linux-friendly starter — the control-loop mental model maps cleanly to anything you might deploy to a Pi later.

Performance

Performance expectations on Linux

Smooth

  • Any modern x86 laptop or desktop with Mesa / AMDGPU / Nouveau drivers.
  • Chromium, Firefox, Edge — all with WebAssembly acceleration.
  • Wayland or X11, HiDPI or standard DPI — all fine.

Watch-outs

  • Very old browsers on LTS distros — upgrade to the last year\'s build.
  • Aggressive privacy extensions (uMatrix, NoScript strict) — whitelist the site so WebAssembly and localStorage work.
  • Raspberry Pi browser: technically works, practically sluggish for the editor.

What Linux users practise most

Scenarios that pair well with a Pi or SoftPLC setup

PID Temperature

Maps directly to a Pi + thermistor + SSR real-hardware project.

View scenario →

Motor Start / Stop

Classic first rung. Port the logic to OpenPLC on a Pi with two relays.

View scenario →

Tank Fill

Level sensor, valve, pump — a realistic Pi + relay project.

View scenario →

Conveyor Sort

Sensor-heavy — good drill before wiring real prox sensors.

View scenario →

Traffic Light

Four-way sequence — standard IEC SFC / ladder learning.

View scenario →

Elevator

Full state machine — great structured-text practice.

View scenario →

Linux-native options too

Other Linux-friendly PLC tools worth knowing

  • OpenPLC — open-source IEC 61131-3 editor + runtime; runs on Raspberry Pi, Arduino, x86 Linux. Rough edges, great for real-hardware experiments.
  • Beremiz — open-source IEC IDE with Matiec compiler; works on Linux natively, documentation is scattered.
  • Codesys Runtime SL — cross-platform PLC runtime; install on a Raspberry Pi and deploy code from a Windows Codesys IDE. Native Linux deployment is a good intermediate-to-advanced path.
  • For IDE simulation with scored scenarios on Linux — us. See also our Codesys alternative.
Questions

Linux PLC simulator FAQ

Yes — any distro with Chromium, Firefox, or a modern Edge build. Flatpak, Snap, or native package — all fine. We are a web app, not a desktop binary, so there are no distro-specific dependencies to wrangle.

No Wine. No VM. No .deb.

Just a tab. Free tier on any distro.

Create free account →