Dates and Events: |
OSADL Articles:
2023-11-12 12:00
Open Source License Obligations Checklists even better nowImport the checklists to other tools, create context diffs and merged lists
2022-07-11 12:00
Call for participation in phase #4 of Open Source OPC UA open62541 support projectLetter of Intent fulfills wish list from recent survey
2022-01-13 12:00
Phase #3 of OSADL project on OPC UA PubSub over TSN successfully completedAnother 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 launchedLetter 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.