From 5f657bded436c5584f39bb53cf2aa9ac42fc1638 Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Tue, 14 Nov 2006 09:40:29 +1100 Subject: [PATCH] Re-factor motor configurations r1284 | dcl | 2006-11-14 09:40:29 +1100 (Tue, 14 Nov 2006) | 2 lines --- site_ansto/instrument/hipd/MANIFEST.TXT | 2 + site_ansto/instrument/hipd/extraconfig.tcl | 0 .../instrument/hipd/motor_configuration.tcl | 548 ++++++++++++++++ .../instrument/hipd/wombat_configuration.tcl | 557 +--------------- site_ansto/instrument/hrpd/MANIFEST.TXT | 1 + .../instrument/hrpd/echidna_configuration.tcl | 612 +----------------- .../instrument/hrpd/motor_configuration.tcl | 605 +++++++++++++++++ site_ansto/instrument/qld/MANIFEST.TXT | 2 + site_ansto/instrument/qld/extraconfig.tcl | 0 .../instrument/qld/koala_configuration.tcl | 168 +---- .../instrument/qld/motor_configuration.tcl | 160 +++++ site_ansto/instrument/rsd/MANIFEST.TXT | 2 + site_ansto/instrument/rsd/extraconfig.tcl | 0 .../instrument/rsd/kowari_configuration.tcl | 555 +--------------- .../instrument/rsd/motor_configuration.tcl | 547 ++++++++++++++++ 15 files changed, 1887 insertions(+), 1872 deletions(-) create mode 100644 site_ansto/instrument/hipd/extraconfig.tcl create mode 100644 site_ansto/instrument/hipd/motor_configuration.tcl create mode 100644 site_ansto/instrument/hrpd/motor_configuration.tcl create mode 100644 site_ansto/instrument/qld/extraconfig.tcl create mode 100644 site_ansto/instrument/qld/motor_configuration.tcl create mode 100644 site_ansto/instrument/rsd/extraconfig.tcl create mode 100644 site_ansto/instrument/rsd/motor_configuration.tcl diff --git a/site_ansto/instrument/hipd/MANIFEST.TXT b/site_ansto/instrument/hipd/MANIFEST.TXT index 2d8bfa9a..7ca2560e 100644 --- a/site_ansto/instrument/hipd/MANIFEST.TXT +++ b/site_ansto/instrument/hipd/MANIFEST.TXT @@ -1,5 +1,7 @@ wombat_configuration.tcl +motor_configuration.tcl hipadaba_configuration.tcl +extraconfig.tcl wombat.hdd motor_test.tcl troubleshoot_setup.tcl diff --git a/site_ansto/instrument/hipd/extraconfig.tcl b/site_ansto/instrument/hipd/extraconfig.tcl new file mode 100644 index 00000000..e69de29b diff --git a/site_ansto/instrument/hipd/motor_configuration.tcl b/site_ansto/instrument/hipd/motor_configuration.tcl new file mode 100644 index 00000000..a2aa25a4 --- /dev/null +++ b/site_ansto/instrument/hipd/motor_configuration.tcl @@ -0,0 +1,548 @@ +# Setup addresses of Galil DMC2280 controllers. +set dmc2280_controller1(host) mc1-wombat +set dmc2280_controller1(port) pmc1-wombat + +set dmc2280_controller2(host) mc2-wombat +set dmc2280_controller2(port) pmc2-wombat + +set dmc2280_controller3(host) mc3-wombat +set dmc2280_controller3(port) pmc3-wombat + +set dmc2280_controller4(host) mc4-wombat +set dmc2280_controller4(port) pmc4-wombat + +# Run slit homing routines on controllers 3 and 4 +#if [catch {dmc_connect dmc2280_controller3} ] { +# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1" +# dmc_close dmc2280_controller3 +#} +#if [catch {dmc_connect dmc2280_controller4} ] { +# dmc_sendCmd dmc2280_controller4 "XQ#HOME,1" +# dmc_close dmc2280_controller4 +#} + +# Monochromator omega, rotate +Motor mom DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis E\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -12500\ + absEnc 1\ + absEncHome 17694127\ + cntsPerX -8192] +setHomeandRange -motor mom -home 0 -lowrange 15 -uprange 15 +mom speed 1 +mom precision 0.01 + +# Monochromator two-theta, flight-tube rotate +Motor mtth DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis F\ + units degrees\ + maxSpeed 0.5\ + maxAccel 0.2\ + maxDecel 0.2\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 10299428\ + cntsPerX 93207] +mtth hardlowerlim 85 +mtth hardupperlim 155 +mtth softlowerlim 85 +mtth softupperlim 155 +mtth home 120 +mtth speed 0.5 +mtth precision 0.01 + +proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} +proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} +publish mthSet user +publish mthGet user +MakeConfigurableMotor mth +mth readscript mthGet +mth drivescript mthSet + +# Monochromator chi, Tilt 2, lower +Motor mchi DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis B\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7818915\ + cntsPerX 8192] +setHomeandRange -motor mchi -home 90 -lowrange 5 -uprange 5 +mchi speed 1 +mchi precision 0.01 + +# Monochromator phi, Tilt 1, upper +Motor mphi DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis A\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -25000\ + absEnc 1\ + absEncHome 7414753\ + cntsPerX -8192] +setHomeandRange -motor mphi -home 0 -lowrange 5 -uprange 5 +mphi speed 1 +mphi precision 0.01 + +# Monochromator Trans 1, upper +Motor mz DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis C\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7781680\ + cntsPerX 8192] +setHomeandRange -motor mz -home 0 -lowrange 5 -uprange 5 +mz speed 1 +mz precision 0.01 + +# Monochromator Trans 2, lower +Motor mx DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5 +mx speed 1 +mx precision 0.01 + +# Monochromator radius, focus +#Motor mr DMC2280 [params \ +# host $dmc2280_controller1(host)\ +# port $dmc2280_controller1(port)\ +# axis xxxx\ +# units xxxx\ +# maxSpeed xxxx\ +# maxAccel xxxx\ +# maxDecel xxxx\ +# stepsPerX xxxx\ +# absEnc 1\ +# absEncHome xxxx\ +# cntsPerX xxxx] +#setHomeandRange -motor mr -home 0 -lowrange 0 -uprange 0 +#mr speed 1 +#mr precision 0.01 + +# Sample Omega, rotate +Motor som DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis E\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -12500\ + absEnc 1\ + absEncHome 17694127\ + cntsPerX -8192] +setHomeandRange -motor som -home 0 -lowrange 45 -uprange 45 +som speed 1 +som precision 0.01 + +# Sample two-theta, detector rotate +Motor stth DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis F\ + units degrees\ + maxSpeed 0.2\ + maxAccel 0.2\ + maxDecel 0.2\ + stepsPerX 125000\ + absEnc 1\ + absEncHome 6559259\ + cntsPerX 93207] +setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15 +stth speed 0.5 +stth precision 0.01 + +proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} +proc sthSet {val} { return "stth=[SplitReply [stth]]"} +publish sthSet user +publish sthGet user +MakeConfigurableMotor sth +sth readscript sthGet +sth drivescript sthSet + +# Sample Tilt 2, lower +Motor schi DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis B\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7581355\ + cntsPerX 8192] +setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5 +schi speed 1 +schi precision 0.01 + +# Sample Tilt 1, upper +Motor sphi DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis A\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7934290\ + cntsPerX 8192] +setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 +sphi speed 1 +sphi precision 0.01 + +# Sample Trans 1 (upper) +Motor sz DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis C\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor sz -home 0 -lowrange 5 -uprange 5 +sz speed 1 +sz precision 0.01 + +# Sample Trans2 (lower) +Motor sx DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor sx -home 0 -lowrange 5 -uprange 5 +sx speed 1 +sx precision 0.01 + +#Default upper and lower ranges for vertical slits +set vertSlitLowRange 25 +set vertSlitUpRange 95 + +#Default upper and lower ranges for horizontal slits +set horSlitLowRange 20 +set horSlitUpRange 25 + +Motor ss1u DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis G\ + 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 H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2040518] +setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss1l DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 542093] +setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss1r DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 542093] +setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss2u DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis G\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2043085] +setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss2d DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2043085] +setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss2l DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 500000] +setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss2r DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 500000] +setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +#-------------------------------------------------------- +proc ss1widthscript {val} { + set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss1r]] + $diff/2] + set newD1L [expr [SplitReply [ss1l]] + $diff/2] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1widthscript user + +#------------------------------------------------------- +proc ss1readwidth {} { + return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] +} +publish ss1readwidth user +MakeConfigurableMotor ss1hg +ss1hg drivescript ss1widthscript +ss1hg readscript ss1readwidth + +#-------------------------------------------------------- +proc ss1horoffsetscript {val} { + set SR [SplitReply [ss1r]] + set SL [SplitReply [ss1l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1horoffsetscript user + +#------------------------------------------------------- +proc ss1readhoroffset {} { + set SR [SplitReply [ss1r]] + return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] +} +publish ss1readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1ho +ss1ho drivescript ss1horoffsetscript +ss1ho readscript ss1readhoroffset + +#----------------------------------------------------- +proc ss1heightscript {val} { + set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss1d]] + $diff/2] + set newD1T [expr [SplitReply [ss1u]] + $diff/2] + return "ss1d=$newD1B,ss1u=$newD1T" +} +publish ss1heightscript user + +#------------------------------------------------------- +proc ss1readheight {} { + return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] +} +publish ss1readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss1vg +ss1vg drivescript ss1heightscript +ss1vg readscript ss1readheight + +#-------------------------------------------------------- +proc ss1vertoffsetscript {val} { + set SU [SplitReply [ss1u]] + set SD [SplitReply [ss1d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss1u=$newD1U,ss1d=$newD1D" +} +publish ss1vertoffsetscript user + +#------------------------------------------------------- +proc ss1readvertoffset {} { + set SU [SplitReply [ss1u]] + return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] +} +publish ss1readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1vo +ss1vo drivescript ss1vertoffsetscript +ss1vo readscript ss1readvertoffset +############################################### + + +#-------------------------------------------------------- +proc ss2widthscript {val} { + set currentWidth [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss2r]] + $diff/2] + set newD1L [expr [SplitReply [ss2l]] + $diff/2] + return "ss2r=$newD1R,ss2l=$newD1L" +} +publish ss2widthscript user + +#------------------------------------------------------- +proc ss2readwidth {} { + return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] +} +publish ss2readwidth user +MakeConfigurableMotor ss2hg +ss2hg drivescript ss2widthscript +ss2hg readscript ss2readwidth + +#-------------------------------------------------------- +proc ss2horoffsetscript {val} { + set SR [SplitReply [ss2r]] + set SL [SplitReply [ss2l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss2r=$newD1R,ss2l=$newD1L" +} +publish ss2horoffsetscript user + +#------------------------------------------------------- +proc ss2readhoroffset {} { + set SR [SplitReply [ss2r]] + return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] +} +publish ss2readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss2ho +ss2ho drivescript ss2horoffsetscript +ss2ho readscript ss2readhoroffset + +#----------------------------------------------------- +proc ss2heightscript {val} { + set currentWidth [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss2d]] + $diff/2] + set newD1T [expr [SplitReply [ss2u]] + $diff/2] + return "ss2d=$newD1B,ss2u=$newD1T" +} +publish ss2heightscript user + +#------------------------------------------------------- +proc ss2readheight {} { + return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] +} +publish ss2readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss2vg +ss2vg drivescript ss2heightscript +ss2vg readscript ss2readheight + +#-------------------------------------------------------- +proc ss2vertoffsetscript {val} { + set SU [SplitReply [ss2u]] + set SD [SplitReply [ss2d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss2u=$newD1U,ss2d=$newD1D" +} +publish ss2vertoffsetscript user + +#------------------------------------------------------- +proc ss2readvertoffset {} { + set SU [SplitReply [ss2u]] + return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] +} +publish ss2readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss2vo +ss2vo drivescript ss2vertoffsetscript +ss2vo readscript ss2readvertoffset + +# END MOTOR CONFIGURATION + diff --git a/site_ansto/instrument/hipd/wombat_configuration.tcl b/site_ansto/instrument/hipd/wombat_configuration.tcl index 9ad8b4ea..f4c303ca 100644 --- a/site_ansto/instrument/hipd/wombat_configuration.tcl +++ b/site_ansto/instrument/hipd/wombat_configuration.tcl @@ -1,7 +1,7 @@ -# $Revision: 1.4 $ -# $Date: 2006-11-07 02:04:21 $ +# $Revision: 1.5 $ +# $Date: 2006-11-13 22:40:28 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) -# Last revision by: $Author: ffr $ +# Last revision by: $Author: dcl $ #START SERVER CONFIGURATION SECTION source dmc2280_util.tcl @@ -18,553 +18,6 @@ VarMake Instrument Text Internal Instrument Wombat Instrument lock -# Setup addresses of Galil DMC2280 controllers. -set dmc2280_controller1(host) mc1-wombat -set dmc2280_controller1(port) pmc1-wombat - -set dmc2280_controller2(host) mc2-wombat -set dmc2280_controller2(port) pmc2-wombat - -set dmc2280_controller3(host) mc3-wombat -set dmc2280_controller3(port) pmc3-wombat - -set dmc2280_controller4(host) mc4-wombat -set dmc2280_controller4(port) pmc4-wombat - -# Run slit homing routines on controllers 3 and 4 -#if [catch {dmc_connect dmc2280_controller3} ] { -# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1" -# dmc_close dmc2280_controller3 -#} -#if [catch {dmc_connect dmc2280_controller4} ] { -# dmc_sendCmd dmc2280_controller4 "XQ#HOME,1" -# dmc_close dmc2280_controller4 -#} - -# Monochromator omega, rotate -Motor mom DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis E\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -12500\ - absEnc 1\ - absEncHome 17694127\ - cntsPerX -8192] -setHomeandRange -motor mom -home 0 -lowrange 15 -uprange 15 -mom speed 1 -mom precision 0.01 - -# Monochromator two-theta, flight-tube rotate -Motor mtth DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis F\ - units degrees\ - maxSpeed 0.5\ - maxAccel 0.2\ - maxDecel 0.2\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 10299428\ - cntsPerX 93207] -mtth hardlowerlim 85 -mtth hardupperlim 155 -mtth softlowerlim 85 -mtth softupperlim 155 -mtth home 120 -mtth speed 0.5 -mtth precision 0.01 - -proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} -proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} -publish mthSet user -publish mthGet user -MakeConfigurableMotor mth -mth readscript mthGet -mth drivescript mthSet - -# Monochromator chi, Tilt 2, lower -Motor mchi DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis B\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7818915\ - cntsPerX 8192] -setHomeandRange -motor mchi -home 90 -lowrange 5 -uprange 5 -mchi speed 1 -mchi precision 0.01 - -# Monochromator phi, Tilt 1, upper -Motor mphi DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis A\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -25000\ - absEnc 1\ - absEncHome 7414753\ - cntsPerX -8192] -setHomeandRange -motor mphi -home 0 -lowrange 5 -uprange 5 -mphi speed 1 -mphi precision 0.01 - -# Monochromator Trans 1, upper -Motor mz DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis C\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7781680\ - cntsPerX 8192] -setHomeandRange -motor mz -home 0 -lowrange 5 -uprange 5 -mz speed 1 -mz precision 0.01 - -# Monochromator Trans 2, lower -Motor mx DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5 -mx speed 1 -mx precision 0.01 - -# Monochromator radius, focus -#Motor mr DMC2280 [params \ -# host $dmc2280_controller1(host)\ -# port $dmc2280_controller1(port)\ -# axis xxxx\ -# units xxxx\ -# maxSpeed xxxx\ -# maxAccel xxxx\ -# maxDecel xxxx\ -# stepsPerX xxxx\ -# absEnc 1\ -# absEncHome xxxx\ -# cntsPerX xxxx] -#setHomeandRange -motor mr -home 0 -lowrange 0 -uprange 0 -#mr speed 1 -#mr precision 0.01 - -# Sample Omega, rotate -Motor som DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis E\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -12500\ - absEnc 1\ - absEncHome 17694127\ - cntsPerX -8192] -setHomeandRange -motor som -home 0 -lowrange 45 -uprange 45 -som speed 1 -som precision 0.01 - -# Sample two-theta, detector rotate -Motor stth DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis F\ - units degrees\ - maxSpeed 0.2\ - maxAccel 0.2\ - maxDecel 0.2\ - stepsPerX 125000\ - absEnc 1\ - absEncHome 6559259\ - cntsPerX 93207] -setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15 -stth speed 0.5 -stth precision 0.01 - -proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} -proc sthSet {val} { return "stth=[SplitReply [stth]]"} -publish sthSet user -publish sthGet user -MakeConfigurableMotor sth -sth readscript sthGet -sth drivescript sthSet - -# Sample Tilt 2, lower -Motor schi DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis B\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7581355\ - cntsPerX 8192] -setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5 -schi speed 1 -schi precision 0.01 - -# Sample Tilt 1, upper -Motor sphi DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis A\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7934290\ - cntsPerX 8192] -setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 -sphi speed 1 -sphi precision 0.01 - -# Sample Trans 1 (upper) -Motor sz DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis C\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor sz -home 0 -lowrange 5 -uprange 5 -sz speed 1 -sz precision 0.01 - -# Sample Trans2 (lower) -Motor sx DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor sx -home 0 -lowrange 5 -uprange 5 -sx speed 1 -sx precision 0.01 - -#Default upper and lower ranges for vertical slits -set vertSlitLowRange 25 -set vertSlitUpRange 95 - -#Default upper and lower ranges for horizontal slits -set horSlitLowRange 20 -set horSlitUpRange 25 - -Motor ss1u DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis G\ - 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 H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2040518] -setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss1l DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss1r DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss2u DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis G\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2043085] -setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss2d DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2043085] -setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss2l DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 500000] -setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss2r DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 500000] -setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -#-------------------------------------------------------- -proc ss1widthscript {val} { - set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss1r]] + $diff/2] - set newD1L [expr [SplitReply [ss1l]] + $diff/2] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1widthscript user - -#------------------------------------------------------- -proc ss1readwidth {} { - return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] -} -publish ss1readwidth user -MakeConfigurableMotor ss1hg -ss1hg drivescript ss1widthscript -ss1hg readscript ss1readwidth - -#-------------------------------------------------------- -proc ss1horoffsetscript {val} { - set SR [SplitReply [ss1r]] - set SL [SplitReply [ss1l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1horoffsetscript user - -#------------------------------------------------------- -proc ss1readhoroffset {} { - set SR [SplitReply [ss1r]] - return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] -} -publish ss1readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1ho -ss1ho drivescript ss1horoffsetscript -ss1ho readscript ss1readhoroffset - -#----------------------------------------------------- -proc ss1heightscript {val} { - set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss1d]] + $diff/2] - set newD1T [expr [SplitReply [ss1u]] + $diff/2] - return "ss1d=$newD1B,ss1u=$newD1T" -} -publish ss1heightscript user - -#------------------------------------------------------- -proc ss1readheight {} { - return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] -} -publish ss1readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss1vg -ss1vg drivescript ss1heightscript -ss1vg readscript ss1readheight - -#-------------------------------------------------------- -proc ss1vertoffsetscript {val} { - set SU [SplitReply [ss1u]] - set SD [SplitReply [ss1d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss1u=$newD1U,ss1d=$newD1D" -} -publish ss1vertoffsetscript user - -#------------------------------------------------------- -proc ss1readvertoffset {} { - set SU [SplitReply [ss1u]] - return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] -} -publish ss1readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1vo -ss1vo drivescript ss1vertoffsetscript -ss1vo readscript ss1readvertoffset -############################################### - - -#-------------------------------------------------------- -proc ss2widthscript {val} { - set currentWidth [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss2r]] + $diff/2] - set newD1L [expr [SplitReply [ss2l]] + $diff/2] - return "ss2r=$newD1R,ss2l=$newD1L" -} -publish ss2widthscript user - -#------------------------------------------------------- -proc ss2readwidth {} { - return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] -} -publish ss2readwidth user -MakeConfigurableMotor ss2hg -ss2hg drivescript ss2widthscript -ss2hg readscript ss2readwidth - -#-------------------------------------------------------- -proc ss2horoffsetscript {val} { - set SR [SplitReply [ss2r]] - set SL [SplitReply [ss2l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss2r=$newD1R,ss2l=$newD1L" -} -publish ss2horoffsetscript user - -#------------------------------------------------------- -proc ss2readhoroffset {} { - set SR [SplitReply [ss2r]] - return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] -} -publish ss2readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss2ho -ss2ho drivescript ss2horoffsetscript -ss2ho readscript ss2readhoroffset - -#----------------------------------------------------- -proc ss2heightscript {val} { - set currentWidth [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss2d]] + $diff/2] - set newD1T [expr [SplitReply [ss2u]] + $diff/2] - return "ss2d=$newD1B,ss2u=$newD1T" -} -publish ss2heightscript user - -#------------------------------------------------------- -proc ss2readheight {} { - return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] -} -publish ss2readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss2vg -ss2vg drivescript ss2heightscript -ss2vg readscript ss2readheight - -#-------------------------------------------------------- -proc ss2vertoffsetscript {val} { - set SU [SplitReply [ss2u]] - set SD [SplitReply [ss2d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss2u=$newD1U,ss2d=$newD1D" -} -publish ss2vertoffsetscript user - -#------------------------------------------------------- -proc ss2readvertoffset {} { - set SU [SplitReply [ss2u]] - return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] -} -publish ss2readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss2vo -ss2vo drivescript ss2vertoffsetscript -ss2vo readscript ss2readvertoffset - -# END MOTOR CONFIGURATION #------------------------------------------------------------------------- # System: Histogram Server #------------------------------------------------------------------------ @@ -586,4 +39,6 @@ hm configure init 1 hm init MakeScanCommand xxxscan counter wombat.hdd recover.bin -source gen_hipadaba.tcl +fileeval motor_configuration.tcl +fileeval gen_hipadaba.tcl +fileeval extraconfig.tcl diff --git a/site_ansto/instrument/hrpd/MANIFEST.TXT b/site_ansto/instrument/hrpd/MANIFEST.TXT index 52ffbda9..f2800c77 100644 --- a/site_ansto/instrument/hrpd/MANIFEST.TXT +++ b/site_ansto/instrument/hrpd/MANIFEST.TXT @@ -1,4 +1,5 @@ echidna_configuration.tcl +motor_configuration.tcl echidna.hdd troubleshoot_setup.tcl hipadaba_configuration.tcl diff --git a/site_ansto/instrument/hrpd/echidna_configuration.tcl b/site_ansto/instrument/hrpd/echidna_configuration.tcl index b4b090f4..f03605f7 100644 --- a/site_ansto/instrument/hrpd/echidna_configuration.tcl +++ b/site_ansto/instrument/hrpd/echidna_configuration.tcl @@ -1,7 +1,7 @@ -# $Revision: 1.5 $ -# $Date: 2006-11-06 22:03:37 $ +# $Revision: 1.6 $ +# $Date: 2006-11-13 22:40:28 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) -# Last revision by: $Author: ffr $ +# Last revision by: $Author: dcl $ #START SERVER CONFIGURATION SECTION source dmc2280_util.tcl @@ -18,613 +18,9 @@ VarMake Instrument Text Internal Instrument Echidna Instrument lock -# START MOTOR CONFIGURATION -#xxxx WHICH CONTROLLER DO ECHI AND EPHI BELONG TO -#Motor echi DMC2280 [params \ -# host xxxx\ -# port xxxx\ -# axis A\ -# units xxxx\ -# maxSpeed xxxx\ -# maxAccel xxxx\ -# maxDecel xxxx\ -# stepsPerX xxxx\ -# absEnc 1\ -# absEncHome xxxx\ -# cntsPerX xxxx] -#setHomeandRange -motor echi -home 0 -lowrange 0 -uprange 360 - -#Motor ephi DMC2280 [params \ -# host xxxx\ -# port xxxx\ -# axis xxxx\ -# units xxxx\ -# maxSpeed xxxx\ -# maxAccel xxxx\ -# maxDecel xxxx\ -# stepsPerX xxxx\ -# absEnc 1\ -# absEncHome xxxx\ -# cntsPerX xxxx] -#setHomeandRange -motor ephi -home 0 -lowrange 0 -uprange 360 - -# Setup addresses of Galil DMC2280 controllers. -set dmc2280_controller1(host) mc1-echidna -set dmc2280_controller1(port) pmc1-echidna - -set dmc2280_controller2(host) mc2-echidna -set dmc2280_controller2(port) pmc2-echidna - -set dmc2280_controller3(host) mc3-echidna -set dmc2280_controller3(port) pmc3-echidna - -set dmc2280_controller4(host) mc4-echidna -set dmc2280_controller4(port) pmc4-echidna - -# Run slit homing routines on controllers 3 and 4 -#if [catch {dmc_connect dmc2280_controller3} ] { -# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1" -# dmc_close dmc2280_controller3 -#} -#if [catch {dmc_connect dmc2280_controller4} ] { -# dmc_sendCmd dmc2280_controller4 "XQ#HOME,1" -# dmc_close dmc2280_controller4 -#} - -# Monochromator omega, rotate -Motor mom DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis E\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -12500\ - absEnc 1\ - absEncHome 17694127\ - cntsPerX -8192] -setHomeandRange -motor mom -home 0 -lowrange 15 -uprange 15 -mom speed 1 -mom precision 0.01 - -# Monochromator two-theta, flight-tube rotate -Motor mtth DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis F\ - units degrees\ - maxSpeed 0.5\ - maxAccel 0.2\ - maxDecel 0.2\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 10299428\ - cntsPerX 93207] -mtth hardlowerlim 85 -mtth hardupperlim 135 -mtth softlowerlim 85 -mtth softupperlim 135 -mtth home 87.635 -mtth speed 0.5 -mtth precision 0.01 - -proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} -proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} -publish mthSet user -publish mthGet user -MakeConfigurableMotor mth -mth readscript mthGet -mth drivescript mthSet - -# Monochromator chi, Tilt 2, lower -Motor mchi DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis B\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7818915\ - cntsPerX 8192] -setHomeandRange -motor mchi -home 90 -lowrange 5 -uprange 5 -mchi speed 1 -mchi precision 0.01 - -# Monochromator phi, Tilt 1, upper -Motor mphi DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis A\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -25000\ - absEnc 1\ - absEncHome 7414753\ - cntsPerX -8192] -setHomeandRange -motor mphi -home 0 -lowrange 5 -uprange 5 -mphi speed 1 -mphi precision 0.01 - -# Monochromator Trans 1, upper -Motor mz DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis C\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7781680\ - cntsPerX 8192] -setHomeandRange -motor mz -home 0 -lowrange 5 -uprange 5 -mz speed 1 -mz precision 0.01 - -# Monochromator Trans 2, lower -Motor mx DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5 -mx speed 1 -mx precision 0.01 - -# Monochromator radius, focus -#Motor mr DMC2280 [params \ -# host $dmc2280_controller3(host)\ -# port $dmc2280_controller3(port)\ -# axis A\ -# units xxxx\ -# maxSpeed xxxx\ -# maxAccel xxxx\ -# maxDecel xxxx\ -# stepsPerX xxxx\ -# absEnc 1\ -# absEncHome xxxx\ -# cntsPerX xxxx] -#setHomeandRange -motor mr -home 0 -lowrange 0 -uprange 0 -#mr speed 1 -#mr precision 0.01 - -# Primary Collimator 1 -#Motor pc1 DMC2280 [params \ -# host $dmc2280_controller1(host)\ -# port $dmc2280_controller1(port)\ -# axis F\ -# 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 2 -#Motor pc2 DMC2280 [params \ -# host $dmc2280_controller1(host)\ -# port $dmc2280_controller1(port)\ -# axis G\ -# 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 - -# Sample Omega, rotate -Motor som DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis E\ - units degrees\ - maxSpeed 4\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 12500\ - absEnc 1\ - absEncHome 24982987\ - cntsPerX 4096] -setHomeandRange -motor som -home 0 -lowrange 140 -uprange 205 -som speed 2 -som precision 0.01 - -# Sample two-theta, detector rotate -Motor stth DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis F\ - units degrees\ - maxSpeed 0.2\ - maxAccel 0.2\ - maxDecel 0.2\ - stepsPerX 125000\ - absEnc 1\ - absEncHome 6559259\ - cntsPerX 93207] -setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15 -stth speed 0.5 -stth precision 0.01 - -proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} -proc sthSet {val} { return "stth=[SplitReply [stth]]"} -publish sthGet user -publish sthSet user -MakeConfigurableMotor sth -sth readscript sthGet -sth drivescript sthSet - -# Sample Tilt 2, lower -Motor schi DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis B\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7543198\ - cntsPerX 8192] -setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5 -schi speed 1 -schi precision 0.01 - -# Sample Tilt 1, upper -Motor sphi DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis A\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -25000\ - absEnc 1\ - absEncHome 7924166\ - cntsPerX -8192] -setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 -sphi speed 1 -sphi precision 0.01 - -# Sample Trans 1 (upper) -Motor sz DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis C\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7625856\ - cntsPerX 8192] -setHomeandRange -motor sz -home 0 -lowrange 5 -uprange 5 -sz speed 1 -sz precision 0.01 - -# Sample Trans2 (lower) -Motor sx DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 24034020\ - cntsPerX 8192] -setHomeandRange -motor sx -home 0 -lowrange 5 -uprange 5 -sx speed 1 -sx precision 0.01 - -#Default upper and lower ranges for vertical slits -set vertSlitLowRange 25 -set vertSlitUpRange 95 - -#Default upper and lower ranges for horizontal slits -set horSlitLowRange 20 -set horSlitUpRange 25 - -Motor ss1u DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis G\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2100893] -setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss1d DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2100893] -setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss1l DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 592406] -setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss1r DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 592406] -setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss2u DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis G\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2053148] -setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss2d DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2053148] -setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss2l DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 530188] -setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss2r DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 530188] -setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -#-------------------------------------------------------- -proc ss1widthscript {val} { - set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss1r]] + $diff/2] - set newD1L [expr [SplitReply [ss1l]] + $diff/2] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1widthscript user - -#------------------------------------------------------- -proc ss1readwidth {} { - return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] -} -publish ss1readwidth user -MakeConfigurableMotor ss1hg -ss1hg drivescript ss1widthscript -ss1hg readscript ss1readwidth - -#-------------------------------------------------------- -proc ss1horoffsetscript {val} { - set SR [SplitReply [ss1r]] - set SL [SplitReply [ss1l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1horoffsetscript user - -#------------------------------------------------------- -proc ss1readhoroffset {} { - set SR [SplitReply [ss1r]] - return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] -} -publish ss1readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1ho -ss1ho drivescript ss1horoffsetscript -ss1ho readscript ss1readhoroffset - -#----------------------------------------------------- -proc ss1heightscript {val} { - set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss1d]] + $diff/2] - set newD1T [expr [SplitReply [ss1u]] + $diff/2] - return "ss1d=$newD1B,ss1u=$newD1T" -} -publish ss1heightscript user - -#------------------------------------------------------- -proc ss1readheight {} { - return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] -} -publish ss1readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss1vg -ss1vg drivescript ss1heightscript -ss1vg readscript ss1readheight - -#-------------------------------------------------------- -proc ss1vertoffsetscript {val} { - set SU [SplitReply [ss1u]] - set SD [SplitReply [ss1d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss1u=$newD1U,ss1d=$newD1D" -} -publish ss1vertoffsetscript user - -#------------------------------------------------------- -proc ss1readvertoffset {} { - set SU [SplitReply [ss1u]] - return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] -} -publish ss1readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1vo -ss1vo drivescript ss1vertoffsetscript -ss1vo readscript ss1readvertoffset -############################################### - - -#-------------------------------------------------------- -proc ss2widthscript {val} { - set currentWidth [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss2r]] + $diff/2] - set newD1L [expr [SplitReply [ss2l]] + $diff/2] - return "ss2r=$newD1R,ss2l=$newD1L" -} -publish ss2widthscript user - -#------------------------------------------------------- -proc ss2readwidth {} { - return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] -} -publish ss2readwidth user -MakeConfigurableMotor ss2hg -ss2hg drivescript ss2widthscript -ss2hg readscript ss2readwidth - -#-------------------------------------------------------- -proc ss2horoffsetscript {val} { - set SR [SplitReply [ss2r]] - set SL [SplitReply [ss2l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss2r=$newD1R,ss2l=$newD1L" -} -publish ss2horoffsetscript user - -#------------------------------------------------------- -proc ss2readhoroffset {} { - set SR [SplitReply [ss2r]] - return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] -} -publish ss2readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss2ho -ss2ho drivescript ss2horoffsetscript -ss2ho readscript ss2readhoroffset - -#----------------------------------------------------- -proc ss2heightscript {val} { - set currentWidth [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss2d]] + $diff/2] - set newD1T [expr [SplitReply [ss2u]] + $diff/2] - return "ss2d=$newD1B,ss2u=$newD1T" -} -publish ss2heightscript user - -#------------------------------------------------------- -proc ss2readheight {} { - return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] -} -publish ss2readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss2vg -ss2vg drivescript ss2heightscript -ss2vg readscript ss2readheight - -#-------------------------------------------------------- -proc ss2vertoffsetscript {val} { - set SU [SplitReply [ss2u]] - set SD [SplitReply [ss2d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss2u=$newD1U,ss2d=$newD1D" -} -publish ss2vertoffsetscript user - -#------------------------------------------------------- -proc ss2readvertoffset {} { - set SU [SplitReply [ss2u]] - return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] -} -publish ss2readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss2vo -ss2vo drivescript ss2vertoffsetscript -ss2vo readscript ss2readvertoffset - -# END MOTOR CONFIGURATION MakeCounter simCtr SIM -1.0 MakeScanCommand xxxscan simCtr echidna.hdd recover.bin +fileeval motor_configuration.tcl source gen_hipadaba.tcl source extraconfig.tcl diff --git a/site_ansto/instrument/hrpd/motor_configuration.tcl b/site_ansto/instrument/hrpd/motor_configuration.tcl new file mode 100644 index 00000000..f7d4dee5 --- /dev/null +++ b/site_ansto/instrument/hrpd/motor_configuration.tcl @@ -0,0 +1,605 @@ +# START MOTOR CONFIGURATION +#xxxx WHICH CONTROLLER DO ECHI AND EPHI BELONG TO +#Motor echi DMC2280 [params \ +# host xxxx\ +# port xxxx\ +# axis A\ +# units xxxx\ +# maxSpeed xxxx\ +# maxAccel xxxx\ +# maxDecel xxxx\ +# stepsPerX xxxx\ +# absEnc 1\ +# absEncHome xxxx\ +# cntsPerX xxxx] +#setHomeandRange -motor echi -home 0 -lowrange 0 -uprange 360 + +#Motor ephi DMC2280 [params \ +# host xxxx\ +# port xxxx\ +# axis xxxx\ +# units xxxx\ +# maxSpeed xxxx\ +# maxAccel xxxx\ +# maxDecel xxxx\ +# stepsPerX xxxx\ +# absEnc 1\ +# absEncHome xxxx\ +# cntsPerX xxxx] +#setHomeandRange -motor ephi -home 0 -lowrange 0 -uprange 360 + +# Setup addresses of Galil DMC2280 controllers. +set dmc2280_controller1(host) mc1-echidna +set dmc2280_controller1(port) pmc1-echidna + +set dmc2280_controller2(host) mc2-echidna +set dmc2280_controller2(port) pmc2-echidna + +set dmc2280_controller3(host) mc3-echidna +set dmc2280_controller3(port) pmc3-echidna + +set dmc2280_controller4(host) mc4-echidna +set dmc2280_controller4(port) pmc4-echidna + +# Run slit homing routines on controllers 3 and 4 +#if [catch {dmc_connect dmc2280_controller3} ] { +# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1" +# dmc_close dmc2280_controller3 +#} +#if [catch {dmc_connect dmc2280_controller4} ] { +# dmc_sendCmd dmc2280_controller4 "XQ#HOME,1" +# dmc_close dmc2280_controller4 +#} + +# Monochromator omega, rotate +Motor mom DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis E\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -12500\ + absEnc 1\ + absEncHome 17694127\ + cntsPerX -8192] +setHomeandRange -motor mom -home 0 -lowrange 15 -uprange 15 +mom speed 1 +mom precision 0.01 + +# Monochromator two-theta, flight-tube rotate +Motor mtth DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis F\ + units degrees\ + maxSpeed 0.5\ + maxAccel 0.2\ + maxDecel 0.2\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 10299428\ + cntsPerX 93207] +mtth hardlowerlim 85 +mtth hardupperlim 135 +mtth softlowerlim 85 +mtth softupperlim 135 +mtth home 87.635 +mtth speed 0.5 +mtth precision 0.01 + +proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} +proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} +publish mthSet user +publish mthGet user +MakeConfigurableMotor mth +mth readscript mthGet +mth drivescript mthSet + +# Monochromator chi, Tilt 2, lower +Motor mchi DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis B\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7818915\ + cntsPerX 8192] +setHomeandRange -motor mchi -home 90 -lowrange 5 -uprange 5 +mchi speed 1 +mchi precision 0.01 + +# Monochromator phi, Tilt 1, upper +Motor mphi DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis A\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -25000\ + absEnc 1\ + absEncHome 7414753\ + cntsPerX -8192] +setHomeandRange -motor mphi -home 0 -lowrange 5 -uprange 5 +mphi speed 1 +mphi precision 0.01 + +# Monochromator Trans 1, upper +Motor mz DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis C\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7781680\ + cntsPerX 8192] +setHomeandRange -motor mz -home 0 -lowrange 5 -uprange 5 +mz speed 1 +mz precision 0.01 + +# Monochromator Trans 2, lower +Motor mx DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5 +mx speed 1 +mx precision 0.01 + +# Monochromator radius, focus +#Motor mr DMC2280 [params \ +# host $dmc2280_controller3(host)\ +# port $dmc2280_controller3(port)\ +# axis A\ +# units xxxx\ +# maxSpeed xxxx\ +# maxAccel xxxx\ +# maxDecel xxxx\ +# stepsPerX xxxx\ +# absEnc 1\ +# absEncHome xxxx\ +# cntsPerX xxxx] +#setHomeandRange -motor mr -home 0 -lowrange 0 -uprange 0 +#mr speed 1 +#mr precision 0.01 + +# Primary Collimator 1 +#Motor pc1 DMC2280 [params \ +# host $dmc2280_controller1(host)\ +# port $dmc2280_controller1(port)\ +# axis F\ +# 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 2 +#Motor pc2 DMC2280 [params \ +# host $dmc2280_controller1(host)\ +# port $dmc2280_controller1(port)\ +# axis G\ +# 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 + +# Sample Omega, rotate +Motor som DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis E\ + units degrees\ + maxSpeed 4\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 12500\ + absEnc 1\ + absEncHome 24982987\ + cntsPerX 4096] +setHomeandRange -motor som -home 0 -lowrange 140 -uprange 205 +som speed 2 +som precision 0.01 + +# Sample two-theta, detector rotate +Motor stth DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis F\ + units degrees\ + maxSpeed 0.2\ + maxAccel 0.2\ + maxDecel 0.2\ + stepsPerX 125000\ + absEnc 1\ + absEncHome 6559259\ + cntsPerX 93207] +setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15 +stth speed 0.5 +stth precision 0.01 + +proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} +proc sthSet {val} { return "stth=[SplitReply [stth]]"} +publish sthGet user +publish sthSet user +MakeConfigurableMotor sth +sth readscript sthGet +sth drivescript sthSet + +# Sample Tilt 2, lower +Motor schi DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis B\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7543198\ + cntsPerX 8192] +setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5 +schi speed 1 +schi precision 0.01 + +# Sample Tilt 1, upper +Motor sphi DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis A\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -25000\ + absEnc 1\ + absEncHome 7924166\ + cntsPerX -8192] +setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 +sphi speed 1 +sphi precision 0.01 + +# Sample Trans 1 (upper) +Motor sz DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis C\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7625856\ + cntsPerX 8192] +setHomeandRange -motor sz -home 0 -lowrange 5 -uprange 5 +sz speed 1 +sz precision 0.01 + +# Sample Trans2 (lower) +Motor sx DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 24034020\ + cntsPerX 8192] +setHomeandRange -motor sx -home 0 -lowrange 5 -uprange 5 +sx speed 1 +sx precision 0.01 + +#Default upper and lower ranges for vertical slits +set vertSlitLowRange 25 +set vertSlitUpRange 95 + +#Default upper and lower ranges for horizontal slits +set horSlitLowRange 20 +set horSlitUpRange 25 + +Motor ss1u DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis G\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2100893] +setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss1d DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2100893] +setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss1l DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 592406] +setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss1r DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 592406] +setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss2u DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis G\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2053148] +setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss2d DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2053148] +setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss2l DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 530188] +setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss2r DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 530188] +setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +#-------------------------------------------------------- +proc ss1widthscript {val} { + set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss1r]] + $diff/2] + set newD1L [expr [SplitReply [ss1l]] + $diff/2] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1widthscript user + +#------------------------------------------------------- +proc ss1readwidth {} { + return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] +} +publish ss1readwidth user +MakeConfigurableMotor ss1hg +ss1hg drivescript ss1widthscript +ss1hg readscript ss1readwidth + +#-------------------------------------------------------- +proc ss1horoffsetscript {val} { + set SR [SplitReply [ss1r]] + set SL [SplitReply [ss1l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1horoffsetscript user + +#------------------------------------------------------- +proc ss1readhoroffset {} { + set SR [SplitReply [ss1r]] + return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] +} +publish ss1readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1ho +ss1ho drivescript ss1horoffsetscript +ss1ho readscript ss1readhoroffset + +#----------------------------------------------------- +proc ss1heightscript {val} { + set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss1d]] + $diff/2] + set newD1T [expr [SplitReply [ss1u]] + $diff/2] + return "ss1d=$newD1B,ss1u=$newD1T" +} +publish ss1heightscript user + +#------------------------------------------------------- +proc ss1readheight {} { + return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] +} +publish ss1readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss1vg +ss1vg drivescript ss1heightscript +ss1vg readscript ss1readheight + +#-------------------------------------------------------- +proc ss1vertoffsetscript {val} { + set SU [SplitReply [ss1u]] + set SD [SplitReply [ss1d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss1u=$newD1U,ss1d=$newD1D" +} +publish ss1vertoffsetscript user + +#------------------------------------------------------- +proc ss1readvertoffset {} { + set SU [SplitReply [ss1u]] + return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] +} +publish ss1readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1vo +ss1vo drivescript ss1vertoffsetscript +ss1vo readscript ss1readvertoffset +############################################### + + +#-------------------------------------------------------- +proc ss2widthscript {val} { + set currentWidth [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss2r]] + $diff/2] + set newD1L [expr [SplitReply [ss2l]] + $diff/2] + return "ss2r=$newD1R,ss2l=$newD1L" +} +publish ss2widthscript user + +#------------------------------------------------------- +proc ss2readwidth {} { + return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] +} +publish ss2readwidth user +MakeConfigurableMotor ss2hg +ss2hg drivescript ss2widthscript +ss2hg readscript ss2readwidth + +#-------------------------------------------------------- +proc ss2horoffsetscript {val} { + set SR [SplitReply [ss2r]] + set SL [SplitReply [ss2l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss2r=$newD1R,ss2l=$newD1L" +} +publish ss2horoffsetscript user + +#------------------------------------------------------- +proc ss2readhoroffset {} { + set SR [SplitReply [ss2r]] + return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] +} +publish ss2readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss2ho +ss2ho drivescript ss2horoffsetscript +ss2ho readscript ss2readhoroffset + +#----------------------------------------------------- +proc ss2heightscript {val} { + set currentWidth [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss2d]] + $diff/2] + set newD1T [expr [SplitReply [ss2u]] + $diff/2] + return "ss2d=$newD1B,ss2u=$newD1T" +} +publish ss2heightscript user + +#------------------------------------------------------- +proc ss2readheight {} { + return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] +} +publish ss2readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss2vg +ss2vg drivescript ss2heightscript +ss2vg readscript ss2readheight + +#-------------------------------------------------------- +proc ss2vertoffsetscript {val} { + set SU [SplitReply [ss2u]] + set SD [SplitReply [ss2d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss2u=$newD1U,ss2d=$newD1D" +} +publish ss2vertoffsetscript user + +#------------------------------------------------------- +proc ss2readvertoffset {} { + set SU [SplitReply [ss2u]] + return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] +} +publish ss2readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss2vo +ss2vo drivescript ss2vertoffsetscript +ss2vo readscript ss2readvertoffset + +# END MOTOR CONFIGURATION diff --git a/site_ansto/instrument/qld/MANIFEST.TXT b/site_ansto/instrument/qld/MANIFEST.TXT index 9c82e047..e5279606 100644 --- a/site_ansto/instrument/qld/MANIFEST.TXT +++ b/site_ansto/instrument/qld/MANIFEST.TXT @@ -1,5 +1,7 @@ koala_configuration.tcl +motor_configuration.tcl hipadaba_configuration.tcl koala.hdd troubleshoot_setup.tcl +extraconfig.tcl InstXML.tcl diff --git a/site_ansto/instrument/qld/extraconfig.tcl b/site_ansto/instrument/qld/extraconfig.tcl new file mode 100644 index 00000000..e69de29b diff --git a/site_ansto/instrument/qld/koala_configuration.tcl b/site_ansto/instrument/qld/koala_configuration.tcl index 2f5be57a..f6c0af5d 100644 --- a/site_ansto/instrument/qld/koala_configuration.tcl +++ b/site_ansto/instrument/qld/koala_configuration.tcl @@ -1,7 +1,7 @@ -# $Revision: 1.2 $ -# $Date: 2006-11-07 02:05:21 $ +# $Revision: 1.3 $ +# $Date: 2006-11-13 22:40:29 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) -# Last revision by: $Author: ffr $ +# Last revision by: $Author: dcl $ #START SERVER CONFIGURATION SECTION source dmc2280_util.tcl @@ -14,165 +14,7 @@ VarMake Instrument Text Internal Instrument Koala Instrument lock -# Setup addresses of Galil DMC2280 controllers. -set dmc2280_controller1(host) mc1-koala -set dmc2280_controller1(port) pmc1-koala - -# Run slit homing routines -#if [catch {dmc_connect dmc2280_controller1} ] { -# dmc_sendCmd dmc2280_controller1 "XQ#HOME,1" -# dmc_close dmc2280_controller1 -#} -#if [catch {dmc_connect dmc2280_controller1} ] { -# dmc_sendCmd dmc2280_controller1 "XQ#HOME,1" -# dmc_close dmc2280_controller1 -#} - -#Default upper and lower ranges for vertical slits -set vertSlitLowRange 25 -set vertSlitUpRange 95 - -#Default upper and lower ranges for horizontal slits -set horSlitLowRange 20 -set horSlitUpRange 25 - -Motor ss1u DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis G\ - 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_controller1(host)\ - port $dmc2280_controller1(port)\ - axis H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2040518] -setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss1l DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss1r DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -#-------------------------------------------------------- -proc ss1widthscript {val} { - set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss1r]] + $diff/2] - set newD1L [expr [SplitReply [ss1l]] + $diff/2] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1widthscript user - -#------------------------------------------------------- -proc ss1readwidth {} { - return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] -} -publish ss1readwidth user -MakeConfigurableMotor ss1hg -ss1hg drivescript ss1widthscript -ss1hg readscript ss1readwidth - -#-------------------------------------------------------- -proc ss1horoffsetscript {val} { - set SR [SplitReply [ss1r]] - set SL [SplitReply [ss1l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1horoffsetscript user - -#------------------------------------------------------- -proc ss1readhoroffset {} { - set SR [SplitReply [ss1r]] - return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] -} -publish ss1readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1ho -ss1ho drivescript ss1horoffsetscript -ss1ho readscript ss1readhoroffset - -#----------------------------------------------------- -proc ss1heightscript {val} { - set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss1d]] + $diff/2] - set newD1T [expr [SplitReply [ss1u]] + $diff/2] - return "ss1d=$newD1B,ss1u=$newD1T" -} -publish ss1heightscript user - -#------------------------------------------------------- -proc ss1readheight {} { - return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] -} -publish ss1readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss1vg -ss1vg drivescript ss1heightscript -ss1vg readscript ss1readheight - -#-------------------------------------------------------- -proc ss1vertoffsetscript {val} { - set SU [SplitReply [ss1u]] - set SD [SplitReply [ss1d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss1u=$newD1U,ss1d=$newD1D" -} -publish ss1vertoffsetscript user - -#------------------------------------------------------- -proc ss1readvertoffset {} { - set SU [SplitReply [ss1u]] - return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] -} -publish ss1readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1vo -ss1vo drivescript ss1vertoffsetscript -ss1vo readscript ss1readvertoffset -############################################### - -# END MOTOR CONFIGURATION +fileeval motor_configuration.tcl source gen_hipadaba.tcl +fileeval extraconfig.tcl diff --git a/site_ansto/instrument/qld/motor_configuration.tcl b/site_ansto/instrument/qld/motor_configuration.tcl new file mode 100644 index 00000000..082c85c3 --- /dev/null +++ b/site_ansto/instrument/qld/motor_configuration.tcl @@ -0,0 +1,160 @@ +# Setup addresses of Galil DMC2280 controllers. +set dmc2280_controller1(host) mc1-koala +set dmc2280_controller1(port) pmc1-koala + +# Run slit homing routines +#if [catch {dmc_connect dmc2280_controller1} ] { +# dmc_sendCmd dmc2280_controller1 "XQ#HOME,1" +# dmc_close dmc2280_controller1 +#} +#if [catch {dmc_connect dmc2280_controller1} ] { +# dmc_sendCmd dmc2280_controller1 "XQ#HOME,1" +# dmc_close dmc2280_controller1 +#} + +#Default upper and lower ranges for vertical slits +set vertSlitLowRange 25 +set vertSlitUpRange 95 + +#Default upper and lower ranges for horizontal slits +set horSlitLowRange 20 +set horSlitUpRange 25 + +Motor ss1u DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis G\ + 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_controller1(host)\ + port $dmc2280_controller1(port)\ + axis H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2040518] +setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss1l DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 542093] +setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss1r DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 542093] +setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +#-------------------------------------------------------- +proc ss1widthscript {val} { + set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss1r]] + $diff/2] + set newD1L [expr [SplitReply [ss1l]] + $diff/2] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1widthscript user + +#------------------------------------------------------- +proc ss1readwidth {} { + return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] +} +publish ss1readwidth user +MakeConfigurableMotor ss1hg +ss1hg drivescript ss1widthscript +ss1hg readscript ss1readwidth + +#-------------------------------------------------------- +proc ss1horoffsetscript {val} { + set SR [SplitReply [ss1r]] + set SL [SplitReply [ss1l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1horoffsetscript user + +#------------------------------------------------------- +proc ss1readhoroffset {} { + set SR [SplitReply [ss1r]] + return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] +} +publish ss1readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1ho +ss1ho drivescript ss1horoffsetscript +ss1ho readscript ss1readhoroffset + +#----------------------------------------------------- +proc ss1heightscript {val} { + set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss1d]] + $diff/2] + set newD1T [expr [SplitReply [ss1u]] + $diff/2] + return "ss1d=$newD1B,ss1u=$newD1T" +} +publish ss1heightscript user + +#------------------------------------------------------- +proc ss1readheight {} { + return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] +} +publish ss1readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss1vg +ss1vg drivescript ss1heightscript +ss1vg readscript ss1readheight + +#-------------------------------------------------------- +proc ss1vertoffsetscript {val} { + set SU [SplitReply [ss1u]] + set SD [SplitReply [ss1d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss1u=$newD1U,ss1d=$newD1D" +} +publish ss1vertoffsetscript user + +#------------------------------------------------------- +proc ss1readvertoffset {} { + set SU [SplitReply [ss1u]] + return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] +} +publish ss1readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1vo +ss1vo drivescript ss1vertoffsetscript +ss1vo readscript ss1readvertoffset +############################################### + +# END MOTOR CONFIGURATION diff --git a/site_ansto/instrument/rsd/MANIFEST.TXT b/site_ansto/instrument/rsd/MANIFEST.TXT index 4ef67cbb..bb3eff6d 100644 --- a/site_ansto/instrument/rsd/MANIFEST.TXT +++ b/site_ansto/instrument/rsd/MANIFEST.TXT @@ -1,5 +1,7 @@ kowari_configuration.tcl +motor_configuration.tcl hipadaba_configuration.tcl kowari.hdd troubleshoot_setup.tcl +extraconfig.tcl InstXML.tcl diff --git a/site_ansto/instrument/rsd/extraconfig.tcl b/site_ansto/instrument/rsd/extraconfig.tcl new file mode 100644 index 00000000..e69de29b diff --git a/site_ansto/instrument/rsd/kowari_configuration.tcl b/site_ansto/instrument/rsd/kowari_configuration.tcl index 843772dc..2fd42c38 100644 --- a/site_ansto/instrument/rsd/kowari_configuration.tcl +++ b/site_ansto/instrument/rsd/kowari_configuration.tcl @@ -1,7 +1,7 @@ -# $Revision: 1.3 $ -# $Date: 2006-11-07 02:06:51 $ +# $Revision: 1.4 $ +# $Date: 2006-11-13 22:40:29 $ # Author: Ferdi Franceschini (ffr@ansto.gov.au) -# Last revision by: $Author: ffr $ +# Last revision by: $Author: dcl $ #START SERVER CONFIGURATION SECTION source dmc2280_util.tcl @@ -18,553 +18,6 @@ VarMake Instrument Text Internal Instrument Kowari Instrument lock -# Setup addresses of Galil DMC2280 controllers. -set dmc2280_controller1(host) mc1-kowari -set dmc2280_controller1(port) pmc1-kowari - -set dmc2280_controller2(host) mc2-kowari -set dmc2280_controller2(port) pmc2-kowari - -set dmc2280_controller3(host) mc3-kowari -set dmc2280_controller3(port) pmc3-kowari - -set dmc2280_controller4(host) mc4-kowari -set dmc2280_controller4(port) pmc4-kowari - -# Run slit homing routines on controllers 3 and 4 -#if [catch {dmc_connect dmc2280_controller3} ] { -# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1" -# dmc_close dmc2280_controller3 -#} -#if [catch {dmc_connect dmc2280_controller4} ] { -# dmc_sendCmd dmc2280_controller4 "XQ#HOME,1" -# dmc_close dmc2280_controller4 -#} - -# Monochromator omega, rotate -Motor mom DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis E\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -12500\ - absEnc 1\ - absEncHome 17694127\ - cntsPerX -8192] -setHomeandRange -motor mom -home 0 -lowrange 5 -uprange 5 -mom speed 1 -mom precision 0.01 - -# Monochromator two-theta, flight-tube rotate -Motor mtth DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis F\ - units degrees\ - maxSpeed 0.5\ - maxAccel 0.2\ - maxDecel 0.2\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 10299428\ - cntsPerX 93207] -mtth hardlowerlim 85 -mtth hardupperlim 155 -mtth softlowerlim 85 -mtth softupperlim 155 -mtth home 120 -mtth speed 0.5 -mtth precision 0.01 - -proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} -proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} -publish mthSet user -publish mthGet user -MakeConfigurableMotor mth -mth readscript mthGet -mth drivescript mthSet - -# Monochromator chi, Tilt 2, lower -Motor mchi DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis B\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7818915\ - cntsPerX 8192] -setHomeandRange -motor mchi -home 90 -lowrange 5 -uprange 5 -mchi speed 1 -mchi precision 0.01 - -# Monochromator phi, Tilt 1, upper -Motor mphi DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis A\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -25000\ - absEnc 1\ - absEncHome 7414753\ - cntsPerX -8192] -setHomeandRange -motor mphi -home 0 -lowrange 5 -uprange 5 -mphi speed 1 -mphi precision 0.01 - -# Monochromator Trans 1, upper -Motor mz DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis C\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7781680\ - cntsPerX 8192] -setHomeandRange -motor mz -home 0 -lowrange 5 -uprange 5 -mz speed 1 -mz precision 0.01 - -# Monochromator Trans 2, lower -Motor mx DMC2280 [params \ - host $dmc2280_controller1(host)\ - port $dmc2280_controller1(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5 -mx speed 1 -mx precision 0.01 - -# Sample Omega, rotate -Motor som DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis E\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -12500\ - absEnc 1\ - absEncHome 17694127\ - cntsPerX -8192] -setHomeandRange -motor som -home 0 -lowrange 45 -uprange 45 -som speed 1 -som precision 0.01 - -# Sample two-theta, detector rotate -Motor stth DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis F\ - units degrees\ - maxSpeed 0.2\ - maxAccel 0.2\ - maxDecel 0.2\ - stepsPerX 125000\ - absEnc 1\ - absEncHome 6559259\ - cntsPerX 93207] -setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15 -stth speed 0.5 -stth precision 0.01 - -proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} -proc sthSet {val} { return "stth=[SplitReply [stth]]"} -publish sthSet user -publish sthGet user -MakeConfigurableMotor sth -sth readscript sthGet -sth drivescript sthSet - -# Sample Tilt 2, lower -Motor schi DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis B\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7581355\ - cntsPerX 8192] -setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5 -schi speed 1 -schi precision 0.01 - -# Sample Tilt 1, upper -Motor sphi DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis A\ - units degrees\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7934290\ - cntsPerX 8192] -setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 -sphi speed 1 -sphi precision 0.01 - -# Sample Trans 1 (upper) -Motor sz DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis C\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor sz -home 0 -lowrange 5 -uprange 5 -sz speed 1 -sz precision 0.01 - -# Sample Trans2 (lower) -Motor sx DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor sx -home 0 -lowrange 5 -uprange 5 -sx speed 1 -sx precision 0.01 - -# Sample Trans3 (vertical) -Motor sy DMC2280 [params \ - host $dmc2280_controller2(host)\ - port $dmc2280_controller2(port)\ - axis D\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX 25000\ - absEnc 1\ - absEncHome 7562793\ - cntsPerX 8192] -setHomeandRange -motor sy -home 0 -lowrange 500 -uprange 500 -sy speed 1 -sy precision 0.01 - -#Default upper and lower ranges for vertical slits -set vertSlitLowRange 25 -set vertSlitUpRange 95 - -#Default upper and lower ranges for horizontal slits -set horSlitLowRange 20 -set horSlitUpRange 25 - -Motor ss1u DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis G\ - 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 H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2040518] -setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss1l DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss1r DMC2280 [params \ - host $dmc2280_controller3(host)\ - port $dmc2280_controller3(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 542093] -setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss2u DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis G\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2043085] -setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss2d DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis H\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 2043085] -setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange - -Motor ss2l DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis E\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 500000] -setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -Motor ss2r DMC2280 [params \ - host $dmc2280_controller4(host)\ - port $dmc2280_controller4(port)\ - axis F\ - units mm\ - maxSpeed 1\ - maxAccel 1\ - maxDecel 1\ - stepsPerX -20125\ - motorHome 500000] -setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange - -#-------------------------------------------------------- -proc ss1widthscript {val} { - set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss1r]] + $diff/2] - set newD1L [expr [SplitReply [ss1l]] + $diff/2] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1widthscript user - -#------------------------------------------------------- -proc ss1readwidth {} { - return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] -} -publish ss1readwidth user -MakeConfigurableMotor ss1hg -ss1hg drivescript ss1widthscript -ss1hg readscript ss1readwidth - -#-------------------------------------------------------- -proc ss1horoffsetscript {val} { - set SR [SplitReply [ss1r]] - set SL [SplitReply [ss1l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss1r=$newD1R,ss1l=$newD1L" -} -publish ss1horoffsetscript user - -#------------------------------------------------------- -proc ss1readhoroffset {} { - set SR [SplitReply [ss1r]] - return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] -} -publish ss1readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1ho -ss1ho drivescript ss1horoffsetscript -ss1ho readscript ss1readhoroffset - -#----------------------------------------------------- -proc ss1heightscript {val} { - set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss1d]] + $diff/2] - set newD1T [expr [SplitReply [ss1u]] + $diff/2] - return "ss1d=$newD1B,ss1u=$newD1T" -} -publish ss1heightscript user - -#------------------------------------------------------- -proc ss1readheight {} { - return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] -} -publish ss1readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss1vg -ss1vg drivescript ss1heightscript -ss1vg readscript ss1readheight - -#-------------------------------------------------------- -proc ss1vertoffsetscript {val} { - set SU [SplitReply [ss1u]] - set SD [SplitReply [ss1d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss1u=$newD1U,ss1d=$newD1D" -} -publish ss1vertoffsetscript user - -#------------------------------------------------------- -proc ss1readvertoffset {} { - set SU [SplitReply [ss1u]] - return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] -} -publish ss1readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss1vo -ss1vo drivescript ss1vertoffsetscript -ss1vo readscript ss1readvertoffset -############################################### - - -#-------------------------------------------------------- -proc ss2widthscript {val} { - set currentWidth [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] - set diff [expr $val - $currentWidth] - set newD1R [expr [SplitReply [ss2r]] + $diff/2] - set newD1L [expr [SplitReply [ss2l]] + $diff/2] - return "ss2r=$newD1R,ss2l=$newD1L" -} -publish ss2widthscript user - -#------------------------------------------------------- -proc ss2readwidth {} { - return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] -} -publish ss2readwidth user -MakeConfigurableMotor ss2hg -ss2hg drivescript ss2widthscript -ss2hg readscript ss2readwidth - -#-------------------------------------------------------- -proc ss2horoffsetscript {val} { - set SR [SplitReply [ss2r]] - set SL [SplitReply [ss2l]] - set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1R [expr $SR + $diff] - set newD1L [expr $SL - $diff] - return "ss2r=$newD1R,ss2l=$newD1L" -} -publish ss2horoffsetscript user - -#------------------------------------------------------- -proc ss2readhoroffset {} { - set SR [SplitReply [ss2r]] - return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] -} -publish ss2readhoroffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss2ho -ss2ho drivescript ss2horoffsetscript -ss2ho readscript ss2readhoroffset - -#----------------------------------------------------- -proc ss2heightscript {val} { - set currentWidth [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] - set diff [expr $val - $currentWidth] - set newD1B [expr [SplitReply [ss2d]] + $diff/2] - set newD1T [expr [SplitReply [ss2u]] + $diff/2] - return "ss2d=$newD1B,ss2u=$newD1T" -} -publish ss2heightscript user - -#------------------------------------------------------- -proc ss2readheight {} { - return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] -} -publish ss2readheight user - -#--------------------------------------------------------- -MakeConfigurableMotor ss2vg -ss2vg drivescript ss2heightscript -ss2vg readscript ss2readheight - -#-------------------------------------------------------- -proc ss2vertoffsetscript {val} { - set SU [SplitReply [ss2u]] - set SD [SplitReply [ss2d]] - set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] - set diff [expr $val - $currentOffset] - set newD1U [expr $SU + $diff] - set newD1D [expr $SD - $diff] - return "ss2u=$newD1U,ss2d=$newD1D" -} -publish ss2vertoffsetscript user - -#------------------------------------------------------- -proc ss2readvertoffset {} { - set SU [SplitReply [ss2u]] - return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] -} -publish ss2readvertoffset user - -#------------------------------------------------------- -MakeConfigurableMotor ss2vo -ss2vo drivescript ss2vertoffsetscript -ss2vo readscript ss2readvertoffset - -# END MOTOR CONFIGURATION MakeCounter simCtr SIM -1.0 #------------------------------------------------------------------------- # System: Histogram Server @@ -592,4 +45,6 @@ hm configure init 1 hm init MakeScanCommand xxxscan simCtr kowari.hdd recover.bin +fileeval motor_configuration.tcl source gen_hipadaba.tcl +fileeval extraconfig.tcl diff --git a/site_ansto/instrument/rsd/motor_configuration.tcl b/site_ansto/instrument/rsd/motor_configuration.tcl new file mode 100644 index 00000000..f5a71db6 --- /dev/null +++ b/site_ansto/instrument/rsd/motor_configuration.tcl @@ -0,0 +1,547 @@ +# Setup addresses of Galil DMC2280 controllers. +set dmc2280_controller1(host) mc1-kowari +set dmc2280_controller1(port) pmc1-kowari + +set dmc2280_controller2(host) mc2-kowari +set dmc2280_controller2(port) pmc2-kowari + +set dmc2280_controller3(host) mc3-kowari +set dmc2280_controller3(port) pmc3-kowari + +set dmc2280_controller4(host) mc4-kowari +set dmc2280_controller4(port) pmc4-kowari + +# Run slit homing routines on controllers 3 and 4 +#if [catch {dmc_connect dmc2280_controller3} ] { +# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1" +# dmc_close dmc2280_controller3 +#} +#if [catch {dmc_connect dmc2280_controller4} ] { +# dmc_sendCmd dmc2280_controller4 "XQ#HOME,1" +# dmc_close dmc2280_controller4 +#} + +# Monochromator omega, rotate +Motor mom DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis E\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -12500\ + absEnc 1\ + absEncHome 17694127\ + cntsPerX -8192] +setHomeandRange -motor mom -home 0 -lowrange 5 -uprange 5 +mom speed 1 +mom precision 0.01 + +# Monochromator two-theta, flight-tube rotate +Motor mtth DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis F\ + units degrees\ + maxSpeed 0.5\ + maxAccel 0.2\ + maxDecel 0.2\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 10299428\ + cntsPerX 93207] +mtth hardlowerlim 85 +mtth hardupperlim 155 +mtth softlowerlim 85 +mtth softupperlim 155 +mtth home 120 +mtth speed 0.5 +mtth precision 0.01 + +proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]} +proc mthSet {val} { return "mtth=[SplitReply [mtth]]"} +publish mthSet user +publish mthGet user +MakeConfigurableMotor mth +mth readscript mthGet +mth drivescript mthSet + +# Monochromator chi, Tilt 2, lower +Motor mchi DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis B\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7818915\ + cntsPerX 8192] +setHomeandRange -motor mchi -home 90 -lowrange 5 -uprange 5 +mchi speed 1 +mchi precision 0.01 + +# Monochromator phi, Tilt 1, upper +Motor mphi DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis A\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -25000\ + absEnc 1\ + absEncHome 7414753\ + cntsPerX -8192] +setHomeandRange -motor mphi -home 0 -lowrange 5 -uprange 5 +mphi speed 1 +mphi precision 0.01 + +# Monochromator Trans 1, upper +Motor mz DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis C\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7781680\ + cntsPerX 8192] +setHomeandRange -motor mz -home 0 -lowrange 5 -uprange 5 +mz speed 1 +mz precision 0.01 + +# Monochromator Trans 2, lower +Motor mx DMC2280 [params \ + host $dmc2280_controller1(host)\ + port $dmc2280_controller1(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5 +mx speed 1 +mx precision 0.01 + +# Sample Omega, rotate +Motor som DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis E\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -12500\ + absEnc 1\ + absEncHome 17694127\ + cntsPerX -8192] +setHomeandRange -motor som -home 0 -lowrange 45 -uprange 45 +som speed 1 +som precision 0.01 + +# Sample two-theta, detector rotate +Motor stth DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis F\ + units degrees\ + maxSpeed 0.2\ + maxAccel 0.2\ + maxDecel 0.2\ + stepsPerX 125000\ + absEnc 1\ + absEncHome 6559259\ + cntsPerX 93207] +setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15 +stth speed 0.5 +stth precision 0.01 + +proc sthGet {} { return [expr [SplitReply [stth]]/2.0]} +proc sthSet {val} { return "stth=[SplitReply [stth]]"} +publish sthSet user +publish sthGet user +MakeConfigurableMotor sth +sth readscript sthGet +sth drivescript sthSet + +# Sample Tilt 2, lower +Motor schi DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis B\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7581355\ + cntsPerX 8192] +setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5 +schi speed 1 +schi precision 0.01 + +# Sample Tilt 1, upper +Motor sphi DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis A\ + units degrees\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7934290\ + cntsPerX 8192] +setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5 +sphi speed 1 +sphi precision 0.01 + +# Sample Trans 1 (upper) +Motor sz DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis C\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor sz -home 0 -lowrange 5 -uprange 5 +sz speed 1 +sz precision 0.01 + +# Sample Trans2 (lower) +Motor sx DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor sx -home 0 -lowrange 5 -uprange 5 +sx speed 1 +sx precision 0.01 + +# Sample Trans3 (vertical) +Motor sy DMC2280 [params \ + host $dmc2280_controller2(host)\ + port $dmc2280_controller2(port)\ + axis D\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX 25000\ + absEnc 1\ + absEncHome 7562793\ + cntsPerX 8192] +setHomeandRange -motor sy -home 0 -lowrange 500 -uprange 500 +sy speed 1 +sy precision 0.01 + +#Default upper and lower ranges for vertical slits +set vertSlitLowRange 25 +set vertSlitUpRange 95 + +#Default upper and lower ranges for horizontal slits +set horSlitLowRange 20 +set horSlitUpRange 25 + +Motor ss1u DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis G\ + 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 H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2040518] +setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss1l DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 542093] +setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss1r DMC2280 [params \ + host $dmc2280_controller3(host)\ + port $dmc2280_controller3(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 542093] +setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss2u DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis G\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2043085] +setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss2d DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis H\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 2043085] +setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange + +Motor ss2l DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis E\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 500000] +setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +Motor ss2r DMC2280 [params \ + host $dmc2280_controller4(host)\ + port $dmc2280_controller4(port)\ + axis F\ + units mm\ + maxSpeed 1\ + maxAccel 1\ + maxDecel 1\ + stepsPerX -20125\ + motorHome 500000] +setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange + +#-------------------------------------------------------- +proc ss1widthscript {val} { + set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss1r]] + $diff/2] + set newD1L [expr [SplitReply [ss1l]] + $diff/2] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1widthscript user + +#------------------------------------------------------- +proc ss1readwidth {} { + return [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]] +} +publish ss1readwidth user +MakeConfigurableMotor ss1hg +ss1hg drivescript ss1widthscript +ss1hg readscript ss1readwidth + +#-------------------------------------------------------- +proc ss1horoffsetscript {val} { + set SR [SplitReply [ss1r]] + set SL [SplitReply [ss1l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss1r=$newD1R,ss1l=$newD1L" +} +publish ss1horoffsetscript user + +#------------------------------------------------------- +proc ss1readhoroffset {} { + set SR [SplitReply [ss1r]] + return [ expr $SR - ($SR + [SplitReply [ss1l]])/2.0 ] +} +publish ss1readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1ho +ss1ho drivescript ss1horoffsetscript +ss1ho readscript ss1readhoroffset + +#----------------------------------------------------- +proc ss1heightscript {val} { + set currentWidth [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss1d]] + $diff/2] + set newD1T [expr [SplitReply [ss1u]] + $diff/2] + return "ss1d=$newD1B,ss1u=$newD1T" +} +publish ss1heightscript user + +#------------------------------------------------------- +proc ss1readheight {} { + return [expr [SplitReply [ss1u]] + [SplitReply [ss1d]]] +} +publish ss1readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss1vg +ss1vg drivescript ss1heightscript +ss1vg readscript ss1readheight + +#-------------------------------------------------------- +proc ss1vertoffsetscript {val} { + set SU [SplitReply [ss1u]] + set SD [SplitReply [ss1d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss1u=$newD1U,ss1d=$newD1D" +} +publish ss1vertoffsetscript user + +#------------------------------------------------------- +proc ss1readvertoffset {} { + set SU [SplitReply [ss1u]] + return [ expr $SU - ($SU + [SplitReply [ss1d]])/2.0 ] +} +publish ss1readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss1vo +ss1vo drivescript ss1vertoffsetscript +ss1vo readscript ss1readvertoffset +############################################### + + +#-------------------------------------------------------- +proc ss2widthscript {val} { + set currentWidth [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] + set diff [expr $val - $currentWidth] + set newD1R [expr [SplitReply [ss2r]] + $diff/2] + set newD1L [expr [SplitReply [ss2l]] + $diff/2] + return "ss2r=$newD1R,ss2l=$newD1L" +} +publish ss2widthscript user + +#------------------------------------------------------- +proc ss2readwidth {} { + return [expr [SplitReply [ss2r]] + [SplitReply [ss2l]]] +} +publish ss2readwidth user +MakeConfigurableMotor ss2hg +ss2hg drivescript ss2widthscript +ss2hg readscript ss2readwidth + +#-------------------------------------------------------- +proc ss2horoffsetscript {val} { + set SR [SplitReply [ss2r]] + set SL [SplitReply [ss2l]] + set currentOffset [ expr $SR - ($SR + $SL)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1R [expr $SR + $diff] + set newD1L [expr $SL - $diff] + return "ss2r=$newD1R,ss2l=$newD1L" +} +publish ss2horoffsetscript user + +#------------------------------------------------------- +proc ss2readhoroffset {} { + set SR [SplitReply [ss2r]] + return [ expr $SR - ($SR + [SplitReply [ss2l]])/2.0 ] +} +publish ss2readhoroffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss2ho +ss2ho drivescript ss2horoffsetscript +ss2ho readscript ss2readhoroffset + +#----------------------------------------------------- +proc ss2heightscript {val} { + set currentWidth [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] + set diff [expr $val - $currentWidth] + set newD1B [expr [SplitReply [ss2d]] + $diff/2] + set newD1T [expr [SplitReply [ss2u]] + $diff/2] + return "ss2d=$newD1B,ss2u=$newD1T" +} +publish ss2heightscript user + +#------------------------------------------------------- +proc ss2readheight {} { + return [expr [SplitReply [ss2u]] + [SplitReply [ss2d]]] +} +publish ss2readheight user + +#--------------------------------------------------------- +MakeConfigurableMotor ss2vg +ss2vg drivescript ss2heightscript +ss2vg readscript ss2readheight + +#-------------------------------------------------------- +proc ss2vertoffsetscript {val} { + set SU [SplitReply [ss2u]] + set SD [SplitReply [ss2d]] + set currentOffset [ expr $SU - ($SU + $SD)/2.0 ] + set diff [expr $val - $currentOffset] + set newD1U [expr $SU + $diff] + set newD1D [expr $SD - $diff] + return "ss2u=$newD1U,ss2d=$newD1D" +} +publish ss2vertoffsetscript user + +#------------------------------------------------------- +proc ss2readvertoffset {} { + set SU [SplitReply [ss2u]] + return [ expr $SU - ($SU + [SplitReply [ss2d]])/2.0 ] +} +publish ss2readvertoffset user + +#------------------------------------------------------- +MakeConfigurableMotor ss2vo +ss2vo drivescript ss2vertoffsetscript +ss2vo readscript ss2readvertoffset + +# END MOTOR CONFIGURATION