# Anleitung zum Messprogramm ESA22s #
*************************************

*(Energie-Scan-Messungen mit dem ESA22-Elektronen-Spektrometer)*

     13.Apr.2006 K. Huber, Strahlenzentrum Univ. Gießen
     Version 03.Feb.2009

1 Über diese Anleitung
**********************

Diese Anleitung zum ESA22s-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:

     esa22s.txt  Text-Format, kann z.B. mit `a2ps' in handlichem Format
                 gedruckt werden. Es fehlen jedoch Bilder und Grafiken.
     esa22s.dvi  DVI-Format, kann z.B. mit `dvips' auf einem
                 Postscript-Drucker gedruckt werden oder mit `xdvi' auf
                 einem X-Windows Bildschirm dargestellt werden.
     esa22s.html HTML-Format, kann mit jedem HTML-Browser (z.B.
                 `netscape') gelesen werden.
     esa22s.info INFO-Format, kann mit dem `GNU-Info-Browser' (`info -f
                 esa22s.info') und `GNU-emacs' gelesen werden. Es fehlen
                 jedoch Bilder und Grafiken.  So wird der Info-Browser
                 bedient (Start mit Tastenfolge TAB, ENTER): info.
                 (Zurück mit L, L, ...).
     esa22s.pdf  PDF-Format, mit dem `Acrobat-Reader' zu lesen.

2 Funktion von ESA22s
*********************

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 ESA22s Programm dient der Aufnahme einer Folge von
Energie-Scan-Matrizen. Für äquidistante Energieschritte wird eine
vorgegebene Anzahl Position-Computer-Matrizen gemessen. Die Anzahl der
Matrizen ist begrenzt durch den Speicherausbau des VME-Computer-Boards
(ca. 50 für MVME172).

   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.

   Da der Position-Computer die Daten schneller anliefern kann als die
Datenerfassung sie verarbeitet, können Totzeitverluste auftreten. Das
Position-Computer-Interface (PCI) gibt für jedes verlorene Datenwort
(Pileup) einen Zählimpuls aus, der in einem benachbarten Zähler addiert
wird.  Ferner werden Elektronenstrom, Ionenstrom sowie die Messzeit
für jede Matrix einzeln aufsummiert und in den ersten Kanälen der
Matrix gespeichert:
  1. Kanal: Totzeitverluste

  2. Kanal: Ionenstrom

  3. Kanal: Elektronenstrom

  4. Kanal: Messzeit pro Kanal

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 Datenrate ist abhängig von der verwendeten CPU:
     MVME162        ?kHz
     MVME172        ?kHz

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 ESA22s eine Anfangsnormierung
über die Interfaces im Control-Routing:
   * Einstellen der Hardware auf den xy-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 (see
     Einschwingverhalten des Iseg8210n 505F Netzgerätes.), 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 überträgt das
Position-Computer-Interface die Positionsdaten zum Rechner 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.

   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.

   Die Zählerdaten werden vom Messprogramm erst dann verarbeitet, wenn
ein vollständiger Datensatz (Synchronsignal, vier Zähler) übertragen
ist.  Dann werden die übertragenen Werte der vier Zähler zu den ersten
vier Kanälen der aktuellen Matrix addiert. Datenverluste bei der
Übertragung werden erkannt und registriert (Sequence errors). 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.

   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. ESA22s-Timing*

*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.

*Abb 3. Elektronen- und Ionenstrommessung (Planung)*

*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.

2.2.4 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.5 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 ESA22s Geräteeinstellungen
==============================

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

2.4 ESA22s Control-Routing Belegung
===================================

Der Control-Routing-Überrahmen wird vom ESA22s-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

        *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 ESA22s Data-Routing Belegung
================================

Der Data-Routing-Überrahmen wird vom ESA22s-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)

     * 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 ESA22s-Daten-Files*
Die ESA22s-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/.../esa22s.conf und
esa22s.h Zugang hat.

Anschließend folgen die Matrizen mit dem festen Format 256 * 256 * 4
Bytes in der Reihenfolge der Energieschritte, beginnend mit der
Startenergie.  Die Anzahl der Matrizen ist wählbar. Die Kanäle der
Matrizen sind als INTEGER*4 (BYTES = 4) deklariert, d.h. jeder Kanal
kann ca. 4*10^9 Ereignisse aufnehmen.

Die ersten vier Kanäle jeder Matrix enthalten folgende Messdaten:
  1. Totzeitverluste der Matrix

  2. Integrierter Ionenstrom

  3. Integrierter Elektronenstrom

  4. Messzeit

     ---
      |
      | Header, 512 Bytes
      |
     ---
      |
      | Matrix 1, (256 * 256 * 4) Bytes
      |
     ---
      |
      | Matrix 2, (256 * 256 * 4) 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: "ESA22s " */
                 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: "DIM3" */
                 char rows[lROWS];     /* Number of rows: "   256" */
                 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: " <var>" */
                 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 */
                 UINT2 xlen;         /* Length of X axis */
                 UINT2 ylen;         /* Length of Y axis */
                 UINT2 zlen;         /* Length of Z axis */
                 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 outcnt;       /* Positions out of range */
                 UINT4 seqcnt;       /* Sequence errors */
                 UINT4 bovcnt;       /* Buffer overruns, not used */
                 UINT4 dclcnt;       /* Lifetime for Duty cycle calculation */
                 UINT4 rejcnt;       /* Rejected data */
                 UINT4 errcnt;       /* Error counter */
                 UINT4 fulcnt;       /* Fifo full counter */
                 UINT4 runtim;       /* Realtime to run experiment [s] */
                 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 ESA22s parameters */
             } spcdat;   /* Special data of header */
         } hdata;        /* Header data */
         struct {
             char h512[512];         /* Fill 512 bytes block */
         } htotal;        /* Total header */
     } HEADER;

   *Experiment-Parameter:*
     expar[ ] |  ESA22s-Programm
     ---------+--------------------------------------------
        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]

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 ESA22s
**********************

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.

        --- ESA22s Top-Menü ---

        --- ESA22s Start-Menü ---

        --- ESA22s Parameter-Eingabe ---

        --- ESA22s Funktionen bei laufendem Experiment ---

        --- ESA22s Konfigurations-Menü ---

3.1 ESA22s Top-Menü
===================

3.1.1 Exit ESA22s
-----------------

Verlassen des Programmes.

3.1.2 Start experiment
----------------------

Führt zum ESA22s Start-Menü.  (see ESA22s Start-Menü.)

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*
     Anzahl Matrizen * 256 Zeilen * 256 Spalten.

   * *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
     Position-Computer-Interfaces registriert.

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

   * *Position data*
     Anzahl der über das Position-Computer-Interface empfangenen
     Positionsdaten.

   * *Positions lost*
     Anzahl der Totzeitverluste des Position-Computer-Interfaces.

   * *Data out of range*
     Anzahl der wegen unzulässiger Matrixnummer verworfenen Daten.

   * *Data sequence errors*
     Anzahl der Fälle, in denen die erwartete Reihenfolge der
     ankommenden Daten (erst Zähler-Synch.-Signal dann 4 Zählerdaten)
     durchbrochen wurde.

   * *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.

   * *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*
     (see Experiment-Parameter-Eingabe.)

   * *Experiment Control File data*
     (see Experiment-Parameter-Eingabe.)

   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).

   ESA22s verwendet standardmäßig das Programm PEAK3 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 ESA22s Konfigurations-Menü.    (see ESA22s Konfigurations-Menü.)

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 ESA22s 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.
(see Experiment-Parameter-Eingabe.)
(see Funktionen bei laufendem Experiment.)

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.
(see Experiment-Parameter-Eingabe.)
(see Funktionen bei laufendem Experiment.)

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.
(see Experiment-Parameter-Eingabe.)
(see Funktionen bei laufendem Experiment.)

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 (see Archivierung der Daten.).  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
-----------------

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*
     Anzahl Matrizen * 256 Zeilen * 256 Spalten.

   * *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
     Position-Computer-Interfaces registriert.

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

   * *Position data*
     Anzahl der über das Position-Computer-Interface empfangenen
     Positionsdaten.

   * *Positions lost*
     Anzahl der Totzeitverluste des Position-Computer-Interfaces.

   * *Data out of range*
     Anzahl der wegen unzulässiger Matrixnummer verworfenen Daten.

   * *Data sequence errors*
     Anzahl der Fälle, in denen die erwartete Reihenfolge der
     ankommenden Daten (erst Zähler-Synch.-Signal dann 4 Zählerdaten)
     durchbrochen wurde.

   * *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.

   * *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*
     (see Experiment-Parameter-Eingabe.)

   * *Experiment Control File data*
     (see Experiment-Parameter-Eingabe.)

   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.4.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).

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

3.4.5 Detach ESA22s
-------------------

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 ESA22s 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*

*Abb.6.2: Unterschwingen bei fehlender Last*

*Abb.6.3: Einschwingphase*

*Abb.6.4: Streuung der Messwerte*

*Abb.6.5: Einschwingzeiten für Spannungssprünge aufwärts (5mV
Toleranz)*

*Abb.6.6: Ausschnitt von Einschwingzeiten für Spannungssprünge
aufwärts*

*Abb.6.7: Einschwingzeiten für Spannungssprünge abwärts (5mV Toleranz)*

*Abb.6.8: Ausschnitt von Einschwingzeiten für Spannungssprünge abwärts*