# 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 1 Funktion von IsegHV ********************* Das IsegHV Programm dient dem Testen der Iseg-HV Geräte und der CAN-Bus-Verbindung zum Steuern der 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 u.A. 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 Iseg-HV 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: * VME Labor-Rechner-System * ggf. Standard-Control-Routing * ggf. I4000 VME Modul mit vier SJA1000 CAN Controllern * IsegHV Netzgerät * VT240/330 Terminal oder PC mit TeraTerm * VxWorks Betriebssystem * Netzwerkanschluss zu einem Host-Rechner 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. 2.1 Exit IsegHV =============== Verlassen des Programmes. 2.2 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. Zunächst muss der verwendete CAN-Controler-Typ angegeben werden: *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. Ferner muss für den CC770 noch die Steckplatz ID im Control Routing angegeben werden. *Philips SJA1000 on VME Board i4000* Der SJA1000 befindet sich auf einem i4000 VME-Board, dessen Basisadresse angegeben werden muss. Ferner muss noch eingetragen werden welches Modul des i4000 verwendet wird. 2.3 CAN Controller ================== SJA1000 CAN Controller Kontroll- und Test-Menü 2.3.1 Return ------------ Rückkehr zum Top-Menü. 2.3.2 Init CAN Controller ------------------------- Baustelle! 2.3.3 Check Bus Speed --------------------- Baustelle! 2.3.4 Show Controller Status ---------------------------- Baustelle! 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! 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! 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). 2.6 IsegHV 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. 2.6.1 Return ------------ Rückkehr zum Top-Menü. 2.6.2 Data Routing hardware --------------------------- Da 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. 2.6.3 Control Routing hardware ------------------------------ Da 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. 2.6.4 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. 2.6.5 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: * *CAN module on i4000* Das i4000 VME-Modul ist ein Träger für vier CAN-Controller. Hier ist anzugeben an welchen Controller das IsegHV angeschlossen ist. * *IsegHV CAN ID* Das Iseg-Modul hat auf dem CAN-Bus eine ID, mit der es angesprochen wird (auf der Rückseite des Moduls verdrahtet; unverdrahtet: 0x7f). * *Voltage ramp speed* Das IsegHV muss auf eine Geschwindigkeit der Spannungsänderung eingestellt werden. Die Einstellung erfolgt in Prozent der Nominalspannung und ist begrenzt auf 20%. * *ADC sample rate* Dies ist die Abtastrate bei der IsegHV Spannungsmessung. Sie sollte möglichst groß gewählt werden (max 50Hz) um Spannungssprünge schnell einregeln zu können. * *ADC sample time* Die IsegHV ADCs benötigen eine Mindestzeit um einen neuen Spannungswert zu konvertieren. Mit dem IsegHV-Programm kann dieser Wert ermittelt werden. * *Wait after step* Nach einem IsegHV-Kommendo zur Spannungsänderung liefert der ADC für eine gewisse Zeit unbrauchbare Messwerte, die ausgeblendet werden müssen. 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. 3.1 Tests am EHQ-8210n-505F =========================== 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. 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. 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* 3.2 Tests am NHS-6230n ====================== 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: * Zu Beginn wird der ADC in einer Schleife beständig ausgelesen und die Zeiten bestimmt, die er benötigt um einen neuen Wert zu generieren. Mithilfe dieser Statistik wird eine geeignete Sample-Zeit für die weiteren Messungen festgelegt. Dieses Verfahren gibt keine genaue Information über den Zeitpunkt der Spannungsmessung. * Für einige Untersuchungen wird jedoch der Zeitpunkt der Spannungsmessung benötigt. Um diesen zu ermitteln wird zusätzlich zu dem verhergehenden Schritt der Spannungswert wh"rend der weiteren Untersuchungen permanent in einer Schleife so lange ausgelesen bis eine Änderung auftritt oder bis die ermittelte ADC-Sample-Time um ist, falls zwei aufeinanderfolgende Messwerte gleich sind. 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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). 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] *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. 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] *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. 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: * Der Bus-Error tritt nicht auf wenn nur ausschließlich Ausgaben zu dem NHS-6 erfolgen und nur bei Eingabeaufforderungen. * Der Bus-Error tritt nicht auf wenn durch Logon die Logon-Aufforderungen des Gerätes schweigen. * Auf dem CAN-Bus kann man per Oszi erkennen, dass vielfach hintereinander die Eingabeaufforderungen nach der CAN-ID durch einen Error-Frame abgebrochen werden bis alles mit einem Bus-Error endet. * Der CAN-Controller meldet Bit-Fehler im Data-Frame. * Der Bus-Error tritt gehäuft auf (Sekundenabstände) bei einer Bit-Rate von 20 kHz und beständigem Abrufen eines Geräteparameters. 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 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... 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! [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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... [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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: * Jeder der acht Kanäle des EHS-8230n wird über einen eigenen 20 Bit DAC programmiert. * Jeder der acht Kanäle des EHS-8230n hat einen eigenen 24 Bit ADC (22 Bit genutzt) zur Spannungsmessung, was eine deutlich höhere ADC-Abtastrate zulässt. Die ADC-Sample-Rate ist jedoch auf 60Hz begrenzt was eine minimale Abtastzeit von 60ms erlaubt (70ms bei 50Hz). * Das EHS-8230n kann nicht manuell bedient werden, was einige Probleme garnicht erst entstehen lässt. * Das EHS-8230n kostet weniger, so dass beim Tausch noch eine Detektor-Hochspannung drin war. Einige der mit dem NHS-6230n entdeckten Probleme sind auch für das EHS-8230n-F relevant. Andere können konstruktionbedingt nicht auftreten: * Kaltstart: deutlich geringere Temperaturabhängigkeit * Fine-Adjustment: gleiches Problem, gelöst * Spannungsspitzen: keine * ADC-Kalibrierung: gleiches Problem, gelöst * DAC-LSB-Fehler: sehr klein wegen Verwendung eines 20 Bit DACs * CAN-Bus-Errors: gleiches Problem, gelöst * Firmwareversion 1.15: installiert * Störung durch manuelle Bedienung: keine manuelle Bedienung möglich * Reaktion auf Spannungssprung: beide Reaktionen prompt * Störung nach Spannungssprung: nicht beobachtet 3.3.1 Das Messverfahren ----------------------- Das Messverfahren ist das gleiche wie beim NHS-6230n. 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??? [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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. 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* [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] *Verteilung der Spannungsmesswerte bei 1000V* [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] *Verteilung der Spannungsmesswerte bei 2900V* [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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. * Kanal 0 ist etwas verrauscht. * Bei Kanal 1 ist allenfalls eine Andeutung einer Stufe zu erkennen, aber bei 85V findet sich eine reproduzierbare Störung. * Kanal 3 ist unterhalb der Stufe erheblich gestört und zeigt oberhalb einen normalen Verlauf. Beim Abwärtsfahren liegt die Stufe bei ca. 100V und die Störung beginnt unterhalb. * Bei Kanal 6 ist die Stufe negativ. * Als systematischer Trend lässt sich erkennen, dass die Stufe um so kleiner wird je steiler die Ist-Sollwert-Differenz ansteigt um schließlich zu verschwinden und das Vorzeichen umzukehren. 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 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. [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] [(Kein Textformat-Bild vorhanden, siehe: html, pdf, dvi) ] 3.3.8 Spannungsverlauf ungeregelt und geregelt ---------------------------------------------- !!!Baustelle!!!  Local Variables: coding: iso-8859-1 End: