You are here: Home / Science / 
2019-01-16 - 08:57
Details of the Real Time Linux Foundation Working Group Project

OSADL Project: Real Time Linux Workshops

Real Time Linux Foundation Workshops since 1999

Real Time Linux Workshops

1999 - 2000 - 2001 - 2002 - 2003 - 2004 - 2005 - 2006 - 2007 - 2008 - 2009 - 2010

Ninth Real-Time Linux Workshop on November 2 to 4, 2007, in Linz, Austria

A Client-Server Based Real-Time Control Tool for Complex Distributed Systems

Axenie Cristian, Stancu Alexandru, Zanoschi Aurelian, Pascalin Andrei, Perjeru Marius, Maftei Florentina

Todays trends in Control Engineering and Computer Engineering are blending gradually into a slightly challenging area, the improvement of Real-Time implementations. Applications should timely deliver synchronized data-sets, minimize latency and jitter in their response and by using a efficient scheduling algorithm to be able to determine various system resources to meet optimal allocation and their performance specifications. As Real-Time systems are increasing their complexity and safety-critical aspects, there is a new trend to raise software development level of abstraction from programming languages to concrete standard models.By accepting the challenge of developing a Real Time application we had been able to design and build a slightly alternative method to implement control algorithms in industrial distributed systems.The main application is designed on the client-server model because we are handling a homogeneous distributed system from the OS point of view, because each node of the system uses a similar OS but different programming languages.

The main node or the controller is a Linux OS based computer (Red Hat 9 distro) configured with the Real-Time patch (the RTAI modules) and it offers the possibility to implement the control algorithm, due to its direct connection with the controlled industrial process. The second important node in the distributed system is the data and command server, designed as a Linux OS based computer that hosts a second part of the application using a data server to modify the parameters of the control algorithm found in the running application on the main node(server). To complete the distributed architecture we included in our design some clients, Linux OS based computers that are only able to access logs, data charts from the process and other parameters needed for monitoring. The design pattern for developing the application uses a specific architecture , consisting in several concrete layers gathered in a stack like dependence. The base level is the physical level of the DAQ card that ensures communication directly with the controlled process. The raw or formatted data gathered from the process are sent to the next level application running on the Linux OS based server. The interface between the DAQ card and the application is ensured by a set of drivers from the Comedi/Comedilib library and the OS specific functions, to maintain and enhance the Real-Time features used in the data acquisition and processing. The second level introduces the C++ application specific. It reveals an OOP design pattern used to enhance productivity and flexibility. The center of the C++ application is based on the common use of the RTAI specific methods for real-time tasks in data handling and commands and of course the tool for implementing the control algorithm. To maintain the flexibility and portability of the application the Grafcet tool was chosen because its real advantages in dividing the process in sub-processes. Using this feature we are able to choose a soft real-time or hard real time implementation. Using the Grafcet we would be able to easily modify the specific controlled elements regarding the process components, implementing a good parallel execution tool by describing the evolution of the process and its actions offering a proven independence over the technology. The third level is the communication level between the C++ application and the Java application running on the data and command server. The communication channel uses a TCP/IP protocol that offer an efficient method to maintain parameters interchange and command communication. Between the two software applications we managed to create a certain compatibility pattern to easily ensure the communication, so we designed a similar class architecture using a data class, a grafcet class, a server control class, a sensor class, an actuator class and a system class that all are encapsuling functionality. The last two levels due to their resemblance in implementation are treated together so the Java application in responsible to send control commands to the grafcet class and also send/receive data from the process through the C++ application and via TCP/IP. The client nodes are based on a data client class that is designed as a Java GUI to permanently interact with the user that monitors the process at a certain time. The developed solution was designed to meet certain accessibility features, including portability, the use of free or low-cost auxiliary software(OS,SDK platforms)and practical use in a large area of industrial control processes.


Valid XHTML 1.0 Transitional