Merges from ics1-wombat

r2834 | ffr | 2009-12-09 17:07:45 +1100 (Wed, 09 Dec 2009) | 2 lines
This commit is contained in:
Ferdi Franceschini
2009-12-09 17:07:45 +11:00
committed by Douglas Clowes
parent 64ab146a44
commit c73c4c85c8
15 changed files with 3779 additions and 209 deletions

View File

@@ -1,6 +1,6 @@
# PORT NUMBERS FOR SICS TESTING
# $Revision: 1.3 $
# $Date: 2007-02-20 01:15:34 $
# $Revision: 1.4 $
# $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $
@@ -48,87 +48,87 @@ pmc3-taipan 62732/tcp
pmc4-taipan 62733/tcp
pmc5-taipan 62734/tcp
telnet-echidna 60000/tcp
telnet-echidna 60000/udp
interrupt-echidna 60001/udp
server-echidna 60002/tcp
quieck-echidna 60003/udp
sics-telnet-echidna 60000/tcp
sics-telnet-echidna 60000/udp
sics-interrupt-echidna 60001/udp
sics-server-echidna 60002/tcp
sics-quieck-echidna 60003/udp
telnet-val-echidna 60010/tcp
telnet-val-echidna 60010/udp
interrupt-val-echidna 60011/udp
server-val-echidna 60012/tcp
quieck-val-echidna 60013/udp
sics-telnet-val-echidna 60010/tcp
sics-telnet-val-echidna 60010/udp
sics-interrupt-val-echidna 60011/udp
sics-server-val-echidna 60012/tcp
sics-quieck-val-echidna 60013/udp
telnet-wombat 60100/tcp
telnet-wombat 60100/udp
interrupt-wombat 60101/udp
server-wombat 60102/tcp
quieck-wombat 60103/udp
sics-telnet-wombat 60100/tcp
sics-telnet-wombat 60100/udp
sics-interrupt-wombat 60101/udp
sics-server-wombat 60102/tcp
sics-quieck-wombat 60103/udp
telnet-val-wombat 60110/tcp
telnet-val-wombat 60110/udp
interrupt-val-wombat 60111/udp
server-val-wombat 60112/tcp
quieck-val-wombat 60113/udp
sics-telnet-val-wombat 60110/tcp
sics-telnet-val-wombat 60110/udp
sics-interrupt-val-wombat 60111/udp
sics-server-val-wombat 60112/tcp
sics-quieck-val-wombat 60113/udp
telnet-kowari 60300/tcp
telnet-kowari 60300/udp
interrupt-kowari 60301/udp
server-kowari 60302/tcp
quieck-kowari 60303/udp
sics-telnet-kowari 60300/tcp
sics-telnet-kowari 60300/udp
sics-interrupt-kowari 60301/udp
sics-server-kowari 60302/tcp
sics-quieck-kowari 60303/udp
telnet-val-kowari 60310/tcp
telnet-val-kowari 60310/udp
interrupt-val-kowari 60311/udp
server-val-kowari 60312/tcp
quieck-val-kowari 60313/udp
sics-telnet-val-kowari 60310/tcp
sics-telnet-val-kowari 60310/udp
sics-interrupt-val-kowari 60311/udp
sics-server-val-kowari 60312/tcp
sics-quieck-val-kowari 60313/udp
telnet-quokka 60400/tcp
telnet-quokka 60400/udp
interrupt-quokka 60401/udp
server-quokka 60402/tcp
quieck-quokka 60403/udp
sics-telnet-quokka 60400/tcp
sics-telnet-quokka 60400/udp
sics-interrupt-quokka 60401/udp
sics-server-quokka 60402/tcp
sics-quieck-quokka 60403/udp
telnet-val-quokka 60410/tcp
telnet-val-quokka 60410/udp
interrupt-val-quokka 60411/udp
server-val-quokka 60412/tcp
quieck-val-quokka 60413/udp
sics-telnet-val-quokka 60410/tcp
sics-telnet-val-quokka 60410/udp
sics-interrupt-val-quokka 60411/udp
sics-server-val-quokka 60412/tcp
sics-quieck-val-quokka 60413/udp
telnet-platypus 60500/tcp
telnet-platypus 60500/udp
interrupt-platypus 60501/udp
server-platypus 60502/tcp
quieck-platypus 60503/udp
sics-telnet-platypus 60500/tcp
sics-telnet-platypus 60500/udp
sics-interrupt-platypus 60501/udp
sics-server-platypus 60502/tcp
sics-quieck-platypus 60503/udp
telnet-val-platypus 60510/tcp
telnet-val-platypus 60510/udp
interrupt-val-platypus 60511/udp
server-val-platypus 60512/tcp
quieck-val-platypus 60513/udp
sics-telnet-val-platypus 60510/tcp
sics-telnet-val-platypus 60510/udp
sics-interrupt-val-platypus 60511/udp
sics-server-val-platypus 60512/tcp
sics-quieck-val-platypus 60513/udp
telnet-pelican 60600/tcp
telnet-pelican 60600/udp
interrupt-pelican 60601/udp
server-pelican 60602/tcp
quieck-pelican 60603/udp
sics-telnet-pelican 60600/tcp
sics-telnet-pelican 60600/udp
sics-interrupt-pelican 60601/udp
sics-server-pelican 60602/tcp
sics-quieck-pelican 60603/udp
telnet-val-pelican 60610/tcp
telnet-val-pelican 60610/udp
interrupt-val-pelican 60611/udp
server-val-pelican 60612/tcp
quieck-val-pelican 60613/udp
sics-telnet-val-pelican 60610/tcp
sics-telnet-val-pelican 60610/udp
sics-interrupt-val-pelican 60611/udp
sics-server-val-pelican 60612/tcp
sics-quieck-val-pelican 60613/udp
telnet-taipan 60700/tcp
telnet-taipan 60700/udp
interrupt-taipan 60701/udp
server-taipan 60702/tcp
quieck-taipan 60703/udp
sics-telnet-taipan 60700/tcp
sics-telnet-taipan 60700/udp
sics-interrupt-taipan 60701/udp
sics-server-taipan 60702/tcp
sics-quieck-taipan 60703/udp
telnet-val-taipan 60710/tcp
telnet-val-taipan 60710/udp
interrupt-val-taipan 60711/udp
server-val-taipan 60712/tcp
quieck-val-taipan 60713/udp
sics-telnet-val-taipan 60710/tcp
sics-telnet-val-taipan 60710/udp
sics-interrupt-val-taipan 60711/udp
sics-server-val-taipan 60712/tcp
sics-quieck-val-taipan 60713/udp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -33,8 +33,12 @@ proc property_elements {path indent} {
foreach {key value} [string map {= " "} [hlistprop $path tcl]] {
if {[string compare -nocase $key "control"] == 0} {continue}
lappend proplist "$prefix<property id=\"$key\">\n"
foreach v [split $value ,] {
lappend proplist "$prefix$prefix<value>$v</value>\n"
if {[string compare -nocase $key "help"] == 0} {
lappend proplist "$prefix$prefix<value>$value</value>\n"
} else {
foreach v [split $value ,] {
lappend proplist "$prefix$prefix<value>$v</value>\n"
}
}
lappend proplist "$prefix</property>\n"
}

View File

@@ -13,17 +13,21 @@ command SetRadColl {
float time
float range
} {
catch {
set spd [expr 2.0*$range / $time]
oct softlowerlim [expr -abs($range/2.0) - 0.5]
oct softupperlim [expr abs($range/2.0) + 0.5]
oct maxretry 5
oct accel 0.25
oct speed 0.25
oct decel 0.25
drive oct [expr abs($range/2.0)]
oct speed $spd
oct accel $spd
oct accel [expr $spd*5]
oct decel [expr $spd*5]
oct maxretry 0
} msg
clientput $msg
}
# SimpleRun
command SimpleRun {
@@ -31,12 +35,12 @@ float=0:inf steptime
int=1:inf numsteps
} {
RadCollOff
# RadCollOff
histmem mode time
histmem preset $steptime
newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} {
histmem start block
hmm countblock
save $i
}
}
@@ -49,13 +53,13 @@ int=1:inf numsteps
float=0:inf steptime
} {
RadCollOff
# RadCollOff
histmem mode time
histmem preset $steptime
newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start]
histmem start block
hmm countblock
save $i
}
}
@@ -65,14 +69,16 @@ int=1:inf oscno
int=1:inf reps
} {
RadCollOn $oscno
# RadCollOn $oscno
histmem mode unlimited
newfile HISTOGRAM_XY
for {set i 0} {$i < $reps} {incr i} {
histmem start block
oscmd start $oscno
hmm countblock
save $i
}
RadCollOff
oscmd stop
# RadCollOff
}
# RadCollTimed
command RadCollTimed {
@@ -105,15 +111,17 @@ int=1:inf numsteps
int=1:inf oscno
} {
RadCollOn $oscno
# RadCollOn $oscno
histmem mode unlimited
newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start]
histmem start block
oscmd start $oscno
hmm countblock
save $i
}
RadCollOff
# RadCollOff
oscmd stop
}
}
namespace import ::ajscmds::*

View File

@@ -30,6 +30,10 @@ proc ::histogram_memory::init_OAT_TABLE {args} {
FAT_TABLE -set MULTI_HOST_HISTO_STITCH_OVERLAP 8 MULTI_HOST_HISTO_JOIN_STITCH_ORDER INVERTED
OAT_TABLE -set X { 991.5 987.5 } NXC 248 Y { -0.5 3.5 } NYC 128 T { 0 20000 } NTC 1
}
"double_y_968x128" {
FAT_TABLE -set MULTI_HOST_HISTO_STITCH_OVERLAP 8 MULTI_HOST_HISTO_JOIN_STITCH_ORDER INVERTED BNL_STATUS_MASK_MULTI_Y 1000h
OAT_TABLE -set X { 991.5 987.5 } NXC 248 Y { -0.5 3.5 } NYC 256 T { 0 20000 } NTC 1
}
default {
# Default to std_968x128
FAT_TABLE -set MULTI_HOST_HISTO_STITCH_OVERLAP 8 MULTI_HOST_HISTO_JOIN_STITCH_ORDER INVERTED

View File

@@ -1,33 +1,89 @@
# Test script for multi period acquisition and saving.
# latest mods 21 Oct 09 based on info from Ferdi - ajs
set nos_periods 1
set n_periods 1
proc open_hist_file {} {
newfile HISTOGRAM_XY
}
proc histset_XY {} {
set histstr "proc open_hist_file {} {newfile HISTOGRAM_XY}"
eval $histstr
}
proc histset_XYperiod {} {
set histstr "proc open_hist_file {} {newfile HISTOPERIOD_XY}"
eval $histstr
}
proc histset_XYT {} {
set histstr "proc open_hist_file {} {newfile HISTOGRAM_XYT}"
eval $histstr
}
proc histset_XYTperiod {} {
set histstr "proc open_hist_file {} {newfile HISTOPERIOD_XYT}"
}
proc histmem_period_single { } {
# Because bugs may not yet have been corrected in hmm_configuration_common_1.tcl,
# apply the default settings before attempting del/clear.
global nos_periods
set nos_periods 1
global n_periods
set n_periods 1
FAT_TABLE -set NOS_PERIODS 1
FAT_TABLE -del NOS_PERIODS
BAT_TABLE -set PERIOD_INDICES { 0 } NO_BAT_ENTRIES 1 NO_BAT_PERIODS 1 NO_REPEAT_ENTRY 0 NO_REPEAT_TABLE 0 NO_EXECUTE_TABLE 0
BAT_TABLE -clear
# FAT_TABLE -del NOS_PERIODS
# BAT_TABLE -set PERIOD_INDICES { 0 } NO_BAT_ENTRIES 1 NO_BAT_PERIODS 1 NO_REPEAT_ENTRY 0 NO_REPEAT_TABLE 0 NO_EXECUTE_TABLE 0
BAT_TABLE -set PERIOD_INDICES { 0 } NO_BAT_ENTRIES 1 NO_BAT_PERIODS 1 NO_REPEAT_ENTRY 1 NO_REPEAT_TABLE 1 NO_EXECUTE_TABLE 1
histmem loadconf
# BAT_TABLE -clear
histset_XY
}
Publish histmem_period_single User
proc histmem_period_sequence { Np Nf } {
# orig version of this pre Oct 09
#
#proc histmem_period_sequence { Np Nf } {
# Note - sequence needs to be at least 2 periods.
global nos_periods
set nos_periods $Np
FAT_TABLE -set NOS_PERIODS $Np
BAT_TABLE -set PERIOD_INDICES { 0 1 } NO_BAT_ENTRIES $Np NO_BAT_PERIODS $Np NO_REPEAT_ENTRY $Nf NO_REPEAT_TABLE 1 NO_EXECUTE_TABLE 1
# global n_periods
# set n_periods $Np
# set fatstr "FAT_TABLE -set NOS_PERIODS $Np"
# set fatstr2 "FAT_TABLE -set PERIOD_INDICES { 0 1 }"
# set batstr "BAT_TABLE -set NO_BAT_ENTRIES $Np NO_BAT_PERIODS $Np NO_REPEAT_ENTRY $Nf NO_REPEAT_TABLE 1 NO_EXECUTE_TABLE 1"
# eval $fatstr
# eval $fatstr2
# eval $batstr
# histmem loadconf
#
#}
proc histmem_period_sequence {Np} {
global n_periods
set n_periods $Np
FAT_TABLE -set NOS_PERIODS $Np
BAT_TABLE -set PERIOD_INDICES { 0 } NO_BAT_ENTRIES 1 NO_BAT_PERIODS 1 NO_REPEAT_ENTRY 1 NO_REPEAT_TABLE 1 NO_EXECUTE_TABLE $Np
histmem loadconf
histset_XYperiod
}
proc histmem_period_sequence_off {} {
global n_periods
set n_periods $Np
FAT_TABLE -set NOS_PERIODS 1
BAT_TABLE -set PERIOD_INDICES { 0 } NO_BAT_ENTRIES 1 NO_BAT_PERIODS 1 NO_REPEAT_ENTRY 0 NO_REPEAT_TABLE 0 NO_EXECUTE_TABLE 0
histmem loadconf
histset_XYperiod
}
Publish histmem_period_sequence User
proc histmem_save_period_sequence { } {
global nos_periods
newfile HISTOGRAM_XYT
for { set i 0 } { $i < $nos_periods } { incr i } {
hmm configure read_data_period_number $i
global n_periods
open_hist_file
for { set i 0 } { $i < $n_periods } { incr i } {
# hmm configure read_data_period_number $i
save $i
}
}
@@ -42,6 +98,7 @@ proc histmem_period_strobo {Freq Bins} {
# OAT_TABLE -set T { 0 $bintime } NTC $Bins
eval $oatstr
histmem loadconf
histset_XYT
}
Publish histmem_period_strobo User
@@ -49,6 +106,7 @@ proc histmem_strobo_off {} {
histmem fsrce INTERNAL
OAT_TABLE -set T { 0 200000 } NTC 1
histmem loadconf
histset_XY
}
Publish histmem_strobo_off User
@@ -69,8 +127,8 @@ proc histmem_acquire_period_sequence { Np Nf } {
# clientput "tc1 reading is: " [tc1 get]
global nos_periods
for { set i 0 } { $i < $nos_periods } { incr i } {
global n_periods
for { set i 0 } { $i < $n_periods } { incr i } {
# after $dlytime
# set current_period -1
# while { $current_period < $i } {

View File

@@ -2,7 +2,7 @@
set ephi_Home 6647698
set echi_Home 8919294
set eom_Home 22960659
set eom_Home 23165482
# Sample Tilt 1, euler omega stage
Motor eom $motor_driver_type [params \
@@ -30,8 +30,8 @@ Motor echi $motor_driver_type [params \
asyncqueue mc2\
axis B\
units degrees\
hardlowerlim -20\
hardupperlim 95\
hardlowerlim -32\
hardupperlim 97\
maxSpeed 1\
maxAccel 1\
maxDecel 1\

View File

@@ -32,11 +32,14 @@ if {$sim_mode == "true"} {
}
#Measured absolute encoder reading at home position
set mx_Home 7464891
#set mx_Home 7464891
set mx_Home 23263535
set mom_Home 9274794
set mtth_Home 19927837
set mphi_Home 7613516
set mchi_Home 9050090
#set mphi_Home 7613516
set mphi_Home 27847793
#set mchi_Home 9050090
set mchi_Home 25561619
set my_Home 6767221
set som_Home 17214054
set stth_Home 2896180
@@ -241,7 +244,7 @@ Motor mtth $motor_driver_type [params \
asyncqueue mc1\
axis F\
units degrees\
hardlowerlim 45\
hardlowerlim 40.7\
hardupperlim 120.5\
maxSpeed 0.2\
maxAccel 0.2\
@@ -253,7 +256,7 @@ Motor mtth $motor_driver_type [params \
absEnc 1\
absEncHome $mtth_Home\
cntsPerX -93207]
mtth softlowerlim 45
mtth softlowerlim 40.75
mtth softupperlim 120
mtth home 90
mtth speed 0.2
@@ -281,7 +284,7 @@ Motor som $motor_driver_type [params \
units degrees\
hardlowerlim -110\
hardupperlim 160\
maxSpeed 1\
maxSpeed 5\
maxAccel 1\
maxDecel 1\
stepsPerX 12500\
@@ -299,7 +302,7 @@ Motor stth $motor_driver_type [params \
asyncqueue mc2\
axis F\
units degrees\
hardlowerlim -120\
hardlowerlim 5\
hardupperlim 30\
maxSpeed 0.5\
maxAccel 0.1\
@@ -308,7 +311,7 @@ Motor stth $motor_driver_type [params \
absEnc 1\
absEncHome $stth_Home\
cntsPerX -93207]
stth softlowerlim -120
stth softlowerlim 5
stth softupperlim 30
stth home 0
stth speed 0.5
@@ -323,16 +326,16 @@ Motor oct $motor_driver_type [params \
axis G\
units degrees\
hardlowerlim -2\
hardupperlim 2\
maxSpeed 1.0\
maxAccel 1.0\
maxDecel 1.0\
hardupperlim 4.2\
maxSpeed 2.0\
maxAccel 5.0\
maxDecel 5.0\
stepsPerX 56762\
absEnc 1\
absEncHome $oct_Home\
cntsPerX -465]
oct softlowerlim -2
oct softupperlim 2
oct softupperlim 4
oct home 0
oct speed 0.5
oct precision 0.01
@@ -373,17 +376,17 @@ Motor mf2 $motor_driver_type [params \
axis A\
units degrees\
hardlowerlim 0\
hardupperlim 1\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
hardupperlim 2\
maxSpeed 0.1\
maxAccel 0.1\
maxDecel 0.1\
stepsPerX 22000\
absEnc 1\
absEncHome 350\
cntsPerX 14000]
setHomeandRange -motor mf2 -home 0 -lowrange 0 -uprange 1
mf2 speed 0.1
mf2 precision 0.01
setHomeandRange -motor mf2 -home 0 -lowrange 0 -uprange 2
mf2 speed 0.02
mf2 precision 0.005
mf2 part monochromator
mf2 long_name mf2

View File

@@ -1,5 +1,5 @@
# $Revision: 1.31 $
# $Date: 2009-11-24 22:56:46 $
# $Revision: 1.32 $
# $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
@@ -18,7 +18,6 @@ source server_config.tcl
# INSTRUMENT SPECIFIC CONFIGURATION
fileeval $cfPath(motors)/motor_configuration.tcl
source instrument_vars.tcl
fileeval $cfPath(source)/source.tcl
@@ -38,8 +37,20 @@ fileeval $cfPath(anticollider)/anticollider.tcl
fileeval $cfPath(hmm)/hmm_rapid.tcl
source gumxml.tcl
::environment::temperature::add_ls340 tc1 1
::environment::temperature::add_ls340 tc2 2
# Drivers for Lakeshore Temperature Controller
# old Lakeshore driver (c-code)
::environment::temperature::add_ls340 tc1 1
# ::environment::temperature::add_ls340 tc2 2
# New Lakeshore series driver for models 340 and 336 - (tcl-code, version 20090824) - beta status
# driverName shortName IP-address portOnMoxa temperatureTolerance LakeshoreModel
# ffr 2009-11-11: NOTE I've added a line terminator argument to the ls3xx setup.
# You need to set the line termintator to either "\r\n" for CRLF or "\r" for CR
# add_ls3xx tc1 137.157.201.85 7777 "\r\n" 0.5 336
# add_ls3xx tc2 137.157.201.85 4002 "\r\n" 0.5 340
#::environment::temperature::add_west400
server_init
###########################################

View File

@@ -3,6 +3,7 @@ config/anticollider/anticollider_common.tcl
config/plc/plc_common_1.tcl
config/counter/counter_common_1.tcl
config/environment/temperature/sct_lakeshore_3xx.tcl
config/environment/magneticField/sct_bruker_BEC1.tcl
config/hipadaba/hipadaba_configuration_common.tcl
config/hipadaba/common_instrument_dictionary.tcl
config/hipadaba/instdict_specification.tcl

View File

@@ -16,55 +16,72 @@ namespace eval motor {
# @param bs beamstop, 1,2,3,4,5 or 6
# @param bx beam position in detector coordinates
# @param bz beam position in detector coordinates
# Origin of beamstop coordinate system is (bsxo, bszo) relative to frame
# Origin of detector coordinate system is (0, 0) relative to frame
# Given
# (Xb,Zb) = beam position in frame coordinates
# bx = beam x pos in detector coordinates
# bz = beam z pos in detector coordinates
# detoff = detector x pos in detector coordinates
# bsx = beamstop x pos in beamstop coordinates
# bsz = beamstop z pos in beamstop coordinates
# bszo = beamstop z origin relative to frame
# (bx+detoff, bz) = (Xb,Zb)
# (bsx, bsz+bszo) = (Xb,Zb)
# (Xbf,Zbf) = beam pos in frame coords
# (Xbd,Zbd) = beam pos in detector coords
# (Xbbs, Zbbs) = beam pos in beamstop coords
# (Xdf,Zdf) = detector pos in frame coords
# (Xbsf,Zbsf) = beamstop pos in frame coords
#
# (Xbf,Zbf) = (Xdf+Xbd, Zdf+Zbd) = (Xbsf+Xbbs, Zbsf+Zbbs)
# Origin of detector coords = frame origin
#
# Detector and beamstop motor readings with beamstop disk centers
# overlapping over detector center mark.
# Xdf = 264.542 (7283813) Zdf = 0
# Xbbs = 296.291 (8054270)
# Zbbs = 259.641 (13488244)
# Xbd = dethw, Zbd = (dethh)
#
# 264.542+dethw = Xbsf+296.291
# 0+dethh = Zbsf+259.641
#
# Xbsf = -31.749 + dethw, Zbsf = -259.641 + dethh
proc selbs {bs {bx "UNDEF"} {bz "UNDEF"}} {
set bsdriving false
set dethw [expr {[SplitReply detector_active_height_mm]/2.0}]
set dethh [expr {[SplitReply detector_active_width_mm]/2.0}]
set bsxo -33.112 + $dethw
set bszo -329.440 + $dethh
set dethw [expr {[SplitReply [detector_active_height_mm]]/2.0}]
set dethh [expr {[SplitReply [detector_active_width_mm]]/2.0}]
set Xbsf [expr -31.749 + $dethw]
set Zbsf [expr -259.641 + $dethh]
array set bsl [subst {
1 [SplitReply [bs1 softlowerlim]]
2 [SplitReply [bs2 softlowerlim]]
3 [SplitReply [bs3 softlowerlim]]
4 [SplitReply [bs4 softlowerlim]]
5 [SplitReply [bs5 softlowerlim]]
6 [SplitReply [bs6 softlowerlim]]
}]
if [ catch {
switch $bs {
"1" {
set bsmot "bs1"
set bs_target 92.79
set bsdownCmd "drive bs2 0 bs3 0 bs4 0 bs5 0 bs6 0"
set bsdownCmd "drive bs2 $bsl(2) bs3 $bsl(3) bs4 $bsl(4) bs5 $bsl(5) bs6 $bsl(6)"
}
"2" {
set bsmot "bs2"
set bs_target 86.20
set bsdownCmd "drive bs1 0 bs3 0 bs4 0 bs5 0 bs6 0"
set bsdownCmd "drive bs1 $bsl(1) bs3 $bsl(3) bs4 $bsl(4) bs5 $bsl(5) bs6 $bsl(6)"
}
"3" {
set bsmot "bs3"
set bs_target 92.54
set bsdownCmd "drive bs2 0 bs1 0 bs4 0 bs5 0 bs6 0"
set bsdownCmd "drive bs2 $bsl(2) bs1 $bsl(1) bs4 $bsl(4) bs5 $bsl(5) bs6 $bsl(6)"
}
"4" {
set bsmot "bs4"
set bs_target 86.66
set bsdownCmd "drive bs2 0 bs3 0 bs1 0 bs5 0 bs6 0"
set bsdownCmd "drive bs2 $bsl(2) bs3 $bsl(3) bs1 $bsl(1) bs5 $bsl(5) bs6 $bsl(6)"
}
"5" {
set bsmot "bs5"
set bs_target 92.50
set bsdownCmd "drive bs2 0 bs3 0 bs4 0 bs1 0 bs6 0"
set bsdownCmd "drive bs2 $bsl(2) bs3 $bsl(3) bs4 $bsl(4) bs1 $bsl(1) bs6 $bsl(6)"
}
"6" {
set bsmot "bs6"
set bs_target 85.87
set bsdownCmd "drive bs2 0 bs3 0 bs4 0 bs5 0 bs1 0"
set bsdownCmd "drive bs2 $bsl(2) bs3 $bsl(3) bs4 $bsl(4) bs5 $bsl(5) bs1 $bsl(1)"
}
default {
error "beamstop selection must be an integer from 1 to 6"
@@ -76,8 +93,8 @@ proc selbs {bs {bx "UNDEF"} {bz "UNDEF"}} {
if {$bx == "UNDEF" || $bz == "UNDEF"} {
statemon start selbs
set bsdriving true
drive $bsmot $bs_target
BeamStop -1
drive $bsmot $bs_target
eval $bsdownCmd
BeamStop $bs
set bsdriving false
@@ -88,13 +105,13 @@ proc selbs {bs {bx "UNDEF"} {bz "UNDEF"}} {
error "beam coordinates must be floats"
}
}
set bsx_target [expr {$bx-$bsxo+$detoff_val}]
set bsz_target [expr {$bz-$bszo}]
set bsx_target [expr {$bx-$Xbsf+$detoff_val}]
set bsz_target [expr {$bz-$Zbsf}]
statemon start selbs
set bsdriving true
drive $bsmot $bs_target bsx $bsx_target bsz $bsz_target
BeamStop -1
drive $bsmot $bs_target bsx $bsx_target bsz $bsz_target
eval $bsdownCmd
BeamStop $bs
set bsdriving false

View File

@@ -1,5 +1,5 @@
# $Revision: 1.29 $
# $Date: 2009-12-03 02:04:57 $
# $Revision: 1.30 $
# $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
@@ -76,12 +76,20 @@ set att_Home 24782942
set bsx_Home 7578346
#set bsz_Home 10143000
set bsz_Home 10568857
set bs1_Home 13219
set bs2_Home 2506
set bs3_Home 22391
set bs4_Home 15287
set bs5_Home 6283
set bs6_Home 19123
#set bs1_Home 13219
#set bs2_Home 2506
#set bs3_Home 22391
#set bs4_Home 15287
#set bs5_Home 6283
#set bs6_Home 19123
set bs1_Home 21298
set bs2_Home 9942
set bs3_Home 30928
set bs4_Home 22111
set bs5_Home 14558
set bs6_Home 27251
set bs_cntsPerX [expr 32768.0/360.0]
set bs_stepsPerX [expr -25000.0*160.0/360.0]
set pol_Home 7500000
@@ -406,8 +414,8 @@ Motor detoff $motor_driver_type [params \
port pmc1-quokka\
axis H\
units mm\
hardlowerlim -50\
hardupperlim 500\
hardlowerlim -9\
hardupperlim 465\
maxSpeed 10\
maxAccel 1\
maxDecel 10\
@@ -417,14 +425,14 @@ Motor detoff $motor_driver_type [params \
cntsPerX [expr 8192.0/5.08]]
detoff part detector
detoff long_name detector_x
detoff softlowerlim -50
detoff softupperlim 500
detoff softlowerlim 0
detoff softupperlim 450
detoff home 0
############################
# Motor Controller 2
# Motor Controller 2
# Motor Controller 2
# Motor Controller 25
############################
#:TP at HOME
#
@@ -834,7 +842,7 @@ Motor bsx $motor_driver_type [params \
axis A\
units mm\
hardlowerlim 0\
hardupperlim 500\
hardupperlim 317\
maxSpeed 5\
maxAccel 2\
maxDecel 5\
@@ -845,7 +853,7 @@ Motor bsx $motor_driver_type [params \
bsx part detector
bsx long_name bsx
bsx softlowerlim 0
bsx softupperlim 500
bsx softupperlim 310
bsx speed 5
bsx home 0
@@ -857,7 +865,7 @@ Motor bsz $motor_driver_type [params \
axis B\
units mm\
hardlowerlim 0\
hardupperlim 400\
hardupperlim 280\
maxSpeed 5\
maxAccel 1\
maxDecel 5\
@@ -868,7 +876,7 @@ Motor bsz $motor_driver_type [params \
bsz part detector
bsz long_name bsz
bsz softlowerlim 0
bsz softupperlim 400
bsz softupperlim 275
bsz home 0
# Largest beamstop
@@ -876,8 +884,8 @@ Motor bs1 $motor_driver_type [params \
asyncqueue mc4\
axis C\
units degrees\
hardlowerlim 0\
hardupperlim 100\
hardlowerlim 9\
hardupperlim 95\
maxSpeed 2\
maxAccel 1\
maxDecel 1\
@@ -887,9 +895,9 @@ Motor bs1 $motor_driver_type [params \
cntsPerX $bs_cntsPerX]
bs1 part detector
bs1 long_name bs1
bs1 softlowerlim 0
bs1 softupperlim 100
bs1 home 0
bs1 softlowerlim 11
bs1 softupperlim 95
bs1 home 90
bs1 precision 0.05
sicslist setatt bs1 link parameters_group
@@ -897,8 +905,8 @@ Motor bs2 $motor_driver_type [params \
asyncqueue mc4\
axis D\
units degrees\
hardlowerlim 0\
hardupperlim 100\
hardlowerlim 6\
hardupperlim 95\
maxSpeed 2\
maxAccel 1\
maxDecel 1\
@@ -908,9 +916,9 @@ Motor bs2 $motor_driver_type [params \
cntsPerX $bs_cntsPerX]
bs2 part detector
bs2 long_name bs2
bs2 softlowerlim 0
bs2 softupperlim 100
bs2 home 0
bs2 softlowerlim 7
bs2 softupperlim 95
bs2 home 90
bs2 precision 0.05
sicslist setatt bs2 link parameters_group
@@ -918,8 +926,8 @@ Motor bs3 $motor_driver_type [params \
asyncqueue mc4\
axis E\
units degrees\
hardlowerlim 0\
hardupperlim 100\
hardlowerlim 9\
hardupperlim 95\
maxSpeed 2\
maxAccel 1\
maxDecel 1\
@@ -929,9 +937,9 @@ Motor bs3 $motor_driver_type [params \
cntsPerX $bs_cntsPerX]
bs3 part detector
bs3 long_name bs3
bs3 softlowerlim 0
bs3 softupperlim 100
bs3 home 0
bs3 softlowerlim 11
bs3 softupperlim 95
bs3 home 90
bs3 precision 0.05
sicslist setatt bs3 link parameters_group
@@ -939,8 +947,8 @@ Motor bs4 $motor_driver_type [params \
asyncqueue mc4\
axis F\
units degrees\
hardlowerlim 0\
hardupperlim 100\
hardlowerlim 6\
hardupperlim 95\
maxSpeed 2\
maxAccel 1\
maxDecel 1\
@@ -950,9 +958,9 @@ Motor bs4 $motor_driver_type [params \
cntsPerX $bs_cntsPerX]
bs4 part detector
bs4 long_name bs4
bs4 softlowerlim 0
bs4 softupperlim 100
bs4 home 0
bs4 softlowerlim 7
bs4 softupperlim 95
bs4 home 90
bs4 precision 0.05
sicslist setatt bs4 link parameters_group
@@ -960,8 +968,8 @@ Motor bs5 $motor_driver_type [params \
asyncqueue mc4\
axis G\
units degrees\
hardlowerlim 0\
hardupperlim 100\
hardlowerlim 9\
hardupperlim 95\
maxSpeed 2\
maxAccel 1\
maxDecel 1\
@@ -971,9 +979,9 @@ Motor bs5 $motor_driver_type [params \
cntsPerX $bs_cntsPerX]
bs5 part detector
bs5 long_name bs5
bs5 softlowerlim 0
bs5 softupperlim 100
bs5 home 0
bs5 softlowerlim 11
bs5 softupperlim 95
bs5 home 90
bs5 precision 0.05
sicslist setatt bs5 link parameters_group
@@ -981,8 +989,8 @@ Motor bs6 $motor_driver_type [params \
asyncqueue mc4\
axis H\
units degrees\
hardlowerlim 0\
hardupperlim 100\
hardlowerlim 6\
hardupperlim 95\
maxSpeed 2\
maxAccel 1\
maxDecel 1\
@@ -992,9 +1000,9 @@ Motor bs6 $motor_driver_type [params \
cntsPerX $bs_cntsPerX]
bs6 part detector
bs6 long_name bs6
bs6 softlowerlim 0
bs6 softupperlim 100
bs6 home 0
bs6 softlowerlim 7
bs6 softupperlim 95
bs6 home 90
bs6 precision 0.05
sicslist setatt bs6 link parameters_group

View File

@@ -1,4 +1,4 @@
set currVelSel "two"
set currVelSel 43
namespace eval ::scobj::velocity_selector {
variable blocked_speeds
@@ -7,7 +7,7 @@ namespace eval ::scobj::velocity_selector {
set ::currVelSel [string tolower $::currVelSel]
switch $::currVelSel {
"one" {
40 {
set velsel_IP "137.157.202.73"
set velsel_port 10000
set m_dTwistAngle 48.30
@@ -24,7 +24,7 @@ namespace eval ::scobj::velocity_selector {
28301 inf
}
}
"two" {
43 {
# dc2-quokka.nbi.ansto.gov.au
set velsel_IP "137.157.202.74"
set velsel_port 10000

View File

@@ -1,7 +1,7 @@
# Some useful functions for SICS configuration.
# $Revision: 1.22 $
# $Date: 2009-11-24 22:56:49 $
# $Revision: 1.23 $
# $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $
@@ -871,6 +871,47 @@ proc hsibPath {sibling} {
}
proc hsibPath {sibling} {
set hpath [sct]
return [file dirname $hpath]/$sibling
}
##
# @brief Handle exceptions caught by a 'catch' command.
# Note: You must use 'error' not 'return -code error' to
# raise errors from within a catch block.
#
# @param status, the status returned by the 'catch' command.
# @param message, the message set by the 'catch' command.
#
# Call this as the last command in the command block or
# for loop which encloses the 'catch'
proc handle_exception {status message} {
switch $status {
0 {
# TCL_OK, This is raised when you just drop out of the
# bottom of a 'catch' command.
return -code ok
}
1 {
# TCL_ERROR
return -code error "([info level -1]) $message"
}
2 {
# TCL_RETURN
return -code return "$message"
}
3 {
# TCL_BREAK
return -code break
}
4 {
# TCL_CONTINUE
return -code continue
}
default {
# Propogate user defined return codes with message
return -code $status "$message"
}
}
}
namespace import ::utility::*;