blob: ef69b200b4027f6c0c7973cfe1a9cacfe94a5ad5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
\contentsline {section}{\numberline {1}Einf\"uhrung}{5}{section.1}
\contentsline {subsection}{\numberline {1.1}Aufgabenstellung}{5}{subsection.1.1}
\contentsline {subsection}{\numberline {1.2}Zielsetzung}{6}{subsection.1.2}
\contentsline {subsection}{\numberline {1.3}pers\"onliche Motivation}{6}{subsection.1.3}
\contentsline {subsection}{\numberline {1.4}Gliederung}{7}{subsection.1.4}
\contentsline {section}{\numberline {2}Grundlagen}{8}{section.2}
\contentsline {subsection}{\numberline {2.1}Kommunikation in der Automatisierungstechnik}{8}{subsection.2.1}
\contentsline {subsection}{\numberline {2.2}openSource Entwicklungsmodell}{10}{subsection.2.2}
\contentsline {subsection}{\numberline {2.3}Echtzeitsystem}{10}{subsection.2.3}
\contentsline {subsubsection}{\numberline {2.3.1}RTOS}{11}{subsubsection.2.3.1}
\contentsline {subsection}{\numberline {2.4}embedded Systems}{12}{subsection.2.4}
\contentsline {subsection}{\numberline {2.5}verteilte Systeme}{13}{subsection.2.5}
\contentsline {subsection}{\numberline {2.6}CORBA}{15}{subsection.2.6}
\contentsline {subsubsection}{\numberline {2.6.1}ORB}{16}{subsubsection.2.6.1}
\contentsline {paragraph}{\numberline {2.6.1.1}ORB Interface}{17}{paragraph.2.6.1.1}
\contentsline {paragraph}{\numberline {2.6.1.2}IFR - Interface Repository}{17}{paragraph.2.6.1.2}
\contentsline {paragraph}{\numberline {2.6.1.3}DII - Dynamic Invocation Interface}{17}{paragraph.2.6.1.3}
\contentsline {paragraph}{\numberline {2.6.1.4}POA}{17}{paragraph.2.6.1.4}
\contentsline {subsubsection}{\numberline {2.6.2}Policies}{17}{subsubsection.2.6.2}
\contentsline {subsubsection}{\numberline {2.6.3}IDL}{18}{subsubsection.2.6.3}
\contentsline {subsubsection}{\numberline {2.6.4}DataType Mapping}{18}{subsubsection.2.6.4}
\contentsline {subsubsection}{\numberline {2.6.5}IOR}{18}{subsubsection.2.6.5}
\contentsline {subsection}{\numberline {2.7}Real-time CORBA}{19}{subsection.2.7}
\contentsline {subsubsection}{\numberline {2.7.1}RTCORBA Priority}{20}{subsubsection.2.7.1}
\contentsline {subsubsection}{\numberline {2.7.2}Scheduling Service}{20}{subsubsection.2.7.2}
\contentsline {subsubsection}{\numberline {2.7.3}RTORB - Real-time Object Request Broker}{20}{subsubsection.2.7.3}
\contentsline {subsubsection}{\numberline {2.7.4}Threadpool}{21}{subsubsection.2.7.4}
\contentsline {subsubsection}{\numberline {2.7.5}Priorisierung der Netzwerkverbindung}{21}{subsubsection.2.7.5}
\contentsline {subsection}{\numberline {2.8}CORBA Services}{21}{subsection.2.8}
\contentsline {subsubsection}{\numberline {2.8.1}NamingService}{21}{subsubsection.2.8.1}
\contentsline {subsubsection}{\numberline {2.8.2}RT EventService}{21}{subsubsection.2.8.2}
\contentsline {subsection}{\numberline {2.9}Ice}{22}{subsection.2.9}
\contentsline {section}{\numberline {3}Performancebewertung}{23}{section.3}
\contentsline {subsection}{\numberline {3.1}Ende zu Ende Latenz messen}{23}{subsection.3.1}
\contentsline {subsection}{\numberline {3.2}Lastsimulationen}{25}{subsection.3.2}
\contentsline {subsection}{\numberline {3.3}RTCORBA Applikationen}{26}{subsection.3.3}
\contentsline {subsubsection}{\numberline {3.3.1}ACE}{26}{subsubsection.3.3.1}
\contentsline {subsubsection}{\numberline {3.3.2}TAO}{27}{subsubsection.3.3.2}
\contentsline {paragraph}{\numberline {3.3.2.1}Scheduling}{28}{paragraph.3.3.2.1}
\contentsline {subparagraph}{RT\_ Info}{29}{section*.4}
\contentsline {paragraph}{\numberline {3.3.2.2}RTPOA}{31}{paragraph.3.3.2.2}
\contentsline {subsubsection}{\numberline {3.3.3}V1 Prozessabbild \"ubertragen}{31}{subsubsection.3.3.3}
\contentsline {paragraph}{\numberline {3.3.3.1}Softwaredesign}{31}{paragraph.3.3.3.1}
\contentsline {paragraph}{\numberline {3.3.3.2}Datenfluss}{31}{paragraph.3.3.3.2}
\contentsline {paragraph}{\numberline {3.3.3.3}Konfiguration}{33}{paragraph.3.3.3.3}
\contentsline {subparagraph}{RT\_ PREEMPT Priorisierung}{33}{section*.5}
\contentsline {subparagraph}{ACE/TAO Konfiguration}{34}{section*.6}
\contentsline {paragraph}{\numberline {3.3.3.4}Ergebnisse}{35}{paragraph.3.3.3.4}
\contentsline {subparagraph}{Latenzschwankungen bei flood ping auf CPX2 (Receiver)}{37}{section*.7}
\contentsline {subparagraph}{L\"osungsans\"atze}{37}{section*.8}
\contentsline {subparagraph}{L\"osung}{37}{section*.9}
\contentsline {subparagraph}{Anmerkungen zu den weiteren L\"osungsm\"oglichkeiten}{39}{section*.10}
\contentsline {subsubsection}{\numberline {3.3.4}V2 Prozessabbild via RT EventService \"ubertragen}{39}{subsubsection.3.3.4}
\contentsline {paragraph}{\numberline {3.3.4.1}Softwaredesign}{39}{paragraph.3.3.4.1}
\contentsline {paragraph}{\numberline {3.3.4.2}Programmablauf}{39}{paragraph.3.3.4.2}
\contentsline {paragraph}{\numberline {3.3.4.3}Konfiguration}{40}{paragraph.3.3.4.3}
\contentsline {paragraph}{\numberline {3.3.4.4}Ergebnisse}{40}{paragraph.3.3.4.4}
\contentsline {subsubsection}{\numberline {3.3.5}V3 TAO Scheduler}{41}{subsubsection.3.3.5}
\contentsline {paragraph}{\numberline {3.3.5.1}Konfiguration}{41}{paragraph.3.3.5.1}
\contentsline {paragraph}{\numberline {3.3.5.2}Ergebnis}{41}{paragraph.3.3.5.2}
\contentsline {subsubsection}{\numberline {3.3.6}V4 Verhalten bei gr\"o\ss eren Datenmengen}{41}{subsubsection.3.3.6}
\contentsline {paragraph}{\numberline {3.3.6.1}Ergebnis}{42}{paragraph.3.3.6.1}
\contentsline {subsubsection}{\numberline {3.3.7}V5 geswitchtes Netz mit mehreren Teilnehmern}{42}{subsubsection.3.3.7}
\contentsline {paragraph}{\numberline {3.3.7.1}Softwaredesign}{42}{paragraph.3.3.7.1}
\contentsline {paragraph}{\numberline {3.3.7.2}Konfiguration}{43}{paragraph.3.3.7.2}
\contentsline {paragraph}{\numberline {3.3.7.3}Ergebnisse}{44}{paragraph.3.3.7.3}
\contentsline {subsection}{\numberline {3.4}V6 Prozessabbild \"ubertragen mit Ice}{48}{subsection.3.4}
\contentsline {subsection}{\numberline {3.5}Fazit}{48}{subsection.3.5}
\contentsline {section}{\numberline {4}Memory Footprints}{49}{section.4}
\contentsline {subsection}{\numberline {4.1}ACE/TAO statisch compilieren}{49}{subsection.4.1}
\contentsline {subsection}{\numberline {4.2}Erstellen von ACE/TAO Library subsets}{50}{subsection.4.2}
\contentsline {subsubsection}{\numberline {4.2.1}Installation}{50}{subsubsection.4.2.1}
\contentsline {subsubsection}{\numberline {4.2.2}Anwendungsbeispiel}{50}{subsubsection.4.2.2}
\contentsline {subsubsection}{\numberline {4.2.3}Fazit}{51}{subsubsection.4.2.3}
\contentsline {section}{\numberline {5}Kommunikation zwischen .NET/C\# und CORBA}{52}{section.5}
\contentsline {subsection}{\numberline {5.1}IIOP.NET}{52}{subsection.5.1}
\contentsline {subsection}{\numberline {5.2}RemotingCORBA}{53}{subsection.5.2}
\contentsline {subsection}{\numberline {5.3}J-Integra Espresso}{54}{subsection.5.3}
\contentsline {subsection}{\numberline {5.4}\"Uberpr\"ufung der Machbarkeit}{54}{subsection.5.4}
\contentsline {section}{\numberline {6}Implementierung}{56}{section.6}
\contentsline {subsection}{\numberline {6.1}Zugriff auf die digitalen Ein- und Ausg\"ange der CPX}{56}{subsection.6.1}
\contentsline {subsection}{\numberline {6.2}Projektverwaltung mit MakeProjectCreator}{57}{subsection.6.2}
\contentsline {subsection}{\numberline {6.3}Kommunikation zwischen C\# und C++ mittels IIOP.NET und CORBA}{58}{subsection.6.3}
\contentsline {subsubsection}{\numberline {6.3.1}Codierung}{60}{subsubsection.6.3.1}
\contentsline {subsubsection}{\numberline {6.3.2}Start der verteilten Anwendung}{71}{subsubsection.6.3.2}
\contentsline {section}{\numberline {7}Integration}{73}{section.7}
\contentsline {subsection}{\numberline {7.1}generische RTCORBA Schnittstelle}{73}{subsection.7.1}
\contentsline {subsection}{\numberline {7.2}DAIS}{73}{subsection.7.2}
\contentsline {subsection}{\numberline {7.3}Anbindung des .NET HMI}{74}{subsection.7.3}
\contentsline {section}{\numberline {8}Fazit}{75}{section.8}
\contentsline {subsection}{\numberline {8.1}Dank}{76}{subsection.8.1}
\contentsline {subsection}{\numberline {8.2}Exkursionen}{76}{subsection.8.2}
\wisecftsetpnumwidth {4em} \wisecftsetrmarg {5em}
\contentsline {section}{Anh\"ange}{I}{subsection.8.2}
\contentsline {section}{Abbildungsverzeichnis}{I}{section*.11}
\contentsline {section}{Tabellenverzeichnis}{III}{section*.12}
\contentsline {section}{Abk\"urzungsverzeichnis}{IV}{section*.13}
\contentsline {section}{Literaturverzeichnis}{VII}{section*.14}
\contentsline {section}{\numberline {A}Systemkonfiguration}{XIV}{section.A}
\contentsline {subsection}{\numberline {A.1}Software}{XIV}{subsection.A.1}
\contentsline {subsubsection}{\numberline {A.1.1}Linux mit RT\_ PREEMPT Patch}{XIV}{subsubsection.A.1.1}
\contentsline {subsubsection}{\numberline {A.1.2}ACE}{XVI}{subsubsection.A.1.2}
\contentsline {subsubsection}{\numberline {A.1.3}gperf}{XVI}{subsubsection.A.1.3}
\contentsline {subsubsection}{\numberline {A.1.4}TAO}{XVI}{subsubsection.A.1.4}
\contentsline {subsubsection}{\numberline {A.1.5}Mono Entwicklungsumgebung}{XVII}{subsubsection.A.1.5}
\contentsline {subsubsection}{\numberline {A.1.6}IIOP.NET}{XVII}{subsubsection.A.1.6}
\contentsline {subsection}{\numberline {A.2}Hardware}{XVII}{subsection.A.2}
\contentsline {subsubsection}{\numberline {A.2.1}technische Daten}{XVII}{subsubsection.A.2.1}
\contentsline {subsubsection}{\numberline {A.2.2}Operation Panel}{XVIII}{subsubsection.A.2.2}
\contentsline {subsubsection}{\numberline {A.2.3}digitale Ein- und Ausg\"ange}{XVIII}{subsubsection.A.2.3}
\contentsline {subsubsection}{\numberline {A.2.4}Ethernet}{XIX}{subsubsection.A.2.4}
\contentsline {section}{\numberline {B}Tools}{XX}{section.B}
\contentsline {subsection}{\numberline {B.1}selbst entwickeltes Tool: latencyTest}{XX}{subsection.B.1}
\contentsline {subsection}{\numberline {B.2}verwendete, frei verf\"ugbare Tools}{XX}{subsection.B.2}
\contentsline {section}{\numberline {C}Inhalt CD-ROM}{XXII}{section.C}
\contentsline {section}{Ehrenw\"ortliche Erkl\"arung}{XXIII}{section*.15}
\wisecftsetpnumwidth {1.55em} \wisecftsetrmarg {2.55em}
|