added Lyrebird instrument config
r3038 | jgn | 2010-12-13 16:10:57 +1100 (Mon, 13 Dec 2010) | 1 line
This commit is contained in:
committed by
Douglas Clowes
parent
a3d551c8bb
commit
28772f6ec2
@@ -0,0 +1,988 @@
|
||||
# Author: Jing Chen (jgn@ansto.gov.au)
|
||||
|
||||
# START MOTOR CONFIGURATION
|
||||
::utility::mkVar FastShutter text manager FastShutter false instrument true false
|
||||
|
||||
# SET TO 1 TO USE THE TILT STAGE ie sample phi and chi
|
||||
set use_tiltstage 0
|
||||
|
||||
set animal lyrebird
|
||||
set sim_mode [SplitReply [motor_simulation]]
|
||||
|
||||
# Setup addresses of Galil DMC2280 controllers.
|
||||
set dmc2280_controller1(host) mc1-$animal
|
||||
set dmc2280_controller1(port) pmc1-$animal
|
||||
|
||||
set dmc2280_controller2(host) mc2-$animal
|
||||
set dmc2280_controller2(port) pmc2-$animal
|
||||
|
||||
set dmc2280_controller3(host) mc3-$animal
|
||||
set dmc2280_controller3(port) pmc3-$animal
|
||||
|
||||
set dmc2280_controller4(host) mc4-$animal
|
||||
set dmc2280_controller4(port) pmc4-$animal
|
||||
|
||||
if {$sim_mode == "true"} {
|
||||
set motor_driver_type asim
|
||||
} else {
|
||||
set motor_driver_type DMC2280
|
||||
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port)
|
||||
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port)
|
||||
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port)
|
||||
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port)
|
||||
}
|
||||
|
||||
# Beam stop gearing and signs (BS1=largest)
|
||||
# 4,5 160:1
|
||||
# 1,2,3 110:1
|
||||
# MOTS need 400 steps per rev = 50000 steps per rev
|
||||
set bs_steps_per_rev 50000.0
|
||||
set bs1gear 160
|
||||
set bs2gear 160
|
||||
set bs3gear 110
|
||||
set bs4gear 110
|
||||
set bs5gear 110
|
||||
|
||||
set bs45_gear 110.0
|
||||
set bs123_gear 160.0
|
||||
#set bs45_gear 160.0
|
||||
#set bs123_gear 110.0
|
||||
set bs125sign -1
|
||||
set bs34sign 1
|
||||
|
||||
#Measured absolute encoder reading at home position
|
||||
set samchi_Home 7808328
|
||||
set samphi_Home 7675008
|
||||
set samx_Home 7420441
|
||||
set samy_Home 7101486
|
||||
set samz_Home 9944901
|
||||
set samthet_Home 23004075
|
||||
set det_Home 7055209
|
||||
set detoff_Home 6857213
|
||||
|
||||
set srce_Home 7281463
|
||||
set apx_Home 12965422
|
||||
set apz_Home 7500000
|
||||
set att_Home 24782942
|
||||
|
||||
set bsx_Home 7578346
|
||||
set bsz_Home 10568857
|
||||
|
||||
set bs1_Home 21298
|
||||
set bs2_Home 9942
|
||||
set bs3_Home 30928
|
||||
set bs4_Home 22111
|
||||
set bs5_Home 14558
|
||||
set bs6_Home 27251
|
||||
|
||||
set bs_cntsPerX [expr 32768.0/360.0]
|
||||
set bs_stepsPerX [expr -25000.0*160.0/360.0]
|
||||
set pol_Home 7500000
|
||||
|
||||
#HERE ARE THE LATEST VALUES
|
||||
set pent_Home 8146159
|
||||
# Guide Positions Mirrotron ffr 2009-07-18
|
||||
set pc1_Guide 7995952
|
||||
set pc1_Polarizer 7723328
|
||||
set pc2_Guide 7459329
|
||||
set pc2_Polarizer 7186701
|
||||
set pc3_Guide 8440904
|
||||
set pc4_Guide 6161076
|
||||
set pc5_Guide 7856254
|
||||
set pc6_Guide 8800665
|
||||
set pc7_Guide 24167224
|
||||
set pc8_Guide 8302146
|
||||
set pc9_Guide 7851820
|
||||
set pc10_Guide 25977227
|
||||
|
||||
#lens
|
||||
set pc10_Lens 26196301
|
||||
#lens_and_prism
|
||||
set pc10_LensandPrism 25729419
|
||||
|
||||
set pc3_Aperture 8304893
|
||||
set pc4_Aperture 6029466
|
||||
set pc5_Aperture 7728755
|
||||
set pc6_Aperture 8663189
|
||||
set pc7_Aperture 24036241
|
||||
set pc8_Aperture 8169931
|
||||
set pc9_Aperture 7718840
|
||||
set pc10_Aperture 25835335
|
||||
|
||||
set pc1_Home $pc1_Guide
|
||||
set pc2_Home $pc2_Guide
|
||||
set pc3_Home $pc3_Guide
|
||||
set pc4_Home $pc4_Guide
|
||||
set pc5_Home $pc5_Guide
|
||||
set pc6_Home $pc6_Guide
|
||||
set pc7_Home $pc7_Guide
|
||||
set pc8_Home $pc8_Guide
|
||||
set pc9_Home $pc9_Guide
|
||||
set pc10_Home $pc10_Guide
|
||||
|
||||
set pc1_Empty [expr ($pc1_Guide + $pc1_Polarizer)/2]
|
||||
set pc2_Empty [expr ($pc2_Guide + $pc2_Polarizer)/2]
|
||||
set pc3_Empty [expr (2 * $pc3_Guide) - $pc3_Aperture]
|
||||
set pc4_Empty [expr (2 * $pc4_Guide) - $pc4_Aperture]
|
||||
set pc5_Empty [expr (2 * $pc5_Guide) - $pc5_Aperture]
|
||||
set pc6_Empty [expr (2 * $pc6_Guide) - $pc6_Aperture]
|
||||
set pc7_Empty [expr (2 * $pc7_Guide) - $pc7_Aperture]
|
||||
set pc8_Empty [expr (2 * $pc8_Guide) - $pc8_Aperture]
|
||||
set pc9_Empty [expr (2 * $pc9_Guide) - $pc9_Aperture]
|
||||
set pc10_Empty [expr (2 * $pc10_Guide) - $pc10_Aperture]
|
||||
|
||||
#Measured or computed step/count rates for collimator translation
|
||||
set coll_StepsPerX [expr -25000.0/6.0]
|
||||
set coll_CntsPerX [expr 8192.0/6.0]
|
||||
|
||||
#Measured or computed step rate for samz (Sample Raise)
|
||||
#Copied from Reflectometer then divided by 2.0 for SANS
|
||||
# Motor:25000/turn, gear:1/25, screw:5mm/turn
|
||||
set samzStepRate [expr -((25000.0*25.0)/5.0)/2.0]
|
||||
#set samzCountRate [expr -(8192.0/5.0/0.932)]
|
||||
# 8192 count encoder, 5mm/Turn screw, 14:15 gearing?
|
||||
set samzCountRate [expr -((8192.0/5.0)/(14.0/15.0))/2.0]
|
||||
|
||||
# set movecount high to reduce the frequency of
|
||||
# hnotify messages to a reasonable level
|
||||
set move_count 100
|
||||
|
||||
############################
|
||||
# Motor Controller 1
|
||||
# Motor Controller 1
|
||||
# Motor Controller 1
|
||||
############################
|
||||
#:TP at HOME
|
||||
#
|
||||
|
||||
# Dummy translation motor, useful for testing scans
|
||||
Motor dummy_motor asim [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis C\
|
||||
units mm\
|
||||
hardlowerlim -500\
|
||||
hardupperlim 500\
|
||||
maxSpeed 1\
|
||||
maxAccel 5\
|
||||
maxDecel 5\
|
||||
stepsPerX [expr 25000.0/5.0]\
|
||||
absEnc 1\
|
||||
absEncHome $samx_Home\
|
||||
cntsPerX [expr 8192.0/5.0]]
|
||||
dummy_motor part instrument
|
||||
dummy_motor long_name dummy_motor
|
||||
dummy_motor softlowerlim -500
|
||||
dummy_motor softupperlim 500
|
||||
dummy_motor home 0
|
||||
|
||||
if $use_tiltstage {
|
||||
# Sample tilt along beam [-20,+20] degrees
|
||||
Motor samchi $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis A\
|
||||
units degrees\
|
||||
hardlowerlim -20\
|
||||
hardupperlim 20\
|
||||
maxSpeed 1\
|
||||
maxAccel 5\
|
||||
maxDecel 5\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome $samchi_Home\
|
||||
cntsPerX 8192]
|
||||
samchi part sample
|
||||
samchi long_name sample_chi
|
||||
samchi softlowerlim -20
|
||||
samchi softupperlim 20
|
||||
samchi home 0
|
||||
|
||||
# Sample tilt across beam [-20,+20] degrees
|
||||
Motor samphi $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis B\
|
||||
units degrees\
|
||||
hardlowerlim -20\
|
||||
hardupperlim 20\
|
||||
maxSpeed 1\
|
||||
maxAccel 5\
|
||||
maxDecel 5\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome $samphi_Home\
|
||||
cntsPerX 8192]
|
||||
samphi part sample
|
||||
samphi long_name sample_phi
|
||||
samphi softlowerlim -20
|
||||
samphi softupperlim 20
|
||||
samphi home 0
|
||||
}
|
||||
# Sample translation across beam [0,1000] mm
|
||||
Motor samx $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis C\
|
||||
units mm\
|
||||
hardlowerlim -500\
|
||||
hardupperlim 500\
|
||||
maxSpeed 10\
|
||||
maxAccel 10\
|
||||
maxDecel 10\
|
||||
stepsPerX [expr 25000.0/5.0]\
|
||||
absEnc 1\
|
||||
absEncHome $samx_Home\
|
||||
cntsPerX [expr 8192.0/5.0]]
|
||||
samx part sample
|
||||
samx long_name sample_x
|
||||
samx softlowerlim -500
|
||||
samx softupperlim 500
|
||||
samx home 0
|
||||
|
||||
# Sample translation along beam [0,1000] mm
|
||||
Motor samy $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis D\
|
||||
units mm\
|
||||
hardlowerlim 0\
|
||||
hardupperlim 1000\
|
||||
maxSpeed 10\
|
||||
maxAccel 5\
|
||||
maxDecel 5\
|
||||
stepsPerX [expr 25000.0/5.0]\
|
||||
absEnc 1\
|
||||
absEncHome $samy_Home\
|
||||
cntsPerX [expr 8192.0/5.0]]
|
||||
samy part sample
|
||||
samy long_name sample_y
|
||||
samy softlowerlim 0
|
||||
samy softupperlim 1000
|
||||
samy home 0
|
||||
samy speed 5
|
||||
|
||||
# Sample translation vertical [0,500] mm
|
||||
Motor samz $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis E\
|
||||
units mm\
|
||||
hardlowerlim 0\
|
||||
hardupperlim 500\
|
||||
maxSpeed 10\
|
||||
maxAccel 1\
|
||||
maxDecel 10\
|
||||
stepsPerX $samzStepRate\
|
||||
absEnc 1\
|
||||
absEncHome $samz_Home\
|
||||
cntsPerX $samzCountRate]
|
||||
samz part sample
|
||||
samz long_name sample_z
|
||||
samz softlowerlim 0
|
||||
samz softupperlim 500
|
||||
samz home 0
|
||||
|
||||
# Sample rotation (theta) [0,180] degrees
|
||||
Motor samthet $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis F\
|
||||
units degrees\
|
||||
hardlowerlim -30\
|
||||
hardupperlim 30\
|
||||
maxSpeed 10\
|
||||
maxAccel 1\
|
||||
maxDecel 10\
|
||||
stepsPerX [expr 25000.0/2.0]\
|
||||
absEnc 1\
|
||||
absEncHome $samthet_Home\
|
||||
cntsPerX [expr 8192.0/2.0]]
|
||||
samthet part sample
|
||||
samthet long_name sample_theta
|
||||
samthet softlowerlim -10
|
||||
samthet softupperlim 10
|
||||
samthet home 0
|
||||
|
||||
# Motor feeds 70:1 gearbox to 120mm diameter drive wheel ~= 377mm circumference
|
||||
#set det_StepsPerX [expr 25000.0*70.0*3.1415926*120.0]
|
||||
#set det_StepsPerX [expr 25000.0/5.385]
|
||||
set det_StepsPerX [expr (25000.0*70.0)/377.0]
|
||||
|
||||
# Absolute encoder is on the drive wheel
|
||||
#set det_CntsPerX [expr 8192.0/3.1415926/120.0]]
|
||||
#set det_CntsPerX [expr 21.6898]
|
||||
set det_CntsPerX [expr 8192.0/377.0]
|
||||
|
||||
# Detector translation along beam [0,20000] mm
|
||||
Motor det $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
action MC1\
|
||||
axis G\
|
||||
units mm\
|
||||
hardlowerlim 488\
|
||||
hardupperlim 19320\
|
||||
maxSpeed 53\
|
||||
maxAccel 5\
|
||||
maxDecel 10\
|
||||
stepsPerX $det_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $det_Home\
|
||||
cntsPerX $det_CntsPerX]
|
||||
det part detector
|
||||
det long_name detector_y
|
||||
det precision 1
|
||||
det softlowerlim 500
|
||||
det softupperlim 19310
|
||||
det home 350.5
|
||||
det speed 53
|
||||
det Blockage_Fail 0
|
||||
|
||||
# Detector translation across beam [-50,450] mm
|
||||
# Looks like an non-metric screw pitch 0.2 inches / turn
|
||||
Motor detoff $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
host mc1-lyrebird\
|
||||
port pmc1-lyrebird\
|
||||
axis H\
|
||||
units mm\
|
||||
hardlowerlim -9\
|
||||
hardupperlim 465\
|
||||
maxSpeed 10\
|
||||
maxAccel 1\
|
||||
maxDecel 10\
|
||||
stepsPerX [expr -(25000.0*3.0)/5.08]\
|
||||
absEnc 1\
|
||||
absEncHome $detoff_Home\
|
||||
cntsPerX [expr 8192.0/5.08]]
|
||||
detoff part detector
|
||||
detoff long_name detector_x
|
||||
detoff softlowerlim 0
|
||||
detoff softupperlim 450
|
||||
detoff home 0
|
||||
|
||||
############################
|
||||
# Motor Controller 2
|
||||
# Motor Controller 2
|
||||
# Motor Controller 2
|
||||
############################
|
||||
#:TP at HOME
|
||||
#
|
||||
|
||||
# Collimation motor 1
|
||||
Motor pc1 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis A\
|
||||
units mm\
|
||||
hardlowerlim -295\
|
||||
hardupperlim 95\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc1_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc1 posit_1 [expr $pc1_Guide]
|
||||
pc1 posit_2 [expr $pc1_Empty]
|
||||
pc1 posit_3 [expr $pc1_Polarizer]
|
||||
pc1 part collimator
|
||||
pc1 long_name pc1
|
||||
setHomeandRange -motor pc1 -home 0 -lowrange 295 -uprange 95
|
||||
pc1 speed 6
|
||||
pc1 creep_offset 1
|
||||
|
||||
# Collimation motor 2
|
||||
Motor pc2 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis B\
|
||||
units mm\
|
||||
hardlowerlim -295\
|
||||
hardupperlim 95\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc2_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc2 posit_1 [expr $pc2_Guide]
|
||||
pc2 posit_2 [expr $pc2_Empty]
|
||||
pc2 posit_3 [expr $pc2_Polarizer]
|
||||
pc2 part collimator
|
||||
pc2 long_name pc2
|
||||
setHomeandRange -motor pc2 -home 0 -lowrange 295 -uprange 95
|
||||
pc2 speed 6
|
||||
pc2 creep_offset 1
|
||||
|
||||
# Collimation motor 3
|
||||
Motor pc3 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis C\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc3_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc3 posit_1 [expr $pc3_Empty]
|
||||
pc3 posit_2 [expr $pc3_Guide]
|
||||
pc3 posit_3 [expr $pc3_Aperture]
|
||||
pc3 part collimator
|
||||
pc3 long_name pc3
|
||||
setHomeandRange -motor pc3 -home 0 -lowrange 190 -uprange 190
|
||||
pc3 speed 6
|
||||
pc3 creep_offset 1
|
||||
|
||||
# Collimation motor 4
|
||||
Motor pc4 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis D\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc4_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc4 posit_1 [expr $pc4_Empty]
|
||||
pc4 posit_2 [expr $pc4_Guide]
|
||||
pc4 posit_3 [expr $pc4_Aperture]
|
||||
pc4 part collimator
|
||||
pc4 long_name pc4
|
||||
setHomeandRange -motor pc4 -home 0 -lowrange 190 -uprange 190
|
||||
pc4 speed 6
|
||||
pc4 creep_offset 1
|
||||
|
||||
# Collimation motor 5
|
||||
Motor pc5 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis E\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc5_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc5 posit_1 [expr $pc5_Empty]
|
||||
pc5 posit_2 [expr $pc5_Guide]
|
||||
pc5 posit_3 [expr $pc5_Aperture]
|
||||
pc5 part collimator
|
||||
pc5 long_name pc5
|
||||
setHomeandRange -motor pc5 -home 0 -lowrange 190 -uprange 190
|
||||
pc5 speed 6
|
||||
pc5 creep_offset 1
|
||||
|
||||
# Collimation motor 6
|
||||
Motor pc6 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis F\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc6_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc6 posit_1 [expr $pc6_Empty]
|
||||
pc6 posit_2 [expr $pc6_Guide]
|
||||
pc6 posit_3 [expr $pc6_Aperture]
|
||||
pc6 part collimator
|
||||
pc6 long_name pc6
|
||||
setHomeandRange -motor pc6 -home 0 -lowrange 190 -uprange 190
|
||||
pc6 speed 6
|
||||
pc6 creep_offset 1
|
||||
|
||||
# Collimation motor 7
|
||||
Motor pc7 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis G\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc7_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc7 posit_1 [expr $pc7_Empty]
|
||||
pc7 posit_2 [expr $pc7_Guide]
|
||||
pc7 posit_3 [expr $pc7_Aperture]
|
||||
pc7 part collimator
|
||||
pc7 long_name pc7
|
||||
setHomeandRange -motor pc7 -home 0 -lowrange 190 -uprange 190
|
||||
pc7 speed 6
|
||||
pc7 creep_offset 1
|
||||
|
||||
# Collimation motor 8
|
||||
Motor pc8 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-lyrebird\
|
||||
port pmc2-lyrebird\
|
||||
axis H\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc8_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc8 posit_1 [expr $pc8_Empty]
|
||||
pc8 posit_2 [expr $pc8_Guide]
|
||||
pc8 posit_3 [expr $pc8_Aperture]
|
||||
pc8 part collimator
|
||||
pc8 long_name pc8
|
||||
setHomeandRange -motor pc8 -home 0 -lowrange 190 -uprange 190
|
||||
pc8 speed 6
|
||||
pc8 creep_offset 1
|
||||
|
||||
############################
|
||||
# Motor Controller 3
|
||||
# Motor Controller 3
|
||||
# Motor Controller 3
|
||||
############################
|
||||
#
|
||||
|
||||
# Collimation motor 9
|
||||
Motor pc9 $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
host mc3-lyrebird\
|
||||
port pmc3-lyrebird\
|
||||
axis A\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc9_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 3]
|
||||
pc9 posit_1 [expr $pc9_Empty]
|
||||
pc9 posit_2 [expr $pc9_Guide]
|
||||
pc9 posit_3 [expr $pc9_Aperture]
|
||||
pc9 part collimator
|
||||
pc9 long_name pc9
|
||||
setHomeandRange -motor pc9 -home 0 -lowrange 190 -uprange 190
|
||||
pc9 speed 6
|
||||
pc9 creep_offset 1
|
||||
|
||||
# Collimation motor 10
|
||||
Motor pc10 $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
host mc3-lyrebird\
|
||||
port pmc3-lyrebird\
|
||||
axis B\
|
||||
units mm\
|
||||
hardlowerlim -190\
|
||||
hardupperlim 190\
|
||||
maxSpeed 6\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $coll_StepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $pc10_Home\
|
||||
cntsPerX $coll_CntsPerX\
|
||||
posit_count 5]
|
||||
pc10 posit_1 [expr $pc10_Lens]
|
||||
pc10 posit_2 [expr $pc10_Empty]
|
||||
pc10 posit_3 [expr $pc10_Guide]
|
||||
pc10 posit_4 [expr $pc10_Aperture]
|
||||
pc10 posit_5 [expr $pc10_LensandPrism]
|
||||
pc10 part collimator
|
||||
pc10 long_name pc10
|
||||
setHomeandRange -motor pc10 -home 0 -lowrange 190 -uprange 190
|
||||
pc10 speed 6
|
||||
pc10 creep_offset 1
|
||||
|
||||
# Pentaprism
|
||||
Motor pent $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
host mc3-lyrebird\
|
||||
port pmc3-lyrebird\
|
||||
axis C\
|
||||
units mm\
|
||||
hardlowerlim -30\
|
||||
hardupperlim 300\
|
||||
maxSpeed 1\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX [expr 25000.0/3.0]\
|
||||
absEnc 1\
|
||||
absEncHome $pent_Home\
|
||||
cntsPerX [expr -8192.0/3.0]]
|
||||
pent part collimator
|
||||
pent long_name pent
|
||||
setHomeandRange -motor pent -home 0 -lowrange 30 -uprange 300
|
||||
pent speed 1
|
||||
|
||||
# Rotary source aperture
|
||||
Motor srce $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
host mc3-lyrebird\
|
||||
port pmc3-lyrebird\
|
||||
axis D\
|
||||
units degrees\
|
||||
hardlowerlim -10\
|
||||
hardupperlim 340\
|
||||
maxSpeed 1\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX [expr 25000.0/6.0]\
|
||||
absEnc 1\
|
||||
absEncHome $srce_Home\
|
||||
cntsPerX [expr -8192.0/6.0]\
|
||||
posit_count 12]
|
||||
srce part collimator
|
||||
srce long_name srce
|
||||
srce home 180
|
||||
srce softlowerlim -10
|
||||
srce softupperlim 340
|
||||
srce speed 1
|
||||
srce posit_1 $srce_Home
|
||||
srce posit_2 [expr $srce_Home - (1 * 5 * 8192)]
|
||||
srce posit_3 [expr $srce_Home - (2 * 5 * 8192)]
|
||||
srce posit_4 [expr $srce_Home - (3 * 5 * 8192)]
|
||||
srce posit_5 [expr $srce_Home - (4 * 5 * 8192)]
|
||||
srce posit_6 [expr $srce_Home - (5 * 5 * 8192)]
|
||||
srce posit_7 [expr $srce_Home - (6 * 5 * 8192)]
|
||||
srce posit_8 [expr $srce_Home - (7 * 5 * 8192)]
|
||||
srce posit_9 [expr $srce_Home - (8 * 5 * 8192)]
|
||||
srce posit_10 [expr $srce_Home - (9 * 5 * 8192)]
|
||||
srce posit_11 [expr $srce_Home - (10 * 5 * 8192)]
|
||||
srce posit_12 [expr $srce_Home - (11 * 5 * 8192)]
|
||||
|
||||
# Sample aperture x
|
||||
Motor apx $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
host mc3-lyrebird\
|
||||
port pmc3-lyrebird\
|
||||
axis E\
|
||||
units mm\
|
||||
hardlowerlim -260\
|
||||
hardupperlim 5\
|
||||
maxSpeed 5\
|
||||
maxAccel 5\
|
||||
maxDecel 5\
|
||||
stepsPerX 2500\
|
||||
absEnc 1\
|
||||
absEncHome $apx_Home\
|
||||
cntsPerX -819.2]
|
||||
apx part collimator
|
||||
apx long_name apx
|
||||
apx home 0
|
||||
apx softlowerlim -255
|
||||
apx softupperlim 5
|
||||
apx speed 5
|
||||
|
||||
# Sample aperture y
|
||||
#Motor apz $motor_driver_type [params \
|
||||
# asyncqueue mc3\
|
||||
# host mc3-lyrebird\
|
||||
# port pmc3-lyrebird\
|
||||
# axis F\
|
||||
# units mm\
|
||||
# hardlowerlim -10\
|
||||
# hardupperlim 10\
|
||||
# maxSpeed 1\
|
||||
# maxAccel 1\
|
||||
# maxDecel 1\
|
||||
# stepsPerX 25000\
|
||||
# absEnc 1\
|
||||
# absEncHome $apz_Home\
|
||||
# cntsPerX -8192]
|
||||
#apz part collimator
|
||||
#apz long_name apz
|
||||
#setHomeandRange -motor apz -home 0 -lowrange 0 -uprange 5
|
||||
#apz speed 1
|
||||
|
||||
# Rotary attenuator
|
||||
set att_factor [expr ((1.0 - (1.0)/360.0)*(3000.0/61.0))/360.0]
|
||||
Motor att $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
host mc3-lyrebird\
|
||||
port pmc3-lyrebird\
|
||||
axis G\
|
||||
units degrees\
|
||||
hardlowerlim -30\
|
||||
hardupperlim 7230\
|
||||
maxSpeed 10\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX [expr ($att_factor*25000.0)]\
|
||||
absEnc 1\
|
||||
absEncHome $att_Home\
|
||||
cntsPerX [expr -($att_factor*8192.0)]]
|
||||
att part collimator
|
||||
att long_name att
|
||||
setHomeandRange -motor att -home 0 -lowrange 0 -uprange 7230
|
||||
att speed 5
|
||||
# 2009-12-15 Attenuator wheel was re-installed 120 degrees out of whack!!!!!!
|
||||
att home -120
|
||||
|
||||
############################
|
||||
# Motor Controller 4
|
||||
# Motor Controller 4
|
||||
# Motor Controller 4
|
||||
############################
|
||||
#
|
||||
|
||||
# beam stop horizontal [-100,300] mm
|
||||
Motor bsx $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
host mc4-lyrebird\
|
||||
port pmc4-lyrebird\
|
||||
axis A\
|
||||
units mm\
|
||||
hardlowerlim 0\
|
||||
hardupperlim 317\
|
||||
maxSpeed 5\
|
||||
maxAccel 2\
|
||||
maxDecel 5\
|
||||
stepsPerX [expr -(25000.0*7.0)/5.0/1.02]\
|
||||
absEnc 1\
|
||||
absEncHome $bsx_Home\
|
||||
cntsPerX [expr 8192.0/5.0/1.02]]
|
||||
bsx part detector
|
||||
bsx long_name bsx
|
||||
bsx softlowerlim 0
|
||||
bsx softupperlim 310
|
||||
bsx speed 5
|
||||
bsx home 0
|
||||
|
||||
# beam stop vertical [-240,100] mm
|
||||
Motor bsz $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
host mc4-lyrebird\
|
||||
port pmc4-lyrebird\
|
||||
axis B\
|
||||
units mm\
|
||||
hardlowerlim 0\
|
||||
hardupperlim 280\
|
||||
maxSpeed 5\
|
||||
maxAccel 1\
|
||||
maxDecel 5\
|
||||
stepsPerX [expr (25000.0*7.0)/5.0/1.02]\
|
||||
absEnc 1\
|
||||
absEncHome $bsz_Home\
|
||||
cntsPerX [expr (8192.0*7.0)/5.0/1.02]]
|
||||
bsz part detector
|
||||
bsz long_name bsz
|
||||
bsz softlowerlim 0
|
||||
bsz softupperlim 275
|
||||
bsz home 0
|
||||
|
||||
# Largest beamstop
|
||||
Motor bs1 $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
axis C\
|
||||
units degrees\
|
||||
hardlowerlim 9\
|
||||
hardupperlim 95\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $bs_stepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $bs1_Home\
|
||||
cntsPerX $bs_cntsPerX]
|
||||
bs1 part detector
|
||||
bs1 long_name bs1
|
||||
bs1 softlowerlim 11
|
||||
bs1 softupperlim 95
|
||||
bs1 home 90
|
||||
bs1 precision 0.05
|
||||
|
||||
Motor bs2 $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
axis D\
|
||||
units degrees\
|
||||
hardlowerlim 6\
|
||||
hardupperlim 95\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $bs_stepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $bs2_Home\
|
||||
cntsPerX $bs_cntsPerX]
|
||||
bs2 part detector
|
||||
bs2 long_name bs2
|
||||
bs2 softlowerlim 7
|
||||
bs2 softupperlim 95
|
||||
bs2 home 90
|
||||
bs2 precision 0.05
|
||||
|
||||
Motor bs3 $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
axis E\
|
||||
units degrees\
|
||||
hardlowerlim 9\
|
||||
hardupperlim 95\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $bs_stepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $bs3_Home\
|
||||
cntsPerX $bs_cntsPerX]
|
||||
bs3 part detector
|
||||
bs3 long_name bs3
|
||||
bs3 softlowerlim 11
|
||||
bs3 softupperlim 95
|
||||
bs3 home 90
|
||||
bs3 precision 0.05
|
||||
|
||||
Motor bs4 $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
axis F\
|
||||
units degrees\
|
||||
hardlowerlim 6\
|
||||
hardupperlim 95\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $bs_stepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $bs4_Home\
|
||||
cntsPerX $bs_cntsPerX]
|
||||
bs4 part detector
|
||||
bs4 long_name bs4
|
||||
bs4 softlowerlim 7
|
||||
bs4 softupperlim 95
|
||||
bs4 home 90
|
||||
bs4 precision 0.05
|
||||
|
||||
Motor bs5 $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
axis G\
|
||||
units degrees\
|
||||
hardlowerlim 9\
|
||||
hardupperlim 95\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $bs_stepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $bs5_Home\
|
||||
cntsPerX $bs_cntsPerX]
|
||||
bs5 part detector
|
||||
bs5 long_name bs5
|
||||
bs5 softlowerlim 11
|
||||
bs5 softupperlim 95
|
||||
bs5 home 90
|
||||
bs5 precision 0.05
|
||||
|
||||
Motor bs6 $motor_driver_type [params \
|
||||
asyncqueue mc4\
|
||||
axis H\
|
||||
units degrees\
|
||||
hardlowerlim 6\
|
||||
hardupperlim 95\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX $bs_stepsPerX\
|
||||
absEnc 1\
|
||||
absEncHome $bs6_Home\
|
||||
cntsPerX $bs_cntsPerX]
|
||||
bs6 part detector
|
||||
bs6 long_name bs6
|
||||
bs6 softlowerlim 7
|
||||
bs6 softupperlim 95
|
||||
bs6 home 90
|
||||
bs6 precision 0.05
|
||||
|
||||
# Polarizer Rotation
|
||||
#Motor pol $motor_driver_type [params \
|
||||
# asyncqueue mc4\
|
||||
# host mc4-lyrebird\
|
||||
# port pmc4-lyrebird\
|
||||
# axis H\
|
||||
# units degrees\
|
||||
# hardlowerlim 0\
|
||||
# hardupperlim 3\
|
||||
# maxSpeed 1\
|
||||
# maxAccel 1\
|
||||
# maxDecel 5\
|
||||
# stepsPerX 25000\
|
||||
# absEnc 1\
|
||||
# absEncHome $pol_Home\
|
||||
# cntsPerX 8192]
|
||||
#pol part detector
|
||||
#pol long_name pol
|
||||
#pol softlowerlim 0
|
||||
#pol softupperlim 3
|
||||
#pol home 0
|
||||
|
||||
proc motor_set_sobj_attributes {} {
|
||||
}
|
||||
# END MOTOR CONFIGURATION
|
||||
|
||||
# According to http://www.nexusformat.org/Design units must conform to
|
||||
# http://www.unidata.ucar.edu/software/udunits/udunits-1/udunits.txt
|
||||
# So we use "count" for dimensionless decimal numbers
|
||||
set vc_units count
|
||||
make_coll_motor_2 c1 section_1 pc1 pc2 $vc_units
|
||||
make_coll_motor_1 c2 section_2 pc3 $vc_units
|
||||
make_coll_motor_1 c3 section_3 pc4 $vc_units
|
||||
make_coll_motor_1 c4 section_4 pc5 $vc_units
|
||||
make_coll_motor_1 c5 section_5 pc6 $vc_units
|
||||
make_coll_motor_1 c6 section_6 pc7 $vc_units
|
||||
make_coll_motor_1 c7 section_7 pc8 $vc_units
|
||||
make_coll_motor_1 c8 section_8 pc9 $vc_units
|
||||
make_coll_motor_1 c9 section_9 pc10 $vc_units
|
||||
unset vc_units
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
source $cfPath(motors)/sct_positmotor_common.tcl
|
||||
|
||||
set port1 [portnum pmc1-lyrebird]
|
||||
set port2 [portnum pmc2-lyrebird]
|
||||
set port3 [portnum pmc3-lyrebird]
|
||||
set port4 [portnum pmc4-lyrebird]
|
||||
makesctcontroller sct_mc1 std mc1-lyrebird:$port1
|
||||
makesctcontroller sct_mc2 std mc2-lyrebird:$port2
|
||||
makesctcontroller sct_mc3 std mc3-lyrebird:$port3
|
||||
makesctcontroller sct_mc4 std mc4-lyrebird:$port4
|
||||
|
||||
# label pos
|
||||
#index position
|
||||
set 20sample_table {
|
||||
1 453.7
|
||||
2 411.7
|
||||
3 369.7
|
||||
4 327.7
|
||||
5 285.7
|
||||
6 203.7
|
||||
7 161.7
|
||||
8 119.7
|
||||
9 77.7
|
||||
10 35.7
|
||||
11 -46.3
|
||||
12 -88.3
|
||||
13 -130.3
|
||||
14 -172.3
|
||||
15 -214.3
|
||||
16 -296.3
|
||||
17 -338.3
|
||||
18 -380.3
|
||||
19 -422.3
|
||||
20 -464.3
|
||||
}
|
||||
|
||||
mkPosit sct_mc1 sampleNum float samx sample $20sample_table
|
||||
|
||||
#diameter position
|
||||
set auto_ap_table {
|
||||
2.5 0
|
||||
5.0 -23
|
||||
7.5 -47
|
||||
10.0 -72
|
||||
12.5 -98
|
||||
15.0 -125
|
||||
17.5 -153
|
||||
20.0 -183
|
||||
25.0 -215
|
||||
30.0 -250
|
||||
}
|
||||
mkPosit sct_mc3 diameter float apx sample $auto_ap_table
|
||||
|
||||
Reference in New Issue
Block a user