diff --git a/site_ansto/instrument/tas/config/motors/motor_configuration.tcl b/site_ansto/instrument/tas/config/motors/motor_configuration.tcl index d4fdb4c2..72aebcdd 100644 --- a/site_ansto/instrument/tas/config/motors/motor_configuration.tcl +++ b/site_ansto/instrument/tas/config/motors/motor_configuration.tcl @@ -22,6 +22,9 @@ set dmc2280_controller3(port) pmc3-$animal set dmc2280_controller4(host) mc4-$animal set dmc2280_controller4(port) pmc4-$animal +set dmc2280_controller6(host) mc6-$animal +set dmc2280_controller6(port) pmc6-$animal + if {$sim_mode == "true"} { set motor_driver_type asim } else { @@ -152,10 +155,10 @@ set move_count 100 # 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-taipan\ @@ -177,795 +180,675 @@ 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 \ +#if $use_tiltstage { +# mc1: Monochromator crystal selection rotation/Tilt +Motor mtilt $motor_driver_type [params \ asyncqueue mc1\ host mc1-taipan\ port pmc1-taipan\ axis A\ units degrees\ - hardlowerlim -20\ - hardupperlim 20\ - maxSpeed 1\ - maxAccel 5\ - maxDecel 5\ - stepsPerX 25000\ + hardlowerlim -5\ + hardupperlim 5\ + maxSpeed 5000\ + maxAccel 2048\ + maxDecel 2048\ + stepsPerX 4096\ absEnc 1\ absEncHome $samchi_Home\ - cntsPerX 8192] -samchi part sample -samchi long_name sample_chi -samchi softlowerlim -20 -samchi softupperlim 20 -samchi home 0 + cntsPerX 4096] +mtilt part sample +mtilt long_name mtilt +mtilt softlowerlim -5 +mtilt softupperlim 5 +mtilt home 0 +#} -# Sample tilt across beam [-20,+20] degrees -Motor samphi $motor_driver_type [params \ +# mc1: Monochromator Linear (Translate) +Motor mtrans $motor_driver_type [params \ asyncqueue mc1\ host mc1-taipan\ port pmc1-taipan\ 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-taipan\ - port pmc1-taipan\ - 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-taipan\ - port pmc1-taipan\ - 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-taipan\ - port pmc1-taipan\ - 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-taipan\ - port pmc1-taipan\ - 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-taipan\ - port pmc1-taipan\ - 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-taipan\ - port pmc1-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc2-taipan\ - 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-taipan\ - port pmc3-taipan\ - 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-taipan\ - port pmc3-taipan\ - 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-taipan\ - port pmc3-taipan\ - 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-taipan\ - port pmc3-taipan\ - axis D\ - units degrees\ hardlowerlim -10\ - hardupperlim 340\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX [expr 25000.0/6.0]\ + hardupperlim 195\ + maxSpeed 20000\ + maxAccel 2048\ + maxDecel 2048\ + stepsPerX 4096\ 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)] + absEncHome $samphi_Home\ + cntsPerX 4096] +mtrans part sample +mtrans long_name mtrans +mtrans softlowerlim -10 +mtrans softupperlim 195 +mtrans home 0 -# Sample aperture x -Motor apx $motor_driver_type [params \ +# mc1: Fight Tube Rotate +Motor m2 $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-taipan\ + port pmc1-taipan\ + axis F\ + units degrees\ + hardlowerlim -32.5\ + hardupperlim 53\ + maxSpeed 75000\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samx_Home\ + cntsPerX 4096] +m2 part sample +m2 long_name m2 +m2 softlowerlim -32.5 +m2 softupperlim 53 +m2 home 0 + +# mc1: Detector Rotate +Motor a2 $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-taipan\ + port pmc1-taipan\ + axis H\ + units degrees\ + hardlowerlim -55\ + hardupperlim 55\ + maxSpeed 100000\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samy_Home\ + cntsPerX 4096] +a2 part sample +a2 long_name a2 +a2 softlowerlim -55 +a2 softupperlim 55 +a2 home 0 + + +############################ +# Motor Controller 2 +# Motor Controller 2 +# Motor Controller 2 +############################ +# + +# mc2: Sample Tilt 1 +Motor sgu $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis A\ + units degrees\ + hardlowerlim -18\ + hardupperlim 19\ + maxSpeed 12500\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samz_Home\ + cntsPerX 4096] +sgu part sample +sgu long_name sgu +sgu softlowerlim -18 +sgu softupperlim 19 +sgu home 0 + +# mc2: Sample Tilt 2 +Motor sgl $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis B\ + units degrees\ + hardlowerlim -18\ + hardupperlim 18\ + maxSpeed 25000\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +sgl part sample +sgl long_name sgl +sgl softlowerlim -18 +sgl softupperlim 18 +sgl home 0 + +# mc2: Sample Up Tanslation +Motor stu $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis C\ + units degrees\ + hardlowerlim -15\ + hardupperlim 15\ + maxSpeed 30000\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +stu part sample +stu long_name stu +stu softlowerlim -15 +stu softupperlim 15 +stu home 0 + +# mc2: Sample Lower Tanslation +Motor stl $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis D\ + units degrees\ + hardlowerlim -15\ + hardupperlim 15\ + maxSpeed 30000\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +stl part sample +stl long_name stl +stl softlowerlim -15 +stl softupperlim 15 +stl home 0 + +# mc2: Sample Rotate +Motor s1 $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis E\ + units degrees\ + hardlowerlim -185\ + hardupperlim 124\ + maxSpeed 25000\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +s1 part sample +s1 long_name s1 +s1 softlowerlim -185 +s1 softupperlim 124 +s1 home 0 + +# mc2: Analyser Detector Rotate -- Sample Scattering Angle +Motor s2 $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis F\ + units degrees\ + hardlowerlim -128\ + hardupperlim 3\ + maxSpeed 100000\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +s2 part sample +s2 long_name s2 +s2 softlowerlim -128 +s2 softupperlim 3 +s2 home 0 + +# mc2: Analyser Horizontal Focus +Motor ahfocus $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis G\ + units degrees\ + hardlowerlim -360\ + hardupperlim 360\ + maxSpeed 2000\ + maxAccel 1000\ + maxDecel 1000\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +ahfocus part sample +ahfocus long_name ahfocus +ahfocus softlowerlim -360 +ahfocus softupperlim 360 +ahfocus home 0 + +# mc2: Analyser Vertical Focus +Motor avfocus $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-taipan\ + port pmc2-taipan\ + axis H\ + units degrees\ + hardlowerlim -200\ + hardupperlim 0\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 8192\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +avfocus part sample +avfocus long_name avfocus +avfocus softlowerlim -200 +avfocus softupperlim 0 +avfocus home 0 + +# mc3: Monochromator Vertical Focus +Motor mvfocus $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-taipan\ + port pmc3-taipan\ + axis A\ + units degrees\ + hardlowerlim 0\ + hardupperlim 240\ + maxSpeed 25000\ + maxAccel 8192\ + maxDecel 4096\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +mvfocus part sample +mvfocus long_name mvfocus +mvfocus softlowerlim 0 +mvfocus softupperlim 240 +mvfocus home 0 + +# mc3: Monochromator Horizontal Focus +Motor mhfocus $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-taipan\ + port pmc3-taipan\ + axis B\ + units degrees\ + hardlowerlim -180\ + hardupperlim 275\ + maxSpeed 25000\ + maxAccel 8192\ + maxDecel 4096\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +mhfocus part sample +mhfocus long_name mhfocus +mhfocus softlowerlim 0 +mhfocus softupperlim 240 +mhfocus home 0 + +# mc3: Monochromator Rotate +Motor m1 $motor_driver_type [params \ asyncqueue mc3\ host mc3-taipan\ port pmc3-taipan\ 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-taipan\ -# port pmc3-taipan\ -# 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-taipan\ - port pmc3-taipan\ - axis G\ units degrees\ - hardlowerlim -30\ - hardupperlim 7230\ - maxSpeed 10\ - maxAccel 1\ - maxDecel 1\ - stepsPerX [expr ($att_factor*25000.0)]\ + hardlowerlim 5\ + hardupperlim 40\ + maxSpeed 75000\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 4096\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +m1 part sample +m1 long_name m1 +m1 softlowerlim 5 +m1 softupperlim 40 +m1 home 0 -############################ -# Motor Controller 4 -# Motor Controller 4 -# Motor Controller 4 -############################ -# - -# beam stop horizontal [-100,300] mm -Motor bsx $motor_driver_type [params \ +# mc4: Analyzer Tilt 1 -- Two-theta Angle +Motor atilt $motor_driver_type [params \ asyncqueue mc4\ host mc4-taipan\ port pmc4-taipan\ axis A\ - units mm\ - hardlowerlim 0\ - hardupperlim 317\ - maxSpeed 5\ - maxAccel 2\ - maxDecel 5\ - stepsPerX [expr -(25000.0*7.0)/5.0/1.02]\ + units degrees\ + hardlowerlim -5\ + hardupperlim 5\ + maxSpeed 100000\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +atilt part sample +atilt long_name atilt +atilt softlowerlim -5 +atilt softupperlim 5 +atilt home 0 -# beam stop vertical [-240,100] mm -Motor bsz $motor_driver_type [params \ +# mc4: Analyzer Translate +Motor atrans $motor_driver_type [params \ asyncqueue mc4\ host mc4-taipan\ port pmc4-taipan\ - 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\ + hardlowerlim -1\ + hardupperlim 22\ + maxSpeed 100000\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +atrans part sample +atrans long_name atrans +atrans softlowerlim -1 +atrans softupperlim 22 +atrans home 0 -Motor bs2 $motor_driver_type [params \ +# mc4: Analyzer Rotate +Motor a1 $motor_driver_type [params \ asyncqueue mc4\ + host mc4-taipan\ + port pmc4-taipan\ axis D\ units degrees\ - hardlowerlim 6\ - hardupperlim 95\ - maxSpeed 2\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $bs_stepsPerX\ + hardlowerlim -5.1\ + hardupperlim 30\ + maxSpeed 50000\ + maxAccel 32768\ + maxDecel 32768\ + stepsPerX 8192\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +a1 part sample +a1 long_name a1 +a1 softlowerlim -5.1 +a1 softupperlim 30 +a1 home 0 -Motor bs3 $motor_driver_type [params \ +# mc4: Virtural Source Left Translation +Motor VS_left $motor_driver_type [params \ asyncqueue mc4\ + host mc4-taipan\ + port pmc4-taipan\ axis E\ - units degrees\ - hardlowerlim 9\ - hardupperlim 95\ - maxSpeed 2\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $bs_stepsPerX\ + units mm\ + hardlowerlim 2\ + hardupperlim 35\ + maxSpeed 12500\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 8192\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +VS_left part sample +VS_left long_name VS_left +VS_left softlowerlim 2 +VS_left softupperlim 35 +VS_left home 0 -Motor bs4 $motor_driver_type [params \ +# mc4: Virtural Source Right Translation +Motor VS_right $motor_driver_type [params \ asyncqueue mc4\ + host mc4-taipan\ + port pmc4-taipan\ axis F\ - units degrees\ - hardlowerlim 6\ - hardupperlim 95\ - maxSpeed 2\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $bs_stepsPerX\ + units mm\ + hardlowerlim -35\ + hardupperlim -2\ + maxSpeed 12500\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 8192\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +VS_right part sample +VS_right long_name VS_right +VS_right softlowerlim -35 +VS_right softupperlim -2 +VS_right home 0 -Motor bs5 $motor_driver_type [params \ +# mc4: Filter Rotate +Motor mfilter $motor_driver_type [params \ asyncqueue mc4\ + host mc4-taipan\ + port pmc4-taipan\ axis G\ units degrees\ - hardlowerlim 9\ - hardupperlim 95\ - maxSpeed 2\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $bs_stepsPerX\ + hardlowerlim 0\ + hardupperlim 360\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 8192\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +mfilter part sample +mfilter long_name mfilter +mfilter softlowerlim 0 +mfilter softupperlim 360 +mfilter home 0 -Motor bs6 $motor_driver_type [params \ +# mc4: Primary collimator Translate +Motor collimator $motor_driver_type [params \ asyncqueue mc4\ + host mc4-taipan\ + port pmc4-taipan\ axis H\ - units degrees\ - hardlowerlim 6\ - hardupperlim 95\ - maxSpeed 2\ - maxAccel 1\ - maxDecel 1\ - stepsPerX $bs_stepsPerX\ + units mm\ + hardlowerlim -112\ + hardupperlim 112\ + maxSpeed 12500\ + maxAccel 25000\ + maxDecel 25000\ + stepsPerX 4096\ 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 + absEncHome $samthet_Home\ + cntsPerX 4096] +mfilter part sample +mfilter long_name collimator +mfilter softlowerlim -112 +mfilter softupperlim 112 +mfilter home 0 -# Polarizer Rotation -#Motor pol $motor_driver_type [params \ -# asyncqueue mc4\ -# host mc4-taipan\ -# port pmc4-taipan\ -# 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 +# mc6: Pre-sample right aperture -- Slit s1 right Blade +Motor ps_right $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis A\ + units mm\ + hardlowerlim -27\ + hardupperlim -2\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +ps_right part sample +ps_right long_name ps_right +ps_right softlowerlim -27 +ps_right softupperlim -2 +ps_right home 0 + +# mc6: Pre-sample left aperture -- Slit s1 left Blade +Motor ps_left $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis B\ + units mm\ + hardlowerlim -27\ + hardupperlim -2\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +ps_left part sample +ps_left long_name ps_left +ps_left softlowerlim -27 +ps_left softupperlim -2 +ps_left home 0 + +# mc6: Pre-sample top aperture -- Slit s1 top Blade +Motor ps_top $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis C\ + units mm\ + hardlowerlim -200\ + hardupperlim -2\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +ps_top part sample +ps_top long_name ps_top +ps_top softlowerlim -200 +ps_top softupperlim -2 +ps_top home 0 + +# mc6: Pre-sample bottom aperture -- Slit s1 bottom Blade +Motor ps_bottom $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis D\ + units mm\ + hardlowerlim -200\ + hardupperlim -2\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +ps_bottom part sample +ps_bottom long_name ps_bottom +ps_bottom softlowerlim -200 +ps_bottom softupperlim -2 +ps_bottom home 0 + +# mc6: Pre-sample right aperture -- Slit s2 right Blade +Motor pa_right $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis E\ + units mm\ + hardlowerlim -26\ + hardupperlim 2\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +pa_right part sample +pa_right long_name pa_right +pa_right softlowerlim -26 +pa_right softupperlim 2 +pa_right home 0 + +# mc6: Pre-sample left aperture -- Slit s2 left Blade +Motor pa_left $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis F\ + units mm\ + hardlowerlim -26\ + hardupperlim 2\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +pa_left part sample +pa_left long_name pa_left +pa_left softlowerlim -26 +pa_left softupperlim 2 +pa_left home 0 + +# mc6: Pre-sample top aperture -- Slit s2 top Blade +Motor pa_top $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis G\ + units mm\ + hardlowerlim -200\ + hardupperlim 0\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +pa_left part sample +pa_left long_name pa_top +pa_left softlowerlim -200 +pa_left softupperlim 0 +pa_left home 0 + +# mc6: Pre-sample bottom aperture -- Slit s2 bottom Blade +Motor pa_bottom $motor_driver_type [params \ + asyncqueue mc6\ + host mc6-taipan\ + port pmc6-taipan\ + axis H\ + units mm\ + hardlowerlim -200\ + hardupperlim 0\ + maxSpeed 30000\ + maxAccel 60000\ + maxDecel 60000\ + stepsPerX 4096\ + absEnc 1\ + absEncHome $samthet_Home\ + cntsPerX 4096] +pa_bottom part sample +pa_bottom long_name pa_bottom +pa_bottom softlowerlim -200 +pa_bottom softupperlim 0 +pa_bottom home 0 proc motor_set_sobj_attributes {} { } @@ -974,15 +857,15 @@ proc motor_set_sobj_attributes {} { # 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 +#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