Re-factor motor configurations
r1284 | dcl | 2006-11-14 09:40:29 +1100 (Tue, 14 Nov 2006) | 2 lines
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
wombat_configuration.tcl
|
||||
motor_configuration.tcl
|
||||
hipadaba_configuration.tcl
|
||||
extraconfig.tcl
|
||||
wombat.hdd
|
||||
motor_test.tcl
|
||||
troubleshoot_setup.tcl
|
||||
|
||||
0
site_ansto/instrument/hipd/extraconfig.tcl
Normal file
0
site_ansto/instrument/hipd/extraconfig.tcl
Normal file
548
site_ansto/instrument/hipd/motor_configuration.tcl
Normal file
548
site_ansto/instrument/hipd/motor_configuration.tcl
Normal file
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
echidna_configuration.tcl
|
||||
motor_configuration.tcl
|
||||
echidna.hdd
|
||||
troubleshoot_setup.tcl
|
||||
hipadaba_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
|
||||
|
||||
605
site_ansto/instrument/hrpd/motor_configuration.tcl
Normal file
605
site_ansto/instrument/hrpd/motor_configuration.tcl
Normal file
@@ -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
|
||||
@@ -1,5 +1,7 @@
|
||||
koala_configuration.tcl
|
||||
motor_configuration.tcl
|
||||
hipadaba_configuration.tcl
|
||||
koala.hdd
|
||||
troubleshoot_setup.tcl
|
||||
extraconfig.tcl
|
||||
InstXML.tcl
|
||||
|
||||
0
site_ansto/instrument/qld/extraconfig.tcl
Normal file
0
site_ansto/instrument/qld/extraconfig.tcl
Normal file
@@ -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
|
||||
|
||||
160
site_ansto/instrument/qld/motor_configuration.tcl
Normal file
160
site_ansto/instrument/qld/motor_configuration.tcl
Normal file
@@ -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
|
||||
@@ -1,5 +1,7 @@
|
||||
kowari_configuration.tcl
|
||||
motor_configuration.tcl
|
||||
hipadaba_configuration.tcl
|
||||
kowari.hdd
|
||||
troubleshoot_setup.tcl
|
||||
extraconfig.tcl
|
||||
InstXML.tcl
|
||||
|
||||
0
site_ansto/instrument/rsd/extraconfig.tcl
Normal file
0
site_ansto/instrument/rsd/extraconfig.tcl
Normal file
@@ -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
|
||||
|
||||
547
site_ansto/instrument/rsd/motor_configuration.tcl
Normal file
547
site_ansto/instrument/rsd/motor_configuration.tcl
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user