Abstract

PC based controls are getting more and more popular. Operating Systems and a huge number of special libraries guarantee a fast development process. Real-time communication between drives often is important in automation. Most suitable is a Real-time communication based on standard pc hardware. In this case there is no need to develop a special driver for each platform.

Currently, there is no defined standard for a platform- and operatingsystem independet Real-time communication, in automation. The only specification, which fulfills these needs, is OMGs Real-time CORBA. ACE/TAO is an open source, platform-independent C++ implementation of this standard. This thesis describes the process of research done, to check if ACE/TAO meets the requirements to be used in a industrial welding laser control, based on Real-time Linux.

To measure the latency, for transmitting data between two embedded Linux systems, a test environment was build. A square wave signal was put on a digital input of one system. Each edge caused sending current digital port state + testdata via ethernet and Real-time CORBA to a second system. On the second system the digital output ports where set to the state of the digital inputs on system one. It was discovered, that 1kB data can be transmitted by ACE/TAO Real-time CORBA in 1 ms, under hard real-time conditions. Measurements with more than 2 embedded systems and a Real-time ethernet switch were made to check, if priorisation works correctly. As long as all components (ACE/TAO, Real-time switch, Real-time Linux) were configured in proper style, a Priority Inversion may not be evidenced.

Memory Footprint in RAM was with less than 1 MB astonishing small, footprint in mass-storage with about 30 MB rather suboptimal. The performance of the 600 MHz CPU on the embedded system satisfied all tests.

A feasibility study discovers C#/.NET CORBA integration. Most methods, available at the market, for establishing a CORBA connection out of C# were compared. An example application to control a Real-time C++ process, out of a .NET/C#, GTK# graphical user interface, was created with mono, GTK#, IIOP.NET and ACE/TAO. It demonstrates that it is possible to host a CORBA Object and to get access to a ACE/TAO hostet CORBA Object, out of C#.

Manuel Traut 2007-02-25