Modified during MK's visit.

r1461 | ffr | 2007-02-12 12:01:02 +1100 (Mon, 12 Feb 2007) | 2 lines
This commit is contained in:
Ferdi Franceschini
2007-02-12 12:01:02 +11:00
committed by Douglas Clowes
parent 7cb2b92263
commit 9ac6c7b414
10 changed files with 178 additions and 107 deletions

View File

@ -5,6 +5,4 @@ dmc2280_util.tcl
motorinfo.tcl
getDMCprog.tcl
putDMCprog.tcl
hipadaba/gen_hipadaba.tcl
hipadaba/hipadaba_support.tcl
hipadaba/ParList.tcl
../../tcl/gumxml.tcl

View File

@ -1,8 +1,8 @@
#!/bin/sh
# $Revision: 1.17 $
# $Date: 2006-12-11 00:06:18 $
#!/bin/sh
# $Revision: 1.18 $
# $Date: 2007-02-12 01:01:02 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: dcl $
# Last revision by $Author: ffr $
# Deploys SICServer and configuration files to
# an instrument control computer.
@ -62,6 +62,8 @@ fi
SRCDIR="."
TEMPDIR=$HOME/tmp
# Set the destination host
# instrument name and the
# instrument src directory
@ -101,6 +103,8 @@ DESTHOST=${2:-ics1-taipan.nbi.ansto.gov.au}
INSTSRC=tas;;
esac
make -C ../ $INSTRUMENT || exit $?
if [ "$TESTING" = "test" ]
then
DESTHOST=${2:-ics1-test.nbi.ansto.gov.au}
@ -145,18 +149,17 @@ echo "You must list the files required for $INSTRUMENT in the manifest"
exit 1
fi
# Generate instrument description xml
chmod +x ./hipadaba/gen_hipadaba_config.tcl
chmod +x ./hipadaba/gen_hpdbxml.tcl
./hipadaba/gen_hipadaba_config.tcl $INSTSRC
./hipadaba/gen_hpdbxml.tcl $INSTRUMENT
# Get list of files to copy
COMMON=$(for f in $(cat $SRCDIR/MANIFEST.TXT); do echo -n "$SRCDIR/$f "; done)
INSTSPEC=$(for f in $(cat $INSTSRC/MANIFEST.TXT); do echo -n "$INSTSRC/$f "; done)
mkdir -p $TEMPDIR/$DESTDIR/{server,data,log,tmp}
cp --preserve=timestamps $COMMON $INSTSPEC $TEMPDIR/$DESTDIR/server
cp --preserve=timestamps ../SICServer $TEMPDIR/$DESTDIR/server
mkdir -p $TEMPDIR/$DESTDIR/{batch,server,data,log,tmp}
cp -a --preserve=timestamps $COMMON $INSTSPEC $TEMPDIR/$DESTDIR/server
cp -a --preserve=timestamps ../SICServer $TEMPDIR/$DESTDIR/server
mkdir -p $TEMPDIR/$DESTDIR/script_validator/{batch,server,data,log,tmp}
cp -a --preserve=timestamps $COMMON $INSTSPEC $TEMPDIR/$DESTDIR/script_validator/server
cp --preserve=timestamps $INSTSRC/script_validator/* $TEMPDIR/$DESTDIR/script_validator/server
# Create a manifest of the files installed on the IC host
echo "Date: $(date -Iminutes)" > $TEMPDIR/$DESTDIR/server/MANIFEST.TXT

View File

@ -1,3 +1,4 @@
sics_ports.tcl
echidna_configuration.tcl
motor_configuration.tcl
counter.tcl
@ -9,7 +10,6 @@ echidna.dic
troubleshoot_setup.tcl
hipadaba_configuration.tcl
hpaths.tcl
InstXML.xml
extraconfig.tcl
sim_configuration.tcl
hmm/*.xml
hmm

View File

@ -1,14 +1,11 @@
# $Revision: 1.11 $
# $Date: 2007-01-12 00:46:57 $
# $Revision: 1.12 $
# $Date: 2007-02-12 00:56:59 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
#START SERVER CONFIGURATION SECTION
source dmc2280_util.tcl
set quieckport quieck-echidna
set serverport server-echidna
set interruptport interrupt-echidna
set telnetport telnet-echidna
source sics_ports.tcl
source server_config.tcl
#END SERVER CONFIGURATION SECTION
@ -38,7 +35,9 @@ proc nxcreatefile {{type nx.hdf}} {
publish nxcreatefile user
########
source gen_hipadaba.tcl
source hipadaba_configuration.tcl
source gumxml.tcl
#source counter.tcl
fileeval hmm_configuration.tcl
fileeval scan.tcl

View File

@ -1,5 +1,5 @@
# $Revision: 1.3 $
# $Date: 2007-01-12 00:46:57 $
# $Revision: 1.4 $
# $Date: 2007-02-12 00:56:59 $
# Author: Mark Lesha (mle@ansto.gov.au)
# Last revision by: $Author: ffr $
@ -46,7 +46,7 @@ Publish returnconfigfile User
# kept on the local file system (not automated presently, manual control only)
# - Or, no configuration at all could be uploaded, the
# histogram server can configure itself using its default config files.
hmm configure hmconfigscript "returnconfigfile anstohm_full.xml"
hmm configure hmconfigscript "returnconfigfile hmm/anstohm_full.xml"
# Initialize the histogram server.
# This call to hmm init (with init 1 configured) causes the histogram server

View File

@ -1,43 +1,48 @@
set hpaths [list \
/sample /monochromator /slits \
/slits/1 /slits/2 /detector /detector/monitor /detector/histmem ]
experiment sample monochromator slits \
slits/1 slits/2 detector detector/monitor detector/histmem ]
# Maps devices (eg motors) to hipadaba paths.
array set motor_hpath [list \
ss1u /slits/1 \
ss1d /slits/1 \
ss1l /slits/1 \
ss1r /slits/1 \
ss1vg /slits/1 \
ss1vo /slits/1 \
ss1hg /slits/1 \
ss1ho /slits/1 \
ss2u /slits/2 \
ss2d /slits/2 \
ss2l /slits/2 \
ss2r /slits/2 \
ss2vg /slits/2 \
ss2vo /slits/2 \
ss2hg /slits/2 \
ss2ho /slits/2 \
som /sample \
schi /sample \
sphi /sample \
sx /sample \
sy /sample \
stth /sample \
sth /sample \
pcx /monochromator \
pcr /monochromator \
mom /monochromator \
mchi /monochromator \
mphi /monochromator \
mx /monochromator \
my /monochromator \
mtth /monochromator \
mth /monochromator ]
# obj name path
set motor_hpath [list \
ss1u top /slits/1 \
ss1d bottom /slits/1 \
ss1l left /slits/1 \
ss1r right /slits/1 \
ss2u ss2u /slits/2 \
ss2d ss2d /slits/2 \
ss2l ss2l /slits/2 \
ss2r ss2r /slits/2 \
som rotate /sample \
schi chi /sample \
sphi phi /sample \
sx translate_x /sample \
sy translate_y /sample \
stth detector_rotate /sample \
pcx pcx /monochromator \
pcr pcr /monochromator \
mom mom /monochromator \
mchi mchi /monochromator \
mphi mphi /monochromator \
mx mx /monochromator \
my my /monochromator \
mtth mtth /monochromator ]
# Configurable virtual motors
# obj name path master_obj
set cvirtmotor_hpath [list \
ss1vg ss1vg /slits/1 top\
ss1vo ss1vo /slits/1 top\
ss1hg ss1hg /slits/1 right\
ss1ho ss1ho /slits/1 right\
ss2vg ss2vg /slits/2 ss2u\
ss2vo ss2vo /slits/2 ss2u\
ss2hg ss2hg /slits/2 ss2r\
ss2ho ss2ho /slits/2 ss2r\
sth sth /sample detector_rotate\
mth mth /monochromator mtth]
array set counter_hpath [ list \
hm /detector/histmem \
counter /detector/monitor ]
hm hm /detector/histmem \
counter counter /detector/monitor ]

View File

@ -1,7 +1,7 @@
# $Revision: 1.14 $
# $Date: 2007-02-07 00:46:42 $
# $Revision: 1.15 $
# $Date: 2007-02-12 00:56:59 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: dcl $
# Last revision by: $Author: ffr $
# START MOTOR CONFIGURATION
@ -62,6 +62,10 @@ set vertSlitUpRange 100
set horSlitLowRange 25
set horSlitUpRange 25
# set movecount high to reduce the frequency of
# hnotify messages to a reasonable level
set move_count 100
# Run slit homing routines on controllers 3 and 4
#if [catch {dmc_connect dmc2280_controller3} ] {
# dmc_sendCmd dmc2280_controller3 "XQ#HOME,1"
@ -86,6 +90,8 @@ Motor mphi DMC2280 [params \
port $dmc2280_controller1(port)\
axis A\
units degrees\
hardlowerlim -15\
hardupperlim 15\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -95,8 +101,8 @@ Motor mphi DMC2280 [params \
cntsPerX -8192]
setHomeandRange -motor mphi -home 0 -lowrange 15 -uprange 15
mphi speed 1
mphi movecount 100
mphi precision 0.01
mphi movecount $move_count
mphi precision 0.05
# Monochromator chi, Tilt 2, lower
Motor mchi DMC2280 [params \
@ -104,6 +110,8 @@ Motor mchi DMC2280 [params \
port $dmc2280_controller1(port)\
axis B\
units degrees\
hardlowerlim 75\
hardupperlim 105\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -113,7 +121,7 @@ Motor mchi DMC2280 [params \
cntsPerX 8192]
setHomeandRange -motor mchi -home 90 -lowrange 15 -uprange 15
mchi speed 1
mchi movecount 100
mchi movecount $move_count
mchi precision 0.01
# Monochromator Trans 1, upper
@ -122,6 +130,8 @@ Motor my DMC2280 [params \
port $dmc2280_controller1(port)\
axis C\
units mm\
hardlowerlim -20\
hardupperlim 20\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -131,7 +141,7 @@ Motor my DMC2280 [params \
cntsPerX 8192]
setHomeandRange -motor my -home 0 -lowrange 20 -uprange 20
my speed 1
my movecount 100
my movecount $move_count
my precision 0.01
# Monochromator Trans 2, lower
@ -140,6 +150,8 @@ Motor mx DMC2280 [params \
port $dmc2280_controller1(port)\
axis D\
units mm\
hardlowerlim -20\
hardupperlim 20\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -149,7 +161,7 @@ Motor mx DMC2280 [params \
cntsPerX -8192]
setHomeandRange -motor mx -home 0 -lowrange 20 -uprange 20
mx speed 1
mx movecount 100
mx movecount $move_count
mx precision 0.01
# Monochromator omega, rotate
@ -158,6 +170,8 @@ Motor mom DMC2280 [params \
port $dmc2280_controller1(port)\
axis E\
units degrees\
hardlowerlim -180\
hardupperlim 180\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -167,7 +181,7 @@ Motor mom DMC2280 [params \
cntsPerX -4096]
setHomeandRange -motor mom -home 0 -lowrange 180 -uprange 180
mom speed 1
mom movecount 100
mom movecount $move_count
mom precision 0.01
# Monochromator two-theta, flight-tube rotate
@ -176,6 +190,8 @@ Motor mtth DMC2280 [params \
port $dmc2280_controller1(port)\
axis F\
units degrees\
hardlowerlim 90\
hardupperlim 137\
maxSpeed 0.2\
maxAccel 0.2\
maxDecel 0.2\
@ -183,25 +199,25 @@ Motor mtth DMC2280 [params \
absEnc 1\
absEncHome $mtth_Home\
cntsPerX -93207]
mtth hardlowerlim 90
mtth hardupperlim 137
mtth softlowerlim 90
mtth softupperlim 137
mtth home 90
mtth speed 0.2
mtth movecount 100
mtth movecount $move_count
mtth accel 0.01
mtth decel 0.01
mtth precision 0.02
mtth maxretry 10
mtth failafter 10
mtth blockage_check_interval 5
# Primary Collimator Translation X
Motor pcx DMC2280 [params \
host $dmc2280_controller1(host)\
port $dmc2280_controller1(port)\
axis G\
units mm\
hardlowerlim 0\
hardupperlim 140\
maxSpeed 10\
maxAccel 1\
maxDecel 1\
@ -211,7 +227,7 @@ Motor pcx DMC2280 [params \
cntsPerX [expr 8192/6]]
setHomeandRange -motor pcx -home 0 -lowrange 0 -uprange 140
pcx speed 1
pcx movecount 100
pcx movecount $move_count
pcx precision 0.01
# Primary Collimator Rotation
@ -220,6 +236,8 @@ Motor pcr DMC2280 [params \
port $dmc2280_controller1(port)\
axis H\
units degrees\
hardlowerlim -10\
hardupperlim 10\
maxSpeed 0.1\
maxAccel 0.1\
maxDecel 0.1\
@ -229,7 +247,7 @@ Motor pcr DMC2280 [params \
cntsPerX [expr 8192/(360/100)]]
setHomeandRange -motor pcr -home 0 -lowrange 10 -uprange 10
pcr speed 0.1
pcr movecount 100
pcr movecount $move_count
pcr precision 0.01
############################
@ -244,6 +262,8 @@ Motor sphi DMC2280 [params \
port $dmc2280_controller2(port)\
axis A\
units degrees\
hardlowerlim -20\
hardupperlim 20\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -253,7 +273,7 @@ Motor sphi DMC2280 [params \
cntsPerX -8192]
setHomeandRange -motor sphi -home 0 -lowrange 20 -uprange 20
sphi speed 1
sphi movecount 100
sphi movecount $move_count
sphi precision 0.01
# Sample Tilt 2, lower, chi
@ -262,6 +282,8 @@ Motor schi DMC2280 [params \
port $dmc2280_controller2(port)\
axis B\
units degrees\
hardlowerlim 70\
hardupperlim 110\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -271,7 +293,7 @@ Motor schi DMC2280 [params \
cntsPerX 8192]
setHomeandRange -motor schi -home 90 -lowrange 20 -uprange 20
schi speed 1
schi movecount 100
schi movecount $move_count
schi precision 0.01
# Sample Trans 1, upper, y
@ -280,6 +302,8 @@ Motor sy DMC2280 [params \
port $dmc2280_controller2(port)\
axis C\
units mm\
hardlowerlim -20\
hardupperlim 20\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -289,7 +313,7 @@ Motor sy DMC2280 [params \
cntsPerX 8192]
setHomeandRange -motor sy -home 0 -lowrange 20 -uprange 20
sy speed 1
sy movecount 100
sy movecount $move_count
sy precision 0.01
# Sample Trans2, lower, x
@ -298,6 +322,8 @@ Motor sx DMC2280 [params \
port $dmc2280_controller2(port)\
axis D\
units mm\
hardlowerlim -20\
hardupperlim 20\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -307,7 +333,7 @@ Motor sx DMC2280 [params \
cntsPerX -8192]
setHomeandRange -motor sx -home 0 -lowrange 20 -uprange 20
sx speed 1
sx movecount 100
sx movecount $move_count
sx precision 0.01
# Sample Omega, rotate
@ -316,6 +342,8 @@ Motor som DMC2280 [params \
port $dmc2280_controller2(port)\
axis E\
units degrees\
hardlowerlim -142\
hardupperlim 218\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@ -325,7 +353,7 @@ Motor som DMC2280 [params \
cntsPerX 4096]
setHomeandRange -motor som -home 0 -lowrange 142 -uprange 218
som speed 1
som movecount 100
som movecount $move_count
som precision 0.01
# Sample two-theta, detector rotate
@ -334,6 +362,8 @@ Motor stth DMC2280 [params \
port $dmc2280_controller2(port)\
axis F\
units degrees\
hardlowerlim -79\
hardupperlim 77\
maxSpeed 0.5\
maxAccel 0.1\
maxDecel 0.1\
@ -341,14 +371,13 @@ Motor stth DMC2280 [params \
absEnc 1\
absEncHome $stth_Home\
cntsPerX -93207]
stth hardlowerlim -79
stth hardupperlim 77
stth softlowerlim -77
stth softupperlim 74
stth home 0
stth speed 0.5
stth movecount 100
stth movecount $move_count
stth precision 0.01
stth blockage_check_interval 2
############################
# Motor Controller 3
@ -372,7 +401,7 @@ stth precision 0.01
# cntsPerX xxxx]
#setHomeandRange -motor mf1 -home 0 -lowrange 0 -uprange 360
#mf1 speed 1
#mfl movecount 100
#mfl movecount $move_count
#mf1 precision 0.01
# Slit 1, right
@ -381,13 +410,15 @@ Motor ss1r DMC2280 [params \
port $dmc2280_controller3(port)\
axis E\
units mm\
hardlowerlim -15\
hardupperlim 35\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss1r_Home]
setHomeandRange -motor ss1r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange
ss1r movecount 100
ss1r movecount $move_count
# Slit 1, left
Motor ss1l DMC2280 [params \
@ -395,13 +426,15 @@ Motor ss1l DMC2280 [params \
port $dmc2280_controller3(port)\
axis F\
units mm\
hardlowerlim -15\
hardupperlim 35\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss1l_Home]
setHomeandRange -motor ss1l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange
ss1l movecount 100
ss1l movecount $move_count
# Slit 1, up
Motor ss1u DMC2280 [params \
@ -409,13 +442,15 @@ Motor ss1u DMC2280 [params \
port $dmc2280_controller3(port)\
axis G\
units mm\
hardlowerlim -20\
hardupperlim 100\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss1u_Home]
setHomeandRange -motor ss1u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange
ss1u movecount 100
ss1u movecount $move_count
# Slit 1, down
Motor ss1d DMC2280 [params \
@ -423,13 +458,15 @@ Motor ss1d DMC2280 [params \
port $dmc2280_controller3(port)\
axis H\
units mm\
hardlowerlim -20\
hardupperlim 100\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss1d_Home]
setHomeandRange -motor ss1d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange
ss1d movecount 100
ss1d movecount $move_count
############################
# Motor Controller 4
@ -474,13 +511,15 @@ Motor ss2r DMC2280 [params \
port $dmc2280_controller4(port)\
axis E\
units mm\
hardlowerlim -15\
hardupperlim 35\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss2r_Home]
setHomeandRange -motor ss2r -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange
ss2r movecount 100
ss2r movecount $move_count
# Slit 2, left
Motor ss2l DMC2280 [params \
@ -488,13 +527,15 @@ Motor ss2l DMC2280 [params \
port $dmc2280_controller4(port)\
axis F\
units mm\
hardlowerlim -15\
hardupperlim 35\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss2l_Home]
setHomeandRange -motor ss2l -home 0 -lowrange $horSlitLowRange -uprange $horSlitUpRange
ss2l movecount 100
ss2l movecount $move_count
# Slit 2, up
Motor ss2u DMC2280 [params \
@ -502,13 +543,15 @@ Motor ss2u DMC2280 [params \
port $dmc2280_controller4(port)\
axis G\
units mm\
hardlowerlim -20\
hardupperlim 100\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss2u_Home]
setHomeandRange -motor ss2u -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange
ss2u movecount 100
ss2u movecount $move_count
# Slit 2, down
Motor ss2d DMC2280 [params \
@ -516,13 +559,15 @@ Motor ss2d DMC2280 [params \
port $dmc2280_controller4(port)\
axis H\
units mm\
hardlowerlim -20\
hardupperlim 100\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
stepsPerX -$slitStepRate\
motorHome $ss2d_Home]
setHomeandRange -motor ss2d -home 0 -lowrange $vertSlitLowRange -uprange $vertSlitUpRange
ss2d movecount 100
ss2d movecount $move_count
proc mthGet {} { return [expr [SplitReply [mtth]]/2.0]}
proc mthSet {val} { return "mtth=[SplitReply [mtth]]"}

View File

@ -90,14 +90,34 @@ publish ::scanCommand::bm_nxaddpoint user
publish ::scanCommand::donothing user
publish ::scanCommand::bmcount user
#scan2 function writeheader ::scanCommand::donothing
#scan2 function writepoint ::scanCommand::nxaddpoint
#scan2 function prepare ::scanCommand::scan_prepare
hmscan configure script
#hmscan function prepare hdbprepare
#hmscan function collect hdbcollect
hmscan function writeheader ::scanCommand::donothing
hmscan function writepoint ::scanCommand::nxaddpoint
hmscan function prepare ::scanCommand::scan_prepare
hmscan function finish ::scanCommand::hm_scan_finish
scan2 function writeheader ::scanCommand::donothing
scan2 function writepoint ::scanCommand::nxaddpoint
scan2 function prepare ::scanCommand::scan_prepare
# Wombat proc hdb_hmscan {scanvar scanstart scanincr scanend mode preset} {
proc hdb_hmscan {scanvar scanstart scanincr np mode preset} {
hmscan clear
hmscan configure script
hmscan add $scanvar scanstart scanincr
set status [catch {hmscan run $np $mode $preset} msg]
hmscan configure soft
if {$status == 0} {
return $msg
} else {
error $msg
}
}
publish hdb_hmscan user
MakeScanCommand bmonscan bm echidna.hdd recover.bin
bmonscan configure script
@ -106,3 +126,5 @@ bmonscan function writepoint ::scanCommand::bm_nxaddpoint
bmonscan function prepare ::scanCommand::bm_scan_prepare
bmonscan function count ::scanCommand::bmcount
bmonscan function finish ::scanCommand::bm_scan_finish

View File

@ -1,7 +1,7 @@
# SICS common configuration
# $Revision: 1.10 $
# $Date: 2006-11-29 21:26:29 $
# $Revision: 1.11 $
# $Date: 2007-02-12 01:01:02 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $
@ -40,10 +40,11 @@ VarMake SicsDataPostFix Text User
VarMake Title Text User
VarMake Sample Text User
VarMake User Text User
VarMake Email Text User
VarMake Phone Text User
VarMake starttime Text User
VarMake currentfile Text User
VarMake batchroot Text User
MakeDrive
# Useful for making configurable batch files.
publish set user
exe syspath ../batch

View File

@ -1,7 +1,7 @@
# Some useful functions for SICS configuration.
# $Revision: 1.5 $
# $Date: 2006-11-07 01:57:45 $
# $Revision: 1.6 $
# $Date: 2007-02-12 01:01:02 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $
@ -22,8 +22,6 @@ if {$args == ""} {clientput $usage; return}
set lowlim [expr $home - $params(-lowrange)]
set uplim [expr $home + $params(-uprange)]
uplevel 1 "$motor hardlowerlim $lowlim"
uplevel 1 "$motor hardupperlim $uplim"
uplevel 1 "$motor softlowerlim $lowlim"
uplevel 1 "$motor softupperlim $uplim"
uplevel 1 "$motor home $home"