// the find
thiagoralves/OpenPLC_v3
OpenPLC Runtime version 3
OpenPLC Runtime v3 is the C++ soft-PLC runtime and web UI from the OpenPLC project. It runs control programs on Linux, Cygwin, Raspberry Pi, or Docker, and it is aimed at researchers, students, and anyone who needs a cheap PLC for a lab. The README says the project is end of life and points users to OpenPLC Runtime v4.
The whole runtime is open, and the repo also vendors a DNP3 stack under utils/dnp3_src and includes EtherNet/IP and S7 protocol documentation, which explains why it keeps appearing in ICS security papers. install.sh takes a platform argument and covers Debian, Fedora, openSUSE, Alpine, Raspberry Pi, and Cygwin, and the Dockerfile builds the same runtime for containers. EtherCAT is an opt-in build path (./install.sh linux ethercat) rather than a separate fork.
The project is end of life, so nothing in it will get security fixes or protocol updates, and a deployment exposed to a network is running frozen code. The Travis badge points at travis-ci.org, which stopped serving builds in 2021, so the build status shown in the README is stale. Binary artifacts are committed to the tree, including installed.db at the root and wget.exe under utils/apt-cyg, which makes the repo a poor base to fork without cleaning it up first. The Docker example needs --privileged, which gives a container far more host access than a web UI and PLC runtime should need outside a lab.