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

This commit is contained in:
l_samenv
2023-08-22 17:23:46 +02:00
27 changed files with 140 additions and 54 deletions

View File

@ -4,7 +4,10 @@ defineTemperature tt
makenv tt -driver [lsdriver] {
lsc_sensor tm B -sensor pt1000e -sensorname main -alarm 650
# lsc_sensor te C -sensor x31318 -sensorname screen
lsc_sensor te C -sensor x31318 -sensorname screen
# lsc_sensor tk A -sensor x31319 -sensorname coldfinger -alarm 310
# 2.8.2022 changed tk from ChA to ChD
#--this is a temporary fix-- needs to be undone when the wiring has been fixed
lsc_sensor tk A -sensor x31319 -sensorname coldfinger -alarm 310
lsc_loop set -loop 1 -channel B -maxheater 100W -resist 25Ohm
if {[lsdriver] eq "336_lsc"} {

View File

@ -385,12 +385,14 @@ proc stdConfig::ccu4 {{title CCU4} args} {
} elseif {[string match valve* $a]} {
set nvalve [string range $a 5 end]
for {set ch 1} {$ch <= 12} {incr ch} {
node v$ch upd
node v$ch rd -int 10
prop read ccu4::readValve v$ch
prop enum valve_off,valve_on,no_valve,timeout,timeout1,boost
if {$ch > $nvalve} {
prop visible false
}
node vc$ch out -int
prop write ccu4::writeValve v$ch
prop enum valve_off,valve_on
if {$ch > $nvalve} {
prop visible false
@ -404,6 +406,20 @@ proc stdConfig::ccu4 {{title CCU4} args} {
return "CCU4"
}
proc ccu4::readValve {valve} {
# for some strange reason, v... are not queried with '?'
# we have to do it here
sct send $valve
return ccu4::complete
}
proc ccu4::writeValve {valve} {
set res [ccu4::write]
# update readback value immediately
hupdate [sct parent]/$valve [sct target]
return $res
}
proc ccu4::completeStart {name} {
set resval(cid) 0
set resval(cir) ""

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

@ -26,10 +26,9 @@ proc stdConfig::cryotel {} {
node cool wr
prop label Cool
prop enum on,off
prop writecmd "SET SSTOP=%i"
prop readcmd "SET SSTOP{2}"
prop readfmt "SET SSTOP ,%i"
prop enum 1
prop write cryotel::writecool
prop read cryotel::readcool
node control wr
default 1
@ -219,3 +218,23 @@ proc cryotel::checkcontrol {} {
hsetprop [sct] write stdSct::write
}
}
proc cryotel::writecool {} {
set flag [expr ! [sct target]]
sct send "SET SSTOP=$flag"
sct update [sct target]
return stdSct::complete
}
proc cryotel::readcool {} {
sct send "SET SSTOP{2}"
return cryotelboa::updatecool
}
proc cryotel::updatecool {} {
lassign [split [sct result] ,] _ value
sct update [expr $value == 0]
return idle
}

View File

@ -28,10 +28,9 @@ proc stdConfig::cryotelboa {} {
node cool wr
prop label Cool
prop enum on,off
prop writecmd "SET SSTOP=%i"
prop readcmd "SET SSTOP{2}"
prop readfmt "SET SSTOP ,%i"
prop enum 1
prop read cryotelboa::readcool
prop write cryotelboa::writecool
node control wr
default 1
@ -193,3 +192,22 @@ proc cryotelboa::checkcontrol {} {
sct write stdSct::write
}
}
proc cryotelboa::writecool {} {
set flag [expr ! [sct target]]
sct send "SET SSTOP=$flag"
sct update [sct target]
return stdSct::complete
}
proc cryotelboa::readcool {} {
sct send "SET SSTOP{2}"
return cryotelboa::updatecool
}
proc cryotelboa::updatecool {} {
lassign [split [sct result] ,] _ value
sct update [expr $value == 0]
return idle
}

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
@ -993,10 +996,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 {
@ -1035,7 +1043,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

@ -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]
if {$tr eq "none"} {
set tr $tmain
sct prev_tr $tr
} 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

7
tcl/flexbox.addon Normal file
View File

@ -0,0 +1,7 @@
addonDesc = Coils from MLZ
set ::secop_version 4
makenv secop -driver secop -port flexbox:10767

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
@ -30,10 +30,6 @@ GraphAdd p4 bar p4 yellow
makenv -objname pressreg -driver bronkpreg -port jtccr-ts:3005 18
GraphAdd pressreg bar preg magenta
#makenv -objname v -driver svumot -port jtccr-ts:3006 {
# v1 1 v2 2 v3 3 v4 4 v5 5 v6 6 v7 7 v8 mot
#}
makenv epc epc8210 -port jtccr-ts:3007 {jt-compressor 1 jt-pump 2 ccr-compressor 3}
@ -41,8 +37,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

@ -5,9 +5,11 @@ device stick_menu "ma6 dil2 dil3 dil4 coil"
makenv tt -driver [lsdriver] {
lsc_sensor tm A -sensor x48581 -sensorname VTI
lsc_sensor ts C -sensorname sample
# lsc_sensor code D -sensor code -sensorname code
lsc_sensor ts_2 D -sensor code -sensorname sample2
# 2023-07-06: sample sensor seems defect, use hx sensor
# lsc_sensor ts C -sensorname sample
# lsc_sensor ts_2 D -sensor code -sensorname sample2
lsc_sensor ts D -sensorname sample
lsc_sensor ts_2 C -sensor code -sensorname sample2
lsc_loop set -loop 1 -channel A -maxheater 32W -resist 80Ohm -color green
if {[lsdriver] eq "336_lsc"} {
lsc_loop setsamp -loop 2 -channel C -maxheater 62.5W -resist 20Ohm -color dark_green -loopname sample
@ -27,7 +29,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

@ -1,4 +1,4 @@
stickDesc = standard MA6 stick
stick_sensors x63161 undefined
stick_sensors x63163 undefined
# stick_sensors x63161 x63163

View File

@ -17,7 +17,7 @@ tt set/limit 310
makeCCU4 ma7 nv_release_blocked he_ilm
hupdate /nv/set 2.5
hupdate /nv/set 1.2
# increase n.v. motor current
cc mc 75
nv ctrl/openpulse 2

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

@ -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

@ -2109,15 +2109,20 @@ proc ObjState {} {
lappend list $obj
}
set canNotConnect 0
set showRackList 0
set rack [silent no result device rack]
foreach obj $list {
if {$obj eq "_cc"} {
set canNotConnect [showStatus _cc 1]
if {$canNotConnect || $rack eq "no"} {
set showRackList 1
}
} else {
showStatus $obj 1
}
}
if {[result device name] eq "none"} {
Group rack "choose rack"
set showRackList 1
} elseif {$canNotConnect} {
Style warning
if {[silent no result device rack] eq "other"} {
@ -2136,6 +2141,8 @@ proc ObjState {} {
Style hotwarning
Label "please select rack (rack number as labelled on the top of the rack)"
}
}
if {$showRackList} {
Group rack "choose rack"
}
}

View File

@ -1,4 +1,7 @@
proc makeHeFill {levcmd} {
# this seems obsolete
# use makeCCU4 ... he
# or makeCCU4 ... he_ilm
if {$levcmd eq "ccu"} {
makenv lev he_ccu ccu
GraphAdd lev % HeLevel brown

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

@ -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

@ -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