OpenPLC Runtime v4
Turns standard hardware into a deterministic PLC.
Runs IEC 61131-3 programs from OpenPLC Editor, plus Python, C and C++.
Modern Architecture
Completely redesigned architecture built for modern industrial automation needs.
Real-time Execution
SCHED_FIFO priority scheduling delivers deterministic scan cycles for reliable control.
WebSocket Debug
Secure WebSocket debug interface enables real-time variable inspection and forcing.
Plugin System
Extensible plugin system supports both Python and C/C++ plugins for hardware I/O and ICS protocols.
Multi-architecture
If it can run Linux, it can run OpenPLC Runtime. Full multi-architecture support.
Security Built-in
TLS encryption for all communications and JWT-based authentication from the ground up.
The best of both worlds
Open source to learn, test and develop on. The Autonomy Edition when it has to run a plant.
Community Edition
For learning, testing and development. The same runtime the community has run for a decade.
- Full source code, no feature gating
- MIT for the runtime, GPL-3.0 for the editor and the compiler: use, modify and redistribute
- Support through the community forum
- Widely used for research, teaching and development
Autonomy Edition
For mission-critical production: security built to IEC 62443, proprietary drivers and industrial protocols, and support behind it.
- Commercial and production use
- Built to the IEC 62443-4-1 and IEC 62443-4-2 security standards
- Proprietary device drivers and industrial communication protocols
- Commercial support and maintenance from Autonomy
Installation
Choose the installation method that best fits your environment.
Native Linux Installation
For the best performance on Linux systems, install the runtime natively.
Clone and install
git clone https://github.com/Autonomy-Logic/openplc-runtime.git cd openplc-runtime sudo ./install.sh
The installation script automatically detects your Linux distribution, installs all required dependencies, creates Python virtual environments, compiles the runtime, and creates a systemd service that automatically starts and manages the runtime.
Once installed, the runtime listens on port 8443 for connections from the OpenPLC Editor.
Managing the Runtime Service
Check status
sudo systemctl status openplc-runtime.service
Start
sudo systemctl start openplc-runtime.service
Stop
sudo systemctl stop openplc-runtime.service
Restart
sudo systemctl restart openplc-runtime.service

