summaryrefslogtreecommitdiff
path: root/paper.tex
diff options
context:
space:
mode:
Diffstat (limited to 'paper.tex')
-rwxr-xr-xpaper.tex46
1 files changed, 28 insertions, 18 deletions
diff --git a/paper.tex b/paper.tex
index f6c1679..f56561c 100755
--- a/paper.tex
+++ b/paper.tex
@@ -7,6 +7,20 @@
\usepackage[english]{babel}
\usepackage{multicol}
\usepackage{listings}
+\usepackage{epsfig}
+\newcounter{figcounter}
+\def\epsin #1#2#3#4{
+ \refstepcounter{figcounter} \label{#3}
+ \[
+ \mbox{
+ \epsfxsize=#2mm
+ \epsffile{./img/#1.eps}
+ }
+ \]
+ \begin{center}
+ \parbox{7cm}{{\bf FIGURE \arabic{figcounter}:}\quad {\it #4 } } \\
+ \end{center}
+}
\setlength{\paperheight}{297mm}
\setlength{\paperwidth}{210mm}
@@ -26,21 +40,6 @@
%% insert eps pictures
%% use as \epsin{epsfile}{width_in_mm}{label}{caption}
-\usepackage{epsfig}
-\newcounter{figcounter}
-\def\epsin #1#2#3#4{
-\refstepcounter{figcounter} \label{#3}
-\[
-\mbox{
- \epsfxsize=#2mm
- \epsffile{#1.eps}
-}
-\]
-%\vspace{0mm}
-\begin{center}
- \parbox{7cm}{{\bf FIGURE \arabic{figcounter}:}\quad {\it #4 } } \\
-\end{center}
-}
%% insert table
%% use as \tabin{size_in_mm}{label}{caption}{table_data}
@@ -122,13 +121,18 @@ Automation technology lacks an established platform independent, high-level, obj
Currently communication in automation is mainly realized with a huge number of different fieldbuses. However since 2005 there is an increasing trend, for using ethernet based communication methods. Another trend is, using PCs and software for simulating PLCs. But why not combine these two trends, to control machines in real-time with object-orientated middleware? The infrastructure is already given\dots
\subsection{CORBA}
-CORBA is a Middleware, which allows RPC\footnote{Remote Procedure Call}-based IPC\footnote{Inter Process Communication} between different operating systems and different programming languages (Figure Y). The communication interfaces are defined in IDL\footnote{Interface Definition Language}. The IDL files are compiled into, e.g. c++, java, \dots, code which does the (de)serialization of the datatypes. The interface implementations (CORBA objects) are registered at language specific ORB\footnote{Object Request Broker}s. Each CORBA process owns one ORB, which handles the function requests and returns the calculated values.
+CORBA is a Middleware, which allows RPC\footnote{Remote Procedure Call}-based IPC\footnote{Inter Process Communication} between different operating systems and different programming languages (Figure 1).
+\epsin{orb}{80}{fig1:f1}{CORBA Architecture}
+The communication interfaces are defined in IDL\footnote{Interface Definition Language}. The IDL files are compiled into, e.g. c++, java, \dots, code which does the (de)serialization of the datatypes. The interface implementations (CORBA objects) are registered at language specific ORB\footnote{Object Request Broker}s. Each CORBA process owns one ORB, which handles the function requests and returns the calculated values.
\subsection{real-time CORBA}
-As shown in figure X, a real-time capable ORB extends a standard ORB with the following features: locating objects in constant time, preallocation of resources, operating system independent priority handling, priority based scheduling.
+\epsin{rtcorbaext}{80}{fig1:f2}{Real-time CORBA}
+As shown in figure 2, a real-time capable ORB extends a standard ORB with the following features: locating objects in constant time, preallocation of resources, operating system independent priority handling, priority based scheduling.
\subsection{ACE/TAO}
-ACE is an open-source c++ framework for platform-independent system- and network-programming. TAO is a real-time CORBA implementation build on top of ACE.
+ACE is an open-source c++ framework for platform-independent system- and network-programming. TAO is a real-time CORBA implementation build on top of ACE (Figure 3).
+
+\epsin{ace}{80}{fig1:f3}{ACE/TAO framework}
The ACE/TAO package is available for all important operating systems. The hole framework is trimmed for embedded systems: Each application described in this paper consumes less than 1 MByte of RAM. Also the consumed CPU time is suprisingly low.
@@ -139,6 +143,8 @@ The ACE/TAO package is available for all important operating systems. The hole f
The measurements were made on embedded systems (Intel Mobile CPU 600 MHz, 512 MB RAM, Intel e100 NIC) with digital I/0 ports. A square-pulse generator is connected with the digital input on the first embedded system (sender) and channel 1 of the oscilloscope. The digital outputs of the embedded systems 2 and 3 (receivers) are connected with channel 2 and 3 of the oscilloscope.
+\epsin{versuch1}{80}{fig1:f4}{Measurement environment}
+
\subsection{RPC}
Each receiver hosts an object, for writting values to its digital output:
@@ -154,6 +160,8 @@ module benchmark{
The \textit{Port} function is called by the \textit{sender} as soon as the state of one of its digital inputs changes. The real end to end latency is meassured with the oscilloscope.
+\epsin{sequenzV1}{80}{fig1:f5}{RPC measurement: sequence diagramm}
+
To simulate the transmission of bigger process data images, a parameter \textit{in string data} was added to the \textit{Port} function. The string was read in from a text file, so his length, could be changed after compile time, by editing the text file.
For testing the priorization based scheduling, the following interface was added:
@@ -176,6 +184,8 @@ The TAO real-time Event-Channel is a CORBA Messaging Service. Suppliers are send
As soon as the value of the digital input of the Supplier changes, the new value of the digital input port is send to the Messaging Service. The Messaging Service sends this value, to all subscribed clients. A client writes the values from the messages, to their digital output.
+\epsin{sequenzV2}{80}{fig1:f6}{Event-Channel measurement: sequence diagramm}
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% NEXT SECTION (OPTIONAL)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%