SkillAgentSearch skills...

Echidna

Compiler and virtual machine run-time for IEC 61131-3 languages

Install / Use

/learn @61131/Echidna
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"><img width="40%" src="https://github.com/61131/echidna/blob/master/media/logo.jpg?raw=true" /></p>

Codacy Badge Build Status Coverage GitHub

Overview

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.

Features

  • 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

Demonstration

The following shows an echidna application running on a Raspberry Pi 1 Model B with PiFace Digital I/O board.

<p align="center"><a href="https://www.youtube.com/watch?v=a_vYcMlqOW0"><img width="50%" src="https://github.com/61131/echidna/blob/master/media/raspberrypi.gif?raw=true" /></a></p>

Dependencies

  • 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)

Installation

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.

Links

  • 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)

Related Skills

View on GitHub
GitHub Stars67
CategoryDevelopment
Updated1mo ago
Forks21

Languages

C

Security Score

100/100

Audited on Mar 1, 2026

No findings