287 lines
9.7 KiB
Tcl
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
|