29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
# magnet initial ramping 0 > 6.9 T
|
|
# 0 -> 6.9 T at 0.36 T/min
|
|
# then 6 -> 6.9 T at 0.075 T/min
|
|
|
|
# list of pairs [ [target field1, ramp rate1] , [target field2, ramp rate2] , [target field3, ramp rate3] ,... ]
|
|
field_rate = [ [6.0,0.36], [6.85, 0.075], [6.0, 0.075], [0.0, 1.0] ]
|
|
#field_rate = [ [0.1,0.25], [0.0, 2.0] ] test
|
|
|
|
for fr in field_rate:
|
|
fi = fr[0]
|
|
rr = fr[1]
|
|
if abs(fi) > 7.0:
|
|
sys.exit("Error in target field value. Aborting.")
|
|
if rr <= 0. or rr > 2.05:
|
|
sys.exit("Error in ramp rate value. Aborting.")
|
|
print("Ramping to "+str(fi)+" T at a ramp rate of "+str(rr)+" T/min...")
|
|
ramp_rate_x.write(rr)
|
|
time.sleep(4.0)
|
|
rr_rbv = caget('X07MA-PC-PS2:STS:RAMPRATE:TPM')
|
|
print("Read back a ramp rate of "+str(rr_rbv)+" T/min.")
|
|
if (abs(rr-rr_rbv) > rr * 0.1): # stay within 10%
|
|
sys.exit("Something went wrong when setting the ramp rate. Demand-readback > "+ str(rr*0.05)+" T/min.")
|
|
|
|
set_hx(fi)
|
|
print ("Target field reached. Waiting 10 seconds.")
|
|
time.sleep(10.0)
|
|
|
|
ramp_rate_x.write(2.0)
|
|
print ("Done. Everything went well, as far as I know.") |