diff --git a/tcl/ccr2ht.config b/tcl/ccr2ht.config index 20434ef..f921cff 100644 --- a/tcl/ccr2ht.config +++ b/tcl/ccr2ht.config @@ -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"} { diff --git a/tcl/drivers/ccu4.tcl b/tcl/drivers/ccu4.tcl index 79fe429..8c99f2e 100644 --- a/tcl/drivers/ccu4.tcl +++ b/tcl/drivers/ccu4.tcl @@ -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) "" diff --git a/tcl/drivers/ccu4flow.tcl b/tcl/drivers/ccu4flow.tcl index cf6c0ca..ef0bbfe 100644 --- a/tcl/drivers/ccu4flow.tcl +++ b/tcl/drivers/ccu4flow.tcl @@ -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)] diff --git a/tcl/drivers/cryotel.tcl b/tcl/drivers/cryotel.tcl index f4eb3ea..801cdd7 100644 --- a/tcl/drivers/cryotel.tcl +++ b/tcl/drivers/cryotel.tcl @@ -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 +} + + diff --git a/tcl/drivers/cryotelboa.tcl b/tcl/drivers/cryotelboa.tcl index f87021c..c86f64a 100644 --- a/tcl/drivers/cryotelboa.tcl +++ b/tcl/drivers/cryotelboa.tcl @@ -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 +} + diff --git a/tcl/drivers/dil12.tcl b/tcl/drivers/dil12.tcl index d597878..baef43a 100644 --- a/tcl/drivers/dil12.tcl +++ b/tcl/drivers/dil12.tcl @@ -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 + } } } } diff --git a/tcl/drivers/hepump.tcl b/tcl/drivers/hepump.tcl index cdb9bd7..5f0a952 100644 --- a/tcl/drivers/hepump.tcl +++ b/tcl/drivers/hepump.tcl @@ -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] diff --git a/tcl/drivers/secop_4.tcl b/tcl/drivers/secop_4.tcl index 130a830..9691392 100644 --- a/tcl/drivers/secop_4.tcl +++ b/tcl/drivers/secop_4.tcl @@ -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" } diff --git a/tcl/drivers/trun.tcl b/tcl/drivers/trun.tcl index 585b0a1..6f679d4 100644 --- a/tcl/drivers/trun.tcl +++ b/tcl/drivers/trun.tcl @@ -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 diff --git a/tcl/flexbox.addon b/tcl/flexbox.addon new file mode 100644 index 0000000..7c00e54 --- /dev/null +++ b/tcl/flexbox.addon @@ -0,0 +1,7 @@ +addonDesc = Coils from MLZ + +set ::secop_version 4 + +makenv secop -driver secop -port flexbox:10767 + + diff --git a/tcl/fw.config b/tcl/fw.config index 5833000..94618aa 100644 --- a/tcl/fw.config +++ b/tcl/fw.config @@ -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 diff --git a/tcl/jtccr.config b/tcl/jtccr.config index 9095b19..b029595 100644 --- a/tcl/jtccr.config +++ b/tcl/jtccr.config @@ -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 diff --git a/tcl/ma02.config b/tcl/ma02.config index 97097d7..cccbc76 100644 --- a/tcl/ma02.config +++ b/tcl/ma02.config @@ -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 diff --git a/tcl/ma10.config b/tcl/ma10.config index 920a11c..bc041b8 100644 --- a/tcl/ma10.config +++ b/tcl/ma10.config @@ -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 diff --git a/tcl/ma11.config b/tcl/ma11.config index 7c81220..8e30baf 100644 --- a/tcl/ma11.config +++ b/tcl/ma11.config @@ -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 diff --git a/tcl/ma15.config b/tcl/ma15.config index 0cbebe9..f2ea536 100644 --- a/tcl/ma15.config +++ b/tcl/ma15.config @@ -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 diff --git a/tcl/ma6.config b/tcl/ma6.config index bc79aab..27c7ad0 100644 --- a/tcl/ma6.config +++ b/tcl/ma6.config @@ -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"} { diff --git a/tcl/ma6.stick b/tcl/ma6.stick index 5f0c081..9870b81 100644 --- a/tcl/ma6.stick +++ b/tcl/ma6.stick @@ -1,4 +1,4 @@ stickDesc = standard MA6 stick -stick_sensors x63161 undefined +stick_sensors x63163 undefined # stick_sensors x63161 x63163 diff --git a/tcl/ma7.config b/tcl/ma7.config index a225c24..a64ba9f 100644 --- a/tcl/ma7.config +++ b/tcl/ma7.config @@ -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 diff --git a/tcl/ori3.config b/tcl/ori3.config index cf3d0b8..ac60246 100644 --- a/tcl/ori3.config +++ b/tcl/ori3.config @@ -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 diff --git a/tcl/pfeiffertpg.addon b/tcl/pfeiffertpg.addon index 22c54df..045cd3f 100644 --- a/tcl/pfeiffertpg.addon +++ b/tcl/pfeiffertpg.addon @@ -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 diff --git a/tcl/seacom.tcl b/tcl/seacom.tcl index e33971a..7d3b2da 100644 --- a/tcl/seacom.tcl +++ b/tcl/seacom.tcl @@ -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" } } diff --git a/tcl/startup/autofill.tcl b/tcl/startup/autofill.tcl index c349540..ebb203a 100644 --- a/tcl/startup/autofill.tcl +++ b/tcl/startup/autofill.tcl @@ -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 diff --git a/tcl/startup/frappy.tcl b/tcl/startup/frappy.tcl index 9d9984a..d8cc670 100644 --- a/tcl/startup/frappy.tcl +++ b/tcl/startup/frappy.tcl @@ -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 } } diff --git a/tcl/startup/hepump.tcl b/tcl/startup/hepump.tcl index fc22477..7008cb2 100644 --- a/tcl/startup/hepump.tcl +++ b/tcl/startup/hepump.tcl @@ -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 diff --git a/tcl/startup/rack.tcl b/tcl/startup/rack.tcl index 69b9193..cb8e2c9 100644 --- a/tcl/startup/rack.tcl +++ b/tcl/startup/rack.tcl @@ -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 } diff --git a/tcl/variox.config b/tcl/variox.config index cf64014..2bb42c3 100644 --- a/tcl/variox.config +++ b/tcl/variox.config @@ -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