Files
sf-rf/script/jitter_scan.py
2016-06-28 13:53:24 +02:00

91 lines
2.2 KiB
Python

import ch.psi.pshell.epics.ProcessVariable as PV
import datetime
latency = 0.3
SECTION = "SINSB02"
start = -170.0
stop = 180.0
step = 10.0
plot_name = datetime.datetime.fromtimestamp(time.time()).strftime('%H%M%S')
print "SECTION = ", SECTION
print "Start = ", start
print "Stop = ", stop
print "Step = ", step
# define all PVs
# controlled variabales
cv_rf_phase = PV("phase ref", SECTION + "-RLLE-DSP:PHASE-REFERENCE")
cv_rf_amplt = PV("amplt ref", SECTION + "-RLLE-DSP:AMPLT-REFERENCE")
# measured variables
mv_ref_jit_amplt = PV("REF a jit" ,SECTION + "-RLLE-REF10:SIG-AMPLT-JIT-P2P-REL")
mv_ref_jit_phase = PV("REF p jit" ,SECTION + "-RLLE-REF10:SIG-PHASE-JIT-P2P")
mv_iqm_jit_amplt = PV("IQM a jit" ,SECTION + "-RIQM-DCP10:FOR-AMPLT-JIT-P2P-REL")
mv_iqm_jit_phase = PV("IQM p jit" ,SECTION + "-RIQM-DCP10:FOR-PHASE-JIT-P2P")
mv_pre_jit_amplt = PV("PRE a jit" ,SECTION + "-RPRE-DCP10:FOR-AMPLT-JIT-P2P-REL")
mv_pre_jit_phase = PV("PRE p jit" ,SECTION + "-RPRE-DCP10:FOR-PHASE-JIT-P2P")
mv_kly_jit_amplt = PV("KLY a jit" ,SECTION + "-RKLY-DCP10:FOR-AMPLT-JIT-P2P-REL")
mv_kly_jit_phase = PV("KLY p jit" ,SECTION + "-RKLY-DCP10:FOR-PHASE-JIT-P2P")
# initialize all PVs
cv_rf_phase.initialize()
cv_rf_amplt.initialize()
mv_ref_jit_amplt.initialize()
mv_ref_jit_phase.initialize()
mv_iqm_jit_amplt.initialize()
mv_iqm_jit_phase.initialize()
mv_pre_jit_amplt.initialize()
mv_pre_jit_phase.initialize()
mv_kly_jit_amplt.initialize()
mv_kly_jit_phase.initialize()
scan_result = lscan(cv_rf_phase, (mv_ref_jit_amplt,mv_ref_jit_phase,mv_iqm_jit_amplt,mv_iqm_jit_phase,mv_pre_jit_amplt,mv_pre_jit_phase,mv_kly_jit_amplt,mv_kly_jit_phase), start, stop, step , latency=latency, title="Jitter Scan")
# close all PVs
cv_rf_phase.close()
cv_rf_amplt.close()
mv_ref_jit_amplt.close()
mv_ref_jit_phase.close()
mv_iqm_jit_amplt.close()
mv_iqm_jit_phase.close()
mv_pre_jit_amplt.close()
mv_pre_jit_phase.close()
mv_kly_jit_amplt.close()
mv_kly_jit_phase.close()
# ELOG
msg = scan_result.print("\t")
#msg = str(scan_result)
msg = msg + "\n\nFile: " + get_context().path
msg = msg + "\n\n" + r.print()
elogllrf("Jitter Scan", msg,"Measurement", "RF Stability", SECTION, get_plot_snapshots())
# save the entry in the logbook