Programmable Logic Controllers (PLCs) are widely used to control from a simple garage door to everything in factories. There are legions of specialized PLC programmers who make those machines do their work. A set of textual and graphical programming languages is standardized in IEC-61131. In order to add some programmability to control machinery in a embedded system written in Erlang (running on RTEMS) we picked one of those languages, Structured Text and implement a compiler for it in Erlang targeting BEAM (via Core Erlang).
There is even a recent extension for distributed PLCs standardized in IEC-61499, which we implement. These extensions fit naturally on Erlang processes and messages which makes distributed PLC applications overlaid on distributed Erlang embedded application work very well.
There are plans to get hard realtime behaviour for the IEC 61131/61499 subsystem which can be a testbed for a extended subset of Erlang for the hard realtime parts of embedded systems which until now still have to be written in C.
Talk abstract:
Getting a short overview of standardized programming languages used in PLC.
Showing how OTPs built in tools leex and yecc can be used to implement a compiler for one of the languages. Showing how to map PLC languages which have some inherent concurrency on Erlang processes and messages.
Target audience:
- Language enthusiasts
- Embedded developers
- People interested in compilers written in Erlang
- PLC programmers should there be any on the conference
Slides
Peer ported Erlang to Hard-Realtime Operationg system RTEMS (www.grisp.org). He developed the Hydraprog automotive control unit flashing device which has been used successfully all over the world for over a decade. Since 2007 the firmware of the device is written mainly in Erlang - including protocol stacks for all existing automotive protocols. Currently developing industrial transport system controller with Erlang in a small embedded system. Initially mastered in Physics at the Technical University Munich, Peer has broad experience ranging from low level device drivers to functional languages in industrial and automotive applications. He has been working self employed as a developer since 1987. He did consulting work in applied cryptography and protocol design and implementation. Peer is currently living and working in the nice countryside west of Munich, Bavaria. Twitter:
@peerstr