diff --git a/site_ansto/instrument/hipd/motor_configuration.tcl b/site_ansto/instrument/hipd/motor_configuration.tcl index 52ce3633..9c1bb468 100644 --- a/site_ansto/instrument/hipd/motor_configuration.tcl +++ b/site_ansto/instrument/hipd/motor_configuration.tcl @@ -1,3 +1,10 @@ +# $Revision: 1.4 $ +# $Date: 2006-12-12 21:03:10 $ +# Author: Ferdi Franceschini (ffr@ansto.gov.au) +# Last revision by: $Author: dcl $ + +# START MOTOR CONFIGURATION + # Setup addresses of Galil DMC2280 controllers. set dmc2280_controller1(host) mc1-wombat set dmc2280_controller1(port) pmc1-wombat @@ -21,6 +28,14 @@ set dmc2280_controller4(port) pmc4-wombat # dmc_close dmc2280_controller4 #} +############################ +# Motor Controller 1 +# Motor Controller 1 +# Motor Controller 1 +############################ +#:TP at HOME +# + # Monochromator phi, Tilt 1, upper Motor mphi DMC2280 [params \ host $dmc2280_controller1(host)\ @@ -36,7 +51,7 @@ Motor mphi DMC2280 [params \ cntsPerX -8192] setHomeandRange -motor mphi -home 0 -lowrange 15 -uprange 15 mphi speed 1 -mphi precision 0.001 +mphi precision 0.01 # Monochromator chi, Tilt 2, lower Motor mchi DMC2280 [params \ @@ -51,9 +66,9 @@ Motor mchi DMC2280 [params \ absEnc 1\ absEncHome 7818915\ 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.001 +mchi precision 0.01 # Monochromator Trans 1, upper Motor my DMC2280 [params \ @@ -81,10 +96,10 @@ Motor mx DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX 25000\ + stepsPerX -25000\ absEnc 1\ absEncHome 7562793\ - cntsPerX 8192] + cntsPerX -8192] setHomeandRange -motor mx -home 0 -lowrange 20 -uprange 20 mx speed 1 mx precision 0.01 @@ -101,7 +116,7 @@ Motor mom DMC2280 [params \ stepsPerX -12500\ absEnc 1\ absEncHome 17694127\ - cntsPerX -8192] + cntsPerX -4096] setHomeandRange -motor mom -home 0 -lowrange 180 -uprange 180 mom speed 1 mom precision 0.01 @@ -115,20 +130,31 @@ Motor mtth DMC2280 [params \ maxSpeed 0.5\ maxAccel 0.2\ maxDecel 0.2\ - stepsPerX 25000\ + stepsPerX [expr 25000*18]\ absEnc 1\ absEncHome 10299428\ cntsPerX 93207] -mtth hardlowerlim 85 -mtth hardupperlim 155 -mtth softlowerlim 85 -mtth softupperlim 155 -mtth home 120 +mtth hardlowerlim 86 +mtth hardupperlim 137 +mtth softlowerlim 86 +mtth softupperlim 137 +mtth home 90 mtth speed 0.5 -mtth precision 0.01 +mtth accel 0.01 +mtth decel 0.01 +mtth precision 0.02 +mtth maxretry 10 +mtth failafter 10 +############################ +# Motor Controller 2 +# Motor Controller 2 +# Motor Controller 2 +############################ +#:TP at HOME +# -# Sample Tilt 1, upper +# Sample Tilt 1, upper, phi Motor sphi DMC2280 [params \ host $dmc2280_controller2(host)\ port $dmc2280_controller2(port)\ @@ -137,15 +163,15 @@ Motor sphi DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX 25000\ + stepsPerX -25000\ absEnc 1\ absEncHome 7934290\ - cntsPerX 8192] + cntsPerX -8192] setHomeandRange -motor sphi -home 0 -lowrange 20 -uprange 20 sphi speed 1 sphi precision 0.01 -# Sample Tilt 2, lower +# Sample Tilt 2, lower, chi Motor schi DMC2280 [params \ host $dmc2280_controller2(host)\ port $dmc2280_controller2(port)\ @@ -162,7 +188,7 @@ setHomeandRange -motor schi -home 90 -lowrange 20 -uprange 20 schi speed 1 schi precision 0.01 -# Sample Trans 1 (upper) +# Sample Trans 1, upper, y Motor sy DMC2280 [params \ host $dmc2280_controller2(host)\ port $dmc2280_controller2(port)\ @@ -175,11 +201,11 @@ Motor sy DMC2280 [params \ absEnc 1\ absEncHome 7562793\ 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) +# Sample Trans2, lower, x Motor sx DMC2280 [params \ host $dmc2280_controller2(host)\ port $dmc2280_controller2(port)\ @@ -188,11 +214,11 @@ Motor sx DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX 25000\ + stepsPerX -25000\ absEnc 1\ absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor sx -home 0 -lowrange 20 -uprange 20 + cntsPerX -8192] +setHomeandRange -motor sx -home 0 -lowrange 20 -uprange 20 sx speed 1 sx precision 0.01 @@ -205,10 +231,10 @@ Motor som DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -12500\ + stepsPerX 12500\ absEnc 1\ absEncHome 17694127\ - cntsPerX -8192] + cntsPerX 4096] setHomeandRange -motor som -home 0 -lowrange 180 -uprange 180 som speed 1 som precision 0.01 @@ -219,31 +245,41 @@ Motor stth DMC2280 [params \ port $dmc2280_controller2(port)\ axis F\ units degrees\ - maxSpeed 0.2\ + maxSpeed 0.5\ maxAccel 0.2\ maxDecel 0.2\ stepsPerX 125000\ absEnc 1\ absEncHome 6559259\ cntsPerX 93207] -stth hardlowerlim 85 -stth hardupperlim 155 -stth softlowerlim 85 -stth softupperlim 155 -stth home 87.635 +stth hardlowerlim -60 +stth hardupperlim 60 +stth softlowerlim -60 +stth softupperlim 60 +stth home 0 stth speed 0.5 stth precision 0.01 #Default upper and lower ranges for vertical slits -set vertSlitLowRange 25 -set vertSlitUpRange 95 +set vertSlitLowRange 20 +set vertSlitUpRange 100 #Default upper and lower ranges for horizontal slits -set horSlitLowRange 20 -set horSlitUpRange 25 +set horSlitLowRange 15 +set horSlitUpRange 35 -# Monochromator radius, focus -#Motor mr DMC2280 [params \ +#Measured or computed slit motor steps per millimetre +set slitStepRate 20180 + +############################ +# Motor Controller 3 +# Motor Controller 3 +# Motor Controller 3 +############################ +# + +# Monochromator Focusing (HOPG) +#Motor mf1 DMC2280 [params \ # host $dmc2280_controller3(host)\ # port $dmc2280_controller3(port)\ # axis A\ @@ -255,35 +291,55 @@ set horSlitUpRange 25 # 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 -Motor ss1u DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2040518] -setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss1d DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2040518] -setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange +# Monochromator Focusing (Ge) +#Motor mf2 DMC2280 [params \ +# host $dmc2280_controller3(host)\ +# port $dmc2280_controller3(port)\ +# axis B\ +# units degrees\ +# maxSpeed xxxx\ +# maxAccel xxxx\ +# maxDecel xxxx\ +# stepsPerX xxxx\ +# absEnc 1\ +# absEncHome xxxx\ +# cntsPerX xxxx] +#setHomeandRange -motor mf2 -home 0 -lowrange 0 -uprange 360 +#mf2 speed 1 +#mf2 precision 0.01 +# Slit 1, right Motor ss1r DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -$slitStepRate\ + 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)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -$slitStepRate\ + motorHome [expr 54.5/2*$slitStepRate]] +setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +# Slit 1, up +Motor ss1u DMC2280 [params \ host $dmc2280_controller3(host)\ port $dmc2280_controller3(port)\ axis G\ @@ -291,11 +347,12 @@ Motor ss1r DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + stepsPerX -$slitStepRate\ + motorHome [expr 207.5/2*$slitStepRate]] +setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange -Motor ss1l DMC2280 [params \ +# Slit 1, down +Motor ss1d DMC2280 [params \ host $dmc2280_controller3(host)\ port $dmc2280_controller3(port)\ axis H\ @@ -303,11 +360,19 @@ Motor ss1l DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + stepsPerX -$slitStepRate\ + motorHome [expr 207.5/2*$slitStepRate]] +setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange -Motor ss2u DMC2280 [params \ +############################ +# Motor Controller 4 +# Motor Controller 4 +# Motor Controller 4 +############################ +# + +# Slit 2, right +Motor ss2r DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ axis E\ @@ -315,11 +380,12 @@ Motor ss2u DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -20125\ - motorHome 2043085] -setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + stepsPerX -$slitStepRate\ + motorHome [expr 52.25/2*$slitStepRate]] +setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange -Motor ss2d DMC2280 [params \ +# Slit 2, left +Motor ss2l DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ axis F\ @@ -327,11 +393,12 @@ Motor ss2d DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -20125\ - motorHome 2043085] -setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + stepsPerX -$slitStepRate\ + motorHome [expr 52.25/2*$slitStepRate]] +setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange -Motor ss2r DMC2280 [params \ +# Slit 2, up +Motor ss2u DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ axis G\ @@ -339,11 +406,12 @@ Motor ss2r DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -20125\ - motorHome 500000] -setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + stepsPerX -$slitStepRate\ + motorHome [expr 204.1/2*$slitStepRate]] +setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange -Motor ss2l DMC2280 [params \ +# Slit 2, down +Motor ss2d DMC2280 [params \ host $dmc2280_controller4(host)\ port $dmc2280_controller4(port)\ axis H\ @@ -351,9 +419,9 @@ Motor ss2l DMC2280 [params \ maxSpeed 1\ maxAccel 1\ maxDecel 1\ - stepsPerX -20125\ - motorHome 500000] -setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + stepsPerX -$slitStepRate\ + motorHome [expr 204.1/2*$slitStepRate]] +setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} @@ -383,7 +451,7 @@ publish ss1widthscript user #------------------------------------------------------- proc ss1readwidth {} { - return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] + return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] } publish ss1readwidth user MakeConfigurableMotor ss1hg @@ -394,7 +462,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] @@ -405,7 +473,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 @@ -426,7 +494,7 @@ publish ss1heightscript user #------------------------------------------------------- proc ss1readheight {} { - return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] + return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] } publish ss1readheight user @@ -439,7 +507,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] @@ -450,7 +518,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 @@ -473,7 +541,7 @@ publish ss2widthscript user #------------------------------------------------------- proc ss2readwidth {} { - return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] + return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] } publish ss2readwidth user MakeConfigurableMotor ss2hg @@ -484,7 +552,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] @@ -495,7 +563,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 @@ -516,7 +584,7 @@ publish ss2heightscript user #------------------------------------------------------- proc ss2readheight {} { - return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] + return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] } publish ss2readheight user @@ -529,7 +597,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] @@ -540,7 +608,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