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 # PORT NUMBERS FOR SICS TESTING
# $Revision: 1.3 $ # $Revision: 1.4 $
# $Date: 2007-02-20 01:15:34 $ # $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au) # Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $ # Last revision by $Author: ffr $
@@ -48,87 +48,87 @@ pmc3-taipan 62732/tcp
pmc4-taipan 62733/tcp pmc4-taipan 62733/tcp
pmc5-taipan 62734/tcp pmc5-taipan 62734/tcp
telnet-echidna 60000/tcp sics-telnet-echidna 60000/tcp
telnet-echidna 60000/udp sics-telnet-echidna 60000/udp
interrupt-echidna 60001/udp sics-interrupt-echidna 60001/udp
server-echidna 60002/tcp sics-server-echidna 60002/tcp
quieck-echidna 60003/udp sics-quieck-echidna 60003/udp
telnet-val-echidna 60010/tcp sics-telnet-val-echidna 60010/tcp
telnet-val-echidna 60010/udp sics-telnet-val-echidna 60010/udp
interrupt-val-echidna 60011/udp sics-interrupt-val-echidna 60011/udp
server-val-echidna 60012/tcp sics-server-val-echidna 60012/tcp
quieck-val-echidna 60013/udp sics-quieck-val-echidna 60013/udp
telnet-wombat 60100/tcp sics-telnet-wombat 60100/tcp
telnet-wombat 60100/udp sics-telnet-wombat 60100/udp
interrupt-wombat 60101/udp sics-interrupt-wombat 60101/udp
server-wombat 60102/tcp sics-server-wombat 60102/tcp
quieck-wombat 60103/udp sics-quieck-wombat 60103/udp
telnet-val-wombat 60110/tcp sics-telnet-val-wombat 60110/tcp
telnet-val-wombat 60110/udp sics-telnet-val-wombat 60110/udp
interrupt-val-wombat 60111/udp sics-interrupt-val-wombat 60111/udp
server-val-wombat 60112/tcp sics-server-val-wombat 60112/tcp
quieck-val-wombat 60113/udp sics-quieck-val-wombat 60113/udp
telnet-kowari 60300/tcp sics-telnet-kowari 60300/tcp
telnet-kowari 60300/udp sics-telnet-kowari 60300/udp
interrupt-kowari 60301/udp sics-interrupt-kowari 60301/udp
server-kowari 60302/tcp sics-server-kowari 60302/tcp
quieck-kowari 60303/udp sics-quieck-kowari 60303/udp
telnet-val-kowari 60310/tcp sics-telnet-val-kowari 60310/tcp
telnet-val-kowari 60310/udp sics-telnet-val-kowari 60310/udp
interrupt-val-kowari 60311/udp sics-interrupt-val-kowari 60311/udp
server-val-kowari 60312/tcp sics-server-val-kowari 60312/tcp
quieck-val-kowari 60313/udp sics-quieck-val-kowari 60313/udp
telnet-quokka 60400/tcp sics-telnet-quokka 60400/tcp
telnet-quokka 60400/udp sics-telnet-quokka 60400/udp
interrupt-quokka 60401/udp sics-interrupt-quokka 60401/udp
server-quokka 60402/tcp sics-server-quokka 60402/tcp
quieck-quokka 60403/udp sics-quieck-quokka 60403/udp
telnet-val-quokka 60410/tcp sics-telnet-val-quokka 60410/tcp
telnet-val-quokka 60410/udp sics-telnet-val-quokka 60410/udp
interrupt-val-quokka 60411/udp sics-interrupt-val-quokka 60411/udp
server-val-quokka 60412/tcp sics-server-val-quokka 60412/tcp
quieck-val-quokka 60413/udp sics-quieck-val-quokka 60413/udp
telnet-platypus 60500/tcp sics-telnet-platypus 60500/tcp
telnet-platypus 60500/udp sics-telnet-platypus 60500/udp
interrupt-platypus 60501/udp sics-interrupt-platypus 60501/udp
server-platypus 60502/tcp sics-server-platypus 60502/tcp
quieck-platypus 60503/udp sics-quieck-platypus 60503/udp
telnet-val-platypus 60510/tcp sics-telnet-val-platypus 60510/tcp
telnet-val-platypus 60510/udp sics-telnet-val-platypus 60510/udp
interrupt-val-platypus 60511/udp sics-interrupt-val-platypus 60511/udp
server-val-platypus 60512/tcp sics-server-val-platypus 60512/tcp
quieck-val-platypus 60513/udp sics-quieck-val-platypus 60513/udp
telnet-pelican 60600/tcp sics-telnet-pelican 60600/tcp
telnet-pelican 60600/udp sics-telnet-pelican 60600/udp
interrupt-pelican 60601/udp sics-interrupt-pelican 60601/udp
server-pelican 60602/tcp sics-server-pelican 60602/tcp
quieck-pelican 60603/udp sics-quieck-pelican 60603/udp
telnet-val-pelican 60610/tcp sics-telnet-val-pelican 60610/tcp
telnet-val-pelican 60610/udp sics-telnet-val-pelican 60610/udp
interrupt-val-pelican 60611/udp sics-interrupt-val-pelican 60611/udp
server-val-pelican 60612/tcp sics-server-val-pelican 60612/tcp
quieck-val-pelican 60613/udp sics-quieck-val-pelican 60613/udp
telnet-taipan 60700/tcp sics-telnet-taipan 60700/tcp
telnet-taipan 60700/udp sics-telnet-taipan 60700/udp
interrupt-taipan 60701/udp sics-interrupt-taipan 60701/udp
server-taipan 60702/tcp sics-server-taipan 60702/tcp
quieck-taipan 60703/udp sics-quieck-taipan 60703/udp
telnet-val-taipan 60710/tcp sics-telnet-val-taipan 60710/tcp
telnet-val-taipan 60710/udp sics-telnet-val-taipan 60710/udp
interrupt-val-taipan 60711/udp sics-interrupt-val-taipan 60711/udp
server-val-taipan 60712/tcp sics-server-val-taipan 60712/tcp
quieck-val-taipan 60713/udp 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]] { foreach {key value} [string map {= " "} [hlistprop $path tcl]] {
if {[string compare -nocase $key "control"] == 0} {continue} if {[string compare -nocase $key "control"] == 0} {continue}
lappend proplist "$prefix<property id=\"$key\">\n" lappend proplist "$prefix<property id=\"$key\">\n"
foreach v [split $value ,] { if {[string compare -nocase $key "help"] == 0} {
lappend proplist "$prefix$prefix<value>$v</value>\n" 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" lappend proplist "$prefix</property>\n"
} }

View File

@@ -13,17 +13,21 @@ command SetRadColl {
float time float time
float range float range
} { } {
catch {
set spd [expr 2.0*$range / $time] set spd [expr 2.0*$range / $time]
oct softlowerlim [expr -abs($range/2.0) - 0.5] oct softlowerlim [expr -abs($range/2.0) - 0.5]
oct softupperlim [expr abs($range/2.0) + 0.5] oct softupperlim [expr abs($range/2.0) + 0.5]
oct maxretry 5 oct maxretry 5
oct accel 0.25 oct accel 0.25
oct speed 0.25 oct speed 0.25
oct decel 0.25
drive oct [expr abs($range/2.0)] drive oct [expr abs($range/2.0)]
oct speed $spd oct speed $spd
oct accel $spd oct accel [expr $spd*5]
oct decel [expr $spd*5]
oct maxretry 0 oct maxretry 0
} msg
clientput $msg
} }
# SimpleRun # SimpleRun
command SimpleRun { command SimpleRun {
@@ -31,12 +35,12 @@ float=0:inf steptime
int=1:inf numsteps int=1:inf numsteps
} { } {
RadCollOff # RadCollOff
histmem mode time histmem mode time
histmem preset $steptime histmem preset $steptime
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
histmem start block hmm countblock
save $i save $i
} }
} }
@@ -49,13 +53,13 @@ int=1:inf numsteps
float=0:inf steptime float=0:inf steptime
} { } {
RadCollOff # RadCollOff
histmem mode time histmem mode time
histmem preset $steptime histmem preset $steptime
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
histmem start block hmm countblock
save $i save $i
} }
} }
@@ -65,14 +69,16 @@ int=1:inf oscno
int=1:inf reps int=1:inf reps
} { } {
RadCollOn $oscno # RadCollOn $oscno
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
for {set i 0} {$i < $reps} {incr i} { for {set i 0} {$i < $reps} {incr i} {
histmem start block oscmd start $oscno
hmm countblock
save $i save $i
} }
RadCollOff oscmd stop
# RadCollOff
} }
# RadCollTimed # RadCollTimed
command RadCollTimed { command RadCollTimed {
@@ -105,15 +111,17 @@ int=1:inf numsteps
int=1:inf oscno int=1:inf oscno
} { } {
RadCollOn $oscno # RadCollOn $oscno
histmem mode unlimited histmem mode unlimited
newfile HISTOGRAM_XY newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} { for {set i 0} {$i < $numsteps} {incr i} {
drive $motor [expr $i*$step+$start] drive $motor [expr $i*$step+$start]
histmem start block oscmd start $oscno
hmm countblock
save $i save $i
} }
RadCollOff # RadCollOff
oscmd stop
} }
} }
namespace import ::ajscmds::* 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 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 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 {
# Default to std_968x128 # Default to std_968x128
FAT_TABLE -set MULTI_HOST_HISTO_STITCH_OVERLAP 8 MULTI_HOST_HISTO_JOIN_STITCH_ORDER INVERTED 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. # 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 { } { proc histmem_period_single { } {
# Because bugs may not yet have been corrected in hmm_configuration_common_1.tcl, # Because bugs may not yet have been corrected in hmm_configuration_common_1.tcl,
# apply the default settings before attempting del/clear. # apply the default settings before attempting del/clear.
global nos_periods global n_periods
set nos_periods 1 set n_periods 1
FAT_TABLE -set NOS_PERIODS 1 FAT_TABLE -set NOS_PERIODS 1
FAT_TABLE -del NOS_PERIODS # 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 0 NO_REPEAT_TABLE 0 NO_EXECUTE_TABLE 0
BAT_TABLE -clear 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 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. # Note - sequence needs to be at least 2 periods.
global nos_periods # global n_periods
set nos_periods $Np # set n_periods $Np
FAT_TABLE -set NOS_PERIODS $Np # set fatstr "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 # 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 Publish histmem_period_sequence User
proc histmem_save_period_sequence { } { proc histmem_save_period_sequence { } {
global nos_periods global n_periods
newfile HISTOGRAM_XYT open_hist_file
for { set i 0 } { $i < $nos_periods } { incr i } { for { set i 0 } { $i < $n_periods } { incr i } {
hmm configure read_data_period_number $i # hmm configure read_data_period_number $i
save $i save $i
} }
} }
@@ -42,6 +98,7 @@ proc histmem_period_strobo {Freq Bins} {
# OAT_TABLE -set T { 0 $bintime } NTC $Bins # OAT_TABLE -set T { 0 $bintime } NTC $Bins
eval $oatstr eval $oatstr
histmem loadconf histmem loadconf
histset_XYT
} }
Publish histmem_period_strobo User Publish histmem_period_strobo User
@@ -49,6 +106,7 @@ proc histmem_strobo_off {} {
histmem fsrce INTERNAL histmem fsrce INTERNAL
OAT_TABLE -set T { 0 200000 } NTC 1 OAT_TABLE -set T { 0 200000 } NTC 1
histmem loadconf histmem loadconf
histset_XY
} }
Publish histmem_strobo_off User Publish histmem_strobo_off User
@@ -69,8 +127,8 @@ proc histmem_acquire_period_sequence { Np Nf } {
# clientput "tc1 reading is: " [tc1 get] # clientput "tc1 reading is: " [tc1 get]
global nos_periods global n_periods
for { set i 0 } { $i < $nos_periods } { incr i } { for { set i 0 } { $i < $n_periods } { incr i } {
# after $dlytime # after $dlytime
# set current_period -1 # set current_period -1
# while { $current_period < $i } { # while { $current_period < $i } {

View File

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

View File

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

View File

@@ -1,5 +1,5 @@
# $Revision: 1.31 $ # $Revision: 1.32 $
# $Date: 2009-11-24 22:56:46 $ # $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au) # Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $ # Last revision by: $Author: ffr $
@@ -18,7 +18,6 @@ source server_config.tcl
# INSTRUMENT SPECIFIC CONFIGURATION # INSTRUMENT SPECIFIC CONFIGURATION
fileeval $cfPath(motors)/motor_configuration.tcl fileeval $cfPath(motors)/motor_configuration.tcl
source instrument_vars.tcl source instrument_vars.tcl
fileeval $cfPath(source)/source.tcl fileeval $cfPath(source)/source.tcl
@@ -38,9 +37,21 @@ fileeval $cfPath(anticollider)/anticollider.tcl
fileeval $cfPath(hmm)/hmm_rapid.tcl fileeval $cfPath(hmm)/hmm_rapid.tcl
source gumxml.tcl source gumxml.tcl
::environment::temperature::add_ls340 tc1 1
::environment::temperature::add_ls340 tc2 2 # Drivers for Lakeshore Temperature Controller
#::environment::temperature::add_west400 # 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 server_init
########################################### ###########################################
# WARNING: Do not add any code below server_init, if you do SICS may fail to initialise properly. # WARNING: Do not add any code below server_init, if you do SICS may fail to initialise properly.

View File

@@ -3,6 +3,7 @@ config/anticollider/anticollider_common.tcl
config/plc/plc_common_1.tcl config/plc/plc_common_1.tcl
config/counter/counter_common_1.tcl config/counter/counter_common_1.tcl
config/environment/temperature/sct_lakeshore_3xx.tcl config/environment/temperature/sct_lakeshore_3xx.tcl
config/environment/magneticField/sct_bruker_BEC1.tcl
config/hipadaba/hipadaba_configuration_common.tcl config/hipadaba/hipadaba_configuration_common.tcl
config/hipadaba/common_instrument_dictionary.tcl config/hipadaba/common_instrument_dictionary.tcl
config/hipadaba/instdict_specification.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 bs beamstop, 1,2,3,4,5 or 6
# @param bx beam position in detector coordinates # @param bx beam position in detector coordinates
# @param bz 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 # Given
# (Xb,Zb) = beam position in frame coordinates # (Xbf,Zbf) = beam pos in frame coords
# bx = beam x pos in detector coordinates # (Xbd,Zbd) = beam pos in detector coords
# bz = beam z pos in detector coordinates # (Xbbs, Zbbs) = beam pos in beamstop coords
# detoff = detector x pos in detector coordinates # (Xdf,Zdf) = detector pos in frame coords
# bsx = beamstop x pos in beamstop coordinates # (Xbsf,Zbsf) = beamstop pos in frame coords
# bsz = beamstop z pos in beamstop coordinates #
# bszo = beamstop z origin relative to frame # (Xbf,Zbf) = (Xdf+Xbd, Zdf+Zbd) = (Xbsf+Xbbs, Zbsf+Zbbs)
# (bx+detoff, bz) = (Xb,Zb) # Origin of detector coords = frame origin
# (bsx, bsz+bszo) = (Xb,Zb) #
# 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"}} { proc selbs {bs {bx "UNDEF"} {bz "UNDEF"}} {
set bsdriving false set bsdriving false
set dethw [expr {[SplitReply detector_active_height_mm]/2.0}] set dethw [expr {[SplitReply [detector_active_height_mm]]/2.0}]
set dethh [expr {[SplitReply detector_active_width_mm]/2.0}] set dethh [expr {[SplitReply [detector_active_width_mm]]/2.0}]
set bsxo -33.112 + $dethw set Xbsf [expr -31.749 + $dethw]
set bszo -329.440 + $dethh 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 { if [ catch {
switch $bs { switch $bs {
"1" { "1" {
set bsmot "bs1" set bsmot "bs1"
set bs_target 92.79 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" { "2" {
set bsmot "bs2" set bsmot "bs2"
set bs_target 86.20 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" { "3" {
set bsmot "bs3" set bsmot "bs3"
set bs_target 92.54 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" { "4" {
set bsmot "bs4" set bsmot "bs4"
set bs_target 86.66 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" { "5" {
set bsmot "bs5" set bsmot "bs5"
set bs_target 92.50 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" { "6" {
set bsmot "bs6" set bsmot "bs6"
set bs_target 85.87 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 { default {
error "beamstop selection must be an integer from 1 to 6" 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"} { if {$bx == "UNDEF" || $bz == "UNDEF"} {
statemon start selbs statemon start selbs
set bsdriving true set bsdriving true
drive $bsmot $bs_target
BeamStop -1 BeamStop -1
drive $bsmot $bs_target
eval $bsdownCmd eval $bsdownCmd
BeamStop $bs BeamStop $bs
set bsdriving false set bsdriving false
@@ -88,13 +105,13 @@ proc selbs {bs {bx "UNDEF"} {bz "UNDEF"}} {
error "beam coordinates must be floats" error "beam coordinates must be floats"
} }
} }
set bsx_target [expr {$bx-$bsxo+$detoff_val}] set bsx_target [expr {$bx-$Xbsf+$detoff_val}]
set bsz_target [expr {$bz-$bszo}] set bsz_target [expr {$bz-$Zbsf}]
statemon start selbs statemon start selbs
set bsdriving true set bsdriving true
drive $bsmot $bs_target bsx $bsx_target bsz $bsz_target
BeamStop -1 BeamStop -1
drive $bsmot $bs_target bsx $bsx_target bsz $bsz_target
eval $bsdownCmd eval $bsdownCmd
BeamStop $bs BeamStop $bs
set bsdriving false set bsdriving false

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
# Some useful functions for SICS configuration. # Some useful functions for SICS configuration.
# $Revision: 1.22 $ # $Revision: 1.23 $
# $Date: 2009-11-24 22:56:49 $ # $Date: 2009-12-09 06:07:45 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au) # Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $ # Last revision by $Author: ffr $
@@ -871,6 +871,47 @@ proc hsibPath {sibling} {
} }
proc hsibPath {sibling} { proc hsibPath {sibling} {
set hpath [sct] 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::*; namespace import ::utility::*;