Learn PLCs free

OpenPLC: Complete Guide & Reference

OpenPLC is an open-source PLC editor and runtime that runs on Arduino, Raspberry Pi, ESP32, Linux, Windows, and selected industrial controller platforms. This hub indexes the site's OpenPLC tutorials, references, hardware notes, and troubleshooting resources.

Free / Open sourceLD · ST · FBD · SFC · legacy ILCross-platform
Editorial illustration of a ladder-logic editor connected to an OpenPLC-style runtime, industrial I/O, a pushbutton and a motor.
Editorial workflow illustration. Use the linked tutorial and current OpenPLC documentation for exact screens, versions, targets, and protocol configuration.

In one paragraph

OpenPLC has two parts: the OpenPLC Editor (Windows/Linux/macOS) where you write IEC 61131-3 code, and the OpenPLC Runtime that executes the compiled program on hardware (Arduino, Raspberry Pi, ESP32, Linux PC, or Windows). Communication happens via Modbus TCP on port 502 by default. The web interface (port 8080) lets you upload programs and monitor I/O. Default credentials are openplc / openplc — change them.

Browse OpenPLC resources

Quick start in 60 seconds

  1. Download OpenPLC Editor from openplcproject.com/runtime.
  2. Open Editor → New Project → Standard project → Ladder Diagram → choose your target hardware.
  3. Write a single rung (Input 0.0 directly to Output 0.0).
  4. File → Generate program for OpenPLC Runtime — produces an .st file.
  5. Install OpenPLC Runtime on your target (Raspberry Pi most common — see our tutorial).
  6. Browse to http://[device]:8080, login (openplc / openplc), upload your .st file, click Compile, click Start PLC.
  7. Connect a Modbus TCP client on port 502 to read/write your I/O.

Not ready to install yet?

If you're on a Mac, Chromebook, or just want to practise ladder logic before committing to the OpenPLC setup, PLC Simulation Software runs graded IEC 61131-3 scenarios entirely in your browser — no download, no Raspberry Pi required. It covers the same motor control, timer, and counter patterns you'll eventually deploy on OpenPLC hardware.

Try the free browser simulator →

Frequently asked questions

What is OpenPLC?

OpenPLC is a free, open-source PLC runtime and editor for IEC-style control programs. Its tooling supports Ladder Diagram, Structured Text, Function Block Diagram and Sequential Function Chart workflows, with legacy Instruction List support in relevant projects. Runtime targets include Arduino, Raspberry Pi, ESP32, Windows and Linux, with Modbus connectivity for I/O and SCADA.

Is OpenPLC really free?

Yes. The OpenPLC Editor and Runtime are free and open-source (the v3 runtime and editor are GPL-licensed; the newer v4 runtime is MIT-licensed) with no I/O-count or runtime limits. You only pay for the hardware you run it on — a Raspberry Pi or Arduino is enough to start.

OpenPLC vs CODESYS — which should I use?

OpenPLC is simpler and fully open-source, ideal for learning and small projects on hobbyist hardware. CODESYS is a commercial-grade IDE with fieldbus stacks (PROFINET, EtherCAT), motion, and vendor support — the better choice for production machines. Many engineers learn on OpenPLC and deploy on CODESYS-based controllers.

What hardware does OpenPLC support?

Officially supported platforms include Arduino Uno/Mega/Nano, Raspberry Pi 3 and 4 (Pi 5 has community support), ESP32 and ESP8266, UniPi, Industrial Shields, ProductivityOpen P1AM (community-supported), plus any Windows or Linux PC as a soft PLC.

How do I install OpenPLC?

Install the OpenPLC Editor on your PC (Windows, Linux, or macOS), then install the Runtime on the target — for Raspberry Pi, clone the OpenPLC_v3 repository and run the install script; for Arduino, the Editor uploads compiled programs directly over USB. The web interface on port 8080 manages programs and Modbus devices.