Echidna is a compiler and virtual machine run-time for IEC 61131-3 languages for programmable controllers. This project can be used to create programmable logic controllers for interface with industrial automation, Internet-of-Things (IoT) and I/O control applications.
- Preemptive, high performance virtual machine run-time
- IEC 61131-3 language compiler supporting Instruction List (IL)
- Support for all IEC 61131-3 standard functions, function blocks and configuration elements
- API support for custom function and function block extensions
- Comprehensive test suite
The following shows an echidna application running on a Raspberry Pi 1 Model B with PiFace Digital I/O board.
- libev - High-performance event loop modelled after libevent
- libconfig - C/C++ library for processing configuration files
- protobuf-c - Protocol Buffers implementation in C
- GNU bison - General purpose parser-generator (build dependency)
- GNU flex - Fast lexical analyser generator (build dependency)
- µnit - C unit testing framework (test dependency)
- gcovr - Generate code coverage reports with gcc/gcov (test dependency)
The echidna compiler and virtual machine run-time can only be built from source. No pre-built binary packages have been issued or released for this project.
$ git clone https://github.com/61131/echidna.git
$ cd echidna
$ make tests
$ make
Following a successful build, the echidna binary can be found in the src sub-directory. This can be used to compile and execute any of the supplied IEC 61131-3 language applications that can be found in the examples sub-directory.
- IEC 61131-3:2013 Programmable controllers - Part 3: Programming languages (Edition 3.0)
- IEC 61131-3:2003 Programmable controllers - Part 3: Programming languages (Edition 2.0)