Anleitung zum Messprogramm ESA22c

Koinzidenz-List-Mode-Messungen mit dem ESA22-Elektronen-Spektrometer

14.Mai.2007 K. Huber, Strahlenzentrum Univ. Gießen
Version 03.Feb.2009

Inhaltsverzeichnis

1 Über diese Anleitung . . . . . . . . . . . . . . . . . . . . . . 1

2 Funktion von ESA22c . . . . . . . . . . . . . . . . . . . . . . 2

2.1 Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 Ablauf der Messung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2.1 Steuerung und Datenerfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2.2 Messung von Elektronen- und Ionenstrom (Projekt!). . . . . . . 7 2.2.3 Messung der Ortsinformation . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.4 Messung der Laufzeitdifferenzen . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.5 Messung von korrelierten Orts- und Laufzeit-Daten

(XYT-Interface) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2.6 Fehlermeldungen (XYT-Interface) . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.7 Timing (XYT-Interface). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.8 ESA-Karte (Projekt!) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2.9 Synch-Karte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.3 ESA22c Geräteeinstellungen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4 ESA22c Control-Routing Belegung. . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5 ESA22c Data-Routing Belegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.6 Messdatenformat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.7 Experiment-Control-File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3 Bedienung von ESA22c . . . . . . . . . . . . . . . . . . . 28

3.1 ESA22c Top-Menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.1 Exit ESA22c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.2 Start experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.3 Show header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1.4 Analyse spectrum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.5 Delete spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.6 Convert spectrum to ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.7 Edit header of spectrum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.8 Execute shell command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.9 Set configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.10 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.2 ESA22c Start-Menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.1 Return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.2 Create new spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.3 Continue old spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.4 Test run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.2.5 Print hardware info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.3 Experiment-Parameter-Eingabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3.4 Funktionen bei laufendem Experiment . . . . . . . . . . . . . . . . . . . . . . . 34

3.4.1 Stop experiment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4.2 Save spectrum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.4.3 Show header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.4.4 Analyse spectrum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.4.5 Detach ESA22c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.5 ESA22c Konfigurations-Menü . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5.1 Return. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.5.2 General parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.5.3 Background program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.5.4 Data Routing hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.5 Control Routing hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5.6 Data Routing identifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5.7 Control Routing addresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5.8 Electron current converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5.9 Ion current converter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.5.10 CAN/Iseg HV parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

4 Archivierung der Daten . . . . . . . . . . . . . . . . . . . 41

5 Statusanzeigen auf dem Bildschirm . . . . . . . . 43

6 Einschwingverhalten des Iseg8210n 505F

Netzgerätes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.1 Das Messverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.3 Messdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

1 Über diese Anleitung

Diese Anleitung zum ESA22c-Messprogramm steht in verschiedenen Formaten zur Verfügung. Die entsprechenden Files finden Sie auf dem Servix unter /usr/exp/ex help oder auf Ihrem Experiment-Account unter $HOME/ex home/ex help:

esa22c.txt Text-Format, kann z.B. mit a2ps in handlichem Format gedruckt werden. Es fehlen jedoch Bilder und Grafiken.

esa22c.dvi DVI-Format, kann z.B. mit dvips auf einem Postscript-Drucker gedruckt werden oder mit xdvi auf einem X-Windows Bildschirm dargestellt werden.

esa22c.html HTML-Format, kann mit jedem HTML-Browser (z.B. netscape) gelesen werden.

esa22c.info INFO-Format, kann mit dem GNU-Info-Browser (info -f esa22c.info) und GNU-emacs gelesen werden. Es fehlen jedoch Bilder und Grafiken.

esa22c.pdf PDF-Format, mit dem Acrobat-Reader zu lesen.

2 Funktion von ESA22c

2.1 Überblick

Für das ESA22-Elektronen-Spektrometer existieren folgende Datenerfassungs- und Auswerteprogramme:

ESA22m Messung einer Position-Computer-Matrix
ESA22s Messung von Energie-Scans mit Channelplate
ESA22xs Messung von Energie-Scans mit Channeltrons
ESA22t Messung eines Koinzidenz-Zeit-Spektrums
ESA22c Messung von Koinzidenz-List-Mode Daten
ESA22f Messung von Formfaktor-Spektren
ESA22a Auswertung von ESA22c List-Mode Daten

Das ESA22c-Messprogramm ermöglicht die Ermittelung von zusammengehörigen Reaktionsprodukten der sich kreuzenden Elektronen- und Ionenstrahlen. Es fasst die Funktionen der Messprogramme ESA22s und ESA22t zusammen. Die Elektronen werden ortsempfindlich mit einem Channelplate und einem nachfolgenden SSL-2401 Position Computer verarbeitet. Die Ionen werden mit einem Channeltron aufgefangen. Die Laufzeitunterschiede zwischen Elektronen und Ionen werden mittels TPC und ADC zu einem Zeitspektrum verarbeitet, in dem zusammengehörige Paare zu einem Koinzidenz-Peak akkumulieren.

Da die anfallenden 3-dimensionalen Spektren (x*y*t=256*256*n*4Bytes) den Rahmen eines Arbeitsspeichers sprengen, werden die Daten in ’List-Mode-Form’, d.h. im Wesentlichen unbearbeitet, über das Netz zum Host-Rechner übertragen. Um vorrübergehende Engpässe bei der Übertragung ausgleichen zu können, verwendet das ESA22c-Programm den freien Arbeitsspeicher als Puffer. Dieser kann bei kurzzeitigen Messungen auch dazu verwendet werden, Datenraten zu verarbeiten, die größer sind als die Transferrate zum Host-Rechner. Darüber hinaus werden zur Online-Kontrolle die x-y-Daten des Position Computers zu einer Ortsmatrix und die Laufzeit-Daten zu einem Zeitspektrum akkumuliert.

Wie beim ESA22s-Programm wird eine Folge von äquidistante Energieschritte durchlaufen. Die Abfolge der Energieschritte ist wahlweise steigend, fallend oder steigend und fallend. Diese Zyklen werden solange wiederholt bis die Messung manuell gestoppt wird. Der letzte Zyklus wird dabei noch zu Ende geführt.

Die Hard- und Software Voraussetzungen sind:

• VME Experiment-Rechner-System

• Data-Routing-Einheit

• Control-Routing-Einheit

• VT240/330 Terminal oder PC mit TeraTerm

• VxWorks Betriebssystem

• Netzwerkanschluss zu einem Host-Rechner Die maximale mittlere List-Mode-Übertragungsrate liegt je nach VME- und Host-Rechner bei 100-200 kBytes. Bei niedrigen Datenraten wird alle 10s zum Leeren der Puffer eine Close-Open-Sequenz durchgeführt, um auf dem Host-Rechner die Daten zu aktualisieren.

2.2 Ablauf der Messung

2.2.1 Steuerung und Datenerfassung

Die Erfassung der Messdaten erfolgt über neun Interfaces im Data-Routing:

• eine Eingabe der aktuellen Matrixnummer (Matrix)

• vier Zähler (U/D-Zlr) für Ionenstrom, Elektronenstrom, Messzeit und Totzeitverluste des Position-Computers

• eine Eingabe (Sync) für das Zähler-Synchron-Signal, die Messung des Tastverhältnisses und Taktgeber zum Auslesen und Rücksetzen der Zählerkarten im Data-Routing

• eine Steuerung (XYT) zur Kontrolle der Position-Computer und ADC Eingaben

• eine Position-Computer Dateneingabe (PCI)

• eine ADC Dateneingabe (ADC)

Die Steuerung des Experimentes erfolgt über acht Interfaces im Control-Routing, die von zwei Adress-Decodern gesteuert werden:

• ein CAN-Bus-Controller zum Ansteuern des Iseg Hochspannungsmoduls

• ein Interface für die Ausgabe der aktuellen Matrixnummer

• zwei Timer für Mess- und Pausenzeit

• eine Interrupt-Eingabekarte

• eine programmierbare Zeitbasiskarte

• eine digitale Eingabekarte zur Messbereichseingabe

• eine Interface-Karte (ESA) zum programmierten Umschalten in die verschiedenen Experiment-Modes (xy, t, xyt) (Projekt, z.Z. manuell umschalten!!)

Die Anordnung der Interface-Karten ist im Prinzip beliebig und wird beim Konfigurieren der Messprogramme festgelegt.

Zu Beginn der Messung erfolgt durch ESA22c eine Anfangsnormierung über die Interfaces im Control-Routing:

• Einstellen der Hardware auf den xyt-Experiment-Mode über die ESA-Karte Achtung: z.Z. muss die Mode-Einstellung noch manuell mittels Schalter auf dem XYT-Interface erfolgen!

• Überprüfung der CAN-Bus-Verbindung zum IsegHV-Modul und dessen Status

• Programmieren der Zeitbasiskarte als Taktgeber zur Messung der Messzeit pro Energieschritt

• Einlesen der Messbereiche für Ionen- und Elektronenstrom über die digitale Eingabekarte.

Der Ablauf des Experimentes besteht aus einer Serie von Messintervallen, wobei für jedes Messintervall die Matrixnummer, die Mess- und Pausenzeit, die Spektrometerenergie usw. vorgegeben werden durch einen (internen) Experiment-Steuer-File.

Die Spektrometerenergie wird mit Hilfe des Parameter-Files ~/ex home/ex param/esa22.par in Spektrometerspannungen umgerechnet und diese über den CAN-Bus auf dem Iseg-Hochspannungsmodul eingestellt:

Das Iseg-Modul benötigt einige Zeit bis die Spannungen stabil stehen. Das Zeitverhalten des Iseg-Netzgerätes wurde für verschiedene Spannungssprünge untersucht und daraus eine Formel für das Einschwingen auf 5mV Toleranz abgeleitet (Siehe Kapitel 6 [Einschwingverhalten des Iseg8210n 505F Netzgerätes], Seite 44.), die zur Berechnung der Pausezeiten dient. Die Toleranz von 5mV ist auf den Endwert nach dem Einschwingen bezogen und NICHT als absolute Abweichung vom Sollwert zu verstehen! Letzteres ist eine Frage der Eichung des Gerätes und wird als Service von Iseg angeboten (Empfehlung: am Anfang nach 1-2 Jahren; ca. 80 Euro?). Im ersten Schritt der Messung werden die Startspannungen eingestellt, dabei wird auf jeden Fall das Einschwingverhalten des Iseg-Netzgerätes berücksichtigt und die vorgegebenen Startup- bzw. Pause-Zeiten werden ignoriert. Diese Startphase kann bis zu 50s dauern, wenn Soll- und Ist-Werte der Spannungen weit auseinander liegen. Bei den folgenden Schritten wartet das Messprogramm die errechneten Einschwingzeiten des Iseg-Netzgerätes nur ab, falls der Parameter ’Wait while voltages ramp’ gesetzt ist. Die zusätzlich vorgegebenen Startup- bzw. Pause-Zeiten werden auf jeden Fall ausgeführt.

Als nächstes wird die aktuelle Matrixnummer zum Positions-Interface im Control-Routing ausgegeben. Anschließend wird der Messzeit-Timer geladen und zum Schluss der Pausen-Timer geladen und gestartet. Das Ende der Pause startet unmittelbar die Messzeit. Im Data-Routing wird, ausgelöst durch das Pausen-Intervall-Signal, zuerst die Matrixnummer zum Rechner übertragen.

Während des Messzeit-Intervalls werden die Positionsdaten des Position-Computers und die Zeitdaten von TPC/ADC zum Rechner übertragen und die vier Zähler akkumulieren die ankommenden Zählimpulse. Der Totzeitzähler summiert die Pileup-Impulse des Position-Computer-Interfaces. Ionen- und Elektronenstrom werden integriert durch Zählen der Ausgangsimpulse von Spannungs-Frequenzwandlern. Die Messzeit wird ermittelt durch Zählen eines Zeittaktes, der durch die programmierbare Zeitbasis im Control-Routing erzeugt wird.

Die vier Zähler und das zugehörige Synchron-Signal werden periodisch mit einem 100ms Takt ausgelesen (Read-Signal) und anschließend gelöscht (Reset-Signal). Mit dem Read-Signal werden die Zählerinhalte in je ein Senderegister übertragen, so dass die Interfaces anschließend sofort wieder frei sind, während die Übertragung der Daten einige Zeit in Anspruch nehmen kann.

Das Synchronsignal trennt die einzelnen Zähler-Datensätze und muss deshalb als erstes übertragen werden. Damit dies gewährleistet ist, wird es vom Data-Routing im Vorrangmodus behandelt. Mit Hilfe des Synchronsignals werden Datenverluste erkannt. Ein unvollständiger Datensatz wird verworfen. Wird ein Zähler mehrfach übertragen, so werden die zuviel übertragenen Daten verworfen, und nur das erste Datum wird verarbeitet, falls ein vollständiger Datensatz zustande kommt. Jeder solcher Fehler erhöht den ’Counters sequence errors’-Zähler um eins. Bei Auftreten von ’Sequence errors’ sollte man den Zählerdaten nicht mehr vertrauen.

Damit die Zählerdaten der einzelnen Messintervalle sauber getrennt werden, muss die Pause mindestens 100ms lang sein. Werden die internen Einschwingzeiten für das Iseg8210n verwendet, so ist diese Bedingung auf jeden Fall erfüllt.

Am Ende der Messzeit wird ein Interrupt erzeugt, der dem Messprogramm mitteilt, dass der nächste Zyklus mit der Ausgabe des nächsten Steuerparametersatzes erfolgen kann.

Die Lifetime-Messung erfolgt über die IFS1-Karte des XYT-Interfaces. Sie muss per Steckbrücke so konfiguriert werden, dass sie bei der Lifetime-Messung das GateQ-Signal berücksichtigt.

Das Messzeit/Pause-Verhältnisses (duty cycle) wird über die IFS1-Karte des Zähler-Synchron-Signals gemessen, der das Messzeit-Intervall als GateQ-Signal zur Lifetime-Messung zugeführt wird. Die IFS1-Karte muss per Steckbrücke so konfiguriert werden, dass sie bei der Lifetime-Messung das GateQ-Signal berücksichtigt. Damit die Messung nicht verfälscht wird, darf die Zähler-Synchron-Karte kein Busy-Signal an die IFS1-Karte abgeben.

Abb 1. ESA22c-Timing Kapitel 2: Funktion von ESA22c 6 Abb 2. ESA22 Steuerung und Datenerfassung

2.2.2 Messung von Elektronen- und Ionenstrom (Projekt!)

Elektronen- und Ionenstrom werden in Keithly-Elektrometern gemessen. Die analoge Ausgangsspannung der Keithlys (Vollausschlag: 1V) wird in je einem VFC in eine Frequenz gewandelt (1V ==> 500kHz) und über eine Zähler-Karte gezählt. Die Zählerinhalte werden alle 0.1 Sekunde zum Rechner übertragen und anschließend werden die Zähler gelöscht. Beim Auslesen und Löschen der Zähler entsteht eine Totzeit kleiner 500ns.

Kapitel 2: Funktion von ESA22c 8 Abb 3. Elektronen- und Ionenstrommessung (Planung)

Kapitel 2: Funktion von ESA22c 9 Abb 4. Messbereichssteuerung für Elektronen- und Ionenstrommessung (Planung)

2.2.3 Messung der Ortsinformation

Die Elektronen werden ortsempfindlich mit einem Channelplate und einem nachfolgenden SSL-2401 Position Computer verarbeitet. Dieser liefert je 8 Positions-Bits für X und Y an das PCI-Interface, das ein Datenwort (2*8 Bits) bis zur Übertragung an den Rechner zwischenspeichert.

Werden innerhalb der Totzeit des PCI-Interfaces (im Mittel ca. 4us) vom Position Computer weitere Daten angeliefert, so werden diese verworfen, und über den BNC-Ausgang ’Pile-up out’ der PCIx-Karte ein Zählimpuls (TTL) abgegeben, der dem Totzeitverlustzähler zugeführt wird. Die Übergänge des PCI-Interfaces in den Zustand ’Busy’ und umgekehrt sind mit ca. 10ns unscharf. Dies führt dazu, dass ein Ereignis, das in diese Übergangszeit fällt, sowohl zum Rechner als auch zum Pile-up-Zähler oder zu keinem von beiden übertragen werden kann. Beim Übergang in den Zustand ’Busy’ gibt es jedoch solche Ereignisse nicht, da dann auch der Position Computer busy ist. Das Zählen der Pile-ups ist deshalb etwa mit dem folgenden Fehler behaftet:

F= 10ns * N * R
  N= Anzahl der verarbeiteten Ereignisse
  R= Rate der eintreffenden Ereignisse
Für die maximal zu verarbeitende Rate (100kHz) ergibt sich daraus:
F/N= 10ns * 100kHz = 0.1%

Der Zähler benötigt einen Auslese- und Clear-Impuls (TTL, ca. 10Hz, ca. 100ns) zum periodischen Auslesen und Rücksetzen. Da der Zähler während des Reset-Signals für ankommende Impulse gesperrt ist, erfolgt die Totzeitverlust-Zählung in der Größenordnung 100ns * 10Hz = 1.E-6 zu klein.

Der Position Computer Typ SSL-2502a ist wegen seines internen FIFO-Zwischenspeichers nicht geeignet für eine ESA22c-Messung da dadurch die Korrelation zu den Laufzeitdaten verloren geht!

2.2.4 Messung der Laufzeitdifferenzen

Die Ionen werden über ein Channeltron erfasst und durch Vorverstärker(???) und Constant-Fraction-Diskriminator(???) oder Timing-Filter-Amplifier(???) und Timing-Single-Channel-Analyser(???) zum Stopsignal für den TPC verarbeitet. Als Startsignal dient vorzugsweise der Analog-Strobe des Position-Computers, der eventuell invertiert werden muss (intern oder extern). Weniger geeignet ist der digitale Strobe, den die (optionale) PCIx-Karte direkt oder von Störungen bereinigt anbietet. Das direkte Signal könnte bei einem langen Verbindungskabel zum Position Computer Störungen durch den Datentransfer enthalten. Das direkte ist störungsfrei aber durch Einsynchronisierung um ca. 100ns unscharf. Ungeeignet zu diesem Zweck dürfte hingegen das Busy-Signal sein, das zwar zeitlich genauer ist, aber auch bei allen verworfenen Ereignissen und Störungen auftritt.

Zur Einstellung eines passenden Timings werden sowohl Start- als auch Stop-Signal des TPC über je ein Delay+Gate geführt.

Das TPHC-out-Signal wird einem ’Silena 7411’ ADC zugeführt, der seine Daten über das zugehörige Routing-Interface überträgt.

Abb 5. Messung der Laufzeitdifferenzen

2.2.5 Messung von korrelierten Orts- und Laufzeit-Daten (XYT-Interface)

In Abhängigkeit von den experimentellen Voraussetzungen treffen die Orts- und Zeitdaten in unterschiedlicher Reihenfolge und mit verschiedener Zählrate ein. Für die nachfolgende Auswertung muss jedoch die Zusammengehörigkeit der Datenwerte als korrelierte Paare erkenntlich sein. Diese Forderung wird durch die XYT-Interface-Karte erfüllt. Das XYT-Interface steuert ein PCI-Interface zur Erfassung der Daten eines ’SSL-2401 Position Computers’ und ein ADC-Interface zur Erfassung der Daten eines ’Silena 7411’ ADC’s mit folgender Logik (im xyt-Mode):

• Das Channelplate startet den Position Computer zur Analyse eines eingetroffenen Ereignisses. Dieser meldet sich mit einem ’Strobe’-Signal nach erfolgter Analyse bei dem PCI-Interface, das die Daten übernimmt und dem XYT-Interface durch ’Ready Pos’ anzeigt, dass es zur Datenübertragung bereit ist. Darauf hin öffnet das XYT-Interface mittels ’Gate TPC’ den TPC für das Startsignal solange bis es das ’Stop Gate’ erhält. Der Position Computer analysiert anschließend möglicherweise bereits das nächste Ereignis. Falls er dieses beim PCI-Interface abzuliefern versucht, bevor die vorhergehenden Daten übertragen sind, so werden die neuen Daten verworfen und ein Zählimpuls am ’Pile-up’-Ausgang der PCIx-Karte generiert.

• Der TPC wird durch das verzögerte ’Strobe’-Signal des Position Computers gestartet. Der Stop erfolgt durch das Channeltron. Falls der TPC sowohl ein Start- als auch ein Stopsignal erhält, und alle am TPC eingestellten Bedingungen (s.u.) erfüllt sind, gibt er über den TPHC-Ausgang ein analoges Signal ab, das vom ADC analysiert wird. Das Ende der Konvertierung wird durch ’Ready Time’ über das ADC-Interface dem XYT-Interface angezeigt. Zur Vermeidung unnötiger Totzeiten wird der TPC durch das XYT-Interface nur für ein durch einen Delay & Gate Generator einstellbares Zeitintevall (Gate TPC) geöffnet.

• Sobald ’Ready Pos’ und ’Ready Time’ beide anstehen, beginnt das XYT-Interface mit der Datenübertragung zum Rechner. Zuerst das Positions-Datenwort und dann das Zeit-Datenwort, das zur Unterscheidung mit einem zusätzlichen Datenkennungsbit versehen wird. Anschließend werden Positions- und Zeitzweig gleichzeitig wieder freigegeben.

• Trifft ’Ready Time’ ein, ohne dass ’Ready Pos’ ansteht, so wird der Zeitzweig ohne Datenübertragung gelöscht. Dieser Fall darf im normalen Betrieb eigentlich nicht auftreten, und deutet auf eine falsche Verkabelung oder einen Hardware-Fehler hin.

• Der umgekehrte Fall, dass im Zeitzweig das Datenwort durch TPC- und ADC-Einstellungen verworfen wird, tritt hingegen häufiger auf. Falls es im Zeitzweig zu keiner Datenübertragung kommt, muss das im Ortszweig bereits gespeicherte Datenwort wieder gelöscht werden. Zu diesem Zweck wird nach dem Ende des TPC Gate-Signals (’Stop Gate’) geprüft, ob der Zeitzweig (TPC oder ADC) Busy meldet. Geht das Busy verloren bevor das ’Ready Time’ eintrifft, so ist der Zeitzweig gescheitert, und der Ortszweig muss ebenfalls zurückgesetzt werden. Falls das ’Stop Gate’ Signal fehlt, wartet das XYT-Interface auf das ’Ready Time’ Signal und bricht bei dessen Ausbleiben schließlich mit Timeout (51.2us) ab. In beiden Fällen bleibt das TPC Gate länger als notwendig geöffnet, so dass der TPC möglicherweise bereits wieder das nächste Ereignis verarbeitet, was zu unnützer Totzeit führt.

• Zur Lifetime-Messung werden die ’Busy’-Signale von Position Computer, PCI-Interface, TPC und ADC disjunktiv (ODER) verknüpft und der IFS-Karte zugeführt. Eine Ermittlung der Lifetime in dieser Weise ist nicht ganz korrekt, da die beiden Zweige in der ersten Phase zunächst unabhängig von einander mit unterschiedlichen Zählraten laufen. Über den GateQ-Eingang der IFS-Karte wird das Messintervall-Signal bei der Lifetime-Messung berücksichtigt.

• Das XYT-Interface ermöglicht auch die Messung von Positions- und Zeitspektren alleine mit den Programmen ESA22m bzw. ESA22t. Ein Schalter auf der Frontplatte des XYT-Interfaces (Schalterstellung xy bzw. t) schaltet den jeweils unbenutzten Zweig ab und gibt den anderen Zweig bedingungslos frei. Das zusätzliche Datenkennungsbit im Zeitzweig wird nicht gesetzt. Es ist geplant, dieses manuelle Umschalten durch eine Ansteuerung über die ESA-Karte im Control-Routing zu ersetzen, so dass die verschiedenen Programme sich ihren passenden Modus selbst einstellen können.

2.2.6 Fehlermeldungen (XYT-Interface)

Die Funktion des XYT-Interfaces wird überwacht und gegebenenfalls wird ein Fehlerdatenwort mit der Kennung 0x10 ausgegeben. Die Übertragung des Fehler-Codes erfolgt immer dann, wenn ein Fehler gespeichert ist und keine Datenübertragung aktiv ist.

Errors: die Datenübertragung wird mit Reset von ADC und PCI abgebrochen und statt dessen der Fehler-Code übertragen.

Warnings: die Datenübertragung wird fortgeführt und der Fehler-Code anschließend übertragen.

• Error 0x01: unsolicited Data Ready ADC Trifft ’ReadyADC’ ein, ohne dass zuvor ’ReadyPCI’ erkannt wurde, so wird ein Reset auf PCI und ADC durchgeführt. Dieser Fall darf im normalen Betrieb eigentlich nicht auftreten, da ’GateTPC’ erst mit ’ReadyPCI’ freigegeben wird, und deutet auf eine falsche Verkabelung oder einen Hardware-Fehler hin.

• Error 0x02: Timeout waiting for Stop Gate Innerhalb der gesetzten Frist (51.2us) nach ’ReadyPCI’ melden sich weder ’StopGate’ noch ’ReadyADC’.

• Error 0x04: Timeout waiting for Data Ready ADC (Busy ADC) Der ADC meldet sich innerhalb der gesetzten Frist (51.2us) nach ’ReadyPCI’ nicht mit Data Ready, obwohl ’BusyADC’ ansteht.

• Error 0x08: Timeout waiting for Data Ready ADC (Busy TPC) Der ADC meldet sich innerhalb der gesetzten Frist (51.2us) nach ’ReadyPCI’ nicht mit Data Ready, obwohl ’BusyTPC’ ansteht.

• Error 0x10: Timeout waiting for end of Data Ready ADC Data Ready von ADC lässt sich nicht zurücksetzen.

• Error 0x20: Timeout waiting for end of Data Ready PCI Data Ready von PCI lässt sich nicht zurücksetzen.

• Warning 0x40: Data Ready ADC with no leading Stop Gate Das ’ReadyADC’ Signal ist vor dem ’StopGate’ Signal eingetroffen oder ’StopGate’ fehlt ganz.

• Warning 0x80: Stop Gate too early or permanent Das ’StopGate’ Signal ist vor dem ’ReadyPCI’ Signal eingetroffen oder steht permanent an (BNC-Buchse offen).

2.2.7 Timing (XYT-Interface)

Timing, normal run:

anlg.StrobePC _/^^\______________________/^^\____________________
digt.StrobePC ___/^^\______________________/^^\__________________
ReadyPCI      ____/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\__________
GateTPC       _____/^^^^^^^\_____________________________________
StopGate      _____________/^\___________________________________
StartTPC      _______/^\_________________________________________
BusyTPC       _______/^^^^^^^^^\_________________________________
StopTPC       ___________/^\_____________________________________
BusyADC       ________________/^^^^^^^^^^^^^^^^^^^^^^^^^\________
ReadyADC      ________________________________/^^^^^^^\__________
Reset         ______________________________________/^^^\________
Timeout       ___________________________________________________

Timing, normal run, no BusyADC or no BusyTPC:

anlg.StrobePC _/^^\______________________/^^\____________________
digt.StrobePC ___/^^\______________________/^^\__________________
ReadyPCI      ____/^^^^^^^^^^^^^^\__________/^^^^^^^^^\__________
GateTPC       _____/^^^^^^^\_________________/^^^^^^^\___________
StopGate      _____________/^\_______________________/^\_________
GateTPC       _____/^^^^^\___________________/^^^^^\_____________
StartTPC      _______/^\_________________________________________
BusyTPC       _______/^^^^^^^^^\_________________________________
StopTPC       ___________/^\_______________________/^\___________
BusyADC       ___________________________________________________
ReadyADC      ___________________________________________________
Reset         _________________/^^^\_________________/^^^\_______
Timeout       ___________________________________________________

Timing, no StopGate:

anlg.StrobePC _/^^\______________________/^^\____________________
digt.StrobePC ___/^^\______________________/^^\__________________
ReadyPCI      ____/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\__________
GateTPC       _____/^^^^^^^^^^^^^^^^^^^^^^^^^^\__________________
StopGate      ___________________________________________________
StartTPC      _______/^\_________________________________________
BusyTPC       _______/^^^^^^^^^\_________________________________
StopTPC       ___________/^\_____________________________________
BusyADC       ________________/^^^^^^^^^^^^^^^^^^^^^^^^^\________
ReadyADC      ________________________________/^^^^^^^\__________
Reset         ______________________________________/^^^\________
Timeout       ___________________________________________________

Timing, no StopGate, no ReadyADC, Timeout:

anlg.StrobePC _/^^\______________________/^^\________..._________
digt.StrobePC ___/^^\______________________/^^\______..._________
ReadyPCI      ____/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...^^^^\____
GateTPC       _____/^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...^^^^\____
StopGate      _______________________________________..._________
StartTPC      _______/^\_____________________________..._________
BusyTPC       _______/^^^^^^^^^\_____________________..._________
StopTPC       ___________/^\_________________________..._________
BusyADC       _______________________________________..._________
ReadyADC      _______________________________________..._________
Reset         _______________________________________...___/^^^\_
Timeout       _______________________________________...___/^\__

2.2.8 ESA-Karte (Projekt!)

Es ist geplant, über die ESA-Karte die Mode-Einstellung des XYT-Interfaces programmierbar zu machen. Zur Zeit muss der XYT-Mode manuell per Schalter auf dem XYT-Interface eingestellt werden.

2.2.9 Synch-Karte

Die Zähler und das zugehörige Synchron-Signal werden periodisch mit einem 100ms Takt ausgelesen (Read-Signal) und anschließend gelöscht (Reset-Signal). Das Synchronsignal trennt die einzelnen Zähler-Datensätze und muss deshalb als erstes übertragen werden. Damit dies gewährleistet ist, wird es vom Data-Routing im Vorrangmodus behandelt.

Die Takte zum Auslesen und Löschen der Zähler im Data-Routing werden auf der Synch-Karte erzeugt. Aus dem 10MHz Quarztakt des Routing-Systems wird ein Mastertakt (10Hz) untersetzt aus dem die weiteren Takte abgeleitet werden:

        ________________________________
_______|                                |____Mastertakt
        ___________
_______| ca. 200ns |_________________________Read-Takt
                    ___________
___________________| ca. 200ns |_____________Reset-Takt

Zur Erzeugung definierter Startbedingungen werden bei gestoppter Datenübertragung (durch Hardware oder Software) die Zähler sowie der Mastertakt auf Null gesetzt und gesperrt. Nach einem Start erscheint der erste Mastertakt am Ende der ersten abgelaufenen 1/10 Sekunde.

Da eine Read/Reset-Verteilerkarte eingesetzt wird, wird nur das Read-Signal als Mastertakt für die Verteilerkarte benötigt. Diese erzeugt daraus auf die gleiche Weise Read und Reset.

2.3 ESA22c Geräteeinstellungen

Zur Zeit muss die Einstellung des benötigten xyt-Modes noch manuell mittels Schalter auf dem XYT-Interface erfolgen!

Folgende Geräteeinstellungen werden bei der Messung von Ort und Laufzeit benötigt:

• Silena 7411 ADC Der ADC wird im RTP-Mode betrieben mit 4 Mikrosekunden RTP-Zeit. Der Peak-Detection-Mode ist ungeeignet, da der TPC Pulse mit einem flachen Dach anliefert.

• Ortec 416A Gate & Delay Generator Je einmal für Start- und Stop-TPC-Signal Timing

DELAYs  Zum Schieben des Koinzidenz-Peaks im Spektrum

• Gate & Delay Generator Stop-Gate-Signal für Gate-TPC-Signal Timing

DELAY  Gate-TPC muss Start- und Stop-TPC überdecken
WIDTH  0.4 us
AMPLITUDE 4.5 V

• Ortec 467 TPC

RANGE  nach Bedarf
MULTIPLIER  nach Bedarf
TPHC OUTPUT DELAY  0 us
ANTI COINC/COINC  COINC
SCA MODE  WINDOW oder nach Bedarf
SCA INHIBIT  IN oder nach Bedarf
SCA LLD  0.2V? oder nach Bedarf
SCA ULD  10V oder nach Bedarf
DC ADJ  0V
STROBE SYNC  INT STOP
STROBE RESET  120 us
STOP INHIBIT MODE  OUT oder nach Bedarf
STOP INHIBIT DELAY  nach Bedarf

• PCI Interface Auf dem PCI Interface muss die Pc2401-Brücke gesteckt sein, um die Karte für den SSL 2401 Position Computer zu konfigurieren. Falls die PCIx Extenderkarte verwendet wird, muss die PCIx-Brücke gesteckt werden.

Achtung! NIM-Geräte liefern 10V als Ausgangspegel wenn sie nicht mit 50 Ohm abgeschlossen werden. Dies ist nicht verträglich mit TTL-Eingängen! Deshalb: 10V-NIM-Ausgänge stets mit 50 Ohm abschließen!

2.4 ESA22c Control-Routing Belegung

Der Control-Routing-Überrahmen wird vom ESA22c-Programm gemeinsam mit den anderen ESA22-Programmen genutzt.

Die Belegung des Control-Routing durch die Interface-Karten ist frei wählbar, da die Messprogramme entsprechend konfiguriert werden können. Zur Zeit (03.Jan.2009) ist folgende Anordnung der Interface-Karten aktuell (von links):

Adr.  Karte  Kommentar
Adress-Decoder  für die folgenden 7 Karten
0x00-01 CAN-Controler  nutzt 2 Adressen
0x02 Step Nr. Ausgabe Schrittnummer-Ausgabe
0x03  Messzeit-Ausgabe
0x04  Pausenzeit-Ausgabe
0x05  Interrupt Eingabe
0x06  Zeittakt-Ausgabe
0x07  Messber.-Eingabe
Gate-Buffer  nutzt nur 5V des Routing
Read/Reset-Buffer nutzt nur 5V des Routing
Adress-Decoder  für die folgenden 3 Karten
0x60-65 SM1-Karte  Schrittmotor-Interface
0x60-65 SM2-Karte  Schrittmotor-Interface
0x66  ESA-Karte  Projekt!
Messbereich-Buffer nutzt nur 5V des Routing

Kapitel 2: Funktion von ESA22c 18

CONTROL-ROUTING

|====================|
|Messbereich-Buffer  |
|                  In|<---------- Ionenstrom-Konverter
|             4 * Out|----+-----> Elektronenstrom-Konverter
|====================|    |
|====================|    |
|ESA-Karte   xyt-Mode|----|-----> xyt-Kontrolle (Data-Routing) (Projekt!)
|--------------------|    |
|SM2-Karte           |    |
|--------------------|    |
|SM1-Karte    40 pol.|----|-----> Schrittmotorsteuerung
|--------------------|    |
|   Adress-Decoder   |    |
|====================|    |
|====================|    |
|Read/Reset-Buffer   |    |
|       4 * Reset Out|----|-----> Reset (Data-Routing)
|        4 * Read Out|----|-----> Read (Data-Routing)
|                  In|<---|------ Synch.-Karte Read (Data-Routing)
|====================|    |
|Gate-Buffer         |    |
|             8 * Out|----|-----> Gate (Data-Routing)
|                  In|<---|-.
|====================|    | |
|====================|    | |
|Messber.-Eingabe    |    | |
|             Ser. In|<---' |
|--------------------|      |
|Zeittakt-Ausgabe    |      |
|                 Out|------|---> Zeittakt-Zähler, Count (Data Routing)
|--------------------|      |
|Interrupt Eingabe   |      |
|               Start|<---. |
|--------------------|    | |
|Pausenzeit-Ausgabe  |    | |
|          !Intervall|--. | |
|           Intervall|  | | |
|--------------------|  | | |
|Messzeit-Ausgabe    |  | | |
|          Ext. Start|<-' | |
|          !Intervall|----' |
|           Intervall|------'--> Schrittnummer-Interface, Read (Data Routing)
|--------------------|
|Step Nr.-Ausgabe    |
|             20 pol.|---------> Schrittnummer-Interface, 20 pol. (Data Routing)
|--------------------|
|CAN-Controler       |
|              9-pol.|---------> Iseg-HV
|--------------------|
|   Adress-Decoder   |
|====================|

2.5 ESA22c Data-Routing Belegung

Der Data-Routing-Überrahmen wird vom ESA22c-Programm gemeinsam mit den anderen ESA22-Programmen genutzt.

Die Belegung des Data-Routing durch die Interface-Karten ist frei wählbar, da die Messprogramme entsprechend konfiguriert werden können. Zur Zeit (03.Jan.2009) ist folgende Anordnung der Interface-Karten aktuell (von links):

ID  Karte  Funktion
IFS(1)-Karte  Modus: RUN, FREI
0x00 Step Nr.-Karte  Matrixnummer-Eingabe
IFS(1)-Karte  Modus: RUN, FREI
0x02 U/D-Zähler  Elektronenstrom-Eingabe
IFS(1)-Karte  Modus: RUN, FREI
0x04 U/D-Zähler  Ionenstrom-Eingabe
IFS(1)-Karte  Modus: RUN, FREI
0x06 U/D-Zähler  Messzeit-Eingabe
IFS(1)-Karte  Modus: RUN, FREI
0x08 U/D-Zähler  Position Computer Totzeitverluste
0x2b IFS1-Karte  Modus: LFT, FREI; Steckbr. LFT: Busy+Gate;
0x0a Synch.-Karte  Zähler Synchr. Signal; auf Vorrang verdrahtet;

ADC/TPC-busy mit 50 Ohm abschließen (wiederverwertete IIC-Taktkarte)

0x2d IFS1-Karte  Modus: LFT, FREI; Steckbr. LFT: Busy+Gate
0x1c XYT-Karte  x-y-t-Kontrolle; xyt-Mode manuell einstellen!
0x0c PCI-Karte  Position Computer Interface (xy-Daten)
PCIx-Karte  PCI-Erweiterungskarte; Pileup-Ausgabe
0x2c ADC-Karte  ADC Interface (t-Daten)

Kapitel 2: Funktion von ESA22c 20

DATA - ROUTING

|===============|
|ADC Interface  |
|        37-pol.|<------- Silena ADC (NIM-Crate)
|---------------|
|PCIx-Extender  |
|         Pileup|--.
|---------------|  |
|PCI Interface  |  |
|        50-pol.|<-|----- Position Computer Daten
|---------------|  |
|XYT Interface  |  |
|       TPC Gate|--|----> TPC Gate (NIM-Crate);
|      Stop Gate|<-|----- Delay and Gate (NIM-Crate);
|       Busy TPC|<-|----- TPC Busy (NIM-Crate);
|  Busy Pos Comp|<-|----- Position Computer Busy;
|---------------|  |
|IFS1     Gate Q|<-|----- Gate-Buffer  (Control-Routing)
|===============|  |
|Synch. Karte   |  |
|           READ|--|----> Read/Reset-Buffer  (Control-Routing)
|   ADC/TPC busy|<-|----- mit 50 Ohm abschließen
|---------------|  |
|IFS1     Gate Q|<-|----- Gate-Buffer  (Control-Routing)
|===============|  |
|U/D-ZLR    GATE|<-|----- Gate-Buffer  (Control-Routing)
|          RESET|<-|----- Reset-Buffer (Control-Routing)
|           READ|<-|----- Read-Buffer  (Control-Routing)
|          COUNT|<-'
|---------------|
|IFS(1)         |
|===============|
|U/D-ZLR    GATE|<------- Gate-Buffer  (Control-Routing)
|          RESET|<------- Reset-Buffer (Control-Routing)
|           READ|<------- Read-Buffer  (Control-Routing)
|          COUNT|<------- Zeittakt-Interface (Control-Routing)
|---------------|
|IFS(1)         |
|===============|
|U/D-ZLR    GATE|<------- Gate-Buffer  (Control-Routing)
|          RESET|<------- Reset-Buffer (Control-Routing)
|           READ|<------- Read-Buffer  (Control-Routing)
|          COUNT|<------- Ionenstrom-VFC
|---------------|
|IFS(1)         |
|===============|
|U/D-ZLR    GATE|<------- Gate-Buffer  (Control-Routing)
|          RESET|<------- Reset-Buffer (Control-Routing)
|           READ|<------- Read-Buffer  (Control-Routing)
|          COUNT|<------- Elektronenstrom-VFC
|---------------|
|IFS(1)         |
|===============|
|Step Nr.   READ|<------- Messzeit-Timer, Intervall (Control-Routing)
|        20-pol.|<------- Schrittnummer (Control-Routing)
|---------------|
|IFS(1)         |
|===============|

2.6 Messdatenformat

Struktur der ESA22c-Daten-Files Die ESA22c-Messdaten-Files entsprechen dem Strahlenzentrumsstandard und können deshalb mit einer Anzahl vorhandener Programme weiterverarbeitet werden. Sie beginnen mit einem Header von 512 Bytes Länge, der am Anfang einen standardisierten Teil enthält und anschließend noch eine Reihe weiterer Daten (z.B. Lifetime-, Realtime-Zähler usw.), zu denen man über die Include-Files ~/ex home/ex src/.../esa22c.conf und esa22c.h Zugang hat. Anschließend an den Header folgen das Laufzeit-Spektrum (T-) und die Positions-Matrix (X/Y-). Die Länge des Laufzeit-Spektrums ist wählbar. Die Länge der Positions-Matrix ist mit 256 * 256 Kanälen fest vorgegeben. Die im Standardteil des Headers angegebene Anzahl der Spalten und Zeilen ist: COLS = 256 ROWS = 256 + int((<Länge T-Spektrum> -1) / 256) +1

Danach folgen die List-Mode-Daten.

      ---
       |
       | Header, 512 Bytes
       |
      ---
       |
       | t-Spektrum, ((ROWS - 256) * 256 * 4) Bytes
       |
      ---
       |
       | xy-Matrix, (256 * 256 * 4) Bytes
       |
      ---
       |
       | List-Mode-Daten, n Bytes
       |
       .

Struktur der Header Daten:

#define lIDHDR 8
#define lHDLEN 1
#define lEXPMNT 6
#define lIDPRG 8
#define lSTDAT 9
#define lSTTIM 8
#define lSPDAT 9
#define lSPTIM 8
#define lSPENAM 8
#define lSPTYPE 4
#define lPLANES 6
#define lROWS 6
#define lCOLS 6
#define lBYTES 1
#define lHDFREE 4
#define lRESRV 32
#define lLTXT 4
#define lTEXT 80
Plattformabhängige Definitionen:
UINT1: 1 Byte  "unsigned int"
UINT2: 2 Bytes "unsigned int"
UINT4: 4 Bytes "unsigned int"
REAL4: 4 Bytes "float"
REAL8: 8 Bytes "float"
typedef union {
    struct {
        struct {
            char idhdr[lIDHDR];   /* Identification of header: "STRZ-VXW" */
            char hdlen[lHDLEN];   /* Length of header: "1" */
            char expmnt[lEXPMNT]; /* Experiment */
            char idprg[lIDPRG];   /* ID of generating Program: "ESA22c  " */
            char stdat[lSTDAT];   /* Date of start */
            char sttim[lSTTIM];   /* Time of start */
            char spdat[lSPDAT];   /* Date of stop */
            char sptim[lSPTIM];   /* Time of stop */
            char spenam[lSPENAM]; /* Name of spectrum */
            char sptype[lSPTYPE]; /* Type of spectrum: "ESAc" */
            char rows[lROWS];     /* Number of rows: "     n" */
            char cols[lCOLS];     /* Channels/row: "   256" */
            char bytes[lBYTES];   /* Bytes/channel: "4" */
            char hdfree[lHDFREE]; /* First free byte in header (0,...) */
            char planes[lPLANES]; /* Number of planes: "     1" */
            char resrv[lRESRV];   /* Reserved */
            char ltxt[lLTXT];     /* Length of text: "80" */

char text[lTEXT];     /* Text */
} stddat;   /* Standard data of header */
struct {
UINT2 status;       /* Status of spectrum */
UINT4 clkcnt;       /* Realtime from Routing */
UINT4 rltcnt;       /* Realtime from CPU */
UINT4 lftcnt;       /* Lifetime */
UINT4 datcnt;       /* Processed positions */
UINT4 pilcnt;       /* Lost Position Computer pilups data */
UINT4 liscnt;       /* Transfered List Mode bytes */
UINT4 outcnt;       /* Positions out of range */
UINT4 xsqerr;       /* XYT data sequence errors */
UINT4 csqerr;       /* Counter data sequence errors */
UINT4 dclcnt;       /* Lifetime for Duty cycle calculation */
UINT4 xyterr;       /* XYT interface errors */
UINT4 rejcnt;       /* Rejected data */
UINT4 fulcnt;       /* Fifo full counter */
UINT4 errcnt;       /* Error counter */
UINT4 runtim;       /* Realtime to run experiment [s] */
UINT4 adclen;       /* Length of ADC spectrum */
UINT4 pcmlen;       /* Length of Pos. Comp. matrix */
UINT4 pcmoff;       /* Offset of Pos. Comp. matrix */
UINT4 ielec;        /* Integrated current electr beam */
UINT4 iions;        /* Integrated current ion beam */
REAL8 iprod;        /* Integrated (ielec * iions) */
UINT4 steps;        /* Number of energy steps */
UINT1 stepmod;      /* Step mode (u/d/b) up/down/both */
UINT2 rmpwait;      /* Pause when voltage ramping */
REAL8 stpsiz;       /* Energy step size [eV] */
REAL8 mine;         /* Min. scan energy [eV] */
REAL8 maxe;         /* Max. scan energy [eV] */
REAL8 decelv;       /* Deceleration voltage [V] */
REAL8 sttime;       /* Startup time [s] */
REAL8 offtime;      /* Off time [s] */
REAL8 ontime;       /* On time [s] */
REAL4 expar[25];    /* Extended ESA22c parameters */
} spcdat;   /* Special data of header */
} hdata;        /* Header data */
struct {
char h512[512];         /* Fill 512 bytes block */
} htotal;        /* Total header */
} HEADER;

Experiment-Parameter:

expar[ ] |
---------+--------------------------------------------
0     | Electron beam energy [eV]
1     | Ion charge [q]
2     | Ion mass [amu]
3     | Ion energy [eV]
4     | Efficiency [%]
5     | Time base divider (freq= 2**(-EXPAR[5]) MHz)
6     | Electron current converter range
7     | Electr. current conv. full scale freq. [Hz]
8     | Ion current converter range
9     | Ion current converter full scale freq. [Hz]
10     | Entrance slit [mm]
11     | Exit slit [mm]
12     | Calibration constant 1
13     | Calibration constant 2
14     | Pass energy [eV]
15     | Chamber pressure [mb]
16     | Buffer pressure [mb]

Struktur der List Mode Daten: List Mode Record: ID-Byte, Data-Byte1, Data-Byte2, ...

Record  ID Byte  Data Bytes
Start and restart marker:  1111 1111  >2: 0xff, 0xff,...
Fifo full:  10xx xxxx  0: -
Lifetime:  x010 0001  1: original ID
XYT error:  x001 0000  2: s.u.
ADC data:  x010 0000  2: high,low
Pos. Comp.:  x000 0000  2: y,x
Matrix number:  x000 0010  2: high,low
Electr beam:  x000 0100  2: high,low
Ion beam:  x000 0110  2: high,low
Time base counter:  x000 1000  2: high,low
Pileup counter:  x000 1010  2: high,low
Counters sync. signal:  x000 1110  0: -
Duty cycle:  x000 1111  0: -

Der "Start and restart marker" steht zu Beginn der List Mode Daten und wird bei jedem Restart der Messung als erstes neu geschrieben.

Bei mehreren Daten-Bytes kommt das höherwertige zuerst.

"Pos. Comp". und "ADC data" dürfen nur in der folgenden Reihenfolge auftreten, sonst liegt ein Fehler (x-y-t data sequence error) vor:

Pos. Comp., ADC data

Das "Counters sync. signal" muss stets vor den anderen vier Zählerdaten (Electr beam, Ion beam, Time base counter, Pileup counter) eintreffen, sonst liegt ein Fehler (Counters sequence error) vor. Das "Fifo full Bit" zeigt an, dass durch Überlauf des Fifos-Speichers im Routing wegen Überlast eine unbekannte Anzahl von Daten verloren gegangen ist.

XYT Error Byte: Error 0x01: unsolicited Data Ready ADC Error 0x02: Timeout waiting for Stop Gate Error 0x04: Timeout waiting for Data Ready ADC (Busy ADC) Error 0x08: Timeout waiting for Data Ready ADC (Busy TPC) Error 0x10: Timeout waiting for end of Data Ready ADC Error 0x20: Timeout waiting for end of Data Ready PCI Warning 0x40: Data Ready ADC with no leading Stop Gate Warning 0x80: Stop Gate too early or permanent

2.7 Experiment-Control-File

Für jede Messung wird intern ein Experiment-Control-File (ECF) erstellt, dessen Daten zur Kontrolle eingesehen werden können.

Die EC-File-Daten beginnen mit der Definition aller anzusprechenden Control-Routing-Adressen. Das erste Byte enthält die Anzahl der Interface-Adressen, und die folgenden Bytes enthalten die Interface-Adressen selber.

Danach folgt ein Startup-Block, in dem alle Parameter auf ihren Anfangswert gesetzt werden. Anschließend folgt für jedes Messintervall ein Parameterblock, der nur alle zu verändernden Parameter enthalten braucht, jedoch mindestens einen Parameter.

Ein solcher Parameterblock beginnt mit der Anzahl der zu verändernden Parameter (1 Byte), gefolgt von einem Steuer-Byte:

0,1,.,n  Beschreiben eines Registers in einem Control Routing Interface
         n ist die Position der Registeradresse in der zu Beginn
         definierten Adressenliste. Es folgen 2 Data-Bytes.
            1. Byte: low Byte
            2. Byte: high Byte
0x80     Ausgabe einer Iseg-HV Spannung. Es folgen 4 Data-Bytes.
            1. Byte:    Iseg-HV Kanalnummer
            2.-4. Byte: Spannungswert in 0.1mV (high Byte zuerst)
0x81     Iseg-HV Einschwingvorgang abwarten. Es folgen keine Data-Bytes.
0x82     Test des Zeitverhaltens des Iseg-HV. Es folgen keine
         Data-Bytes.

Der Steuer-File wird abgeschlossen mit 0x00 oder 0xff. Bei 0x00 beginnt das Messprogramm wieder von vorne mit dem ersten Messintervall, bzw. es beendet die Messung, falls in der Zwischenzeit ein ’STOP MESSUNG’ gegeben wurde. Bei der Wiederholung von vorne werden die Adressendefinition und der Startup-Block übersprungen. Bei 0xff endet die Messung nach dem ersten Durchlauf.

Ein EC-File enthält mindestens eine Adressendefinition, eine Anfangsnormierung und ein Messintervall.

Beispiel für einen EC-File:

char ecfdat[512]
/* Definition der Control-Routing-Adressen */
ecfdat[0]  = 2           /* Length of address list */
ecfdat[1]  = 0x40        /* Address timer modul */
ecfdat[2]  = 0x41        /* Address interrupt modul */
/* Anfangsnormierung */
ecfdat[3]  = 2           /* Number of commands */
ecfdat[4]  = 0           /* Position in address list */
ecfdat[5]  = 0xFA        /* }(low byte) Timer=.5ms */
ecfdat[6]  = 0x01        /* }(high byte) */
ecfdat[7]  = 1           /* Position in address list */

ecfdat[8]  = 0xA5        /* }(low byte) Test */
ecfdat[9]  = 0xA5        /* }(high byte) */
/* 1. Messintervall */
ecfdat[10] = 1           /* Number of commands */
ecfdat[11] = 0           /* Position in address list */
ecfdat[12] = 0xFA        /* }(low byte) Timer=.5ms */
ecfdat[13] = 0x01        /* }(high byte) */
/* 2. Messintervall */
ecfdat[14] = 1           /* Number of commands */
ecfdat[15] = 0           /* Position in address list */
ecfdat[16] = 0xFA        /* }(low byte) Timer=.5ms */
ecfdat[17] = 0x01        /* }(high byte) */
/* End of file */
ecfdat[18] = 0           /* End of file */

3 Bedienung von ESA22c

Das Programm ist weitgehend selbsterklärend. Die notwendigen Eingaben werden in Dialogform angefordert. Der Dialog ist in einer Hierarchiestruktur aufgebaut, wobei mittels Menülisten von einer Dialogebene in die andere gewechselt werden kann. Für Parametereingaben existieren im Allgemeinen Vorbelegungswerte, die editiert werden können.

3.1 ESA22c Top-Menü

3.1.1 Exit ESA22c

Verlassen des Programmes.

3.1.2 Start experiment

Führt zum ESA22c Start-Menü. (Siehe Abschnitt 3.2 [ESA22c Start-Menü], Seite 31.)

3.1.3 Show header

Zeigt die wichtigsten Daten des Headers, der jedem Spektrum beigefügt ist:

• Experiment; Program; Spectrum Name des Experimentes; Name des Programmes; Name des Spektrums.

• Title Titelzeile zur Beschreibung des Experimentes.

• Start; Stop Startzeit und -datum; Stopzeit und -datum.

• Length Länge von t-Spektrum und xy-Matrix.

• Active matrix Die gerade aktuelle Matrix im Scan-Durchlauf. 65535 bedeutet: Daten verwerfen.

• Realtime Die Zeit in Sekunden, während der das Experiment gestartet war, auf volle 0.1 Sekunden abgerundet.

• Lifetime Die um die Totzeit korrigierte Zeit (Realtime - Deadtime), die zur Datenaufnahme zur Verfügung stand. Es wird nur die Lifetime des XYT-Interfaces registriert.

• Duty cycle Anzeige des gemessenen Messzeit-/Pause-Verhältnisses.

• MB List Mode data transfered Anzahl der bereits zum Host-Rechner übertragenen List-Mode-Daten-Bytes.

• MB List Mode data buffered Anzahl der List-Mode-Daten-Bytes, die zwischengespeichert auf die Übertragung zum Host-Rechner warten.

• x-y-t data received Anzahl der empfangenen Positions- und Laufzeit-Datenpaare.

• Position data lost Anzahl der Totzeitverluste des Position-Computer-Interfaces.

• Time data out of range Anzahl der Fälle, in denen das Format des Zeitspektrums überschritten wurde.

• x-y-t data sequence errors Anzahl der Fälle, in denen die erwartete Reihenfolge der ankommenden x-y-t Daten (erst x-y dann t) durchbrochen wurde. Falls Fehler aufgetreten sind, werden diese auf einer nachfolgenden Seite detailliert aufgelistet.

• Counters sequence errors Anzahl der Fälle, in denen die erwartete Reihenfolge der ankommenden Zählerdaten (erst Zähler-Synch.-Signal dann 4 Zählerdaten) durchbrochen wurde. Falls Fehler aufgetreten sind, werden diese auf einer nachfolgenden Seite detailliert aufgelistet.

• Rejected data Anzahl der Daten, die auf Grund ihrer Datenkennung ausgesondert wurden, weil sie mit dem Experiment in keinem Zusammenhang stehen. Entweder wurde beim Start die Datenkennung falsch angegeben, oder es ist eine zusätzliche Datenquelle unbeabsichtigt mitgelaufen.

• XYT interface errors Anzahl der vom XYT-Interface gemeldeten Fehler. Falls Fehler aufgetreten sind, werden diese auf einer nachfolgenden Seite detailliert aufgelistet.

• Fifo overflows Anzahl der Fälle, in denen die Bearbeitung der Daten nicht schritthalten konnte und Datenverluste auftraten.

• Data errors Anzahl der Daten, die durch Hardwarefehler oder -störungen verstümmelt übertragen wurden.

Auf den folgenden Seite werden die Ergebnisse der Stromintegration, die Experiment beschreibenden Parameter und die Experiment-Steuer-Parameter ausgegeben.

• Beam current integration

− Electron beam

Integration des Elektronen-Strahls. − Ion beam

Integration des Ionen-Strahls. − Electrons * Ions

Integration des Produktes von Elektronen- und Ionen-Strahl.

• Experiment parameters (Siehe Abschnitt 3.3 [Experiment-Parameter-Eingabe], Seite 32.)

• Experiment Control File data (Siehe Abschnitt 3.3 [Experiment-Parameter-Eingabe], Seite 32.)

Die Darstellung des Headers kann mit der Leertaste wiederholt und mit der Return-Taste beendet werden. Für ein nicht existierendes Spektrum (Status new) erfolgt eine gekürzte Ausgabe.

3.1.4 Analyse spectrum

Startet als Subtask ein Auswerteprogramm zur graphischen Darstellung und Auswertung des aktuellen Spektrums. Eine gestartete Messung läuft während der Auswertung weiter. Nach Verlassen des Auswerteprogramms wird in das Messprogramm zurückgekehrt. Üblicherweise kann das Startup-Verhalten der Auswerteprogramme konfiguriert werden (^Z -> Set configuration -> Startup mode).

ESA22c verwendet standardmäßig das Programm ESA22a als Auswerteprogramm. Unter "Set Configuration" kann ein anderes Auswerteprogramm konfiguriert werden.

3.1.5 Delete spectrum

Ein existierendes Spektrum wird gelöscht (im Arbeitsspeicher und auf dem Host-Rechner), die Daten sind verloren.

3.1.6 Convert spectrum to ASCII

Das Spektrum wird mit oder ohne Header und mit oder ohne Kanalnummern in ASCII Form auf einen File geschrieben.

3.1.7 Edit header of spectrum

Falls die Eingabe der Header-Daten fehlerhaft war, besteht hier die Möglichkeit zur Korrektur. Jedoch nur für die experimentbeschreibenden und nicht für die messungsrelevanten (z.B. Spektrumslänge) Header-Daten.

3.1.8 Execute shell command

Einige der VxWorks-Shell-Kommandos (cd, ls, pwd, whoami) können ausgeführt werden.

3.1.9 Set configuration

Führt zum ESA22c Konfigurations-Menü. (Siehe Abschnitt 3.5 [ESA22c Konfigurations-Menü], Seite 35.)

3.1.10 Help

Bringt diese Anleitung über das menüorientierte GNU-INFO-Programm auf den Bildschirm. INFO läuft dabei auf einem Server (z.Z. Servix).

3.2 ESA22c Start-Menü

3.2.1 Return

Rückkehr zum Top-Menü.

3.2.2 Create new spectrum

Start der Messung, falls noch kein Spektrum des angegebenen Namens existiert (Status new). Das Spektrum wird auf der Platte des Host-Rechners angelegt, ist zunächst jedoch noch leer. Für ein bereits existierendes Spektrum erfolgt eine Fehlermeldung (Status old).

Für den Start einer Messung müssen die zugehörigen Parameter eingegeben werden. (Siehe Abschnitt 3.3 [Experiment-Parameter-Eingabe], Seite 32.) (Siehe Abschnitt 3.4 [Funktionen bei laufendem Experiment], Seite 34.)

3.2.3 Continue old spectrum

Start der Messung, falls sie mit einem bereits existierenden Spektrum (Status old) fortgesetzt werden soll. Das Spektrum wird vom Host-Rechner geladen, falls es noch nicht da ist. Für ein noch nicht existierendes Spektrum erfolgt eine Fehlermeldung (Status new).

Für den Restart der Messung kann nur ein Teil der zugehörigen Parameter geändert werden. (Siehe Abschnitt 3.3 [Experiment-Parameter-Eingabe], Seite 32.) (Siehe Abschnitt 3.4 [Funktionen bei laufendem Experiment], Seite 34.)

3.2.4 Test run

Start der Messung, falls noch kein Spektrum des angegebenen Namens existiert (Status new), ohne jedoch auf dem Host-Rechner einen File anzulegen. Beim Stop der Messung wird angefragt, ob die Messdaten noch gerettet werden sollen. Auch während der Messung können die Daten mit ’Save spectrum’ zum Host-Rechner gerettet werden.

Die Messdaten können während des TEST RUNs im Speicher (nicht auf der Platte) gelöscht werden mittels einer Funktion im Display-Programm (Analyse spectrum).

Für den Start der Messung müssen die zugehörigen Parameter eingegeben werden. (Siehe Abschnitt 3.3 [Experiment-Parameter-Eingabe], Seite 32.) (Siehe Abschnitt 3.4 [Funktionen bei laufendem Experiment], Seite 34.)

3.2.5 Print hardware info

Druckt wahlweise den Hardware-Status oder Status und Daten, so wie sie vom Experiment übertragen werden, direkt auf dem Bildschirm aus. Diese Funktion dient Diagnosezwecken (z.B. Ermittelung der Datenkennung).

3.3 Experiment-Parameter-Eingabe

Für den Start einer Messung müssen die zugehörigen Parameter eingegeben werden. Einige der Parameterangaben sind notwendig für die Durchführung der Messung, andere haben nur beschreibende Funktion. Für den Restart der Messung kann nur ein Teil der zugehörigen Parameter geändert werden.

• Select parameter set Auswahl eines Parameter-Sets zur Berechnung der Spektrometerspannungen. Die verschiedenen Algorithmen zum Umrechnen der Durchlassenergie in die benötigten Spektrometerspannungen sind in Parameter-Sets in dem File $HOME/ex_ home/ex_param/esa22.par festgehalten. Die existierenden Parameter-Sets werden aufgelistet.

• Make Experiment Control File Parametereingabe für den Experimentsteuer-File

− Number of steps Anzahl der Scan-Schritte.

− Step mode Vier Modes stehen zur Zeit zur Verfügung:

u: ausgehend von der Startenergie schrittweise aufwärts

d: ausgehend von der Startenergie schrittweise abwärts

b: ausgehend von der Startenergie schrittweise aufwärts und abwärts

t: Test-Mode zur Untersuchung des Einschwingverhaltens des Iseg-HV Netzgerätes (Kanal 7) Ausgehend von der Startenergie werden Spannungssprünge von 2^n V (n=0,..) und zurück durchgeführt. Die Messung der Spannung erfolgt über den internen ADC des Iseg-HV-Moduls, der etwa alle Sekunde ein Ergebnis liefert. Da der ADC asynchron zu den Spannungssprüngen arbeitet, kann man sich bei einer ausreichenden Anzahl Wiederholungen der Sprünge eine gute Übersicht über das Einschwingverhalten und die Reproduzierbarkeit verschaffen. Die Dauer der Beobachtungszeit nach einem Sprung wird durch ’Gate time’ vorgegeben. Das Ergebnis wird in dem File

$HOME/ex_home/ex_data/esa22.ttt gespeichert.

− Scan start Startenergie für den Scan.

− Step size Schrittweite für den Scan

− Deceler. volt.

Spektrometer-Bremsspannung für die Elektronen.

− Startup time Eingabemöglichkeit für eine Pausezeit zum Abwarten des Einschwingens der Hochspannungen vor dem Start eines jeden neuen Scan-Durchlaufs, alternativ oder zusätzlich zur intern errechneten Pausezeit (s.u.).

− Pause time Eingabemöglichkeit für eine Pausezeit zum Abwarten des Einschwingens der Hochspannungen zwischen zwei Scan-Schritten, alternativ oder zusätzlich zur intern errechneten Pausezeit (s.u.).

− Gate time

Messzeit für einen Scanschritt. − Wait while voltages ramp

Das IsegHV-Modul benötigt einige Zeit zum stabilen Einstellen der Hochspannungen. Wenn dieser Parameter auf 1 gesetzt ist, wird die Zeit des Einschwingvorganges aus dem Spannungssprung berechnet und die Startup- bzw. Pausenzeit dazu addiert (s.o.).

− Next start at step Berechnet aus einer Schrittnummer des aktuellen Scans die Startenergie für den anschließenden Scan.

Nachfolgend wird ein Überblick über die ECFile Daten gegeben, sowie optional (Leertaste) der ECFile selber ausgegeben.

• Experiment Parameters Dieser Parameterblock hat keinen Einfluss auf die Datenerfassung, er dient lediglich der Dokumentation. − Electron beam energy [eV]

Energie der Elektronen. − Ion charge [q]

Ladung der Ionen. − Ion mass [amu]

Masse der Ionen. − Ion energy [eV]

Energie der Ionen. − Efficiency [%]

Nachweiswahrscheinlichkeit des Spektrometers. − Electron current converter range [mA]

Messbereich des Elektronenstrom-Konverters. − Electron current converter full scale frequency [Hz]

Frequenz bei Vollausschlag des Elektronenstrom-Konverters. − Ion current converter range [uA]

Messbereich des Ionenstrom-Konverters. − Ion current converter full scale frequency [Hz]

Frequenz bei Vollausschlag des Ionenstrom-Konverters. − Entrance slit [mm]

Maß des Eintrittsschlitzes. − Exit slit [mm]

Maß des Austrittsschlitzes.

− Calibration constant 1

???. − Calibration constant 2

???. − Pass energy [eV]

???. − Chamber pressure [mb]

???. − Buffer pressure [mb]

???.

• Check Converter Settings Die Messbereiche der Strom-Frequenz-Konverter (zur Zeit noch nicht vorhanden) werden manuell eingestellt. Beim Start der Messung werden die Einstellungen ausgelesen und zur Kontrolle auf dem Bildschirm ausgegeben. − Continue

Einstellungen sind OK, weiter. − Update parameters

Geänderte Einstellungen erneut auslesen.

3.4 Funktionen bei laufendem Experiment

3.4.1 Stop experiment

Die Messung wird gestoppt und die Daten werden zum Host-Rechner übertragen (Siehe Kapitel 4 [Archivierung der Daten], Seite 41.). Im Modus "Test Run" wird allerdings zuerst abgefragt, ob die Daten gerettet werden sollen, Default ist "no".

Treten bei der Datenübertragung Probleme auf, so erfolgt eine Fehlermeldung. Die Daten bleiben erhalten und der Stop kann wiederholt werden.

3.4.2 Save spectrum

Alte Version: Während der laufenden Messung kann das Spektrum zum Host-Rechner gerettet werden. Auf einem Unix-Host wird dabei ein bereits existierendes Spektrum gleichen Namens überschrieben. Ebenso wird ein auf diese Weise gerettetes Spektrum am Ende bei einem "Stop experiment" wieder überschrieben (nicht im Modus "Test Run"). Soll es erhalten bleiben, so muss es zuvor umbenannt werden.

Neue Version: Es existieren mehrere Möglichkeiten um während einer laufenden Messung das Spektrum zum Host-Rechner zu retten:

Number of backups Es wird höchstens die angegebene Anzahl Backups durchgeführt.

Time between backups [min] Zeitlicher Abstand zwischen den Backups in Minuten und Zeit bis zum ersten Backup. Im Falle einer Scan-Messung wird nach Ablauf dieser Zeit ggf. noch auf das Ende eines Scan-Durchlaufs gewartet.

Save to master(0)/new(1) file Das Backup kann sowohl auf den normalen Daten-File (Master) erfolgen, der dann jeweils überschrieben wird, oder es wird jedes Mal ein neuer File angelegt, dessen Name Datum und Uhrzeit enthält.

Stop data while saving(0/1) bei Messungen von Spektren Wenn die Messung während des Backups weiterläuft könnte das ein ’schiefes’ Spektrum zur Folge haben falls die Zeit für die Datenübertragung nicht deutlich kürzer ist als die Messzeit.

Save at end of scan(0/1) bei Scan-Messungen Ein Backup mitten in einem Scan-Durchlauf hat eine Stufe in den Messdaten zur Folge.

3.4.3 Show header

Siehe Abschnitt 3.1.3 [Show header], Seite 28.

3.4.4 Analyse spectrum

Siehe Abschnitt 3.1.4 [Analyse spectrum], Seite 30.

3.4.5 Detach ESA22c

Hiermit kann das Messprogramm verlassen werden, ohne dass die Messung unterbrochen wird. Die Kontrolle über das Messprogramm gewinnt man zurück durch einen erneuten Start.

Achtung: es existiert zur Zeit keine Sicherung gegen ein weiteres Starten eines anderen Messprogrammes, das die laufende Messung stören könnte!

3.5 ESA22c Konfigurations-Menü

Unter diesem Konfigurations-Menü erfolgen alle notwendigen Anpassungen des Programmes. Beim allerersten Start des Messprogrammes wird dieser Menüpunkt stets automatisch aufgerufen. Danach sollte er nur noch bei Konfigurationsänderungen benutzt werden.

3.5.1 Return

Rückkehr zum Top-Menü.

3.5.2 General parameters

Name of experiment Dieser Name wird im Header des Spektrums als Experimentname eingetragen.

Print verbose messages Bei Angabe einer "1" werden ausführlichere Meldungen ausgegeben.

Delay messages Gelegentlich wird eine vorausgehende von einer nachfolgenden Meldung so rasch überschrieben, dass sie nicht gelesen weren kann. Hier kann für Meldungen eine Mindestverweilzeit (in Sek.) auf dem Bildschirm angegeben werden. Dies verzögert natürlich die Bedienung des Programmes und sollte deshalb nur für Testzwecke eingeschaltet werden.

Check task stack Unter VxWorks wird der Stack einer Task aus Zeitgründen nicht auf Überlauf geprüft. Ein Überlauf führt in der Regel jedoch zur Zerstörung der Task und auch des Systems. Eine "1" führt beim Stop der Task zu einer Prüfung des Stack. Im Allgemeinen nur bei Problemen notwendig.

3.5.3 Background program

Unter dem Menüpunkt "Analyse spectrum" wird ein Auswerteprogramm gestartet, das an dieser Stelle spezifiziert werden muss. Im folgenden Beispiel wird davon ausgegangen, dass das Messprogramm MCA das Auswerteprogramm PEAK verwendet:

File: /usr/exp/ex prog/peakv.o Dies ist der Pfad zum Auswerteprogramm PEAK. Unter ~/ex home/ex prog/peakv.o findet man es ebenso.

Symbol: peak Dies ist das Symbol unter dem PEAK unter VxWorks registriert ist. Es ist in der Regel der Programmname mit einem Unterstrich davor.

Task: tMcaBg Dies ist ein frei wählbarer Task-Name für das Auswerteprogramm, der sich jedoch von allen bereits vorhandenen Task-Namen unterscheiden muss.

Argmts: ,,"peak mca.vxw",,’S’ Dies sind die Argumente, die dem Auswerteprogramm mitgegeben werden können. Bei den Standardauswerteprogrammen (PEAK, WQA, IAC, IAP, LAC usw.) haben sie folgende Funktion:

• Im ersten Argument kann ein Programmname angegeben werden, mit dem das Auswerteprogramm sich meldet.

• Im zweiten Argument kann eine Titelzeile für das Auswerteprogramm angegeben werden, die direkt nach dem Start ausgegeben wird.

• Im dritten Argument kann ein File-Name für den Parameter-File des Auswerteprogrammes angegeben werden, in dem dieses sich alle wesentlichen Daten aufhebt, um sie bei einem Restart wieder verwenden zu können. Für verschiedene Auswerteprogramme müssen diese Namen unbedingt verschieden sein. Für das gleiche Auswerteprogramm bei verschiedenen Messprogrammen können sie gleich sein. Um Probleme zu vermeiden, sollte in dem Namen sowohl Mess- als auch Auswerteprogramm erkenntlich sein.

• Im vierten Argument kann ein Pfadname zu einem alternativen Help-File angegeben werden.

• Im fünften Argument kann der Modus, in dem das Auswerteprogramm gestartet wird, angegeben werden:

S Einzelspektrums-Darstellung.
M Matrix-Darstellung (Hidden Lines).
C Matrix-Darstellung (Contour Plot).
I Peak-Integration, Wirkungsquerschnitts-Berechn. usw.
X S oder M wird passend ausgewählt.

Task priority: 100 Priorität unter der die Auswertung läuft. 100 ist ein guter Wert!

Task options: 0x00000008 0x00000008 bedeutet, dass die Task den Floating-Point-Prozessor benutzt.

Task stack: 5000 Unter VxWorks wird das Stack einer Task aus Zeitgründen nicht dynamisch verwaltet, sondern beim Start fest zugeteilt. Es muss ausreichend groß gewählt werden, da es während der Laufzeit nicht überwacht wird und ein Überlauf zur Zerstörung von Task und System führt. Für die Standardauswerteprogramme ist 5000 ausreichend, ansonsten sollte man eher einen Werte von 20000 nehmen.

Unload: 1 Eine "1" bedeutet, dass das Auswerteprogramm nach der Rückkehr ins Messprogramm wieder aus dem Speicher gelöscht wird. Dies sollte die Regel sein.

Stack check: 0 Unter VxWorks wird das Stack einer Task aus Zeitgründen nicht auf Überlauf geprüft. Ein Überlauf führt in der Regel jedoch zur Zerstörung der Task und auch des Systems. Eine "1" führt beim Stop der Task zu einer Prüfung des Stack. Im Allgemeinen nur bei Problemen notwendig.

3.5.4 Data Routing hardware

Falls das Data-Routing im Experiment zum Einsatz kommt, muss die Software wissen, auf welchem Wege das Data-Routing ans VME angeschlossen ist. Es gibt hierfür mehrere Möglichkeiten:

• Direkter Anschluss an das Prozessor-Board (MVME162, MVME172)

• Anschluss an die Interface-Boards VIPC610 oder IPC01. Dabei wird für das Data-Routing üblicherweise der IP-Slot C/D verwendet (unterer frontseitiger Stecker).

• Anschluss an ein anderes Interface-Board. Dessen VME-Bus-Adresse muss eingetragen werden.

3.5.5 Control Routing hardware

Falls das Control-Routing im Experiment zum Einsatz kommt, muss die Software wissen, auf welchem Wege das Control-Routing ans VME angeschlossen ist. Es gibt hierfür mehrere Möglichkeiten:

• Direkter Anschluss an das Prozessor-Board (MVME162, MVME172)

• Anschluss an die Interface-Boards VIPC610 oder IPC01. Dabei wird für das Control-Routing üblicherweise der IP-Slot A/B verwendet (oberer frontseitiger Stecker).

• Anschluss an ein anderes Interface-Board. Dessen VME-Bus-Adresse und die Interrupt Priorität müssen eingetragen werden.

3.5.6 Data Routing identifications

Festlegen der Datenkennungs-Bits.

Zur Unterscheidung der Daten von verschiedenen Datenquellen sind die Messdaten mit einer Steckplatz abhängigen Kennung versehen. Diese kann ermittelt werden aus der Anzeige der Interfacesteuerungen im Routing-Einschub (siehe Routing-Beschreibung), oder durch Darstellung der Messdaten mittels der Funktion ’Print hardware info’ auf dem Bildschirm.

Zur Zeit (27.Jun.2011) sind folgende Data-Routing-IDs aktuell:

  Step number input      = 0x00
  Ion beam counter       = 0x02
  Pressure counter       = 0x04
  Time base counter      = 0x06
  Counters sync. signal  = 0x08
  Duty cycle interface   = 0x29
  Channeltron data       = 0x0a
  Lifetime               = 0x2b

3.5.7 Control Routing addresses

Festlegen der Steckplatz abhängigen Registeradressen für die einzelnen Steuerfunktionen. Zur Zeit (03.Jan.2009) sind folgende Control-Routing-Adressen aktuell:

  CAN controller         = 0x00-01
  Step number output     = 0x02
  On timer               = 0x03
  Off timer              = 0x04
  Interrupt register     = 0x05
  Time base out          = 0x06
  Current conv. range in = 0x07
  Step motor interface   = 0x60-65
  xy/xyt/t mode control  = 0x66

3.5.8 Electron current converter

Der Elektronenstrom wird über einen Spannungs-Frequenz-Konverter in eine Frequenz gewandelt. Der Konverter ist so ausgelegt, dass er bei Vollausschlag auf dem Keithly-Elektrometer 500kHz abgibt. Für die einzelnen Messbereiche kann es jedoch geringfügige Abweichungen geben, die durch eine exakte Messung bestimmt werden müssen. In den Elektronenstrom-Konversions-Faktoren können diese Abweichungen berücksichtigt werden.

3.5.9 Ion current converter

Der Ionenstrom wird über einen Spannungs-Frequenz-Konverter in eine Frequenz gewandelt. Der Konverter ist so ausgelegt, dass er bei Vollausschlag auf dem Keithly-Elektrometer 500kHz abgibt. Für die einzelnen Messbereiche kann es jedoch geringfügige Abweichungen geben, die durch eine exakte Messung bestimmt werden müssen. In den Ionenstrom-Konversions-Faktoren können diese Abweichungen berücksichtigt werden.

3.5.10 CAN/Iseg HV parameters

Für das über den CAN-Bus gesteuerte IsegHV-Netzgerät werden folgende Parameter benötigt:

• IsegHV CAN ID Das Iseg-Modul hat auf dem CAN-Bus eine ID, mit der es angesprochen wird (auf der Rückseite des Moduls verdrahtet; unverdrahtet: 0x7f).

• CAN bus speed Das Iseg-Modul kann bis maximal 256kBaud übertragen. Werkseitig ist es auf 128kBaud eingestellt

• Min. voltage Spannungsbegrenzung nach unten. Das Iseg-Hv arbeitet erst ab ca. 20V ordentlich.

• Max. voltage Spannungsbegrenzung nach oben.

• Show voltages Wird hier 1 eingetragen, so werden nach jedem Scan-Schritt die vom Iseg-Modul eingestellten Spannungen angezeigt. Das Auslesen der Spannungen benötigt jedoch zusätzliche Zeit und reduziert den ’Duty Cycle’.

Vorbelegungen:

IsegHV CAN ID = 0x7f
CAN bus speed = 1 Mbaud / 8
Min. voltage = 0 V
Max. voltage = 1000 V
Show voltages = 0

4 Archivierung der Daten

Die VME-Systeme besitzen in der Regel keine eigenen Medien zum Speichern der Messdaten sondern sie benutzen die Dienste von Servern im Netzwerk.

Unter VxWorks, dem Betriebssystem der VME-Rechner, wird im Boot-File des VME-Rechners der Server und der User-Account festgelegt, von dem das System gebootet wird. Nach dem Booten eines VME-Rechners ist, wie bei einem normalen Login, die Home-Directory des Users als Work-Directory eingestellt. Mit cd "path" ("’s nicht vergessen!) bewegt man sich in fast gewohnter Weise durch die Directory-Hierarchie. Die Schreibweise für Pfadangaben richtet sich nach dem Host-Rechner.

Diese Netzwerkzugriffe erfolgen über RSH oder FTP (im Boot-File festgelegt). Für RSH muss der File $HOME/.rhosts die entsprechende Freigabe enthalten.

Für den Transfer großer Datenmengen, insbesondere bei "List-Mode" Messungen, sind RSH und FTP jedoch nicht geeignet. In solchen Fällen sollte der Datentransfer über NFS erfolgen. Dazu muss auf dem Host-Rechner der /etc/exports File die notwendigen Freigaben enthalten und in den Boot-Script-File $HOME/ex home/ex param/startup.vxw müssen die benötigten NFS-Verbindungen eingetragen werden.

Um das Ganze übersichtlich zu halten, werden die VME-Systeme in der Regel zur Zeit folgendermaßen betrieben:

• Die Host-Rechner sind Unix-Rechner (Servix, Atomix).

• Zu jedem Experiment "xxxx" gibt es auf dem Host-Rechner einen gleichnamigen Account. Meistens trägt der VME-Rechner ebenfalls diesen Namen. Auf einem solchen Experiment-Account sind folgende Directories vorhanden ($HOME = Home Directory des Accounts):

     $HOME/ex_home/ex_data:   Messdaten
     $HOME/ex_home/ex_help:   Help-Files für die Mess- und Auswerteprogramme
     $HOME/ex_home/ex_param:  Parametersätze der Mess- und Auswerteprogramme
     $HOME/ex_home/ex_prog:   Mess- und Auswerteprogramme
     $HOME/ex_home/vxw:       VxWorks Betriebssysteme für die VME-Rechner

• Das Booten und die nachfolgenden Nicht-NFS-Zugriffe erfolgen über RSH auf den Servix. Bei der Angabe des Messdatenpfades werden folgende Schreibweisen als RSH-Verbindung verstanden:

     bootHost:spektr.spe      $HOME/spektr.spe
     bootHost:ddd/spektr.spe  $HOME/ddd/spektr.spe
     ~/spektr.spe             $HOME/spektr.spe
     ~/ddd/spektr.spe         $HOME/ddd/spektr.spe
     spektr.spe               ./spektr.spe
     ddd/spektr.spe           ./ddd/spektr.spe

• Als NFS-Verbindungen stehen die Laufwerks-Bezeichnungen "home:" und "data:" zur Verfügung, die auf dem Servix zu folgenden Directories führen:

     home:spektr.spe          $HOME/spektr.spe
     data:spektr.spe          $HOME/ex_home/ex_data/spektr.spe

Weitere NFS-Laufwerke können im Boot-Script-File freigegeben bzw. neu definiert werden. Die existierenden NFS-Laufwerke können Sie sich mit dem SHOW-Programm unter "Network(NFS) devices" anzeigen lassen.

• Zur Umgehung eines aktuellen VxWorks-Systemfehlers wird nach der Laufwerksangabe ’./’ eingefügt:

   home:ex_home/ex_data/test.spe   -> home:./ex_home/ex_data/test.spe

• Das Messprogramm hebt seine aktuellen Parameter in dem File

   $HOME/ex_home/ex_param/<Programmname>par.vxw

auf, um sie bei einem nachfolgenden Start als Default-Werte anbieten zu können.

5 Statusanzeigen auf dem Bildschirm

In der obersten Zeile wird an erster Stelle der Name des Programmes dargestellt. An zweiter Stelle folgt die Statusinformation offline/online/test, die anzeigt ob die Messung gestartet ist oder nicht. Dann folgt der Name des Spektrums und am Ende der Zeile eine detaillierte Statusanzeige in hexadezimaler Form von folgender Bedeutung:

STATUS of spectrum (hexadecimal) 0001 Spectrum created on disk 0002 Spectrum saved on disk 0004 Spectrum created in memory 0008 Spectrum loaded in memory 0010 Experiment online 0020 Autonomous stop of experiment 0040 Test run 0100 Experiment failure 0200 Wrong typ of spectrum 0400 Error reading header of spectrum 0800 Error reading spectrum file 1000 Header loaded

Die zweite Zeile dient der Ausgabe von Fehlermeldungen (blinkend), sowie Informationen über die augenblicklichen Aktivitäten des Programmes.

6 Einschwingverhalten des Iseg8210n 505F Netzgerätes

6.1 Das Messverfahren

Die Messungen wurden mit dem eingebauten ADC (0.1mV Auflösung) des Iseg8210n 505F Netzgerätes durchgeführt am Kanal 7. Es wurden verschiedene Spannungssprünge zu höheren und niedrigeren Spannungen untersucht. Da der ADC für jeden Kanal nur etwa alle Sekunde ein neues Ergebnis liefert, wurden die Spannungssprünge und Messungen vielfach wiederholt. Da Messungen und Spannungssprünge asynchron zueinander sind, erhält man so mit der Zeit auch alle Zwischenwerte. Die Messwerte wurden mit der größtmöglichen Geschwindigkeit (ca. 1ms) ausgelesen aber nur die Werte nach einer Änderung registriert. Dies kann im Falle, dass zwei aufeinanderfolgende Messungen innerhalb der Auflösung des ADC (0.1mV) gleich sind, eine um ca. 1s zu lange Zeit ergeben. Die Wahrscheinlichkeit dafür ist jedoch gering und dies kann nicht während des Fahrens der Spannung auftreten. Als Zeittakt diente der 10ms Takt des Computer-Systems. Offensichtlich funktioniert dieses Verfahren nicht immer richtig und es gibt gelegentlich zeitliche Fehlmessungen (Abb.6.1) deren Ursache unklar ist.

6.2 Ergebnisse

Das Iseg8210n 505F Netzgerät benötigt einige Zeit bis die Spannungen innerhalb vorgegebener Toleranzen stabil stehen. Nach Erhalt des Spannungskommandos vergehen ca. 200ms bis es mit dem Fahren der Spannung beginnt (Abb.6.1). Die Geschwindigkeit des Fahrens (Ramp Speed, max. 100V/s) wird vorgegeben. Die Fahrphase kann über Status-Bits (Ramp-Bits) gemeinsam für alle Kanäle (General Status) oder individuell für die einzelnen Kanäle (Channel Status) abgefragt werden. Das Status-Bit im General Status ist allerdings eine völlig unzuverlässige Angelegenheit: es erscheint meist mit erheblicher, unterschiedlicher Verspätung und ebenso endet es zu einem eher zufälligen Zeitpunkt. Die Ramp-Bits im Channel Status sind zuverlässiger, wenn man beachtet, dass auch sie mit etwa 80 - 120 ms Verspätung erst gesetzt werden.

Nach Abschluss der Fahrphase folgt eine Einschwingphase, deren Verlauf auch von der äußeren Last abhängt. Ohne Lastwiderstand ist ein erhebliches Unterschwingen beim Runterfahren aufgetreten (Abb.6.2). Unabhängig vom Lastwiderstand kann man bei größeren Spannungssprüngen zwei exponentielle Komponenten von etwa 1.5s und 15s Abklingzeit beobachten (Abb.6.3).

Nach der Einschwingphase ergeben die Spannungsmessungen eine Verteilung mit einer Halbwertsbreite von etwa 10mV (Abb.6.4). Dabei bleibt allerdings offen ob diese Streuung von der Messung herrührt oder die Unschärfe der Spannung wiedergibt. Da die Messung über 2 Tage gelaufen ist, beinhaltet sie auch die Langzeitstabilität.

Für 10 Spannungsprünge von 1V, 2V, ..., 512V, ausgehend bzw. endend bei 50V, wurde bei einer Ramp-Speed von 100V/s untersucht, nach welcher Zeit der Mittelwert der Verteilung sich auf 5mV dem Endwert genähert hat (Abb.6.5-8). Diese Ergebnisse wurden mit einer Hyperbel gefittet, um eine Formel für die notwendige Pausenzeit T in Abhängigkeit vom Spannungsprung U zu erhalten:

T = P1 * SQRT(P2 + U^2) + P3
Spannung    steigend    fallend
   P1         50.55       41.02
   P2         38.58      127.00
   P3        127.29        9.38

Von S100 = 100V/s abweichende Ramp-Speeds Sx wurden, ohne experimentelle Nachprüfung, durch die folgende Rechnung berücksichtigt:

Tx = T - Tr100 + Trx
mit Tr = U / S, dem jeweiligen Anteil der Ramp-Speed S an T.

6.3 Messdaten

Alle nachfolgenden Messungen wurden mit einer Ramp-Speed von 100V/s durchgeführt.

Abb.6.1: 500V Spannungssprung Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 47 Abb.6.2: Unterschwingen bei fehlender Last Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 48 Abb.6.3: Einschwingphase Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 49 Abb.6.4: Streuung der Messwerte Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 50 Abb.6.5: Einschwingzeiten für Spannungssprünge aufwärts (5mV Toleranz)

Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 51 Abb.6.6: Ausschnitt von Einschwingzeiten für Spannungssprünge aufwärts Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 52 Abb.6.7: Einschwingzeiten für Spannungssprünge abwärts (5mV Toleranz)

Kapitel 6: Einschwingverhalten des Iseg8210n 505F Netzgerätes 53 Abb.6.8: Ausschnitt von Einschwingzeiten für Spannungssprünge abwärts