Merge branch 'master' of gitlab.psi.ch-samenv:samenv/sea
This commit is contained in:
@ -798,13 +798,13 @@ proc dil12::autostep {phase init} {
|
|||||||
}
|
}
|
||||||
dil12::check_cool_button
|
dil12::check_cool_button
|
||||||
if {[result dil p1] < [hvali [sct]/p1low] && [result dil g1] < 5 &&
|
if {[result dil p1] < [hvali [sct]/p1low] && [result dil g1] < 5 &&
|
||||||
[result dil p2] < [hvali [sct]/p2low] && [result dil v6pos] > 99} {
|
[result dil p2] < [hvali [sct]/p2low] && [result dil v6pos] > 50} {
|
||||||
if {[sct pumptime] == 0} {
|
if {[sct pumptime] == 0} {
|
||||||
dil12::openvalves v5a v2a v7 v2 v1 v6 v5 v3 vb_open
|
dil12::openvalves v5a v2a v7 v2 v1 v6 v5 v3 vb_open
|
||||||
dil v4a 1
|
dil v4a 1
|
||||||
sct pumptime [expr [DoubleTime] + 105]
|
sct pumptime [expr [DoubleTime] + 105]
|
||||||
dil12::msg "pump for 2 more minutes"
|
dil12::msg "pump for 2 more minutes"
|
||||||
} elseif {[DoubleTime] > [sct pumptime]} {
|
} elseif {[DoubleTime] > [sct pumptime] && [result dil v6pos] > 99} {
|
||||||
# do not check for vb/vm here, as the user already might manipulate the valves
|
# do not check for vb/vm here, as the user already might manipulate the valves
|
||||||
dil12::openvalves v1 v6 v3 v5
|
dil12::openvalves v1 v6 v3 v5
|
||||||
dil v4a 0
|
dil v4a 0
|
||||||
|
@ -27,8 +27,20 @@ proc stdConfig::heliox {} {
|
|||||||
|
|
||||||
node pot_state -text upd
|
node pot_state -text upd
|
||||||
|
|
||||||
node target_hours par 60
|
node target_hours par 48
|
||||||
prop help "how many hours the pot should last (< 75)"
|
prop help "how many hours the pot should last (< 75)"
|
||||||
|
|
||||||
|
node holdflow out
|
||||||
|
default 1.5
|
||||||
|
prop check heliox::check_holdflow
|
||||||
|
prop help "flow for holding pressure"
|
||||||
|
prop write stdSct::complete
|
||||||
|
|
||||||
|
node condenseflow out
|
||||||
|
default 3
|
||||||
|
prop check heliox::check_condenseflow
|
||||||
|
prop help "flow for condensing"
|
||||||
|
prop write stdSct::complete
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
hsetprop /tt getsample hvali /th/pot
|
hsetprop /tt getsample hvali /th/pot
|
||||||
@ -67,7 +79,7 @@ proc heliox::check_set {} {
|
|||||||
set mainsensor /th/pot
|
set mainsensor /th/pot
|
||||||
switch [sctval [sct]/mode] {
|
switch [sctval [sct]/mode] {
|
||||||
1 {
|
1 {
|
||||||
nv set 2.5
|
nv set [hvali [sct]/holdflow]
|
||||||
th setsorb/channel C
|
th setsorb/channel C
|
||||||
th setsorb 20
|
th setsorb 20
|
||||||
th mainloop set
|
th mainloop set
|
||||||
@ -75,7 +87,7 @@ proc heliox::check_set {} {
|
|||||||
run tt [sct target]
|
run tt [sct target]
|
||||||
}
|
}
|
||||||
2 {
|
2 {
|
||||||
nv set 2.5
|
nv set [hvali [sct]/holdflow]
|
||||||
th setsorb/channel C
|
th setsorb/channel C
|
||||||
th setsorb 20
|
th setsorb 20
|
||||||
th mainloop set
|
th mainloop set
|
||||||
@ -84,7 +96,7 @@ proc heliox::check_set {} {
|
|||||||
th set [sct target]
|
th set [sct target]
|
||||||
}
|
}
|
||||||
3 {
|
3 {
|
||||||
nv set 2.5
|
nv set [hvali [sct]/holdflow]
|
||||||
th setsorb/channel B
|
th setsorb/channel B
|
||||||
th mainloop setsorb
|
th mainloop setsorb
|
||||||
th set 0
|
th set 0
|
||||||
@ -129,7 +141,7 @@ proc heliox::check_mode {} {
|
|||||||
0 {
|
0 {
|
||||||
}
|
}
|
||||||
1 {
|
1 {
|
||||||
nv set 2.5
|
nv set [hvali [sct parent]/holdflow]
|
||||||
if {[sct target] != [hvali [sct]]} {
|
if {[sct target] != [hvali [sct]]} {
|
||||||
th set [hvali /th/target]
|
th set [hvali /th/target]
|
||||||
}
|
}
|
||||||
@ -139,7 +151,7 @@ proc heliox::check_mode {} {
|
|||||||
set state "hi-T mode"
|
set state "hi-T mode"
|
||||||
}
|
}
|
||||||
2 {
|
2 {
|
||||||
nv set 2.5
|
nv set [hvali [sct parent]/holdflow]
|
||||||
if {[sct target] != [hvali [sct]]} {
|
if {[sct target] != [hvali [sct]]} {
|
||||||
th set [hvali /th/target]
|
th set [hvali /th/target]
|
||||||
}
|
}
|
||||||
@ -149,7 +161,7 @@ proc heliox::check_mode {} {
|
|||||||
set state "mid-T mode"
|
set state "mid-T mode"
|
||||||
}
|
}
|
||||||
3 {
|
3 {
|
||||||
nv set 2.5
|
nv set [hvali [sct parent]/holdflow]
|
||||||
if {[hvali [sct parent]/lasts_until] > [DoubleTime]} {
|
if {[hvali [sct parent]/lasts_until] > [DoubleTime]} {
|
||||||
th set 0
|
th set 0
|
||||||
th setsorb/channel B
|
th setsorb/channel B
|
||||||
@ -181,6 +193,20 @@ proc heliox::check_mode {} {
|
|||||||
sct update [sct target]
|
sct update [sct target]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc heliox::check_condenseflow {} {
|
||||||
|
if {[sctval [sct parent]/mode] == 4} {
|
||||||
|
nv set [sct target]
|
||||||
|
}
|
||||||
|
sct update [sct target]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc heliox::check_holdflow {} {
|
||||||
|
if {[sctval [sct parent]/mode] != 4} {
|
||||||
|
nv set [sct target]
|
||||||
|
}
|
||||||
|
sct update [sct target]
|
||||||
|
}
|
||||||
|
|
||||||
proc heliox::complete {} {
|
proc heliox::complete {} {
|
||||||
sct print [lindex {undefined "hi-T mode" "mid-T mode" "low-T mode" "-> condense"} [sct target]]
|
sct print [lindex {undefined "hi-T mode" "mid-T mode" "low-T mode" "-> condense"} [sct target]]
|
||||||
return idle
|
return idle
|
||||||
@ -218,11 +244,11 @@ proc heliox::read {} {
|
|||||||
}
|
}
|
||||||
if {[hvali [sct]] == 4} {
|
if {[hvali [sct]] == 4} {
|
||||||
if {$ts > 3} {
|
if {$ts > 3} {
|
||||||
nv set 4
|
nv set [hvali [sct parent]/condenseflow]
|
||||||
set lasts_until 0
|
set lasts_until 0
|
||||||
sct condense_deadline [expr $now + 36000] # timeout: should be 3600
|
sct condense_deadline [expr $now + 36000] # timeout: should be 3600
|
||||||
} elseif {[result th sorb] > 39} {
|
} elseif {[result th sorb] > 39} {
|
||||||
nv set 4
|
nv set [hvali [sct parent]/condenseflow]
|
||||||
# 3He vapor pressure: 200 mbar at 2 K, power law
|
# 3He vapor pressure: 200 mbar at 2 K, power law
|
||||||
set p [expr 200 * ($ts / 2.0) ** 3.5]
|
set p [expr 200 * ($ts / 2.0) ** 3.5]
|
||||||
# dump pressure at condensation start
|
# dump pressure at condensation start
|
||||||
@ -244,8 +270,9 @@ proc heliox::read {} {
|
|||||||
th setsorb/channel B
|
th setsorb/channel B
|
||||||
th mainloop setsorb
|
th mainloop setsorb
|
||||||
th setsorb [silent 0.25 hgetpropval [sct parent] goto]
|
th setsorb [silent 0.25 hgetpropval [sct parent] goto]
|
||||||
sct update 3
|
# switch to lowT and trigger check_mode
|
||||||
nv set 2.5
|
hset [sct] 3
|
||||||
|
nv set [hvali [sct parent]/holdflow]
|
||||||
clientput "the 3He pot [hvali [sct parent]/pot_state]"
|
clientput "the 3He pot [hvali [sct parent]/pot_state]"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -303,7 +303,7 @@ proc ipsmag::update_leads {{n_of_slaves 3}} {
|
|||||||
set msg "slave currents ($currents) are not within $mincur .. $maxcur"
|
set msg "slave currents ($currents) are not within $mincur .. $maxcur"
|
||||||
hupdate [sct objectPath]/status $msg
|
hupdate [sct objectPath]/status $msg
|
||||||
if {$status eq ""} {
|
if {$status eq ""} {
|
||||||
# clientlog "ERROR: $msg"
|
clientlog "WARNING: $msg"
|
||||||
}
|
}
|
||||||
} elseif {[string match {slave currents *} $status]} {
|
} elseif {[string match {slave currents *} $status]} {
|
||||||
hupdate [sct objectPath]/status ""
|
hupdate [sct objectPath]/status ""
|
||||||
|
Reference in New Issue
Block a user