added Lyrebird instrument config

r3038 | jgn | 2010-12-13 16:10:57 +1100 (Mon, 13 Dec 2010) | 1 line
This commit is contained in:
Jing Chen
2010-12-13 16:10:57 +11:00
committed by Douglas Clowes
parent a3d551c8bb
commit 28772f6ec2
53 changed files with 4451 additions and 3 deletions

View File

@@ -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

View File

@@ -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