diff --git a/site_ansto/instrument/kookaburra/config/motors/motor_configuration.tcl b/site_ansto/instrument/kookaburra/config/motors/motor_configuration.tcl index c0212cc1..4370b123 100644 --- a/site_ansto/instrument/kookaburra/config/motors/motor_configuration.tcl +++ b/site_ansto/instrument/kookaburra/config/motors/motor_configuration.tcl @@ -1,8 +1,10 @@ +###################################################################### +# +# Motor Configuration file for Kookaburra +# # Author: Jing Chen (jgn@ansto.gov.au) -# All Motors are 25000 steps per motor revolution - -# SET TO 1 TO USE THE TILT STAGE ie sample phi and chi -set use_tiltstage 0 +# +####################################################################### set animal kookaburra set sim_mode [SplitReply [motor_simulation]] @@ -17,84 +19,24 @@ 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 - -set dmc2280_controller5(host) mc5-$animal -set dmc2280_controller5(port) pmc5-$animal - -set dmc2280_controller6(host) mc6-$animal -set dmc2280_controller6(port) pmc6-$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 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) -# MakeAsyncQueue mc6 DMC2280 $dmc2280_controller6(host) $dmc2280_controller6(port) +# MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port) } -#Measured absolute encoder reading at home position +# Dummy simulation motor, useful for testing scans + set dummy_Home 0 - -set ftz_Home 0 -set ptz_Home 0 -set pom_Home 0 -set stth_Home 0 -set mtth_Home 0 - -set sv1_Home 0 -set sh1_Home 0 -set sv2_Home 0 -set sh2_Home 0 -set gom_Home 0 -set scor_Home 0 - -# AND abs Encoder Reading with FFF to get the lowest 12 bits only -#set mra_Home 4286 -set mra_Home 191 -#set moma_Home 8386659 -set moma_Home 2147 -#set mrb_Home 294 -set mrb_Home 294 -#set momb_Home 8386694 -set momb_Home 2182 -#set mrc_Home 4558982 -set mrc_Home 86 -#set momc_Home 12499198 -set momc_Home 2302 - -set mphi_Home 0 -set mchi_Home 8383096 -set mx_Home 8390604 -set my_Home 8391084 -set mom_Home 8389414 - -set rco_Home 0 -set rcz_Home 0 -set bsr_Home 0 -set gv1_Home 0 -set gv2_Home 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 -############################ -# - -# Dummy translation motor, useful for testing scans - -#Motor dummy_motor asim [params \ +Motor dummy_motor asim [params \ asyncqueue mc1\ host mc1-kookaburra\ port pmc1-kookaburra\ @@ -109,135 +51,177 @@ set move_count 100 absEnc 1\ absEncHome $dummy_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 +dummy_motor part instrument +dummy_motor long_name dummy_motor +dummy_motor softlowerlim -500 +dummy_motor softupperlim 500 +dummy_motor home 0 -# mc1: Polariser & Spin Flipper - Z translation slide -# Moto: 100:1 gear, 2mm pitch -set ptzStepRate [expr (300000.0/100.0)/2.0] -Motor ptz $motor_driver_type [params \ +# all motor rate is 25000steps/turn if no other specify +set motorrate 25000.0 + +############################ +# Motor Controller 1 +# Motor Controller 1 +# Motor Controller 1 +############################ + + +# mc1: Be Filter Y Translation +# Gearbox +set bex_Home 0 +set bexStepRate [expr (300000.0/100.0)/2.0] +Motor bex $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-kookaburra\ + port pmc1-kookaburra\ + axis A\ + units mm\ + hardlowerlim 0\ + hardupperlim 500\ + maxSpeed [expr 400000.0/300000.0]\ + maxAccel [expr 150000.0/300000.0]\ + maxDecel [expr 150000.0/300000.0]\ + stepsPerX $bexStepRate\ + absEnc 1\ + absEncHome $bex_Home\ + cntsPerX 4096] +bex part crystal +bex long_name bex +bex softlowerlim 0 +bex softupperlim 500 +bex home 0 + + +# mc1: Premonochromator Crystal Si(111) Tilt +# Gearbox 50:1, +set pmchi_Home 0 +set pmchiStepRate [expr (300000.0/100.0)/2.0] +Motor pmchi $motor_driver_type [params \ asyncqueue mc1\ host mc1-kookaburra\ port pmc1-kookaburra\ axis B\ - units mm\ + units degrees\ hardlowerlim 0\ hardupperlim 500\ maxSpeed [expr 400000.0/300000.0]\ maxAccel [expr 150000.0/300000.0]\ maxDecel [expr 150000.0/300000.0]\ - stepsPerX $ptzStepRate\ + stepsPerX $pmchiStepRate\ absEnc 1\ - absEncHome $ptz_Home\ + absEncHome $pmchi_Home\ cntsPerX 4096] -ptz part crystal -ptz long_name ptz -ptz softlowerlim 0 -ptz softupperlim 500 -ptz home 0 +pmchi part crystal +pmchi long_name pmchi +pmchi softlowerlim 0 +pmchi softupperlim 500 +pmchi home 0 -#if $use_tiltstage { -# mc1: Beryllium / Graphite filter shared - Z translation slide -# Moto: 100:1 gear, 2mm pitch -set ftzStepRate [expr (300000.0/100.0)/2.0] -Motor ftz $motor_driver_type [params \ +# mc1: Premonochromator Crystal Si(111) Rotate +# Gearbox 100:1, +set pmom_Home 0 +set pmomStepRate [expr (300000.0/100.0)/2.0] +Motor pmom $motor_driver_type [params \ asyncqueue mc1\ host mc1-kookaburra\ port pmc1-kookaburra\ axis C\ + units degrees\ + hardlowerlim 0\ + hardupperlim 500\ + maxSpeed [expr 400000.0/300000.0]\ + maxAccel [expr 150000.0/300000.0]\ + maxDecel [expr 150000.0/300000.0]\ + stepsPerX $pmomStepRate\ + absEnc 1\ + absEncHome $pmom_Home\ + cntsPerX 4096] +pmom part crystal +pmom long_name pmom +pmom softlowerlim 0 +pmom softupperlim 500 +pmom home 0 + + +# mc1: Main Detector - Y Translate +# Gearbox 23:1 +set mdet_Home 0 +set mdetStepRate [expr (300000.0/100.0)/2.0] +Motor mdet $motor_driver_type [params \ + asyncqueue mc1\ + host mc1-kookaburra\ + port pmc1-kookaburra\ + axis D\ units mm\ hardlowerlim 0\ hardupperlim 500\ maxSpeed [expr 400000.0/300000.0]\ maxAccel [expr 150000.0/300000.0]\ maxDecel [expr 150000.0/300000.0]\ - stepsPerX $ftzStepRate\ + stepsPerX $mdetStepRate\ absEnc 1\ - absEncHome $ftz_Home\ + absEncHome $mdet_Home\ cntsPerX 4096] -ftz part crystal -ftz long_name ftz -ftz softlowerlim 0 -ftz softupperlim 500 -ftz home 0 -} +mdet part detector +mdet long_name mdet +mdet softlowerlim 0 +mdet softupperlim 500 +mdet home 0 -# mc1: Polariser (& Spin Flipper) - Rotation + - 2 deg about polariser (i.e, The Elbow) -set pomSetRate 25000 -Motor pom $motor_driver_type [params \ - asyncqueue mc1\ - host mc1-kookaburra\ - port pmc1-kookaburra\ - axis E\ - units degrees\ - hardlowerlim 0\ - hardupperlim 2\ - maxSpeed [expr 250000.0/$pomSetRate]\ - maxAccel [expr 25000.0/$pomSetRate]\ - maxDecel [expr 25000.0/$pomSetRate]\ - stepsPerX $pomSetRate\ - absEnc 1\ - absEncHome $pom_Home\ - cntsPerX 4096] -pom part crystal -pom long_name pom -pom softlowerlim 0 -pom softupperlim 2 -pom home 0 - -# mc1: Sample/Detector Chamber Rotation (Detector) -set stthSetRate 25000 - -Motor stth $motor_driver_type [params \ +# mc1: Tertiary Beam Shutter, status only and is controlled via PLC panel +# Gearbox +set plc_tertiary 0 +set plc_tertiaryStepRate [expr (300000.0/100.0)/2.0] +Motor plc_tertiary $motor_driver_type [params \ asyncqueue mc1\ host mc1-kookaburra\ port pmc1-kookaburra\ axis F\ - units degrees\ - hardlowerlim -125\ - hardupperlim 8\ - maxSpeed [expr 150000.0/$stthSetRate]\ - maxAccel [expr 5000.0/$stthSetRate]\ - maxDecel [expr 5000.0/$stthSetRate]\ - stepsPerX $stthSetRate\ + units mm\ + hardlowerlim 0\ + hardupperlim 2\ + maxSpeed [expr 250000.0/$plc_tertiarySetRate]\ + maxAccel [expr 25000.0/$plc_tertiarySetRate]\ + maxDecel [expr 25000.0/$plc_tertiarySetRate]\ + stepsPerX $plc_tertiarySetRate\ absEnc 1\ - absEncHome $stth_Home\ + absEncHome $plc_tertiary_Home\ cntsPerX 4096] -stth part detector -stth long_name stth -stth softlowerlim -125 -stth softupperlim 8 -stth home 0 +plc_tertiary part detector +plc_tertiary long_name plc_tertiary +plc_tertiary softlowerlim 0 +plc_tertiary softupperlim 2 +plc_tertiary home 0 -# mc1: Instrument Drive System (Main Drive) -set mtthSetRate 25000 -Motor mtth $motor_driver_type [params \ +# mc1: Detector Stage Y Attenuator +# Gearbox +set att_Home 0 +set attSetRate 25000 +Motor att $motor_driver_type [params \ asyncqueue mc1\ host mc1-kookaburra\ port pmc1-kookaburra\ axis G\ units mm\ - hardlowerlim 40\ - hardupperlim 140\ - maxSpeed [expr 150000.0/$mtthSetRate]\ - maxAccel [expr 25000.0/$mtthSetRate]\ - maxDecel [expr 25000.0/$mtthSetRate]\ - stepsPerX $mtthSetRate\ + hardlowerlim -125\ + hardupperlim 8\ + maxSpeed [expr 150000.0/$attSetRate]\ + maxAccel [expr 5000.0/$attSetRate]\ + maxDecel [expr 5000.0/$attSetRate]\ + stepsPerX $attSetRate\ absEnc 1\ - absEncHome $mtth_Home\ + absEncHome $att_Home\ cntsPerX 4096] -mtth part detector -mtth long_name mtth -mtth softlowerlim 40 -mtth softupperlim 140 -mtth home 0 +att part detector +att long_name att +att softlowerlim -125 +att softupperlim 8 +att home 0 ############################ @@ -247,58 +231,63 @@ mtth home 0 ############################ # -# mc2: Slits Set AB1- (After Beryllium Filter) (2 blades and 1 Motor & Encoder set) -set sv1SetRate 25000 - -Motor sv1 $motor_driver_type [params \ +# mc2: CC1 Monochromator Stage Tilt +# Gearbox 50:1 +set m1chi_Home 0 +set m1chiSetRate 25000 +Motor m1chi $motor_driver_type [params \ asyncqueue mc2\ host mc2-kookaburra\ port pmc2-kookaburra\ axis A\ - units mm\ + units degrees\ hardlowerlim -2\ hardupperlim 60\ - maxSpeed [expr 25000.0/$sv1SetRate]\ - maxAccel [expr 25000.0/$sv1SetRate]\ - maxDecel [expr 25000.0/$sv1SetRate]\ - stepsPerX $sv1SetRate\ + maxSpeed [expr 25000.0/$m1chiSetRate]\ + maxAccel [expr 25000.0/$m1chiSetRate]\ + maxDecel [expr 25000.0/$m1chiSetRate]\ + stepsPerX $m1chiSetRate\ absEnc 1\ - absEncHome $sv1_Home\ + absEncHome $m1chi_Home\ cntsPerX 4096] -sv1 part aperture -sv1 long_name sv1 -sv1 softlowerlim -2 -sv1 softupperlim 60 -sv1 home 0 +m1chi part crystal +m1chi long_name m1chi +m1chi softlowerlim -2 +m1chi softupperlim 60 +m1chi home 0 -# mc2: Slits Set AB2- (After Beryllium Filter) (2 blades and 1 Motor & Encoder set) -set sh1SetRate 25000 -Motor sh1 $motor_driver_type [params \ +# mc2: CC1 Monochromator Stage Rotation +# Gearbox 60:1 +set m1om_Home 0 +set m1omSetRate 25000 +Motor m1om $motor_driver_type [params \ asyncqueue mc2\ host mc2-kookaburra\ port pmc2-kookaburra\ axis B\ - units mm\ + units degrees\ hardlowerlim -2\ hardupperlim 50\ - maxSpeed [expr 25000.0/$sh1SetRate]\ - maxAccel [expr 25000.0/$sh1SetRate]\ - maxDecel [expr 25000.0/$sh1SetRate]\ - stepsPerX $sh1SetRate\ + maxSpeed [expr 25000.0/$m1omSetRate]\ + maxAccel [expr 25000.0/$m1omSetRate]\ + maxDecel [expr 25000.0/$m1omSetRate]\ + stepsPerX $m1omSetRate\ absEnc 1\ - absEncHome $sh1_Home\ + absEncHome $m1om_Home\ cntsPerX 4096] -sh1 part aperture -sh1 long_name sh1 -sh1 softlowerlim -2 -sh1 softupperlim 50 -sh1 home 0 +m1om part crystal +m1om long_name m1om +m1om softlowerlim -2 +m1om softupperlim 50 +m1om home 0 -# mc2: Slits Set AF1- (After Fermi Chopper) (2 blades and 1 Motor & Encoder set) -set sv2SetRate 25000 -Motor sv2 $motor_driver_type [params \ +# mc2: CC1 Monochromator Stage Y Translation +# Gearbox 20:1 +set m1x_Home 0 +set m1xSetRate 25000 +Motor m1x $motor_driver_type [params \ asyncqueue mc2\ host mc2-kookaburra\ port pmc2-kookaburra\ @@ -306,23 +295,25 @@ Motor sv2 $motor_driver_type [params \ units mm\ hardlowerlim -2\ hardupperlim 40\ - maxSpeed [expr 25000.0/$sv2SetRate]\ - maxAccel [expr 25000.0/$sv2SetRate]\ - maxDecel [expr 25000.0/$sv2SetRate]\ - stepsPerX $sv2SetRate\ + maxSpeed [expr 25000.0/$m1xSetRate]\ + maxAccel [expr 25000.0/$m1xSetRate]\ + maxDecel [expr 25000.0/$m1xSetRate]\ + stepsPerX $m1xSetRate\ absEnc 1\ - absEncHome $sv2_Home\ + absEncHome $m1x_Home\ cntsPerX 4096] -sv2 part aperture -sv2 long_name sv2 -sv2 softlowerlim -2 -sv2 softupperlim 40 -sv2 home 0 +m1x part crystal +m1x long_name m1x +m1x softlowerlim -2 +m1x softupperlim 40 +m1x home 0 -# mc2: Slits Set AF2- (After Fermi Chopper) (2 blades and 1 Motor & Encoder set) -set sh2SetRate 25000 -Motor sh2 $motor_driver_type [params \ +# mc2: Slit system - 1 TOP Blade +# Gearbox 55:1 +set ss1u_Home 0 +set ss1uSetRate 25000 +Motor ss1u $motor_driver_type [params \ asyncqueue mc2\ host mc2-kookaburra\ port pmc2-kookaburra\ @@ -330,531 +321,342 @@ Motor sh2 $motor_driver_type [params \ units mm\ hardlowerlim -2\ hardupperlim 30\ - maxSpeed [expr 25000.0/$sh2SetRate]\ - maxAccel [expr 25000.0/$sh2SetRate]\ - maxDecel [expr 25000.0/$sh2SetRate]\ - stepsPerX $sh2SetRate\ + maxSpeed [expr 25000.0/$ss1uSetRate]\ + maxAccel [expr 25000.0/$ss1uSetRate]\ + maxDecel [expr 25000.0/$ss1uSetRate]\ + stepsPerX $ss1uSetRate\ absEnc 1\ - absEncHome $sh2_Home\ + absEncHome $ss1u_Home\ cntsPerX 4096] -sh2 part aperture -sh2 long_name sh2 -sh2 softlowerlim -2 -sh2 softupperlim 30 -sh2 home 0 +ss1u parts slits +ss1u long_name ss1u +ss1u softlowerlim -2 +ss1u softupperlim 30 +ss1u home 0 -# mc2: Graphite filter rotation stage (post 1st slit and post 1st Fermi chopper) -set gomSetRate 25000 -Motor gom $motor_driver_type [params \ +# mc2: Slit system - 1 BOTTOM Blade +# Gearbox 55:1 +set ss1d_Home 0 +set ss1dSetRate 25000 +Motor ss1d $motor_driver_type [params \ asyncqueue mc2\ host mc2-kookaburra\ port pmc2-kookaburra\ axis E\ - units degrees\ + units mm\ hardlowerlim 0\ hardupperlim 15\ - maxSpeed [expr 50000.0/$gomSetRate]\ - maxAccel [expr 25000.0/$gomSetRate]\ - maxDecel [expr 25000.0/$gomSetRate]\ - stepsPerX $gomSetRate\ + maxSpeed [expr 50000.0/$ss1dSetRate]\ + maxAccel [expr 25000.0/$ss1dSetRate]\ + maxDecel [expr 25000.0/$ss1dSetRate]\ + stepsPerX $ss1dSetRate\ absEnc 1\ - absEncHome $gom_Home\ + absEncHome $ss1d_Home\ cntsPerX 4096] -gom part sample -gom long_name gom -gom softlowerlim 0 -gom softupperlim 15 -gom home 0 +ss1d part slits +ss1d long_name ss1d +ss1d softlowerlim 0 +ss1d softupperlim 15 +ss1d home 0 -# mc2: Sample rotation correction - 10 deg rotation -set scorSetRate 25000 -Motor scor $motor_driver_type [params \ +# mc2: Slit system - 1 LEFT Blade +# Gearbox 55:1 +set ss1l_Home 0 +set ss1lSetRate 25000 +Motor ss1l $motor_driver_type [params \ asyncqueue mc2\ host mc2-kookaburra\ port pmc2-kookaburra\ axis F\ - units degrees\ + units mm\ hardlowerlim 0\ hardupperlim 360\ - maxSpeed [expr 50000.0/$scorSetRate]\ - maxAccel [expr 25000.0/$scorSetRate]\ - maxDecel [expr 25000.0/$scorSetRate]\ - stepsPerX $scorSetRate\ + maxSpeed [expr 50000.0/$ss1lSetRate]\ + maxAccel [expr 25000.0/$ss1lSetRate]\ + maxDecel [expr 25000.0/$ss1lSetRate]\ + stepsPerX $ss1lSetRate\ absEnc 1\ - absEncHome $scor_Home\ + absEncHome $ss1l_Home\ cntsPerX 4096] -scor part sample -scor long_name scor -scor softlowerlim 0 -scor softupperlim 360 -scor home 0 - -############################ -# Motor Controller 3 -# Motor Controller 3 -# Motor Controller 3 -############################ -# - -# ROTATION STAGES 120:1 PLUS GEARBOX 8:1 -# ROTATION STAGE RESOLVER 360:55 - -# FOCUS STAGE GEARBOX 6:1 -# FOCUS STAGE RESOLVER DIRECT 310 DEG, 3527 COUNTS USABLE RANGE - -# Computes Monochromator step rates (steps per degree) of focusing and Rotation -# 1 unit here is 1 degree -set monoRotateStepsPerUnit [expr 25000.0*8.0*120.0/360.0] - -# Encode reading at the roation, 1 unit here is 1 degree -set MonoRotateCntsPerUnit [expr 4096.0*360.0/55.0/360.0] - -# Setup Focus range as min = 0 and max = 1, working range = 0 to 1 (310 degrees) -# or, 0 for full focus and 1 for non focus -# Focusing rate 25000 steps * 6:1 gears = 150000, 1 unit here is 310 degrees -set monoFocusStepsPerUnit [expr -25000.0*6.0*310.0/360.0] - -# Encode reading at Focusing stage, 1 unit here is 310 degrees -set monoFocusCntsPerUnit [expr 4096.0*310.0/360.0] - -# Max speed for Focusing , -- currently set as 0.083 -# speed unit here is 310 degrees -set monoFocusSpeed 0.05 -set monoFocusMaxSpeed 0.083 - -# Precision setting turn/move, or 310*turn/move (degrees) -set monoFocusprecision 0.001 - -# mc3: Monochromator Focusing 1 - Focus -Motor mra $motor_driver_type [params \ - asyncqueue mc3\ - host mc3-kookaburra\ - port pmc3-kookaburra\ - axis A\ - units degrees\ - hardlowerlim 0\ - hardupperlim 1\ - precision $monoFocusprecision\ - maxSpeed $monoFocusMaxSpeed\ - maxAccel [expr 25000.0/25000.0]\ - maxDecel [expr 25000.0/25000.0]\ - stepsPerX $monoFocusStepsPerUnit\ - absEnc 1\ - absEncHome $mra_Home\ - bias_bits 12\ - cntsPerX $monoFocusCntsPerUnit] -mra speed $monoFocusSpeed -mra accel $monoFocusSpeed -mra decel $monoFocusSpeed -mra part crystal -mra long_name mra -mra softlowerlim 0 -mra softupperlim 1 -mra home 0 -# fix the motor -mra fixed -1 - -# mc3: Monochromator Focusing 1 - Rotation -Motor moma $motor_driver_type [params \ - asyncqueue mc3\ - host mc3-kookaburra\ - port pmc3-kookaburra\ - axis B\ - units degrees\ - hardlowerlim -72.003174\ - hardupperlim -20.0379\ - maxSpeed 0.5\ - maxAccel 0.5\ - maxDecel 0.5\ - stepsPerX $monoRotateStepsPerUnit\ - absEnc 1\ - absEncHome $moma_Home\ - bias_bits 12\ - cntsPerX $MonoRotateCntsPerUnit] -moma part crystal -moma long_name moma -moma softlowerlim -70 -moma softupperlim -20.537842 -moma home -45 - -# mc3: Monochromator Focusing 2 - Focus -Motor mrb $motor_driver_type [params \ - asyncqueue mc3\ - host mc3-kookaburra\ - port pmc3-kookaburra\ - axis C\ - units degrees\ - hardlowerlim 0\ - hardupperlim 1\ - precision $monoFocusprecision\ - maxSpeed $monoFocusMaxSpeed\ - maxAccel [expr 25000.0/25000.0]\ - maxDecel [expr 25000.0/25000.0]\ - stepsPerX $monoFocusStepsPerUnit\ - absEnc 1\ - absEncHome $mrb_Home\ - bias_bits 12\ - cntsPerX $monoFocusCntsPerUnit] -mrb speed $monoFocusSpeed -mrb accel $monoFocusSpeed -mrb decel $monoFocusSpeed -mrb part crystal -mrb long_name mrb -mrb softlowerlim 0 -mrb softupperlim 1 -mrb home 0 -# fix the motor -mrb fixed -1 - -# mc3: Monochromator Focusing 2 - Rotation -Motor momb $motor_driver_type [params \ - asyncqueue mc3\ - host mc3-kookaburra\ - port pmc3-kookaburra\ - axis D\ - units degree\ - hardlowerlim -72.003174\ - hardupperlim -20.198975\ - maxSpeed 0.5\ - maxAccel 0.5\ - maxDecel 0.5\ - stepsPerX $monoRotateStepsPerUnit\ - absEnc 1\ - absEncHome $momb_Home\ - bias_bits 12\ - cntsPerX $MonoRotateCntsPerUnit] -momb part crystal -momb long_name momb -momb softlowerlim -70 -momb softupperlim -20.698975 -momb home -45 - -# mc3: Monochromator Focusing 3 - Focus -Motor mrc $motor_driver_type [params \ - asyncqueue mc3\ - host mc3-kookaburra\ - port pmc3-kookaburra\ - axis E\ - units degrees\ - hardlowerlim 0\ - hardupperlim 1\ - precision $monoFocusprecision\ - maxSpeed $monoFocusMaxSpeed\ - maxAccel [expr 25000.0/25000.0]\ - maxDecel [expr 25000.0/25000.0]\ - stepsPerX $monoFocusStepsPerUnit\ - absEnc 1\ - absEncHome $mrc_Home\ - bias_bits 12\ - cntsPerX $monoFocusCntsPerUnit] -mrc speed $monoFocusSpeed -mrc accel $monoFocusSpeed -mrc decel $monoFocusSpeed -mrc part crystal -mrc long_name mrc -mrc softlowerlim 0 -mrc softupperlim 1 -mrc home 0 -# fix the motor -mrc fixed -1 - -# mc3: Monochromator Focusing 3 - Rotation -Motor momc $motor_driver_type [params \ - asyncqueue mc3\ - host mc3-kookaburra\ - port pmc3-kookaburra\ - axis F\ - units degree\ - hardlowerlim -72.003174\ - hardupperlim -21.246338\ - maxSpeed 0.5\ - maxAccel 0.5\ - maxDecel 0.5\ - stepsPerX $monoRotateStepsPerUnit\ - absEnc 1\ - absEncHome $momc_Home\ - bias_bits 12\ - cntsPerX $MonoRotateCntsPerUnit] -momc part crystal -momc long_name momc -momc softlowerlim -70 -momc softupperlim -21.746338 -momc home -45 +ss1l part slits +ss1l long_name ss1l +ss1l softlowerlim 0 +ss1l softupperlim 360 +ss1l home 0 -############################ -# Motor Controller 4 -# Motor Controller 4 -# Motor Controller 4 -############################ -# - -# mc4: Monochromator crystal stages tilt stage - G270 -set mphiSetRate 25000 - -Motor mphi $motor_driver_type [params \ - asyncqueue mc4\ - host mc4-kookaburra\ - port pmc4-kookaburra\ - axis A\ - units degrees\ - hardlowerlim -5\ - hardupperlim 5\ - maxSpeed [expr 50000.0/25000.0]\ - maxAccel [expr 12500.0/25000.0]\ - maxDecel [expr 12500.0/25000.0]\ - stepsPerX $mphiSetRate\ - absEnc 1\ - absEncHome $mphi_Home\ - cntsPerX 4096] -mphi part crystal -mphi long_name mphi -mphi softlowerlim -5 -mphi softupperlim 5 -mphi home 0 - -# mc4: Monochromator crystal stages tilt stage - G350 -set mchiSetRate 25000 - -Motor mchi $motor_driver_type [params \ - asyncqueue mc4\ - host mc4-kookaburra\ - port pmc4-kookaburra\ - axis B\ - units degrees\ - hardlowerlim -5\ - hardupperlim 5\ - maxSpeed [expr 50000.0/25000.0]\ - maxAccel [expr 12500.0/25000.0]\ - maxDecel [expr 12500.0/25000.0]\ - stepsPerX $mchiSetRate\ - absEnc 1\ - absEncHome $mchi_Home\ - cntsPerX 4096] -mchi part crystal -mchi long_name mchi -mchi softlowerlim -5 -mchi softupperlim 5 -mchi home 0 -mchi speed 0.2 -mchi accel 0.1 -mchi decel 0.1 - -# mc4: Monochromator crystal stages Linear stage X - T250 -set mxSetRate 25000 - -Motor mx $motor_driver_type [params \ - asyncqueue mc4\ - host mc4-kookaburra\ - port pmc4-kookaburra\ - axis C\ +# mc2: Slit system - 1 RIGHT Blade +# Gearbox 55:1 +set ss1r_Home 0 +set ss1rSetRate 25000 +Motor ss1r $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-kookaburra\ + port pmc2-kookaburra\ + axis G\ units mm\ - hardlowerlim -20\ - hardupperlim 20\ - maxSpeed [expr 50000.0/25000.0]\ - maxAccel [expr 12500.0/25000.0]\ - maxDecel [expr 12500.0/25000.0]\ - stepsPerX $mxSetRate\ - absEnc 1\ - absEncHome $mx_Home\ - cntsPerX 4096] -mx part crystal -mx long_name mx -mx softlowerlim -20 -mx softupperlim 20 -mx home 0 -mx speed 1.0 - -# mc4: Monochromator crystal stages Linear stage Y - T250 -set mySetRate 25000 - -Motor my $motor_driver_type [params \ - asyncqueue mc4\ - host mc4-kookaburra\ - port pmc4-kookaburra\ - axis D\ - units mm\ - hardlowerlim -20\ - hardupperlim 20\ - maxSpeed [expr 50000.0/25000.0]\ - maxAccel [expr 12500.0/25000.0]\ - maxDecel [expr 12500.0/25000.0]\ - stepsPerX $mySetRate\ - absEnc 1\ - absEncHome $my_Home\ - cntsPerX 4096] -my part crystal -my long_name my -my softlowerlim -10 -my softupperlim 10 -my home 0 -my speed 1.0 - -# mc4: Monochromator crystal stages Rotation stage - R275 -set momSetRate 25000 - -Motor mom $motor_driver_type [params \ - asyncqueue mc4\ - host mc4-kookaburra\ - port pmc4-kookaburra\ - axis E\ - units degrees\ - hardlowerlim -15\ + hardlowerlim 0\ hardupperlim 15\ - maxSpeed [expr 50000.0/25000.0]\ - maxAccel [expr 12500.0/25000.0]\ - maxDecel [expr 12500.0/25000.0]\ - stepsPerX $momSetRate\ + maxSpeed [expr 50000.0/$ss1rSetRate]\ + maxAccel [expr 25000.0/$ss1rSetRate]\ + maxDecel [expr 25000.0/$ss1rSetRate]\ + stepsPerX $ss1rSetRate\ absEnc 1\ - absEncHome $mom_Home\ + absEncHome $ss1r_Home\ cntsPerX 4096] -mom speed 0.5 -mom part crystal -mom long_name mom -mom softlowerlim -15 -mom softupperlim 15 -mom home 0 +ss1r part slits +ss1r long_name ss1r +ss1r softlowerlim 0 +ss1r softupperlim 15 +ss1r home 0 + + +# mc2: Sample Changer (Sample Stage) Z Translation +# Gearbox 1:1 +set samz_Home 0 +set samzSetRate 25000 +Motor samz $motor_driver_type [params \ + asyncqueue mc2\ + host mc2-kookaburra\ + port pmc2-kookaburra\ + axis H\ + units mm\ + hardlowerlim 0\ + hardupperlim 360\ + maxSpeed [expr 50000.0/$samzSetRate]\ + maxAccel [expr 25000.0/$samzSetRate]\ + maxDecel [expr 25000.0/$samzSetRate]\ + stepsPerX $samzSetRate\ + absEnc 1\ + absEncHome $samz_Home\ + cntsPerX 4096] +samz part sample +samz long_name samz +samz softlowerlim 0 +samz softupperlim 360 +samz home 0 ############################ -# Motor Controller 6 -# Motor Controller 6 -# Motor Controller 6 +# Motor Controller 3 +# Motor Controller 3 +# Motor Controller 3 ############################ # -# mc6: Radial Collimator -- Oscillator -Motor rco $motor_driver_type [params \ - asyncqueue mc6\ - host mc6-kookaburra\ - port pmc6-kookaburra\ +# mc3: Slit system - 2 TOP Blade +# Gearbox 55:1 +set ss2u_Home 0 +set ss2uSetRate 25000 +Motor ss2u $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ axis A\ units mm\ - hardlowerlim 0\ - hardupperlim 180\ - maxSpeed 50000\ - maxAccel 60000\ - maxDecel 60000\ - stepsPerX 4096\ + hardlowerlim -2\ + hardupperlim 30\ + maxSpeed [expr 25000.0/$ss1uSetRate]\ + maxAccel [expr 25000.0/$ss1uSetRate]\ + maxDecel [expr 25000.0/$ss1uSetRate]\ + stepsPerX $ss2uSetRate\ absEnc 1\ - absEncHome $rco_Home\ + absEncHome $ss2u_Home\ cntsPerX 4096] -rco part collimator -rco long_name rco -rco softlowerlim 0 -rco softupperlim 180 -rco home 0 +ss2u parts slits +ss2u long_name ss2u +ss2u softlowerlim -2 +ss2u softupperlim 30 +ss2u home 0 -# mc6: Radial Collimator -- Z Translation -Motor rcz $motor_driver_type [params \ - asyncqueue mc6\ - host mc6-kookaburra\ - port pmc6-kookaburra\ + +# mc3: Slit system - 2 BOTTOM Blade +# Gearbox 55:1 +set ss2d_Home 0 +set ss2dSetRate 25000 +Motor ss2d $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ axis B\ units mm\ hardlowerlim 0\ - hardupperlim 180\ - maxSpeed 50000\ - maxAccel 60000\ - maxDecel 60000\ - stepsPerX 4096\ + hardupperlim 15\ + maxSpeed [expr 50000.0/$ss2dSetRate]\ + maxAccel [expr 25000.0/$ss2dSetRate]\ + maxDecel [expr 25000.0/$ss2dSetRate]\ + stepsPerX $ss2dSetRate\ absEnc 1\ - absEncHome $rcz_Home\ + absEncHome $ss2d_Home\ cntsPerX 4096] -rcz part collimator -rcz long_name rcz -rcz softlowerlim 0 -rcz softupperlim 180 -rcz home 0 +ss2d part slits +ss2d long_name ss2d +ss2d softlowerlim 0 +ss2d softupperlim 15 +ss2d home 0 -# mc6: Beam Stop Stage - Rotation -Motor bsr $motor_driver_type [params \ - asyncqueue mc6\ - host mc6-kookaburra\ - port pmc6-kookaburra\ + +# mc3: Slit system - 2 LEFT Blade +# Gearbox 55:1 +set ss2l_Home 0 +set ss2lSetRate 25000 +Motor ss2l $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ axis C\ - units degrees\ + units mm\ hardlowerlim 0\ - hardupperlim 180\ - maxSpeed 50000\ - maxAccel 60000\ - maxDecel 60000\ - stepsPerX 4096\ + hardupperlim 360\ + maxSpeed [expr 50000.0/$ss2lSetRate]\ + maxAccel [expr 25000.0/$ss2lSetRate]\ + maxDecel [expr 25000.0/$ss2lSetRate]\ + stepsPerX $ss2lSetRate\ absEnc 1\ - absEncHome $bsr_Home\ + absEncHome $ss2l_Home\ cntsPerX 4096] -bsr part sample -bsr long_name bsr -bsr softlowerlim 0 -bsr softupperlim 180 -bsr home 0 +ss2l part slits +ss2l long_name ss2l +ss2l softlowerlim 0 +ss2l softupperlim 360 +ss2l home 0 -# mc6: Isolation Vaue -- Axis 1, currently this Axis is set to read ONLY to read the encoder -Motor gv1 $motor_driver_type [params \ - asyncqueue mc6\ - host mc6-kookaburra\ - port pmc6-kookaburra\ + +# mc3: Slit system - 2 RIGHT Blade +# Gearbox 55:1 +set ss2r_Home 0 +set ss2rSetRate 25000 +Motor ss2r $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ + axis D\ + units mm\ + hardlowerlim 0\ + hardupperlim 15\ + maxSpeed [expr 50000.0/$ss2rSetRate]\ + maxAccel [expr 25000.0/$ss2rSetRate]\ + maxDecel [expr 25000.0/$ss2rSetRate]\ + stepsPerX $ss2rSetRate\ + absEnc 1\ + absEncHome $ss2r_Home\ + cntsPerX 4096] +ss2r part slits +ss2r long_name ss2r +ss2r softlowerlim 0 +ss2r softupperlim 15 +ss2r home 0 + + +# mc3: CC2 Analyser Stage - Tilt +# Gearbox 50:1 +set m2chi_Home 0 +set m2chiSetRate 25000 +Motor m2chi $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ axis E\ units degrees\ - hardlowerlim 0\ - hardupperlim 180\ - maxSpeed 50000\ - maxAccel 60000\ - maxDecel 60000\ - stepsPerX 4096\ + hardlowerlim -2\ + hardupperlim 60\ + maxSpeed [expr 25000.0/$m2chiSetRate]\ + maxAccel [expr 25000.0/$m2chiSetRate]\ + maxDecel [expr 25000.0/$m2chiSetRate]\ + stepsPerX $m2chiSetRate\ absEnc 1\ - absEncHome $gv1_Home\ + absEncHome $m2chi_Home\ cntsPerX 4096] -gv1 part sample -gv1 long_name gv1 -gv1 softlowerlim 0 -gv1 softupperlim 180 -gv1 home 0 -# fix the motor -gv1 fixed -1 +m2chi part crystal +m2chi long_name m2chi +m2chi softlowerlim -2 +m2chi softupperlim 60 +m2chi home 0 -# mc6: Isolation Vaue -- Axis 2, currently this Axis is set to read ONLY to read the encoder -Motor gv2 $motor_driver_type [params \ - asyncqueue mc6\ - host mc6-kookaburra\ - port pmc6-kookaburra\ + +# mc3: CC2 Analyser Stage - Rotation +# Gearbox 60:1 +set m2om_Home 0 +set m2omSetRate 25000 +Motor m2om $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ axis F\ units degrees\ - hardlowerlim 0\ - hardupperlim 180\ - maxSpeed 30000\ - maxAccel 60000\ - maxDecel 60000\ - stepsPerX 4096\ + hardlowerlim -2\ + hardupperlim 50\ + maxSpeed [expr 25000.0/$m2omSetRate]\ + maxAccel [expr 25000.0/$m2omSetRate]\ + maxDecel [expr 25000.0/$m2omSetRate]\ + stepsPerX $m2omSetRate\ absEnc 1\ - absEncHome $gv2_Home\ + absEncHome $m2om_Home\ cntsPerX 4096] -gv2 part sample -gv2 long_name gv2 -gv2 softlowerlim 0 -gv2 softupperlim 180 -gv2 home 0 -# fix the motor -gv2 fixed -1 +m2om part crystal +m2om long_name m2om +m2om softlowerlim -2 +m2om softupperlim 50 +m2om home 0 + + +# mc3: CC2 Analyser Stage - X Translate +# Gearbox 20:1 +set m2x_Home 0 +set m2xSetRate 25000 +Motor m2x $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ + axis G\ + units mm\ + hardlowerlim -2\ + hardupperlim 40\ + maxSpeed [expr 25000.0/$m2xSetRate]\ + maxAccel [expr 25000.0/$m2xSetRate]\ + maxDecel [expr 25000.0/$m2xSetRate]\ + stepsPerX $m2xSetRate\ + absEnc 1\ + absEncHome $m2x_Home\ + cntsPerX 4096] +m2x part crystal +m2x long_name m2x +m2x softlowerlim -2 +m2x softupperlim 40 +m2x home 0 + + +# mc3: CC2 Analyser Stage - Y Translation +# Gearbox 20:1 +set m2y_Home 0 +set m2ySetRate 25000 +Motor m2y $motor_driver_type [params \ + asyncqueue mc3\ + host mc3-kookaburra\ + port pmc3-kookaburra\ + axis H\ + units mm\ + hardlowerlim -2\ + hardupperlim 40\ + maxSpeed [expr 25000.0/$m2ySetRate]\ + maxAccel [expr 25000.0/$m2ySetRate]\ + maxDecel [expr 25000.0/$m2ySetRate]\ + stepsPerX $m2ySetRate\ + absEnc 1\ + absEncHome $m2y_Home\ + cntsPerX 4096] +m2y part crystal +m2y long_name m2y +m2y softlowerlim -2 +m2y softupperlim 40 +m2y 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