Next: , Up: (index)

# Iseg-HV-Geräte Kontroll-/Testprogramm #

(Testergebnisse für: EHQ-8210n, NHS-6230n, EHS-8230n-F)


     16.Mar.2016 K. Huber, Strahlenzentrum Univ. Gießen
     Version 11.Jul.2016



Next: , Previous: Readme, Up: Top

1 Funktion von IsegHV


Das IsegHV Programm dient dem Testen der Iseg-HV Geräte und der CAN-Bus-Verbindung zum Steuern dieser Geräte.

Mit dem IsegHV Programm wurde das Verhalten der Iseg-HV Geräte beim Programm gesteuerten Fahren der Hochspannung untersucht. Dazu existieren einige Testroutinen. Ferner können damit die Iseg-HV Geräte konfiguriert werden, also z.B. die Spannungen der einzelnen Kanäle eingestellt und der Status abgefragt werden.

Die Iseg-HV Geräte können sowohl über das Standard-Control-Routing mit CAN-Interface als auch über das VME-CAN-Interface i4000 gesteuert werden. Das IsegHV Programm erkennt ob das angesprochene Gerät das neuere EDCMP-Protokoll versteht (s.h. Iseg-Manuals) und verwendet ggf. dieses. Andernfalls wird versucht mit dem älteren DCMP-Protokoll Verbindung aufzunehmnen.


Die Hard- und Software Voraussetzungen sind:


Next: , Previous: Funktion von IsegHV, Up: Top

2 Bedienung von IsegHV

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.

--- IsegHV Top-Menü ---

--- Konfigurations-Menü ---
Select CAN Controller

--- CAN Controller Menü ---
Test SJA1000 CAN Controller

--- Iseg HV Module Menü ---
Iseg HV CAN Control IsegHV CAN ID (0 - 63) = 0x3f


Next: , Previous: Exit IsegHV, Up: Bedienung von IsegHV

2.1 Set configuration

Das Konfigurations-Menü muss zu Beginn einmal durchlaufen werden. Für die verwendeten VME-Module müssen die Basisadressen angegeben werden. Dazu wird eine Übersicht des Address-Mapping auf dem VME-Bus ausgegeben.


2.1.1 Bosch CC770 on Routing Board

Der CC770 ist auf einer Steckkarte im Control Routing untergebracht, das über ein VME VIPC610 oder IPC01 Interface mit dem Laborrechner verbunden ist. Es ist die Basisadresse des Anschluss B des VME-Interfaces einzutragen z.B.:

      Interface       Basisadresse
     VIPC610 IP B      0xFFFF6100
     IPC01 IP B        0xFFFF6500

Ferner muss für den CC770 noch die Steckplatz ID (0 - 7) im Control Routing angegeben werden.


2.1.2 Philips SJA1000 on VME Board i4000

Der SJA1000 befindet sich auf einem i4000 VME-Board, dessen Basisadresse angegeben werden muss z.B.:

         Interface      Basisadresse
     i4000 CAN Carrier   0xFFFF6100

Ferner muss noch eingetragen werden welches Modul des i4000 (0 - 3) verwendet wird.


Next: , Previous: Set configuration, Up: Bedienung von IsegHV

2.2 CAN Controller

Je nach dem welcher CAN Controller (CC770 oder SJA1000) zum Einsatz kommt, stehen unterschiedliche Funktionen für Kontroll- und Testaufgaben zur Verfügung.


2.2.1 CC770 CAN-Controller Menü

Diese Funktionen bieten den direkten Zugriff zu dem CC770 Controller. Eine Kenntnis von dessen Arbeitsweise ist deshalb notwendig (s.h. Bosch: CC770 Target Specification).

         CC770 Controller Registeradressen
     0x00    Control
     0x01    Status
     0x02    CPU Interface
     0x03    reserved
     0x04-05 High Speed Read
     0x06-07 Global Mask - Standard
     0x08-0b Global Mask - Extended
     0x0c-0f Message 15 Mask
     0x1f    ClkOut
     0x2f    Bus Configuration
     0x3f    Bit Timing 0
     0x4f    Bit Timing 1
     0x5f    Interrupt
     0x6f    Receive Error Counter
     0x7f    Transmit Error Counter
     0x8f    reserved
     0x9f    P1 Configuration
     0xaf    P2 Configuration
     0xbf    P1 In
     0xcf    P2 In
     0xdf    P1 Out
     0xef    P2 Out
     0xff    Serial Reset Address
     0xN0-Ne Message N
         CC770 Message Register
     0    Control 0
     1    Control 1
     2    Arbitration 0
     3    Arbitration 1
     4    Arbitration 2
     5    Arbitration 3
     6    Configuration
     7-14 Data 0-7


2.2.1.1 Init CAN Controller

Reset CC770 CAN Routing Board
Mit diesem Kommando wird dem CAN Routing Board ein Resetsignal gesandt. Zuvor und nachher wird der Status des Boards ausgegeben (s.h. Controller Status).

Init CC770 CAN Controller
Mit diesem Kommando wird zunächst der CC770 Controller initialisiert und anschließend werden einige der 12 Message-Register und das Kontroll-Register mit Daten für die Kommunikation mit den Iseg-HV Geräten beschrieben. Zuvor und nachher wird der Status des CAN Controllers ausgegeben (s.h. Controller Status).

     Message    Daten
        1      NMT Start
        2      NMT Stop
        3      NMT Reset CAN
        8      Actual Voltage 0, Request
        9      Actual Voltage 0, Receive
       10      Set Voltage 0, Send
       11      Set Voltage 0, Request
       12      Set Voltage 0, Receive

Eine solche Message wird gesendet nachdem im ersten Byte der Message mittels "Write CAN Register" das Sende-Bit gesetzt wird:

     0x55 -> 0x95


2.2.1.2 Check Bus Speed

Nicht implementiert für den CC770 Controller.


2.2.1.3 Show Controller Status

Listet für den Bosch CC770 Controller auf einem Control Routing Board den Zustand aller CAN-Bus Komponenten:

     Control Routing Status
     CAN Routing-Board Status
     CC770 Status
     CC770 Kontroll-Register
     CC770 Message-Register


2.2.1.4 Send CAN Message

Baustelle!


2.2.1.5 Write CAN Register

Nach Eingabe der relativen Registeradresse (0, 1,..., s.o.) wird der aktuelle Inhalt zum Editieren angeboten. Danach erfolgt Schritt für Schritt:

     	Ausgabe des aktuellen Controller Status
     	Lesen und Ausgabe des alten Inhaltes
     	Schreiben und Ausgabe des neuen Inhaltes
     	Lesen und Ausgabe des neuen Inhaltes
     	Ausgabe des aktuellen Controller Status

Bei den Lese- und Schreiboperationen wird die absolute Registeradresse mit angezeigt.


2.2.1.6 Read CAN Register

Nach Eingabe der relativen Registeradresse (0, 1,..., s.o.) wird der Controller Status und der aktuelle Inhalt ausgegeben. Bei der Leseoperationen wird die absolute Registeradresse mit angezeigt.


2.2.1.7 Edit CAN Message

Nach Eingabe der Message-Nummer (1,...,14) können die einzelnen Bytes der Message editiert werden.


2.2.2 SJA1000 CAN-Controller Menü

Diese Funktionen bieten den direkten Zugriff zu dem SJA1000 Controller. Eine Kenntnis von dessen Arbeitsweise ist deshalb notwendig (s.h. Philips: SJA1000 Stand-alone CAN controller).


2.2.2.1 Init CAN Controller

Reset SJA1000 CAN Controller
Dieses Kommando führt auf dem SJA1000 einen Hardware Reset durch, schaltet die rote LED an und schickt ein Reset zum CAN-Bus. Der SJA1000 bleibt im Reset-Mode.

Init SJA1000 CAN Controller
Nachdem die CAN-Baud-Rate eingegeben wurde bringt dieses Kommando den SJA1000 in den PeliCAN-Betriebsmodus.
Während des Konfigurierens des SJA1000 leuchtet die rote LED (Reset Mode), danach die grüne (Operating Mode).


2.2.2.2 Check Bus Speed

In dieser Funktion horcht der Controller auf Datenverkehr auf dem CAN-Bus. Er beginnt bei 1 MBaud und reduziert die Geschwindigkeit in den gängigen Stufen (1 MBaud/n, n=1,2,4,5,8,10,20,25,40,50,100) solange bis der Empfang fehlerfrei ist. In jeder Geschwindigkeitsstufe wird maximal 10ms auf Datenverkehr gewartet. Ohne Datenverkehr kann die Baud-Rate nicht ermittelt werden. Die IsegHV-Module senden nach dem Anschalten permanent eine Login-Aufforderung.
Die grüne LED leuchtet.


2.2.2.3 Show Controller Status

Listet für den Philips SAJ1000 Controller auf dem i4000 VME Board alle im Reset- bzw. Operating-Mode zugänglichen Register:

     SAJ1000 CAN Controller Register
     SAJ1000 Mode Register
     SAJ1000 Clock Devider Register
     SAJ1000 Status Register
     SAJ1000 IT Register
     SAJ1000 Arbitration Lost Register


2.2.2.4 SJA1000 Self Tests

Mit diesen Kommandos kann die Funktion des SJA1000 und des CAN-Bus überprüft werden.

Rote und grüne LED leuchten.


2.2.2.5 Listen to CAN Messages

Mit dieser Funktion kann der Datenverkehr auf den CAN-Bus abgehört werden. Mithilfe der CAN-ID und der ID-Mask können gezielt Daten selektiert werden. Die elf Bits der CAN-ID werden in dem zweiten Byte und den ersten drei Bits des dritten Bytes angezeigt.
Die grüne LED leuchtet.


2.2.2.6 Send CAN Message

Es wird eine Message im Standard Frame Format gesandt. Frame-Byte, ID1, ID2 und Data[0-7] können editiert werden. Die Vorbelegung ist das IsegHV-Logon Kommando, nach dem die Logon-Aufforderungen für eine Weile (20s?) schweigen.
Die grüne LED leuchtet. Baustelle!


2.2.2.7 Write CAN Register

Die Register des CAN-Controllers kÖnnen einzeln beschrieben werden. Der aktuelle Inhalt wird als Vorbelegung ausgegeben.

Nach dem Start des Kommandos wird:

Als Adresse des Registers wird die VME-Bus-Adresse ausgegeben.

Je nach Zustand des Controllers (Reset-Mode / Operation-Mode) haben einige Register unterschiedliche Funktion oder können nur beschrieben oder gelesen werden.


2.2.2.8 Read CAN Register

Baustelle!


Next: , Previous: Set configuration, Up: Bedienung von IsegHV

2.3 CAN Controller

CAN-Bus Kontroll- und Test-Menü. Nicht alle Menüpunkte sind für beide Controller (CC770 und SJA1000) implementiert.


2.3.1 Return

Rückkehr zum Top-Menü.


2.3.2 Init CAN Controller

Baustelle!


2.3.3 Check Bus Speed

CC770 Routing Board
Nicht implementiert für den CC770 Controller.

i4000 VME Board
In dieser Funktion horcht der Controller auf Datenverkehr auf dem CAN-Bus. Er beginnt bei 1 MBaud und reduziert die Geschwindigkeit in den gängigen Stufen (1 MBaud/n, n=1,2,4,5,8,10,20,25,40,50,100) solange bis der Empfang fehlerfrei ist. In jeder Geschwindigkeitsstufe wird maximal 10ms auf Datenverkehr gewartet.


2.3.4 Show Controller Status

CC770 Routing Board
Listet für den Bosch CC770 Controller auf einem Control Routing Board den Zustand aller CAN-Bus Komponenten:

     Control Routing Status
     CAN Routing-Board Status
     CC770 CAN Controller Status
     CC770 CAN Controller Control-Registerinhalte
     CC770 CAN Controller Message-Registerinhalte

i4000 VME Board
Listet für den Philips SAJ1000 Controller auf dem i4000 VME Board alle Register:

     SAJ1000 CAN Controller Register
     SAJ1000 CAN Controller Mode Register
     SAJ1000 CAN Controller Clock Devider Register
     SAJ1000 CAN Controller Status Register
     SAJ1000 CAN Controller IT Register
     SAJ1000 CAN Controller Arbitration Lost Register


2.3.5 SJA1000 Self Tests

Baustelle!


2.3.6 Listen to CAN Messages

Baustelle!


2.3.7 Send CAN Message

Baustelle!


2.3.8 Write CAN Register

Baustelle!


2.3.9 Read CAN Register

Baustelle!


Next: , Previous: CAN Controller, Up: Bedienung von IsegHV

2.4 Iseg HV Module

Iseg HV Module Kontroll- und Test-Menü
Um über den CAN-Bus mit den Iseg Modulen eine Verbindung aufbauen zu können muss deren CAN-IDs angegeben werden:
IsegHV CAN ID (0x00 - 0x3f) = 0x3f
Die beiden Module im Iseg-Crate haben die IDs 0x00 bzw. 0x01. Das Modul im VME-Crate hat die ID 0x3f.


2.4.1 Return

Rückkehr zum Top-Menü.


2.4.2 Init ISEG-HV device

Baustelle!


2.4.3 Module status and events

Baustelle!


2.4.4 Module control

Baustelle!


2.4.5 Channel status and events

Baustelle!


2.4.6 Channel control

Baustelle!


2.4.7 Set voltage

Baustelle!


2.4.8 Show voltage

Baustelle!


Next: , Previous: Iseg HV Module, Up: Bedienung von IsegHV

2.5 Help

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


Next: , Previous: Control Routing addresses, Up: Set configuration

2.5.1 Electron current converter

(Projekt!)
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.


Previous: Ion current converter, Up: Set configuration

2.5.2 CAN/IsegHV parameters

Für das über den CAN-Bus gesteuerte IsegHV-Netzgerät werden die folgenden Parameter benötigt. Die in Klammer angegebenen Werte haben sich bewährt:


Previous: Bedienung von IsegHV, Up: Top

3 Test der Iseg HV-Netzgeräte

Die Iseg HV-Netzgeräte wurden entwickelt um langzeitstabile Spannungen zu liefern, nicht jedoch um Spannungen im Sekundentakt zu fahren. Nach unseren Erfahrungen mit dem Iseg8210n-505F (8 * 1kV) haben wir es zunächst mit dem von Iseg empfohlenen NHS-6230n (6 * 3kV) versucht. Die Tests waren aber recht enttäuschend obwohl Iseg sich viel Mühe gegeben hatte mit vier Firmware-Updates die entdeckten Macken zu beseitigen.
Schließlich hat uns Iseg das EHS-8230n-F (8 * 3kV) empfohlen, das für unsere Zwecke deutlich besser geeignet ist, und gegen das NHS-6230n ausgetauscht.
Die folgende Dokumentation der Tests zeigt die Eignung der Iseg HV-Netzgeräte zum Fahren von Spannungsrampen. Sie stellt einen Auszug aus dem regen Email- und Telefonverkehr mit Iseg dar.


Next: , Up: Anhang

3.1 Tests am EHQ-8210n-505F


Next: , Up: Tests EHQ8

3.1.1 Das Messverfahren

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


Next: , Previous: Messverfahren EHQ8, Up: Tests EHQ8

3.1.2 Ergebnisse

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

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

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

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

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

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

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


Previous: Ergebnisse EHQ8, Up: Tests EHQ8

3.1.3 Messdaten

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

Abb.6.1: 500V Spannungssprung

Abb.6.2: Unterschwingen bei fehlender Last

Abb.6.3: Einschwingphase

Abb.6.4: Streuung der Messwerte

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

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

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

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


Next: , Previous: Tests EHQ8, Up: Anhang

3.2 Tests am NHS-6230n


Next: , Up: Tests NHS6

3.2.1 Das Messverfahren

Die Spannungen der sechs bzw. acht Kanäle der NHS6 und EHS8 Netzgeräte wurden mit den eingebauten 24 Bit ADCs (22 Bit genutzt -> 0.715256mV Auflösung) gemessen. Die unter dem EDCP-Protokoll verwendete Floatingpoint-Darstellung der Spannungswerte hat eine Genauigkeit von 0.3576mV bei 3kV.

Der Takt, mit dem die ADCs neue Spannungswerte liefern (Sample Rate) ist in Grenzen einstellbar. Werden die ADCs in kürzeren Zeiten als den Sample-Zeiten abgefragt, so erhält man gelegentlich zweimal den selben Messwert. Eine Synchronisationsmöglichkeit mit den ADC-Zyklen ist nicht vorhanden. Zur Synchronisation der Messung mit den ADCs wurden je nach Ziel der Messung zwei unterschiedliche Verfahren benutzt. Die Zeiteinheit ist der 10ms Takt des Rechners:


Next: , Previous: Messverfahren NHS6, Up: Tests NHS6

3.2.2 Kaltstart

Das Verhalten nach dem Einschalten des NHS6 ist in der Grafik "Kaltstart" festgehalten. Nach ca. 9000s wurde die Raumtemperatur durch Öffnen des Fensters abgesenkt. Das NHS6 zeigt eine starke Abhängigkeit von der Board-Temperatur. Durch die integrierte 'Fine-Adjustment'-Funktion korrigiert das NHS6 in mehr oder weniger regelmäßigen Abständen die Ausgangsspannung was zu diesem Sägezahnverlauf führt.

Kaltstart.png


Next: , Previous: Kaltstart, Up: Tests NHS6

3.2.3 Fine-Adjustment

In der Grafik "Fine-Adjustment" sind mehrere solcher Korrekturschritte übereinander aufgezeichnet um den Spannungsverlauf während einer Fine-Adjustment-Phase zu zeigen. Sie wird nach jeder neuen Spannungseinstellung aktiviert, mittelt mehrere ADC-Messungen und korrigiert die Spannung über den DAC.
Zum Fahren einer Spannungsrampe ist die Fine-Adjustment-Funktion offensichtlich nicht brauchbar weil sie zu viel Zeit benötigt. Wir werden sie abschalten und die Regelung per Software durchführen müssen.

FineAdj.png


Next: , Previous: Fine-Adjustment, Up: Tests NHS6

3.2.4 Spannungsspitzen

Das NHS-6 wird ohne Fine Adjustment betrieben und die Spannung mittels eingebautem ADC überwacht und ggf. der Set-Wert korrigiert. Dabei gibt es immer mal wieder drastische Ausreiser mit Überspannungsalarm (grüne LED aus). Um dies näher zu untersuchen wurde das NHS-6 im 100ms Takt abwechselnd mit 100.0/100.1V programmiert und anschließend die Ist-Spannung ausgelesen und aufgezeichnet falls die Abweichung >1V war. In unregelmäßigen zeitlichen Abständen gibt es beachtliche Ausreiser. Diese Spannungsspitzen lassen sich auch am Oszilloscop beobachten.

     Messwerte 100ms Takt
       Time-tot  Time-diff   Vset         Vact
           [s]    [ms]       [V]           [V]
         11.12   11120     100.0000     -105.3799
         11.22     100     100.1000     -102.2633
         12.12     900     100.0000     -542.7143
         12.22     100     100.1000     -143.4496
         12.32     100     100.0000     -141.8372
         12.42     100     100.1000     -140.9439
         12.52     100     100.0000     -140.4428
         12.62     100     100.1000     -107.6744
         12.72     100     100.0000     -101.3366
         17.22    4500     100.1000     -105.3622
         30.02   12800     100.1000     -124.3019
         30.12     100     100.0000     -107.1177
         30.22     100     100.1000     -101.5427
         39.32    9100     100.0000     -527.5201
         39.42     100     100.1000     -143.1538
         39.52     100     100.0000     -141.7549
         39.62     100     100.1000     -140.9491
         39.72     100     100.0000     -140.4850
         39.82     100     100.1000     -107.0850
         56.42   16600     100.1000     -310.9559
         56.52     100     100.0000     -142.3383
         56.62     100     100.1000     -141.0069
         56.72     100     100.0000     -106.2659
         56.82     100     100.1000     -101.1750
        105.12   48300     100.0000     -444.9102
        105.22     100     100.1000     -143.4674
        105.32     100     100.0000     -142.0307
        105.42     100     100.1000     -140.5858
        105.52     100     100.0000     -116.4178
        105.62     100     100.1000     -104.3406
     
     Channel events
      00 01 02 03 04 05  Channel number
       0  0  0  0  0  0  Change from ON to OFF without ramp
       1  0  0  0  0  0  End of ramp
       1  0  0  0  0  0  Hardware voltage limit exceeded
       0  0  0  0  0  0  Hardware current limit exceeded
       0  0  0  0  0  0  Software current limit exceeded
       0  0  0  0  0  0  External inhibit
       0  0  0  0  0  0  Voltage bounds exceeded
       0  0  0  0  0  0  Current bounds exceeded
       1  0  0  0  0  0  Voltage control state
       0  0  0  0  0  0  Current control state
       0  0  0  0  0  0  Emergency OFF state
       0  0  0  0  0  0  Command error

Antwort von Iseg:
Iseg kann das beschriebene Verhalten reproduzieren und schickt zur Reparatur eine neue Firmwareversion 1.13 (N06C2_113).


Next: , Previous: Spannungsspitzen, Up: Tests NHS6

3.2.5 ADC-Kalibrierung

Beim Durchfahren der Spektrometerspannungen weicht in zufälligen Abständen der Istwert für 25s um ca. 50mV nach oben oder unten ab. Die Abweichung tritt auf mit der Ausgabe eines neuen Sollwertes und endet unabhängig von einer Ausgabe.
Eine Messung mit einem Keithly 2000 hat gezeigt, dass die Ausgangsspannung nicht wirklich springt, sondern der ADC für ca. 25s falsche Werte liefert.

ADCkalib.png

Antwort von Iseg:
Die beobachtete Stufe ist auf eine Fehlkalibrierung des ADC zurückzuführen. Sie hat als Ursache die Änderung der Set-Spannung während des Kalibriervorgangs. Da bei unserer Anwendung sehr häufig Spannungsänderungen durchgeführt werden, wird mit hoher Wahrscheinlichkeit auch während einer ADC Kalibrierung die Spannung über den DAC verändert und es kommt dann zu fehlerbehafteten Messungen. Der Effekt wird mit der neuen Firmwareversion 1.14 ausgeschlossen, wenn nach dem Einschalten vom Modul gewartet wird bis sich die Modultemperatur nur noch unwesentlich ändert.

Bisher wurde die ADC Kalibrierung in konstanten Zeitabständen ca. alle 72 Sekunden durchgeführt. Mit der Firmwareversion 1.14 wird als Kriterium zum Starten einer ADC Kalibrierung nicht mehr die verstrichene Zeit herangezogen, sondern die Temperaturdifferenz zur letzten Kalibrierung. Unterscheidet sich diese zur letzten Kalibrierung um 5K wird erneut eine ADC Kalibrierung gestartet, so dass bei einigermaßen temperaturstabilen Verhältnissen keine ADC Kalibrierung mehr erfolgt. Diese Lösung sollte genügen, da die Drift des ADC selber schon viel weniger von der Temperatur beeinflusst wird als die des DAC.

Zusatzfrage:
Die ADC-Kalibrierung verhält sich unter 114 so wie angegeben: beim Warmup wird ca. alle 5°C eine Kalibrierung durchgeführt und der ADC driftet nur wenig mit der Temperatur (ca. 2-3mV/1K?). Ein Problem muss dabei allerdings noch bedacht werden: je nach dem wo der Warmup landet, könnte das knapp unterhalb der nächsten 5°C Grenze sein und die nächste Kalibrierung platzt irgend wann in die laufende Messung. Dies ist umso fataler als unter 114 eine solche Misskalibrierung nicht nach 25s wieder rückgängig gemacht wird wie unter 113. Deshalb muss vor jeder Messung eine letzte Kalibrierung erzwungen werden. Ich habe dies versucht durch einen Hardware Reset in der Annahme, dass der ADC sich danach kalibrieren muss. Es scheint zu funktionieren und liefert auch bis auf wenige mV reproduzierbare Ergebnisse (gemessen mit Keithley 2000), ist jedoch mit einigem Zeit raubenden Umstand verbunden. Insbesondere muss ich nach jedem HW-Reset jedesmal das NHS von Hand wieder auf INFO stellen damit die Sample-Rate des ADC ausreichend hoch ist. Das NHS-Menü ganz abschalten wäre für unsere Zwecke sowieso das Beste. Gibt es eine sanftere Alternative zum Hardware Reset?

Antwort von Iseg:
Eine ADC-Kalibrierung lässt sich erzwingen durch einen Wechsel der ADC-Sample-Rate.


Next: , Previous: ADC-Kalibrierung, Up: Tests NHS6

3.2.6 DAC-LSB-Fehler

Bei einem kontinuierlichen Anstieg des Sollwertes tritt reproduzierbar bei bestimmten Bitmustern ein Versatz im Istwert auf. Dieser Versatz ist bei den verschiedenen Kanälen unterschiedlich stark ausgeprägt.

     Bitmuster bei Ausgabe mit DCP:    0x5366d -> 0x5366e
     Rücklesen mit EDCP:            102.4839 -> 102.4842
     Beobachteter Versatz:            ca. 25 mV

Dieses Verhalten wäre typisch für einen differenziellen DAC-Fehler, allerdings nicht für das ausgegebene Bitmuster. Auch ist der Fehler für einen 20-Bit DAC eigentlich deutlich zu groß.

Für den Plot wurde der Sollwert alle 2s in 10mV Schritten erhöht. Nach der Sollwertausgabe war 1s Pause, danach wurde der Istwert für 1s in 70ms Abständen gemessen.

LSBerror.png

Antwort von Iseg:
Das NHS-6 hat nicht wirklich einen 20 Bit DAC sondern zwei kaskadierte 16 Bit DACs. Der Sägezahn resultiert aus dem LSB-Fehler des höherwertigen DACs. Diese Fehler werden im statischen Betrieb durch das Fine Adjustment korrigiert.


Next: , Previous: LSB-Fehler, Up: Tests NHS6

3.2.7 CAN-Bus-Errors

Wenn wir die Spannung stufenweise hochfahren so landet der CAN-Bus früher oder später in einem "Bus-Error", ist also massiv gestört. Meine Untersuchungen dazu haben folgendes ergeben:

Ich vermute folgende Ursache für dieses Verhalten:
Die Logon-Messages und Eingabeaufforderungen haben die gleiche CAN-ID. Da sie asynchron gesendet werden kommt es mit einer gewissen Wahrscheinlichkeit zur Kollision. Da sie gleiche ID haben gewinnen beide die Arbitrierung und senden weiter, was dann im Data-Frame zu Bit-Fehlern und Abbruch durch einen Error-Frame führt. Da auf beiden Seiten der gleiche CAN-Controller (SJA1000) arbeitet, starten beide Seiten gleichzeitig eine Wiederholung usw...

Vorschlag:
Durch ein Logon-Kommando können weitere Logon-Aufforderungen des Gerätes verhindert werden. Nach Pausen - in unserem Fall 10-20s - beginnt das Gerät jedoch wieder zu senden und ein neues Logon ist notwendig. Da wir während des Betriebes beständig die ADC-Daten abrufen entstehen keine längeren Pausen.

Antwort von Iseg:
Versuchen Sie den Modul im Zustand Log On zu halten, d.h. erstmalig nach Log-On den Modul in den Zustand Connect schalten und dann mindestens in Zeitintervallen von 20 Sekunden z.B. den Modulstatus lesen. So kann es zu keinen Buskonflikten mit gleichen CAN-ID beim Auslesen kommen.

Testen Sie auch mal die Kommunikation für Schreibdaten durch die Befehlsfolge (Beispiel Modul auf Adresse 0): CAN_ID=0x200 LENGTH=4 DATAID=0x12A0 DATA0=0x00 DATA=0x01 sicher zu entkoppeln. Jetzt kommt die Antwort vom Modul mit einem zusätzlichen rezessiven Bit.

Abfrage Kanal 0 EventStatus: CAN_ID=0x201 LENGTH=2 DATAID=0x4002 Data0=0x00 Antwort vom Modul : CAN_ID=0x204 LENGTH=5 DATAID=0x4002 Data0=0x00 Data1=0x00 Data2=0x00


Next: , Previous: CAN-Bus-Errors, Up: Tests NHS6

3.2.8 Firmwareversion 1.15

Im Laufe der Tests gab es noch die Firmwareversion 1.15. Leider ist in den Emails nicht dokumentiert was damit repariert wurde. Einiges wurde am Telefon verabredet...


Next: , Previous: Firmwareversion 1.15, Up: Tests NHS6

3.2.9 Störung durch manuelle Bedienung

Die ADC-Abtastrate hängt wesentlich von dem gerade eingestellten Menü des NHS-6 ab. Insbesondere im Grundzustand ist die Abtastrate besonders gering was einer schnellen Spannungsregelung abträglich ist.

Antwort von Iseg:
Im Menüpunkt INFO hat der ADC seine höchste Abtastrate.

Ich frage nach der Möglichkeit die manuelle Bedienung vollständig abzuschalten.

Antwort von Iseg:
Die neue Firmwareversion 1.16 sorgt dafür, dass der ADC im Grundzustand des NHS-6 Menüs nicht mehr ausgebremst wird.

Es stellt sich jedoch heraus, dass jegliche manuelle Bedienung am NHS-6 die Spannungsmessung erheblich stört. Auch in diesem Fall ist die Spannung in Ordnung und der ADC hat 25s lang Fehlmessungen. Der Effekt tritt bereits auf beim Aufwecken des Menüs wenn es vorher dunkel war. Die Grafik zeigt die Auswirkungen beim Aufwecken und Umschalten vom Menü-Grundzustand nach Info und wieder zurück.
Also Finger weg während der Messung!

MenuEffekt.png


Next: , Previous: Stoerung durch manuelle Bedienung, Up: Tests NHS6

3.2.10 Reaktion auf Spannungssprung

Es ist auffällig, dass ein Sprung nach unten nahezu prompt nach dem Kommando startet, während ein solcher nach oben ca. 0.2s Verzögerung hat.

StepReakt.png


3.2.11 Störung nach Spannungssprung

Bei weiteren Tests zum Verhalten des NHS bei Spannungsstufen ist mir Folgendes aufgefallen: nach einer festen, reproduzierbaren Zeit nach der Spannungsstufe sind die ADC-Messwerte gestört. Die Lage der Störung ist linear abhängig von der ADC-Sample-Rate:

          Rate    Lage
          500     0.6s
          100     3.0s
           50     6.0s

Die Störung ist unabhängig von der Höhe des Spannungssprunges, bei 0V verschwindet sie allerdings.

Hierzu gibt es keine Antwort von Iseg, da wir zu diesem Zeitpunkt die Arbeiten mit dem NHS-6 aufgegeben hatten, um mit dem EHS-8 fortzufahren...

Stoerung3s.png


Previous: Tests NHS6, Up: Anhang

3.3 Tests am EHS-8230n-F

Das EHS-8230n-F ist die "floating ground" Version des EHS-8, weshalb jeder der acht Kanäle mit eigenem DAC und ADC ausgerüstet ist, während das NHS-6230n DAC und ADC multiplext. Das Verhalten des EHS-8 ist daher deutlich besser geeignet für das Fahren von Spannungsrampen:

Einige der mit dem NHS-6230n entdeckten Probleme sind auch für das EHS-8230n-F relevant. Andere können konstruktionbedingt nicht auftreten:


Next: , Up: Tests EHS8

3.3.1 Das Messverfahren

Das Messverfahren ist das gleiche wie beim NHS-6230n.


Previous: Messverfahren EHS8, Up: Tests EHS8

3.3.2 Keithly2000 stört

Bei diesen Messungen erfolgt zur Zeit 0 abwechselnd ein Spannungssprung von 50 mV nach oben bzw. unten. Diese Sequenz wird mehrfach durchlaufen damit sich ein gutes Bild vom Verhalten bei einem Spannungssprung ergibt. FineAdjust ist abgeschaltet. ADC-Kalibrierung wird zu Beginn erzwungen durch einen Wechsel der ADC-Rate.

Bei Sollspannungen bis 199V liegt der ADC-Wert bis ca. 3.5s um ca. 10 mV zu tief und springt dann auf den richtigen Wert jedoch nur für den Sprung nach oben. Die Ausgangsspannung zeigt dieses Verhalten nicht! Getestet für 90V, 100V, 110V, 120V, 150V, 190V, 199V.

Bei 200V gibt es eine bemerkenswerte Änderung.

Bei 201V ist der ganze Spuk vorbei. Getestet für 201V, 210V, 500V.

Es ist das Keithly 2000, das diesen Unfug macht! Bei 200V schaltet es den Messbereich um. Ohne das Keithly zeigt der EHS-ADC das erwartete Verhalten. Ich kann mir allerdings keinen Reim drauf machen wie das Keithly die Spannung richtig anzeigt und den ADC stört???

Keithly1.png

Keithly2.png

Keithly3.png


Next: , Up: Tests EHS8

3.3.3 Auflösung der Spannungsmessung

In den Iseg Datenblättern gibt es unterschiedliche Angaben für die Auflösung der Spannungsmessung:
10mV; Vnom * 10^-6 = 3mV; 24 Bit ADC, 22 Bit genutzt => 0.715256mV
Mit EDCP werden die Messdaten als Single Prec. übertragen, d.h. mit einer Genauigkeit von (IEEE 754) 23 Bit => 1.19209290E-7 bei 3 kV also 0.3576 mV.
Gemessen wurde für verschiedene Spannungen von 10V bis 3Kv ca. 0.7 mV Auflösung. Dies enspricht einem 22 Bit ADC.


Next: , Previous: Aufloesung der Spannungsmessung, Up: Tests EHS8

3.3.4 Streuung der Spannungsmesswerte

Diese Messungen werden mit dem IsegHV-Programm (Voltage distribution) durchgeführt und können zur Kontrolle wiederholt werden. Der Ablauf der Messung ist folgender: Zuerst wird der Sollwert eingestellt. Während die Spannung hochfährt wird die ADC-Sample-Time gemessen indem im 10ms Takt die Zeit gemessen wird, die der ADC benötigt um einen neuen Wert zu generieren. Danach wird mittels Soll-Istwert-Vergleich die Spannung auf den Sollwert geregelt. Während des Auslesens der Istwerte im ADC-Sample-Time Takt erfolgt keine weitere Regelung.
Für eine gute Messung den Kanal voher schon auf den Sollwert programmieren (Set Voltage) und die Messung nach einer Weile starten wenn die Spannung stabil steht!

Die Streuung der Spannungsmesswerte wurde für drei Spannungen gemessen (100V, 1000V, 2900V). Der Fehler der Messwerte liegt bei ca. 10%. Die folgenden Grafiken zeigen in den Messungen Strukturen, die deutlich über statistische Schwankungen hinausgehen und möglicherweise auf Interferenzen mit der ADC-Auflösung zurückzuführen sind, also bei der Umrechnung:
Integer (ADC) -> Float (Übertragung) -> Integer (Spektrum)
entstehen.

Die einzelnen Kanäle zeigen unterschiedliche Breiten. Der Kanal 0 hat für 100V und 1000V zusätzlich noch irgendwelche Störungen nach beiden Seiten und sollte vielleicht besser gemieden werden.

                   100V             1000V            2900V
     Kanal    Sigma    FWHM    Sigma    FWHM    Sigma    FWHM
       0       5.1     11.9     3.2      7.5     4.3     10.0
       1       4.5     10.5     4.3     10.1     5.1     12.0
       2       3.0      7.1     3.6      8.9     3.1      7.2
       3       2.9      6.7     3.3      7.8     4.0      9.4
       4       2.9      6.9     2.8      6.6     3.2      7.4
       5       3.5      8.4     3.2      7.5     4.0      9.3
       6       2.7      6.2     3.4      8.0     4.3     10.2
       7       2.7      6.3     2.6      6.0     3.4      8.0

Verteilung der Spannungsmesswerte bei 100V
V100.png

Verteilung der Spannungsmesswerte bei 1000V
V1000.png

Verteilung der Spannungsmesswerte bei 2900V
V2900.png


Next: , Previous: Streuung der Spannungsmesswerte, Up: Tests EHS8

3.3.5 Reaktion auf Spannungsstufe

Diese Messungen wurden mit dem IsegHV-Programm (Timing tests) durchgeführt.

Der ADC liefert abhängig von der eingestelleten "ADC Sample Rate" periodisch neue Messwerte. Da der ADC maximal nur etwa alle 60ms (Rate = 60HZ) ein neues Ergebnis liefert, wurden die Spannungssprünge und Messungen mehrfach wiederholt. Da Messungen und Spannungssprünge asynchron zueinander sind, erhält man so mit der Zeit auch alle Zwischenwerte. Um den Zeitpunkt zu ermitteln, an dem die Spannung gemessen wurde, wird der Spannungswert permanent in einer Schleife so lange ausgelesen bis eine Änderung auftritt oder bis die 60ms ADC-Sample-Time um ist.

Timing1.png

Man erkennt, dass für ein schnelles Entladen des EHS8 eine Last notwendig ist. Nach Abschluss der Ramping-Phase benötigt das EHS8 noch ca. 1s um den Endwert zu erreichen.


3.3.6 Stufe bei 100/170V

Bei stufenweisem Hochfahren (z.B. 1V/Step) ändern die Kanäle möglicherweise ihren Status mit einem Sprung in dem Spannungsverlauf bei etwa 160 - 180V. Beim Herunterfahren liegt diese Grenze bei etwa 100V.

Folgendes ist beim Messen zu beachten: Wenn man sich beim Messen immer nur z.B. zwischen 150V und 200V bewegt, so wird man die Stufe nicht beobachten da das Ganze sich wie eine Zustandsänderung mit Hysterese verhält. Um die obere Stufe zu messen muss man also unterhalb der unteren Stufe mit der Spannung starten und umgekehrt.

Iseg kann dieses Verhalten an einem 2kV-EHS nicht nachvollziehen. Ein Firmware-Update von 632 auf 651 bringt keine Veränderung. Das geliehene 2kV-EHS zeigt am Spektrometer keine Sprünge. Iseg untersucht jetzt unser 3kV-EHS.

Antwort von Iseg:
Iseg hat die Hochspannungsregelung geändert und damit das fehlerhafte Verhalten beseitigt.

SprungV170.png


3.3.7 Weitere Störung beim Hochfahren

Nach den Änderungen an der Hochspannungsregelung des EHS-8230n-F ist der Spannungsverlauf beim Hochfahren jetzt ohne Sprünge.

Nach wie vor ist allerdings zu beobachten, dass beim Überfahren von bestimmten, eng begrenzten Stellen die Ausgangsspannung reproduzierbar nicht stabil steht. Zum Beispiel Kanal 3 in unterschiedlicher Auflösung: (1V, 0.1V, 0.01V). Der Firmware-Stand ist 6.5.1 und auf den Grafiken falsch angegeben. Der Effekt tritt mehr oder weniger auch bei anderen Kanälen auf und ist auch vor der Nachbesserung schon aufgetreten.

Mit dem Oszilloscope kann man an der kritischen Stelle ein heftiges Zappeln der Ausgangsspannung beobachtet aber kein gleichmäßiges Schwingen, das auf eine Regelschwingung hindeuten würde. (Vertikal 20mV/cm; Steps 10mV alle 10s)

Das EHS-8220 zeigt für Kanal 3 dieses Verhalten nicht.

Zappler1.png

Zappler2.png

Zappler3.png

ZapplerOszi.jpg


Previous: Reaktion auf Spannungsstufe, Up: Tests EHS8

3.3.8 Spannungsverlauf ungeregelt und geregelt

!!!Baustelle!!!