OpenPLC is brilliant free open-source software for running real ladder logic on a Raspberry Pi or Arduino. But before you install an editor, flash a board, and wire Modbus I/O, you can learn the logic itself in seconds — in a browser, with scored scenarios.
Join 2000+ learners practicing PLC programming

Opening honesty
OpenPLC is fully open-source IEC 61131-3 software that runs real logic on cheap hardware. If your goal is to control a Raspberry Pi, Arduino, or ESP32, you should absolutely use it. This page is about the learning phase that comes first — where a browser beats an install. We are complementary to OpenPLC, not a competitor to it.
Background
OpenPLC is a free, open-source IEC 61131-3 environment created by Thiago Alves. It has two parts: the OpenPLC Editor, built on the open-source Beremiz IDE and the matiec compiler, where you write ladder, structured text, FBD, SFC, and IL; and the OpenPLC Runtime, a soft-PLC that executes your compiled program.
The runtime targets a remarkable range of cheap hardware — Raspberry Pi, Arduino boards, ESP32/ESP8266, plain Linux and Windows as a soft-PLC — and exposes I/O over Modbus. That makes it one of the best ways to run genuine PLC logic on real hardware for almost no money.
Pricing: free and open source (GPL) end to end. The cost is your time — installing the editor and runtime, optionally flashing firmware, and wiring I/O before your logic does anything visible.
Strengths
No licence files, no demo timers, no per-target fees. The editor and runtime are GPL — inspect, modify, and run them however you like.
Run actual IEC 61131-3 logic on a Raspberry Pi, Arduino, or ESP32 for a few dollars. This is genuine soft-PLC control, not a simulation.
Built on Beremiz and matiec with clean IEC 61131-3 languages, and Modbus I/O so it talks to real sensors and actuators.
Learner friction
None of these are flaws — they are the natural cost of software that runs real hardware. They are simply friction if your only goal today is to learn ladder logic.
You install the OpenPLC Editor and the OpenPLC Runtime before writing a rung. That is reasonable for a runtime — slow if you just want to try the idea.
To watch inputs and outputs move you typically wire a Raspberry Pi or flash an Arduino / ESP32 and configure Modbus addresses.
OpenPLC gives you a workbench, not a syllabus. There is no auto-grader telling you whether your logic actually solves the exercise.
Pure IEC 61131-3. Excellent for portable, standard logic — but it will not show you Allen-Bradley or Siemens conventions side by side.
The desktop editor and runtime do not fit a school Chromebook or a phone, where browser practice runs fine.
Each change means compile and upload before you see a result — great discipline for deployment, slow for rapid first-time learning.
Feature comparison
| Feature | OpenPLC | Ours |
|---|---|---|
| Price | Free & open source | Free tier + Pro monthly |
| Install required | Editor + runtime | None (browser) |
| Runs real hardware | Yes (Pi, Arduino, ESP32) | No |
| Real Modbus I/O | Yes | No |
| Start practising | After install / wiring | Instantly |
| Scored scenarios | No | 40 auto-graded |
| Dialect switching | IEC only | IEC + AB + Siemens |
| Chromebook / phone | No | Yes |
| Interview-timer | No | Yes (Pro) |
| Portfolio PDF export | No | Yes (Pro) |
Decision guide
IEC 61131-3 that transfers
Contacts, coils, seal-in logic, and IEC timers are identical concepts whether they run in your browser or compile to the OpenPLC Runtime. Build them here first, watch them work instantly, and the portable IEC 61131-3 logic moves straight into OpenPLC when you are ready for hardware.
The fast path
The quickest route to competence is to remove the setup tax while you are still learning, then add the hardware once the logic is second nature.
IEC 61131-3 scenarios
Related reading
Other honest options
Online simulation
When people search for an OpenPLC simulator online, they usually want one of two things: the OpenPLC editor running in a browser (which does not exist — it is a desktop install), or a way to practice writing and running IEC 61131-3 logic online without setting up the full OpenPLC stack. This simulator is the second option.
The OpenPLC stack — editor plus runtime plus hardware wiring — is a meaningful setup effort. You install the Beremiz-based editor on Windows or Linux, install the runtime on a Raspberry Pi or Arduino, flash the firmware, and configure Modbus I/O before your first program does anything. For learning the logic (contacts, coils, timers, counters, structured text) that setup is overkill. An online IEC 61131-3 simulator skips all of it: open the browser, write the rung, watch the machine respond.
Once you are fluent in the IEC 61131-3 core — which this simulator covers — dropping into OpenPLC to deploy real logic to a Pi is a much shorter learning curve. The instruction set is the same standard; the tooling differences are mechanical, not conceptual.
No editor install. No runtime. No Raspberry Pi. Then deploy to OpenPLC when you are ready.
Open the simulator →