aufbau eines labview-basierten steuerungs- und ...stoe_exp/students/miniforschung/pdf_files/... ·...

18
Aufbau eines LabVIEW-basierten Steuerungs- und ¨ Uberwachungssystems f ¨ ur das Labor der APIX-Gruppe Bericht, Juli 2008 Miniforschung von Karl-Heinz Blumenhagen Betreuer: G¨ unter Weber APIX (Atomic Physics with heavy Ions and X-Rays) Arbeitsgruppe von Prof. Dr. Thomas St¨ ohlker Physikalisches Institut, Universit¨ at Heidelberg und GSI, Darmstadt

Upload: vanmien

Post on 16-Aug-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

Aufbau eines LabVIEW-basierten

Steuerungs- und Uberwachungssystems

fur das Labor der APIX-GruppeBericht, Juli 2008

Miniforschung von Karl-Heinz Blumenhagen

Betreuer: Gunter Weber

APIX (Atomic Physics with heavy Ions and X-Rays)

Arbeitsgruppe von Prof. Dr. Thomas Stohlker

Physikalisches Institut, Universitat Heidelberg und GSI, Darmstadt

1 Einleitung

Die Miniforschung, die im vorliegenden Bericht zusammengefasst wird, wurde in der APIXArbeitsgruppe im gerade entstehenden Labor in Heidelberg durchgefuhrt. Diese Gruppe ar-beitete bisher hauptsachlich an der GSI in Darmstadt und beschaftigt sich schwerpunktmaßigmit Rontgenspektroskopie an Schwerionen im Energiebereich von wenigen keV bis zu einigenhundert keV. Die Detektoren, die verwendet werden, sind Halbleiterdetektoren, Kristallspektro-meter und Mikrokalorimeter. Das Heidelberger Labor soll hauptsachlich dazu genutzt werden,Halbleiterdetektoren sowie deren Ausleseelektronik und Datenanalyse weiterzuentwickeln undzu testen. Von besonderem Intersse sind dabei die segmentierten 2D-Detektoren, welche eineorts-, zeit- und energieauflosende Messung ermoglichen.Da die APIX-Gruppe sowohl in Heidelberg als auch in Darmstadt arbeitet, kann - vor allemnachts - nicht immer jemand im Heidelberger Labor sein, um die Experimente zu kontrollie-ren. Daher wird versucht, die Steuerung und Uberwachung teilweise automatisch auszufuhren.Anwendungsbeispiele fur die Automatisierung sind die Uberwachung der Stickstoffmenge imDetektor sowie ein ggf. notiges Nachfullen von Stickstoff, das Herunterfahren der Detektorhoch-spannung im Falle eines Stomausfalls und die Uberwachung des Sauerstoffgehaltes der Luft inVerbindung mit der Aktivierung einer Abluftpumpe, sollte der Sauerstoffgehalt zu niedrig sein(Hauptgrund dafur: aus dem Detektor tritt Stickstoff aus). Im Rahmen der Miniforschung wur-de eine Reihe von LabVIEW-Programmen zur Steuerung und Uberwachung zentraler Prozesseim Labor entwickelt. Die dabei eingesetzten Gerate werden in Kapitel 2 kurz vorgestellt. InKapitel 3 erfolgt eine ausfuhrliche Beschreibung der LabVIEW-Programme.

1

2 Gerate

2.1 Die Detektoren

Abbildung 1: Links: Segmentierter 2D-Streifendetektor, rechts: Anordnung der Streifen

Bei den im Labor eingesetzten Rontgendetektoren handelt es sich um mit flussigem Stickstoffgekuhlte Halbleiterdetektoren (Ge, SiLi). Sie eignen sich zum Nachweis von Photonen (∼ 5bis 500 keV) und ionisierenden Teilchen. Die typische Energieauflosung liegt bei 250-800 eV(0D) bzw. 2 keV (2D-Streifendetektor). Im Wesentlichen besteht ein solcher Detektor aus einerin Sperrrichtung geschalteten Diode mit einer angelegten Spannung im kV-Bereich. Trifft einionisierendes Teilchen bzw. ein hochenergetisches Photon auf die Sperrschicht, erzeugt es dortElektron-Loch-Paare, welche von der angelegten Hochspannung abgesaugt werden. Dadurchentsteht ein Strompuls, der durch einen Vorverstarker verstarkt wird. Die Form des Pulsesentspricht einer Kondensatorentladekurve. Das Integral uber diesen Puls ist proportional zurEnergie des einfallenden Teilchens. Ein segmentierter Streifendetektor kann, vereinfacht darge-stellt, realisiert werden, indem man bei einem

”normalen“ Halbleiterdetektor die Elektroden,

mit denen die Sperrspannung an den Halbleiterkristall anglegt wird, in Streifen aufteilt undan jeden dieser Streifen einen eigenen Auslesekanal anschließt. Verdreht man die Streifenein-teilungen der beiden Elektroden auf der Vorder- und Ruckseite des Kristalls um 90◦ gegenein-ander, erhalt man eine Ortsauflosung in zwei Raumdimensionen. Beim Streifendetektor gibt eszu jedem Streifen einen Vorverstarker. Da diese sich alle nahe am Kristall befinden, mussensie aus Platzgrunden entsprechend klein sein. Diese Vorverstarker sind sehr empfindlich undkonnen bereits durch sehr kleine Strome (∼ 100) nA beschadigt werden. Solche konnen bereitsdurch das thermische Rauschen bei Zimmertemperatur hervorgerufen werden (bei eingeschalte-ter Hochspannung). Daher muss der Detektor im Betrieb gekuhlt werden (und weil man durchKuhlung das thermische Rauschen vermindert, so dass die Energieauflosung verbessert wird),hier wird zur Kuhlung flussiger Stickstoff verwendet. Eine andere Ursache fur zu große Stromekann das zu schnelle Andern der Hochspannung sein (Ein- und Ausschalten). Das liegt daran,dass bei einer Spannungsanderung Ladung zu- oder abfließt, die einen Strom darstellt. Die-ser ist umso großer, je schneller man die Sperrschichtdicke andert. Aus diesem Grund mussman die Spannung sehr langsam herauf- und herunterfahren. Von 0 in den kV-Bereich benotigtman großenordnungsmaßig eine Stunde. Der Streifendetektor wird Hochvakuum betrieben. Der

2

Grund dafur ist, dass man vermeiden muss, dass Schmutz zwischen die einzelnen Streifen geratund diese elektrisch verbindet. Auch wenn der Detektor nicht in Betrieb ist, wird das Vakuumstandig aufrechterhalten.Schematischer Aufbau der Ausleseelektronik eines Halbleiterdetektors (Bild entnommen aus [1]und editiert):

Abbildung 2: Schematischer Aufbau der Ausleseelektronik: TFA = Timing Filter Amplifier;ADC = Analog-to-Digital-Converter; TDC = Time-to-Digital-Converter

3

2.2 Die HV-Quelle

Abbildung 3: Hochspannungsquelle

Als Hochspannungsquelle wird unter anderem ein ISEG SHQ 224M Netzgerat (Abbildung 3)verwendet. Die Ausgangs(gleich)-spannung kann auf zwei unabhangigen Kanalen jeweils von 0bis ±4000 V eingestellt werden. Die Bedienung erfolgt manuell am Gerat selbst oder rechner-gestutzt uber eine RS-232-Schnittstelle (Com-Port). Im manuellen Betrieb wird die Spannungmit 500 V/s geandert, dagegen kann man mit der Rechnersteuerung bis auf 2 V/s herunterge-hen, mit entsprechender Kontrolle durch die Software (Wartezyklen) noch weiter. Im Rahmendieser Arbeit wurde ein LabVIEW-Programm zur komfortablen Bedienung des Netzteils ge-schrieben, das in Abschnitt 3.2.6 vorgestellt wird.

4

2.3 Der Sauerstoffmesser und die Abluftpumpe

Abbildung 4: Sauerstoffmesser: EX-TEC GM4 von Sewerin

Abbildung 5: Steuerung der Abluftpumpe

Da die Detektoren mit Stickstoff gekuhlt werden und zum Nachfullen 200-Liter-Tanks (”De-

war“) mit flussigem Stickstoff im Labor stehen, besteht die Gefahr, dass dieser in großen Mengenaustritt und der Sauerstoffgehalt der Luft verringert wird. Um die Experimentatoren davor zuschutzen, wurde ein Gerat installiert, das kontinuierlich den Sauerstoffgehalt misst (Abbildung4). Außerdem wurde in eine der Fensterscheiben ein Loch geschnitten, in das eine Abluftpum-pe eingesetzt wurde. Ist der Sauerstoffgehalt der Luft unter einem kritischen Wert, wird diePumpe eingeschaltet (Abbildung 5 zeigt die Steuerung) um so die stickstoffreiche Luft abzupum-pen. Dieser Vorgang wird rechnergestutzt gesteuert, das im Rahmen dieser Arbeit entwickelteLabVIEW-Programm wird in Abschnitt 3.2.8 erklart.

5

2.4 Die Waage

Abbildung 6: Waage

Um die Kuhlung des Detektors zu gewahrleisten, muss sichergestellt sein, dass sich in seinemTank genugend flussiger Stickstoff befindet. Dessen Menge wird durch eine Gewichtsmessungmit Hilfe einer Waage (Abbildung 6), auf die man den Detektor stellt, bestimmt. Die Waage liestkontinuierlich das Gewicht aus und gibt es uber eine RS-232 Schnittstelle an den Computerweiter. Ist der Wert unterhalb eines kritischen Gewichts, wird zunachst flussiger Stickstoffnachgepumpt. Falls der Wert dann das kritische Gewicht immer noch nicht uberschreitet, kanndie Hochspannung des Detektors automatisch heruntergefahren werden.

2.5 Das GSM-Modem

Abbildung 7: GSM-Modem der FASTRACK-Serie von WAVECOM

Dieses Gerat (Abbildung 7) ist analog zu einem Handy mit einer SIM-Karte ausgestattet undkann bei Bedarf eine SMS an die Experimentatoren verschicken. So werden diese gewarnt, wennsie abwesend sind und z.B. der Strom ausfallt oder die Stickstoffmenge im Detektor kritischwird.

6

2.6 Unterbrechungsfreie Stromversorgung (USV)

Abbildung 8: USV von APC

USVs (Abbildung 8) werden im Labor eingesetzt, um im Falle eines Stromausfalls die Span-nung am Detektor aufrechtzuerhalten, so dass diese langsam heruntergefahren werden kannund der Detektor nicht zerstort wird. Ebenso versorgen die USVs die Rechner zur Steuerungund Uberwachung des Experimentes, sowie die Elektronik, weiter, so dass auch ein automati-sches, rechnergestutztes Herunterfahren der Spannung sowie das Versenden einer entsprechen-den Warnmeldung noch moglich ist.

7

3 Steuerung uber LabVIEW

Um Einheitlichkeit zu erreichen, sollen moglichst alle Laborgerate, die man uber den Computerbedient (

”Slow Control“), mit dem Programm LabVIEW angesteuert werden. LabVIEW ist ei-

ne graphische Programmiersprache, die vor allem fur die Automatisierung von Mess-, Pruf-, undRegeleinrichtungen genutzt wird. Der

”Quelltext“ eines LV-Programms wird in dem sogenann-

ten Blockdiagramm visualisiert. Dieser ist dem Schaltplan technischer Einrichtungen nachemp-funden. Sogenannte

”Virtuelle Instrumente“ (VI) sind dort uber Datenleitungen miteinander

verbunden (siehe Abbildung 9). Eine VI kann sowohl fur die Eingabe-Ausgabe-Schnittstelleeines tatsachlich vorhandenen Laborgerates (z. B. Hochspannungsnetzteil) als auch fur ein reinsoftwareseitiges Unterprogramm stehen (z. B. Schreiben und Abspeichern einer Datei) ste-hen. Die Ein- und Ausgabeparameter jeder VI werden in einer graphischen Benutzeroberflache,dem sogenannten

”Frontpanel“, dargestellt. So lasst sich jede VI wie ein eingenstandiges Pro-

gramm bedienen. Werden dagegen die Datenein- und -ausgange einer VI im Blockdiagrammmit Datenleitungen verbunden, so agiert diese als Unterprogramm (Sub-VI) in der durch dasBlockdiagramm definierten ubergeordneten VI.

Abbildung 9: LabVIEW-Beispielbild: Im Blockdiagramm einer VI sind zwei Sub-VIs durch eine

”Leitung“ verbunden

Fur eine Reihe von Anwendungen liegen in dem LabVIEW Programmpaket bereits vor-geschriebene VIs vor (z. B. Lesen und Schreiben von Dateien, Kommunikation mit externenGeraten uber Com- oder USB-Ports, etc.). Diese konnen fur den jeweiligen Nutzungszweckangepasst und dann in dem vom Nutzer erstellten ubergeordneten Programm als Sub-VIs ver-wendet werden.

Im Folgenden werden die im Rahmen dieser Arbeit entwickelten LV Programme beschrieben.

3.1 Ansteuerung der RS-232-Schnittstelle

Icon: So sieht dieses Programm als Unterprogramm im Blockdiagramm eines ubergeordneten

Programms aus:

Viele Gerate, die im Labor verwendet werden, kann man uber eine RS-232-Schnittstelle anden Rechner anschließen, z.B. das Netzteil, die Waage und das GSM-Modem. Um diese Gerateuber LabVIEW ansprechen zu konnen, verwenden wir das in diesem Abschnitt vorgestellteProgramm, das bereits im LabVIEW-Softwarepaket enthalten ist. Man gibt den gewunschtenBefehl, der an das angeschlossene Gerat geschickt werden soll, im Feld string to write einund erhalt ggf. die Ausgabe im Feld read string (siehe Abbildung 10).

Grober Ablauf des Programms: Zunachst wird der Port”geoffnet“, d.h. fur diese Anwendung

reserviert. Uber diesen wird der eingegebene Befehl an das zu steuernde Gerat gesendet. Diesesfuhrt den Befehl aus und schreibt die Antwort auf den Port. Nach einer Verzogerungszeit liestdas Programm die Antwort und schließt danach den Port wieder, d.h. gibt den Port wieder frei.

8

Abbildung 10: Basisprogramm zur Ansteuerung der RS-232-Schnittstelle: Front Panel

Abbildung 11: Basisprogramm zur Ansteuerung der RS-232-Schnittstelle: Blockdiagramm

Bisher wurde bei den Eingangen des VIs nur string to write erwahnt, es gibt aber noch mehr:VISA resource name: Hier wahlt man den Port, an dem das Gerat am Computer angeschlos-sen ist (z.B. COM1).baud rate: Ubertragungsgeschwindigkeit des Ports (ublich sind je nach Gerat 2400 bis 115200Baud, wobei 1 Baud = 1 Zeichen pro Sekunde)data bits: Anzahl der Bits in den eingehenden Datenpaketenparity: Legt die Paritat fest, die bei jedem ubertragenen oder empfangenen Paket verwendetwird. Dies dient zum Erkennen von Ubertragungsfehlern.stop bits: Legt die Anzahl der Stoppbits fest, mit denen das Ende eines Pakets angezeigt wird.flow control: Legt fest, was fur eine Steuerung vom Ubertragungsmechanismus verwendetwird. Dies wird z.B. benotigt, wenn ein Empfanger dem Einlesen der Daten nicht nachkommtund den Sender dann zeitweise stoppen muss.delay before read (ms): Dies ist die erwahnte Verzogerungszeit zwischen

”Gerat schreibt

Antwort auf Port“ und”Programm liest die Antwort“. Wie dieser Parameter zu wahlen ist,

9

musste erst ausprobiert werden. Wahlt man die Zeit zu kurz, kann es passieren, dass das Pro-gramm die Antwort vom Port liest, bevor sie dort vollstandig anliegt. Wahlt man die Zeit zulang, wird das Programm unnotig langsam. Dazu mehr in Abschnitt 3.2.2.write, read: Damit steuert man, ob uberhaupt der eingegebene Befehl ausgefuhrt wird bzw.die Antwort des Gerates gelesen wird.Beispiel fur eine Datenubertragung mit der RS-232-Schnittstelle aus [2]:

Abbildung 12: Timing bei der RS-232-Schnittstelle

3.2 Steuerung der HV-Quelle

3.2.1 Befehlsformat der HV-Quelle

Die Befehle, die die HV-Quelle uber die RS-232-Schnittstelle steuern, sind von der Form

< Befehl >< Kanalnummer >=< Wert >< cr >< lf >

Dabei ist < Befehl > eine Folge aus einem oder zwei Zeichen (nachzulesen in der Anleitung),Kanalnummer 1 oder 2 und < cr >< lf > ein

”carriage return line feed“. Der Teil =<

Wert > wird nur bei Schreibbefehlen benotigt, z.B. beim Setzen einer neuen Spannung. Beiden folgenden Befehlen wird die Eingabe < Kanalnummer > nicht benotigt, da sie nichtkanalspezifisch sind:

”Lesen Gerate-Identifikator“,

”Lesen Verzogerungszeit“ und

”Schreiben

Verzogerungszeit“. Bei der Eingabe ist < cr >< lf > wegzulassen, da das VI diesen Teilautomatisch hinzufugt.

3.2.2 Bestimmung der Verzogerungszeit mit dem Programm”Zeitbestimmung.vi“

Um die HV-Quelle mit dem Basisprogramm fur die RS-232-Schnittstelle ansprechen zu konnen,mussen die Parameter baud rate, data bits, parity, stop bits, flow control und delaybefore read (ms) angegeben werden. Mit Ausnahme von delay before read (ms) sind alleParameter der Anleitung der HV-Quelle zu entnehmen, delay before read (ms) wurde miteinem Programm experimentell bestimmt, das an dieser Stelle vorgestellt wird.Ablauf: Fur verschiedene Verogerungszeiten wird je 20 Mal gepruft, ob die Antwort, die dasProgramm von der HV-Quelle erhalt, mit der erwarteten Antwort ubereinstimmt. Es wird einFile angelegt, in dem in der linken Spalte die gewahlten Verzogerungszeiten stehen und in derrechten Spalte die Anzahl der Antworten, die nicht mit erwarteten Antwort ubereingestimmthaben. Der Bereich der Verzogerungszeit, uber den gemessen wird, kann uber die Eingaben

10

Abbildung 13: Programm zur Bestimmung der Verzogerungszeit: Front Panel

Tmin und Tmax festgelegt werden, die Schrittweite uber dt. Den Befehl, fur den man dieMessung durchfuhrt, gibt man im Feld Testbefehl ein. Je nach Testbefehl muss man die dieAntwort, die man von der HV-Quelle erwartet, im Feld Erwartete Anwort anpassen. Daman nicht erwarten konnte, dass die Zeit, die die HV-Quelle benotigt, um eine Antwort aufden Port zu schreiben, fur alle Befehle gleich lang ist, wurde dieses Programm fur alle Befehleausgefuhrt.Fur den ersten Befehl ergab die Messung eine Zeit, ab der keine unvollstandigen Antwortenmehr kamen, von 600 ms. Dies war dann die untere Grenze fur den Messbereich fur die folgen-den Befehle, aber um sicher zu gehen, wahlten wir 650 ms. Die Messung wurde fur alle Befehledurchgefuhrt und die kritischen Zeiten direkt im Front Panel des Programms vermerkt. Anhandder Messung wurde schließlich 750 ms fur die Verzogerungszeit (der Parameter delay beforeread (ms)) gewahlt.

3.2.3 Das Programm Command-I-O.vi

Mit der Kenntnis der Parameter baud rate, data bits, parity, stop bits, flow control unddelay before read (ms) kann ein Programm geschrieben werden, das die gleiche Funktion(fur die Steuerung der HV-Quelle) erfullt wie das Basisprogramm, aber ubersichtlicher ist. Dieswird erreicht, indem man diese Parameter nicht mehr durch Eingaben festlegt, sondern sie aufKonstanten setzt. Außerdem werden die Eingange write und read auf konstant TRUE ge-setzt. Damit verbleiben als Eingange nur noch VISA resource name zur Wahl des Ports und

string to write zur Befehlseingabe. Icon:

11

Als nachstes wurde fur jeden moglichen Befehl jeweils ein Programm geschrieben, das genaudiesen Befehl ausfuhrt. Als Beispiele werden je ein Programm fur einen Lesebefehl und einProgramm fur einen Schreibbefehl vorgestellt.

3.2.4 Beispielprogramm fur einen Lesebefehl:”Lesen Istspannung.vi“

Abbildung 14:”

Lesen Istspannung.vi“: Blockdiagramm

Dieses Programm dient dazu, die am gewahlten Kanal aktuell anliegende Spannung zu messen.Beschreibung der markierten Abschnitte anhand von Abbildung 14:

1. Der Befehl zum Spannungsauslesen ist”U1“ oder

”U2“, je nach Kanalnummer. Hier werden

zwei Strings, zuerst die Konstante”U“ und dann die eingegebene Kanalnummer (z.B.

”1“) zu

einem String zusammengesetzt:”U1“.

2.”Command-I-O“: In diesem Programm wird der Befehl ausgefuhrt. Am Befehlseingang liegt

(in diesem Beispiel)”U1“.

3. Die Antwort der HV-Quelle (aktuelle Spannung) hat folgendes Format: nnnnn-1Dabei ist die -1 als Exponent zu verstehen, die Spannung betragt also nnnnn/10. Das Unter-programm an dieser Stelle wandelt die Antwort in ein lesbareres Format um.

3.2.5 Beipielprogramm fur einen Schreibbefehl:”Schreiben Sollspannung.vi“

Soll die Spannung am gewahlten Kanal auf einen neuen Wert eingestellt werden, kann diesermit diesem Programm eingelesen werden. Uberblick uber den Ablauf (Abbildung 15):

1. Am Eingang Set Voltage in V (0...4000) wird der gewunschte Spannungswert eingege-ben. Da dieser nur Werte von 0 bis 4000 V annehmen darf, wird im rot markierten Teil desProgramms uberpruft, ob die Eingabe eine Zahl war und wenn ja, ob diese großer gleich 0 undkleiner als 4000,1 war. Ist dies der Fall, liegt am Ausgang Valid Set Voltage ein TRUE an.

2. Die großere rechteckige Box ist eine sog. case structure. Dies entspricht, beispielsweise in C,einer if/else-Struktur. Je nachdem, ob TRUE oder FALSE am case selector anliegt, wer-den verschiedene Aktionen ausgefuhrt. In diesem Fall wird bei FALSE (ungultiger Wert derSpannung) ein leerer String an den Befehlseingang von

”Command-I-O“ gelegt, d.h. es passiert

nichts. Bei TRUE, d.h. bei einem gultigen Spannungswert wird dieser zunachst auf die nachste

12

Abbildung 15:”

Schreiben Sollspannung.vi“: Blockdiagramm

ganze Zahl gerundet, welche dann in einen String umgewandelt wird. Dieser wird dann zusam-men mit dem Befehlsnamen

”D“, der Kanalnummer und

”=“ zu dem String zusammengesetzt,

der dann an den Befehlseingang von”Command-I-O“ gelegt wird.

3.2.6 Benutzerfreundlichere Steuerung der HV-Quelle

Beim Arbeiten mit dem Netzteil ist es zu umstandlich, immer erst die Befehle nachzulesen, umdas Gerat bedienen zu konnen. Daher wurde ein Programm geschrieben, das ermoglicht, dieFunktionen auf einer graphischen Benutzeroberflache durch Anklicken zu aktivieren.Der in Abbildung 17 gezeigte Ausschnitt aus dem Blockdiagramm ist der Anfang des Pro-gramms. Daran soll der Programmablauf verdeutlicht werden:

1. Bei der Steuerung des Netzteils hat man die Moglichkeit, den Parameter”break time“ zu

verandern. Dieser Parameter bestimmt, wieviel Zeit zwischen der Befehlsverabeitung des Netz-teils und der Ausgabe der Antwort auf den Port vergehen soll. Ist ein zu hoher Wert eingestellt,kann es passieren, dass die Antwort des Netzteils erst an den Port gesendet wird, nachdemder Rechner bereits angefangen hat, den Port auszulesen. Dies wurde zu fehlerhaften Antwor-ten fuhren, daher ist es besser, die

”break time“ auf einen niedrigen Wert zu setzen. Moglich

sind Wert 3 bis 255 ms. Das markierte Programm setzt zu Beginn die”break time“ auf 3 ms

und misst sie anschließend um zu uberprufen, ob das Setzen erfolgreich war (”break time“ <

10 ms). Wenn nicht, wird das Programm abgebrochen. In diesem Programm die”break time“

nicht mehr verandert werden.

13

Abbildung 16: Netzteil Control.vi: Front Panel; der Aufbau ist symmetrisch in Kanal 1 und 2.Fur beide Kanale befinden sich jeweils die Lesebefehle in der linken, die Schreibbefehle in derrechten Spalte. Alle Befehle werden durch Anklicken der Taster ausgefuhrt, bei Schreibbe-fehlen muss man zusatzlich noch den Wert der zu schreibenden Große eingeben.

2. Diese Struktur ist eine While-Schleife. Sie wird so lange durchlaufen, bis die Abbruchbedin-gung erfullt ist. In diesem Fall ist als Abbruchbedingung das Anklicken des

”STOP“-Schalters

definiert. Dadurch kann der Benutzer das Programm beenden.

3. Die Struktur, die Ahnlichkeit mit einem Filmstreifen hat, ist eine sequence structure. Sie ist inZellen unterteilt, die sequentiell abgearbeitet werden. In jeder Zelle wird ein Befehl ausgefuhrt.Dazu wird das Programm, das diesen Befehl ausfuhrt, hier als Unterprogramm eingebaut. Andie Eingange der Programme fur Schreibbefehle und die Ausgange der Programme fur Lesebe-fehle werden Ein-bzw. Ausgabefelder (diese sind in Abbildung 14 zu sehen) dieses Programmsangeschlossen. Da nicht bei jedem Durchlauf der While-Schleife alle Befehle ausgefuhrt werdensollen, wird bei jedem Befehl per case structure, vom Benutzer gesteuert, entschieden, ob derjeweilige Befehl ausgefuhrt wird oder nicht.

4. Die Konstante”1“ wird an alle Unterprogramme angeschlossen (an den Eingang Channel

Number (1 or 2)), die Befehle fur HV-Kanal 1 des Netzteils ausfuhren. Entsprechend gibt esauch eine

”2“, die ist in diesem Ausschnitt aber nicht zu sehen.

3.2.7 Automatisches Herunterfahren der Spannung bei niedriger Stickstoffmenge

Wie bereits erwahnt wurde, darf der Detektor nur betrieben werden, wenn er ausreichendgekuhlt ist. Die Kuhlung erfolgt mittels flussigen Stickstoffs, es muss also standig kontrolliert

14

Abbildung 17: Netzteil Control.vi: Blockdiagramm (Ausschnitt)

werden, ob davon genug im Tank des Detektors ist. Dieses Programm liest kontinuierlich dieWaage aus, auf der der Detektor steht um so die Stickstoffmenge zu messen. Sollte das gemesseneGewicht unter einen kritischen Wert fallen, wird die Hochspannung am Detektor langsam auf0 gefahren.

Abbildung 18: Programm zur Stickstoffuberwachung und zum automatischen Abschalten desDetektors: Front Panel

Wieder soll der Ablauf anhand des Blockdiagramms (Abbildung 17) erklart werden:

1. Wie in”Netzteil Control.vi“ wird zu Beginn die

”break time“ auf 3 ms gesetzt, aber hier

zusatzlich noch die Spannungsrampe auf den minimal moglichen Wert von 2 V/s. Sind die-

15

Abbildung 19: Programm zur Stickstoffuberwachung im Detektor und zum automatischen Ab-schalten des Detektors: Blockdiagramm

se Initialisierungen erfolgreich, wird die außere case structure mit TRUE angesteuert, daseigentliche Programm wird ausgefuhrt. Funktionieren die Initialisierungen nicht, erfolgt einProgrammabbruch.

2. Da die Waage kontinuierlich ausgelesen werden soll, wird hier eine While-Schleife eingebaut.Bei jedem Schleifendurchlauf wird als Erstes hier das aktuelle Gewicht der Waage ausgelesenund mit einem kritischen Wert verglichen, den man vor dem Programmstart im EingabefeldMinimum Weight in kg eingeben muss. Liegt das gemessene Gewicht uber diesem Wert, istder Schleifendurchlauf beendet. Wird das kritische Gewicht einmal unterschritten, beginnt dasHerunterfahren der Spannung. Es kann nicht unterbrochen werden, unabhangig davon, ob dasGewicht im Folgenden wieder uber kritischen Wert steigt oder nicht.

3. Um das Herunterfahren der Spannung zu erreichen, wird bei jedem Schleifendurchlauf zunachstdie Spannung ausgelesen. Von dem Wert werden 2 V abgezogen, das Ergebnis dieser Subtraktiondefiniert den neuen Sollwert der Spannung.

4. Hier wird der neue Sollwert der Spannung geschrieben. Vorher wird allerdings gepruft, ober kleiner als 2 V ist. Ist dies der Fall, wird als 0 als neue Sollspannung geschrieben und dasProgramm nach dem aktuellen Schleifendurchlauf beendet.

5. Mit diesem Unterprogramm erhalt die HV-Quelle den Befehl, die geschriebene Sollspannunganzusteuern.

In der letzten Zelle der sequence structure befindet sich ein time delay. Die Spannungsanderungverursacht im Detektor ein Strom. Durch das time delay wird die Spannung so lange konstantgehalten, bis der Strom unter einen definierten Wert gefallen ist. Wie groß dieser kritischeStrom und das entsprechende time delay sind, muss noch experimentell bestimmt werden. Solldas Herunterfahren bei einem Stromausfall erfolgen konnen, ist man beim time delay nach obendurch die Zeit, die die USVs Notstrom liefern konnen, limitiert. Ansonsten gilt: je langer dastime delay gewahlt wird, desto sicherer wird das Herunterfahren.Geplante Verbesserungen:

16

Das Programm wird in dieser Form im Experiment nicht verwendet, dazu sollten noch Erwei-terungen eingebaut werden. Stieße beispielsweise jemand an die Apparatur und senkte dadurchdas Gewicht unter den kritischen Wert, wurde die Spannung falschlicherweise heruntergefahren.Daher sollte das Gewicht immer mehrmals hintereinander gelesen werden um zu entscheiden,ob es wirklich zu niedrig ist oder ob es sich nur um eine zufallige Schwankung handelt. Außer-dem muss man bei zu wenig Stickstoff auch nicht gleich den Detektor ausschalten, stattdessenkonnte man die Stickstoffversorgung ansteuern, dass sie Stickstoff in den Detektor nachhfullt.Schließlich sollte noch das GSM-Modem in den Ablauf integriert werden, so dass bei Problemeneine SMS an die Experimentatoren verschickt wird.

3.2.8 Uberwachung des Luftsauerstoffgehalts

Im Rahmen dieser Arbeit wurde ein Programm entwickelt, das kontinuierlich den Sauerstoff-messer ausliest und bei zu geringem Sauerstoffgehalt die Abluftpumpe aktiviert. Der Sauerstoff-messer sendet Pulse an den Rechner, wobei die Frequenz vom Sauerstoffgehalt abhangt. DasProgramm bestimmt kontinuierlich die Frequenz; liegt diese oberhalb eines kritischen Wertes(das bedeutet, der Sauerstoffgehalt liegt unterhalb eines kritischen Wertes), wird fur einige Zeitdie Abluftpumpe eingeschaltet. Das Programm legt außerdem ein Log-File an, in regelmaßigenAbstanden die Ausgabe des O2-Messgerats sowie Datum und Uhrzeit abspeichert. Diese Dateiwird in regelmaßigen Abstanden (im Programm wahlbar) uberschrieben.

Literatur

[1] Anleitung zum Fortgeschrittenpraktikums-Versuch F17:http://www.physi.uni-heidelberg.de/Forschung/ANP/Cascade/F17/

[2] Wikipedia: http://de.wikipedia.org/wiki/EIA-232

17