\section*{Zusammenfassung}

Computerbasierte Steuerungen werden in der Automatisierungstechnik immer h\"aufiger eingesetzt. Die Verf\"ugbarkeit von Libraries und Betriebssystemen versprechen einen schnellen Entwicklungszyklus, sowie niedrigere Entwicklungskosten. In der Automatisierungstechnik werden mehrere Steuerungen, die zur Bearbeitung eines Prozesses notwendig sind, miteinander verbunden. Oft mu\ss\ die Kommunikation zwischen den Steuerungen harte Echtzeitbedingungen erf\"ullen.
Im Idealfall sollte eine Kommunikation in Echtzeit mit PC Standardkomponenten m\"oglich sein, da zus\"atzliche Hardware nur mit entsprechenden Treibern funktioniert. Diese m\"u\ss ten f\"ur alle erdenklichen Zielplattformen und Betriebssysteme implementiert werden.

Momentan hat sich f\"ur eine plattformunabh\"angige Echtzeitkommunikation, welche den beschriebenen Kriterien in der Automatisierungstechnik gen\"ugt, kein Standard etabliert.
Es gibt nur einen Standard, welcher die geforderten Kriterien erf\"ullt: die OMG Spezifikation Real-time CORBA.
Das ACE/TAO Framework von Douglas C. Schmidt ist die umfassenste Implementation des Real-time CORBA Standards in C++ und steht f\"ur unz\"ahlige Plattformen zur Verf\"ugung.

In dieser Arbeit wurde evaluiert, ob das ACE/TAO Framework f\"ur den Einsatz in einer auf Real-time Linux basierenden Lasersteuerung geeignet ist.

Zur Ermittlung der Performance von ACE/TAO wurden Ende zu Ende Messungen zwischen mehreren embedded Real-time Linux Systemen durchgef\"uhrt. Es wurde festgestellt, dass ein 1kByte gro\ss es Prozessabbild garantiert innerhalb 1 ms via Real-time CORBA zwischen zwei embedded Systemen \"ubertragen werden kann.
Desweiteren wurden Messungen durchgef\"uhrt, bei denen mehrere embedded Systeme verschieden priorisierte Nachrichten versenden. Eine Priority Inversion konnte bei korrekter Programmierung nicht nachgewiesen werden.

Zur Laufzeit wurde zu keinem Zeitpunkt ein Footprint gr\"o\ss er 1 Megabyte im Arbeitsspeicher festgestellt.
Die Libraries f\"ur die g\"angigen ACE/TAO Funktionen ben\"otigen circa 30 Megabyte Massenspeicher.

Um einen Zugriff auf die Daten der Steuerungen von .NET/C\# aus zu erm\"oglichen, wurden verschiedene Ans\"atze zur Integration von CORBA in das .NET Framework untersucht. 
Als Machbarkeitsstudie wurde eine Applikation mit IIOP.NET zur Kopplung an .NET Remoting und GTK\# f\"ur die grafische Bedienoberfl\"ache entwickelt. Es wurde gezeigt, dass es m\"oglich ist mittels IIOP.NET in C\# ein CORBA Objekt zu hosten und auf via ACE/TAO Applikation gehostete CORBA Objekte zuzugreifen.

\section*{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\#.
