You are here: Home / RTLWS 1999-2017 / RTLWS Submitted Papers / 
2024-04-19 - 11:59

Dates and Events:

OSADL Articles:

2023-11-12 12:00

Open Source License Obligations Checklists even better now

Import the checklists to other tools, create context diffs and merged lists


2023-03-01 12:00

Embedded Linux distributions

Results of the online "wish list"


2022-01-13 12:00

Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completed

Another important milestone on the way to interoperable Open Source real-time Ethernet has been reached


2021-02-09 12:00

Open Source OPC UA PubSub over TSN project phase #3 launched

Letter of Intent with call for participation is now available



Real Time Linux Workshops

1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010 - 2011 - 2012 - 2013 - 2014 - 2015

13th Real-Time Linux Workshop from October 20 to 22 at the Faculty of Electrical Engineering, Czech Technical University in Prague

Announcement - Hotels - Directions - Agenda - Paper Abstracts - Presentations - Registration - Abstract Submission - Sponsoring - Gallery

A Status Report on REACT, a Control Engine that runs on top of GNU Linux for Creating SCADA and DCS Systems

Don Carr, Zapopan, Mexico

REACT is written in C/C++, and is a project that was started in about 2002 for Masters students at the University of Guadalajara, Mexico. The design was based on the experience of the author on large SCADA systems for natural gas pipelines, natural gas distribution systems, and water distribution systems, software for testing military, industrial, and light vehicle transmissions, and research on control systems in general. REACT was designed as a general purpose control engine to scale similar to how GNU Linux scales: from tiny embedded devices in the field, all the way up to large computers. Thus, REACT can run as the central software on a server as a SCADA system, and can also run on small hardened devices as the software for an RTU, or DCS controller. It can be installed on a PC with data acquisition card to control an instrument or small machine. The first project it was used for, by chance, was to control and analyze data for an instrument for liquid chromatography with robotic system for changing samples.

Recent work has been to improve scalability,  moving the configuration to SQLite from delimited text files, and adding various data logging types. We are in the process developing a code generator to generate code / configuration for REACT running on a remote device, the web interface on a server that receives field the field data, and the. We are in the process of moving all control points (objects) to be loaded as shared objects using the dynamic linking loader API: dlopen(), dlclose(), dlsym(), dlerror(). This will keep the size down on tiny embedded systems as we will only need to load the point types required. We have previously moved the data acquisition / protocol drivers to load as shared objects.