Files
sics/site_ansto/instrument/hrpd/hrpd_configuration.tcl

638 lines
15 KiB
Tcl

# $Revision: 1.9 $
# $Date: 2006-07-13 04:54:57 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
#START SERVER CONFIGURATION SECTION
installprotocolhandler
source utility.tcl
ServerOption statusfile /home/sics/SICS/log/status.tcl
ServerOption RedirectFile /home/sics/SICS/log/stdout
ServerOption LogFileBaseName /home/sics/SICS/log/serverlog
ServerOption LogFileDir /home/sics/SICS/log
ServerOption QuieckPort 60004
ServerOption ServerPort 60003
ServerOption InterruptPort 60002
ServerOption TelWord sicslogin
ServerOption TelnetPort 60001
ServerOption ReadUserPasswdTimeout 600000
ServerOption AcceptTimeOut 10
ServerOption ReadTimeOut 10
SicsUser manager ansto 1
SicsUser user sydney 2
SicsUser spy 007 3
MakeDataNumber SicsDataNumber /home/sics/SICS/data/DataNumber
VarMake SicsDataPath Text Internal
SicsDataPath /home/sics/SICS/data/
SicsDataPath lock
VarMake SicsDataPrefix Text Internal
SicsDataPrefix smp
SicsDataPrefix lock
VarMake SicsDataPostFix Text Internal
SicsDataPostFix .hdf
SicsDataPostFix lock
VarMake Title Text User
VarMake Sample Text User
VarMake User Text User
VarMake starttime Text User
VarMake currentfile Text User
VarMake batchroot Text User
VarMake Instrument Text Internal
Instrument HRPD
Instrument lock
MakeDrive
#END SERVER CONFIGURATION SECTION
########################################
# INSTRUMENT SPECIFIC 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]
#echi hardlowerlim 0
#echi hardupperlim 360
#echi softlowerlim 0
#echi softupperlim 360
#echi home 0
#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]
#ephi hardlowerlim 0
#ephi hardupperlim 360
#ephi softlowerlim 0
#ephi softupperlim 360
#ephi home 0
# Setup addresses of Galil DMC2280 controllers.
set dmc2280_controller1(host) 137.157.201.66
set dmc2280_controller1(port) 1034
set dmc2280_controller2(host) 137.157.201.67
set dmc2280_controller2(port) 1034
set dmc2280_controller3(host) 137.157.201.68
set dmc2280_controller3(port) 1034
set dmc2280_controller4(host) 137.157.201.69
set dmc2280_controller4(port) 1034
#Motor mom DMC2280 [params \
# host $dmc2280_controller1(host)\
# port $dmc2280_controller1(port)\
# axis E\
# units xxxx\
# maxSpeed xxxx\
# maxAccel xxxx\
# maxDecel xxxx\
# stepsPerX xxxx\
# absEnc 1\
# absEncHome xxxx\
# cntsPerX xxxx]
#mom hardlowerlim -180
#mom hardupperlim 180
#mom softlowerlim -180
#mom softupperlim 180
#mom home 0
Motor mtth DMC2280 [params \
host $dmc2280_controller1(host)\
port $dmc2280_controller1(port)\
axis F\
units xxxx\
maxSpeed xxxx\
maxAccel xxxx\
maxDecel xxxx\
stepsPerX xxxx\
absEnc 1\
absEncHome xxxx\
cntsPerX xxxx]
mtth hardlowerlim 85
mtth hardupperlim 155
mtth softlowerlim 85
mtth softupperlim 155
mtth home 120
proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]}
publish mthGet user
proc mthSet {val} { return [expr [SplitReply [mtth]] * 2.0]}
publish mthSet user
MakeConfigurableMotor mth
mth readscript mthGet
mth drivescript mthSet
# Monochromoter 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
# Monochromoter 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
# Monochromoter 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
# Monochromoter 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 xxxx\
cntsPerX xxxx]
setHomeandRange -motor mx -home 0 -lowrange 5 -uprange 5
mx speed 1
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 xxxx -uprange xxxx
mr speed 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 xxxx -uprange xxxx
pc1 speed 1
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 xxxx -uprange xxxx
pc2 speed 1
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
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\
motorHome 11250000\
absEnc 1\
absEncHome 6559259\
cntsPerX 93207]
setHomeandRange -motor stth -home 120 -lowrange 15 -uprange 15
stth speed 0.2
proc sthGet {} { return [expr [SplitReply [stth]]/2.0]}
publish sthGet user
proc sthSet {val} { return [expr [SplitReply [stth]] * 2.0]}
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\
motorHome 500000\
absEnc 1\
absEncHome 7581355\
cntsPerX 8192]
setHomeandRange -motor schi -home 90 -lowrange 5 -uprange 5
schi speed 1
# 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\
motorHome 500000\
absEnc 1\
absEncHome 7934290\
cntsPerX 8192]
setHomeandRange -motor sphi -home 0 -lowrange 5 -uprange 5
sphi speed 1
# 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
# 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
#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
# Pre comm
MakeBatchManager