diff --git a/site_ansto/instrument/pelican/config/motors/motor_configuration.tcl b/site_ansto/instrument/pelican/config/motors/motor_configuration.tcl index 6217ca00..1549486a 100644 --- a/site_ansto/instrument/pelican/config/motors/motor_configuration.tcl +++ b/site_ansto/instrument/pelican/config/motors/motor_configuration.tcl @@ -22,6 +22,9 @@ set dmc2280_controller4(port) pmc4-$animal set dmc2280_controller5(host) mc5-$animal set dmc2280_controller5(port) pmc5-$animal +set dmc2280_controller5(host) mc6-$animal +set dmc2280_controller5(port) pmc6-$animal + if {$sim_mode == "true"} { set motor_driver_type asim } else { @@ -30,25 +33,10 @@ if {$sim_mode == "true"} { 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 mc5 DMC2280 $dmc2280_controller5(host) $dmc2280_controller5(port) + MakeAsyncQueue mc6 DMC2280 $dmc2280_controller6(host) $dmc2280_controller6(port) } -# Computed Monochromator step rates (steps per degree) of focusing and Rotation - -# Rotate rate -- 8:1 gear on motor and 120:1 gear on rotation stage \ -# 25000 steps * 8:1 gear * 120:1 gear = 200000 -set monoRotateStepRate 200000 - -# Rotation stage rate 25000 steps * 120:1 gears = 3000000 -set monoRotationStateStepRate 3000000 - -# Encode reading at the roation 4096 * 360:55 backlash gear = 26810.1818 -set MonoRotateEncoderCountRate 26810.1818 - -# Focusing rate 25000 steps * 6:1 gears = 150000 -set monoFocusStepRate 150000 - #Measured absolute encoder reading at home position set dummy_Home 0 @@ -119,8 +107,36 @@ 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 \ + asyncqueue mc1\ + host mc1-pelican\ + port pmc1-pelican\ + axis B\ + 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 $ptzStepRate\ + absEnc 1\ + absEncHome $ptz_Home\ + cntsPerX 4096] +ptz part crystal +ptz long_name ptz +ptz softlowerlim 0 +ptz softupperlim 500 +ptz 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 \ asyncqueue mc1\ host mc1-pelican\ @@ -129,10 +145,10 @@ Motor ftz $motor_driver_type [params \ units mm\ hardlowerlim 0\ hardupperlim 500\ - maxSpeed 5000\ - maxAccel 2048\ - maxDecel 2048\ - stepsPerX 4096\ + maxSpeed [expr 400000.0/300000.0]\ + maxAccel [expr 150000.0/300000.0]\ + maxDecel [expr 150000.0/300000.0]\ + stepsPerX $ftzStepRate\ absEnc 1\ absEncHome $ftz_Home\ cntsPerX 4096] @@ -143,29 +159,9 @@ ftz softupperlim 500 ftz home 0 #} -# mc1: Polariser & Spin Flipper - Z translation slide -Motor ptz $motor_driver_type [params \ - asyncqueue mc1\ - host mc1-pelican\ - port pmc1-pelican\ - axis D\ - units mm\ - hardlowerlim 0\ - hardupperlim 500\ - maxSpeed 20000\ - maxAccel 2048\ - maxDecel 2048\ - stepsPerX 4096\ - absEnc 1\ - absEncHome $ptz_Home\ - cntsPerX 4096] -ptz part crystal -ptz long_name ptz -ptz softlowerlim 0 -ptz softupperlim 500 -ptz 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-pelican\ @@ -174,10 +170,10 @@ Motor pom $motor_driver_type [params \ units degrees\ hardlowerlim 0\ hardupperlim 2\ - maxSpeed 75000\ - maxAccel 25000\ - maxDecel 25000\ - stepsPerX 8192\ + maxSpeed [expr 250000.0/$pomSetRate]\ + maxAccel [expr 25000.0/$pomSetRate]\ + maxDecel [expr 25000.0/$pomSetRate]\ + stepsPerX $pomSetRate\ absEnc 1\ absEncHome $pom_Home\ cntsPerX 4096] @@ -188,6 +184,8 @@ pom softupperlim 2 pom home 0 # mc1: Sample/Detector Chamber Rotation (Detector) +set stthSetRate 25000 + Motor stth $motor_driver_type [params \ asyncqueue mc1\ host mc1-pelican\ @@ -196,10 +194,10 @@ Motor stth $motor_driver_type [params \ units degrees\ hardlowerlim -125\ hardupperlim 8\ - maxSpeed 75000\ - maxAccel 25000\ - maxDecel 25000\ - stepsPerX 8192\ + maxSpeed [expr 150000.0/$stthSetRate]\ + maxAccel [expr 5000.0/$stthSetRate]\ + maxDecel [expr 5000.0/$stthSetRate]\ + stepsPerX $stthSetRate\ absEnc 1\ absEncHome $stth_Home\ cntsPerX 4096] @@ -210,6 +208,8 @@ stth softupperlim 8 stth home 0 # mc1: Instrument Drive System (Main Drive) +set mtthSetRate 25000 + Motor mtth $motor_driver_type [params \ asyncqueue mc1\ host mc1-pelican\ @@ -218,10 +218,10 @@ Motor mtth $motor_driver_type [params \ units mm\ hardlowerlim 40\ hardupperlim 140\ - maxSpeed 100000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + maxSpeed [expr 150000.0/$mtthSetRate]\ + maxAccel [expr 25000.0/$mtthSetRate]\ + maxDecel [expr 25000.0/$mtthSetRate]\ + stepsPerX $mtthSetRate\ absEnc 1\ absEncHome $mtth_Home\ cntsPerX 4096] @@ -240,6 +240,8 @@ 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 \ asyncqueue mc2\ host mc2-pelican\ @@ -248,10 +250,10 @@ Motor sv1 $motor_driver_type [params \ units mm\ hardlowerlim -2\ hardupperlim 60\ - maxSpeed 12500\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + maxSpeed [expr 25000.0/$sv1SetRate]\ + maxAccel [expr 25000.0/$sv1SetRate]\ + maxDecel [expr 25000.0/$sv1SetRate]\ + stepsPerX $sv1SetRate\ absEnc 1\ absEncHome $sv1_Home\ cntsPerX 4096] @@ -262,6 +264,8 @@ sv1 softupperlim 60 sv1 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 \ asyncqueue mc2\ host mc2-pelican\ @@ -270,10 +274,10 @@ Motor sh1 $motor_driver_type [params \ units mm\ hardlowerlim -2\ hardupperlim 50\ - maxSpeed 25000\ - maxAccel 25000\ - maxDecel 25000\ - stepsPerX 8192\ + maxSpeed [expr 25000.0/$sh1SetRate]\ + maxAccel [expr 25000.0/$sh1SetRate]\ + maxDecel [expr 25000.0/$sh1SetRate]\ + stepsPerX $sh1SetRate\ absEnc 1\ absEncHome $sh1_Home\ cntsPerX 4096] @@ -284,6 +288,8 @@ sh1 softupperlim 50 sh1 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 \ asyncqueue mc2\ host mc2-pelican\ @@ -292,10 +298,10 @@ Motor sv2 $motor_driver_type [params \ units mm\ hardlowerlim -2\ hardupperlim 40\ - maxSpeed 30000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + maxSpeed [expr 25000.0/$sv2SetRate]\ + maxAccel [expr 25000.0/$sv2SetRate]\ + maxDecel [expr 25000.0/$sv2SetRate]\ + stepsPerX $sv2SetRate\ absEnc 1\ absEncHome $sv2_Home\ cntsPerX 4096] @@ -306,6 +312,8 @@ sv2 softupperlim 40 sv2 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 \ asyncqueue mc2\ host mc2-pelican\ @@ -314,10 +322,10 @@ Motor sh2 $motor_driver_type [params \ units mm\ hardlowerlim -2\ hardupperlim 30\ - maxSpeed 30000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + maxSpeed [expr 25000.0/$sh2SetRate]\ + maxAccel [expr 25000.0/$sh2SetRate]\ + maxDecel [expr 25000.0/$sh2SetRate]\ + stepsPerX $sh2SetRate\ absEnc 1\ absEncHome $sh2_Home\ cntsPerX 4096] @@ -328,6 +336,8 @@ sh2 softupperlim 30 sh2 home 0 # mc2: Graphite filter rotation stage (post 1st slit and post 1st Fermi chopper) +set gomSetRate 25000 + Motor gom $motor_driver_type [params \ asyncqueue mc2\ host mc2-pelican\ @@ -336,10 +346,10 @@ Motor gom $motor_driver_type [params \ units degrees\ hardlowerlim 0\ hardupperlim 15\ - maxSpeed 25000\ - maxAccel 25000\ - maxDecel 25000\ - stepsPerX 8192\ + maxSpeed [expr 50000.0/$gomSetRate]\ + maxAccel [expr 25000.0/$gomSetRate]\ + maxDecel [expr 25000.0/$gomSetRate]\ + stepsPerX $gomSetRate\ absEnc 1\ absEncHome $gom_Home\ cntsPerX 4096] @@ -350,6 +360,8 @@ gom softupperlim 15 gom home 0 # mc2: Sample rotation correction - 10 deg rotation +set scorSetRate 25000 + Motor scor $motor_driver_type [params \ asyncqueue mc2\ host mc2-pelican\ @@ -358,10 +370,10 @@ Motor scor $motor_driver_type [params \ units degrees\ hardlowerlim 0\ hardupperlim 360\ - maxSpeed 100000\ - maxAccel 25000\ - maxDecel 25000\ - stepsPerX 8192\ + maxSpeed [expr 50000.0/$scorSetRate]\ + maxAccel [expr 25000.0/$scorSetRate]\ + maxDecel [expr 25000.0/$scorSetRate]\ + stepsPerX $scorSetRate\ absEnc 1\ absEncHome $scor_Home\ cntsPerX 4096] @@ -378,23 +390,43 @@ scor home 0 ############################ # +# 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 + +# Computed Monochromator step rates (steps per degree) of focusing and Rotation + +set monoRotateStepRate [expr 25000.0/8.0/120.0*360.0] + +# Encode reading at the roation +set MonoRotateEncoderCountRate [expr 4096.0*360.0/55.0] + +# Focusing rate 12500 steps * 6:1 gears = 150000 +set monoFocusStepRate [expr 12500.0/6.0] + +# Encode reading at Focusing stage +set monoFocusEncoderCountRate 4096 + + # mc3: Monochromator Focusing 1 - Focus Motor mra $motor_driver_type [params \ asyncqueue mc3\ host mc3-pelican\ port pmc3-pelican\ axis A\ - units degrees\ + units mm\ hardlowerlim 0\ hardupperlim 5\ - maxSpeed 25000\ - maxAccel 8192\ - maxDecel 4096\ + maxSpeed [expr 12500.0/12500.0]\ + maxAccel [expr 25000.0/12500.0]\ + maxDecel [expr 25000.0/12500.0]\ stepsPerX $monoFocusStepRate\ absEnc 1\ absEncHome $mra_Home\ bias_bits 12\ - cntsPerX 4096] + cntsPerX $monoFocusEncoderCountRate] mra part crystal mra long_name mra mra softlowerlim 0 @@ -412,9 +444,9 @@ Motor moma $motor_driver_type [params \ units degrees\ hardlowerlim 0\ hardupperlim 70\ - maxSpeed 25000\ - maxAccel 8192\ - maxDecel 4096\ + maxSpeed [expr 12500.0/25000.0]\ + maxAccel [expr 50000.0/25000.0]\ + maxDecel [expr 50000.0/25000.0]\ stepsPerX $monoRotateStepRate\ absEnc 1\ absEncHome $moma_Home\ @@ -431,17 +463,17 @@ Motor mrb $motor_driver_type [params \ host mc3-pelican\ port pmc3-pelican\ axis C\ - units degrees\ + units mm\ hardlowerlim 0\ hardupperlim 5\ - maxSpeed 75000\ - maxAccel 25000\ - maxDecel 25000\ + maxSpeed [expr 12500.0/12500.0]\ + maxAccel [expr 25000.0/12500.0]\ + maxDecel [expr 25000.0/12500.0]\ stepsPerX $monoFocusStepRate\ absEnc 1\ absEncHome $mrb_Home\ bias_bits 12\ - cntsPerX 4096] + cntsPerX $monoFocusEncoderCountRate] mrb part crystal mrb long_name mrb mrb softlowerlim 0 @@ -459,9 +491,9 @@ Motor momb $motor_driver_type [params \ units degree\ hardlowerlim 0\ hardupperlim 70\ - maxSpeed 75000\ - maxAccel 25000\ - maxDecel 25000\ + maxSpeed [expr 12500.0/25000.0]\ + maxAccel [expr 50000.0/25000.0]\ + maxDecel [expr 50000.0/25000.0]\ stepsPerX $monoRotateStepRate\ absEnc 1\ absEncHome $momb_Home\ @@ -478,17 +510,17 @@ Motor mrc $motor_driver_type [params \ host mc3-pelican\ port pmc3-pelican\ axis E\ - units degrees\ + units mm\ hardlowerlim 0\ hardupperlim 5\ - maxSpeed 75000\ - maxAccel 25000\ - maxDecel 25000\ + maxSpeed [expr 12500.0/12500.0]\ + maxAccel [expr 25000.0/12500.0]\ + maxDecel [expr 25000.0/12500.0]\ stepsPerX $monoFocusStepRate\ absEnc 1\ absEncHome $mrc_Home\ bias_bits 12\ - cntsPerX 4096] + cntsPerX $monoFocusEncoderCountRate] mrc part crystal mrc long_name mrc mrc softlowerlim 0 @@ -502,13 +534,13 @@ Motor momc $motor_driver_type [params \ asyncqueue mc3\ host mc3-pelican\ port pmc3-pelican\ - axis D\ + axis F\ units degree\ hardlowerlim 0\ hardupperlim 70\ - maxSpeed 75000\ - maxAccel 25000\ - maxDecel 25000\ + maxSpeed [expr 12500.0/25000.0]\ + maxAccel [expr 50000.0/25000.0]\ + maxDecel [expr 50000.0/25000.0]\ stepsPerX $monoRotateStepRate\ absEnc 1\ absEncHome $momc_Home\ @@ -528,6 +560,8 @@ momc home 0 # # mc4: Monochromator crystal stages tilt stage - G270 +set mphiSetRate 25000 + Motor mphi $motor_driver_type [params \ asyncqueue mc4\ host mc4-pelican\ @@ -536,10 +570,10 @@ Motor mphi $motor_driver_type [params \ units degrees\ hardlowerlim -5\ hardupperlim 5\ - maxSpeed 100000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + 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] @@ -550,6 +584,8 @@ mphi softupperlim 5 mphi home 0 # mc4: Monochromator crystal stages tilt stage - G350 +set nchiSetRate 25000 + Motor nchi $motor_driver_type [params \ asyncqueue mc4\ host mc4-pelican\ @@ -558,10 +594,10 @@ Motor nchi $motor_driver_type [params \ units degrees\ hardlowerlim -5\ hardupperlim 5\ - maxSpeed 100000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + maxSpeed [expr 50000.0/25000.0]\ + maxAccel [expr 12500.0/25000.0]\ + maxDecel [expr 12500.0/25000.0]\ + stepsPerX $nchiSetRate\ absEnc 1\ absEncHome $nchi_Home\ cntsPerX 4096] @@ -572,6 +608,8 @@ nchi softupperlim 5 nchi home 0 # mc4: Monochromator crystal stages Linear stage X - T250 +set mxSetRate 25000 + Motor mx $motor_driver_type [params \ asyncqueue mc4\ host mc4-pelican\ @@ -580,10 +618,10 @@ Motor mx $motor_driver_type [params \ units mm\ hardlowerlim -5\ hardupperlim 5\ - maxSpeed 100000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + 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] @@ -594,6 +632,8 @@ mx softupperlim 5 mx home 0 # mc4: Monochromator crystal stages Linear stage Y - T250 +set mySetRate 25000 + Motor my $motor_driver_type [params \ asyncqueue mc4\ host mc4-pelican\ @@ -602,10 +642,10 @@ Motor my $motor_driver_type [params \ units mm\ hardlowerlim -50\ hardupperlim 50\ - maxSpeed 100000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX 8192\ + 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] @@ -616,6 +656,8 @@ mx softupperlim 50 mx home 0 # mc4: Monochromator crystal stages Rotation stage - R275 +set momSetRate 25000 + Motor mom $motor_driver_type [params \ asyncqueue mc4\ host mc4-pelican\ @@ -624,10 +666,10 @@ Motor mom $motor_driver_type [params \ units degrees\ hardlowerlim 20\ hardupperlim 70\ - maxSpeed 50000\ - maxAccel 32768\ - maxDecel 32768\ - stepsPerX $monoRotationStateStepRate\ + maxSpeed [expr 50000.0/25000.0]\ + maxAccel [expr 12500.0/25000.0]\ + maxDecel [expr 12500.0/25000.0]\ + stepsPerX $momSetRate\ absEnc 1\ absEncHome $mom_Home\ cntsPerX 4096] @@ -639,22 +681,22 @@ mom home 0 ############################ -# Motor Controller 5 -# Motor Controller 5 -# Motor Controller 5 +# Motor Controller 6 +# Motor Controller 6 +# Motor Controller 6 ############################ # -# mc5: Radial Collimator -- Oscillator +# mc6: Radial Collimator -- Oscillator Motor rco $motor_driver_type [params \ - asyncqueue mc5\ - host mc5-pelican\ - port pmc5-pelican\ + asyncqueue mc6\ + host mc6-pelican\ + port pmc6-pelican\ axis A\ units mm\ hardlowerlim 0\ hardupperlim 180\ - maxSpeed 30000\ + maxSpeed 50000\ maxAccel 60000\ maxDecel 60000\ stepsPerX 4096\ @@ -667,16 +709,16 @@ rco softlowerlim 0 rco softupperlim 180 rco home 0 -# mc5: Radial Collimator -- Z Translation +# mc6: Radial Collimator -- Z Translation Motor rcz $motor_driver_type [params \ - asyncqueue mc5\ - host mc5-pelican\ - port pmc5-pelican\ + asyncqueue mc6\ + host mc6-pelican\ + port pmc6-pelican\ axis B\ units mm\ hardlowerlim 0\ hardupperlim 180\ - maxSpeed 30000\ + maxSpeed 50000\ maxAccel 60000\ maxDecel 60000\ stepsPerX 4096\ @@ -689,16 +731,16 @@ rcz softlowerlim 0 rcz softupperlim 180 rcz home 0 -# mc5: Beam Stop Stage - Rotation +# mc6: Beam Stop Stage - Rotation Motor bsr $motor_driver_type [params \ - asyncqueue mc5\ - host mc5-pelican\ - port pmc5-pelican\ + asyncqueue mc6\ + host mc6-pelican\ + port pmc6-pelican\ axis C\ units degrees\ hardlowerlim 0\ hardupperlim 180\ - maxSpeed 30000\ + maxSpeed 50000\ maxAccel 60000\ maxDecel 60000\ stepsPerX 4096\ @@ -711,16 +753,16 @@ bsr softlowerlim 0 bsr softupperlim 180 bsr home 0 -# mc5: Isolation Vaue -- Axis 1, currently this Axis is set to read ONLY to read the encoder +# mc6: Isolation Vaue -- Axis 1, currently this Axis is set to read ONLY to read the encoder Motor gv1 $motor_driver_type [params \ - asyncqueue mc5\ - host mc5-pelican\ - port pmc5-pelican\ + asyncqueue mc6\ + host mc6-pelican\ + port pmc6-pelican\ axis E\ units degrees\ hardlowerlim 0\ hardupperlim 180\ - maxSpeed 30000\ + maxSpeed 50000\ maxAccel 60000\ maxDecel 60000\ stepsPerX 4096\ @@ -735,11 +777,11 @@ gv1 home 0 # fix the motor gv1 fixed -1 -# mc5: Isolation Vaue -- Axis 2, currently this Axis is set to read ONLY to read the encoder +# mc6: Isolation Vaue -- Axis 2, currently this Axis is set to read ONLY to read the encoder Motor gv2 $motor_driver_type [params \ - asyncqueue mc5\ - host mc5-pelican\ - port pmc5-pelican\ + asyncqueue mc6\ + host mc6-pelican\ + port pmc6-pelican\ axis F\ units degrees\ hardlowerlim 0\