Fakultät für Elektrotechnik und Informationstechnik Institut für Grundgebiete der Elektrotechnik (EIT 2) Diplomarbeit



Ähnliche Dokumente
Delphi eine Einführung

1 Mathematische Grundlagen

CNC-Fräse für die Schule BLL im Schuljahr 2008/2009

Anleitung über den Umgang mit Schildern

Programmierung in Delphi

Dokumentation IBIS Monitor

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Elektrische Logigsystem mit Rückführung

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Installation OMNIKEY 3121 USB

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

1. Die Maße für ihren Vorbaurollladen müssen von außen genommen werden.

Erstellen von x-y-diagrammen in OpenOffice.calc

Der Empfänger Kchibo D96L

Anzeige von eingescannten Rechnungen

Festigkeit von FDM-3D-Druckteilen

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Nutzung von GiS BasePac 8 im Netzwerk

GEVITAS Farben-Reaktionstest

Zugversuch. Laborskript für WP-14 WS 13/14 Zugversuch. 1) Theoretische Grundlagen: Seite 1

Elektrischer Widerstand

Hilfedatei der Oden$-Börse Stand Juni 2014

EM-Wellen. david vajda 3. Februar Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören:

Protokoll des Versuches 7: Umwandlung von elektrischer Energie in Wärmeenergie

Installationsanleitung Sander und Doll Mobilaufmaß. Stand

Software- und Druckerzuweisung Selbstlernmaterialien

BNC-, RJ45-, und Glasfaser- Netzwerkkarten

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Konzepte der Informatik

1.1 Auflösungsvermögen von Spektralapparaten

Mediator 9 - Lernprogramm

PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

Windows 7 Ordner und Dateien in die Taskleiste einfügen

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

Grafischer Tischeplan

Mean Time Between Failures (MTBF)

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

Anwendungshinweise zur Anwendung der Soziometrie

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Arbeiten mit UMLed und Delphi

Informationsblatt Induktionsbeweis

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

1. Theorie: Kondensator:

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Wie Sie mit Mastern arbeiten

FAQ 04/2015. Auswirkung der ISO auf 3SE53/3SF13 Positionsschalter.

Anleitung Postfachsystem Inhalt

Praktikum Physik. Protokoll zum Versuch: Geometrische Optik. Durchgeführt am

31-1. R.W. Pohl, Bd. III (Optik) Mayer-Kuckuck, Atomphysik Lasertechnik, eine Einführung (Physik-Bibliothek).

Optimierung und Fertigung eines Bogenmittelteils aus einer Magnesiumlegierung

GEONET Anleitung für Web-Autoren

1. EINLEITUNG 2. GLOBALE GRUPPEN Globale Gruppen anlegen

Technical Note Nr. 101

1. Einführung Erstellung einer Teillieferung Erstellung einer Teilrechnung 6

Tipps und Tricks zu den Updates

Simulation LIF5000. Abbildung 1

Primzahlen und RSA-Verschlüsselung

Gebäudediagnostik. Sachverständigenbüro Dirk Hasenack. Thermo-Check deckt Schwachstellen auf!

Plotten von Linien ( nach Jack Bresenham, 1962 )

(Lieferumfang z.b. Version C mit eingebautem Clear-Schutzfilter mit Phantom Group TM Multicoating. Gebrauchsanleitung:

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Update EPOC. 1. Inhaltsverzeichnis

2.8 Grenzflächeneffekte

Feiertage in Marvin hinterlegen

Gitterherstellung und Polarisation

Terminabgleich mit Mobiltelefonen

6 Schulungsmodul: Probenahme im Betrieb

1 Informationelle Systeme begriffliche Abgrenzung

Pädagogik. Melanie Schewtschenko. Eingewöhnung und Übergang in die Kinderkrippe. Warum ist die Beteiligung der Eltern so wichtig?

Offset, Buffer, Nullpunkt, DpH, Asymmetrie oder ph = 7.

Highspeedaufnahmen mit dem Arduino Uno Board

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

22 Optische Spektroskopie; elektromagnetisches Spektrum

Ihr Ideen- & Projektmanagement-Tool

Wir freuen uns, dass Sie mit der VR-NetWorld Software Ihren Zahlungsverkehr zukünftig einfach und sicher elektronisch abwickeln möchten.

Über Arrays und verkettete Listen Listen in Delphi

Mandant in den einzelnen Anwendungen löschen

10. Elektrische Logiksysteme mit

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

TP 6: Windenergie. 1 Versuchsaufbau. TP 6: Windenergie -TP 6.1- Zweck der Versuche:...

SICHERN DER FAVORITEN

Bitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) Seite 1

Schriftliche Abschlussprüfung Physik Realschulbildungsgang

Wir arbeiten mit Zufallszahlen

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Teaser-Bilder erstellen mit GIMP. Bildbearbeitung mit GIMP 1

= i (V) = d 2. v = d! p! n da v 1 = v 2 gilt auch d 1 ÿ p ÿ n 1 = d 2 ÿ p ÿ n 2 (III) p kürzen (Division durch p) d 1 ÿ n 1 = d 2 ÿ n 2 (IV) oder

Leere Zeilen aus Excel-Dateien entfernen

Mit TV Fitness- und Ernährungscoach Silke Kayadelen (Biggest Loser,Secret Eaters, Besser Essen)

WinVetpro im Betriebsmodus Laptop

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

ELSTER Daten versenden

Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

trivum Multiroom System Konfigurations- Anleitung Erstellen eines RS232 Protokolls am Bespiel eines Marantz SR7005

Transkript:

Fakultät für Elektrotechnik und Informationstechnik Institut für Grundgebiete der Elektrotechnik (EIT 2) Diplomarbeit Entwurf und Aufbau einer mobilen Tomografieapparatur Verfasser: Prüfer: Betreuer: Nina Klingler Prof. Dr.-Ing. Jochen Schein Dr.-Ing. Günter Forster Im April 2007

Inhaltsverzeichnis: 1 Einleitung...3 2 Messobjekt und Messverfahren...4 2.1 Messobjekt Thermischer Plasmastrahl... 4 2.1.1 Entstehung eines Plasmas... 4 2.1.2 Thermischer Plasmastrahl... 5 2.1.3 Plasmabrennertypen... 7 2.2 Messverfahren Tomografie... 9 2.2.1 Transmissionstomografie... 9 2.2.2 Emissionstomografie... 10 3 Mobile Tomografie-Apparatur...12 3.1 Mobile Tomografie-Apparatur: Hardware... 14 3.1.1 Gestell... 14 3.1.2 Antrieb... 16 3.1.3 Optik... 20 3.2 Mobile Tomografie-Apparatur: Software... 22 3.2.1 Justage und Messdatenaufnahme... 22 3.2.2 Messdatenverarbeitung und auswertung... 25 3.2.3 Ergebnispräsentation... 27 4 Ergebnisse...28 4.1 Kalibriermessung am bekannten Messobjekt... 28 4.2 Messungen am Rekombinations-Plasmastrahl einer Plasmaquelle vom Typ TRIPLEX I... 30 5 Zusammenfassung...34 6 Anhang...35 6.1 Konstruktionszeichnungen... 35 6.2 Stücklisten... 45 6.2.1 Einzelteile... 45 6.2.2 Itemprofile... 45 6.3 Software-Quellcodes... 46 6.3.1 Quellcode: Justage und Messdatenaufnahme... 46 6.3.2 Quellcode: Messdatenverarbeitung und auswertung... 52 6.3.3 Quellcode: Ergebnispräsentation... 61 7 Quellen...65

Einleitung 1 Einleitung Ein Arbeitsgebiet des Instituts 2 der Fakultät für Elektrotechnik und Informationstechnik an der Universität der Bundeswehr München ist die Neuentwicklung von Plasmaquellen für thermische Beschichtungsprozesse, speziell für das Plasmaspritzen [Dzulko(Dissertation), Zierhut(Dissertation)]. Diese Plasmaquellen produzieren einen schnell strömenden, heißen und hell leuchtenden Plasma-Rekombinationsstrahl. Die neueren Generationen von Plasmaquellen zeichnen sich durch einen zeitlich und räumlich recht stabilen Plasmastrahl aus, der außerdem über eine merkliche Abweichung von der Rotationssymmetrie verfügt. Beide Eigenschaften machen den Rekombinationsplasmastrahl wie geschaffen für die Emissionstomografie, ein mathematisches Verfahren zur Rekonstruktion der 3-dimensionalen Emissionsverteilung eines Messobjekts. Die Aufgabenstellung der vorliegenden Diplomarbeit bestand nun darin, eine mobile Tomografieapparatur zu entwerfen und aufzubauen. Die Hauptarbeitstätte für diese Diplomarbeit war das Plasmatechnik-Labor. Dort fanden die Konstruktion und Erprobung der mobilen Tomografieapparatur, sowie ein Großteil des Dokumentierens statt. Die mechanische Werkstatt fertigte die Einzelteile und war für den Zusammenbau verantwortlich. Die Diplomarbeit ist gegliedert in die Beschreibung des Messobjekts und des Messverfahrens. Danach folgt der Aufbau der mobilen Tomografieapparatur, unterteilt in Hardware und Software. Dann werden verschiedenen Messungen mit ihren Ergebnisse angeführt und am Ende folgt eine Zusammenfassung der Arbeit. - 3 -

Messobjekt und Messverfahren 2 Messobjekt und Messverfahren Das zu untersuchende Messobjekt ist der thermische Plasmastrahl, der im Labor mit verschiedenen Plasmabrennern erzeugt wird. Die Entstehung von Plasma selbst, die Herstellung, sowie eine Auswahl der verwendeten Plasmabrenner wird in dem Kapitel 2.1 Messobjekt Thermischer Plasmastrahl genauer erläutert. Als Messverfahren wird die Tomografie verwendet. Diese hat den Vorteil gegenüber anderen Verfahren, dass das Messobjekt keinerlei Beeinflussung von außen erfährt. Die verschiedenen Arten der Tomographie werden im Kapitel 2.2 Messverfahren Tomografie erklärt. 2.1 Messobjekt Thermischer Plasmastrahl In diesem Kapitel folgt eine Beschreibung über die Entstehung von Plasma, um danach den Aufbau und die Herstellung des thermischen Plasmastrahls zu beschreiben. Die dazu verwendeten Plasmabrenner folgen in 2.1.3 Plasmabrennertypen. 2.1.1 Entstehung eines Plasmas Führt man Materie nach und nach Energie zu, ändert sich der Aggregatszustand von fest über flüssig in gasförmig. Erhöht man weiterhin die Energiezufuhr, spalten sich zuerst die Moleküle im Gas in einfachere Atomgruppen auf (Dissoziation). Dann lösen sich einzelne oder mehrere Elektronen von den Atomen (Ionisation) bis ein Gemisch von freien Elektronen, Ionen und neutralen Atomen entsteht (Plasma). [1] Abb. 2.1.1.1: Plasma[8] - 4 -

Messobjekt und Messverfahren Plasma ist nach außen elektrisch neutral. Da dieses Medium aber durch freie Ladungsträger bestimmt wird, ist eine Beeinflussung durch elektrische und magnetische Felder möglich. Diese Eigenschaft macht es für die Forschung besonders interessant. [2] Das einzig natürlich vorkommende Plasma auf der Erde findet man in Polarlichtern und im Entladungskanal eines Blitzes. [10] Abb. 2.1.1.2: Gewitterblitze[10] 2.1.2 Thermischer Plasmastrahl Die Herstellung des Plasmastrahls im Labor erfolgt über einen Plasmabrenner. Grundsätzlich haben dort alle das gleiche Funktionsprinzip, da sie alle über einen geprägten Gleichstrom betrieben werden. Unterschiede im Aufbau gibt es lediglich in der Anzahl der Anoden und Kathoden. Die folgende Abbildung zeigt den allgemeinen Aufbau eines Plasmabrenners. Am Eingang befindet sich die Kathode. Dort wird das Plasmagas hinzugegeben. Zwischen der Anode, die sich am Ausgang befindet, und der Kathode wird der Lichtbogen gezündet, der zusammen mit dem Plasmagas, den Plasmastrahl erzeugt. Verwendetes Gas bei der Herstellung von Plasmen ist hauptsächlich Argon sowie dessen Kombination mit Helium, Stickstoff oder Wasserstoff. [3] - 5 -

Messobjekt und Messverfahren Abb. 2.1.2: Aufbau eines Plasmabrenners [6] - 6 -

Messobjekt und Messverfahren 2.1.3 Plasmabrennertypen Der am häufigsten in der Industrie verwendete Plasmabrenner ist der F4. Er besitzt eine ringförmige Anode und eine stiftförmige Kathode, die beide aus Kupfer bestehen. Aus hochschmelzendem Wolfram bestehen dagegen die Kathodenspitze und die Anodeninnenwand. Dies hat den Vorteil, dass die dort auftretenden hohen thermischen Belastungen bei gleichzeitig guter Leitfähigkeit bewältigt werden können. Der Leistungsumsatz dieses Brenners beträgt 10-50 kw bei Umgebungsdrücken von 10 4-10 6 Pa (vergleiche dazu: normaler Luftdruck auf Meereshöhe liegt bei 1,01325 x 10 5 Pa), einer Lichtbogenspannung von 20-50 V und Lichtbogenströmen von 500 1000 A. Die Plasmaquelle F4 erzeugt konstruktionsbedingt zum ersten einen rotationssymmetrischen und zum zweiten einen sehr instabilen Plasmafreistrahl. Beide Eigenschaften machen dieses Messobjekt ungeeignet für tomografische Untersuchungen. Abbildung 2.1.3.1 zeigt den Plasmabrenner F4. Abb. 2.1.3.1: Plasmabrenner F4 In den zurückliegenden Jahren wurden am Institut zwei neuartige Plasmaquellen entwickelt, deren Plasmafreistrahl für eine tomografische Untersuchung wie geschaffen erscheint. Die Erste ist der Plasmabrenner Typ TRIPLEX, dessen drei stationäre Lichtbögen über drei stiftförmige Kathoden und eine gemeinsame Anode erzeugt werden, zu sehen in der folgenden Abbildung. - 7 -

Messobjekt und Messverfahren Abb. 2.1.3.2: TRIPLEX Daraus resultiert ein Plasmafreistrahl, der sich sowohl durch hohe Stabilität, als auch durch eine merkliche Abweichung von der Rotationssymmetrie auszeichnet. Letztere Eigenschaft lässt sich sehr vorteilhaft für die Beschichtungsmaterialzugabe nutzen, wie zahlreiche industrielle Einsätze zeigen. Die zweite Plasmaquellenneuentwicklung ist der Typ DELTA, dessen drei Lichtbögen, im Gegensatz zum TRIPLEX, über eine Kathode und brennerausgangsseitig über drei isolierte Anoden erzeugt werden. Dies ist in der folgenden Abbildung dargestellt. Abb. 2.1.3.3: DELTA Auch der Plasmafreistrahl des DELTA verfügt über eine hohe Stabilität und eine merkliche 3-fach-Symmetrie. - 8 -

Messobjekt und Messverfahren 2.2 Messverfahren Tomografie Die Tomografie ist im Wesentlichen ein mathematisches Verfahren zur Ermittlung lokaler Messobjekteigenschaften aus einer definierten Serie integraler Messobjektaufnahmen. Die mathematischen Grundlagen dazu sind seit langem bekannt; der messtechnische Einsatz dieses Verfahrens ist allerdings erst durch Verwendung leistungsfähiger Computer möglich geworden. Vor einigen Jahren wurde die Tomografie fast ausschließlich in der Medizin verwendet. In den letzten Jahren wurde ihm allerdings immer mehr Bedeutung auch in anderen Bereichen der Wissenschaft zugeordnet, so z.b. in der Geophysik, Materialforschung und Verfahrenstechnik. Dies hat seine Ursache darin, dass mithilfe dieses Messverfahrens Daten aufgenommen werden können, ohne dass eine Berührung oder Beeinflussung des Messobjektes stattfindet. Zudem ermöglicht es die Tomografie innerhalb eines Objektes eine bestimmte Schicht genau zu betrachten. Unterschieden wird dieses Messverfahren in Emissionstomografie und Transmissionstomografie. 2.2.1 Transmissionstomografie Bei dieser Methode wird das zu untersuchende Objekt elastischen Wellen, elektromagnetischer Strahlung oder elektrischen bzw. statischen Feldern mit bekannten Amplituden und Frequenzen ausgesetzt. Die reflektierte, transmittierte oder gestreute Strahlung wird von einem Empfänger gemessen. Dadurch erhält man Aussagen über die Wechselwirkung der Strahlung mit dem Objekt. Über tomografische Methoden können dann die gesuchten physikalischen Größen ermittelt werden. Bekannt ist diese Methode besonders in der Medizin bei der Röntgendiagnostik. [4] Abb. 2.2.1: Prinzip der Transmissionstomografie [4] - 9 -

Messobjekt und Messverfahren 2.2.2 Emissionstomografie Bei diesem Verfahren werden ausschließlich Quellen innerhalb des Messobjektes zur Untersuchung benutzt. Sind keine geeigneten Quellen vorhanden, so kann beispielsweise ein radioaktiv markiertes Präparat in das zu untersuchende Objekt injiziert und dann die Strahlung des Präparates außerhalb des Objektes gemessen werden. Abb. 2.2.2.1: Prinzip der Emissionstomografie [4] Die in der vorliegenden Arbeit beschriebene Apparatur arbeitet nach dem Prinzip der Emissionstomografie. Das Untersuchungsobjekt, ein thermischer Plasmastrahl, ist mehrere 1000 Kelvin heiß und emittiert demzufolge stark elektromagnetische Wellen. Da die Aufnahme integraler Messdaten sich auf fotografische Aufnahmen des Messobjekts aus verschiedenen Beobachtungsrichtungen beschränkt, sind nur die elektromagnetischen Wellen mit einer Wellenlänge zwischen 400 nm bis 700 nm (Spektrum des sichtbaren Lichts) von Interesse. Zum besseren Verständnis wird das Prinzip der Tomografie in der nachfolgenden Abbildung nochmals bildlich dargestellt. - 10 -

Messobjekt und Messverfahren Schwenkbereich der Kamera Plasmastrahl Abb. 2.2.2.2: Prinzip Tomografie Auf obiger Abbildung ist in der Mitte der Plasmabrenner mit dem Plasmastrahl zu erkennen. Um den Plasmastrahl herum schwenkt in kleinen Schritten die CCD- Kamera. Bei unseren Versuchen wurde von einem Schritt zum nächsten jeweils um 3 weitergefahren. Somit erhält man bei einem Schwenkbereich von 180 sechzig Bilder. Allerdings liefern das erste und das letzte Bild dieselben Daten, da es sich nur um eine gespiegelte Ansicht der anderen handelt. Somit kann auf das letzte Bild verzichtet werden. Durch Zusammenfügen dieser Bilder ergibt sich nun ein Blick ins Innere des Plasmastrahls. - 11 -

Mobile Tomografie-Apparatur 3 Mobile Tomografie-Apparatur Bereits die Diplomarbeit von Norbert Schindler Entwurf und Aufbau eines Messplatzes zur Tomografischen Diagnostik an Plasmastrahlen hatte zum Ziel, eine Apparatur zu entwerfen und aufzubauen, welche es erlaubt, Messobjekte aus unterschiedlichen Richtungen spektroskopisch zu untersuchen. [5] Abb. 3.1: Messplatz zur Tomografischen Diagnostik [5] Ein wesentlicher Nachteil dieser Apparatur ist, dass sie sehr viel Platz einnimmt. Daraus resultiert die wesentliche Aufgabenstellung dieser Diplomarbeit eine mobile Tomografieapparatur zu entwickeln. Ein weiterer wichtiger Aspekt der Konstruktion ist die Verwendung möglichst vieler handelsüblicher Bauteile, welche nicht nur den Konstruktionsaufwand und die zum Aufbau benötigte Zeit senken, sondern auch den Kostenaufwand minimieren. Weitere Vorgaben für den Entwurf der mobilen Tomo- 12 -

Mobile Tomografie-Apparatur grafieapparatur sind der Schwenkbereich der CCD-Kamera von 200, der Abstand zwischen Plasmastrahl und Kamera von 175 mm und die Hitzebeständigkeit aller Bauteile, welche durch die enorme Hitzeentwicklung des Plasmastrahls zwingend notwendig ist. Als Konstruktionsgrundlage der einzelnen Teile dient ein Entwurf der Vorrichtung, der durch Herrn Dr.-Ing. Günter Forster bereitgestellt wurde. Im den unteren Bildern ist diese Orientierungshilfe gezeigt. Abb.3.2 Erster Entwurf - 13 -

Mobile Tomografie-Apparatur 3.1 Mobile Tomografie-Apparatur: Hardware In diesem Kapitel folgt eine genaue Beschreibung des Aufbaus der mobilen Tomografieapparatur. Es untergliedert sich in die Unterkapitel Gestell, Antrieb, sowie Optik. Nachfolgende Abbildung zeigt die komplette mobile Tomografieapparatur. Abb. 3.1: Mobile Tomomografieapparatur 3.1.1 Gestell Abb. 3.1.1.1: Träger Das Gestell dient zur Aufhängung des Antriebs und zur Befestigung der optischen Komponenten. Eine weitere Forderung an das Gestell ist die hohe Steifigkeit und Festigkeit bei minimalem Gewicht. Durch den Einsatz von Itemprofilen aus der Alu- - 14 -

Mobile Tomografie-Apparatur miniumlegierung AlMgSi0,5, welche im Gestell verbaut worden sind, wird diese Forderung erfüllt. Der Aufbau ist in der oben angeführten Abbildung gezeigt. Nachfolgende Abbildung zeigt eine Seitenansicht um den weiteren genauen Aufbau zu verdeutlichen. Große Platte Kleine Platte Abstandshalter Gestellring Lauffläche der Kugeln Zahnrad Abb. 3.1.1.2: Seitenansicht Im Träger befindet sich der Gestellring. Dieser wurde speziell angefertigt, um mit dem Zahnrad und der kleinen Platte als großes Kugellager zu fungieren. Auf der kleinen Platte ist zusätzlich eine große Platte angebracht, die als Befestigungsgrundlage für die Schiene der optischen Geräte dient. Im Gestellring laufen auf jeweils zwei Kugellagern die Abstandshalter, die mit den Platten und dem Zahnrad verschraubt sind. Diese dienten ursprünglich dazu die große Platte und das Zahnrad auf die Kugeln im Gestellring zu drücken, so dass diese auf dem Gestellring laufen. Allerdings sind mittlerweile die Kugellager und die Abstandshalter durch die Einführung einer weiteren Konstruktionsmaßnahme, nämlich das Einfräsen einer Nut sowohl im Zahnrad, als auch auf der zusätzlich eingeführten kleinen Platte, überflüssig geworden. Diese Bauteile zusammen gesetzt mit den Itemprofilen ergeben das Gestell, welches in Abbildung 3.1.1.3 dargestellt ist. - 15 -

Mobile Tomografie-Apparatur Abb. 3.1.1.3: Komplettes Gestell 3.1.2 Antrieb Schnecke Zahnrad Schrittmotor Abb. 3.1.2.1: Antrieb Der verwendete Antrieb besteht aus einem Zahnrad, einer Schnecke und einem Schrittmotor. Die eigens von der Werkstatt angefertigte Schnecke und das dazugehörige Zahnrad besitzen beide Modul 2. Die Steigung der Schnecke beträgt 4 mm pro Umdrehung, das heißt in diesem Fall, dass bei einer Umdrehung der Schnecke das Zahnrad um einen Zahn weitergedreht wird. Eine Umdrehung wird mit 400 Schritten des Motors - 16 -

Mobile Tomografie-Apparatur erreicht. Da dieses Zahnrad 195 Zähne besitzt, bedeutet dies für einen Schwenkbereich von 180 werden 39000 Schritte benötigt. Die genauen Daten zu beiden finden sich im Anhang bei den zugehörigen Konstruktionszeichnungen. Bei dem Schrittmotor handelt es sich um den Typ SM 56.2.18 JL3F. Die Bemaßung ist im folgenden Bild dargestellt, die Abmaße sind daneben aufgelistet. [10] D1 = 38,1 D2 = 6,35 D3 = 6,35 D4 = 66,5 D5 = 5,3 D6 = 56,5 L1 = 134 L2 = 21 L3 = 102 L4 = 116 L5 = 76 L6 = 56,5 L7 = 5 Gewinde für Kabelverschraubung: M20 x 1,5 Abb.3.1.2.2: Schrittmotor[10] Das Betriebsgrenzmoment des SM 56.2.18JL3F ist im Graph der Abbildung 3.1.2.2 gezeigt. Abb. 3.1.2.3: Betriebsgrenzmoment - 17 -

Mobile Tomografie-Apparatur Um während der Versuche einen festen Startpunkt für die Kamera zu erhalten, wurde zusätzlich ein Referenzschalter verbaut. Dieser ermöglicht es der Kamera bei jeder Messung aus derselben Stellung zu starten. Berührt die Profilschiene den Schalter stoppt sofort der Motor. Das folgende Bild zeigt die Schnecke und den Schrittmotor. Abb. 3.1.2.2: Schnecke und Motor - 18 -

Mobile Tomografie-Apparatur Sowohl die Motorsteuerung als auch der Referenzschalter sind über einen Stecker mit dem Computer verbunden. Die Pin-Belegung des Steckers ist auf den folgenden Abbildungen erklärt. Sie gliedert sich in den Anschluss für die Motorsteuerung und für den Referenzschalter. Abb. 3.2.1: Stecker 1 2 3 4 5 6 7 8 9 Pinbelegung: 1 und 6 Kabel für Referenzschalter 2 grün-gelb 3 blau-grau 4 rot-schwarz Kabel für Motorsteuerung 5 braun-weiß 7,8 und 9 bleiben frei - 19 -

Mobile Tomografie-Apparatur 3.1.3 Optik Filterhalterung Profilschiene Objektiv Kamera Abb. 3.1.3.1: Optik in SolidWorks Die Optik umfasst die Kamera, das Objektiv, die dazugehörige Schiene und die darauf befestigte Vorrichtung für den Einsatz von Filtern. Bei der Kamera handelt es sich um eine Pixelfly VGA der Firma PCO [12] mit einer Auflösung von 640 x 480 Pixeln bei einer Pixelgröße von 9,9 μm x 9,9 μm. Des Weiteren besitzt die CCD Kamera ein Sensorformat von einem halben Zoll, einen Anti- Blooming-Faktor von >1000 und ein Gewicht von 0,25 kg. Das Verwischen liegt bei 0,005% und das Rauschen zwischen 11 und 14 e - rms. Bei dem Objektiv der Firma Edmund handelt es sich um ein telezentrisches Objektiv. Der Vorteil bei diesem Objektiv ist, dass optische Verzerrungen im Tiefenschärfebereich minimiert sind. Die Tiefenschärfe beträgt hierbei 8,2 mm bei einem Objektabstand von 160 mm. Das Sichtfeld ist 25,6 mm groß. Das Objektiv besitzt eine Auflösung von >40% bei 40 lp/mm. Die maximale Verzerrung liegt bei unter 0,1%. Die Schiene und die Halterungen für Kamera, Objektiv und Filter stammen von der Firma OWIS. [11] Die folgende Fotografie zeigt die oben beschriebene Optik. - 20 -

Mobile Tomografie-Apparatur Abb. 3.1.3.2: Optik - 21 -

Mobile Tomografie-Apparatur 3.2 Mobile Tomografie-Apparatur: Software Die zum mobilen Tomografie-Experiment gehörige Software gliedert sich in drei unabhängige Programme, zum einen in die Justage und Messdatenaufnahme ( Kap. 3.2.1), die Messdatenverarbeitung und auswertung ( Kap. 3.2.2) und die Ergebnispräsentation ( Kap. 3.2.3). Sämtliche Software wurde mit Borlands DELPHI- Software-Entwicklungsumgebung erstellt. [9] Alle Programme stammen von Dr.-Ing. Günter Forster und wurden für diese Diplomarbeit zur Verfügung gestellt. In den nun folgenden Kapiteln werden die einzelnen Programme, deren Oberflächen und deren Bedienung beschrieben. 3.2.1 Justage und Messdatenaufnahme Dieses Programm stellt die Kommunikation zwischen Rechner und Experiment- Hardware zur Verfügung. Auf folgender Abbildung wird die Benutzeroberfläche des Programms gezeigt. Einstellungen Schrittmotor Einstellungen Kamera und Messablauf Kamerabild Abb. 3.2.1.1: Benutzeroberfläche für die Justage und Messdatenaufnahme - 22 -

Mobile Tomografie-Apparatur Auf der linken Seite befinden sich die Einstellungen für den Schrittmotor und auf der rechten die Einstellungen für die Kamera und den Messablauf. Die nächste Abbildung zeigt schematisch die Vernetzung der einzelnen Komponenten. Rechner RS 232 Frame-Grabber (PCO) Twisted Pair Datenleitung Schrittmotor-Interface (ISEL) CCD-Kamera (PCO Pixelfly) Schrittmotor Abb. 3.2.1.2: Vernetzung der einzelnen Komponenten Die beiden Schnittstellen zwischen Rechner und Experiment-Hardware sind eine RS 232-Leitung und eine Twisted Pair -Datenleitung. Die RS232-Leitung wird zur Kommunikation mit dem Schrittmotor-Interface, welches wiederum den in der Positioniermimik enthaltenen Schrittmotor treibt, verwendet. Die Twisted Pair -Datenleitung dient zur Kommunikation zwischen dem Frame- Grabber (PCI-Einsteckkarte im Rechner) und der CCD-Kamera, die zum einen die Steuerung der Kamera ermöglicht und zum anderen die Übernahme der Bilddaten in den Rechner gewährleistet. Da bei der tomografischen Messdatenaufnahme eine beachtliche Datenfülle anfällt, muss diese sinnvoll geordnet und verwaltet werden. Die folgende Abbildung zeigt, wohin die aufgezeichneten Daten abgespeichert werden. Die Syntax für Ordner Ebene 1 gliedert sich in Jahr _ Monat _ Tag, die Syntax für Ordner Ebene 2 in Stunde _ Minute _ Sekunde _ Millisekunde. Das bedeutet, dass pro Versuchstag ein Ordner Ebene 1 und darin pro Versuchsdurchlauf an diesem Tag ein Ordner Ebene 2 mit den aufgezeichneten Bildern erstellt wird. - 23 -

Mobile Tomografie-Apparatur Programm- Ordner Ordner Bilder Ordner Ebene 1 Ordner Ebene 1 Ordner Ebene 2 Ordner Ebene 2 Bilddaten: Bild_000.bmp Bild_001.bmp... Bilddaten: Bild_000.bmp Bild_001.bmp... Abbildung 3.2.1.3: Verwaltung der Messdaten - 24 -

Zusammenfassung 3.2.2 Messdatenverarbeitung und auswertung Der erste Schritt der Datenverarbeitung besteht aus der Reduktion, der Zusammenfassung und der Umsortierung der gewonnenen Rohmessdaten. Werden diese grafisch interpretiert, so erhält man dabei aus einem Satz von Originalbildern (linke Grafik in Abb. 3.2.2) eine Serie von so genannten Tomogrammen (mittlere Grafik in Abb. 3.2.2). 1 2 3 4 5 Abb. 3.2.2: Oberfläche der Messdatenverarbeitung und auswertung 1 Auswahl der Rohmessdaten 2 tomografischer Reduktionsalgorithmus 3 Auswahl des relevanten Bildbereichs über vier Cursor 4 Tomogramm 5 (zum Tomogramm zugehöriger) rekonstruierter Schnitt Der zweite Schritt der Datenverarbeitung besteht dann aus der Rekonstruktion des zum Tomogramm gehörigen Schnittbildes. Bezüglich des am Institut entwickelten Rekonstruktionsalgorithmus sei an dieser Stelle auf Bappert[7] und Schwinn[8] verwiesen. Sowohl Zwischen- als auch Endergebnisse (Tomogramm und Schnittbild) werden im Ordner der Rohmessdaten abgespeichert. - 25 -

Zusammenfassung Die Syntax gehorcht folgender Regel: Tomogramme Schnittbilder Schnitt_000.TOMO Schnitt_000.TOMO.DONE Schnitt_001.TOMO Schnitt_001.TOMO.DONE...... - 26 -

Zusammenfassung 3.2.3 Ergebnispräsentation Die Ergebnispräsentation besteht im Wesentlichen aus der grafischen Darstellung einer Serie rekonstruierter Schnittbilder mit Hilfe der im Windows-Betriebssystem enthaltenen OpenGL-Grafikmöglichkeiten. Verwendung dabei findet dabei ein DEL- PHI-Freeware-Package, das unter http://glscene.org heruntergeladen werden kann. Auswahl der rekonstruierten Schnittbilder Einstellungen für die grafische Darstellung 3D-Grafik Abb. 3.2.3: Ergebnispräsentation Obiges Bild zeigt die Glühfäden des Messobjektes aus Kapitel 4.1 Kalibrierung am bekannten Messobjekt. Die lokale Stahlungsemission ist farblich codiert, von rot nach blau entsprechend starker bzw. schwacher Emission. - 27 -

Zusammenfassung 4 Ergebnisse Zur Überprüfung der Funktionsfähigkeit des in der vorliegenden Arbeit beschriebenen Gerätes werden diverse Testmessungen durchgeführt. Begonnen wird mit einer Messung am bekannten Messobjekt, danach folgen zwei Messungen direkt am Plasmastrahl. 4.1 Kalibriermessung am bekannten Messobjekt Es erscheint sinnvoll, die gewünschte Funktion einer Messapparatur an einem Messobjekt nachzuweisen, von dem das Ergebnis der Messung bereits bekannt ist. Der Versuchsaufbau ist im folgenden Bild gezeigt. Glühbirne Abb. 4.1.1: Versuchsaufbau Als Gegenstand für eine derartige Kalibriermessung hat sich eine spezielle Glühbirne mit mehreren Glühfäden als geeignet erwiesen. Für die Prüfung der Funktionsfähigkeit sowie für die Kalibrierung des mobilen Tomografen wird die Glühbirne an der Stelle, wo sich zukünftig der Plasmastrahl befindet, befestigt, wie in Abbildung. 4.1.1 gezeigt. In Abbildung. 4.1.2 ist eine Fotografie dieser Glühbirne dargestellt. Darauf ist die kronenförmige Struktur der Glühfäden zu erkennen. - 28 -

Zusammenfassung Abb. 4.1.2: Glühbirne Durch die tomografische Untersuchung dieses bekannten Messobjekts erhält man folgendes Ergebnis, welches in Abbildung 4.1.3 gezeigt ist. Zum besseren Vergleich der Glühfäden und des Ergebnisses sind beide Bilder aus derselben Beobachtungspositionierung aufgenommen. Abb. 4.1.3: Ergebnis-Bild - 29 -

Zusammenfassung 4.2 Messungen am Rekombinations-Plasmastrahl einer Plasmaquelle vom Typ TRIPLEX I Der Plasmabrenner TRIPLEX I besitzt eine Anode und drei Kathoden (vergleiche dazu Kapitel 2.1.3). Er wird mit Wasser gekühlt und reinem Argon betrieben. Die in diesem Versuch verwendeten Betriebsparameter sind nachfolgend aufgelistet. Betriebsparameter: Brennertyp: Düse: Lichtbogenstrom: Leistungsumsatz: Plasmagas: TRIPLEX I Ø14 mm 150 A 5 kw 35 slpm Argon Nachfolgend werden zwei Messungen am Plasmastrahl des TRIPLEX I beschrieben. Zuerst wurde ein Versuch ohne weitere äußere Beeinflussung des Plasmastrahls durchgeführt. Den Versuchsaufbau zeigt die Abbildung 4.2.1. Abb. 4.2.1: Versuchsaufbau Als Ergebnis erhält man eine Nachbildung des Plasmastrahls. Die Unterteilung in verschiedene Farbbereiche gibt die unterschiedliche Intensität an der jeweiligen Stelle wieder. In der folgenden Abbildung ist das Ergebnis des ersten Versuchs dargestellt. - 30 -

Zusammenfassung Abb. 4.2.2: Ergebnisbild Versuch eins Zu sehen ist die kegelförmige Struktur des Plasmastrahls, dessen Intensität von innen nach außen kontinuierlich abnimmt. Zu erkennen ist dies an der roten Färbung im Inneren, die sich nach außen über Gelb und Grün bis ins Bläuliche ändert. Im zweiten Versuch wurde der Plasmastrahl durch Druckluft angeblasen. Der Versuchsaufbau hierzu ist in den folgenden Abbildungen gezeigt. Abb. 4.2.3: Gesamtaufbau Abb. 4.2.4: Brenner mit Düse - 31 -

Zusammenfassung Direkt vor dem Plasmabrenner wurde eine Düse befestigt durch die mit hohem Druck Luft ausströmt. Dies hat zwei Auswirkungen auf den Plasmastrahl, zum einen wird er durch die Luft abgekühlt und zum anderen von seinem natürlichen Weg abgelenkt. Die Ergebnisbilder verdeutlichen dies. Als Beispiel hierfür ist die Abbildung 4.2.5 angeführt. Abb. 4.2.5: Ergebnis Versuch zwei Der Vergleich der beiden Versuche zeigt, dass der Plasmastrahl zum einen zur Seite abgelenkt und zum anderen wesentlich kürzer wird. Schaut man sich zusätzlich die einzelnen Schnitte des Plasmastrahls an, wird ebenso die Abkühlung des Plasmastrahls sichtbar. Zur Verdeutlichung der Unterschiede werden nun zwei Schnittbilder aus den einzelnen Versuchen angeführt. Beide Schnitte stammen aus der gleichen Entfernung zum Plasmabrenner, unterscheiden sich aber deutlich in ihrem Aus-sehen. Links befindet sich ein Schnitt durch den Plasmastrahl, der nicht künstlich beeinflusst wurde. Auf der rechten Abbildung ist einen Schnitt durch den Plasmastrahl, der mit Druckluft angeblasen wurde, zu sehen. - 32 -

Zusammenfassung Abb. 4.2.6: ohne Beeinflussung Abb. 4.2.7: durch Druckluft beeinflusst Die linke Abbildung zeigt ein kreisrundes Muster, dessen Intensität von innen nach außen kontinuierlich abnimmt. Auf der rechten Abbildung hingegen sieht man ein bananenförmiges Muster, dessen Intensität bei annähernd gleichem Abstand zum Plasmabrenner wie in Versuch 1 eine geringere Intensität aufweist. Die Form entsteht dadurch, dass die Druckluft den Plasmastrahl zur Seite drückt und gleichzeitig abkühlt. Dies erklärt die schmale Form und die geringere Intensität innerhalb des Plasmastrahls im Vergleich zu Versuch eins. - 33 -

Anhang 5 Zusammenfassung Abb. 5.1: Mobile Tomographieapparatur Im Rahmen der vorliegenden Diplomarbeit wurde ein Tomograf entworfen, aufgebaut und dessen Funktion in ersten Testmessungen nachgewiesen. Das Gerät erlaubt die Detektion der beliebig 3-dimensional verteilten Strahlungsemission eines Messobjektes aus sehr definierten unterschiedlichen Beobachtungsrichtungen. Das entwickelte Gerät zeichnet sich durch einen kompakten und robusten Aufbau aus; Eigenschaften, die zum einen die geforderte hohe Mobilität gewährleisten, die zum anderen a- ber auch benötigt werden, um den hohen thermischen Beanspruchungen beim Plasmaspritzen standzuhalten. Aufgrund der für thermische Beschichtungsprozesse maßgeschneiderten Konstruktion konnte der materielle und finanzielle Aufwand für die mechanischen Komponenten niedrig gehalten werden. Kamera und Objektiv dagegen wurden auf optomechanischen Standartschienen montiert und können somit jederzeit gegen alternative Detektionseinheiten ausgetauscht werden. In Verbindung mit der bereits vorliegenden Experimentsteuerungs-, Datenaufnahme und auswertungs- bzw. Ergebnispräsentationssoftware steht damit ein Messsystem zur Verfügung, das die schnelle und einfache Ermittlung 3-dimensionaler Strahlungsemissionsprofile, insbesondere auch beim industriellen Anwender vor Ort, ermöglicht. - 34 -

Anhang 6 Anhang Hier finden sich Konstruktionszeichnungen der einzelnen Bauteile, die Stücklisten und die benötigten Quellcodes. In den Stücklisten finden sich die verwendeten handelsüblichen Bauteile. Alle Quellcodes wurden von Herrn Dr.-Ing. Günter Forster programmiert und für diese Diplomarbeit zur Verfügung gestellt. 6.1 Konstruktionszeichnungen Auf den folgenden Seiten sind die Konstruktionszeichnungen angeführt. Zu einzelnen Teilen finden sich zusätzliche Angaben unter den Abbildungen. Speziell die Angaben zu dem Zahnrad und der Schnecke, sind wichtig, da es sich hierbei nicht um Normteile, sondern um spezielle Anfertigungen der Werkstatt handelt. Alle Zeichnungen wurden mit SolidWorks erstellt. - 35 -

Anhang Abb. 6.1.1: Abstandshalter Kugellager - 36 -

Anhang Abb. 6.1.2: Große Platte - 37 -

Anhang Abb. 6.1.3: Kleine Platte - 38 -

Anhang Abb. 6.1.4: Zahnrad Das Zahnrad besitzt 195 Zähne und Modul 2. - 39 -

Anhang Abb. 6.1.5: Schnecke Die Schnecke besitzt Modul 2 und einen Steigungswinkel von 7. Pro Umdrehung hat man eine Steigung von 4mm. - 40 -

Anhang Abb. 6.1.6: Gestellring - 41 -

Anhang Abb. 6.1.7: Motorhalterung 01-42 -

Anhang Abb. 6.1.8: Motorhalterung 02-43 -

Anhang Abb. 6.1.9: Befestigung Schnecke - 44 -

Anhang 6.2 Stücklisten Nachfolgend finden sich die Stücklisten zu den zusätzlich benötigten Einzelteilen und den verwendeten Itemprofilen. Zusätzlich wurden handelsübliche Zylinderschrauben mit Innensechskant, gehärtete Zylinderstifte, Muttern, Beilegscheiben und Sicherungsringe verwendet. Diese sind hier nicht einzeln aufgelistet. 6.2.1 Einzelteile Pos.-Nr. Stück: Bezeichnung: Maße[mm]: Hersteller: 1 160 Kugeln 8 2 8 Kugellager 22 x 8 x 7 3 1 Schrittmotor Typ SM 56.2.18 JL3F STÖGRA 4 1 Kamera Pixelfly VGA 39 x 39 x 68 PCO 5 2 Systemschiene SYS 65, Typ S65-300-LL OWIS mit Langlöchern 6 2 Reiter RT 65, Typ RT65-40-R OWIS mit Rändelschraube 7 1 Reiter RT 65, Typ RT65-20-R OWIS mit Rändelschraube 8 1 Aufnahmeplatte OH 65, Typ OH 65, OWIS mit 35mm mit 35mm 9 1 Filterhalter FH 65 Typ FH 65-1-50x50 OWIS 10 1 Objektiv Silver Series Y56-676 EDMUND 6.2.2 Itemprofile Pos.-Nr. Stück: Bezeichnung: Maße: Werkstoff: 1 2 Itemprofil 40 x 40 x 300 AlMgSi0,5 2 2 Itemprofil 40 x 40 x 532 AlMgSi0,5 3 2 Itemprofil 40 x 40 x 572 AlMgSi0,5 4 2 Itemprofil 40 x 40 x 246 AlMgSi0,5 5 1 Itemprofil 40 x 40 x 400 AlMgSi0,5-45 -

Anhang 6.3 Software-Quellcodes 6.3.1 Quellcode: Justage und Messdatenaufnahme program Project1; uses Forms, Schrittmotoren_Unit in 'Schrittmotoren_Unit.pas' {Form1}; {$R *.res} Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. unit Schrittmotoren_Unit; interface uses Windows, Messages, SysUtils, iants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, IniFiles, ComDrv32, Buttons, ComCtrls, Menus; function INITBOARD (board: Integer; var hdriver: THandle): Integer; cdecl; external 'Pccam.dll'; function CLOSEBOARD (var hdriver: THandle): Integer; cdecl; external 'Pccam.dll'; function GETBOARDPAR (hdriver: THandle; var ptr: Pointer; len: Integer):Integer; cdecl; external 'Pccam.dll'; function SETMODE (hdriver: THandle; mode: Integer; explevel: Integer; exptime: Integer; hbin: Integer; vbin: Integer; gain: Integer; offset: Integer; bit_pix: Integer; shift: Integer): Integer cdecl; external 'Pccam.dll'; function TRIGGER_CAMERA (hdriver: THandle): Integer; cdecl; external 'Pccam.dll'; function START_CAMERA (hdriver: THandle): Integer; cdecl; external 'Pccam.dll'; function STOP_CAMERA (hdriver: THandle): Integer; cdecl; external 'Pccam.dll'; function GETSIZES (hdriver: THandle; var ccdxsize: Integer; var ccdysize: Integer; var actualxsize: Integer; var actualysize: Integer; var bit_pix: Integer): Integer; cdecl; external 'Pccam.dll'; function READTEMPERATURE (hdriver: THandle; var Temperatur: Integer): Integer; cdecl; external 'Pccam.dll'; function GETBUFFER_STATUS (hdriver: THandle; bufnr: Integer; mode: Integer; var ptr: Integer; len: Integer): Integer; cdecl; external 'Pccam.dll'; function ALLOCATE_BUFFER (hdriver: THandle; var bufnr: Integer; var size: Integer): Integer; cdecl; external 'Pccam.dll'; function FREE_BUFFER (hdriver: THandle; bufnr: Integer): Integer; cdecl; external 'Pccam.dll'; function ADD_BUFFER_TO_LIST (hdriver: THandle; bufnr: Integer; size: Integer; offset: Integer; data: Integer): Integer; cdecl; external 'Pccam.dll'; function REMOVE_BUFFER_FROM_LIST (hdriver: THandle; bufnr: Integer): Integer; cdecl; external 'Pccam.dll'; function SETBUFFER_EVENT (hdriver: THandle; bufnr: Integer; var hpicevent: THandle): Integer; cdecl; external 'Pccam.dll'; function MAP_BUFFER (hdriver: THandle; bufnr: Integer; size: Integer; offset: Integer; var linadr: Pointer): Integer; cdecl; external 'Pccam.dll'; function UNMAP_BUFFER (hdriver: THandle; bufnr: Integer): Integer; cdecl; external 'Pccam.dll'; Const Bild_Breite = 640; Bild_Hoehe = 480; Type TPosition = Record X,Y,Z: LongInt; TPixelFly = Record hdriver: THandle; bufnr: Integer; size: Integer; pbuf: Pointer; mode: Integer; explevel: Integer; exptime: Integer; hbin: Integer; vbin: Integer; gain: Integer; offset: Integer; bit_pix: Integer; shift: Integer; type TForm1 = class(tform) GroupBox1: TGroupBox; RadioGroup1: TRadioGroup; Label1: TLabel; Label2: TLabel; BitBtn2: TBitBtn; GroupBox2: TGroupBox; Panel1: TPanel; Panel2: TPanel; ListBox1: TListBox; Timer1: TTimer; GroupBox3: TGroupBox; Panel3: TPanel; Panel4: TPanel; Panel5: TPanel; Panel6: TPanel; GroupBox4: TGroupBox; Label3: TLabel; Label4: TLabel; Label5: TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; ComboBox3: TComboBox; Panel7: TPanel; Label6: TLabel; Label7: TLabel; Label8: TLabel; GroupBox5: TGroupBox; Panel8: TPanel; Panel9: TPanel; Panel10: TPanel; Timer2: TTimer; Label9: TLabel; Panel11: TPanel; Panel12: TPanel; Panel13: TPanel; Panel14: TPanel; Panel15: TPanel; Panel16: TPanel; GroupBox6: TGroupBox; Label10: TLabel; Edit3: TEdit; Edit1: TEdit; - 46 -

Anhang Edit2: TEdit; Label11: TLabel; Label12: TLabel; Panel17: TPanel; Timer3: TTimer; CommPortDriver1: TCommPortDriver; GroupBox7: TGroupBox; PopupMenu1: TPopupMenu; ENDE1: TMenuItem; TrackBar1: TTrackBar; TrackBar2: TTrackBar; TrackBar3: TTrackBar; TrackBar4: TTrackBar; GroupBox10: TGroupBox; RadioGroup2: TRadioGroup; Panel28: TPanel; Panel29: TPanel; Timer4: TTimer; Timer5: TTimer; GroupBox11: TGroupBox; Image1: TImage; B_live: TSpeedButton; Label23: TLabel; Label24: TLabel; Timer6: TTimer; ScrollBar1: TScrollBar; ScrollBar2: TScrollBar; ScrollBar3: TScrollBar; ScrollBar4: TScrollBar; Panel34: TPanel; Panel30: TPanel; Panel35: TPanel; Panel31: TPanel; Panel36: TPanel; Panel32: TPanel; Panel33: TPanel; Panel37: TPanel; Timer4a: TTimer; ScrollBar5: TScrollBar; Button1: TButton; procedure FormCreate(Sender: TObject); procedure RadioGroup1Click(Sender: TObject); procedure CommPortDriver1ReceiveData(Sender: TObject; DataPtr: Pointer; DataSize: Cardinal); procedure BitBtn2Click(Sender: TObject); procedure Panel1Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Panel3Click(Sender: TObject); procedure Panel4Click(Sender: TObject); procedure Panel5Click(Sender: TObject); procedure Panel6Click(Sender: TObject); procedure Panel7Click(Sender: TObject); procedure Panel8MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel8MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel10MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Timer2Timer(Sender: TObject); procedure TrackBar1Change(Sender: TObject); procedure Panel11MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel15MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel12MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Panel16MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure ComboBox1Change(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox3Change(Sender: TObject); procedure TrackBar2Change(Sender: TObject); procedure TrackBar3Change(Sender: TObject); procedure TrackBar4Change(Sender: TObject); procedure Panel17Click(Sender: TObject); procedure Edit1Change(Sender: TObject); procedure Edit2Change(Sender: TObject); procedure Edit3Change(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure ENDE1Click(Sender: TObject); procedure Panel28Click(Sender: TObject); procedure RadioGroup2Click(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure Panel29Click(Sender: TObject); procedure Timer6Timer(Sender: TObject); procedure B_liveClick(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure ScrollBar1Change(Sender: TObject); procedure ScrollBar2Change(Sender: TObject); procedure ScrollBar3Change(Sender: TObject); procedure ScrollBar4Change(Sender: TObject); procedure Timer4aTimer(Sender: TObject); procedure ScrollBar5Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } Arbeitsverzeichnis: String; Schrittmotoren_Befehl, Schrittmotoren_Antwort: String; SCHRITTMOTOREN_INITIALISIERT: Boolean; aktuelle_position: TPosition; Drehachse, Startposition: TPosition; MESSUNG: Boolean; Nr: Integer; Aufloesung: Integer; PixelFly: TPixelFly; Year, Month, Day: Word; S_Year, S_Month, S_Day: String; Hour, Min, Sec, msec: Word; S_Hour, S_Min, S_Sec, S_mSec: String; Pfad: String; Messordner: String; Procedure Schrittmotoren_Befehl_Senden; Procedure Position_dekodieren; Procedure Malen; var Form1: TForm1; implementation //uses Globals_Unit; {$R *.dfm} {--} Procedure TForm1.Schrittmotoren_Befehl_Senden; CommPortDriver1.SendString(Schrittmotoren_Befehl+#13); CommPortDriver1.ContinuePolling; {--} Procedure TForm1.Position_dekodieren; i: Integer; Data_Char: Array[1..18] of Char; Data: Array[1..18] of Byte; for i:=1 to 18 do //Data_Char[i]:=Schrittmotoren_Antwort[i+1]; Data_Char[i]:=Schrittmotoren_Antwort[Length(Schrittmotoren_Antwort)-18+i]; Case Data_Char[i] of '0': Data[i]:=0; '1': Data[i]:=1; '2': Data[i]:=2; '3': Data[i]:=3; '4': Data[i]:=4; '5': Data[i]:=5; '6': Data[i]:=6; '7': Data[i]:=7; '8': Data[i]:=8; '9': Data[i]:=9; 'A': Data[i]:=10; 'B': Data[i]:=11; 'C': Data[i]:=12; 'D': Data[i]:=13; 'E': Data[i]:=14; 'F': Data[i]:=15; aktuelle_position.x := 16*16*16*16*16*Data[1]+ 16*16*16*16* Data[2]+ 16*16*16* Data[3]+ 16*16* Data[4]+ 16* Data[5]+ Data[6]; aktuelle_position.y := 16*16*16*16*16*Data[7]+ 16*16*16*16* Data[8]+ 16*16*16* Data[9]+ 16*16* Data[10]+ 16* Data[11]+ Data[12]; aktuelle_position.z := 16*16*16*16*16*Data[13]+ - 47 -

Anhang 16*16*16*16* Data[14]+ 16*16*16* Data[15]+ 16*16* Data[16]+ 16* Data[17]+ Data[18]; Label6.Caption:='x: '+InttoStr(aktuelle_Position.X)+' [Schritte]'; Label7.Caption:='y: '+InttoStr(aktuelle_Position.Y)+' [Schritte]'; Label8.Caption:='z: '+InttoStr(aktuelle_Position.Z)+' [Schritte]'; TrackBar2.Position:=aktuelle_Position.X; TrackBar3.Position:=aktuelle_Position.Y; TrackBar4.Position:=aktuelle_Position.Z; Edit1.Text:=InttoStr(aktuelle_Position.X); Edit2.Text:=InttoStr(aktuelle_Position.Y); Edit3.Text:=InttoStr(aktuelle_Position.Z); {--} Procedure TForm1.Malen; var Bitmap: TBitmap; x,y: Integer; P: PByteArray; SNr: String; pdaten: PWordArray; Bitmap:=TBitmap.Create; With Bitmap do PixelFormat:=pf24bit; Width:=Bild_Breite; Height:=Bild_Hoehe; pdaten:=pwordarray(pixelfly.pbuf); for y:=0 to Bild_Hoehe-1 do P:=Bitmap.ScanLine[y]; for x:=0 to Bild_Breite-1 do P[3*x] :=pdaten[y*640+x] DIV 16; P[3*x+1]:=pDaten[y*640+x] DIV 16; P[3*x+2]:=pDaten[y*640+x] DIV 16; Image1.Picture.Assign(Bitmap); Bitmap.Free; Image1.Invalidate; Application.ProcessMessages; if B_live.Down then Timer6.Enabled:=TRUE; With PixelFly do if TRIGGER_CAMERA(hdriver)<>0 With PixelFly do if ADD_BUFFER_TO_LIST(hdriver, bufnr, size, 0, 0)<>0 end else Button1.Enabled:=TRUE; if MESSUNG then SNr:=IntToStr(Nr); While Length(SNr)<3 do SNr:='0'+SNr; Image1.Picture.SaveToFile(Messordner+'\Bild_'+SNr+'.BMP'); Timer5.Enabled:=TRUE; {--} procedure TForm1.FormCreate(Sender: TObject); Left:=0; Top:=0; Width:=Screen.Width; Height:=Screen.Height; BorderStyle:=bsNone; Arbeitsverzeichnis:=ExtractFileDir(Application.ExeName); - 48 - then ShowMessage('Fehler bei TRIGGER_CAMERA'); then ShowMessage('Fehler bei ADD_BUFFER_TO_LIST'); //Verzeichnisstruktur für Messdaten Pfad:=ExtractFilePath(Application.ExeName); Pfad:=Pfad+'\Bilder'; if NOT DirectoryExists(Pfad) then MkDir(Pfad); DecodeDate(Date, Year, Month, Day); S_Year:=IntToStr(Year); S_Month:=IntToStr(Month); While Length(S_Month)<2 do S_Month:='0'+S_Month; S_Day:=IntToStr(Day); While Length(S_Day)<2 do S_Day:='0'+S_Day; Pfad:=Pfad+'\'+S_Year+'_'+S_Month+'_'+S_Day; if NOT DirectoryExists(Pfad) then MkDir(Pfad); //Kamera PixelFly PixelFly.hdriver:=0; PixelFly.size:=Bild_Breite*Bild_Hoehe*2; With PixelFly do if INITBOARD(0, hdriver)<>0 then ShowMessage('Fehler bei INITBOARD'); With PixelFly do if STOP_CAMERA(PixelFly.hdriver)<>0 then ShowMessage('Fehler bei STOP_CAMERA'); With PixelFly do mode:=3*16+1; // Videomodus, Software-Trigger explevel:=100; exptime:=200; // 200 ms Belichtung hbin:=0; vbin:=0; gain:=0; offset:=0; bit_pix:=12; // 12 Bit pro Pixel shift:=0; With PixelFly do if SETMODE(hdriver, mode, explevel, exptime, hbin, vbin, gain, offset, bit_pix, shift)<>0 then ShowMessage('Fehler bei SETMODE') else ScrollBar5.Position:=PixelFly.exptime; With PixelFly do if ALLOCATE_BUFFER(hdriver, bufnr, size)<>0 then ShowMessage('Fehler bei ALLOCATE_BUFFER'); With PixelFly do if MAP_BUFFER(hdriver, bufnr, size, 0, pbuf)<>0 then ShowMessage('Fehler bei MAP_BUFFER'); With PixelFly do if START_CAMERA(hdriver)<>0 then ShowMessage('Fehler bei START_CAMERA'); //Schrittmotoren ListBox1.Clear; Panel2.Caption:=''; SCHRITTMOTOREN_INITIALISIERT:=FALSE; TrackBar2.Max:=StrToInt(ComboBox1.Text); TrackBar3.Max:=StrToInt(ComboBox2.Text); TrackBar4.Max:=StrToInt(ComboBox3.Text); //Cursor With Panel30 do Height:=1; Width:=Image1.Width; Left:=Image1.Left; Top:=Image1.Top; With Panel31 do Height:=1; Width:=Image1.Width; Left:=Image1.Left; Top:=Image1.Top+Image1.Height; With Panel32 do Width:=1; Height:=Image1.Height; Left:=Image1.Left; Top:=Image1.Top; With Panel33 do Width:=1; Height:=Image1.Height; Left:=Image1.Left+Image1.Width;; Top:=Image1.Top; With ScrollBar1 do Min:=0; Max:=Image1.Width; Position:=0; With ScrollBar2 do Min:=0; Max:=Image1.Width; Position:=Max; With ScrollBar3 do Min:=0; Max:=Image1.Height; Position:=0; With ScrollBar4 do Min:=0; Max:=Image1.Height; Position:=Max; ScrollBar1Change(NIL); ScrollBar2Change(NIL); ScrollBar3Change(NIL); ScrollBar4Change(NIL); Timer3.Enabled:=TRUE; procedure TForm1.RadioGroup1Click(Sender: TObject); GroupBox2.Hide; if CommPortDriver1.Connected then CommPortDriver1.Disconnect; Case RadioGroup1.ItemIndex of 0: CommPortDriver1.ComPort := pncom1; 1: CommPortDriver1.ComPort := pncom2; 2: CommPortDriver1.ComPort := pncom3; 3: CommPortDriver1.ComPort := pncom4; 4: CommPortDriver1.ComPort := pncom5; 5: CommPortDriver1.ComPort := pncom6; 6: CommPortDriver1.ComPort := pncom7; 7: CommPortDriver1.ComPort := pncom8; CommPortDriver1.Connect; SCHRITTMOTOREN_INITIALISIERT:=FALSE; // Schrittmotoren identifizieren if CommPortDriver1.Connected then Timer3.Enabled:=FALSE; Schrittmotoren_Befehl := '@07'; ListBox1.Items.Add(Schrittmotoren_Befehl); BitBtn2Click(SELF); MESSUNG:=FALSE; RadioGroup2Click(NIL); end else Application.MessageBox('... serielle Schnittstelle nicht verfügbar...', 'ÄTSCH', mb_ok) procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject; DataPtr: Pointer; DataSize: Cardinal); P: PByteArray; i: Integer; P := DataPtr; Schrittmotoren_Antwort:=''; for i := 0 to DataSize-1 do Schrittmotoren_Antwort := Schrittmotoren_Antwort + Char(P^[i]); if Schrittmotoren_Befehl='@07' then SCHRITTMOTOREN_INITIALISIERT:=TRUE; GroupBox2.Show; GroupBox7.Show; Schrittmotoren_Befehl:='@0P'; ListBox1.Items.Add(Schrittmotoren_Befehl); BitBtn2Click(SELF); CommPortDriver1.FlushBuffers(TRUE, TRUE); CommPortDriver1.PausePolling; CommPortDriver1.ComPortPollingDelay := 50; Panel2.Caption:=Schrittmotoren_Antwort; if Length(Schrittmotoren_Antwort)>1 then Position_dekodieren; if ListBox1.Items.Count>0 then Timer1.Enabled:=TRUE; if (MESSUNG) AND (ListBox1.Items.Count=0) then Timer4.Enabled:=TRUE; //Bildaufnahme procedure TForm1.BitBtn2Click(Sender: TObject); CommPortDriver1.ComPortPollingDelay := 50; if ListBox1.Items.Count>0 then Schrittmotoren_Befehl:=ListBox1.Items[0]; ListBox1.Items.Delete(0);

Anhang ListBox1.Refresh; if Schrittmotoren_Befehl='@0P' then CommPortDriver1.ComPortPollingDelay := 200 else CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.Panel1Click(Sender: TObject); Schrittmotoren_Befehl:='@0P'; ListBox1.Items.Add(Schrittmotoren_Befehl); procedure TForm1.Timer1Timer(Sender: TObject); Timer1.Enabled:=FALSE; BitBtn2Click(SELF); procedure TForm1.Panel3Click(Sender: TObject); Schrittmotoren_Befehl:='@0R1'; ListBox1.Items.Add(Schrittmotoren_Befehl); Schrittmotoren_Befehl:='@0P'; ListBox1.Items.Add(Schrittmotoren_Befehl); procedure TForm1.Panel4Click(Sender: TObject); Schrittmotoren_Befehl:='@0R2'; ListBox1.Items.Add(Schrittmotoren_Befehl); Schrittmotoren_Befehl:='@0P'; ListBox1.Items.Add(Schrittmotoren_Befehl); procedure TForm1.Panel5Click(Sender: TObject); Schrittmotoren_Befehl:='@0R4'; ListBox1.Items.Add(Schrittmotoren_Befehl); Schrittmotoren_Befehl:='@0P'; ListBox1.Items.Add(Schrittmotoren_Befehl); procedure TForm1.Panel6Click(Sender: TObject); Panel3Click(SELF); Panel4Click(SELF); Panel5Click(SELF); procedure TForm1.Panel7Click(Sender: TObject); ListBox1.Clear; CommPortDriver1.SendString(Char(255)); procedure TForm1.Panel8MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Schrittmotoren_Befehl := '@0M ' + '0' + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Y) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position); CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.Panel8MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); CommPortDriver1.SendString(Char(255)); Timer2.Enabled:=TRUE; procedure TForm1.Panel10MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Schrittmotoren_Befehl := '@0M ' + ComboBox1.Text + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Y) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position); CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.Timer2Timer(Sender: TObject); Timer2.Enabled:=FALSE; Schrittmotoren_Befehl:='@0P'; CommPortDriver1.ComPortPollingDelay := 200; Schrittmotoren_Befehl_Senden; procedure TForm1.TrackBar1Change(Sender: TObject); Label9.Caption:=IntToStr(TrackBar1.Position)+' Schritte/sec'; procedure TForm1.Panel11MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Schrittmotoren_Befehl := '@0M ' + IntToStr(aktuelle_Position.X) + ',' + IntToStr(TrackBar1.Position) + ',' + '0' + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position); CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.Panel15MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Schrittmotoren_Befehl := '@0M ' + IntToStr(aktuelle_Position.X) + ',' + IntToStr(TrackBar1.Position) + ',' + ComboBox2.Text + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Z) + ',' + IntToStr(TrackBar1.Position); CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.Panel12MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Schrittmotoren_Befehl := '@0M ' + IntToStr(aktuelle_Position.X) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Y) + ',' + IntToStr(TrackBar1.Position) + ',' + '0' + ',' + IntToStr(TrackBar1.Position) + ',' + '0' + ',' + IntToStr(TrackBar1.Position); CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.Panel16MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Schrittmotoren_Befehl := '@0M ' + IntToStr(aktuelle_Position.X) + ',' + IntToStr(TrackBar1.Position) + ',' + IntToStr(aktuelle_Position.Y) + ',' + IntToStr(TrackBar1.Position) + ',' + ComboBox3.Text + ',' + IntToStr(TrackBar1.Position) + ',' + ComboBox3.Text + ',' + IntToStr(TrackBar1.Position); CommPortDriver1.ComPortPollingDelay := 50; Schrittmotoren_Befehl_Senden; procedure TForm1.ComboBox1Change(Sender: TObject); Code: Integer; Buf: Integer; Val(ComboBox1.Text, Buf, Code); if Code=0 then TrackBar2.Max:=Buf; end else ComboBox1.Text:=IntToStr(TrackBar2.Max); procedure TForm1.ComboBox2Change(Sender: TObject); Code: Integer; Buf: Integer; Val(ComboBox2.Text, Buf, Code); if Code=0 then TrackBar3.Max:=Buf; end else ComboBox2.Text:=IntToStr(TrackBar3.Max); procedure TForm1.ComboBox3Change(Sender: TObject); Code: Integer; Buf: Integer; Val(ComboBox3.Text, Buf, Code); if Code=0 then TrackBar4.Max:=Buf; end else ComboBox3.Text:=IntToStr(TrackBar4.Max); - 49 -