A finite statemachine-based language and supporting software for Industrial Control and Simple Automation

View the Project on GitHub latproc/clockwork

Copyright (C) 2012 Martin Leadbeater, Michael O'Connor

See the LICENCES file for license information.

Martin Leadbeater,

PLEASE NOTE: This software is a work in progress and may be tricky to install. We are trying to improve this situation and should have some significant improvements over the next few months.

Clockwork - Language and Tools for Process Control


This software provides a high level, finite statemachine-based language called Clockwork that can be used to describe process control systems. Currently, this software supports the Beckhoff EtherCat system ( through the IgH EtherCAT Master for Linux ( and has experimental support for Internet of Things integration

Below are some instructions to help you build the program please see the documentation for details about the language itself.


Note: this software requires that the following software be installed:

* libmodbus (  - for communication with modbus/tcp terminals

* zeromq ( - for inter-program messaging

* boost ( - various c++ bits and pieces

* mosquitto ( - MQTT broker and protocol implementation

Part A - Building Latproc tools for standalone experimentation

The instructions in this part build the Clockwork programming language interpreter without the need for the IgH EtherCAT Master.

Note, the Makefile used here assumes libzmq is installed in /usr/local/

The following instructions are brutally terse at present and we apologise for that. Please watch this space for more precise instructions.

At this point, the following tools should have been created:

iod : a daemon that talks to EtherCAT to interact with io iosh : a shell to interact with iod zmq_monitor : a program to monitor zmq messages published by iod persistd : a basic persistence daemon to record state changes from iod

You may also like to install libmodbus and edit the makefile to build:

modbusd : a modbus interface to iod


Thanks to our sponsors.