# 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.")