diff --git a/tcl/bfdil.config b/tcl/bfdil.config index 61e6280..9072753 100644 --- a/tcl/bfdil.config +++ b/tcl/bfdil.config @@ -1,4 +1,4 @@ -deviceDesc = "BlueFors dil" +deviceDesc = "BlueFors dil for HAL-9500" # --- lakeshore 370 ctrl --- @@ -16,9 +16,9 @@ makenv tbf -driver 370_lsc -port psts262:3007 { # GraphAdd tbf.mc K T_MC blue # GraphAdd tbf.mc.raw Ohm R_MC blue - lsc_sensor test 6 rx270c -excitation 20uV - GraphAdd tbf.test K T_entropy orange - GraphAdd tbf.test.raw Ohm R_entropy orange +# lsc_sensor test 6 rx270c -excitation 20uV +# GraphAdd tbf.test K T_entropy orange +# GraphAdd tbf.test.raw Ohm R_entropy orange lsc_sensor cf 7 rx03310 -excitation 20uV GraphAdd tbf.cf K T_cf magenta @@ -32,6 +32,9 @@ makenv tbf -driver 370_lsc -port psts262:3007 { # lsc_sensor t5k 16 ruox5k # GraphAdd tbf.t5k K test5k_T orange + lsc_sensor pt2x 13 x71811 + GraphAdd tbf.pt2x K 2ndstage_T pink + lsc_loop set -channel 5 -maxheater 10mA -resist 120 GraphAdd tbf.set.power mW Still_Pow green } @@ -114,7 +117,9 @@ if {0} { # exclude tcf lakeshore #makenv tcf -driver loop -invar "/t/chan7" -outvar "t still" \ # -outmax 100 -prop 0.2 -int 0.2 -# pc11003 is the Windows computer controller the gas handling system +# pc11003 was the Windows computer controller the gas handling system +# pc10410 is the new one +# change to spare system pc11003 after pc10410 does not boot anymore, 12.09.2022 sr35 makenv bfgh -driver bfgh -port pc11003:1234 GraphAdd bfgh.pivc mbar IVC black diff --git a/tcl/bfdil.config_20220917 b/tcl/bfdil.config_20220917 new file mode 100644 index 0000000..2671735 --- /dev/null +++ b/tcl/bfdil.config_20220917 @@ -0,0 +1,230 @@ +deviceDesc = "BlueFors dil" + + +# --- lakeshore 370 ctrl --- +makenv tbf -driver 370_lsc -port psts262:3007 { + lsc_sensor pt1 1 PT1012 -excitation 2mV + GraphAdd tbf.pt1 K T_Stage1 yellow + + lsc_sensor pt2 2 X64004 -excitation 2mV + GraphAdd tbf.pt2 K T_Stage2 cyan + + lsc_sensor still 5 X63592 -excitation 63.2uV + GraphAdd tbf.still K T_Still green + +# lsc_sensor mc 6 rx03312 -excitation 20uV +# GraphAdd tbf.mc K T_MC blue +# GraphAdd tbf.mc.raw Ohm R_MC blue + + lsc_sensor test 6 rx270c -excitation 20uV + GraphAdd tbf.test K T_entropy orange + GraphAdd tbf.test.raw Ohm R_entropy orange + + lsc_sensor cf 7 rx03310 -excitation 20uV + GraphAdd tbf.cf K T_cf magenta + GraphAdd tbf.cf.raw Ohm R_cf magenta + +# GraphAdd tbf.set.power mW MC_Pow blue + +# lsc_sensor t1k 15 ruoxben1k +# GraphAdd tbf.t1k K test1k_T magenta + +# lsc_sensor t5k 16 ruox5k +# GraphAdd tbf.t5k K test5k_T orange + + lsc_sensor pt2x 13 x71811 + GraphAdd tbf.pt2x K 2ndstage_T pink + + lsc_loop set -channel 5 -maxheater 10mA -resist 120 + GraphAdd tbf.set.power mW Still_Pow green +} + +if {0} { # exclude tcf lakeshore + # lakeshore 370 ctrl CF + makenv tcf -driver 370_lsc -port psts262:3008 { + # lsc_sensor rua 6 manual -excitation 20uV + # GraphAdd tcf.rua K 102A_T orange + # GraphAdd tcf.rua.raw Ohm 102A orange + # lsc_sensor rub 7 manual -excitation 20uV + # GraphAdd tcf.rub K 102B magenta + # GraphAdd tcf.rub.raw Ohm 102B magenta + # lsc_sensor ruc 8 manual -excitation 20uV + # GraphAdd tcf.ruc K EntropC cyan + # GraphAdd tcf.ruc.raw Ohm EntropC cyan + + lsc_sensor mc 6 rx03312 -excitation 20uV + GraphAdd tcf.mc K T_mc blue + GraphAdd tcf.mc.raw Ohm R_mc blue + + lsc_sensor rod 7 rx102a -excitation 20uV + GraphAdd tcf.rod K T_WL orange + GraphAdd tcf.rod.raw Ohm R_WL orange + + + lsc_loop set -channel 6 -maxheater 31mA -resist 120 + GraphAdd tcf.set.power mW MC_Pow blue + } +} + + +## --- LS370 scanner --- +#makenv t ls370bf +#t active3 0 +#t active4 0 +#t active8 0 +#t active9 0 +#t active10 0 +#t active11 0 +#t active12 0 +#t active13 0 +#t active14 0 +#GraphAdd t.chan1 K T50K red +#GraphAdd t.chan2 K T4K green +#GraphAdd t.chan5 K TStill blue +#GraphAdd t.chan6 K TMC magenta +#GraphAdd t.chan7 K TCF yellow +#GraphAdd t.chan15 K 1Ktest orange + + +#GraphAdd t.res1 Ohm R50K red +#GraphAdd t.res2 Ohm R4K green +#GraphAdd t.res5 Ohm RStill blue +#GraphAdd t.res6 Ohm RMC magenta +#GraphAdd t.res7 Ohm RCF black +#GraphAdd t.res15 Ohm 1Ktest yellow +#GraphAdd t.res16 Ohm 5Ktest orange + +#GraphAdd t.set K Tset black +#GraphAdd t.htr W Phtr red +#GraphAdd t.still % Still red + + +#--- Fixpoint dev--- +#makenv Vfp nanov +# --- compressor --- +#makenv cp2800 cp2800 + +#GraphAdd cp2800.inp_water_t C InpWater_C red +#GraphAdd cp2800.out_water_t C OutWater_C blue +#GraphAdd cp2800.oil_t C Oil_C green +#GraphAdd cp2800.helium_t C Helium_C magenta + +#GraphAdd cp2800.high_side_p_min psi High_psi_min red +#GraphAdd cp2800.high_side_p_max psi High_psi_max orange +#GraphAdd cp2800.low_side_p_min psi Low_psi_min green +#GraphAdd cp2800.low_side_p_max psi Low_psi_max dark_green + +#makenv tcf -driver loop -invar "/t/chan7" -outvar "t still" \ +# -outmax 100 -prop 0.2 -int 0.2 + +# pc11003 was the Windows computer controller the gas handling system +# pc10410 is the new one +# change to spare system pc11003 after pc10410 does not boot anymore, 12.09.2022 sr35 +makenv bfgh -driver bfgh -port pc11003:1234 + +GraphAdd bfgh.pivc mbar IVC black +GraphAdd bfgh.pstill mbar Still_line red +GraphAdd bfgh.pcond mbar Condensing_line blue +GraphAdd bfgh.phep mbar He3_pump_back green +GraphAdd bfgh.pdump mbar Dump orange +GraphAdd bfgh.paux mbar auxillary magenta +GraphAdd bfgh.flow mmolsec He3_flow black + +GraphAdd bfgh.turbo1 sw He3-Turbo red +GraphAdd bfgh.scroll1 sw He3-scroll hot_pink +GraphAdd bfgh.turbo2 sw aux-Turbo blue +GraphAdd bfgh.scroll2 sw aux-scroll sky_blue +GraphAdd bfgh.pulsetube sw PulseTube black +GraphAdd bfgh.compressor sw He3-compressor magenta +GraphAdd bfgh.hs-still sw HS-Still yellow +GraphAdd bfgh.hs-mc sw HS-MC gray +GraphAdd bfgh.ext sw Still_heat cyan + + +#makenv cmn -driver cmnnanov -port psts257:3016 + +if {0} {# inhibit --- autoheater --- + makenv autoheater -driver auto370 tcf {tcf mc} + + auto370::mode 0 normal { + autoheater ttable 0.01 0.022 0.064 0.22 1.0 + autoheater prop 5 + autoheater propmin 0.5 + autoheater 1 + autoheater autoprop 1 + autoheater propmin 0.5 + autoheater maxrange 6 + tcf set/integ 100 + } + + auto370::mode 1 partial_circulate { + autoheater ttable 0.01 0.022 0.8 1.2 5 100 + autoheater 0 + autoheater heaterrange 7 + autoheater autoprop 1 + autoheater prop 40 + autoheater propmin 2 + autoheater maxrange 7 + tcf set/integ 100 + } + + hset autoheater/mode 0 +} + +# --- sim 921 ac res. bridge --- +#makenv ac -driver sim921 1 rod 3 mc +makenv ac -driver sim921 -port psts262:3004 1 rod 3 mc + +GraphAdd ac.rod K T_rod red +GraphAdd ac.rod.r Ohm R_rod red + +GraphAdd ac.mc K T_mc blue +GraphAdd ac.mc.r Ohm R_mc blue + +catch { + ac mc/curve rx03312 +} + +# --- heaterboxes WL = rodhtr +# MC = mchtr +# weak link +makenv rodhtr dilhtr -port psts262:3006 + +makenv tlrod -driver piloop -invar /ac/rod -outvar rodhtr -outmin 0 -outmax 3.3 \ + -prop 1 -int 6 -precision 0.001 -inpfunc 1 -outfunc 1 -outlinear 0.04 \ + -inplinear 0.01 -ramptime 240 -smoothtime 60 -ramptol 0.05 + +#catch { +# # detect automatically open sensor +# ac rod/sensorcheck 1 +#} + +GraphAdd tlrod.set K tlrod_set grey +GraphAdd tlrod.reg K tlrod_reg black +GraphAdd rodhtr mW rod_htr red + +# mix chamber +makenv mchtr dilhtr -port psts262:3005 + +makenv tlmc -driver piloop -invar /ac/mc -outvar mchtr -outmin 0 -outmax 3.3 \ + -prop 0.2 -int 60 -precision 0.001 -inpfunc 1 -outfunc 1 -outlinear 0.04 \ + -inplinear 0.01 -ramptime 240 -smoothtime 60 -ramptol 0.05 + +GraphAdd tlmc.set K tlmc_set green +GraphAdd tlmc.reg K tlmc_reg olive +GraphAdd mchtr mW mc_htr blue + +device stick_menu "lt wl noother" + + +makenv bfdil -driver bfdil + +# default stick should be selected after config +#stick lt + + + +makeobject magnet array +magnet makeitem field +GraphAdd magnet.field T Magnet + diff --git a/tcl/config/device.list b/tcl/config/device.list index 4383480..ec118c3 100644 --- a/tcl/config/device.list +++ b/tcl/config/device.list @@ -8,6 +8,8 @@ GROUP orange and other 4He cryostats END GROUP muSR flame* + hal* + bfdil END GROUP closed cycle refrigerators apd* diff --git a/tcl/drivers/bfgh.tcl b/tcl/drivers/bfgh.tcl index a56f536..894942a 100644 --- a/tcl/drivers/bfgh.tcl +++ b/tcl/drivers/bfgh.tcl @@ -80,23 +80,35 @@ proc stdConfig::bfgh {} { prop write bfgh::setrmt prop enum 1 } + node ext_still_control par 1 + prop help "control still with lakeshore 370 output from /bfgh/ext" + prop enum 1 + + node stillpower wr + default 0.01 + prop help "when /bfgh/ext is on, stillpower is applied to /tbf/set/manualpower" + prop check bfgh::check_still + prop write stdSct::completeUpdate + prop read bfgh::read_still + + node serial_turbo_control par 1 + prop help "use serial instead of analog connection for switching turbo on/off" + prop enum 1 } - node stillpower par 0.008 - prop help "when ext is on, stillpower is applied to /tbf/set/manualpower. set stillpower to 0 for no link between /bfgh/ext and /tbf/set" variable ctrl variable path $ctrl updatescript $path/ext bfgh::ext_update + $ctrl updatescript $path/turbo1 bfgh::turbo1_update } proc bfgh::ext_update {value} { - set mp [hval [sct parent]/stillpower] - if {$mp} { + if {[hval [sct parent]/ext_still_control]} { set old [hval /tbf/set/mode] set oldp [hval /tbf/set/manualpower] if {$value} { set new 2 - set newp $mp + set newp [hval [sct parent]/stillpower] } else { set new 0 set newp 0 @@ -110,6 +122,46 @@ proc bfgh::ext_update {value} { } } +proc bfgh::read_still {} { + [sct controller] updatescript /tbf/set/manualpower "bfgh::update_still [sct]" + sct update [hvali [sct]] + return idle +} + +proc bfgh::update_still {path value} { + if {$value} { + updateval $path $value + } + return idle +} + +proc bfgh::check_still {} { + if {[sctval [sct parent]/ext_still_control]} { + tbf set/manualpower [sct target] + } +} + +proc bfgh::turbo1_update {value} { + set ser [hval [sct parent]/serial_turbo_control] + if {$ser} { + if {$value} { + if {!([hval /turbo1a/on] && [hval /turbo1a/motor] && [hval /turbo1b/on] && [hval /turbo1b/motor])} { + turbo1a on 1 + turbo1b on 1 + turbo1a motor 1 + turbo1b motor 1 + } + } else { + if {[hval /turbo1a/on] || [hval /turbo1a/motor] || [hval /turbo1b/on] || [hval /turbo1b/motor]} { + turbo1a motor 0 + turbo1b motor 0 + turbo1a on 0 + turbo1b on 0 + } + } + } +} + proc bfgh::chanread {} { sct send "status" return bfgh::chanupd diff --git a/tcl/drivers/tc400.tcl b/tcl/drivers/tc400.tcl new file mode 100644 index 0000000..a8dd4ca --- /dev/null +++ b/tcl/drivers/tc400.tcl @@ -0,0 +1,104 @@ +namespace eval tc400 {} { +} + +proc stdConfig::tc400 {adr} { + controller std "\r" 5 + prop startcmd "0010031202=?101" + prop read tc400::read + prop write tc400::write + + pollperiod 5 5 + + obj "TC400" wr + prop par 707 + prop @adr $adr + prop type fix2 + + kids "turbo $adr" { + node on wr + prop par 10 + prop type bool + prop enum 1 + + node motor wr + prop par 23 + prop type bool + prop enum 1 + + node speed rd + prop par 309 + prop type fix0 + + node nominalspeed rd + prop par 308 + prop type fix0 + + node current rd + prop par 310 + prop type fix2 + + node errorcode -text rd + prop par 303 + prop type text + + node ovtempelec rd + prop par 304 + prop type bool + + node ovtemppump rd + prop par 305 + prop type bool + + node temppmpbot rd + prop par 330 + prop type fix0 + + node tempbearng rd + prop par 342 + prop type fix0 + + node tempmotor rd + prop par 346 + prop type fix0 + + } + + return "TC400 turbo pump" +} + +proc tc400::addcksum {str} { + set cksum 0 + foreach num [scan $str [string repeat %c [string length $str]]] { + incr cksum $num + } + return "$str[format %3.3d [expr $cksum % 256]]" +} + +proc tc400::read {} { + sct send [addcksum [format "%3.3d00%3.3d02=?" [sct @adr] [sct par]]] + return tc400::update +} + +proc tc400::update {} { + set end 15 + set value [string range [sct result] 10 $end] + if {![scan $value %d value]} { + error "$value" + } + switch [sct type] { + bool { sct update [expr $value != 0] } + fix2 { sct update [expr $value * 0.01] } + default { sct update $value } + } + return idle +} + +proc tc400::write {} { + switch [sct type] { + bool {set val [format "06%6.6d" [expr ([sct target] != 0) * 111111]]} + fix2 {set val [format "06%6.6d" [expr int(0.5 + [sct target] * 100)]]} + default {set val [format "06%6.6d" [expr int(0.5 + [sct target])]]} + } + sct send [addcksum [format "%3.3d10%3.3d$val" [sct @adr] [sct par] [sct target]]] + return tc400::update +} diff --git a/tcl/halflow.config b/tcl/halflow.config index c699f55..30fc513 100644 --- a/tcl/halflow.config +++ b/tcl/halflow.config @@ -1,25 +1,20 @@ -deviceDesc = flow cryo for hifi (with He pump) +deviceDesc = flow cryo for HAL-9500 -device stick_menu "flow flow_1" +device stick_menu "halflow" defineTemperature tt -makeCCU4 halflow - makenv tt -driver 336_lsc -port pstc003:7777 { - lsc_sensor tm A -sensor x85571 -sensorname evap + lsc_sensor tm D -sensor x85571 -sensorname evap lsc_sensor tsep B -sensor x86021 -sensorname sep # lsc_sensor tcon C -sensor x86028 -sensorname conus lsc_sensor ts C -sensorname sample - lsc_sensor tshd D -sensor pt-1000 -sensorname shield - lsc_loop set -loop 1 -channel A -maxheater 50W -resist 50Ohm + lsc_sensor tshd A -sensor pt-1000 -sensorname shield + lsc_loop set -loop 1 -channel D -maxheater 10W -resist 50Ohm lsc_loop setcon -loop 2 -channel C -maxheater 35W -resist 35Ohm } tt set/limit 310 -makeHePump -GraphAdd nvflow lnmin Flow_pump auto - makenv table -driver table /tt/tm { "tt set/prop" "50:50 300:20 400:10" "tt set/integ" "10:50 50:20 300:5" @@ -30,14 +25,10 @@ makenv table -driver table /tt/tm { # -- max flow 50ln/min -# psts243 for tests RA36 10-JUN-2015 -#makenv -objname shieldflow -driver bronkfreg -port psts243:3006 50 Shield_Flow makenv -objname shieldflow -driver bronkfreg -port halflow-ts:3001 50 Shield_Flow GraphAdd shieldflow lnmin Flow_shield red # -- max flow 20 ln/min -# psts243 for tests RA36 10-JUN-2015 -#makenv -objname tflineflow -driver bronkfreg -port psts243:3008 20 Transfer-line_Flow makenv -objname tflineflow -driver bronkfreg -port halflow-ts:3002 20 Transfer-line_Flow GraphAdd tflineflow lnmin Flow_tfline magenta GraphAdd cc.f mbar pump_pressure @@ -45,10 +36,24 @@ GraphAdd cc.f mbar pump_pressure makeobject magnet array magnet makeitem field -#makeNv makenv v -driver ccu4 -port halflow-ts:3003 valves valve aux +GraphAdd v.ax mbar manifold_pressure -#makenv hvac -driver pfeiffertpg -port ldmlab1-ts:3013 + + +makenv hepres -driver pfeiffertpg -port psts258:3007 +GraphAdd hepres mbar Hepump_pressure +#makenv hepump -driver hepump +#makenv hemot -driver trinamic -port psts258:3013 -base /hepump/ +#hsetprop /hepump visible false +#hsetprop /hepump/eco_t_lim visible false +#hsetprop /hepump/auto visible false +#hsetprop /hepump/hemot visible false +#hdelprop /hepump/hemot group + +makeHePump + +GraphAdd nvflow lnmin Flow_hepump diff --git a/tcl/halflow.stick b/tcl/halflow.stick new file mode 100644 index 0000000..04375db --- /dev/null +++ b/tcl/halflow.stick @@ -0,0 +1,6 @@ +stickDesc = standard stick for HAL-9500 flow cryo + +#ts_sensor x85569 (old sensor (must be on the cryostet)) +# this is on the sample stick +ts_sensor x127761 + diff --git a/tcl/halmagnet.config b/tcl/halmagnet.config new file mode 100644 index 0000000..840a8ce --- /dev/null +++ b/tcl/halmagnet.config @@ -0,0 +1,14 @@ +deviceDesc = HAL-9500 magnet + +makeobject magnet array +magnet makeitem field + +makenv hepump -driver hepump +makenv hemot -driver trinamic -port psts258:3013 -base /hepump/ +hsetprop /hepump visible false +hsetprop /hepump/eco_t_lim visible false +hsetprop /hepump/auto visible false +hsetprop /hepump/hemot visible false +hdelprop /hepump/hemot group + + diff --git a/tcl/instconfig/halflow.tcl b/tcl/instconfig/halflow.tcl new file mode 100644 index 0000000..aec3105 --- /dev/null +++ b/tcl/instconfig/halflow.tcl @@ -0,0 +1 @@ +instconfig makeitem sensirion 1 diff --git a/tcl/janis_valve.config b/tcl/janis_valve.config new file mode 100644 index 0000000..3753be1 --- /dev/null +++ b/tcl/janis_valve.config @@ -0,0 +1,12 @@ +deviceDesc = valve for Janis Flow Cryostat + +makenv hepump -driver hepump +makenv hemot -driver trinamic -port psts257:3013 -base /hepump/ +hsetprop /hepump visible false +hsetprop /hepump/pump_type_permanent visible false +hsetprop /hepump/eco_t_lim visible false +hsetprop /hepump/auto visible false +hsetprop /hepump/hemot visible false +hdelprop /hepump/hemot group + + diff --git a/tcl/lt.stick b/tcl/lt.stick new file mode 100644 index 0000000..fec7667 --- /dev/null +++ b/tcl/lt.stick @@ -0,0 +1,4 @@ +stickDesc = "BFDIL strong link - low temperature < 0.8 K" + +ac rod/curve rx102a +bfdil heatcontrol 0 diff --git a/tcl/tc400.addon b/tcl/tc400.addon new file mode 100644 index 0000000..63758eb --- /dev/null +++ b/tcl/tc400.addon @@ -0,0 +1,16 @@ +addonDesc = TC400 test + +makenv turbo1a -driver tc400 -controller _turbo -port psts261.psi.ch:3001 1 +makenv turbo1b -driver tc400 -controller _turbo -port psts261.psi.ch:3001 2 + +GraphAdd turbo1a.speed Hz turbo1a +GraphAdd turbo1b.speed Hz turbo1b +GraphAdd turbo1a.current A turbo1a +GraphAdd turbo1b.current A turbo1b + +GraphAdd turbo1a.temppmpbot C T_pump1a +GraphAdd turbo1a.tempbearng C T_bear1a +GraphAdd turbo1a.tempmotor C T_motr1a +GraphAdd turbo1b.temppmpbot C T_pump1b +GraphAdd turbo1b.tempbearng C T_bear1b +GraphAdd turbo1b.tempmotor C T_motr1b diff --git a/tcl/wl.stick b/tcl/wl.stick new file mode 100644 index 0000000..8dda250 --- /dev/null +++ b/tcl/wl.stick @@ -0,0 +1,4 @@ +stickDesc = "weak link - high temperature up to 4 K" + +ac rod/curve rx270c +bfdil heatcontrol 2