Merge branch 'RELEASE-3_1' into RELEASE-3_2

Conflicts:
	sics/site_ansto/instrument/dingo/dingo_configuration.tcl
	sics/site_ansto/instrument/hipd/wombat_configuration.tcl
	sics/site_ansto/instrument/kookaburra/kookaburra_configuration.tcl
	sics/site_ansto/instrument/reflectometer/platypus_configuration.tcl
	sics/site_ansto/instrument/sans/quokka_configuration.tcl
This commit is contained in:
Douglas Clowes
2015-03-13 15:44:32 +11:00
20 changed files with 1121 additions and 430 deletions

View File

@@ -0,0 +1,166 @@
# cf commands for driving sample environment
# ajs feb 2015
# cf namespace
# assumes tc1 and tc2 are the cf8 336 and 340 lakeshores for now
namespace eval cf {
variable wall_lag 10
variable wall_max 300
variable sample_tolerance 5
variable wall_tolerance 5
variable wall_set true
variable base_set true
variable base_control true
variable wall_control true
proc UseWall {_wall_set _wall_control} {
variable wall_set
variable wall_control
if {$_wall_set == false} {set wall_set false} else {set wall_set true}
if {$_wall_control == false} {set wall_control false} else {set wall_control true}
}
proc UseBase {_base_set _base_control} {
variable base_set
variable base_control
if {$_base_set == false} {set base_set false} else {set base_set true}
if {$_base_control == false} {set base_control false} else {set base_control true}
}
proc WallParams {_wall_lag _wall_max _wall_tolerance} {
variable wall_lag
variable wall_max
variable wall_tolerance
set wall_lag $_wall_lag
set wall_max $_wall_max
set wall_tolerance $_wall_tolerance
hset /sample/tc2/control/tolerance1 $wall_tolerance
}
proc TempSet {temp} {
variable wall_lag
variable wall_max
variable base_set
variable wall_set
set tempc [expr {$temp - $wall_lag}]
if {$tempc < 4} {set tempc 4}
if {$tempc > $wall_max} {set tempc $wall_max}
hset /sample/tc1/sensor/setpoint1 $temp
if {$base_set} {hset /sample/tc1/sensor/setpoint2 $tempc}
if {$wall_set} {hset /sample/tc2/sensor/setpoint1 $tempc}
}
proc TempDrive {temp} {
variable wall_lag
variable wall_max
variable base_control
variable wall_control
TempSet $temp
set tempc [expr {$temp - $wall_lag}]
if {$tempc < 4} {set tempc 4}
if {$tempc > $wall_max} {set tempc $wall_max}
set drstr "drive tc1_driveable \$temp"
if {$base_control} {append drstr " tc1_driveable2 \$tempc"}
if {$wall_control} {append drstr " tc2_driveable \$tempc"}
eval $drstr
}
proc Tolerance {sample} {
hset /sample/tc1/control/tolerance1 $sample
hset /sample/tc1/control/tolerance2 $sample
}
proc MakeCold {} {
variable sample_tolerance
variable wall_tolerance
Tolerance 20
hset /sample/tc2/control/tolerance1 20
hset /sample/tc2/sensor/setpoint1 4
TempDrive 4
Tolerance $sample_tolerance
hset /sample/tc2/control/tolerance1 $wall_tolerance
wait 300
}
proc TempRun {temp delay numsteps oscno} {
TempDrive $temp
wait $delay
newfile HISTOGRAM_XY
for {set i 0} {$i < $numsteps} {incr i} {
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
}
}
proc RampRun {start step fin oscno delay} {
histmem mode unlimited
newfile HISTOGRAM_XY
set loopvar 1
set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
TempSet $j
wait $delay
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
}
}
proc StepRun {start step fin oscno delay} {
histmem mode unlimited
newfile HISTOGRAM_XY
set loopvar 1
set i 0
while {$loopvar} {
set j [expr {$i*$step+$start}]
if {$j> $fin && $step > 0} {break}
if {$j< $fin && $step < 0} {break}
TempDrive $j
wait $delay
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
incr i
}
}
proc HeaterOn {} {
variable base_set
variable wall_set
hset /sample/tc1/heater/heaterRange_1 4
if {$base_set} {hset /sample/tc1/heater/heaterRange_2 4}
if {$wall_set} {hset /sample/tc2/heater/heaterRange 5}
}
proc GetTemp {} {
variable base_set
set t1top [hget /sample/tc1/sensor/sensorValueA]
broadcast "sample top : $t1top"
if {$base_set} {
set t1base [hget /sample/tc1/sensor/sensorValueB]
broadcast "sample base: $t1base"
}
set t1wall [hget /sample/tc2/sensor/sensorValueA]
broadcast "sample wall: $t1wall"
}
namespace export *
namespace ensemble create
}
publish cf user

View File

@@ -0,0 +1,109 @@
proc SetVoltPosStep {steps} {
# set llen 16384
# set steplen [expr{int($llen/(2*$steps))}]
# set phaselen
set l {}
for {set i 0} {$i < $steps} {incr i} {
lappend l [expr {($i*2.0/$steps)-1.0}]
}
for {set i $steps} {$i > 0} {incr i -1} {
lappend l [expr {($i*2.0/$steps)-1.0}]
}
set s "DATA VOLATILE, "
for {set i 0} {$i < [expr {[llength $l] -1}]} {incr i} {
append s [format "%1.3f" [lindex $l $i]] ","
}
append s [format "%1.3f" [lindex $l [expr {[llength $l] -1}]]]
sct_pulser send $s
broadcast $s
}
proc SetVoltBiStep {steps} {
set l {}
for {set i 0} {$i < $steps} {incr i} {
lappend l [expr {$i*1.0/$steps}]
}
for {set i $steps} {$i > [expr {$steps * -1}]} {incr i -1} {
lappend l [expr {$i*1.0/$steps}]
}
for {set i [expr {$steps * -1}]} {$i < 0} {incr i} {
lappend l [expr {$i*1.0/$steps}]
}
set s "DATA VOLATILE, "
for {set i 0} {$i < [expr {[llength $l] -1}]} {incr i} {
append s [format "%1.3f" [lindex $l $i]] ","
}
append s [format "%1.3f" [lindex $l [expr {[llength $l] -1}]]]
sct_pulser send $s
broadcast $s
}
proc VoltPosStep {volt freq voltsteps} {
PulserOff
newfile HISTOGRAM_XYT
SetVoltPosStep $voltsteps
sct_pulser send "VOLT:LOW [VoltScale 0.0]; LOW?"
sct_pulser send "VOLT:HIGH [VoltScale [expr {$volt*1.0}]]; HIGH?"
sct_pulser send "FREQ $freq;:FREQ?"
sct_pulser send "FUNC: USER VOLATILE"
sct_pulser send "FUNC USER"
}
proc UniZigTexture {motor mstart mstep mnum volt freq vstep binmult oscno} {
histmem mode unlimited
newfile HISTOGRAM_XYT
set bins [expr {$vstep * 2 * $binmult}]
histmem_period_strobo $freq $bins
wait 3
# set pulservolt [VoltScale [expr {$volt*1.0}]]
# set pulseroffs [VoltScale [expr {$volt*0.5}]]
VoltPosStep $volt $freq $vstep
PulserOn
for {set i 0} {$i < $mnum} {incr i} {
drive $motor [expr $i*$mstep+$mstart]
oct oscillate_count $oscno
oct oscillate start
hmm countblock
save $i
}
PulserOff
}
proc VoltBiStep {volt freq steps} {
PulserOff
newfile HISTOGRAM_XYT
SetVoltBiStep $steps
sct_pulser send "VOLT:LOW [VoltScale [expr {$volt*-1.0}]; LOW?"
sct_pulser send "VOLT:HIGH [VoltScale [expr {$volt*1.0}]; HIGH?"
sct_pulser send "FREQ $freq;:FREQ?"
sct_pulser send "FUNC: USER VOLATILE"
sct_pulser send "FUNC USER"
set bins [expr {$steps * 4}]
histmem_period_strobo $freq $bins
wait 3
PulserOn
oct oscillate_count $oscno
oct oscillate start
save 0
}
publish SetVoltPosStep user
publish SetVoltBiStep user
publish UniZigTexture user
publish VoltPosStep user
publish VoltBiStep user

View File

@@ -28,7 +28,7 @@ proc ::histogram_memory::init_OAT_TABLE {args} {
hmm configure fat_frame_source INTERNAL
# set resolution "double_x"
set resolution "double_x"
switch $resolution {
"hires" {

View File

@@ -117,7 +117,7 @@ if { [ info exists ::config_dict ] } {
set implementation [ dict get $::config_dict sample_stage implementation ]
if {$implementation == "normal_sample_stage"} {
set axis_config 0
} elseif {$implementation == "eularian_cradle"} {
} elseif {$implementation == "eulerian_cradle"} {
set axis_config 1
} elseif {$implementation == "small_omega"} {
set axis_config 2
@@ -293,7 +293,7 @@ Motor mom $motor_driver_type [params \
absEnc 1\
absEncHome $mom_Home\
cntsPerX -2048]
setHomeandRange -motor mom -home 59.5066 -lowrange 5 -uprange 165
setHomeandRange -motor mom -home 0 -lowrange 5 -uprange 165
#setHomeandRange -motor mom -home 60.08 -lowrange 5 -uprange 165
mom speed 1
mom movecount $move_count
@@ -417,7 +417,7 @@ oct long_name oct
############################
#
set mf_config 1
set mf_config 2
switch $mf_config {

View File

@@ -1,5 +1,5 @@
[12tmagnet_setup]
cascade = B1:12tmagnet_oxford,sample_stage:12tmagnet_sample_insert,T1:mercury_scpi_01
cascade = B1:12tmagnet_oxford,sample_stage:12tmagnet_sample_insert,T1:mercury_01
enabled = False
[Autolab_setup]
cascade = sample_stage:normal_sample_stage,I1:protek_01,V1:protek_02
@@ -7,12 +7,18 @@ enabled = False
[CF1]
cascade = T1:CF1_ls340,sample_stage:normal_sample_stage
enabled = False
[CF7]
cascade = T1:ls336_08,T2:ls336_05,sample_stage:normal_sample_stage
enabled = False
[CF8]
cascade = T1:ls336_01,T2:ls340_11,sample_stage:normal_sample_stage
enabled = False
[Default]
cascade = sample_stage:normal_sample_stage
enabled = True
[F5 Low Temperature Vacuum Furnace]
cascade = T1:eurotherm,sample_stage:normal_sample_stage
enabled = False
[B1]
datype = B
enabled = False
@@ -27,6 +33,13 @@ id = 1
implementation = none
name = pulser
optype = function_generator
[HE3]
datype = X
enabled = False
id = 1
implementation = none
name = he3
optype = polariser
[I1]
datype = I
enabled = False
@@ -131,12 +144,53 @@ desc = "Function Generator"
driver = agilent_33220A
imptype = function_generator
ip = 10.157.205.16
name = pulser
port = 5025
[eularian_cradle]
[eulerian_cradle]
desc = "Load the Eulerian cradle configuration"
imptype = motion_axis
[eurotherm]
asyncprotocol = "modbus_ap"
desc = "Eurotherm temperature controller"
dev_id = 1
driver = "eurotherm_3200"
imptype = temperature
ip = 10.157.205.19
port = 502
tol = 1.0
[he3_analyser]
desc = "3He Analyser"
driver = "he3_polanal"
has_anal = true
has_pol = false
imptype = polariser
ip = 10.157.205.2
port = 55013
terminator = \r\n
[he3_both]
desc = "3He Pol+Anal"
driver = "he3_polanal"
has_anal = true
has_pol = true
imptype = polariser
ip = 10.157.205.2
port = 55013
terminator = \r\n
[he3_polariser]
desc = "3He Polariser"
driver = "he3_polanal"
has_anal = false
has_pol = true
imptype = polariser
ip = 10.157.205.2
port = 55013
terminator = \r\n
[ls336_01]
asyncqueue = sct
desc = "Lakeshore 336 temperature controller"
@@ -175,7 +229,7 @@ asyncqueue = sct
desc = "Lakeshore 336 temperature controller"
driver = "ls336"
imptype = temperature
ip = 137.157.201.21
ip = 10.157.205.54
port = 7777
terminator = \r\n
tol1 = 1.0
@@ -186,7 +240,28 @@ asyncqueue = sct
desc = "Lakeshore 336 temperature controller"
driver = "ls336"
imptype = temperature
ip = 10.157.205.30
ip = 10.157.205.61
port = 7777
terminator = \r\n
tol1 = 1.0
tol2 = 1.0
[ls336_08]
asyncqueue = sct
desc = "Lakeshore 336 temperature controller"
driver = "ls336"
imptype = temperature
ip = 10.157.205.55
port = 7777
terminator = \r\n
tol1 = 1.0
tol2 = 1.0
[ls336_10]
desc = "Lakeshore 336 temperature controller"
driver = "ls336"
imptype = temperature
ip = 10.157.205.26
port = 7777
terminator = \r\n
tol1 = 1.0
@@ -263,6 +338,7 @@ ip = 10.157.205.5
port = 7020
ptol = 5
terminator = \n
timeout = 2000
ttol = 1.0
vtol = 5
@@ -276,6 +352,7 @@ ip = 10.157.205.46
port = 7020
ptol = 5
terminator = \n
timeout = 2000
ttol = 1.0
vtol = 5
@@ -289,6 +366,7 @@ ip = 10.157.205.47
port = 7020
ptol = 5
terminator = \n
timeout = 2000
ttol = 1.0
vtol = 5
@@ -316,7 +394,7 @@ port = 4001
desc = "Load the small omega configuration"
imptype = motion_axis
[vf1_west4100]
[vf1_west6100]
asyncprotocol = modbus_ap
desc = "VF1 Blue furnace temperature controller"
dev_id = 1
@@ -325,7 +403,7 @@ imptype = temperature
ip = 10.157.205.24
port = 502
[vf2_west4100]
[vf2_west6100]
asyncprotocol = modbus_ap
desc = "VF2 Blue furnace temperature controller"
dev_id = 1

View File

@@ -63,13 +63,14 @@ fileeval $cfPath(commands)/hvcommands.tcl
fileeval $cfPath(commands)/vactex.tcl
fileeval $cfPath(commands)/eulerscan.tcl
fileeval $cfPath(commands)/cfcommands.tcl
fileeval $cfPath(commands)/hvsteps.tcl
fileeval $cfPath(anticollider)/anticollider.tcl
fileeval $cfPath(beamline)/sct_he3_polanal.tcl
fileeval $cfPath(hmm)/hmm_rapid.tcl
source gumxml.tcl
# Wombat only change to hvcommands' scaleval variable
SetVoltScale 2000.0
SetVoltScale 1000.0
# The Alice Thing