You are here: Home / RTLWS 1999-2017 / RTLWS Submitted Papers / 
2024-12-01 - 21:10

Dates and Events:

OSADL Articles:

2024-10-02 12:00

Linux is now an RTOS!

PREEMPT_RT is mainline - What's next?


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 Framework for real-time component-based control applications

Michael Wahler, ABB Corporate Research, Industrial Software Systems
Atul Kumar, ABB Corporate Research, Industrial Software Systems
Stefan Richter, ABB Corporate Research, Industrial Software Systems

Control loops consist of applications that periodically receive inputs (e.g., from sensors), perform computations using the input received, their internal state, and data provided by other applications, and produce an output. Upon invocation, these applications must terminate within a given deadline. Controllers can execute more than one such application simultaneously. Therefore, the controller’s scheduler needs to schedule these applications such that their individual timing constraints are met. This is typically achieved using different threads of control. Synchronization of such threads is a difficult problem, particularly in the face of growing control system complexity and new parallel hardware architectures. Reuse of control applications on different systems is complicated because threads often have interdependencies, which render the resulting software system monolithic. Even when the control applications are written in a structured way, the use of global variables and tight coupling to the embedded platform hinder reuse.

We have built a real-time software framework for cyclic controllers based on a real-time Linux kernel in which data and behavior are encapsulated in components. This framework offers abstractions for common platform concepts (e.g., threads, IPC), which allows developers to specify components in a platform-independent way. Furthermore, each platform concept can be implemented in different ways (e.g., storing components in different address spaces or in the same address space), which allows for variations of the framework meeting specific requirements. Furthermore, the framework provides a structured language for defining static, but flexible schedules for components. Since components have well-defined interfaces and execution behavior they can easily be used across projects. Because of the framework’s abstraction mechanisms many components can even be reused on different hardware and operating systems. The encapsulation of data and the deterministic behavior of the algorithms in the component allow for flexible scheduling without the need for synchronization between concurrently executed components.

The framework allows for the creation of logically distributed control systems. Concurrently executed components may pose an alternative to traditional concurrency mechanisms such as threads. We further envision extending the framework such that it supports physically distributed control applications in which the components of an application are distributed across multiple controllers. This raises new challenges: real-time, reliable message passing between components; a global schedule that takes into account the timing requirements of all applications; and a fine-grained time synchronization mechanism for a common understanding of time across the controllers.