Files
saresa/script/Huberscan_PIPS_Continuous_All_PIDs.py
2021-04-28 10:08:19 +02:00

47 lines
1.3 KiB
Python

#Parameters:
SCAN_RANGE = [-13.5, -13.4]
SCAN_TIME = 10.0
STREAM_SCALARS = ['SAROP11-CVME-PBPS1:Lnk9Ch11-DATA-SUM']
STREAM_WAVEFORMS = ['SAROP11-CVME-PBPS1:Lnk9Ch11-DATA-CALIBRATED', 'SAROP11-CVME-PBPS1:Lnk9Ch11-BG-DATA-CALIBRATED']
EPICS_CHANELS = ['SARES11-XSAM125:MOTOR_X1.RBV', 'SARES11-XSAM125:MOTOR_Y1.RBV', 'SARES11-XSAM125:MOTOR_Z1.RBV']
MOTOR = motor_x1
#Create the beam synchronous Stream
stream = Stream("PID", dispatcher)
modulo, offset = 10,0
for name in STREAM_SCALARS:
stream.addScalar(name, name, modulo, offset )
plot_types = {}
for name in STREAM_WAVEFORMS:
stream.addWaveform(name, name, modulo, offset )
plot_types[name]=1
stream.initialize()
stream.start()
#Creare channels
channels = []
for name in EPICS_CHANELS:
channel = Channel(name, 'd')
channel.monitored= True
channels.append(channel)
#Setup motor
velocity = abs(float(SCAN_RANGE[1]-SCAN_RANGE[0])) / SCAN_TIME
MOTOR.setSpeed(MOTOR.defaultSpeed)
MOTOR.move(float(SCAN_RANGE[0]))
MOTOR.setSpeed(float(velocity) )
#Wait stream to be active
stream.waitCacheChange(10000)
#Trigger motor move an start sampling
MOTOR.moveAsync(float(SCAN_RANGE[1]))
try:
mscan(stream, stream.getReadables() + channels, -1, SCAN_TIME, plot_types=plot_types)
finally:
stream.close()
MOTOR.setSpeed(MOTOR.defaultSpeed)