
Explore the basics of PLC and soft PLC with OpenPLC. Contrast PLC and PC, and learn advantages and limitations of soft PLC for real-time, cost-effective, flexible industrial control.
OpenPLC provides the first open source soft PLC with editor and runtime for hardware-agnostic prototyping, using the MatESC compiler to zip code.
Download, unzip, and run the OpenPLC Linux installer to set up a Python 3.9 virtual environment and OpenPLC Eden inside a DistroBox container.
Install the OpenPLC runtime on Linux devices using native, distrobox, or Docker, and learn how it interfaces with hardware via Modbus, web servers, and Pi libraries.
Install OpenPLC on a Raspberry Pi by flashing a Raspbian lite image with the Raspberry Pi imager and configuring the runtime as a systemd service.
Install the OpenPLC runtime on Windows using Windows Subsystem for Linux (WSL) with Ubuntu inside Windows. Compare Docker and WSL options, and recommend Docker for field deployments.
Learn how Linux kernel preemption patches convert traditional scheduling toward real-time behavior for OpenPLC, enabling interrupt-driven safety actions and lower response times on Raspberry Pi.
Analyze how OpenPLC drivers direct input and output channels, initialize hardware (Raspberry Pi, Arduino, etc.), and exchange data with the runtime via a buffer.
Explore integrating Python via PSM with OpenPLC to fetch external temperature using api.openmeteo, expose it as an OpenPLC global variable, and use it for climate regulation.
Explore the OpenPLC editor and runtime on Raspberry Pi, with real-time debugging and programmable logic controller simulation, variable viewing, Modbus monitoring, plus web server interface and st file deployment.
Integrate libraries into OpenPLC with the OSCAT library by copying functions into your project or importing them into the standard library, using the OpenPLC import tool for runtime v3 compatibility.
Create and automate a process with OpenPLC using scripting and docker-based runtime. Configure modbus with machine simulator and monitor IOs to control a tank.
Install and configure scada-br and scada-lts with docker, adjust ports, and connect to the OpenPLC runtime via modbus-tcp for remote or edge monitoring.
This course was created after an in-depth study of the OpenPLC ecosystem.
PLC programming is a widely discussed subject around the world, as the importance of PLCs has never been greater than it is today.
Until recently, PLC programming was a topic reserved for a few specialists in technical schools, mainly due to the need for physical hardware and expensive, specialized software for skill development. Software companies have monopolized the educational space with proprietary tools. This has significantly slowed the development of real-time control engineering compared to the rapid growth of pure software development over the past 20 years.
OpenPLC is an open-source platform that spans from PLC language programming to powerful integrations with Python runtime and SoftPLC deployment, enabling a new control paradigm.
While studying the subject, I discovered how powerful the platform could be: integration with external software tools for advanced functionality (such as machine learning and APIs), the ability to convert all PLC languages to Structured Text (ST)—which allows code to be analyzed and fine-tuned by AI—fleet deployment, redundancy and execution control via Docker, and an integrated SCADA system for HMI.
This course is the result of all that learning and experimentation. It’s for you—to expand your capabilities and realize your potential. It’s for the community—to broaden the user base and help move this gem forward. And it’s for everyone out there—to spark creativity and support new ideas.
I hope you enjoy the journey as much as I did.