CTC++ enhancements towards fault tolerance and RTAI

Engelen, Thiemo van (2004) CTC++ enhancements towards fault tolerance and RTAI.

Abstract:This report describes two enhancements to the CT library that has been developed at the Control Engineering department of the University of Twente. As control systems are inherently concurrent, the Control Engineering department does research on the design trajectory of concurrent controllers. In the past, transputers were used together with the CSP based programming language Occam. CSP is a process algebra for describing and analyzing concurrent systems. By nature, it encourages partitioning and allows one to reason about and to verify a design at an early stage of the design process. This provides a large advantage in the design trajectory of concurrent controllers. As transputers became obsolete, research shifted to a new CSP based design methodology. The CT library, GML models and the gCSP program allow users to design and implement a CSP based design in an easy way. GML models are a graphical representation of a CSP design. These can be drawn using the gCSP tool, which can generate code from the models that uses the CT library. For any embedded system, safety is an important issue. Safety can be provided by fault-tolerance. This means that the occurrence of a fault does not have to lead to a failure of the complete system. Faulttolerance can be provided both in hardware and in software. The main tool for fault-tolerance in software is an exception handling mechanism. This provides the possibility to have a piece of code guarded by an exception handler. If an exception is raised, the exception handler is executed. Because no language for which the CT library has been written provides an adequate exception handling mechanism for concurrent programs, the CT library has been extended with an exception handling mechanism. The mechanism closely resembles the try/throw/catch mechanism of C++ and Java. The added exception handling mechanism and its usage is explained in a number of examples. Some of the examples use the JIWY setup. For these examples, extra hardware was needed to have interruptdriven, digital inputs. The implemented behavior of the parallel construct could lead to deadlock. This can be solved by using channel rejection, which is also explained in a number of examples. Because of the hazard of deadlock in the current parallel implementation, it is recommended that a different behavior is researched. The programs compiled with the CT library need an operating system be able to run on a PC platform. Until now, the usable operating systems were DOS (Windows) and Linux. The second enhancement to the CT library that this report describes is the possibility run programs compiled with the CT library under RTAI, a real time Linux variant. The changes needed to the library are described. The implementation of these changes was straightforward. Issues that have to be taken care of when writing programs that use the CTC++ library under RTAI are the inability to use dynamic libraries and the inability to include Linux kernel header files. These could be solved by making it possible for CTC++ programs to run under LXRT, which is recommended for further research. Furthermore, one has to take care that the CT processes at one time all stop or block on a channel, because otherwise, the Linux kernel will not run and Linux will no longer be responsive. As an example, a CTC++ program that controls the JIWY setup running under DOS has been ported to a version that runs under RTAI.
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:53 electrotechnology
Programme:Electrical Engineering MSc (60353)
Link to this item:http://purl.utwente.nl/essays/56522
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page