# Anleitung zum Messprogramm ESW #
**********************************

*(Elektronen-Stoß-WQ-Absolutmessungen mit Multi-Mode-Kanone)*

             29.Apr.1992 K. Huber, Strahlenzentrum Univ. Gießen
             Version 11.März.2021

1 Anleitungs-Formate
********************

Diese Anleitung zum ESW-Messprogramm steht in verschiedenen Formaten zur
Verfügung.  Die entsprechenden Files finden Sie auf dem Host-Rechner
(z.Z. Ionix) unter /usr/exp/ex_help oder auf Ihrem Experiment-Account
unter $HOME/ex_home/ex_help:

     esw.txt     Text-Format, kann z.B. mit ‘a2ps’ in handlichem Format
                 gedruckt werden.  Es fehlen jedoch Bilder und Grafiken.
     esw.dvi     DVI-Format, kann z.B. mit ‘dvips’ auf einem
                 Postscript-Drucker gedruckt werden oder mit ‘xdvi’ auf
                 einem X-Windows Bildschirm dargestellt werden.
     esw.html    HTML-Format, kann mit jedem HTML-Browser gelesen werden.
     esw.info    INFO-Format, kann mit dem ‘GNU-Info-Browser’ (‘info -f
                 esw.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, ...).
     esw.pdf     PDF-Format, mit dem ‘Acrobat-Reader’ zu lesen.

2 Funktion von ESW
******************

2.1 Überblick
=============

Für das Elektron-Ion-Stoß-Experiment existieren folgende
Datenerfassungsprogramme:
     ESW     Elektronen-Stoß WQ Absolutmessungen
     ESS     Elektronen-Stoß WQ Scan-Messungen
     MASS    Elektronen-Stoß WQ Massen-Messungen
     DRM     Dielektronische Rekombinations-Matrix
     eGUN    Test- und Kontrollprogramm für die Multi-Mode-Kanone

Sowie die Auswerteprogramme:
     WQA     für ESW-Spektren

Das aktuelle ESW Programm dient der Absolutmessung von
Elektronen-Stoß-WQ-Spektren mit der 3.5 kV Multi-Mode-Elektronenkanone.
Es werden sechs Spektren mit der wählbaren Länge von N Kanälen erzeugt,
die als Zeilen einer 6*N Matrix angeordnet sind:
  1. Ionisationssignal
  2. Primärionenstrom
  3. Elektronenstrom an der Kathode
  4. Messzeit pro Kanal
  5. Ionisationssignal / Primärionenstrom * Skalierungsfaktor
     (2^15=32768)
  6. Elektronenstromverluste vor Wechselwirkungszone

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 Experimentsteuerung und Messdatenerfassung
==============================================

Die Steuerung des Experimentes erfolgt über neun Interfaces im
Control-Routing:
  1. LWL-Interface für die DAC-Steuerung
  2. LWL-Interface für die DAC-Steuerung
  3. LWL-Interface für die DAC-Steuerung
  4. Timer für Pausenzeit
  5. Timer für Messzeit
  6. Interrupt Eingabekarte
  7. Programmierbare Zeitbasis
  8. Digitale Eingabekarte
  9. Programmierbare Totzeit
Die beiden Timer- und die Interrupt-Karte werden nur zur Einstellung der
Hochspannungen benötigt.

Die Anordnung der Interface-Karten im Control-Routing wird durch das ESW
Konfigurationsmenü festgelegt.

   Die Aufnahme der Messdaten erfolgt über fünf U/D-Zähler im
Data-Routing und zwei 8-fach ADCs im Control-Routing mit denen folgende
Daten erfasst werden:
  1. Ionisiererposition (=aktuelle Kanalnummer im Spektrum)
  2. Ionisationssignal
  3. Primärionenstrom
  4. Elektronenstrom an der Kathode
  5. Messzeit pro Kanal
  6. Neun Plattenströme

2.3 Start der Messung
=====================

Für den Betrieb der Multi-Mode-Kanone lassen sich 16 Modes definieren.
Zu Beginn der Messung wird die Kanone auf den passenden Mode und die
gewünschte Energie eingestellt.  Um dabei unzulässige Betriebszustände
zu vermeiden, wird zuvor der aktuelle Zustand der Kanone erfragt und
anschließend der einzustellende.  Danach wird folgendermaßen verfahren:
   • Wenn der alte Zustand bekannt ist und für den neuen Zustand der
     Kanonen-Modus nicht geändert werden muss, kann der neue Zustand
     direkt, kontrolliert angefahren werden.
   • Wenn der alte Zustand bekannt ist und der neue Zustand einen neuen
     Kanonen-Modus erfordert, dann wird die Kanone zuerst kontrolliert
     runtergefahren und anschließend im neuen Modus kontrolliert in den
     neuen Zustand gefahren.
   • Wenn allerding der alte Zustand nicht bekannt ist, dann werden alle
     Spannungen der Kanone in *einem* Schritt auf null gesetzt bevor der
     neue Zustand angefahren wird.
Kontrolliertes Fahren der Kanone bedeutet:
   • Das Fahren der Kanone wird mit den beiden Timern im Control-Routing
     kontrolliert.  Die in dem aktuellen Modus festgelegte maximale
     Geschwindigkeit für Energieänderungen (Ramp Speed) wird dabei
     beachtet.
   • Der benötigte Energieschritt wird gemäß der maximalen
     Energieschrittweite (Step Size) in Teilschritten durchgeführt.
   • Nach jedem Teilschritt werden die Plattenströme kontrolliert:
        • Bei Überschreitung eines Warn-Limits wird eine Warnung auf dem
          Bildschirm ausgegeben und eine zusätzliche Pause von 100ms
          eingefügt.
        • Bei Überschreitung eines Stop-Limits werden alle Spannungen
          der Kanone in einem Schritt auf null gesetzt und der Start
          wird mit Fehlermeldung abgebrochen.
Während der Einstellung der Kanone werden Spannungen und Ströme im
Sekundentakt auf dem Bildschirm ausgegeben.  Nach erreichen der
Startenergie erfolgt je nach Konfiguration des aktuellen Modes direkt
der Start der Messung oder es wird eine Eingabe des Forschers erwartet.

2.4 Ablauf der Messung
======================

Der Ablauf des Experimentes besteht aus einer Serie von Messintervallen,
denen jeweils eine bestimmte Ionisiererposition zugeordnet ist.  Die
Steuerung des Ablaufs erfolgt durch das separate
Winkelschrittgeber-Interface.  Es sorgt mit Hilfe des Positionszählers
für eine Zuordnung der Ionisiererpositionen zu den Kanälen der sechs
Spektren und erzeugt die für das Steuern der Zähler notwendigen Signale
RESET, READ und UP/DOWN. Während eines Messintervalles akkumulieren die
Zähler die ankommenden Zählimpulse.  Nach Ablauf eines Messintervalles
wird von dem Winkelschrittgeber-Interface ein Read-Impuls zum Übertragen
des Positionszählers und der vier Zähler erzeugt, sowie ein Reset-Signal
zum Löschen der Zähler.  Sodann wird der Positionszähler fortgeschaltet
(+1 oder -1 je nach U/D-Signal).  Mit dem Read-Signal werden Position
und 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.  Die Position wird mit
’Vorrang’ zur Übertragung angemeldet.  Damit wird sichergestellt, dass
sie zuerst übertragen wird, um eine Synchronisierung der Software zu
ermöglichen.  Die Daten werden vom Messprogramm erst dann verarbeitet,
wenn ein vollständiger Datensatz von allen sechs Datenworten eines
Messintervalles übertragen ist.  Fehler bei der Übertragung werden
erkannt und registriert (data 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 ’Sequence error counter’ um eins.

   Der Wert des Positionszählers gibt bei der Verarbeitung die Nummer
des aktuellen Kanals in den Spektren an.  Die übertragenen Werte der
vier Zähler 1,2,3,4 werden jeweils zu dem aktuellen Kanal der Spektren
1,2,3,4 addiert.

   Das fünfte Spektrum wird anschließend erzeugt durch Division des
aktuellen Kanals des ersten Spektrums durch den des zweiten Spektrums,
multipliziert mit einem Skalierungsfaktor (2^15=32768), um in der
Integer-Darstellung eine ausreichende Genauigkeit zu erreichen.

   Die Messzeit je Kanal wird ermittelt durch Zählen eines Zeittaktes,
der durch eine programmierbare Zeitbasis im Control-Routing erzeugt
wird.

   Im sechsten Spektrum werden die Elektronenstromverluste auf den
Platten vor der Wechselwirkungszone (1, 2, 3, WWZ1) akkumuliert, indem
für jedes Messintervall, mittels ADC im Control-Routing, die Ströme
gemessen werden.  Mit Hilfe der verschiedenen Eichungen
(Kathodenstrommessung, ADC) werden die Spannungswerte des ADCs
umgerechnet in Einheiten des Elektronenstroms an der Kathode und im
Spektrum 6 gesammelt.  Da der zeitliche Ablauf der Messung aus
historischen Gründen von der Hardware gesteuert wird, die ADCs aber von
der Software ausgelesen werden, können die Ströme nicht während des
Messintervalls sondern erst kurz danach (< 100ms) gemessen werden.
Nämlich dann, wenn die Software durch den Empfang eines Datensatzes über
das Data-Routing von dem Ende des Messintervalls erfahren hat.
Da erwartet wird, dass die Kanone stabil steht und die Ströme in der
Auswertung nur Korrekturen sind, sollte dies Verfahren brauchbar sein,
muss sich aber noch beweisen...
Vorschlag: Die Hardware initialisiert zu Beginn und Ende eines je
Messintervalls einen Interrupt.  Dann kann die Software während des
Messintervalls mehrere Strommessungen vornehmen, um einen Mittelwert mit
Standardabweichung zu errechnen für eine Beurteilung der Qualität der
Strommessung.

2.5 Stop der Messung
====================

Wenn die Messung gestoppt wird muss noch der aktuelle Scan-Durchlauf
beendet werden.  Ein vorzeitiger Abbruch ist möglich, führt allerdings
zu einer Stufe in den Spektren.  Da das Messzeitspektrum gleichermaßen
davon betroffen ist, sollte eine Korrektur möglich sein.

2.6 Geräteeinstellungen
=======================

   *Control-Routing-Einstellungen*
Zur Unterdrückung der Nachimpulse des Channeltrons ist eine
paralysierende Totzeit nachgeschaltet.  Die Totzeitkarte ist über das
Control-Routing programmierbar, wird zur Zeit jedoch mit einer festen
Einstellung über Steckerprogrammierung eingesetzt.  Die Totzeit
berechnet sich für 20MHz Quarzfrequenz (Standard) nach folgender Formel
(siehe: Doku.  Hardware, progr.  Totzeit):
     Totzeit = (N + 3.5)*50ns + 11ns   +-25ns
     N: progr. Zeittakte
Ein Wert von N=96 –> T=4.975us +-25ns hat sich bewährt (Alex B.).

   *Data-Routing-Einstellungen*
Der Positionszähler muss als erster übertragen werden, um ein
gesichertes Erkennen eines Datenpaketes (5 Data-Routing Werte) zu
ermöglichen.  Deshalb muss dieser im Vorrangmodus betrieben werden.
Hierzu ist auf der zugehörigen U/D-Karte eine Änderung notwendig: Pin
26a des VG-Steckers auf 0V. Karte danach unbedingt durch beschrifteten
Aufkleber kennzeichnen!

Die Zähler 1-4 werden wegen der Kompatibilität mit der ESS-Messung im
Kopplungsmodus K2 betrieben.  Das zu diesem Betrieb notwendige
Bus-Signal liefert die ESS-Karte.  Sie muss deshalb vorhanden sein.

   *Messbereichseinstellung (Schrank 4)*
Das Modul für die Messbereichseinstellung hat vier gleiche Ausgänge,
über die sowohl die Messbereichseinstellung für die
Elektronenstrommessung als auch für die Ionenstrommessung zur Verfügung
stehen.  Für beide muss die Polarität der Kodierung (serielles
Hofmann-Protokoll) mit einem Schalter auf der Rückseite eingestellt
werden:
     - für Elektronen
     + für Ionen
Die Einstellung wird auf der Frontseite angezeigt.

   *Digitale Stromanzeige (Schrank 2 und 4)*
In Schrank 4 gibt es eine für Elektronen und Ionen gemeinsame digitale
Anzeige, bei der die 5...-Bereiche für Elektronen jedoch falsch
anzeigen.  Deshalb ist zur Zeit ein Zähler (Schrank 2) zur
Elektronenstrommessung in Einsatz.  Da dieser jedoch nicht über die
Messbereichseinstellung gesteuert werden kann, müssen die Zählerwerte
[kHz] auf Ströme [mA] umgerechnet werden:
     Strom [mA] = Messbereich [mA] / 500 [kHz] * Anzeige [kHz]
     Messbereich  Faktor
       1500        3.0
        500        1.0
        150        0.3
         50        0.1
         15        0.03

2.7 Messdatenformat
===================

*Struktur der ESW-Daten-Files*
Die ESW-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/.../esw.conf und esw.h
Zugang hat.

Anschließend folgen die 5 Spektren in der Reihenfolge:
  1. Ionisationssignal
  2. Primärionenstrom
  3. Elektronenstrom
  4. Messzeit pro Kanal
  5. Ionisationssignal / Primärionenstrom * Skalierungsfaktor
     (2^15=32768)
  6. Elektronenstromverluste vor der Wechselwirkungszone

   Die Länge der Spektren ist wählbar.  Die Kanäle der Spektren sind als
INTEGER*4 (BYTES = 4) deklariert, d.h.  jeder Kanal kann ca.  4*10^9
Ereignisse aufnehmen.

     ---
      |
      | Header, 512 Bytes
      |
     ---
      |
      | Ionisationssignal, (Anz. Kanäle * 4) Bytes
      |
     ---
      |
      | Primärionenstrom, (Anz. Kanäle * 4) Bytes
      |
     ---
      |
      | Elektronenstrom, (Anz. Kanäle * 4) Bytes
      |
     ---
      |
      | Messzeit pro Kanal, (Anz. Kanäle * 4) Bytes
      |
     ---
      |
      | Ionisationssignal / Primärionenstrom, (Anz. Kanäle * 4) Bytes
      |
     ---
      |
      | Elektronenstromverluste, (Anz. Kanäle * 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 lROWS 6
     #define lCOLS 6
     #define lBYTES 1
     #define lHDFREE 4
     #define lRESRV 38
     #define lLTXT 4
     #define lTEXT 80
     Plattformabhängige Definitionen:
     UINT2: 2 Bytes "unsigned int"
     UINT4: 4 Bytes "unsigned int"

     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: "ESW " */
                 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: "MCA2" */
                 char rows[lROWS];     /* Number of rows: "     6" */
                 char cols[lCOLS];     /* Channels/row: " <var>" */
                 char bytes[lBYTES];   /* Bytes/channel: "4" */
                 char hdfree[lHDFREE]; /* First free byte in header (0,...) */
                 char resrv[lRESRV];   /* Reserved */
                 char ltxt[lLTXT];     /* Length of text: "80" */
                 char text[lTEXT];     /* Text */
             } stddat;   /* Standard data of header */
             struct ESW_type {
                 UINT2 status;       /* Status of spectrum */
                 UINT4 rltcnt;       /* Realtime */
                 UINT4 lftcnt;       /* Lifetime */
                 UINT4 datcnt;       /* Processed positions */
                 UINT4 outcnt;       /* Positions out of range */
                 UINT4 ct1cnt;       /* Counter 1 */
                 UINT4 ct2cnt;       /* Counter 2 */
                 UINT4 ct3cnt;       /* Counter 3 */
                 UINT4 ct4cnt;       /* Counter 4 */
                 UINT4 seqcnt;       /* Sequence errors */
                 UINT4 fulcnt;       /* Fifo full counter */
                 UINT4 rejcnt;       /* Rejected data */
                 UINT4 errcnt;       /* Error counter */
                 UINT4 hdatid;       /* Data identification */
                 UINT2 slen;         /* Length of single spectrum  */
                 REAL4 expar[13];    /* Extended ESW parameters */
                 char ecfprg[12];    /* Version of ECF program, ESS only */
                 REAL4 gunpar[10];   /* Gun parameters */
                 REAL4 deadtm;       /* Deadtime of event counter [us] */
                 REAL4 dtmerr;       /* Error deadtime of event counter [us] */
                 REAL4 errkf;        /* Error Kinematic factor */
                 REAL4 errec;        /* Error Electron current */
                 REAL4 erric;        /* Error Ion current */
                 REAL4 errcw;        /* Error Channel width */
                 REAL4 errde;        /* Error Detector efficiency */
                 REAL4 s5scal;       /* Scaling factor spectrum 5 */
                 UINT4 runtim;       /* Realtime to run experiment [s] */
             } spcdat_ESW;   /* Special data of ESW type header */
         } hdata;        /* Header data */
         struct {
             char h512[512];         /* Fill 512 bytes block */
         } htotal;        /* Total header */
     } HEADER;

3 Bedienung von ESW
*******************

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 ESW Top-Menü
================

3.1.1 Exit ESW
--------------

Verlassen des Programmes.

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

Führt zum ESW Start-Menü.  (see ESW 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 (z.B. Gasdruck im
     WW-Raum).

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

   • *Length*
     Zeilen * Spalten des Spektrums.

   • *Timer*
     Restzeit des Timers für die Messzeitvorgabe.

   • *Realtime*
     Die Zeit in Sekunden, während der das Experiment gestartet war.
     Bei Stop durch Messzeitvorwahl ist sie exakt, bei manuellem Stop
     kann sie bis zu 1s zu klein sein.

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

   • *Positions received*
     Anzahl der empfangenen Positionsdaten.

   • *Positions out of range*
     Anzahl der Positionsdaten, die außerhalb der Spektrengrenzen lagen
     und deshalb nicht verarbeitet wurden.

   • *Counter 1(2,3,4) received*
     Anzahl der von dem Zähler 1(2,3,4) empfangenen Daten.

   • *Data sequence errors*
     Anzahl der Fälle, in denen die erwartete Reihenfolge der
     ankommenden Daten (erst Kanalnummer 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.

   • *Energy*
     Anzeige der eingestellten Elektronenenergie

   • *Currents*
     Anzeige der neun Plattenströme, die im Sekundentakt gemessen
     werden.

   Diese Ausgaben werden im Sekundentakt wiederholt.  Mit der
Return-Taste kommt man zur nächsten Seite des Headers:

   • *Der aktuelle eGun-Modus*

   • *Experimentbeschreibende Parameter*

   • *Messzeitbasis, Strom-Konverter und Winkelschrittgeber*

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

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

Wenn INFO mit ’Q’ oder ’q’ normal beendet wird, dann erfolgt die direkte
Rückkehr zum Messprogramm.  Wird INFO jedoch mit ’^C’ abgebrochen, so
bleibt das Login auf dem INFO-Server erhalten und muss mit ’exit’ oder
’logout’ beendet werden!

3.2 ESW 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 sind für die Auswertung relevant oder haben nur
beschreibende Funktion.  Für den Restart der Messung kann nur ein Teil
der zugehörigen Parameter geändert werden.

*Für die Auswertung relevante Parameter*
   • *Title*
   • *Experimentbeschreibende Parameter*
   • *Deadtime of event counter*
     Zur Unterdrückung der Nachimpulse des Channeltrons ist eine
     paralysierende Totzeit nachgeschaltet, deren Wert für die
     Auswertung relevant ist.  Zur Zeit ist sie fest auf 4.975µs +-25ns
     eingestellt, die Alex B. ermittelt hat (see
     Geräteeinstellungen.).
   • *Angular position indicator*
     Die Schritttakte des Winkelschrittgebers sind durch die Mechanik
     der Kanone und die Ausführung des Winkelschrittgebers vorgegeben
     (594300 Imp/10mm).  Um ein Überlaufen der 16-Bit-Zähler für Ströme
     und Zeittakt pro Kanal zu vermeiden darf die vom Winkelschrittgeber
     vorgegebene Messzeit pro Kanal 130ms nicht überschreiten!!!
     Die Einstellung der Messzeit pro Kanal erfolgt über den WSG-Teiler
     auf dem WSG-Interface (z.Z. 1950 -> 70ms) und ist abhängig von der
     Motordrehzahl, die auf der Motorsteuerung (Dunkermotor) mit einem
     Poti einzustellen ist.
   • *Relativ systematic errors of experiment*
     Ebenfalls für die Auswertung können die verschiedenen
     systematischen Fehler angegeben werden.  Bewährte Werte werden in
     Klammern angeboten.
   • *Konvertereinstellungen*
     Die Konvertereinstellungen für die Elektronen- und
     Ionenstrommessung werden ausgelesen und angezeigt.  Sollte eine
     Änderung der Konvertereinstellungen während der Parametereingabe
     vorgenommen werden, so müssen sie anschließend mit dem Menüpunkt
     <*Read Converter*> aktualisiert werden.

*Select eGun Mode*
Im nächsten Schritt stehen 16 Modes zur Auswahl, in denen die
Elektronenkanone betrieben werden kann.  Diese eGun Modes müssen zuvor
einmal definiert werden.

*Für die Messung relevante Parameter*
   • *Elektron energy*
   • *Length of single spectrum*
     Es ist die Länge N eines einzelnen Spektrums der 6*N Matrix
     anzugegeben (N < 32768).
   • *Scaling factor spectrum 5*
     Da die Spektren im Integerformat angelegt sind, das Spektrum 5 aber
     als Verhältnis von Spektrum 1 zu Spektrum 2 errechnet wird, muss
     das Ergebnis mit einem Faktor multipliziert werden, um es in den
     Integerbereich zu transformieren.
   • *Time base spectrum 4*
     Das Messzeitspektrum zählt die Takte eines programmierbaren
     Impulsgebers.  Dessen 1MHz Basisfrequenz wird in Zweierpotenzen
     untersetzt.
     Um ein Überlaufen der 16-Bit-Zähler für Ströme und Zeittakt pro
     Kanal zu vermeiden darf der Zeittakt max.  500kHz betragen!!!

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 (z.B. Gasdruck im
     WW-Raum).

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

   • *Length*
     Zeilen * Spalten des Spektrums.

   • *Timer*
     Restzeit des Timers für die Messzeitvorgabe.

   • *Realtime*
     Die Zeit in Sekunden, während der das Experiment gestartet war.
     Bei Stop durch Messzeitvorwahl ist sie exakt, bei manuellem Stop
     kann sie bis zu 1s zu klein sein.

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

   • *Positions received*
     Anzahl der empfangenen Positionsdaten.

   • *Positions out of range*
     Anzahl der Positionsdaten, die außerhalb der Spektrengrenzen lagen
     und deshalb nicht verarbeitet wurden.

   • *Counter 1(2,3,4) received*
     Anzahl der von dem Zähler 1(2,3,4) empfangenen Daten.

   • *Data sequence errors*
     Anzahl der Fälle, in denen die erwartete Reihenfolge der
     ankommenden Daten (erst Kanalnummer 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.

   • *Energy*
     Anzeige der eingestellten Elektronenenergie

   • *Currents*
     Anzeige der neun Plattenströme, die im Sekundentakt gemessen
     werden.

   Diese Ausgaben werden im Sekundentakt wiederholt.  Mit der
Return-Taste kommt man zur nächsten Seite des Headers:

   • *Der aktuelle eGun-Modus*

   • *Experimentbeschreibende Parameter*

   • *Messzeitbasis, Strom-Konverter und Winkelschrittgeber*

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

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

3.4.5 Detach ESW
----------------

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 ESW 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 identification bits
------------------------------

Festlegen der Datenkennungs-Bits.  Zur Unterscheidung der Daten von
verschiedenen Datenquellen sind die Messdaten mit einer Kennung
versehen.  Sie 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.

3.5.7 Control Routing configuration
-----------------------------------

Über diese Eingabe erfährt das ESW-Programm an welcher Position des
Control Routing sich die benötigten Interface-Karten (PSO, ADC,...)
befinden.  Diese Karten werden von einem Adress-Decoder gesteuert, der
unmittelbar links davon steckt.  In der höherwertigen Ziffer ist dessen
Steckplatz-ID anzugeben, die der Adress-Decoder durch LEDs binär codiert
anzeigt.  Der Adress-Decoder stellt für die nachfolgenden
Interface-Karten acht Registeradressen bereit, wovon jede
Interface-Karte eine bestimmte Anzahl benötigt.  Die Registeradressen
werden in aufsteigender Nummer von links nach rechts an die Karten
vergeben (niederwertige Ziffer).  Nach der Eingabe wird geprüft ob die
Registeradressen ansprechbar sind.

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 Configuration of e-Gun
-----------------------------

Ab der ESW-Version März-2021 wird die eGun-Konfiguration gemeinsam für
ESW und ESS (eGUN noch nicht) in einer eigenen Textdatei beschrieben:
          $HOME/ex_home/ex_param/eGunModes.txt
   • *Configuration*
     Unter diesem Menüpunkt können die acht Spannungen und neun Ströme
     der Kanone mit einer kurzen Beschreibung versehen werden.
   • *Wiring*
     Zur Einstellung der Kanone werden acht Spannungswerte ausgegeben.
     Anzugeben ist, über welchen Weg (PSO -> LWL -> DAC) dies geschieht:
        * Jede PSO-Karte kann zwei LWL bedienen.
        * Jede LWL kann eine DAC-Karte mit zwei DACs bedienen.
        * Jede DAC-Karte liefert zwei Steuerspannungen mit *dem selben
          (!!!)*  Ground-Potential.  Deshalb können i.a.  keine zwei
          Netzgeräte ohne Nebenwirkungen mit der selben DAC-Karte
          gesteuert werden.  Es ist jedoch möglich mittels LWL-Splitter
          zwei DAC-Karten über einen PSO-Ausgang zu steuern.

     Bei der PSO/LWL/DAC/Ux Verkabelung gibt es Freiheiten.  Zur Zeit
     (Okt.  2020) ist die folgende Anordnung verdrahtet:
          	 Voltage    PSO   LWL   DAC
          	   U0        1     0     0   Cath/P5 raw voltage
          	   U1        1     0     1   Cath/P5 fine voltage
          	   U2        1     1     0   Cath/P5: FUG 140-3500
          	   U3        2     1     0   P1/P4: FUG 140-2000
          	   U4        2     0     0   P1/P4 voltage
          	   U5        3     0     0   P2/P3: TREK 609E-6
          	   U6        3     1     0   P6: FUG 140-6500
          	   U7        3     1     1   Coll.: FUG 4200-3500

   • *Limits*
     Unter diesem Menüpunkt sind für die acht Spannungen und neun Ströme
     Grenzwerte festzulegen:
        * Für die Spannungen sind Grenzen anzugeben die nicht unter-
          bzw. 	überschritten werden dürfen.
        * Für die Ströme sind sowohl Warn-Grenzen anzugeben, bei deren
          Überschreiten Warnungen ausgegeben werden, als auch
          Stop-Grenzen deren Überschreiten zu einem Abbruch der Messung
          führen.
   • *Calibrations*
     Unter diesem Menüpunkt sind für die acht Spannungen und neun Ströme
     die Eichungen festzulegen:
        * Für die Spannungen ist anzugeben welche Werte die HV-Geräte
          liefern würden bei einer Steuerspannung von 0V bzw.  10V, auch
          wenn sie tatsächlich mit anderen Werten zu steuern sind.
               	U0   Cath/P5 raw voltage
               	U1   Cath/P5 fine voltage
               	U2   Cath/P5: FUG 140-3500
               	U3   P1/P4: FUG 140-2000
               	U4   P1/P4 voltage
               	U5   P2/P3: TREK 609E-6
               	U6   P6: FUG 140-6500
               	U7   Coll.: FUG 4200-3500
          Für die Spannungen U2 bis U7 ist die Eichung unkritisch und es
          können die berechneten Werte verwendet werden.

          Für die Kathodenregelung (U0, U1) jedoch sollten die genauen
          Werte durch Messung ermittelt werden.  Die Durchführung einer
          solchen Eichung ist im Anhang der egun-Doku ausführlich
          beschrieben. 	Ferner existiert für egun eine Programmfunktion
          um mittels Keithley2000 eine Eichung durchzuführen.
        * Für die zugehörigen DACs ist anzugeben in welchem
          Spannungsbereich sie betrieben werden sollen.
        * Für die Ströme ist anzugeben bei welchen Strömen die
          kontaktlose Strommessung 0V bzw.  10V liefert.
   • *Define eGun Modes*
     Für die Multi-Mode-Kanone können 16 Modes definiert werden, in
     denen ihre speziellen Eigenschaften festgelegt werden:
        * Kurze Beschreibung des Modus
        * Maximal zulässige Elektronenenergie
        * Maximal zulässiges Tempo bei Energieänderungen
        * Faktoren zur Berechnung der Plattenspannungen aus der
          Elektronenenergie

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

   • 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 Host.  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 Host 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 Anhang
********

6.1 ESW/ESS Hardware
====================

*ESS/ESW Control-Routing*
     |====================|
     |Read/Reset-Verteiler|
     |(Slot17,18)       In|<-.
     |       4 * Reset Out|--|---------> Reset (Data-Routing)
     |        4 * Read Out|--|---------> Read (Data-Routing)
     |====================|  |
     | ESW/ESS-Umschalter |  |
     |SCAN/DCB-Karte      |  |
     |(Slot15,16)         |  |
     |        Gate ESS Out|--|---------> Gate-Sign.-Vert. (Data-Routing)
     |        Read ESS Out|--|---------> ESS-Kontr./Kanalnr., Read (Data-Routing)
     |        Read ESW Out|--|---------> ESW-Kanalzaehler (Data Routing)
     |      Read/Reset Out|--'
     |         Gate ESS In|<-----.
     |         Read ESS In|<-.   |
     |         Read ESW In|<-|---|------ Winkelschrg.-Teiler, Out2 (Winkelschrg.-Elektr.)
     |====================|  |   |
     | Progr. Totzeit   In|<-|---|----- Ionisationssignal (CFD NIM-Crate)
     |(0x36)           Out|--|---|----> Ionisationssignal (Data Routing)
     |--------------------|  |   |
     | Interrupt Eingabe  |  |   |
     |(0x35)      !Busy In|<-|---|------ ESS-Kontrolle, Busy (Data-Routing)
     |          Read/Reset|--'   |
     |               Start|<---. |
     |--------------------|    | |
     |  Messber.-Eingabe  |    | |
     |(0x34)     Ser. In|<---|-|------ Messbereichssignal
     |--------------------|    | |
     | Zeittakt-Ausgabe   |    | |
     |(0x33)           Out|----|-|-----> Messzeit, Count (Data Routing)
     |--------------------|    | |
     | Pausenzeit-Ausgabe |    | |
     |(0x32)    !Intervall|--. | |
     |--------------------|  | | |
     |  Messzeit-Ausgabe  |  | | |
     |(0x31)    Ext. Start|<-' | |
     |          !Intervall|----' |
     |           Intervall|------'
     |--------------------|
     |Kanalnummer-Ausgabe |
     |(0x30)       20 pol.|-----------> ESS-Kanalnr., 20 pol. (Data Routing)
     |--------------------|
     |   Adress-Decoder   |
     |(Slot07)            |
     |====================|
     | ADC2-Dateneingabe  |
     |(0x07)     8-fach In|<----------- Abschaltautomatik D-Sub25 2
     |--------------------|
     | ADC1-Dateneingabe  |
     |(0x06)     8-fach In|<----------- Abschaltautomatik D-Sub25 1
     |--------------------|
     | PSO2-Datenausgabe  |-----> LWL1, DAC0/1: P6 FUG 140-6500 / frei
     |(0x04/05)   Ser. Out|-----> LWL0, DAC0/1: P2,P3 TREK 609E-6 / Koll. FUG 4200-3500
     |--------------------|
     | PSO1-Datenausgabe  |-----> LWL1, DAC0/1: P1,P4 FUG 140-2000 / frei
     |(0x02/03)   Ser. Out|-----> LWL0, DAC0/1: P1,P4 Sollwert grob / frei
     |--------------------|
     | PSO0-Datenausgabe  |-----> LWL1, DAC0/1: Kath. FUG140-3500 / frei
     |(0x00/01)   Ser. Out|-----> LWL0, DAC0/1: Kath.,P5 Sollwert grob / fein
     |--------------------|
     |   Adress-Decoder   |
     |(Slot01)            |
     |====================|

   *Winkelschrittgeber-Elektronik*
     |                    |
     |====================|
     |Winkelschrg.-Teiler |
     |(ESW Messungen)  Out|-----------> ESW-Kanalzaehler (Data Routing)
     |              UP/!DO|-----------> ESW-Kanalzaehler (Data Routing)
     |                 Res|-----------> ESW-Kanalzaehler (Data Routing)
     |                Out2|-----------> ESW/ESS-Umschalter (Control Routing)
     |        Phono Buchse|<----------- Winkelschrittgeber e-Kanone
     |====================|
     |                    |

   *ESW/ESS Data-Routing*
     |===============|
     |Gate-Signal    |
     | Verteiler   In|<---------<ESW/ESS-Umschalter, Gate ESS out (Contr.-Rout.)
     |        8 * Out|------.
     |===============|      |
     |ESS-Kontrolle  |      |
     |(Scan-Karte)   |      |
     |           BUSY|------|--->Interrupt Eingabe (Contr.-Rout.)
     |           READ|<-----|---<ESW/ESS-Umschalter, Read ESS out (Contr.-Rout.)
     |---------------|      |
     |IFS (RUN,FREI) |      |
     |===============|      |
     |U/D-ZLR    Gate|<-----+
     |          RESET|<---. |
     |           READ|<-. | |
     |          COUNT|<-|-|-|---<Messzeit (Contr.-Rout., Zeittakt)
     |---------------|  | | |
     |IFS  (RUN, K2) |  | +-|---<Reset-Verteiler (Contr.-Rout.)
     |===============|  +-|-|---<Read-Verteiler (Contr.-Rout.)
     |U/D-ZLR    Gate|  | | |
     |          RESET|<-|-+ |
     |           READ|<-+ | |
     |          COUNT|<-|-|-|---<Elektronenstrom
     |---------------|  | | |
     |IFS  (RUN, K2) |  | | |
     |===============|  | |
     |U/D-ZLR    Gate|<-|-|-+
     |          RESET|<-|-+ |
     |           READ|<-+ | |
     |          COUNT|<-|-|-|---<Primärionenstrom
     |---------------|  | | |
     |IFS  (RUN, K2) |  | | |
     |===============|  | | |
     |U/D-ZLR    Gate|<-|-|-'
     |          RESET|<-|-'
     |           READ|<-'
     |          COUNT|<------<Ionisationssignal (Contr.-Rout., Progr. Totzeit)
     |---------------|
     |IFS  (RUN, K2) |
     |===============|
     |ESW-Kanalnummer|
     |U/D-ZLR     U/D|<------<Richtung   (Winkelschrg.-Teiler)
     |          RESET|<------<Normierung (Winkelschrg.-Teiler)
     |           READ|<------<ESW/ESS-Umschalter, Read ESW out (Contr.-Rout.)
     |          COUNT|<------<Kanalfortschltng (Winkelschrg.-Teiler)
     |---------------|
     |IFS (RUN,FREI) |
     |===============|
     |ESS-Kanalnummer|
     |(POS -Karte)   |
     |     20 pol. In|<------<ESS-Kanalnummer, 20 pol. (Contr.-Rout.)
     |           Read|<------<ESW/ESS-Umschalter, Read ESS out (Contr.-Rout.)
     |---------------|
     |IFS (RUN,FREI) |
     |===============|

6.2 ESW/ESS Oldies
==================