Files
sics/site_ansto/instrument/lyrebird/config/tasmad/taspub_sics/tasp.tcl
Jing Chen 8b1d0103f4 update for Lyrebird deployment
r3105 | jgn | 2011-04-20 08:48:12 +1000 (Wed, 20 Apr 2011) | 1 line
2012-11-15 17:10:41 +11:00

287 lines
9.7 KiB
Tcl

# --------------------------------------------------------------------------
# Initialization script for Triple Axis Instruments using the
# Mark Lumsden UB matrix calculus
#
# Dr. Mark Koennecke, May 2005
#---------------------------------------------------------------------------
# O P T I O N S
#--------------------------------------------------------------------------
# simMode
# - 0 real instrument
# - 1 development simulation
# - 2 simserver at instrument
#--------------------------------------------------------------------------
set simMode 1
set ts psts230.psi.ch
set mupad 0
#---------- Enable this for more startup debugging
protocol set all
#--------------- define home
if {$simMode == 1} {
set home $env(HOME)/src/workspace/sics/sim/taspub_sics
set scripthome $home
set loghome $env(HOME)/src/workspace/sics/sim/tmp
set datahome $loghome
ServerOption LoggerDir $env(HOME)/src/workspace/sics/test/samenv
} else {
set home /home/taspub
set scripthome $home/taspub_sics
set loghome $home/log
set datahome $home/data/2010
ServerOption LoggerDir $home/sea/logger
}
#ServerOption RedirectFile $loghome/stdtas
ServerOption ReadTimeOut 10
ServerOption AcceptTimeOut 10
ServerOption ReadUserPasswdTimeout 500000
ServerOption LogFileBaseName $loghome/tasplog
ServerOption ServerPort 2911
ServerOption InterruptPort 2917
ServerOption LogFileDir $loghome
ServerOption QuieckPort 2108
ServerOption statusfile $datahome/taspubstat.tcl
# Telnet Options
ServerOption TelnetPort 1301
ServerOption TelWord sicslogin
#---------------------------------------------------------------------------
# U S E R S
# Here the SICS users are specified
# Syntax: SicsUser name password userRightsCode
#SicsUser Spy 007 3
#---------------------------------------------------------------------------
SicsUser Spy 007 1
SicsUser Manager Manager 1
SicsUser lnsmanager lnsSICSlns 1
SicsUser user 10lns1 2
SicsUser taspuser 10lns1 2
#---------------------------------------------------------------------------
# M O T O R S
if {$simMode == 0} {
MakeRS232Controller mota $ts 3002
mota replyterminator 0xd
mota timeout 1000
mota send "RMT 1"
mota send "ECHO 0"
mota send "RMT 1"
mota send "ECHO 0"
#mota debug 1
Motor A1 el734hp mota 1 # Monochromator Theta
a1 interruptmode 1
Motor A2 el734hp mota 9 # Monochromator Two-Theta
a2 interruptmode 1
Motor A3 el734hp mota 10 # Sample theta or omega
a3 interruptmode 1
Motor A4 el734hp mota 11 # Sample Two-Theta
a4 interruptmode 1
Motor MCV el734hp mota 3 # Monochromator curvature vertical
Motor SRO el734hp mota 12 # Sample table second ring
Motor MTL el734hp mota 4 # Monochromator translation lower
Motor MTU el734hp mota 5 # Monochromator Translation upper
Motor MGL el734hp mota 7 # Monochromator lower goniometer
MakeRS232Controller motb $ts 3003
motb replyterminator 0xd
motb timeout 1000
motb send "RMT 1"
motb send "ECHO 0"
motb send "RMT 1"
motb send "ECHO 0"
Motor A5 el734hp motb 5 # Analyzer Theta
a5 interruptmode 1
Motor A6 el734hp motb 9 # Analyzer Two-Theta
a6 interruptmode 1
Motor ACH el734hp motb 6 # Analyzer curvature horizontal
Motor STL el734hp motb 1 # Sample lower translation
Motor STU el734hp motb 2 # Sample upper translation
Motor ATL el734hp motb 7 # Analyzer lower translation
Motor ATU el734hp motb 8 # Analyzer upper translation
#Motor SGL SIM -17 17 -1 .0 # Monochromator upper goniometer
#Motor SGU SIM -17 17 -1 .0 # Monochromator upper goniometer
Motor SGL el734hp motb 3 # Sample lower goniometer
Motor SGU el734hp motb 4 # Sample upper goniometer
Motor AGL el734hp motb 11 # Analyzer lower goniometer
#Motor AGU SIM -30. 30. -.1 2. # Analyzer upper goniometer
#Motor MSC SIM -30. 30. -.1 2. # Monochromator changer
#Motor ASC SIM -30. 30. -.1 2. # Analyzer changer
#Motor CSC SIM -30. 30. -.1 2. # Collimator changer
mcv precision .1
} else {
Motor A1 sim -86.7 6.1 -.1 .1 # Monochromator Theta
Motor A2 sim -128.5 -21.65 -.1 .1 # Monochromator Two-Theta
Motor A3 sim -179 170 -.1 .1 # Sample theta or omega
Motor A4 sim -135 137.9 -.1 .1 # Sample Two-Theta
Motor A5 sim -103 103 -.1 .1 # Analyzer Theta
Motor A6 sim -138 118 -.1 .1 # Analyzer Two-Theta
Motor MCV sim -9 124 -.1 .1 # Monochromator curvature vertical
Motor SRO sim -180 351 -.1 .1 # Sample table second ring
Motor ACH sim -.5 11 -.1 .1 # Analyzer curvature horizontal
Motor MTL sim -17 17 -.1 .1 # Monochromator translation lower
Motor MTU sim -17 17 -.1 .1 # Monochromator Translation upper
Motor SGL sim -19 19 -1. 0 # Sample lower translation
Motor SGU SIM -30. 30. -.1 2. # Sample upper translation
Motor ATL sim -17 17 -.1 .1 # Analyzer lower translation
Motor ATU sim -17 17 -.1 .1 # Analyzer upper translation
Motor MGL sim -10 10 -.1 .1 # Monochromator lower goniometer
Motor SGL sim -16 16 -.1 .1 # Sample lower goniometer
Motor SGU sim -16 16 -.1 .1 # Sample upper goniometer
Motor AGL sim -10 10 -.1 .1 # Analyzer lower goniometer
#--------------------------------------------------------------------------
# C U R R E N T S
Motor I1 sim -2 2 -0.1 0.1
Motor I2 sim -2 2 -0.1 0.1
Motor I3 sim -2 2 -0.1 0.1
Motor I4 sim -2 2 -0.1 0.1
Motor I5 sim -2 2 -0.1 0.1
Motor I6 sim -2 2 -0.1 0.1
Motor I7 sim -2 2 -0.1 0.1
Motor I8 sim -2 2 -0.1 0.1
}
#--------- script for saving motor parameters
Publish savemotorpar Mugger
proc savemotorpar {dir} {
set mot(controllerlist) [list mota motb]
set mot(mota) [list 1 9 10 11 3 12 4 5 7]
set mot(motb) [list 5 9 6 1 2 7 8 3 4 11]
savemotorarray mot $dir
clientput "Done saving motor parameters"
}
#--------------------------------------------------------------------------
# C O U N T E R
#--------------------------------------------------------------------------
if {$simMode == 0} {
MakeCounter counter el737hp $ts 3004
} else {
MakeCounter counter sim -1.
}
#--------------------------------------------------------------------------
VarMake instrument Text Mugger
instrument TASPUB
instrument lock
VarMake title Text User
VarMake user Text User
VarMake affiliation Text User
VarMake address Text User
VarMake email Text User
VarMake lastscancommand Text User
VarMake output Text User
VarMake local Text User
VarMake sample Text User
#--------------------------------------------------------------------------
# I N S T A L L M U P A D
#-------------------------------------------------------------------------
if {$mupad == 1} {
source $scripthome/mupad.tcl
# new mupad commands by M.Z.
set mudata(sim) 0
source $scripthome/muco.tcl
source $scripthome/stddrive.tcl
source $scripthome/slsecho.tcl
if {$simMode == 0} {
makesctcontroller slssct slsecho taspmagnet:5001
slsecho::makeslsecho i1 0 slssct
slsecho::makeslsecho i2 1 slssct
slsecho::makeslsecho i3 2 slssct
slsecho::makeslsecho i4 3 slssct
slsecho::makeslsecho i5 4 slssct
slsecho::makeslsecho i6 5 slssct
}
}
#------------------------------------------------------------------------
# Polarisation file
VarMake polfile Text User
#-------------------------------------------------------------------------
# Datafile generation variables
VarMake SicsDataPath Text Mugger
SicsDataPath "$datahome/"
sicsdatapath lock
VarMake SicsDataPrefix Text Mugger
SicsDataPrefix taspub
SicsDataPrefix lock
VarMake SicsDataPostFix Text Mugger
SicsDataPostFix ".xml"
#SicsDataPostFix ".scn"
SicsDataPostFix lock
MakeDataNumber SicsDataNumber "$datahome/DataNumber"
#----------------------------------------------------------------------
# Collimation etc. parameters
#----------------------------------------------------------------------
VarMake alf1 Float User
VarMake alf2 Float User
VarMake alf3 Float User
VarMake alf4 Float User
VarMake bet1 Float User
VarMake bet2 Float User
VarMake bet3 Float User
VarMake bet4 Float User
VarMake ETAM Float User
VarMake ETAS Float User
VarMake ETAA Float User
#-----------------------------------------------------------------------
# A helper variable for the status display
#-----------------------------------------------------------------------
VarMake scaninfo text Internal
scaninfo "0,Unknown,1.0,.1"
#------------------------------------------------------------------------
# I N S T A L L S P E C I A L T A S C O M M A N D S
#------------------------------------------------------------------------
MakeTasUB tasub
#--------------------------- TAS scan command
MakeScanCommand iscan counter tas.hdd recover.bin
MakePeakCenter iscan
MakeTasScan iscan tasub
#-------------------------- new exe manager
definealias do exe
alias batchroot exe batchpath
#-------------------------- normal drive command
MakeDrive
#-------------------------- for NeXus
MakeNXScript
#------------------------------------------------------------------------
# I N S T A L L T A S U B S C R I P T E D C O M M A N D S
#------------------------------------------------------------------------
source $scripthome/taspubcom.tcl
#--------------------------------------------------------------------------
# stuff for sea
if {$simMode == 0} {
definealias tem temperature
source $home/sea/tcl/remob.tcl
connect_sea
#-------------------------------------------------------------------------
# SPS to look at guide field
#------------------------------------------------------------------------
MakeSPS sps $ts 3006 10
}
restore
sicscron 10 backupCron $datahome/statusHistory