Installation¶
Pre-built Packages¶
Download and run the installer: PiPLC-{version}-Setup.exe
The installer places PiPLC in C:\Program Files\PiPLC, creates desktop/start menu shortcuts, and registers .plcproj, .mplcproj, and .hmi file associations.
Installed executables:
PiPLC.exe— the GUI editorPiPLC-HMI.exe— the standalone HMI application
Note
On Windows, only the editor, standalone HMI, and virtual simulator are available. GPIO hardware access requires Linux.
Install the pre-built .deb package:
sudo dpkg -i piplc_{version}_arm64_trixie.deb
sudo apt-get install -f # install any missing dependencies
This installs:
piplc— the GUI editor at/usr/bin/piplcpiplc-engine— the headless engine server at/usr/bin/piplc-enginepiplc-hmi— the standalone HMI application at/usr/bin/piplc-hmipiplc-engine.service— a systemd service that auto-starts the engine on boot- I/O provider plugins at
/usr/lib/piplc/plugins/io-providers/
The engine daemon starts automatically after install, listening on port 9100.
Building from Source¶
Prerequisites¶
- CMake 3.16 or later
- Qt 6.5+ with Widgets, WebSockets, Svg, and Test modules
- C++17 compatible compiler (GCC 11+, MSVC 2019+, Clang 14+)
- Ninja (recommended) or Make
Build Steps¶
Running Tests¶
| Test Suite | Coverage |
|---|---|
| Model | Address, Variable, Instruction, Rung, Branch, Program |
| Instructions | Timer, Counter, Math, Compare, Bitwise |
| Decorators | TON, TOF, OSR, OSF, Debounce, Counter |
| Serialization | ProjectSerializer, MultiProjectSerializer, SymbolTableCSV |
| Runtime | MemoryManager, VirtualIOProvider, LadderExecutor, ExecutionEngine |
| Integration | EngineServer WebSocket protocol |
CI/CD¶
The project uses GitHub Actions for continuous integration:
- Windows x64: MSVC build with Qt 6.5.3
- Linux x64: GCC build with code coverage
- Linux ARM64: QEMU-emulated build for Raspberry Pi compatibility