From dc3bc585fecb07017e4918a17e006dca93cd3483 Mon Sep 17 00:00:00 2001 From: gac-x03da Date: Mon, 20 Aug 2018 15:22:01 +0200 Subject: [PATCH] Closedown --- script/keithley.py | 26 ++++++++++++++++++++++++-- script/local.py | 11 +++++------ script/optics/PhotonFluxSpectrum.py | 7 +++---- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/script/keithley.py b/script/keithley.py index cb436a14..5f734ce0 100644 --- a/script/keithley.py +++ b/script/keithley.py @@ -62,13 +62,34 @@ class Keithley(object): 2) set user mode, set range """ - self.dosetdefaultCh.write(1) - self.scanCh.write(9) + #self.dosetdefaultCh.write(1) + #self.scanCh.write(9) def prepare(self, dwell, triggered): + """ + prepare keithley for gpib polling. + + setting keithley parameters has several issues. + the dwell time and trigger mode cannot be set programmatically at the moment. + the user should select poll slow (100 ms), medium (20 ms) or fast (2 ms). + this method just reads the current value and stores it in self.dwell. + + dwell: dwell time in seconds. + 0.1 - 20.0 in triggered mode, + 0.1 - 1.0 in free running mode. + triggered: + True: wait for self.trig call and trigger once per call. + False: 1 Hz free run using EPICS SCAN attribute. + """ + self.triggered = False + self.dwell = self.tottimeCh.read() / 1000. + + def prepare_not_working(self, dwell, triggered): """ prepare keithley for gpib polling: scan passive, bus triggered, set dwell time + + this doesn't to work. dwell: dwell time in seconds. 0.1 - 20.0 in triggered mode, @@ -142,6 +163,7 @@ class Keithley(object): _do nothing for now!_ """ return None + self.nplcCh.write(5.) self.navgCh.write(1.) self.scanCh.write(6) diff --git a/script/local.py b/script/local.py index a5534649..454fcde0 100644 --- a/script/local.py +++ b/script/local.py @@ -111,10 +111,10 @@ from keithley import KeiSample, KeiReference def prepare_keithleys(dwell, triggered): """ - prepare keithleys for gpib polling: - passive, bus triggered, dwell time - - dwell = dwell time in seconds (0.1 - 20.0) + prepare keithleys. + + at the moment, the dwell time has to be set manually by selecting one of the poll modes + slow = 100 ms, medium = 20 ms, fast = 2 ms. """ KeiSample.prepare(dwell, triggered) KeiReference.prepare(dwell, triggered) @@ -130,7 +130,6 @@ def trig_keithleys(): def wait_keithleys(): """ wait for one dwell time so that the keithleys can finish their measurement. - if we polled them too early, they would produce an error message. """ time.sleep(KeiSample.dwell * 2.2) @@ -325,7 +324,7 @@ def after_scan(): Close shutter and turn off analyser """ caput("X03DA-PC:AFTER-SCAN.PROC", 1) - release_keithleys() + #release_keithleys() def set_adc_averaging(dwelltime=0.0): if dwelltime == 0.0: diff --git a/script/optics/PhotonFluxSpectrum.py b/script/optics/PhotonFluxSpectrum.py index ebc59f86..a12d9f8d 100644 --- a/script/optics/PhotonFluxSpectrum.py +++ b/script/optics/PhotonFluxSpectrum.py @@ -8,9 +8,9 @@ AuxCurrent: not connected import time -RANGE = "G1200 full" +#RANGE = "G1200 full" #RANGE = "G600 full" -#RANGE = "C K-edge" +RANGE = "C K-edge" BEAM = "G1200 1x1" #BEAM = "G1200 6x10" @@ -36,8 +36,6 @@ elif RANGE == "C K-edge": LATENCY = 1.0 DWELL = 1.0 -prepare_keithleys(DWELL, False) - if BEAM == "G600 1x1": # G600 1x1 reference sscan_2268 (elog:119) #SampleCurrentGain.write("L, 10^7") @@ -92,6 +90,7 @@ else: POSITIONERS = (Eph) SENSORS = (SampleCurrent, RefCurrent, MachineCurrent) +set_adc_averaging() time.sleep(5.) lscan(POSITIONERS, SENSORS, STARTPOS, ENDPOS, STEPS, LATENCY, before_read=before_readout, after_read=after_readout)