OpenPLC is an open-source, free-to-use Programmable Logic Controller Suite, compliant with the IEC 61131-3 standard, and working with a range of hardware platforms such as Arduino, ESP8266/ESP32, Raspberry Pi SBCs, as well as Windows and Linux machines.
When Arduino unveiled the Arduino PLC IDE, we noted the languages defined by the IEC 61131-3 standard were licensed, and the PLC key for the Portenta Machine Control unit sold for $17.60. One reader complained about the high license cost per device, but Massimo Banzi, the co-founder of the Arduino project, replied it was cost-effective for smaller deployments:
Actually it’s not that much money compared to the cost of other PLC software (thousands of dollars per seat!). This model helps small companies with not that many devices.. It’s possible to negotiate bulk licenses for companies.
But there’s also another option with OpenPLC open-source PLC suite that does not require any license fee. That’s apparently possible because using the IEC 61131-3 programming languages does not require a paid license, it’s just that the IEC charges a fee for purchasing copies of the standard, and proprietary PLC systems typically require a paid license.
The OpenPLC Project is comprised of two main parts: the Editor and the Runtime. The Editor is software that runs on a computer to create PLC programs. Thiago Alves, OpenPLC’s developer, says it is very simple to use and supports all five languages defined in the IEC 61131-3 standard, namely Ladder Logic (LD), Function Block Diagram (FBD), Instruction List (IL), Structured Text (ST), and Sequential Function Chart (SFC).
The OpenPLC Runtime is a portable firmware/software generated from the Editor and is fully supported on a range of development boards and several actual PLC hardware:
- Arduino Uno / Nano / Leonardo / Micro
- Arduino Mega / Due
- Arduino Nano Every / IoT / BLE
- Arduino Nano RP2040 Connect
- Arduino Mkr / Zero / WiFi
- Arduino Pro (Machine Control and EDGE)
- Controllino Maxi / Automation / Mega / Mini
- Productivity Open P1AM
- ESP8266 (nodemcu) and ESP32
- Raspberry Pi 2 / 3 / 4
- UniPi Industrial Platform
- Neuron PLC
- FreeWave Zumlink and ZumIQ
The Runtime can also be generated as a generic target (soft-PLC) for Windows or Linux. You’ll find the source code for the Runtime and the Editor on GitHub.
Just like commercial PLC software, OpenPLC is designed to be used in industrial automation and control systems. What I do not know is how it compares to commercial offerings. So if you have knowledge about PLC programming and have ever tried OpenPLC, let us know your experience in the comments section.
You can download the OpenPLC Editor for Windows, Linux, and macOS, and find out more on the official website. It includes a support forum, documentation, and various resources to learn more about PLC programming, HDMI development, SCADA, and so on.
Thanks to stinkydiver73 for the tip.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
8 Replies to “OpenPLC open-source Programmable Logic Controller Suite works with Arduino, ESP8266/ESP32, Raspberry Pi, etc.”
How does this project compare to beremiz? Beremiz seems to be quite mature as it’s used by smarteh for their range of PLCs.
The editor is actually based on Beremiz
Do you know of such editor which emits code that compiles natively, rather than interpreted ?
I mean no “runtime”
This is what openplc does – compiles the code natively for runtime. Couldn’t do realtime without it and couldn’t run on smaller controllers with a complicated interpreter.
yes actually openplc editor is almost useful to edit ladder IEC language. Then, ladder is converted to IEC ST language. Then ST is converted to C using MATIEC compiler (open source project led by Porto University). once you have C, you can compile it and run natively on any kind of platforms…
Is ladder still in widespread use? Never came across it in my professional life so far…
Mainly FBD (for ease of simulation by 3rd parties) and ST (for maintainability) and a bit of SFC (for historic reasons mainly), the other 2 languages I never had to deal with.
Most automotive plants I’ve been at over the last 9 years don’t allow anything but ladder logic. Some allow structured text but only if it comes that way from a vendor specific AOI.
Outside of automotive I’ve seen FBD, but even then they typically have a decent amount of ladder.
Looks like an interesting concept. Would be curious to see whether any place uses Open PLC in production.
Hmmm interesting actually I’m not in automotive but rather railways and never seen a single line of ladder in Europe, I always got the impression ladder is a pretty American thing, but I might be wrong…