Merge branch 'master' of gitlab.psi.ch-samenv:samenv/sea

This commit is contained in:
2023-07-04 08:45:29 +02:00
24 changed files with 85 additions and 48 deletions

1
.gitignore vendored
View File

@ -44,3 +44,4 @@ cheat_chart
tcl/stuff_before_2022
SeaServer
GraphServer
tcl/calcurves

6
tcl/attocube.addon Normal file
View File

@ -0,0 +1,6 @@
addonDesc = atto cube
set ::secop_version 4
makenv frappy_addons -driver secop

View File

@ -546,7 +546,7 @@ proc ccu4flow::ctrl {} {
} elseif {$now < $lastim + $period} {
# wait
} else {
set slope [expr 0.01 + abs($dif) * $period / [hvali [sct]/ctrl/deriv$_dir]]
set slope [expr 0.00 + abs($dif) * $period / [hvali [sct]/ctrl/deriv$_dir]]
set totalmin ""
set ddif [format %.2f [expr -($dif - [sct olddif]) * [sct dir]]]
sct filtered_ddif [expr max(0,[silent 0 sct filtered_ddif] * 0.9 + $ddif * 0.1)]

View File

@ -257,6 +257,9 @@ proc stdConfig::dil12 args {
prop label "remove mixture status"
prop check dil12::check_removephase
prop write stdSct::completeUpdate
node ignore_vti_temp -int par 0
prop enum 1
}
}
hset $name/heatermode 0
@ -992,10 +995,15 @@ proc dil12::autostep {phase init} {
dil12::openvalves v1 v6 v12 v13 vm_open
sorb mode 0
dil12::set_VtiT 1.25
hset [sct]/onekstate 0
nv set [silent 5 hvali [sct]/circulateflow]
nv 2 ;# auto
if {[hval [sct]/ignore_vti_temp]} {
dil12::set_VtiT 0
nv 1 ;# controlled
} else {
dil12::set_VtiT 1.25
nv 2 ;# auto
}
dil12::msg ""
}
circulate {
@ -1034,7 +1042,11 @@ proc dil12::autostep {phase init} {
sct optimize [clock seconds]
clientput "reduced VTI flow to [hvali [sct]/circulateflow]"
nv set $circulateflow
nv 2 ;# auto
if {[hval [sct]/ignore_vti_temp]} {
nv 1 ;# controlled
} else {
nv 2 ;# auto
}
}
}
}

View File

@ -177,7 +177,7 @@ proc hepump::read {} {
sct health_cnt [expr [sct health_cnt] + 1]
if {[sct health_cnt] == 10} {
if {$health > 100} {set health 100}
catch {prep0 / "pump_health_update [result instrument] [format %.0f $health]"} msg
catch {prep0 / pump_health_update [result instrument] [format %.0f $health]} msg
}
}
} else {
@ -204,7 +204,7 @@ proc hepump::check_valve {} {
}
proc hepump::set_valve {} {
if {[sctval [sct parent]] != 0} return
if {[sctval [sct parent]] % 8 != 0} {return idle}
set val [hvali [sct]]
if {[sct target] < 2} {
if {[hvali [sct parent]/[sct @motname]/encoder] > 20} {
@ -238,7 +238,7 @@ proc hepump::slow_close {} {
}
proc hepump::get_valve {} {
if {[sctval [sct parent]] != 0} {return idle}
if {[sctval [sct parent]] % 8 != 0} {return idle}
set p [sct parent]/[sct @motname]
set stat [hgetpropval $p status]
set pos [hvali $p/encoder]
@ -296,7 +296,7 @@ proc hepump::get_valve {} {
}
proc hepump::chk_running {} {
if {[sctval [sct parent]] != 0} return
if {[sctval [sct parent]] % 8 != 0} return
if {[sct target]} {
hset [sct parent]/[sct @motname]/output0 1
} else { # off
@ -314,8 +314,8 @@ proc hepump::chk_running {} {
}
proc hepump::get_running {} {
# only for xds35
if {[sctval [sct parent]] != 0} {return idle}
# only for xds35 and neodry
if {[sctval [sct parent]] % 8 != 0} {return idle}
set running [sctval [sct parent]/[sct @motname]/output0]
set pumpoff [silent 1 hval [sct parent]/[sct @motname]/input3]
@ -361,6 +361,7 @@ proc hepump::get_running {} {
}
proc hepump::set_eco {} {
# xds35 only, not for neodry
if {[sctval [sct parent]] != 0} {return idle}
if {[sct target] != [hvali [sct]]} {
hset [sct parent]/auto 0
@ -374,6 +375,7 @@ proc hepump::set_eco {} {
}
proc hepump::get_eco {} {
# xds35 only, not for neodry
if {[sctval [sct parent]] != 0} {
sct update 0
return idle
@ -385,11 +387,13 @@ proc hepump::get_eco {} {
}
proc hepump::set_auto {} {
# xds35 only, not for neodry
if {[sctval [sct parent]] != 0} {return idle}
sct update [sct target]
}
proc hepump::get_auto {} {
# xds35 only, not for neodry
if {[sctval [sct parent]] != 0} {return idle}
set auto [hvali [sct]]
set oldeco [sctval [sct parent]/eco]

View File

@ -758,7 +758,7 @@ proc secop::update_ {} {
}
error_update {
lassign $val etype erepr
set etext erepr
set etext $erepr
regexp {.*'(.*)'} $erepr -> etext
hsetprop $path geterror "${etype}: $etext"
}

View File

@ -496,10 +496,12 @@ proc trun::read_run {} {
}
set now [DoubleTime]
set tr [silent none sct target]
set prev_tr [silent $tr sct prev_tr]
sct prev_tr $tr
if {$tr eq "none"} {
set tr $tmain
} else {
set dif [expr abs($tr) - [hvali [sct]/target]]
set dif [expr $tr - $prev_tr]
updateval_u [sct]/target $tr 0
set dblmode [silent -1 hval [sct]/dblctrl/mode]
if {$dblmode >= 0} { # not disabled

View File

@ -9,7 +9,7 @@ makenv tt -driver 340_lsc -port @lsc340a {
lsc_sensor t2 D -sensor type-c-k1000 -sensorname t2 -alarm 1805
# lsc_sensor te B -sensor rhfe4140 -sensorname outer -alarm 323
lsc_sensor p A -sensor vacuum -sensorname vacuum
lsc_loop set -loop 1 -channel D -maxheater 0.05A -resist 1000Ohm -linearpower 3000
lsc_loop set -loop 1 -channel C -maxheater 0.05A -resist 1000Ohm -linearpower 3000
hsetprop /tt dblmode disabled
hsetprop /tt/dblctrl visible false
hdelprop /tt/dblctrl group

View File

@ -2,7 +2,7 @@ deviceDesc = CCR with JT-stage
defineTemperature tt
makenv tt -driver [lsdriver] {
makenv tt -driver 336_lsc -port jtccr-ls:7777 {
lsc_sensor main A x63710
lsc_sensor ccr B x67737
lsc_loop set -loop 1 -channel A -maxheater 5W -resist 500Ohm
@ -41,8 +41,6 @@ makenv epc epc8210 -port jtccr-ts:3007 {jt-compressor 1 jt-pump 2 ccr-compressor
#makenv clt -driver loop -invar "/tt" -outvar "v motpos/set" \
# -outmin 0.06 -outmax 0.9 -prop -1 -int 20 -maxdelta 10 -precision 0.01
#makeCCU4 jtccr n2
#makenv n2 n2_ccu ccu
#appendVars n2.upper/K2/N2_Upper n2.lower/K2/N2_Lower

View File

@ -17,13 +17,11 @@ tt set/limit 310
tt set/prop 15
tt set/integ 10
makeCCU4 ma02 nv n2
makeCCU4 ma02 nv n2 he_ilm
hupdate /nv/set 1.2
makeIps -limit 1.8 -startRamp 0.5 -port ma02-ts:3002
makeIlm -channels 1 -port ma02-ts:3001
makeHeFill ccu4ilm
#makeHeFill lev

View File

@ -14,7 +14,7 @@ makenv tt -driver [lsdriver] {
}
tt set/limit 310
makeCCU4 ma10 nv_release_blocked
makeCCU4 ma10 nv_release_blocked he_ilm
hupdate /nv/set 1.8
makenv mf -driver ipsmag -port ma10-ts:3001 -controller _mf
@ -54,7 +54,6 @@ makeN2Fill ccu4ilm {
ln2fill minholdhours 12
ln2fill maxholdhours 96
}
makeHeFill ccu4ilm
# increase motor current
cc mc 75

View File

@ -16,7 +16,7 @@ makenv tt -driver [lsdriver] {
}
tt set/limit 310
makeCCU4 ma11 nv
makeCCU4 ma11 nv he_ilm
hupdate /nv/set 1.5
makeN2Fill ccu4ilm {
ln2fill lowlevel 30
@ -28,7 +28,6 @@ makeN2Fill ccu4ilm {
# appendVars ln2fill.smooth/%/N2smooth/13
}
makeHeFill ccu4ilm
catch {
hefill minfillminutes 20
hefill maxfillminutes 60

View File

@ -15,10 +15,10 @@ tt set/limit 310
makeCCU4 ma15 nv he_ilm
catch {
hupdate /nv/set 1.5
hupdate /nv/set 1
nv ctrl/minpulse_o 0.01
nv ctrl/minpulse_c 0.05
nv tol 0.02
cc mc 75
}
makeIps -limit 14.9 -startRamp 0.31 -port ma15-ts:3002

View File

@ -27,7 +27,6 @@ makeN2Fill ccu4ilm {
ln2fill minholdhours 12
ln2fill maxholdhours 96
}
makeHeFill ccu4ilm
makeIps -limit 6 -startRamp 0.3844 -port ma6-ts:3002
if {[result instrument] eq "tasp"} {

View File

@ -11,7 +11,7 @@ makenv tt -driver [lsdriver] {
}
tt set/limit 310
makeCCU4 ori3 nv n2 he
hupdate /nv/set 1.6
hupdate /nv/set 1.2
source maxi_orange.table

View File

@ -10,7 +10,7 @@ makenv tt -driver [lsdriver] {
}
tt set/limit 310
makeCCU4 ori7 nv n2 he
hupdate /nv/set 1.6
hupdate /nv/set 0.6
nv ctrl/prop_o 0.05
nv ctrl/prop_c 0.03

View File

@ -1,6 +1,6 @@
addonDesc = Pfeiffer Pressure gauge RS232
makenv hvac -driver pfeiffertpg -port ldmse3-ts:3005
makenv hvac -driver pfeiffertpg
GraphAdd hvac mbar ivc blue
GraphAdd hvac mbar hvac blue

View File

@ -292,7 +292,7 @@ proc book_this {caller args} {
}
}
foreach instr [array names ilist] {
$instr / "disconnect_from $caller $ilist($instr)"
$instr / disconnect_from $caller $ilist($instr)
}
}
@ -306,7 +306,7 @@ proc book_confirm {caller args} {
busy_list_add $item $caller
lappend rlist [list $item $caller [silent "" result device_list $caller]]
}
$caller / "reconnect_or_set_busy $rlist"
$caller / reconnect_or_set_busy $rlist
}
proc show_item {item} {
@ -343,7 +343,7 @@ proc show {{key ""}} {
}
lappend table($ins) $item
}
set result "Instrument Device Connections Requests\n"
append result "----------------------------------------------------------------------\n"
foreach instr [lsort [array names table]] {
@ -394,6 +394,8 @@ namespace eval inst_select {
clientput "REORDER web_ports"
set home /home/l_samenv
foreach itm [web_ports items] {
web_ports deleteitem $itm
}
@ -462,6 +464,17 @@ proc mainGroup {} {
Group ports "ports"
}
proc refresh {} {
foreach instr [instr_list items] {
clientlog "$instr"
catch {
$instr / save_samenv
} msg
clientput $msg
}
}
publish book_this User
publish book_request User
publish book_confirm User
@ -479,3 +492,4 @@ publish rack_not_available_for Spy
publish free_instruments Spy
publish move_rack_to Spy
publish refresh Spy

View File

@ -266,9 +266,12 @@ proc frappy_async_client {} {
proc get_all_param {args} {
foreach obj $args {
set hp [get_obj_path $obj]
hnotify $hp 1
get_param_values $hp
catch {
set hp [get_obj_path $obj]
hnotify $hp 1
get_param_values $hp
}
# todo: create error message on failure
}
}

View File

@ -26,9 +26,9 @@ proc helium_update {p instrument label value} {
# Usage example: _lev updatescript /lev "helium_update prep0v dmc dmc_vessel"
catch {
if {[silent "" sct geterror] eq ""} {
$p / "helium_instr_update $instrument $label $value"
$p / helium_instr_update $instrument $label $value
} else {
$p / "helium_instr_update $instrument $label none"
$p / helium_instr_update $instrument $label none
}
}
}

View File

@ -15,7 +15,7 @@ proc makeHePump {} {
}
hset /hepump $type
if {$type == 0} {
if {$type == 0 || $type == 8} {
makenv hemot -driver trinamic -base /hepump/ hepump
if {[silent 0 result instconfig sensirion]} {
makenv nvflow -driver sensirion -controller _hemot

View File

@ -59,7 +59,8 @@ proc get_rack {{oldrack ""}} {
}
}
}
if {$mysubnet ne "office" && [llength $inmynet]} {
set hostname [lindex [split [info hostname] .] 0]
if {$mysubnet ne "office" && [llength $inmynet] && $hostname eq [result instrument]} {
# if any rack is in the instrument subnet, racks in office net are not shown
return $inmynet
}

View File

@ -116,7 +116,7 @@ proc disconnect_from {caller args} {
}
if {[llength $confirm] != 0} {
if {$caller ne "0"} {
seaman / "book_confirm $caller $confirm"
seaman / book_confirm $caller $confirm
}
}
if {$answer eq ""} {
@ -133,7 +133,8 @@ proc save_samenv {{dev ""}} {
if {$dev eq ""} {
set dev [samenv name]
}
seaman / "samenv_list makeitem [result instrument] $dev"
seaman / samenv_list makeitem [result instrument] $dev
seaman / rack_list makeitem [rack] [result instrument]
}
publishLazy save_samenv
@ -169,7 +170,7 @@ proc request_items {device} {
lappend items $hostport
}
}
seaman / "book_request [result instrument] [info hostname]:$serverport $device $items"
seaman / book_request [result instrument] [info hostname]:$serverport $device $items
set ts_status "Checking serial connections ..."
}
@ -199,7 +200,7 @@ proc reconnect_object {obj {value 0}} {
}
}
if {[is_mobile_port $hostport]} {
seaman / "book_request [result instrument] [info hostname]:$serverport PARTIAL $hostport"
seaman / book_request [result instrument] [info hostname]:$serverport PARTIAL $hostport
set ts_status "Checking serial connection ..."
}
}
@ -249,14 +250,14 @@ proc remote_disconnect {args} {
foreach {item instr} $args {
set disconnect_time($item) [DoubleTime]
}
seaman / "book_this [result instrument] $args"
seaman / book_this [result instrument] $args
}
proc forced_disconnect {item {value 0}} {
global disconnect_time
if {$value} {
catch {unset disconnect_time($item)}
seaman / "book_confirm [result instrument] $item"
seaman / book_confirm [result instrument] $item
} else {
return 0
}
@ -264,7 +265,7 @@ proc forced_disconnect {item {value 0}} {
proc remote_device_none {instrument {value 0}} {
global disconnect_time
seaman / "device_none_on $instrument"
seaman / device_none_on $instrument
set disconnect_time(0) [DoubleTime]
}

View File

@ -14,6 +14,6 @@ tt set/limit 310
tt set/prop 20
tt set/integ 10
makeCCU4 variox nv n2 he
hupdate /nv/set 2.5
hupdate /nv/set 1.2
nv ctrl/minpulse_o 0.01
nv ctrl/minpulse_c 0.1