From a3da8a72a0f3727cda7b93f716d2f62faca35d2f Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Mon, 11 Dec 2006 08:56:25 +1100 Subject: [PATCH] refine home encoder positions and add primary collimator motors r1360 | dcl | 2006-12-11 08:56:25 +1100 (Mon, 11 Dec 2006) | 2 lines --- .../instrument/hrpd/motor_configuration.tcl | 148 +++++++++++------- 1 file changed, 88 insertions(+), 60 deletions(-) diff --git a/site_ansto/instrument/hrpd/motor_configuration.tcl b/site_ansto/instrument/hrpd/motor_configuration.tcl index 125f6594..93bc33be 100644 --- a/site_ansto/instrument/hrpd/motor_configuration.tcl +++ b/site_ansto/instrument/hrpd/motor_configuration.tcl @@ -1,3 +1,8 @@ +# $Revision: 1.7 $ +# $Date: 2006-12-10 21:56:25 $ +# Author: Ferdi Franceschini (ffr@ansto.gov.au) +# Last revision by: $Author: dcl $ + # START MOTOR CONFIGURATION # Setup addresses of Galil DMC2280 controllers. @@ -25,6 +30,8 @@ set dmc2280_controller4(port) pmc4-echidna ############################ # Motor Controller 1 +# Motor Controller 1 +# Motor Controller 1 ############################ #:TP at HOME # @@ -40,7 +47,7 @@ Motor mphi DMC2280 [params \ maxDecel 1\ stepsPerX -25000\ absEnc 1\ - absEncHome 7414753\ + absEncHome 7415177\ cntsPerX -8192] setHomeandRange -motor mphi -home 0 -lowrange 15 -uprange 15 mphi speed 1 @@ -57,9 +64,9 @@ Motor mchi DMC2280 [params \ maxDecel 1\ stepsPerX 25000\ absEnc 1\ - absEncHome 7818915\ + absEncHome 7818798\ cntsPerX 8192] -setHomeandRange -motor mchi -home 90 -lowrange 15 -uprange 15 +setHomeandRange -motor mchi -home 90 -lowrange 15 -uprange 15 mchi speed 1 mchi precision 0.01 @@ -74,7 +81,7 @@ Motor my DMC2280 [params \ maxDecel 1\ stepsPerX 25000\ absEnc 1\ - absEncHome 7781680\ + absEncHome 7779997\ cntsPerX 8192] setHomeandRange -motor my -home 0 -lowrange 20 -uprange 20 my speed 1 @@ -91,7 +98,7 @@ Motor mx DMC2280 [params \ maxDecel 1\ stepsPerX -25000\ absEnc 1\ - absEncHome 7562793\ + absEncHome 7580365\ cntsPerX -8192] setHomeandRange -motor mx -home 0 -lowrange 20 -uprange 20 mx speed 1 @@ -108,7 +115,7 @@ Motor mom DMC2280 [params \ maxDecel 1\ stepsPerX -12500\ absEnc 1\ - absEncHome 17694127\ + absEncHome 13442932\ cntsPerX -4096] setHomeandRange -motor mom -home 0 -lowrange 180 -uprange 180 mom speed 1 @@ -125,7 +132,7 @@ Motor mtth DMC2280 [params \ maxDecel 0.2\ stepsPerX 25000\ absEnc 1\ - absEncHome 10299428\ + absEncHome 10604013\ cntsPerX 93207] mtth hardlowerlim 85 mtth hardupperlim 155 @@ -135,36 +142,44 @@ mtth home 120 mtth speed 0.5 mtth precision 0.01 -# Primary Collimator 1 -#Motor pc1 DMC2280 [params \ -# host $dmc2280_controller1(host)\ -# port $dmc2280_controller1(port)\ -# axis G\ -# units xxxx\ -# maxSpeed xxxx\ -# maxAccel xxxx\ -# maxDecel xxxx\ -# stepsPerX xxxx] -#setHomeandRange -motor pc1 -home 0 -lowrange 0 -uprange 0 -#pc1 speed 1 -#pc1 precision 0.01 +# Primary Collimator Translation X +Motor pcx DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis G\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX [expr -25000/6]\ + absEnc 1\ + absEncHome 8345644\ + cntsPerX [expr 8192/6]] +setHomeandRange -motor pcx -home 0 -lowrange 0 -uprange 100 +pcx speed 0.1 +pcx precision 0.01 -# Primary Collimator 2 -#Motor pc2 DMC2280 [params \ -# host $dmc2280_controller1(host)\ -# port $dmc2280_controller1(port)\ -# axis H\ -# units xxxx\ -# maxSpeed xxxx\ -# maxAccel xxxx\ -# maxDecel xxxx\ -# stepsPerX xxxx] -#setHomeandRange -motor pc2 -home 0 -lowrange 0 -uprange 0 -#pc2 speed 1 -#pc2 precision 0.01 +# Primary Collimator Rotation +Motor pcr DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis H\ + units degrees\ + maxSpeed 0.1\ + maxAccel 0.1\ + maxDecel 0.1\ + stepsPerX [expr 25000*100]\ + absEnc 1\ + absEncHome 6189745\ + cntsPerX [expr -8192*100]] +setHomeandRange -motor pcr -home 0 -lowrange 10 -uprange 10 +pcr speed 0.01 +pcr precision 0.01 ############################ # Motor Controller 2 +# Motor Controller 2 +# Motor Controller 2 ############################ #:TP at HOME # 7924507, 7542917, 7626584, 24029910, 24984596, 14530407, 22369621, 22369621 @@ -216,11 +231,11 @@ Motor sy DMC2280 [params \ absEnc 1\ absEncHome 7626584\ cntsPerX 8192] -setHomeandRange -motor sy -home 0 -lowrange 20 -uprange 20 +setHomeandRange -motor sy -home 0 -lowrange 20 -uprange 20 sy speed 1 sy precision 0.01 -# Sample Trans2. lower, x +# Sample Trans2, lower, x Motor sx DMC2280 [params \ host $dmc2280_controller2(host)\ port $dmc2280_controller2(port)\ @@ -233,7 +248,7 @@ Motor sx DMC2280 [params \ absEnc 1\ absEncHome 24029910\ cntsPerX -8192] -setHomeandRange -motor sx -home 0 -lowrange 20 -uprange 20 +setHomeandRange -motor sx -home 0 -lowrange 20 -uprange 20 sx speed 1 sx precision 0.01 @@ -288,11 +303,13 @@ set slitStepRate 20180 ############################ # Motor Controller 3 +# Motor Controller 3 +# Motor Controller 3 ############################ # -# Monochromator radius, focus -#Motor mr DMC2280 [params \ +# Monochromator Focusing (Ge) +#Motor mf1 DMC2280 [params \ # host $dmc2280_controller3(host)\ # port $dmc2280_controller3(port)\ # axis A\ @@ -304,10 +321,11 @@ set slitStepRate 20180 # absEnc 1\ # absEncHome xxxx\ # cntsPerX xxxx] -#setHomeandRange -motor mr -home 0 -lowrange 0 -uprange 360 -#mr speed 1 -#mr precision 0.01 +#setHomeandRange -motor mf1 -home 0 -lowrange 0 -uprange 360 +#mf1 speed 1 +#mf1 precision 0.01 +# Slit 1, right Motor ss1r DMC2280 [params \ host $dmc2280_controller3(host)\ port $dmc2280_controller3(port)\ @@ -320,6 +338,7 @@ Motor ss1r DMC2280 [params \ motorHome [expr 54.5/2*$slitStepRate]] setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +# Slit 1, left Motor ss1l DMC2280 [params \ host $dmc2280_controller3(host)\ port $dmc2280_controller3(port)\ @@ -330,8 +349,9 @@ Motor ss1l DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 54.5/2*$slitStepRate]] -setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +# Slit 1, up Motor ss1u DMC2280 [params \ host $dmc2280_controller3(host)\ port $dmc2280_controller3(port)\ @@ -342,8 +362,9 @@ Motor ss1u DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 207.5/2*$slitStepRate]] -setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +# Slit 1, down Motor ss1d DMC2280 [params \ host $dmc2280_controller3(host)\ port $dmc2280_controller3(port)\ @@ -354,14 +375,17 @@ Motor ss1d DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 207.5/2*$slitStepRate]] -setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange ############################ # Motor Controller 4 +# Motor Controller 4 +# Motor Controller 4 ############################ # # Little is known about the Eularian Cradle +## Eularian-phi #Motor ephi DMC2280 [params \ # host $dmc2280_controller4(host)\ # port $dmc2280_controller4(port)\ @@ -390,6 +414,7 @@ setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertS # cntsPerX xxxx] #setHomeandRange -motor echi -home 0 -lowrange 180 -uprange 180 +# Slit 2, right Motor ss2r DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ @@ -400,8 +425,9 @@ Motor ss2r DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 52.25/2*$slitStepRate]] -setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +# Slit 2, left Motor ss2l DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ @@ -412,8 +438,9 @@ Motor ss2l DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 52.25/2*$slitStepRate]] -setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange +# Slit 2, up Motor ss2u DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ @@ -424,8 +451,9 @@ Motor ss2u DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 204.1/2*$slitStepRate]] -setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +# Slit 2, down Motor ss2d DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ @@ -436,7 +464,7 @@ Motor ss2d DMC2280 [params \ maxDecel 1\ stepsPerX -$slitStepRate\ motorHome [expr 204.1/2*$slitStepRate]] -setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} @@ -466,7 +494,7 @@ publish ss1widthscript user #------------------------------------------------------- proc ss1readwidth {} { - return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] + return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] } publish ss1readwidth user MakeConfigurableMotor ss1hg @@ -477,7 +505,7 @@ ss1hg readscript ss1readwidth proc ss1horoffsetscript {val} { set SR [SplitReply [ss1r]] set SL [SplitReply [ss1l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] set diff [expr $val - $currentOffset] set newD1R [expr $SR + $diff] set newD1L [expr $SL - $diff] @@ -488,7 +516,7 @@ publish ss1horoffsetscript user #------------------------------------------------------- proc ss1readhoroffset {} { set SR [SplitReply [ss1r]] - return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] + return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] } publish ss1readhoroffset user @@ -509,7 +537,7 @@ publish ss1heightscript user #------------------------------------------------------- proc ss1readheight {} { - return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] + return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] } publish ss1readheight user @@ -522,7 +550,7 @@ ss1vg readscript ss1readheight proc ss1vertoffsetscript {val} { set SU [SplitReply [ss1u]] set SD [SplitReply [ss1d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] set diff [expr $val - $currentOffset] set newD1U [expr $SU + $diff] set newD1D [expr $SD - $diff] @@ -533,7 +561,7 @@ publish ss1vertoffsetscript user #------------------------------------------------------- proc ss1readvertoffset {} { set SU [SplitReply [ss1u]] - return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] + return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] } publish ss1readvertoffset user @@ -556,7 +584,7 @@ publish ss2widthscript user #------------------------------------------------------- proc ss2readwidth {} { - return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] + return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] } publish ss2readwidth user MakeConfigurableMotor ss2hg @@ -567,7 +595,7 @@ ss2hg readscript ss2readwidth proc ss2horoffsetscript {val} { set SR [SplitReply [ss2r]] set SL [SplitReply [ss2l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] set diff [expr $val - $currentOffset] set newD1R [expr $SR + $diff] set newD1L [expr $SL - $diff] @@ -578,7 +606,7 @@ publish ss2horoffsetscript user #------------------------------------------------------- proc ss2readhoroffset {} { set SR [SplitReply [ss2r]] - return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] + return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] } publish ss2readhoroffset user @@ -599,7 +627,7 @@ publish ss2heightscript user #------------------------------------------------------- proc ss2readheight {} { - return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] + return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] } publish ss2readheight user @@ -612,7 +640,7 @@ ss2vg readscript ss2readheight proc ss2vertoffsetscript {val} { set SU [SplitReply [ss2u]] set SD [SplitReply [ss2d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] set diff [expr $val - $currentOffset] set newD1U [expr $SU + $diff] set newD1D [expr $SD - $diff] @@ -623,7 +651,7 @@ publish ss2vertoffsetscript user #------------------------------------------------------- proc ss2readvertoffset {} { set SU [SplitReply [ss2u]] - return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] + return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] } publish ss2readvertoffset user