⚠ This project's capabilities are limited to a parser, semantic analyzer, and Visual Studio Code Extension that are that are building blocks for a complete IEC 61131-3 runtime and development environment.
IronPLC aims to be a SoftPLC written entirely in safe Rust for embedded devices running programs written in the IEC 61131-3 language.
SoftPLCs enable embedded and other computers to operate as programmable logic controllers (PLCs) that execute all sorts of processes from home automation and factories machines to industrial process and electrical power grid control. PLC devices do this by implementing control algorithms that connect to sensors, transducers and actuators through analog/digital IO, industrial protocols such as I²C and Modbus, or even common internet protocol such as HTTP.
A complete runtime and development environment for IEC 61131-3. The runtime aims to be written entirely in safe Rust to prevent security issues. The development environment aims to be available via Visual Studio Code to provide a first class environment.
The project is progressing towards a minimum loveable product. What works today:
- ✅ Syntax highlighting
- ✅ Analysis of structured text files
- ✅ Visual Studio Code Extension
- ✅ Documentation website
What doesn't work:
- Executing structured text
IronPLC supports:
- ✅ Windows
- ✅ MacOS
- ✅ Linux (probably)
Go to ironplc.com and follow the instructions to get started.
Contributions are very welcome. See CONTRIBUTING.md for details.
Create an issue to reach out about IronPLC.
- RuSTy - Structured text compiler written in Rust. RuSTy is further along but the LGPL and LGPL licenses are difficult for industrial uses.
- Structured Text language Support - Structured text language support for Visual Studio Code.
- Beremiz - A Python-based PLC programming environment.
- RoboPLC - A Rust framework for creating industrial control appliances
- msr - A Rust library for industrial automation.
- ethercat-rs - An experimental Rust automation toolbox using the IgH (Etherlab) EtherCAT master.
- rustmatic - Rustmatic is a thought experiment on creating a PLC-like environment in Rust.