# Anleitung zu den ECF Programmen #
***********************************

*(Elektronen-Stoß-Scan-Messungen)*

             09.May.2012 K. Huber, Strahlenzentrum Univ. Gießen
             Version 13.Mai.2020

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

Diese Anleitung zu den ECF-Programmen 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:

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

2 Aufgabe der ECF-Programme
***************************

Die Steuerung einer Scan-Messung durch das ESS-Messprogramm erfolgt
durch einen Experiment-Steuer-File (ECFile).  Eine ESS-Messung besteht
aus einer Serie von Messintervallen, wobei für jedes Messintervall die
Kanalnummer, die Mess- und Pausenzeit, die Elektronenenergie usw.  über
sieben Interfaces im Control-Routing durch den ECFile vorgegeben werden:
   * eines für die Ausgabe der aktuellen Kanalnummer
   * drei DAC-Interfaces für die Elektronenenergie
   * zwei Timer für Mess- und Pausenzeit
   * einer programmierbaren Zeitbasis
Die Anordnung der Interface-Karten im Control-Routing ist durch die in
ESS programmierte Anfangsnormierung festgelegt und muss zu dem vom
Benutzer zu erstellenden Experiment-Steuer-File passen.

Der Ablauf einer Scan-Messung ist in der Anleitung zum ESS-Programm
ausführlich beschrieben.

3 Bedienung der ECF-Programme
*****************************

Die Programme sind 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.

        -- ECF Menüs --

3.1 ECF Top-Menü
================

Beim Start des ECF-Programmes wird das Top-Menü übersprungen und gleich
die Parametereingabe (see Make ECF File.)  aufgerufen.  Das Top-Menü
steht am Ende für weitere Aufgaben zur Verfügung.

3.1.1 Exit ECF
--------------

Verlassen des Programmes.

3.1.2 Make ECF File
-------------------

Für jeden Scan-Typ ist ein eigener Parametersatz einzugeben, der den
Ablauf der Messung steuert.  Unter anderem sind Anzahl der Kanäle,
Anfangs- und Endenergie, Zeitbasis 4.Spektrum sowie Pausen- und Messzeit
anzugeben.  Das ECF-Programm erzeugt daraus den ECFile und berechnet
einige Daten, die für die Durchführung der Messung von Interesse sind:

     Duty cycle:        Tastverhältnis des Scans
     Round trip time:   Gesamtzeit eines Scan-Durchlaufes
       Pause time:      Anteil der Pausenzeit an der Gesamtzeit
       Gate time:       Anteil der Messzeit an der Gesamtzeit
       FUG wait time:   Anteil der Wartezeit auf das FUG an der Gesamtzeit
       IT sevice time:  Anteil der Interrupt-Service-Zeit an der Gesamtzeit
     Max time error:    der Fehler im (4.) Messzeitspektrum ist abhängig von
                        der eingestellten Zeitbasis und der Messzeit.

   (see ECF-Programme des EXEIS-Experimentes.)

3.1.3 Delete File
-----------------

Eine existierende ECF-Datei wird gelöscht (auf dem Host-Rechner), die
Daten sind verloren.

3.1.4 Execute shell command
---------------------------

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

3.1.5 Set configuration
-----------------------

Führt zum ECF Konfigurations-Menü.  (see ECF Konfigurations-Menü.)

3.1.6 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 ECF 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.2.1 Return
------------

Rückkehr zum Top-Menü.

3.2.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.2.3 Control Routing addresses
-------------------------------

Festlegen der Steckplatz abhängigen Registeradressen für die einzelnen
Steuerfunktionen.

   Zur Zeit (10.Mai.2012) sind folgende Control-Routing-Adressen
aktuell:
       0x10  DAC1: Sollwert fein, Bereich 0...256 V
       0x11  DAC2: Sollwert grob, Bereich 0...2048 V
       0x12  DAC3: FUG750-1500, Bereich 0...1500 V
       0x13  Kanalnummer; 16 Bit parallel (20 pol. Stecker)
       0x14  Timer Gatezeit
       0x15  Timer Pausenzeit
       0x16  Zeitbasis 4. Spektrum

3.2.4 FUG and e-Gun parameters
------------------------------

Diese Parameter beschreiben das Verhalten des FUG750-1500 Netzgerätes
bei Spannungsänderungen.  Die vorgeschlagenen Werte haben ein brauchbar
glattes Fahrverhalten ergeben.  (see FUG750-1500.)

4 ECF-Programme des EXEIS-Experimentes
**************************************

4.1 Aufgaben und Funktion
=========================

4.1.1 Release Notes
-------------------

   *Start und Ende*
Beim Start wird erwartet, dass die aktuelle Elektronenenergie auf null
steht.  Am Ende eines Scans wird sie auf null gefahren.  Es ist dringend
zu empfehlen bei unbekanntem Vorleben, vor Anschalten der Hochspannung,
mit dem ESW-Programm die Energie auf null zu stellen, da die DACs
Zufallswerte haben könnten, die zu einer Übersteuerung und Beschädigung
des KEPCO führen.

   *Überläufe der 16-Bit-Zähler*
Die Gefahr von Überläufen der 16-Bit-Zähler für Ströme und Zeittakt
besteht nicht mehr, da die Datenübertragung abhängig vom Zeittakt alle
50 bzw 100ms erfolgt statt nur bei jedem Kanalwechsel.  Dadurch werden
beliebig lange Messzeiten pro Kanal möglich.

4.1.2 Aufgaben
--------------

Die Steuerung einer Scan-Messung durch das ESS-Messprogramm erfolgt
durch einen Experiment-Steuer-File (ECFile).  Eine ESS-Messung besteht
aus einer Serie von Messintervallen, wobei für jedes Messintervall die
Kanalnummer, die Mess- und Pausenzeit, die Elektronenenergie usw.  über
sieben Interfaces im Control-Routing durch den ECFile vorgegeben werden:
   * eines für die Ausgabe der aktuellen Kanalnummer
   * drei DAC-Interfaces für die Elektronenenergie
   * zwei Timer für Mess- und Pausenzeit
   * einer programmierbaren Zeitbasis
Der Ablauf einer Scan-Messung ist in der Anleitung zum ESS-Programm
ausführlich beschrieben.

4.1.3 Funktion
--------------

Beim EXEIS-Experiment wird die Kathodenspannung der Elektronenkanone als
Summe eines langsamen FUG- und eines schnellen KEPCO-Netzgerätes
erzeugt.  Der Sollwert der Kathodenspannung wird durch DAC1 (fein) und
DAC2 (grob) vorgegeben.  Die FUG-Spannung wird durch DAC3 eingestellt.
Über eine Rückkopplung mittels Messwiderstand wird das KEPCO geregelt,
um den Sollwert einzustellen.  Da das KEPCO aber nur einen Spannungshub
von +-100V besitzt muss das FUG Netzgerät stets so eingestellt werden,
dass das KEPCO nicht übersteuert.
Die Stangenspannung beträgt -0.3 der Kathodenspannung.  Dieses
Verhältnis ist hardwaremäßig fest eingestellt.

   Anfangs war geplant, zu Beginn einer Messung das FUG auf einen festen
Wert zu programmieren und den Scan in den Grenzen des KEPCO
durchzuführen (ECFscn).  Inzwischen besteht der Bedarf, einen größeren
Energiebereich zu scannen als das KEPCO erlaubt (ECFscl) bzw.  zwei
getrennte Energiebereiche während einer Messung zu scannen (ECFscd).
Dies macht es erforderlich auch das FUG möglichst schnell auf einen
passenden Wert zu fahren.  Da das FUG für eine solche Aufgabe
offensichtlich nicht entwickelt wurde, ist sein Verhalten bei solchen
Aktionen recht unfreundlich (see FUG750-1500.).

4.1.4 Check der Eingaben
------------------------

     MINE:   min.  Elektronen-Energie
     MAXE:   max.  Elektronen-Energie

   * Es wird geprüft, ob MINE < MAXE ist.
   * Die Eingabewerte für MINE und MAXE sind auf die Hard Limits der
     Spannungsversorgungen begrenzt.
   * Falls für MAXE das Soft Limit (Überspannungs-Schutz) überschritten
     wird, gibt's eine Warnung und bei der nächsten Eingabebestätigung
     wird der Wert übernommen.
   * Die DAC1- und DAC2-Werte werden für MINE berechnet, was aber nur
     innerhalb der Auflösung von DAC1 genau ist.  Deshalb wird MINE
     rückgerechnet und bei einer Änderung mit einer Warnung zur
     Bestätigung wieder ausgegeben.  Dies jedoch nur, wenn die Änderung
     eine vorgegebene Genauigkeiten überschreitet.
   * Aus der Differenz MAXE-MINE werden ganzzahlige Schritte >0 für den
     DAC1 berechnet, falls nötig durch Anpassung von MAXE und der
     Kanalzahl.  Wobei Änderungen stets durch eine nochmaligen Eingabe
     bestätigt werden müssen.

4.1.5 Kathodenspannung
----------------------

   *Spannungseinstellung*
Mit den DACs 1 und 2 wird der Sollwert für die Kathodenspannung
vorgegeben.  Der Sollwert ergibt sich als die Summe der von DAC 1 (fein)
und 2 (grob) eingestellten Spannungen, d.h.  zu maximal 2304 V. Über die
Rückkopplung mittels Messwiderstand versucht das KEPCO den Sollwert
einzustellen.  Da das KEPCO aber nur einen Spannungshub von +-100V
besitzt wird das FUG Netzgerät, das die Basisspannung liefert, mit DAC 3
um +-10V nachgeführt sobald das KEPCO +-5V erreicht (einstellbar, see
FUG750-1500.).

   *Wartezeiten*
Damit die Par/Ser-Wandlung der DAC-Daten vollständig durchgeführt werden
kann, ist eine minimale Zeit zwischen den einzelnen Ausgaben
einzuhalten, die sich aus der Übertragungsrate (DAC1/2: 2.4576MHz, DAC3:
32.768kHz) und der seriellen Datenlänge (16*8+16=144 Takte) errechnet:
DAC1/2: 0.06ms, DAC3: 4.4ms.
Ferner wird berücksichtigt, dass insbesondere das FUG zum Fahren der
Spannung Zeit benötigt.  Die FUG-Bewegungen sind optimiert und Pausen-
und Messzeiten werden bei den FUG-Wartezeiten berücksichtigt.

   *Nichtlinearitäten*
Während für das ECFscn-Programm der Scan alleine über den DAC1 gesteuert
werden kann, muss für ECFscl und ECFscd auch der DAC2-Wert verändert
werden.  Dies führt zu Sprüngen in der Linearität des Sollwertes an den
Stellen, an denen der DAC2-Wert sich ändert.  Zwei Möglichkeiten bieten
sich an:

   STEPMODE=0:
Für jeden Kanal werden DAC1 und DAC2 neu berechnet weshalb immer beide
Ungenauigkeiten (10^-5 FSR; DAC1: 2.5mV, DAC2: 20mV) eingehen.
Rechnerisch wird der Sollwert immer exakt erreicht.

   STEPMODE=1:
Wie bei den alten Scans wird der DAC2-Wert festgehalten solange der
dynamische Bereich von DAC1 nicht verlassen wird.  Damit wird eine
8-fach höhere Genauigkeit innerhalb eines dynamischen Bereichs von DAC1
erreicht (10^-5 FSR = 2.5mV). Die Übergänge zwischen den einzelnen
Bereichen mit unterschiedlichen DAC2-Werten sind jedoch mit den 8-fach
größeren Fehlern des DAC2 (10^-5 FSR = 20mV) behaftet.
Auch rechnerisch wird der Sollwert nicht immer erreicht, da FSR/8 DAC2 =
256V, jedoch nur FSR DAC1 = 255.998V wodurch der Sollwert innerhalb des
dynamischen Bereichs von DAC1 kontinuierlich von 0 bis -2mV abfällt, da
die Kanalbreite auf DAC2 bezogen ist.  Bei einem Bezug auf DAC1 würde
dies vermieden, dann würden aber die nachfolgenden Bereiche jeweils um
2mV höher liegen bis dies durch einen DAC1-Schritt (3.9mV) wieder
korrigiert werden kann.  Für Up- und Down-Scans werden die gleichen
DAC2-Werte benutzt.

Zur Zeit ist STEPMODE=1 fest einprogrammiert.

4.1.6 FUG750-1500
-----------------

Die Summe von FUG- und KEPCO-Spannung ist die Kathodenspannung.  Der
Sollwert der Kathodenspannung wird durch DAC1 (fein) und DAC2 (grob)
vorgegeben.  Die FUG-Spannung wird durch DAC3 eingestellt.  Über eine
Rückkopplung mittels Messwiderstand wird das KEPCO geregelt, um den
Sollwert einzustellen.  Da das KEPCO aber nur einen Spannungshub von
+-100V besitzt muss das FUG Netzgerät stets so eingestellt werden, dass
das KEPCO nicht übersteuert.

   Sowohl ECFscd als auch ECFscl erlauben einen ausgedehnten
Scan-Bereich der die Grenzen des KEPCO-Gerätes überschreitet, so dass
auch das FUG zum Scan beitragen muss.  Da dieses jedoch für schnelle
Spannungsänderungen offensichtlich nicht gebaut ist, muss mit
Extrapausen, abhängig von der Last, der Änderungsrichtung und der
aktuellen Spannung, auf das FUG gewartet werden.  Ziel war es, die
Steuerung des FUG so zu optimieren, dass das KEPCO nicht übersteuert
aber auch keine Zeit unnötig verschenkt wird.  Mit den folgenden 15
Parametern, die über das Konfigurationsmenü angepasst werden können, ist
eine recht brauchbare Einstellung möglich:

       Gun current at 1kV         450 [mA]
     	Strom, den die e-Kanone bei 1kV zieht

       FUG max current            500 [mA]
     	maximaler Strom, den das FUG liefern kann

       FUG raw voltage R          108 [kOhm]
       FUG raw voltage C          232 [uF]
         RC-Werte nach der Gleichrichtung

       FUG regul. volt. R         990 [kOhm]
       FUG regul. volt. C         3.9 [uF]
         RC-Werte nach der Regelung

       FUG max FET voltage        200 [V]
         Spannungsbegrenzung für den Längstransistor

       FUG max step size           10 [V]
         Schrittweite, mit der das FUG gefahren wird

       FUG speed adjust up          5 [rel.]
         Geschwindigkeitsjustierung für das Hochfahren

       FUG speed adjust down        5 [rel.]
         Geschwindigkeitsjustierung für das Runterfahren

       FUG speed limit up         250 [V/s]
         Geschwindigkeitsbegrenzung für das Hochfahren

       FUG speed limit down       250 [V/s]
         Geschwindigkeitsbegrenzung für das Runterfahren

       FUG stumbling region low   150 [V]
         Untergrenze des 'Stolperbereichs'

       FUG stumbling region high  250 [V]
         Obergrenze des 'Stolperbereichs'

       FUG stumbling speed limit  100 [V/s]
         Geschwindigkeitsbegrenzung im 'Stolperbereich'

   Das Verhalten des FUG wird unter Anderem bestimmt durch je eine
RC-Zeit vor und nach der Regelung sowie eine Schutzfunktion für den
Längstransistor, die eine Überlastung von diesem verhindert durch
Begrenzung des Spannungsabfalls an diesem auf 200V. So geht das
Runterfahren (Abb.)  zunächst einmal recht flott mit der kleineren
RC-Zeit (4s) der geregelten Seite bis die 200V Grenze erreicht ist, um
anschließend deutlich langsamer abzufallen mit der RC-Zeit der
ungeregelten Seite (38s).  Ab 50V wird's dann rätselhafterweise noch mal
deutlich langsamer.

   Beim Hochfahren gibt es je nach Vorleben eine 'Stolperstelle'
zwischen 150V und 250V, an der das FUG eine zusätzliche 'Denkpause'
benötigt.

*Abb.: Verhalten des FUG750-1500 beim unbelasteten Herunterfahren*

4.2 ECFscn Programm
===================

ECFscn ist das ursprüngliche Programm zur Erstellung von ECFiles für
Scan-Messungen des EXEIS-Experimentes.  Diese Scans beschränken sich auf
den dynamischen Bereich des KEPCO-Netzgerätes von +-100V und benötigen
nur den DAC1 zur Energie-Sollwerteinstellung.  Da das langsame
FUG-Netzgerät mit einem konstanten Wert betrieben wird, entfallen
notwendige Wartezeiten.  Da nur der genauere DAC1 benutzt wird, sind die
Nichtlinearitäten bei der Energie/Kanal-Zuordnung geringer (see
Kathodenspannung.).  Die Messzeiten pro Kanal sind gleich.  Zum
Überdecken eines größeren Energiebereichs müssen mehrere Messungen
aneinandergefügt werden.

4.3 ECFscd Programm
===================

ECFscl ist eine Erweiterung des ECFscn Programmes auf zwei Messbereiche.
Ferner sind die beiden Scans nicht mehr an die +-100V Grenzen des
KEPKO-Netzgerätes gebunden durch Nachführen des FUG-Netzgerätes.  Im
Spektrum werden beide Messbereiche aneinander anschließend abgelegt.

4.4 ECFscl Programm
===================

ECFscl ist eine Erweiterung des ECFscn Programmes.  Durch Nachführen des
FUG-Netzgerätes sind die Scans nicht mehr an die +-100V Grenzen des
KEPKO-Netzgerätes gebunden, so dass der gesamte Energiebereich in einer
einzigen Messung erfasst werden kann.

   Die starke Abhängigkeit des Elektronenstroms von der
Elektronenenergie (E) wird berücksichtigt durch eine Anpassung der
Messzeit (T) für die einzelnen Kanäle des Spektrums mit dem freien
Parameter T0 für E = 0eV:
     T = T0 / (1 + 2000 * (E/[eV])^1.5
   Durch diese Formel werden die Messzeiten für hohe Energien
möglicherweise sehr kurz.  Dies hat zur Folge, dass die im vierten
Spektrum akkumulierte Messzeit pro Kanal deutliche Interferenzmuster
enthält, wenn für die Zeitbasis eine zu niedrige Frequenz gewählt wurde,
da sowohl Zeitbasis als auch Messzeit pro Kanal sich vom gleichen 10 MHz
Master-Takt ableiten.  Zur Kontrolle wird deshalb nach der
Parametereingabe der maximal zu erwartende Fehler im Messzeit-Spektrum
errechnet und ausgegeben.

5 Obsolete ECF-Programme
************************

5.1 ECFaux
==========

General purpose sweep control
      ECFaux.0 General purpose sweep control
      13.01.2003 K. Huber
      Direkte Programmierung der DAC-Ausgabe in Volt

5.2 ECF1h
=========

High Energy E-gun (Schwerionenanlage)
      ECF1h.2 High Energy E-gun for EX017 experiment
      27.04.1994 G. Hofmann
      30.03.2000 K. Huber:         nach C und ueberarbeitet

     Anmerkungen:
     1:   In der Originalversion (ECF1h.1) wird zur Ermittelung der
          Schrittweite der Energiebereich durch die Anzahl der Kanaele
          geteilt. Dies hat zur Folge, dass die Endenergie nicht erreicht
          wird, z.B.: max = 10, min = 0, 5 Kanaele;
          Schrittweite: 10 / 5 = 2  ==>  5 Kanaele: 0, 2, 4, 6, 8
          Loesungen alle unbefriedigend:
                  durch Kanaele-1 teilen ergibt krumme Schrittweiten;
                  Anzahl der Kanaele um 1 erhoehen ergibt Fragen;
                  alles so lassen ergibt gerade bei wenig Kanaelen
                  auch Ueberraschungen. Was nun?
          Loesung (11.01.01):
                  EXEIS arbeitet mit K-1 Kanaelen. Um gemeinsame Auswerte-
                  Programme verwenden zu koennen deshalb mit dem Start der
                  VME-Systeme auch fuer EX017 K-1!

     2: Funktion der Kanonen-Spannumgsversorgung
        ----------------------------------------
        Mit den DACs 1 und 2 wird ein Sollwert fuer die Kathoden-
        spannung vorgegeben. Der Sollwert ergibt sich als die Summe
        der von DAC 1 (fein) und 2 (grob) eingestellten Spannungen, d.h.
        zu maximal 6809.5 V. Ueber die Rueckkopplung mittels Messwiderstand
        versucht das KEPCO den Sollwert einzustellen. Da das KEPCO
        aber nur einen Spannungshub von +-100V besitzt muss zunaechst
        das aufgestockte FUG Netzgeraet mit DAC 3 in die Naehe des
        Sollwertes gestellt werden. Die FUG-Spannung wird dabei so
        gewaehlt, dass fuer einen Scan der maximale Spannungshub des KEPCO
        zur Verfuegung steht. Die Stangenspannung betraegt -0.3 der
        Kathodenspannung. Dieses Verhaeltnis ist hardwaremaessig fest
        eingestellt.
        Der Startpunkt fuer den Scan wird mit DAC 2 eingestellt und ist nur
        auf ein LSB von DAC2 genau. Der Scan wird mit DAC1 durchgefuehrt und
        ist relativ 8 mal genauer, absolut jedoch nicht, was fuer die Scan-
        Messung OK ist.

     3: Check und Anpassung der Eingaben
        --------------------------------
        MINE: min. Elektronen-Energie
        MAXE: max. Elektronen-Energie

        Es wird geprueft, ob MINE < MAXE ist.
        Der Eingabewert fuer MINE und MAXE ist auf die Hard
        Limits der Spannungsversorgungen begrenzt. Das obere Hardlimit
        von DAC1 muss so gewaehlt werden, dass noch die fein Einstellung
        von MINE durch DAC1 moeglich ist.
        Falls fuer MAXE das Soft Limit (Ueberspannungs-Schutz) ueberschritten
        wird, gibt's eine Warnung und bei der naechsten Eingabebestaetigung
        wird der Wert uebernommen.
        MINE wird mittels DAC2 grob und DAC1 fein eingestellt, was aber nur
        innerhalb der Aufloesung von DAC1 genau ist. Deshalb wird MINE
        rueckgerechnet und bei einer Aenderung mit einer Warnung zur
        Bestaetigung wieder ausgegeben. Dies jedoch nur, wenn die Aenderung
        nicht durch eine der begrenzenden Genauigkeiten (ENGY_ACCRCY,
        FLT_EPSILON) verloren geht.
        Aus der Differenz MAXE-MINE werden ganzzahlige Schritte >0 fuer
        den DAC1 berechnet, falls noetig durch Anpassung von MAXE und
        der Kanalzahl. Wobei Aenderungen stets durch eine nochmaligen Eingabe
        bestaetigt werden muessen.
        Fuer die gewuenschte Kanalnummer wird unter Beruecksichtigung der
        Aufloesung der DACs eine moegliche Startenergie und die zugehoerige
        Kanalnummer fuer den Start des anschliessenden Scans errechnet.

5.3 ECF1l
=========

Low Energy E-gun (Schwerionenanlage)
      ECF1l.2 High Current E-gun for EX017 experiment
      03.05.1989 G. Hofmann
      30.03.2000 K. Huber:         nach C und ueberarbeitet

     Anmerkungen:
     1:   In der Originalversion (ECF1l.1) wird zur Ermittelung der
          Schrittweite der Energiebereich durch die Anzahl der Kanaele
          geteilt. Dies hat zur Folge, dass die Endenergie nicht erreicht
          wird, z.B.: max = 10, min = 0, 5 Kanaele;
          Schrittweite: 10 / 5 = 2  ==>  5 Kanaele: 0, 2, 4, 6, 8
          Loesungen alle unbefriedigend:
                  durch Kanaele-1 teilen ergibt krumme Schrittweiten;
                  Anzahl der Kanaele um 1 erhoehen ergibt Fragen;
                  alles so lassen ergibt gerade bei wenig Kanaelen
                  auch Ueberraschungen. Was nun?
          Loesung (11.01.01):
                  EXEIS arbeitet mit K-1 Kanaelen. Um gemeinsame Auswerte-
                  Programme verwenden zu koennen deshalb mit dem Start der
                  VME-Systeme auch fuer EX017 K-1!

     2: Funktion der Kanonen-Spannungsversorgung
        ----------------------------------------
        Mit den DACs 1 und 2 wird ein Sollwert fuer die Kathoden-
        spannung vorgegeben. Der Sollwert ergibt sich als die Summe
        der von DAC 1 (fein) und 2 (grob) eingestellten Spannungen, d.h.
        zu maximal 1280 V. Ueber die Rueckkopplung mittels Messwiderstand
        versucht das KEPCO den Sollwert einzustellen. Da das KEPCO
        aber nur einen Spannungshub von +-100V besitzt muss zunaechst
        das aufgestockte FUG Netzgeraet mit DAC 3 in die Naehe des
        Sollwertes gestellt werden. Die FUG-Spannung wird dabei so
        gewaehlt, dass fuer einen Scan der maximale Spannungshub des KEPCO
        zur Verfuegung steht. Die Stangenspannung betraegt -0.3 der
        Kathodenspannung. Dieses Verhaeltnis ist hardwaremaessig fest
        eingestellt.
        Der Startpunkt fuer den Scan wird mit DAC 2 eingestellt und ist nur
        auf ein LSB von DAC2 genau. Der Scan wird mit DAC1 durchgefuehrt und
        ist relativ 8 mal genauer, absolut jedoch nicht, was fuer die Scan-
        Messung OK ist.

     3: Check und Anpassung der Eingaben
        --------------------------------
        MINE: min. Elektronen-Energie
        MAXE: max. Elektronen-Energie

        Es wird geprueft, ob MINE < MAXE ist.
        Der Eingabewert fuer MINE und MAXE ist auf die Hard
        Limits der Spannungsversorgungen begrenzt. Das obere Hardlimit
        von DAC1 muss so gewaehlt werden, dass noch die fein Einstellung
        von MINE durch DAC1 moeglich ist.
        Falls fuer MAXE das Soft Limit (Ueberspannungs-Schutz) ueberschritten
        wird, gibt's eine Warnung und bei der naechsten Eingabebestaetigung
        wird der Wert uebernommen.
        MINE wird mittels DAC2 grob und DAC1 fein eingestellt, was aber nur
        innerhalb der Aufloesung von DAC1 genau ist. Deshalb wird MINE
        rueckgerechnet und bei einer Aenderung mit einer Warnung zur
        Bestaetigung wieder ausgegeben. Dies jedoch nur, wenn die Aenderung
        nicht durch eine der begrenzenden Genauigkeiten (ENGY_ACCRCY,
        FLT_EPSILON) verloren geht.
        Aus der Differenz MAXE-MINE werden ganzzahlige Schritte >0 fuer
        den DAC1 berechnet, falls noetig durch Anpassung von MAXE und
        der Kanalzahl. Wobei Aenderungen stets durch eine nochmaligen Eingabe
        bestaetigt werden muessen.
        Fuer die gewuenschte Kanalnummer wird unter Beruecksichtigung der
        Aufloesung der DACs eine moegliche Startenergie und die zugehoerige
        Kanalnummer fuer den Start des anschliessenden Scans errechnet.

5.4 ECFef
=========

Efficiency Runs, 2nd Magnet (Schwerionenanlage)
     For a given number of loops the 2nd Magnet is switched
     between two B-fields. On each point of B-field a given
     number of measuments is done.
      20.10,1988 K. Huber
      13.08.1998 D. Hathiramani
      30.03.2000 K. Huber:         nach C und ueberarbeitet

5.5 ECFesa
==========

ESA22 Scans (Elektronenspektrometer); inzwischen in ESA22S integriert

5.6 ECFm1
=========

1st Magnet-Sweep, mass spectrum (Schwerionenanlage)
      ECFm1.0 Sweep of 1st Magnet (mass spectrum)
      20.10.1988 K. Huber
      02.06.1992 G. Hofmann
      01.07.1992 M. Stenke
      Anpassungen an Netzgeraete:
      03.08.1992 G. Hofmann:       Tekelek-Netzgeraet
      04.11.1997 D. Hathiramani:   NG-30V100A (seriell)
      17.02.1998 D. Hathiramani:   FUG-400A/25V (parallel)
      24.02.1998 D. Hathiramani:   'Gruenes' 500A/50V (parallel)
      22.05.1998 D. Hathiramani:   Heinzinger 250A/100V (seriell)
      23.11.2000 F. Scheuermann:   Heinzinger 250A/100V ((parallel)
      30.03.2000 K. Huber:         nach C und ueberarbeitet

     Anmerkungen:
     1:   In der Originalversion (ECFm1.0) wird das Magnetfeld zur Aufnahme
          der Massenspektren nicht linear gefahren sondern die DAC
          Spannung. Die DAC Schritte sind aequidistand. Der Endwert fuer
          das Magnetfeld und die Kanalzahl werden angepasst. Dies fuehrt
          zu Aufloesungsunterschieden [Gauss/channel] bis zum Faktor 2.5.
          Diese neue Version (ECFm1.1) faehrt das Magnetfeld linear. Es werden
          jedoch durch die Umrechnung und Rundung in die Integer-DAC-Werte
          Aufloesungsfehler von +-.5 DAC-Einheiten gemacht.
          Die Originalversion ist als Info noch erhalten (OLDVERSION).
     2:   In der Originalversion (ECFm1.0) wird zur Ermittelung der
          Schrittweite der Magnetfeldbereich durch die Anzahl der Kanaele
          geteilt. Dies hat zur Folge, dass das Endmagnetfeld nicht erreicht
          wird, z.B.: max = 10, min = 0, 5 Kanaele;
          Schrittweite: 10 / 5 = 2  ==>  5 Kanaele: 0, 2, 4, 6, 8
          Loesungen alle unbefriedigend:
                  durch Kanaele+1 teilen ergibt krumme Schrittweiten;
                  Anzahl der Kanaele um 1 erhoehen ergibt Fragen;
                  alles so lassen ergibt gerade bei wenig Kanaelen
                  auch Ueberraschungen. Was nun?

5.7 ECFm2
=========

2nd Magnet-Sweep, signal spectrum (Schwerionenanlage)
      ECFm2.0 Sweep of 2nd Magnet (signal spectrum)
      20.10,1988 K. Huber
      02.06.1992 G. Hofmann
      Neue Kalibrierung der Magnetsteuerung 11.11.97 D.Hathiramani
      Anpassung auf FUG-400A/25V Netzgeraet 18.02.98 D.Hathiramani
      Anpassung auf Tekelec NG30V/100A 24.11.2000 F.Scheuermann
      30.03.2000 K. Huber:         nach C und ueberarbeitet

     Anmerkungen:
     1:   In der Originalversion (ECFm2.0) wird das Magnetfeld zur Aufnahme
          der Massenspektren nicht linear gefahren sondern die DAC
          Spannung. Die DAC Schritte sind aequidistand. Der Endwert fuer
          das Magnetfeld und die Kanalzahl werden angepasst. Dies fuehrt
          zu Aufloesungsunterschieden [Gauss/channel] bis zum Faktor 2.5.
          Diese neue Version (ECFm2.1) faehrt das Magnetfeld linear. Es werden
          jedoch durch die Umrechnung und Rundung in die Integer-DAC-Werte
          Aufloesungsfehler von +-.5 DAC-Einheiten gemacht.
          Die Originalversion ist als Info noch erhalten (OLDVERSION).
     2:   In der Originalversion (ECFm2.0) wird zur Ermittelung der
          Schrittweite der Magnetfeldbereich durch die Anzahl der Kanaele
          geteilt. Dies hat zur Folge, dass das Endmagnetfeld nicht erreicht
          wird, z.B.: max = 10, min = 0, 5 Kanaele;
          Schrittweite: 10 / 5 = 2  ==>  5 Kanaele: 0, 2, 4, 6, 8
          Loesungen alle unbefriedigend:
                  durch Kanaele+1 teilen ergibt krumme Schrittweiten;
                  Anzahl der Kanaele um 1 erhoehen ergibt Fragen;
                  alles so lassen ergibt gerade bei wenig Kanaelen
                  auch Ueberraschungen. Was nun?

6 ECF-Hilfsprogramme
********************

6.1 ECFshow
===========

ECFshow prüft ECFiles auf formale Fehler und stellt deren Daten zur
Kontrolle auf dem Bildschirm dar.

6.2 ECFtst
==========

ECFtst spricht das Control Routing Test Board an.  Es erzeugt mit Hilfe
des Test Boards in einer Schleife eine vorgebbare Anzahl von Interrupts
mit vorgebbaren Pausen.  Nach jedem Schleifendurchlauf kann eine
zusätzliche Pausenzeit angegeben werden.  ECFtst dient z.B. der
Untersuchung des Interrupt-Verhaltens des Systems.  ECFtst verwendet
einen speziellen ECF-Modus (see ECF-Steuer-Bytes.).

7 Experiment-Control-File
*************************

Für jede ESS-Messung muss ein Experiment-Control-File existieren, in dem
gleichen Verzeichnis wie das zu messende Spektrum und mit dem gleichen
Namen, jedoch mit der File-Extension .ecf .
     z. B.	Spektrum:	ssss.xxx
     	Kontroll-File:	ssss.ecf

7.1 ECF-Header
==============

Der EC-File besitzt wie ein Spektrum einen Header-Block am Anfang (1024
Bytes).  Im Standardteil des Headers wird folgende Parameterbelegung
erwartet:
     Param.
       2	Header-Länge:		2
       4	Programm-Identif.:	ECFn	(n=1,2,3,...: ECF-Klasse)
      13	Bytes/Channel:		1

   Anschliessend an den Standardteil des Headers folgt je nach
ECF-Klasse noch ein spezieller Parametersatz:

   *ECF1-Header*
       char guntyp[4];                 /* Gun type number */
       char commnt[32];                /* Comment for gun type */
       char length[16];                /* Length of data set (bytes) */
       char ecftyp[16];                /* ECF type */
       char chans[16];                 /* Number of channels spectrum */
       char mine[16];                  /* Min. energy */
       char maxe[16];                  /* Max. energy */
       char sttime[16];                /* Startup waiting time */
       char offtime[16];               /* Pause time */
       char ontime[16];                /* Run time */
       char txtptr[8];                 /* Position of text for ecfshow */
       char showtxt[512];              /* Text for ecfshow program */

   *ECF2-Header*
       char guntyp[4];                 /* Gun type number */
       char commnt[32];                /* Comment for gun type */
       char length[16];                /* Length of data set (bytes) */
       char ecftyp[16];                /* ECF type */
       char chans1[16],chans2[16];     /* Number of channels spectrum */
       char mine1[16],mine2[16];       /* Min. energy */
       char maxe1[16],maxe2[16];       /* Max. energy */
       char sttime1[16],sttime2[16];   /* Startup waiting time */
       char offtime1[16],offtime2[16]; /* Pause time */
       char ontime1[16],ontime2[16];   /* Run time */
       char timbase[8];                /* Time base */
       char txtptr[8];                 /* Position of text for ecfshow */
       char showtxt[512];              /* Text for ecfshow program */

   *ECF3-Header*
       char guntyp[4];                 /* Gun type number */
       char commnt[32];                /* Comment for gun type */
       char length[16];                /* Length of data set (bytes) */
       char ecftyp[16];                /* ECF type */
       char chans[16];                 /* Number of channels spectrum */
       char mine[16];                  /* Min. energy */
       char maxe[16];                  /* Max. energy */
       char sttime[16];                /* Startup waiting time */
       char offtime[16];               /* Pause time */
       char ontime[16];                /* Run time */
       char timbase[8];                /* Time base */
       char txtptr[8];                 /* Position of text for ecfshow */
       char showtxt[512];              /* Text for ecfshow program */

7.2 ECF-Steuer-Bytes
====================

*Adress-Block*
Die Steuerdaten beginnen nach dem Header-Block mit der Definition aller
anzusprechenden Control-Routing-Adressen.  Das erste Byte enthält in den
ersten beiden Bits eine Modus-Information und anschließend die Anzahl
der folgenden Interface-Adressen und die folgenden Bytes enthalten die
Interface-Adressen selber.
     Byte 0: mmnnnnnn
        Modus mm:
           0  Es werden immer alle Adressen ausgegeben, in den Scan-Blocks
              müssen nur die Änderungen enthalten sein.
           1  Spezieller Modus für Tests mit dem Control Routing Test Board.
           2  Es werden nur die in den Scan-Blocks enthaltenen Daten ausgegeben.
           3  unbenutzt
     Beispiel für Modus 0
        2      /* Length of address list */
        0x40   /* Address timer modul */
        0x41   /* Address interrupt modul */

   *Startup-Blocks*
Danach folgen die Startup-Blocks, mit denen alle Parameter nach und nach
auf ihren Anfangswert gesetzt werden können.  Ein solcher Parametersatz
beginnt mit der Anzahl der zu verändernden Parameter (1 Byte), dann der
Position 0,1,...  des ersten Parameters in der zu Beginn definierten
Adressenliste (1 Byte) und dann den auszugebenden Parameterwert (2
Bytes, mit dem low Byte zuerst).  Die Anfangsnormierung muss mit dem
Steuer-Byte 0xf1 abgeschlossen werden, wenn mehr als ein Startup-Block
benötigt wird.  Mindestens ein Startup-Block muss vorhanden sein.
     Beispiel Anfangsnormierung
        2      /* Number of commands */
        0      /* Position in address list */
        0xFA   /* }(low byte) Timer=.5ms */
        0x01   /* }(high byte) */
        1      /* Position in address list */
        0xA5   /* }(low byte) Test */
        0xA5   /* }(high byte) */

        0xf1   /* End of Startup */

   *Scan-Blocks*
Anschließend folgt für jedes Messintervall ein Parametersatz, der nur
alle zu verändernden Parameter enthalten braucht, jedoch mindestens
einen Parameter.  Je nach Modus werden an das Experiment immer alle zu
Beginn definierten Parameter ausgegeben (Modus 0, 1) oder nur die im
Scan-Block enthaltenen (Modus 2).  Der Aufbau ist der gleiche wie bei
den Startup-Blocks.
     1. Messintervall
        1     /* Number of commands */
        0     /* Position in address list */
        0xFA	 /* }(low byte) Timer=.5ms */
        0x01  /* }(high byte) */

     2. Messintervall
        1     /* Number of commands */
        0     /* Position in address list */
        0xFA  /* }(low byte) Timer=.5ms */
        0x01  /* }(high byte) */
   Die Folge der Scan-Blocks muss mit einem der folgenden Steuer-Bytes
enden:
     Modus 0, 1:
        0x00   /* End of ECFile, loop to first Scan-Block or stop */
                  Es wird ein neuer Scan-Durchlauf gestartet oder
                  wenn im vorherigen Durchlauf die Messung gestoppt
                  wurde dann wird sie an dieser Stelle beendet.
        0xff   /* Stop Scan */
                  Die Messung wird beendet und die Meldung 'Experiment stopped
                  by EC-File' ausgegeben.

     Modus 2:
        0xf2   /* Loop to first Scan-Block or start Cooldown */
                  Es wird ein neuer Scan-Durchlauf gestartet oder
                  wenn im vorherigen Durchlauf die Messung gestoppt
                  wurde dann wird das nachfolgende Cooldown durchgefürt.
        0xff   /* Stop Scan */
                  Die Messung wird beendet und die Meldung 'Experiment stopped
                  by EC-File' ausgegeben.

   *Cooldown-Blocks*
Mit dem Cooldown kann das Experiment auf einen Ruhepunkt gefahren
werden.  Der Aufbau der Cooldown-Blocks ist der gleiche wie bei den
Scan-Blocks.  Die Folge der Cooldown-Blocks muss mit einem der folgenden
Steuer-Bytes enden:
     Modus 0, 1:  kein Cooldown möglich!

     Modus 2:
        0x00   /* End of ECFile, stop */
                  Die Messung wird beendet.
        0xff   /* Stop Scan */
                  Die Messung wird beendet und die Meldung 'Experiment stopped
                  by EC-File' ausgegeben.

   Ein EC-File muss mindestens eine Adressendefinition, eine
Anfangsnormierung und ein Messintervall enthalten.

   Die EC-Files werden vor der Ausführung vom ESS-Messprogramm auf
formale Fehler geprüft.

   *Spezielle Kommandos Modus 1 *
     0x80 0xtt     /* Delay for tests [0xtt*10ms] */
     0x81 0xaa     /* Read test board address 0xaa */

8 ESS-Header
************

Die ESS-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 zur Beschreibung und Auswertung des Experimentes.

   *Struktur der Header Daten:*
     Plattformabhängige Definitionen:
     UINT2: 2 Bytes "unsigned int"
     UINT4: 4 Bytes "unsigned int"
     REAL4: 4 Bytes "float"

     typedef union {
         struct {
             struct {
                 char idhdr[8];      /* Identification of header: "STRZ-VXW" */
                 char hdlen[1];      /* Length of header: "1" */
                 char expmnt[6];     /* Experiment */
                 char idprg[8];      /* ID of generating Program: "ESS " */
                 char stdat[9];      /* Date of start */
                 char sttim[8];      /* Time of start */
                 char spdat[9];      /* Date of stop */
                 char sptim[8];      /* Time of stop */
                 char spenam[8];     /* Name of spectrum */
                 char sptype[4];     /* Type of spectrum: "MCA2" */
                 char rows[6];       /* Number of rows: "     4" */
                 char cols[6];       /* Channels/row: " <var>" */
                 char bytes[1];      /* Bytes/channel: "4" */
                 char hdfree[4];     /* First free byte in header (0,...) */
                 char resrv[38];     /* Reserved */
                 char ltxt[4];       /* Length of text: "80" */
                 char text[80];      /* Text */
             } stddat;   /* Standard data of header */
             struct {
                 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 bovcnt;       /* Buffer overruns */
                 UINT4 rejcnt;       /* Rejected data */
                 UINT4 errcnt;       /* Error counter */
                 UINT4 fulcnt;       /* Fifo full counter */
                 UINT4 hdatid;       /* Data identification */
                 UINT2 staplo;       /* Status of plot */
                 UINT2 slen;         /* Length of single spectrum  */
                 REAL4 expar[14];    /* Extended ESS parameters */
                 char ecfprg[12];    /* Version of ECF program */
                 UINT2 guntyp;       /* Gun type */
                 char guntxt[32];    /* Gun type comment */
                 REAL4 gunpar[10];   /* Gun parameters */
                 REAL4 deadtm;       /* Deadtime of event counter [10^-6s] */
                 REAL4 dtmerr;       /* Error deadtime of event counter [10^-6s] */
                 UINT4 runtim;       /* Realtime to run experiment [s] */
                 REAL4 expar2[20];   /* Extended ESS parameters 2 */
             } spcdat;   /* Special data of header */
         } hdata;        /* Header data */
         struct {
             char h512[512];         /* Fill 512 bytes block */
         } htotal;        /* Total header */
     } HEADER;

ESS übernimmt aus dem Header des ECFiles die speziellen Daten des Scans
und macht sie für die Auswertung zugänglich indem es sie in die
Parameter expar[] und expar2[] des ESS-Headers übeträgt.  Es existieren
zur Zeit drei Klassen von Scans: ECF1 - ECF3, die sich in der Belegung
des Feldes expar2[] unterscheiden.  Weitere Klassen könnten, falls
erforderlich, hinzukommen.

   *ECF-Klassen:*
Für die Auswertung sollten die Klassen ECF1 und ECF3 sich nicht
unterscheiden.  Der Unterschied besteht im Wesentlichen darin, dass in
Klasse ECF1 die Zeitbasis fest auf 1 (=500kHz) gesetzt wird, während in
den Klassen ECF2 und ECF3 die Zeitbasis bei der Generierung des ECFiles
anzugeben ist.
  Klasse      ECF-Programme
-------------------------------------------------------------------------
  ECF1        ECFscn.4, ECFscd ohne expar2[], Oldies
  ECF2        ECFscd.2
  ECF3        ECFscn.5, ECFscl, ECFscl.2

   *Experiment-Parameter:*
Einige Parameter sind in mehreren Feldelement zu finden um mit älteren
Versionen verträglich zu sein.
     -  Feldelement unbelegt
     x  Feldelement belegt
     0  Feldelement mit 0 belegt
              ECF1    ECF2    ECF3
----------------------------------------------------------------------------------
  expar[0]    x       x       x       Min.  energy 1 [eV]
  expar[1]    x       x       x       Max.  energy 1 [eV]
  expar[2]    x       x       x       Ion Charge [q]
  expar[3]    x       x       x       Ion mass [amu]
  expar[4]    x       x       x       Ion energy [keV]
  expar[5]    x       x       x       Efficiency [%]
  expar[6]    x       x       x       Time base spectrum 4
  expar[7]    x       x       x       El.  curr.  conv.  range
  expar[8]    x       x       x       El.  curr.  conv.  FS. const.
  expar[9]    x       x       x       Ion curr.  conv.  range
  expar[10]   x       x       x       Ion curr.  conv.  FS. const.
  expar[11]   x       x       x       Startup time 1 [s]
  expar[12]   x       x       x       Pause time 1 [ms]
  expar[13]   x       x       x       Gate time 1 [ms]
  expar2[0]   -       x       x       Number of channels 1
  expar2[1]   -       x       0       Number of channels 2
  expar2[2]   -       x       x       Min.  energy 1 [eV]
  expar2[3]   -       x       0       Min.  energy 2 [eV]
  expar2[4]   -       x       x       Max.  energy 1 [eV]
  expar2[5]   -       x       0       Max.  energy 2 [eV]
  expar2[6]   -       x       x       Startup time 1 [s]
  expar2[7]   -       x       0       Startup time 2 [s]
  expar2[8]   -       x       x       Pause time 1 [ms]
  expar2[9]   -       x       0       Pause time 2 [ms]
  expar2[10]  -       x       x       Gate time 1 [ms]
  expar2[11]  -       x       0       Gate time 2 [ms]