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

This commit is contained in:
2022-09-15 12:56:03 +02:00
538 changed files with 40660 additions and 552 deletions

View File

@ -0,0 +1,25 @@
deviceDesc = Bernina cryochamber
makenv tt -driver 336_lsc {
lsc_sensor ta A -sensor X71737 -sensorname Cernox
lsc_sensor tb B -sensor dt-670 -sensorname Diode
lsc_loop set -loop 1 -channel A -maxheater 0.7A -resist 27Ohm -color green
}
tt set/prop 25
tt set/integ 20
tt dblctrl/int2 100
#makeCCU4 lollyp he
#cc hav 1
#cc hea 1
#nv ctrl/adjust_minpulse 0
#nv ctrl/openpulse 0
#nv ctrl/prop_o 0.5
#nv ctrl/prop_c 0.5
#hupdate /hepump 3
#hepump calib 1
#dolater 1 hepump 3

12
tcl/OOspec.addon Normal file
View File

@ -0,0 +1,12 @@
addonDesc = Ocean Optics Spectrometer
makenv Spec -driver OOspec
GraphAdd Spec.peak1 nm P1 auto
GraphAdd Spec.peak2 nm P2 auto
GraphAdd Spec.peak3 nm P3 auto
GraphAdd Spec.peak4 nm P4 auto
GraphAdd Spec.peak5 nm P5 auto
GraphAdd Spec.peak6 nm P6 auto
GraphAdd Spec.peak7 nm P7 auto
GraphAdd Spec.peak8 nm P8 auto

11
tcl/archive/ACM.config Normal file
View File

@ -0,0 +1,11 @@
deviceDesc = ACM 45
#--ACM Levelmeter---
makenv cap acm
GraphAdd cap pF R dark_green

View File

@ -0,0 +1,4 @@
deviceDesc = Andeen Hagerling 2700
makenv cap -driver ah2700 -port ldmcc13-ts:3006

View File

@ -0,0 +1,5 @@
deviceDesc = lock-in 7265_7270
makenv la lockin
appendVars la.x/mV/X la.y/mV/Y la/Hz/freq la.amp/uV/Amp

View File

@ -0,0 +1,5 @@
deviceDesc = anders special device
defineTemperature tc
makenv tc -driver anders

View File

@ -0,0 +1,6 @@
addonDesc = asm120h leak detector with fluke 45
makenv voltage fluke45
hsetprop /voltage expr {$x -9}
GraphAdd voltage.calc log-mbar-l-s leak_rate dark_green

6
tcl/archive/asm142.addon Normal file
View File

@ -0,0 +1,6 @@
addonDesc = asm142 leak detector with moxa nport 5130a
makenv ld asm142 -port asm142.psi.ch:3001
GraphAdd ld log-mbar-l-s leak_rate dark_green
#GraphAdd ld log-mbar-l-s leak_rate dark_green

5
tcl/archive/asm340.addon Normal file
View File

@ -0,0 +1,5 @@
addonDesc = asm340 leak detector
makenv ld asm340
GraphAdd ld mbar.l/s leak_rate dark_green

8
tcl/archive/avs2.addon Normal file
View File

@ -0,0 +1,8 @@
addonDesc = AVS 2 bridges
makenv r1 avs -port Prologix-00-21-69-01-1b-34:1234
makenv r2 avs -port Prologix-00-21-69-01-19-57:1234
GraphAdd r1/Ohm/R1/auto
GraphAdd r2/Ohm/R2/auto

7
tcl/archive/bunker.addon Normal file
View File

@ -0,0 +1,7 @@
addonDesc = bunker room T monitor
makenv tt -driver [lsdriver] {
lsc_sensor source A -sensor pt-1000
lsc_sensor mid B -sensor pt-1000
lsc_sensor instr C -sensor pt-1000
}

14
tcl/archive/bunker.config Normal file
View File

@ -0,0 +1,14 @@
deviceDesc = bunker room T monitor
makenv tt -driver [lsdriver] {
lsc_sensor SEL_1 A -sensor pt-1000 -sensorname Selene_2
lsc_sensor SEL_2 B -sensor pt-1000 -sensorname Selene_1
lsc_sensor MK10_1 C -sensor type-k -sensorname MK10_1
lsc_sensor MK10_3 D -sensor type-k -sensorname MK10_3
}
#GraphAdd tt.SEL_1 K Selene_1
#GraphAdd tt.SEL_2 K Selene_2
#GraphAdd tt.MK10_1 K MK10_1
#GraphAdd tt.MK10_3 K MK10_3

View File

@ -0,0 +1,11 @@
stickDesc = 50 mm calibration stick (ORI1/ORI2/ILL1), old version with calib370 driver
makenv r -driver calib370
GraphAdd res.s1 Ohm R1
GraphAdd res.s2 Ohm R2
GraphAdd res.s2 Ohm R3
GraphAdd res.s3 Ohm R4
GraphAdd res.s4 Ohm R5
GraphAdd res.s5 Ohm R6

View File

@ -0,0 +1,77 @@
stickDesc = dilution insert (added gonio T on channel 2)
makenv ts -driver dil12 -reg370 /treg -mon370 /tmon
stick_sensors undefined undefined
# lakeshore 370 ctrl
makenv treg -driver 370_lsc -port dil3-ts:3001 {
# curves for sample:
# u02045 normal dil2 holder
# m59 old dil2 weak link
# ruoxben1k weak link with test ring heater
# ruox5k weak link with test ring heater
# standard ch6 cx262 (new sensor from Sep2014)
# heater/thermo ch8 rx262 (new field insensitive sensor Sep2014)
lsc_sensor sample -channel 6 -sensor cx262 -active 0 -excitation 20uV \
-color blue
lsc_sensor mix -channel 5 -sensor ruoxm0 -active 1 -excitation 20uV \
-color cyan
lsc_sensor samplehtr -channel 8 -sensor rx262 -active 0 -excitation 20uV \
-color black
# weaklink heater
lsc_loop set -channel 5 -maxheater 31mA -resist 316 -linearpower 0.2e-3
GraphAdd treg.set.reg K T_set dark_green
GraphAdd treg.set.power W Htr_Power dark_green
}
# fix a bug (in the 370?): set the HRTRNG to 7 (31mA) when needed
hsetprop /treg/set fix_range 7
# lakeshore 370 monitor
makenv tmon -driver 370_lsc -port dil3-ts:3003 {
lsc_sensor sorb -channel 12 -sensor c270 -excitation 2mV -color dark_violet
lsc_sensor onek -channel 11 -sensor ruoxm0 -excitation 2mV -color yellow
lsc_sensor stillt -channel 10 -sensor ruoxm0 -excitation 200uV -color orange
lsc_sensor goniot -channel 2 -sensor gonio -excitation 20uV -color red
lsc_sensor sample 3 clone
lsc_sensor samplehtr 1 clone
lsc_sensor mix 4 clone
}
proc graphvti {} {
GraphItem shown tt.ts 0
GraphItem label tt.set.reg VTI_reg
GraphItem label tt.set.power VTI_power
}
dolater 0 graphvti
tt ts/curve undefined
hsetprop /tt group "VTI temperature"
makeDil -port dil3-ts:3005
makenv sorb -driver piloop -invar "/tmon/sorb" -outvar "dil psorb" \
-prop 200 -int 15
makenv n2trap -driver n2_ccu -port dil3-ts:3007 "trap level" trap
# control on mix by default (todo: check for unknown first/check default mechanism)
ts control 6
treg set/deriv 0
# Sept 2015: we have too much mixture in the dump:
ts auto/dumptarget 150
defineTemperature ts
dil extVersion 0
# take last selected values when doing samenv reload
catch {default ts control}
catch {default ts heaterselect}
# _treg updatescript /treg/sample "lsc::updatesensor370 /ts"
# makenv td -driver loop -invar "/tmon/sample" -outvar "treg set" -prop 1 -int 100 -outmax 1

View File

@ -0,0 +1,76 @@
stickDesc = dilution insert (added channels 2 blue, 9 yellow, 16 red)
stick_sensors undefined undefined
makenv ts -driver dil12 -reg370 /treg -mon370 /tmon -hasturbo 1
# lakeshore 370 ctrl
makenv treg -driver 370_lsc -port dil4-ts:3001 {
# curves for sample:
# u02045 normal dil2 holder
# m59 weak link 2
# ruoxben1k weak link with test ring heater
# ruox5k weak link with test ring heater
# standard ch6 cx078 (new sensor from Sep2014)
# heater/thermo ch8 rx078 (new field insensitive sensor Sep2014)
lsc_sensor sample -channel 6 -sensor cx078 -active 0 -excitation 20uV \
-color blue
lsc_sensor mix -channel 5 -sensor ruoxm0 -active 1 -excitation 20uV \
-color cyan
lsc_sensor samplehtr -channel 8 -sensor rx078 -active 0 -excitation 20uV \
-color black
# weaklink heater
lsc_loop set -channel 5 -maxheater 31mA -resist 316 -linearpower 0.2e-3
GraphAdd treg.set.reg K T_set dark_green
GraphAdd treg.set.power W Htr_Power dark_green
}
# fix a bug (in the 370?): set the HRTRNG to 7 (31mA) when needed
hsetprop /treg/set fix_range 7
# lakeshore 370 monitor
makenv tmon -driver 370_lsc -port dil4-ts:3003 {
lsc_sensor sorb -channel 12 -sensor c270 -excitation 2mV -color dark_violet
lsc_sensor onek -channel 11 -sensor ruoxm0 -excitation 2mV -color yellow
lsc_sensor stillt -channel 10 -sensor ruoxm0 -excitation 200uV -color orange
lsc_sensor rblue -channel 2 -sensor raw -excitation 20uV
lsc_sensor ryellow -channel 9 -sensor raw -excitation 20uV
lsc_sensor rred -channel 16 -sensor raw -excitation 20uV
lsc_sensor sample 3 clone
lsc_sensor samplehtr 1 clone
lsc_sensor mix 4 clone
}
proc graphvti {} {
GraphItem shown tt.ts 0
GraphItem label tt.set.reg VTI_reg
GraphItem label tt.set.power VTI_power
}
dolater 0 graphvti
tt ts/curve undefined
hsetprop /tt group "VTI temperature"
makeDil -port dil4-ts:3005
makenv sorb -driver piloop -invar "/tmon/sorb" -outvar "dil psorb" \
-prop 200 -int 15
#makenv n2trap -driver n2_ccu -port dil4-ts:3007 "trap level" trap
# control on mix by default
ts control 6
treg set/deriv 0
defineTemperature ts
dil extVersion 1
# take last selected values when doing samenv reload
catch {default ts control}
catch {default ts heaterselect}
#makenv -objname condflow -driver bronkfreg -port dil4-ts:3008 200. condflow
#GraphAdd condflow mln-min condflow magenta

44
tcl/archive/dilRDR2.stick Normal file
View File

@ -0,0 +1,44 @@
stickDesc = dilution insert RDR2
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
lsc_sensor mcbot -channel 14 -sensor raw -active 1 -excitation 63uV -color blue
lsc_sensor hxup -channel 9 -sensor raw -active 1 -excitation 63uV -color cyan
lsc_sensor still -channel 13 -sensor raw -active 1 -excitation 200uV -color red
# MC heater
lsc_loop set -channel 14 -maxheater 3.16mA -resist 120
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor ruox408 -active 1 -excitation 63uV -color yellow
}
GraphAdd tmon.analog2 pers Htr_Still red
makenv tbath -driver avs45 -port ldmse-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmse3-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmse3-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmse3-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmse3-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmse3-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmse3-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar

View File

@ -0,0 +1,58 @@
stickDesc = dilution insert RDR2
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
lsc_sensor mcbot -channel 14 -sensor raw -active 0 -excitation 63uV -color blue
lsc_sensor hxup -channel 9 -sensor raw -active 0 -excitation 63uV -color cyan
lsc_sensor still -channel 13 -sensor raw -active 1 -excitation 200uV -color red
# MC heater
lsc_loop set -channel 13 -maxheater 3.16mA -resist 120
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor ruox408 -active 1 -excitation 63uV -color yellow
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tsample.set.reg K T_set green
GraphAdd tsample.set.power W Htr_Power green
}
GraphAdd tmon.analog2 pers Htr_Still red
makenv tbath -driver avs45 -port ldmse3-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmse3-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmse3-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmse3-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmse3-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmse3-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmse3-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar
#define current source
makenv curr -driver k2601b -port ldmse3-ts:3005
makenv volt -driver nanov -port ldmse3-ts:3006
GraphAdd curr.Imeas A VL_current
GraphAdd curr.Pmeas W VL_dissipation
GraphAdd curr.Vmeas V VL_Vkeith
GraphAdd volt.u1 V VL_Volt

View File

@ -0,0 +1,58 @@
stickDesc = dilution insert RDR2
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
lsc_sensor mcbot -channel 14 -sensor matsh100 -active 0 -excitation 63uV -color blue
# lsc_sensor hxup -channel 9 -sensor raw -active 0 -excitation 63uV -color cyan
lsc_sensor still -channel 13 -sensor speer220 -active 1 -excitation 200uV -color red
# MC heater
lsc_loop set -channel 13 -maxheater 3.16mA -resist 120
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor ruox408 -active 1 -excitation 63uV -color yellow
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tsample.set.reg K T_set green
GraphAdd tsample.set.power W Htr_Power green
}
GraphAdd tmon.analog2 pers Htr_Still red
makenv tbath -driver avs45 -port ldmse3-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmse3-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmse3-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmse3-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmse3-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmse3-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmse3-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar
#define current source
makenv curr -driver k2601b -port ldmse3-ts:3005
makenv volt -driver nanov -port ldmse3-ts:3006
GraphAdd curr.Imeas A VL_current
GraphAdd curr.Pmeas W VL_dissipation
GraphAdd curr.Vmeas V VL_Vkeith
GraphAdd volt.u1 V VL_Volt

51
tcl/archive/dilRDR5.stick Normal file
View File

@ -0,0 +1,51 @@
stickDesc = dilution insert RDR5
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
# lsc_sensor mcbot -channel 14 -sensor RCW575 -active 1 -excitation 63uV -color blue
lsc_sensor mctop -channel 12 -sensor RCW575 -active 1 -excitation 63uV -color cyan
lsc_sensor still -channel 13 -sensor RCW575 -active 1 -excitation 200uV -color red
# lsc_sensor t2k -channel 5 -sensor RCW575 -active 1 -excitation 200uV -color green
# MC heater
lsc_loop set -channel 12 -maxheater 10mA -resist 120
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor rx102aa -active 1 -excitation 63uV -color yellow
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tsample.set.reg K T_set dark_green
GraphAdd tsample.set.power W Htr_Power dark_green
}
GraphAdd tmon.analog2 pers Htr_Still red
makenv tbath -driver avs45 -port ldmse3-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmse3-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmse3-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmse3-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmse3-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmse3-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmse3-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar

53
tcl/archive/dilRDRN.stick Normal file
View File

@ -0,0 +1,53 @@
stickDesc = dilution insert RDRN
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
lsc_sensor mctop -channel 1 -sensor RCW575 -active 1 -excitation 200uV
lsc_sensor mcbot -channel 2 -sensor RCW575 -active 1 -excitation 200uV
lsc_sensor ch3 -channel 3 -sensor RCW575 -active 1 -excitation 200uV
lsc_sensor still -channel 4 -sensor RCW575 -active 1 -excitation 200uV
lsc_sensor t2k -channel 5 -sensor RCW575 -active 1 -excitation 200uV
# MC heater
lsc_loop set -channel 1 -maxheater 10mA -resist 800
lsc_analog -maxuser 3.8 -maxvolt 3.8
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor rx102aa -active 1 -excitation 63uV -color yellow
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tsample.set.reg K T_set dark_green
GraphAdd tsample.set.power W Htr_Power dark_green
}
GraphAdd tmon.analog2 pers Htr_Still red
makenv tbath -driver avs45 -port ldmse3-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmse3-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmse3-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmse3-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmse3-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmse3-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmse3-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar

View File

@ -0,0 +1,7 @@
deviceDesc = dil heater test
makenv dh -driver dilhtr -port ets-62a713.psi.ch:3009
GraphAdd dh mW power_set green
GraphAdd dh.power mW power_rd red
GraphAdd dh.resistance Ohm R red

View File

@ -0,0 +1,57 @@
stickDesc = dilution insert 1989 RDR18
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
lsc_sensor mcbot -channel 1 -sensor RCW575 -active 1 -excitation 63uV -color blue
lsc_sensor mctop -channel 2 -sensor RCW575 -active 1 -excitation 63uV -color cyan
lsc_sensor still -channel 4 -sensor RCW575 -active 1 -excitation 200uV -color red
lsc_sensor t2k -channel 5 -sensor RCW575 -active 1 -excitation 200uV -color green
# MC heater
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor ruox408 -active 1 -excitation 63uV -color yellow
# sample holder heater
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tsample.set.reg K T_set_sample dark_green
GraphAdd tsample.set.power W Htr_Power_sample dark_green
}
GraphAdd tmon.analog2 % Htr_Still red
makenv tbath -driver avs45 -port ldmse3-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmse3-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmse3-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmse3-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmse3-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmse3-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmse3-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar
#define current source
makenv curr -driver k2601b -port ldmse3-ts:3005
makenv volt -driver nanov -port ldmse3-ts:3006
GraphAdd curr.Imeas A VL_current
GraphAdd curr.Pmeas W VL_dissipation
GraphAdd curr.Vmeas V VL_Vkeith
GraphAdd volt.u1 V VL_Volt

View File

@ -0,0 +1,45 @@
stickDesc = dilution insert 1986 RDR18
# lakeshore 370 ctrl 1
makenv tmon -driver 370_lsc -port ldmse3-ts:3002 {
# curves for sample:
# ruoxben1k weak link with test ring heater
lsc_sensor mcbot -channel 1 -sensor RCW575 -active 1 -excitation 63uV -color blue
lsc_sensor mctop -channel 2 -sensor RCW575 -active 1 -excitation 63uV -color cyan
lsc_sensor still -channel 4 -sensor RCW575 -active 1 -excitation 200uV -color red
lsc_sensor t2k -channel 5 -sensor RCW575 -active 1 -excitation 200uV -color green
# MC heater
lsc_loop set -channel 1 -maxheater 3.16mA -resist 120
GraphAdd tmon.set.reg K T_set dark_green
GraphAdd tmon.set.power W Htr_Power dark_green
}
# lakeshore 370 ctrl 2
makenv tsample -driver 370_lsc -port ldmse3-ts:3003 {
#curves for sample temperature:
lsc_sensor sample -channel 1 -sensor rx102aa -active 1 -excitation 63uV -color yellow
}
GraphAdd tmon.analog2 pers Htr_Still red
makenv tbath -driver avs45 -port ldmlab1-ts:3004
GraphAdd tbath Ohm R_bath
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv P6 -driver ana8 -controller ana -port ldmlab1-ts:3008 0 $div100
makenv P7 -driver ana8 -controller ana -port ldmlab1-ts:3008 1 $div100
makenv P8 -driver ana8 -controller ana -port ldmlab1-ts:3008 2 $div100
makenv P10 -driver ana8 -controller ana -port ldmlab1-ts:3008 3 $div100
makenv P2 -driver ana8 -controller ana -port ldmlab1-ts:3008 4 $div 0 tpr010
makenv P4 -driver ana8 -controller ana -port ldmlab1-ts:3008 5 $div 0 tpr010
GraphAdd P6 mbar
GraphAdd P7 mbar
GraphAdd P8 mbar
GraphAdd P10 mbar
GraphAdd P2 mbar
GraphAdd P4 mbar

View File

@ -0,0 +1,60 @@
namespace eval DAQ {} {
}
proc stdConfig::DAQ {} {
controller std "\n" 20
prop startcmd "*IDN?"
obj DAQ -none
kids settings {
node resist upd
node stddev upd
node file upd
node measure out
default 0
prop write DAQ::measure
prop enum 1
node freq out
default 5000.0
prop write DAQ::setval
node ampl out
default 0.1
prop write DAQ::setval
}
}
proc DAQ::measure {} {
sct send "AQUIRE"
return DAQ::update
}
proc DAQ::update {} {
set output [sct result]
set items [split $output ","]
hupdate [sct parent]/resist [lindex $items 0]
hupdate [sct parent]/stddev [lindex $items 1]
hupdate [sct parent]/file [lindex $items 2]
hupdate [sct] 0
return idle
}
proc DAQ::setval {} {
sct send "PULSE [format "%0.2f" [sctval [sct parent]/freq]] [format "%0.3f" [sctval [sct parent]/ampl]]"
# clientput "PULSE [format "%0.2f" [sctval [sct parent]/freq]] [format "%0.3f" [sctval [sct parent]/ampl]]"
return DAQ::readval
}
proc DAQ::readval {} {
set dat [sct result]
scan $dat "F=%fHz; A= %fVpp" f a
hupdate [sct parent]/freq $f
hupdate [sct parent]/ampl $a
return idle
}

View File

@ -0,0 +1,122 @@
# read 8 ADC channels with taskit RS232 ADC
namespace eval ana8 {
}
if {![namespace exists lsc]} {
source drivers/lsc.tcl
}
proc stdConfig::ana8 {channel {scale 1} {offset 0} {curve ""}} {
controller std "\r" 2
prop node_$channel 0
prop time_$channel 0
poll 1 read ana8::poll
pollperiod 5
obj ANA8 rd
prop read "ana8::read $channel"
variable name
variable path
kids "$name analog input" {
node scale par $scale
node offset par $offset
node raw upd
node curve out -text
prop width 32
prop model 0
prop check ana8::curve
prop write stdSct::completeUpdate
kids "calibration" {
hfactory $path/points plain mugger floatvarar 1
}
}
if {$curve ne "" && $curve ne "raw"} {
hset /$name/curve $curve
} else {
hupdate /$name/curve ""
}
return "ANA8"
}
proc ana8::start {} {
# set adc rate to 11
sct send ":10000D000102000B.."
return ana8::start2
}
proc ana8::start2 {} {
# set all i/o to output / push-pull / low
sct send ":10000000030600FF00FF0000.."
return ana8::getidn
}
proc ana8::getidn {} {
sct send ":0300030001.."
return stdSct::completeStart
}
proc ana8::read {channel} {
sct node_$channel [sct]
sct time_$channel [DoubleTime]
return idle
}
proc ana8::poll {} {
set now [DoubleTime]
set channels [list ]
foreach channel {0 1 2 3 4 5 6 7} {
if {$now < [silent 0 sct time_$channel] + 30} {
lappend channels $channel
}
}
if {[llength $channels] == 0} {
return idle
}
set first [lindex $channels 0]
set nchan [expr [lindex $channels end] - $first + 1]
if {$nchan > 0} {
sct channels $channels
sct nchan $nchan
sct send ":04000${first}000${nchan}.."
return ana8::update
}
return idle
}
proc ana8::update {} {
set first [lindex [sct channels] 0]
set nb [format %.2X [expr [sct nchan] * 2]]
set res [scan [sct result] ":04${nb}%4x%4x%4x%4x%4x%4x%4x%4x" a0 a1 a2 a3 a4 a5 a6 a7]
if {$res < [sct nchan]} {
error "bad response to '[sct send]': '[sct result]'"
}
foreach ch [sct channels] {
set i [expr $ch - $first]
set scale [hval [sct node_$ch]/scale]
set offset [hval [sct node_$ch]/offset]
# 26214 = (2^32-1) steps / 2.5 V
set raw [expr [set a$i] / 26214. * $scale + $offset]
set node [sct node_$ch]
updateval $node/raw $raw
if {[hval $node/curve] eq ""} {
updateval $node $raw
} else {
set t [interpolate [hvali $node/curve/points] 0 $raw logy extrapolate]
updateval $node $t
}
}
return idle
}
proc ana8::curve {} {
if {[sct requested] ne "" && [sct requested] ne "raw"} {
lsc::read_curve
}
}

View File

@ -0,0 +1,10 @@
namespace eval anders {
}
proc stdConfig::anders {} {
controller std "\n++read eoi\n"
obj TCOUPLE rd
prop readcmd "SETP?1"
prop readfmt "%g"
}

View File

@ -0,0 +1,27 @@
# ASM 120 h, analog output read by fluke 45
namespace eval asm120h {} {
}
proc stdConfig::asm120h {} {
controller std "\n" 5 ">"
prop startcmd "*IDN?"
obj Fluke45 rd
prop read asm120h::read
prop readcmd "MEAS?"
prop readfmt "%g"
}
proc asm120h::read {} {
sct send "MEAS?"
return asm120h::update
}
proc asm120h::update {} {
set res 0
scan [sct result] %f res
sct update [expr $res - 9]
return idle
}

View File

@ -0,0 +1,130 @@
namespace eval asm142 {} {
}
proc stdConfig::asm142 {} {
controller bin
pollperiod 0.01
obj ASM142 rd
prop read asm142::read
kids "leak detector" {
node p upd
node state upd
prop enum standby,cycle,test
node vent upd
prop enum 1
node manualvalve par 0
prop enum 1
}
}
proc asm142::read {} {
# we wait for at least one byte. the bin driver adds additional bytes
# arriving immediately, but as we are sending nothing, nothing is purged
# (modification of SICS 22.10.2014)
sct send " / hex"
return asm142::update
}
proc asm142::update {} {
# Format of data sent from ASM142 to its remote control:
# ff <adr> <data>
# for <adr>==04 <data> is 2 bytes, for all other known <adr> 1 byte
# several (not always all) data chunks are sent one by one
# at the end, "ff 00 00" is sent, and the remote control respond is
# "00 00" (or i.e. "00 02" when CYCLE is pressed)
# if the remote control is not connected, only ff "00 00" is sent
# known data chunks:
# 01 <i>: mbar bargraph (<i> = 1 ... 20, meaning 1e-3 ... 2e+3, 3 per magnitude)
# 02 <i>: leak rate bargraph (<i> = 1 ... 40, meaning 1.7e-12 ... 1e-2)
# 04 nm cl: leak rate (n.mE-l, BCD format, where c seems to be the code for "-")
# 06 10tzaclr (LEDs bits: test, zero, autocal, cycle, left, right)
# 07 0000v0s0 (LEDs bits: vent, snif)
# 0d <i>: threshold for leak rate (blinking) (<i> = 128 + bar number)
set buf [silent "" sct buf]
set res [concat [silent "" sct oldres] [sct result]]
#clientput $res
foreach byte $res {
if {$byte eq "ff"} {
if {[llength $buf] > 0} {
set adr [lindex $buf 1]
set val [lrange $buf 2 end]
switch $adr {
04 {
set exp1 0
scan $val "%1s%1s %1s%1s" dig1 dig2 exp1 exp2
switch $exp1 {
3 {set exp1 "e-1"}
c {set exp1 "e-"}
}
if {$exp1 ne "0"} {
sct update "${dig1}.${dig2}${exp1}${exp2}"
}
}
01 {
set p 0
scan $val "%x" p
updateval [sct]/p [expr pow(10, ($p-1)/3.0) * 0.001]
}
06 {
set state 0
set led 0
scan $val "%x" led
if {$led & 32} {
set state 2
} elseif {$led & 4} {
set state 1
}
updateval [sct]/state $state
}
07 {
set vent 0
set led 0
scan $val "%x" led
if {$led & 8} {
set vent 1
}
updateval [sct]/vent $vent
}
# 02 - 0d {
# # ignore leak rate bar and level
# set press 0
# scan $val "%x" p
# updateval [sct]/p [expr pow(10, ($p-1)/3.0) * 0.001]
# }
# default {
# set old ""
# global pars
# catch {set old $pars($adr)}
# if {$old ne $val} {
# set pars($adr) $val
# clientput "${adr}:${val}"
# }
# }
}
set buf ""
}
set buf $byte
} else {
append buf " $byte"
if {$buf eq "ff 00 00" && [silent 0 sct noremote]} {
#clientput "send 00 00"
sct buf ""
sct send "00 00 /"
return asm142::readnext
}
}
}
sct buf $buf
return idle
}
proc asm142::readnext {} {
sct oldres [sct result]
return idle
}

View File

@ -0,0 +1,50 @@
# ASM340 RS232 interface.
# Setup: >EINSTELLUNGEN>Extras>Seriell Schnittstelle#1
# Typ: Seriell
# >Konfiguration
# Betriebsart: Tabelle
# Zeitintervall: 1 s
# Handshake: None
# Versor.pin9: 5 Volt (not relevant)
#
namespace eval asm340 {} {
}
proc stdConfig::asm340 {} {
controller std timeout=10
# pollperiod 1 1
obj ASM340 rd
prop read asm340::read
kids "ASM 340" {
node p upd
node text -text upd
}
}
proc asm340::read {} {
sct send "@@NOSEND@@"
return asm340::update
}
proc asm340::update {} {
if {[scan [sct result] "%s %s S=%s P=%s %s %s" x e s p t f] == 6} {
sct update $s
updateval [sct]/p $p
if {$e ne "on"} {
set tail "filament off"
} else {
set tail ""
}
updateval [sct]/text "$x $tail"
} else {
clientput "NO"
sct geterror "syntax error"
hsetprop [sct]/p geterror "syntax error"
updateval [sct]/text [sct result]
clientput "NO [sct result]"
}
return idle
}

View File

@ -0,0 +1,13 @@
namespace eval avs45 {} {
}
proc stdConfig::avs45 {} {
controller std sendterminator=\r
# attention: baud rate 4800
obj AVS45 rd
prop readcmd "D"
prop readfmt "%g"
}

View File

@ -0,0 +1,22 @@
namespace eval bin {} {
}
proc stdConfig::bin {} {
controller bin chksum-crc 5
obj BIN upd
prop read bin::poll
}
proc bin::read {} {
sct send " / dump"
sct print poll
return bin::update
}
proc bin::update {} {
sct print [sct result]
return idle
}

View File

@ -0,0 +1,82 @@
# calibration with a 370 using 6 channels
# datafile format: <time> <log10(R)> <channel>
namespace eval calib370 {} {
}
proc stdConfig::calib370 {} {
variable ctrl
controller std "\n" 5
prop startcmd "*IDN?"
obj calib370 rd
default 0
prop read calib370::read
prop period 30
prop period0 0
kids "Sensor Channels" {
node chan1 upd
prop newline 1
node active1 par 1
prop enum 1
node chan2 upd
node active2 par 1
prop enum 1
node chan3 upd
node active3 par 1
prop enum 1
node chan4 upd
node active4 par 1
prop enum 1
node chan5 upd
node active5 par 1
prop enum 1
node chan6 upd
node active6 par 1
prop enum 1
}
}
proc calib370::read {} {
if {[sct period] ne [sct period0]} {
[sct controller] poll [sct] [sct period] read read
sct period0 [sct period]
}
if {[hvali [sct]] > 0} {
sct send "RDGR?[hvali [sct]]"
sct utime send_time
if {[silent 0 sct base_time] == 0} {
sct base_time [expr [clock seconds] / 3600 * 3600]
}
return calib370::update
}
sct update 1
sct send "SCAN 1,0;SCAN?"
return stdSct::complete
}
proc calib370::update {} {
set chan [hvali [sct]]
set value [expr log10([sct result])]
hdelprop [sct]/chan$chan geterror
hupdate [sct]/chan$chan $value
set file [silent 0 sct outputfile]
if {$file ne "0"} {
set fd [open $file a]
set now [expr [sct utime] * 0.5 + [sct send_time] * 0.5 - [sct base_time]]
puts $fd [format "%.3f\t%.6f\t%d" $now $value $chan]
close $fd
}
for {set i 0} {$i < 6} {incr i} {
incr chan
if {$chan > 6} {
set chan 1
}
if {[hvali [sct]/active$chan]} {
break
}
}
sct update $chan
sct send "SCAN $chan,0;SCAN?"
return stdSct::complete
}

View File

@ -0,0 +1,45 @@
namespace eval cryocon_sniffer {} {
}
proc stdConfig::cryocon_sniffer {} {
controller std "\n" 5
pollperiod 0.001 0.001
obj CryoconSniffer rd
prop read cryocon_sniffer::read
prop rdcmd "INPUT A:SENPR?"
prop path ""
kids "cryocon" {
# node tb upd
# prop rdcmd "INPUT B:SENPR?"
node l1 upd
prop rdcmd "LOOP 1:OUTPWR?"
node l2 upd
prop rdcmd "LOOP 2:OUTPWR?"
}
}
proc cryocon_sniffer::read {} {
sct send "@@NOSEND@@"
return cryocon_sniffer::update
}
proc cryocon_sniffer::update {} {
if {[sct result] eq [sct rdcmd]} {
sct path [sct]
return idle
}
foreach var [hlist [sct]] {
if {[sct result] eq [silent "" hgetpropval [sct]/$var rdcmd]} {
sct path [sct]/$var
return idle
}
}
if {[sct path] ne ""} {
updateval [sct path] [sct result]
sct path ""
}
return idle
}

View File

@ -0,0 +1,48 @@
namespace eval cryotel {} {
}
proc stdConfig::cryotel {} {
# controler uses std with send terminator "\r" 5sec comm.interval receive terminator "\n" and multi line replies will be separated by ","
controller std "\r" 5 "\n" ","
# the {2} in addition to the command defines the number of expected return values
prop startcmd "SERIAL{2}"
# driver for Sunpower stirling cooler CryoTel
# serial interface is set to:
# Char Size/Stop Bits: 8/1 Input Speed: 4800
# Flow Ctrl: None Output Speed: 4800
# Parity: None Modem Control: None
obj cryo rd
prop label Temperature
prop readcmd "TC{2}"
prop readfmt "TC ,%f"
#cryotel::readT
kids cryo {
node setT wr
prop label Setpoint
prop writecmd "SET TTARGET=%.2f"
prop readcmd "SET TTARGET{2}"
prop readfmt "SET TTARGET ,%f"
node power rd
prop label Power
prop readcmd "P{2}"
prop readfmt "P ,%f"
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"
}
}

View File

@ -0,0 +1,84 @@
# based on untested flowbusprot, not used M.Z. Feb 2017
namespace eval flowbus {} {
}
proc stdConfig::flowbus {label scale {adr 128} {readonly 0}} {
controller flowbus "\r\n"
# driver for Bronkhorst Flow or Pressure regulator (i.e.P-602CV-21KA-AAD)
# serial interface is set to:
# Char Size/Stop Bits: 8/1 Input Speed: 38400
# Flow Ctrl: None Output Speed: 38400
# Parity: None Modem Control: None
# syntax (chaining not mentioned):
# read command: :06Ad04CopyPrTp
# write command: :LnAd01PrTpData
# where:
# Ln: number of bytes (hex digits pairs) following
# Ad: node address (starting from 3)
# Copy: values just to be copied by the reply (first and third digit < 8)
# recommended practice: Use PrTp for Copy
# Pr: Process number (<80)
# Tp: Type + parameter number. Type: 00 byte, 20 int, 40 long/float, 60 string
# for strings either 00 (for nul terminated) or the max. number of chars
# has to be appended to the type
# Data: length depending on type.
# the interface returns readings on a scale where 32000 is 100%
set adr [format %02x $adr]
clientput "BRONK $label $scale $adr"
obj bflow rd
prop label $label
prop readcmd "r$adr 1 i0"
prop readfmt "%d"
prop update flowbus::conv $scale
prop @adr $adr
kids "$label" {
node setpoint wr
prop label Setpoint
prop write flowbus::setp $scale
prop readcmd "r$adr 1 i1"
prop readfmt "%d"
prop update flowbus::conv $scale
}
}
proc flowbus::conv {scale} {
if {[scan [sct result] [sct readfmt] flow ] != 1} {
error "bad result format: '[sct result]'"
}
sct update [format %.6g [expr $flow * $scale / 32000.]]
return idle
}
proc flowbus::setp {scale} {
set setval [expr int( [sct target] * 32000.0 / $scale) ]
if {$setval > 32000 } {
if {$setval < 32320} {
set setval 32000
} else {
error "[sct]: setpoint [sct target] must be <= $scale"
}
} elseif {$setval < 0 } {
error "[sct]: setpoint [sct target] must be >= 0"
}
sct send "w [sct @adr] 1 i1=$setval"
return "flowbus::acknowledge"
}
proc flowbus::acknowledge {} {
if {[string compare [sct result] "0" ] != 0} {
error "bad result format: '[sct result]' [sct result]"
}
return read
}

View File

@ -0,0 +1,56 @@
namespace eval ihelium3_cryocon {} {
}
proc stdConfig::ihelium3_cryocon {} {
controller std "\n" 5
pollperiod 0.001 0.001
obj CryoconSniffer rd
prop read ihelium3_cryocon::read
prop path ""
kids "cryocon" {
# node tb upd
# prop rdcmd "INPUT B:SENPR?"
node ra upd
prop rdcmd "INPUT A:SENPR?"
prop sensno 054
node l1 upd
prop rdcmd "LOOP 1:OUTPWR?"
node l2 upd
prop rdcmd "LOOP 2:OUTPWR?"
node bref par 0
}
}
proc ihelium3_cryocon::read {} {
sct send "@@NOSEND@@"
return ihelium3_cryocon::update
}
proc ihelium3_cryocon::update {} {
foreach var [hlist [sct]] {
if {[sct result] eq [silent "" hgetpropval [sct]/$var rdcmd]} {
sct path [sct]/$var
return idle
}
}
if {[sct path] ne ""} {
updateval [sct path] [sct result]
set sensno [silent "" hgetpropval [sct path] sensno]
sct path ""
if {$sensno ne ""} {
if {![silent 0 sct $sensno]} {
ihelium3_calib $sensno
sct $sensno 1
}
set tk [ihelium3_res2temp $sensno [hvali [sct]/bref] [sct result]]
sct update $tk
}
}
return idle
}

View File

@ -0,0 +1,25 @@
# itc503 simple nv control
namespace eval itc503p {} {
}
proc stdConfig::itc503p {} {
controller std "\r" 5
prop startcmd "V"
obj nv rd
prop readcmd "R7"
prop readfmt "R%g"
kids nvoi {
node set wr
prop read stdSct::read
prop readcmd "R7"
prop readfmt "R%g"
prop write itc503p::write
}
}
proc itc503p::write {} {
sct send [format G%3.0f [sct target]]
return read
}

View File

@ -0,0 +1,61 @@
# keithley 2701 Digital multimeter
namespace eval kdvm {} {
}
proc stdConfig::kdvm {} {
controller std "\n" 5
prop startcmd "*IDN?"
obj Keithley2701 rd -none
prop read kdvm::read
kids channels {
node u1 upd
node u2 upd
node chan out
default 0
prop write kdvm::setchan
prop enum auto,chan1,chan2
}
}
proc kdvm::read {} {
sct send "READ?"
return kdvm::update
}
proc kdvm::update {} {
set mode [hvali [sct]/chan]
if {$mode == 0} {
set chan [silent 1 sct channel]
} else {
set chan $mode
}
hupdate [sct]/u$chan [sct result]
hdelprop [sct]/u$chan geterror
if {$mode != 0} {
return idle
}
set chan [expr 3-$chan]
sct send "ROUT:CLOS (@10${chan}); *IDN?"
sct channel $chan
return stdSct::complete
}
proc kdvm::setchan {} {
set mode [sct target]
if {$mode == 0} {
sct update $mode
return idle
}
set chan $mode
sct send "ROUT:CLOS (@10${chan}); *IDN?"
sct channel $chan
return kdvm::updatechan
}
proc kdvm::updatechan {} {
sct update [sct result]
return idle
}

View File

@ -0,0 +1,14 @@
namespace eval kei195 {} {
}
proc stdConfig::kei195 {} {
controller std "sendterminator=\n"
# prop startcmd "++addr 16"
obj kei195 rd
prop readcmd "++read eoi"
prop readfmt "NDCV %g"
# kids "avs settings" { }
}

View File

@ -0,0 +1,36 @@
namespace eval lowdpflow {} {
}
proc stdConfig::lowdpflow {} {
controller std "\r\n"
# driver for mass flow meter bronkhorst low-dp-flow
# serial interface is set to:
# Char Size/Stop Bits: 8/1 Input Speed: 38400
# Flow Ctrl: None Output Speed: 38400
# Parity: None Modem Control: None
obj low-dp-flow rd
# 0C=length
# 80=address
# 04=read
# 00 not chained, custom process 0
# 40 not chained, float, custom parameter 0
# 21 process 33
# 40 float, parameter 0
prop readcmd ":06800400402140"
prop readfmt ":0880020040%8s"
prop update lowdpflow::update
}
proc lowdpflow::update {} {
if {[scan [sct result] [sct readfmt] flow] != 1} {
error "bad result format: '[sct result]' $flow"
}
set flow [cnvrt xieee2float $flow]
sct update $flow
return idle
}

View File

@ -0,0 +1,86 @@
#LS370 simple driver
namespace eval ls370bf {} {
}
proc stdConfig::ls370bf {} {
variable ctrl
controller std "\n" 5
prop startcmd "*IDN?"
obj ls370bf rd
default 0
prop read ls370bf::read
prop period 15
prop period0 0
kids "Sensor Channels" {
node set wr
prop writecmd "SETP %g;*OPC?"
prop readcmd "SETP?"
prop readfmt "%g"
node htr rd
prop readcmd "HTR?"
prop readfmt "%g"
node still wr
prop writecmd "STILL %g;*OPC?"
prop readcmd "STILL?"
prop readfmt "%g"
foreach chan {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16} {
node active$chan par 1
prop enum 1
if {$chan == 1} {
prop newline 1
}
}
foreach chan {1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16} {
node chan$chan upd
if {$chan == 1} {
prop newline 1
}
node res$chan upd
}
}
}
proc ls370bf::read {} {
if {[sct period] ne [sct period0]} {
[sct controller] poll [sct] [sct period] read read
sct period0 [sct period]
}
if {[hvali [sct]] > 0} {
sct send "RDGK?[hvali [sct]]"
return ls370bf::readR
}
sct update 1
sct send "SCAN 1,0;SCAN?"
return stdSct::complete
}
proc ls370bf::readR {} {
set chan [hvali [sct]]
hdelprop [sct]/chan$chan geterror
hupdate [sct]/chan$chan [sct result]
sct send "RDGR?$chan"
return ls370bf::update
}
proc ls370bf::update {} {
set chan [hvali [sct]]
hdelprop [sct]/res$chan geterror
hupdate [sct]/res$chan [sct result]
for {set i 0} {$i < 16} {incr i} {
incr chan
if {$chan > 16} {
set chan 1
}
if {[hvali [sct]/active$chan]} {
break
}
}
sct update $chan
sct send "SCAN $chan,0;SCAN?"
return stdSct::complete
}

View File

@ -0,0 +1,53 @@
namespace eval moxa {
}
proc stdConfig::moxa {} {
variable ctrl
variable node
if {[controller tmo 10 2]} {
controllerDesc "MOXA http connection"
}
obj moxa out
default 0
prop check moxa::check
prop write moxa::getline
prop connections ""
$ctrl queue $node write moxa::getline
}
proc moxa::getline {} {
sct send "GET /Mn_line.htm HTTP/1.1\r\n"
return moxa::updateline
}
proc moxa::updateline {} {
set r [sct result]
set l 0
set pattern {<TR><TD>(.*?)</TD><TD>TCP Server Mode</TD><TD>(.*?)</TD>.*?</TR>}
array set iplist {}
while {[regexp -start $l -indices ($pattern) $r idx]} {
set l [lindex $idx 1]
set line [string range $r [lindex $idx 0] $l]
regexp $pattern $line all port ip
if {$ip ne "Listen"} {
lappend iplist($ip) [expr 3000+$port]
}
}
sct connections [array get iplist]
sct update 0
clientput "connections: [sct connections]"
# seaclient hostport ${ip}:${po}
# seaclient cmd "disconnect_from [sct sicsdev]"
return idle
}
proc moxa::check {} {
sct connections ""
sct update [sct target]
[sct controllerName] reconnect
}

View File

@ -0,0 +1,17 @@
namespace eval nvdummy {} {
}
proc stdConfig::nvdummy {} {
controller syncedprot
obj NvDummy par 0
kids "nv dummy" {
node set par 0
node flow par 5
node autoflow par 0
kids "autoflow" {
node flowtarget par 5
}
}
}

View File

@ -0,0 +1,191 @@
namespace eval nvstep {
}
proc stdConfig::nvstep {} {
variable name
controller syncedprot
pollperiod 1 1
obj NvStep wr
prop write nvstep::setmode
prop read nvstep::read
prop enum fixed=0,controlled=1,automatic=2,close=3,open=4
prop write nvstep::write
prop lastpulse 0
prop filter 0
prop closetest 0
default 0
kids "needle value" {
node motpos upd
node flow upd
node set out
default 2.5
prop check nvstep::checkset
prop write stdSct::complete
prop label "flow set"
node flowmax par 20
prop label "flow maximum"
node ctrl -none
kids "control parameters" {
node prop par 50
node int par 15
node delay par 5
node dif upd
node lim upd
node tol upd
}
node autoflow -none
kids "autoflow control parameters" {
flow::make flow::tmts {result tt set/reg}
}
}
}
proc nvstep::checkset {} {
sct update [sct target]
set s [hvali [sct parent]]
if {[hvali /cc/fa] == 0 || ($s != 1 && $s != 2)} {
hset [sct parent] 1
}
}
proc nvstep::write {} {
switch {[sct target]} {
3 {
nvmot [hvali /nvmot/posclosed]
sct closetest 1
}
4 {
nvmot [hvali /nvmot/posopen]
}
}
sct update [sct target]
return idle
}
proc nvstep::transf {flow} {
if {$flow > 1} {
set flow [expr 2 - 1.0 / $flow]
}
return $flow
}
proc nvstep::poll {} {
hupdate [sct]/motpos [hvali /nvmot/pos]
set now [DoubleTime]
set delta [expr $now - [silent 0 sct lastpoll]]
sct lastpoll $now
if {$delta > 1} {
set delta 1
}
set umsg "automatic needle valve not activated - set temperature undefined"
switch [hvali [sct]] {
1 - 2 {
if {[hvali [sct]] == 1} {
set soll [hvali [sct]/set]
hupdate [sct]/autoflow/flowtarget $soll
} else {
flow::task [sct]/autoflow [hvali [sct]/set] [hvali [sct]/flowmax]
set soll [hvali [sct]/autoflow/flowset]
if {[hgetpropval [sct]/autoflow/getTset t_set_undefined]} {
if {[hvali [sct]/status] ne $umsg} {
clientput "ERROR: $umsg"
}
hupdate [sct]/status $umsg
}
}
set ist [hvali [sct]/flow]
set soll2 [expr $soll + [hvali [sct]/ctrl/tol]]
set soll [nvstep::transf $soll]
set tol [expr [nvstep::transf $soll2] - $soll]
set ist [nvstep::transf $ist]
set dif [expr $soll - $ist]
set lim [hvali [sct]/ctrl/lim]
set int [hvali [sct]/ctrl/int]
set lim [expr $lim * exp(-$delta/$int)]
if {abs($dif) > $tol + $lim} {
set lim [expr abs($dif) * exp($delta*[hvali [sct]/ctrl/delay]/double($int)) - $tol]
set step [expr $dif * [hvali [sct]/ctrl/prop]]
run nvmot [expr [hvali /nvmot] + $step]
}
hupdate [sct]/ctrl/dif [expr log(abs($dif)/$tol + 1e-3)]
hupdate [sct]/ctrl/tol [expr log($lim/$tol + 1.0)]
hupdate [sct]/ctrl/lim $lim
sct lastmode [hvali [sct]]
}
0 - 3 - 4 { # fixed, close, open
if {[hvali [sct]] == 3 && [sct closetest]} {
if {[hgetpropval /nvmot status] ne "run"} {
if {[hvali /nvmot] < [hvali /nvmot/posopen] + [hvali /nvmot/precision]} {
hupdate [sct]/status "needle valve not fully closed"
}
sct closetest 0
}
}
switch -- [hvali /cc/fm] {
2 - 4 { # closing or closed
sct update 3
}
1 - 3 { # opening or opened
sct update 4
}
default {
# sct update 0
}
}
logsetup [sct]/set clear
logsetup [sct]/autoflow/flowtarget clear
return idle
}
}
if {[hvali [sct]/status] eq $umsg && \
([sctval [sct]] != 2 || [hgetpropval [sct]/autoflow/getTset t_set_undefined] == 0)} {
hsetprop [sct]/autoflow/getTset t_set_undefined 0
hupdate [sct]/status ""
}
return idle
}
proc nvstep::read {} {
hsetprop /cc/fa nvpath [sct]
_cc updatescript /cc/fa nvstep::updatemode
hsetprop /cc/f nvpath [sct]
hsetprop /cc/f nvctrl [sct controller]
_cc updatescript /cc/f nvstep::updateflow
return unpoll
}
proc nvstep::updateflow {value} {
set filter [lrange "[silent $value sct filter] $value" end-9 10]
sct filter $filter
# filter out values which are within the 3 highest or 3 lowest values
# out of 10 last values (i.e. within 5 seconds)
set m 3
set filter [lsort -real $filter]
if {[llength $filter] < 10} {
set flow $value
} else {
set min [lindex $filter $m]
set max [lindex $filter end-$m]
set flow [silent 0 hvali [sct nvpath]/flow]
if {$max < $flow} {
set flow $max
} elseif {$min > $flow} {
set flow $min
}
}
if {$flow < -50} {
set flow -62.5
}
# clientput "flow $value $flow"
updateval_e [sct nvpath]/flow $flow -62.5 no_sensor
[sct nvctrl] queue [sct nvpath] read nvstep::poll
}

View File

@ -0,0 +1,129 @@
namespace eval taskit {} {
}
proc stdConfig::taskit {} {
controller std "\r" 5
obj TaskitADC rd
prop readcmd ":0400000008.."
prop update taskit::update
kids "Taskit Settings" {
node dig out -text
default 00
prop write taskit::write
node mode out -text
default ff
prop write taskit::write
node pulse out -int
prop write taskit::pulse
node res wr -int
prop write taskit::writeRes
prop read taskit::readRes
node a0 upd
node a1 upd
node a2 upd
node a3 upd
node a4 upd
node a5 upd
node a6 upd
node a7 upd
node p upd
}
return "new taskit"
}
proc taskit::writeRes {} {
sct send [format ":10000D00010200%2.2x.." [sct target]]
return taskit::readRes
}
proc taskit::readRes {} {
sct send ":03000D0001.."
return taskit::updateRes
}
proc taskit::updateRes {} {
set res 0
scan [sct result] ":0302%4x" res
sct update $res
return idle
}
proc taskit::update {} {
if {[scan [sct result] ":0410%4x%4x%4x%4x%4x%4x%4x%4x" \
a(0) a(1) a(2) a(3) a(4) a(5) a(6) a(7)] == 8} {
set vmax 2.5
foreach i {0 1 2 3 4 5 6 7} {
set a($i) [expr 2.5 * $a($i) / 65535.]
hupdate [sct]/a$i $a($i)
}
hupdate [sct]/p [expr 250 * ($a(2) - 0.4) / 1.6]
set x [expr ($a(6) - $vmax * 0.5)]
set y [expr ($a(7) - $vmax * 0.5)]
set r [expr abs($x) + abs($y)]
set old [silent 0 sct old]
if {$r < $vmax * 0.4 || $r > $vmax * 0.6} {
error "illegal value $r = |$x| + |$y|"
} elseif {$y > 0} {
if {$x > 0} {
set ang [expr $y/$r * 90]
} else {
set ang [expr - $x/$r * 90 + 90]
}
} else {
if {$x < 0} {
set ang [expr - $y/$r * 90 + 180]
} else {
set ang [expr $x/$r * 90 + 270]
}
}
set ang [expr $ang + 360 * round(($old - $ang) / 360.0)]
sct update $ang
sct old $ang
} else {
error "bad result: [sct result]"
}
return idle
}
proc taskit::write {} {
set value 0
set mode ff
sct update [sct target]
scan [hvali [sct objectPath]/dig] %x value
scan [hvali [sct objectPath]/mode] %x mode
sct send [format ":10000000030600FF%4.4X%4.4X.." $mode $value]
return taskit::completeOut
}
proc taskit::completeOut {} {
sct update [sct target]
return idle
}
proc taskit::pulse {} {
scan [hvali [sct objectPath]/dig] %x value
scan [hvali [sct objectPath]/mode] %x mode
set p [expr 1 << [sct target]]
set value [expr $value & (255 - $p)]
sct send [format ":10000000030600FF%4.4X%4.4X.." $mode $value]
sct update [sct target]
return taskit::pulsEnd
}
proc taskit::pulsEnd {} {
scan [hvali [sct objectPath]/dig] %x value
scan [hvali [sct objectPath]/mode] %x mode
set p [expr 1 << [sct target]]
set value [expr $value | $p]
sct send [format ":10000000030600FF%4.4X%4.4X.." $mode $value]
return taskit::completeOut
}

View File

@ -0,0 +1,21 @@
namespace eval testsync {
}
proc stdConfig::testsync {} {
controller syncedprot
obj test wr
prop write testsync::write
prop read testsync::read
}
proc testsync::write {} {
_lev debug 0
sctsync {lev mode [sct target]}
return stdSct::completeUpdate
}
proc testsync::read {} {
_lev debug -1
sct update [silent 0 hvali [sct]]
return idle
}

View File

@ -0,0 +1,31 @@
namespace eval ttdummy {} {
}
proc stdConfig::ttdummy {} {
controller syncedprot
obj NvDummy wr 1.5
prop read ttdummy::update
prop write ttdummy::update
prop check ttdummy::update
prop target 1.5
kids "tt dummy" {
node set par 0
node tm par 1.5
node ts par 1.5
kids "settings" {
node curve -text par "undefined"
}
}
}
proc ttdummy::update {} {
sct update [sct target]
hset [sct]/tm [sct target]
hset [sct]/ts [sct target]
return idle
}

View File

@ -0,0 +1,10 @@
deviceDesc = Dummy Variox
device stick_menu dil2
GraphAdd tt K T_VTI
GraphAdd nv.flow mbar nv_flow
makenv nv nvdummy
makenv tt ttdummy

10
tcl/archive/esr.config Normal file
View File

@ -0,0 +1,10 @@
deviceDesc = ESR
defineTemperature tt
makenv tt -driver [lsdriver] {
lsc_sensor tm A -sensor x22297 -sensorname main
lsc_loop set -loop 1 -channel A -maxheater 25W -resist 25Ohm
}
tt set/limit 315

12
tcl/archive/esr2.config Normal file
View File

@ -0,0 +1,12 @@
deviceDesc = ESR
defineTemperature tt
makenv tt -driver [lsdriver] {
lsc_sensor tm C -sensor dt-470 -sensorname main
lsc_loop set -loop 1 -channel C -maxheater 5W -resist 25Ohm
}
tt set/limit 315
makeCCU4 heox he

View File

@ -0,0 +1,11 @@
addonDesc = hastings over fluke 45 multimeter
makenv hastings -driver fluke45 {X * 10 + 0.4}
GraphAdd hastings ln/min h_flow dark_green
#change nv control variable to omron flow
dolater 5 exe omronctrl.tcl
GraphAdd nv.flowp ln/min nv_flow_p

5
tcl/archive/hefill.addon Normal file
View File

@ -0,0 +1,5 @@
addonDesc = add automatic He fill with ILM
makenv hefill -driver ccu4ext he lev
hsetprop /hefill slow_cmd "lev mode 0"
hsetprop /hefill fast_cmd "lev mode 1"

17
tcl/archive/heox.config Normal file
View File

@ -0,0 +1,17 @@
deviceDesc = HEOX cryostat for He3
defineTemperature tt
device stick_menu "heox_kappa"
makenv tt -driver [lsdriver] {
lsc_sensor ts B -sensor x34504 -sensorname He3_potold
lsc_sensor tm A -sensor x89063 -sensorname He3-pot
lsc_sensor tsorb D -sensor cab505 -sensorname Sorb
lsc_sensor t1k C -sensor cs405 -sensorname 1K-Pot
lsc_loop set -loop 1 -channel D -maxheater 5W -resist 40Ohm
lsc_loop set2 -loop 2 -channel A -maxheater 1W -resist 100Ohm
}
tt set/limit 40
makeCCU4 heox he nv

View File

@ -0,0 +1,21 @@
stickDesc = heox thermal cond setup
# lakeshore 370 ctrl
makenv tkappa -driver 370_lsc -port ldmcc12-ts:3008 {
# normal dil2 holder: u02045
# weak link 2: m59
# weak link with ring heater: ruoxben1k
lsc_sensor t1 -channel 1 -sensor ruox5a -active 1 -excitation 63uV -color blue
lsc_sensor t2 -channel 2 -sensor ruox5b -active 1 -excitation 63uV -color skyblue
lsc_sensor ref -channel 3 -sensor x58542 -active 1 -excitation 200uV -color red
# lsc_sensor heater -channel 5 -sensor ruox5k -active 1 -excitation 20uV -color cyan
# lsc_sensor hepot -channel 6 -sensor raw -active 1 -excitation 200uV -color yellow
lsc_loop set -channel 2 -maxheater 0.31mA -resist 5000
}
makenv kheat -driver nanov -port ldmcc12-ts:3003
#debug tkappa

View File

@ -0,0 +1,15 @@
stickDesc = high voltage stick Andeen Hagerling 2700
stick_sensors x50923 x63854
#ts_2 (second sensor):
# x63854 normal sensor
# x70261 marisas sample
GraphAdd tt.ts_2 K T_samp2 orange
makenv cap -driver ah2700
GraphAdd cap.cap pF Cap blue
GraphAdd cap.loss tand Loss blue
GraphAdd cap.freq Hz Freq blue

View File

@ -0,0 +1,13 @@
deviceDesc = ihelium3 capacity and cryocon sniffer
makenv tc -driver ihelium3_cryocon -port ldmse5-ts:3012
#makenv tc -driver cryocon_sniffer -port ldmse5-ts:3012
GraphAdd tc K T auto
GraphAdd tc.ra Ohm R auto
makenv cap -driver ah2700
GraphAdd cap.cap pF Cap blue
GraphAdd cap.loss tand Loss blue
GraphAdd cap.freq Hz Freq blue

View File

@ -0,0 +1,25 @@
deviceDesc = orange cryostat with 50 mm sample space
defineTemperature tt
device stick_menu ill1
makenv tt -driver [lsdriver] {
lsc_sensor tm A -sensor x71738 -sensorname VTI
lsc_sensor tx B -sensor x71738
lsc_sensor ts C -sensorname sample
lsc_sensor ts_2 D -sensor code -sensorname sample2
lsc_loop set -loop 1 -channel A -maxheater 50W -resist 50Ohm -color green
# if {[lsdriver] eq "336_lsc"} {
# lsc_loop setsamp -loop 2 -channel B -maxheater 62.5W -resist 40Ohm
# }
}
tt set/limit 310
tt maxwait 7200
makeCCU4 ill1 nv n2 he
hupdate /nv/set 1.5
nv ctrl/deriv_o 10
nv ctrl/deriv_c 10
nv ctrl/prop_o 0.2
nv ctrl/prop_c 0.1
source std_orange.table

View File

@ -0,0 +1,25 @@
deviceDesc = orange cryostat with 50 mm sample space
defineTemperature tt
device stick_menu ill1
makenv tt -driver [lsdriver] {
lsc_sensor tm A -sensor x71738 -sensorname VTI
# lsc_sensor tx B -sensorname extern
lsc_sensor ts C -sensorname sample
lsc_sensor ts_2 D -sensor code -sensorname sample2
lsc_loop set -loop 1 -channel A -maxheater 50W -resist 50Ohm -color green
if {[lsdriver] eq "336_lsc"} {
lsc_loop setsamp -loop 2 -channel C -maxheater 62.5W -resist 40Ohm
}
}
tt set/limit 310
tt maxwait 7200
makeCCU4 ill1 nv n2 he
hupdate /nv/set 1.5
nv ctrl/deriv_o 10
nv ctrl/deriv_c 10
nv ctrl/prop_o 0.2
nv ctrl/prop_c 0.1
source std_orange.table

4
tcl/archive/ill4p.config Normal file
View File

@ -0,0 +1,4 @@
deviceDesc = orange cryostat with 70 mm sample space (FOCUS) prep
source ill4.config
stick ill4

View File

@ -0,0 +1,16 @@
deviceDesc = orange cryostat with 100 mm sample space
defineTemperature tt
device stick_menu "ill5 ill5p sch"
stick ill5
makenv tt -driver [lsdriver] {
lsc_sensor tm B -sensor x34525 -sensorname VTI
lsc_sensor ts C -sensorname sample
lsc_sensor ts_2 D -sensor code -sensorname sample2
lsc_loop set -loop 1 -channel B -maxheater 50W -resist 50Ohm -color green
}
tt set/limit 310
makeCCU4 ill5 nvstep n2 he
source maxi_orange.table

View File

@ -0,0 +1,7 @@
addonDesc = ITC503 manual nedlevalve control
makenv nvoi -driver itc503p
makenv softnv -driver piloop -invar "/nv/flow" -outvar "nvoi set" \
-prop 10 -int 10
GraphAdd nvoi % nvpos dark_green

View File

@ -0,0 +1,35 @@
deviceDesc = CCR with JT-stage
defineTemperature tt
makenv t -driver 340_lsc -port jtccr-ts:3008 {
lsc_sensor main A x63710
lsc_sensor samp B x67737
lsc_loop set -loop 1 -channel A -maxheater 5W -resist 500Ohm
}
makenv p1 dtm -port jtccr-ts:3001 1.
GraphAdd p1 mbar p1 red
makenv p2 dtm -port jtccr-ts:3002 1.
GraphAdd p2 bar p2 green
makenv p3 dtm -port jtccr-ts:3003 1.
GraphAdd p3 bar p3 blue
makenv p4 dtm -port jtccr-ts:3004 1.
GraphAdd p4 bar p4 yellow
makenv -objname pressreg -driver bronkpreg -port jtccr-ts:3005 0.000562468
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}
#makenv jtccr jtccr
#debug t
#t set 280

View File

@ -0,0 +1,4 @@
deviceDesc = Keithley DVM2701
makenv volt -driver kdvm -port 129.129.155.31:1394

View File

@ -0,0 +1,5 @@
deviceDesc = keithley 195
makenv Volt kei195 -port Prologix-00-21-69-01-1b-34:1234
GraphAdd Volt|V|V|auto

View File

@ -0,0 +1,11 @@
addonDesc = keithley6517B (pls config port in addon)
kthMake dil2-ts:3006
appendVars kth/pA/Kth/1 kth.volt/V/Volt/2
kth file /home/l_samenv/kth
kth time0 2
kth time 10

View File

@ -0,0 +1,3 @@
proc lambdapumpLayout args {
Label "reserved for lamdapump on PREP5"
}

15
tcl/archive/ls340.config Normal file
View File

@ -0,0 +1,15 @@
deviceDesc = lakeshore 340
defineTemperature tt
makenv tt -driver [lsdriver] {
lsc_sensor tm A -sensor X89135 -sensorname main
lsc_loop set -loop 1 -channel A -maxheater 50W -resist 40Ohm
}
tt set/limit 315
tt set/prop 15
tt set/integ 10
catch {
enableTable 0
}

23
tcl/archive/mango.config Normal file
View File

@ -0,0 +1,23 @@
deviceDesc = 5T System (1975)
device stick_menu "dilmango dilRDR5 dilRDR2 dilRDRN"
GraphOrder K W
# levelmeter
makeCCU4 mango nv he
cc hts 40
cc htf 10
cc hfu 200
cc hem 550
# 250 l vessel:
cc hem0 720
makenv mf -driver smc -port Prologix-00-21-69-01-19-57:1234
mf gen/profile 5:1
mf gen/profile_training 5:1
GraphAdd mf T mf
GraphAdd mf.smc.leads_set T mf_set
GraphAdd mf.smc.leads_meas T mf_cur

View File

@ -0,0 +1,5 @@
deviceDesc = LN2filler with CCU09.3
makenv n2 n2_ccu ccu
appendVars n2.upper/K2/N2_Upper n2.lower/K2/N2_Lower

View File

@ -0,0 +1,16 @@
stickDesc = ORI1 stick with tranport wiring
stick_sensors x17627 x70197
makenv pulse -driver DAQ -port ldmprep34-ts:3004
#makenv volt -driver nanov -port ma7-ts:3004
#makenv curr -driver ksm2400 -port ma7-ts:3006
#makenv fn -driver fungen -port A-33210A-12119.psi.ch:5025
#makenv la -driver lockin -port 10105266.psi.ch:50000
# with ssh tunnel:
#makenv fn -driver fungen -port localhost:3015
#makenv la -driver lockin -port localhost:3016

View File

@ -0,0 +1,17 @@
deviceDesc = orange cryostat with 50 mm sample space
defineTemperature tt
makenv tt -driver [lsdriver] {
lsc_sensor tm B -sensor x68258 -sensorname VTI
lsc_sensor tm_2 A -sensor pt-100 -sensorname VTI2 -is hidden
lsc_sensor ts C -sensorname sample
lsc_sensor code D -sensor code
lsc_loop set -loop 1 -channel B -maxheater 50W -resist 50Ohm
lsc_loop set2 -loop 2 -channel C -maxheater 50W -resist 80Ohm
}
tt set/limit 310
makeCCU4 ori1 nv n2 he
hupdate /nv/set 1.6
stick ppms

View File

@ -0,0 +1,16 @@
deviceDesc = orange cryostat with 100 mm sample space
defineTemperature tt
makenv tt -driver [lsdriver] {
lsc_sensor tm B -sensor x75608 -sensorname VTI
lsc_sensor ts C -sensorname sample
lsc_sensor code D -sensor code
lsc_loop set -loop 1 -channel B -maxheater 50W -resist 50Ohm
lsc_loop set2 -loop 2 -channel C -maxheater 50W -resist 80Ohm
}
tt set/limit 310
makeCCU4 ori2 nv n2 he
hupdate /nv/set 1.6
stick ppms

View File

@ -0,0 +1,4 @@
stickDesc = standard ORI4 stick (old)
stick_sensors x58600 x163061

View File

@ -0,0 +1,47 @@
######################################
proc DataFile {fname dt criterium} {
set fd [open $fname a]
puts $fd "# Time Temp Curr Volt"
puts $fd "# sec K pA V "
set t0 [clock clicks -milliseconds]
set time [expr ([clock clicks -milliseconds] - $t0) * 0.001]
set temp [result tt ts]
set curr [result kth]
set volt [result kth volt]
set nr 0
hsetprop tt updateperiod $dt
while {[expr $criterium]} {
set time [expr ([clock clicks -milliseconds] - $t0) * 0.001]
set temp [result tt ts]
set curr [result kth]
set volt [result kth volt]
set nr [expr $nr + 1]
puts $fd "$time $temp $curr $volt"
if {$nr > 10 } {
close $fd
set nr 0
set fd [open $fname a]
}
wait $dt
}
clientput "...done!"
close $fd
hsetprop tt updateperiod 5
}
####################################
##example
#set fname "testfile.dat"
#set dt 1
#set criterium {$time < 8.0}
#DataFile $fname $dt $criterium
###################################

View File

@ -0,0 +1,189 @@
namespace eval calib {
variable buf
}
proc calib::next_temp {T} {
variable buf
clientput "next_temp $T"
tt tolerance [expr $T * 0.01]
tt settle [expr $T + 60]
run tt $T
hsetprop /res @crit 0
set buf(1) [list]
set buf(2) [list]
set buf(3) [list]
set buf(4) [list]
set buf(5) [list]
set buf(6) [list]
hsetprop /res @chanidx 0
foreach channel [hgetpropval /res @channels] {
hsetprop /res/s$channel/raw dif 1
hsetprop /res/s$channel/raw endtime 0
}
}
proc calib::update_chan {value} {
variable buf
if {[sct @crit] == 0} {
if {[listexe] ne "Machine Idle"} {
if {[hval /res/autoscan] == 0} {
res autoscan 1
}
# stabilizing
return
}
if {[result tt set] < 1.3 && [result tt set] > 311} {
hepump valve 1
hepump running 0
calib::stop
return
}
sct @crit 1
res autoscan 0
return
}
set i [sct @chanidx]
set c [lindex [sct @channels] $i]
if {$c != [sct @channel]} {
if {$c != [hval /res]} {
res s$c/active 1
}
return
}
set time [format %.3f [expr [DoubleTime] - [sct @basetime]]]
lappend buf($c) $value
if {[llength $buf($c)] >= [sct count]} {
set mean [expr [::tcl::mathop::+ {*}$buf($c)] / double([llength $buf($c)])]
set sum2 0
foreach r $buf($c) {
set sum2 [expr $sum2 + pow($r - $mean, 2)]
}
sct sigma [expr sqrt($sum2) / double([llength $buf($c)])]
set buf($c) [list]
set lastmean [sct lastmean]
sct lastmean $mean
set endtime [silent 0 sct endtime]
if {$endtime > 0} {
set interval [expr abs($time - $endtime) / 60.0]
sct dif [expr (($mean - $lastmean) / double($mean)) / $interval]
} else {
sct dif 1
}
sct endtime $time
clientput [format "time %.0f dif %.6f c %d interval %.2f R %.7g sigma %.7g" $time [sct dif] $c $interval $mean [sct sigma]]
if {$c == [sct @calchan]} {
set lastchan [lindex [sct @channels] [expr $i - 1]]
hsetprop res/s$lastchan/raw refvalue [expr 0.5 * ($lastmean + $mean)]
set maxdif 0
foreach channel [sct @channels] {
set dif [hgetpropval /res/s$channel/raw dif]
if {abs($dif) > abs($maxdif)} {
set maxdif $dif
}
}
clientput "maxdif$i $maxdif"
set save [sct @crit]
if {$save == 1} {
if {abs($maxdif) <= [sct @crit1]} {
sct @nextsave $i
sct @crit 2
} else {
set save 0
}
} else {
if {$i == [sct @nextsave]} {
sct @crit [expr $save + 1]
} else {
set save 0
}
}
if {$save > 0} {
catch {
foreach channel [sct @channels] {
if {$channel != [sct @calchan]} {
set v [hgetpropval res/s$channel/raw lastmean]
set rv [hgetpropval res/s$channel/raw refvalue]
set sigma [hgetpropval res/s$channel/raw sigma]
set endtime [hgetpropval res/s$channel/raw endtime]
set fil [open [format [sct @basename] $save $channel] a]
puts $fil [format "%.2f %.9g %.9g %.9g" $endtime $rv $v $sigma]
close $fil
}
}
} msg
clientput SAVE/$save/$msg
if {$save >= 3} {
# finish T
# next_temp [format %.3g [expr [result tt set] * 0.8912]]
next_temp [format %.3g [expr [result tt set] * 1.778]]
}
}
}
incr i
if {$i >= [llength [sct @channels]]} {
set i 0
}
sct @chanidx $i
res s[lindex [sct @channels] $i]/active 1
}
}
proc calib::set_chan {channel} {
_res updatescript /res/s$channel/raw calib::update_chan
hsetprop /res/s$channel/raw count 10
hsetprop /res/s$channel/raw lastmean 0
hsetprop /res/s$channel/raw dif 1
}
proc calib::set_calchan {channel} {
_res updatescript /res/s$channel/raw calib::update_chan
hsetprop /res/s$channel/raw count 5
hsetprop /res/s$channel/raw lastmean 0
hsetprop /res/s$channel/raw dif 1
}
proc calib::start {T args} {
set calchan [lindex $args 0]
hsetprop /res @basetime [expr int([DoubleTime]/10) * 10]
hsetprop /res @calchan $calchan
hsetprop /res @chanidx 0
hsetprop /res @crit 0
# rel change / minute
hsetprop /res @crit1 0.0005
hsetprop /res @nextsave 0
set_calchan $calchan
set chanlist [list]
foreach channel $args {
if {$channel != $calchan} {
set_chan $channel
lappend chanlist $channel
lappend chanlist $calchan
}
}
hsetprop /res @channels $chanlist
res autoscan 0
hsetprop /res @basename "calib[clock format [clock seconds] -format "%Y-%m-%d"]_c%s_chan%s.dat"
res s$calchan/active 1
next_temp $T
nv autoflow/getTemp calib::tmts
}
proc calib::stop {} {
foreach channel {1 2 3 4 5 6} {
_res killupdatescript /res/s$channel/raw calib::update_chan
}
}
proc calib::tmts {} {
set tm [silent 1 result tt tm]
set ts [silent $tm hval /res/s[hgetpropval /res @calchan]]
if {$ts < $tm} {
return $ts
} else {
return $tm
}
}

View File

@ -0,0 +1,82 @@
proc ihelium3_chebychev {coef z} {
# coef: Zu Zl a0 a1 a2 ...
set a2_n [lassign $coef zu zl a0 a1]
set x [expr (($z - $zl) - ($zu - $z)) / double($zu - $zl)]
set tn_2 1
set tn_1 $x
set y [expr $a0 * 0.5 + $a1 * $x]
lappend conv $y
foreach an $a2_n {
set tn [expr 2 * $x * $tn_1 - $tn_2]
set y [expr $y + $an * $tn]
lappend conv $y
set tn_2 $tn_1
set tn_1 $tn
}
# clientput "zl=$zl zu=$zu z=$z x=$x $conv"
return $y
}
proc ihelium3_calib {sensorno} {
upvar #0 ihelium3_$sensorno cal
set fil [open calcurves/#CMP${sensorno}Coefftable.dat]
foreach B {0 0.2 0.4 0.6 0.8 1 2 3 4 5 6 7} {
set cal($B) [gets $fil]
}
close $fil
set fil [open calcurves/#CMP${sensorno}HT_Coeff.dat]
set c [list]
while {[gets $fil line] >= 0} {
if {[string index $line 0] ne "#"} {
lappend c [string trim $line]
}
}
close $fil
set cal(HT) $c
}
proc ihelium3_res2temp {sensorno B R} {
upvar #0 ihelium3_$sensorno cal
set r [expr log10($R)]
# clientput r=$r
if {$r < [lindex $cal(0) 1]} {
set t [ihelium3_chebychev $cal(HT) $r]
} else {
set B [expr abs($B)]
if {$B >= 7} {
set B0 6
set B1 7
set w 1
} else {
if {$B >= 1} {
set B0 [expr int($B)]
set B1 [expr $B0 + 1]
} else {
set B0 [format %g [expr int($B * 5) * 0.2]]
set B1 [format %g [expr $B0 + 0.2]]
}
set w [expr (sqrt($B) - sqrt($B0)) / (sqrt($B1) - sqrt($B0))]
}
set t0 [ihelium3_chebychev $cal($B0) $r]
set t1 [ihelium3_chebychev $cal($B1) $r]
set t [expr (1 - $w) * $t0 + $w * $t1]
}
return [expr pow(10, $t)]
}
proc ihelium3_tab {sensorno r} {
foreach B {0 0.2 0.4 0.6 0.8 1 2 3 4 5 6 7} {
set T [list $B]
foreach R $r {
set tt [ihelium3_res2temp $sensorno $B $R]
if {$tt < 0.4} {
break
}
lappend T $tt
}
clientput $T
}
}

View File

@ -0,0 +1,7 @@
set instr [result instrument]
if {[file exists istartup/${instr}.tcl]} {
exe istartup/${instr}.tcl
}
if {[file exists istartup/${instr}_delayed.tcl]} {
dolater 5 exe istartup/${instr}_delayed.tcl
}

View File

@ -0,0 +1,56 @@
#
# Usage:
#
# mpms wait [<timeout> [<interval>]]
#
# wait for mpms script and return file content
# timeout is a week by default, interval 1 second
#
# set text [mpms wait]
#
# alternative usage (polling):
#
# while {[mpms wait 1] ne ""} {
# DO SOMETHING
# }
# set text [mpms wait]
#
# mpms continue
#
# continue mpms script (deleting the file)
#
proc mpms {command {timeout 600000} {interval 1}} {
global env
set path $env(HOME)/MPMS/ReqToExt.txt
switch -- $command {
wait {
set start [DoubleTime]
while 1 {
if {[file exists $path]} {
set fil [open $path r]
set contents [read -nonewline $fil]
close $fil
return $contents
}
if {[DoubleTime] >= $start + $timeout} {
return ""
}
wait $interval
}
}
continue {
if {[file exists $path]} {
file delete $path
return 1
}
return 0
}
default {
error "what is $command ?"
}
}
}
publishLazy mpms

View File

@ -0,0 +1,199 @@
#
# Automatic N2 refill
#
# watching state (2):
# if lower sensor falls below startvalue for more than startdelay seconds,
# start fill, go to fillstart state (3)
# fillstart state (3):
# wait fillmini seconds, then go to filling state
# filling state (4):
# if upper sensor goes beyond fillvalue for more than filldelay seconds,
# stip fill, go to quiet state (1)
# quiet state (1):
# wait stopmini seconds, then go to watching state (2)
proc makeN2fill {} {
makeobject n2fillPar array logged
n2fillPar makeitem state 0
n2fillPar makeitem lower "tt tm"
n2fillPar makeitem upper "tt ts"
n2fillPar makeitem startvalue 100
n2fillPar makeitem stopvalue 100
n2fillPar makeitem lasttime 0
n2fillPar makeitem lastcron 0
n2fillPar makeitem startdelay 10
n2fillPar makeitem stopdelay 5
n2fillPar makeitem fillmini 10
n2fillPar makeitem stopmini 60
n2fillPar makeitem instance 0
n2fillPar makeitem errcnt 0
obj_list makeitem n2fillPar "LN2 refill parameters"
Layout n2fill
}
proc n2fillLayout args {
Group n2fill "LN2 refill"
}
proc n2fillGroup args {
showStatus n2fill
RadioGroup n2fill
Label "LN2 refill"
NoNewline
CheckBox active "n2fill on"
if {[result n2fill on]} {
NoNewline
CheckBox fill "n2fill fill"
}
NoNewline
Label "state: [result n2fill]"
Newline
Tip "upper sensor parameter name"
Input "upper sensor" "n2fillPar upper"
Tip "lower sensor parameter name"
Input "lower sensor" "n2fillPar lower"
Newline
Tip "switch-off value on upper sensor"
Input "stop value" "n2fillPar stopvalue"
Tip "switch-on value on lower sensor"
Input "start value" "n2fillPar startvalue"
Newline
Input "start delay" "n2fillPar startdelay"
Input "stop delay" "n2fillPar stopdelay"
Newline
Tip "minimum switch-on time"
Input "minimum fill time" "n2fillPar fillmini"
Tip "minimum switch-off time"
Input "minimum stop time" "n2fillPar stopmini"
Newline
}
proc n2state {state} {
n2fillPar lasttime [clock seconds]
if {$state > 2} {
clientput "valve ON"
tt send relay 2:2,1
} else {
clientput "valve OFF"
tt send relay 2:2,0
}
n2fillPar state $state
}
proc n2fill {{action none} {value none}} {
set now [clock seconds]
set lasttime [result n2fillPar lasttime]
set uval [result eval [result n2fillPar upper]]
set lval [result eval [result n2fillPar lower]]
set state [result n2fillPar state]
set errcnt [result n2fillPar errcnt]
switch -- $action {
none {
switch -- $state {
0 { return "n2fill = off (0)" }
1 { return "n2fill = quiet (1)" }
2 { return "n2fill = watching (2)" }
3 { return "n2fill = fillstart (3)" }
4 { return "n2fill = filling (4)" }
}
}
cron {
n2fillPar lastcron $now
if {$value != [result n2fillPar instance]} {
n2state 0
error "n2fill instance $value stopped"
}
if {$uval < 420 && $uval > 65 && $lval < 420 && $lval > 65} {
n2fillPar errcnt 0
} else {
incr errcnt
if {$errcnt >= 5} {
n2state 0
error "illegal upper ($uval) or lower ($lval) temperature"
}
n2fillPar errcnt $errcnt
return
}
switch -- $state {
3 {
if {$now > $lasttime + [result n2fillPar fillmini]} {
n2state 4
}
}
4 {
if {$uval < [result n2fillPar stopvalue]} {
if {$now > $lasttime + [result n2fillpar stopdelay]} {
n2state 1
}
} else {
n2fillpar lasttime $now
}
}
1 {
if {$now > $lasttime + [result n2fillPar stopmini]} {
n2state 2
}
}
2 {
if {$lval > [result n2fillPar startvalue] && $lval < 250} {
if {$now > $lasttime + [result n2fillpar startdelay]} {
n2state 3
}
} else {
n2fillpar lasttime $now
}
}
default {
error "n2fill stopped with state $state"
}
}
}
on {
switch -- $value {
1 {
set instance [result n2fillPar instance]
incr instance
n2fillPar instance $instance
sicscron 1 n2fill cron $instance
n2state 2
return "n2fill.on = 1"
}
0 {
n2state 0
return "n2fill.on = 0"
}
none {
if {$now > [result n2fillPar lastcron] + 10} {
return "n2fill.on = 0"
}
if {$state > 0} {
return "n2fill.on = 1"
} else {
return "n2fill.on = 0"
}
}
}
}
fill {
switch -- $value {
1 {
n2state 4
return "n2fill.fill = 1"
}
0 {
n2state 2
return "n2fill.fill = 1"
}
none {
if {$state > 2} {
return "n2fill.fill = 1"
} else {
return "n2fill.fill = 0"
}
}
}
}
}
}
publishLazy n2fill spy

View File

@ -0,0 +1,33 @@
namespace eval nvstep {
}
proc nvstep::trans {value {val2 none}} {
if {$value eq "inv"} {
if {$val2 > 1.9} {
return [expr $val2 * 100 - 180]
}
if {$val2 > 1.0} {
return [expr 1.0 / (2 - $val2)]
}
return $val2
}
if {$val2 eq "none"} {
if {$value > 10} {
return [expr ($value + 180) * 0.01]
}
if {$value > 1} {
return [expr 2 - 1.0 / $value]
}
return $value
}
error "illegal arguments: nvstep::trans $value $val2"
}
proc nvstep::out {motpath {value none}} {
if {$value eq "none"} {
return [hvali $motpath]
}
if {[hgetpropval $motpath status] ne "run"} {
hset $motpath $value
}
}

View File

@ -0,0 +1,434 @@
namespace eval SECoP {} {
}
proc SECoP::check_range {{low None} {high None}} {
[sct controller] timeout 0.001
if {$low ne "None" && [sct target] < $low} {
error "value [sct target] must be >= $low"
}
if {$high ne "None" && [sct target] > $high} {
error "value [sct target] must be <= $high"
}
}
proc SECoP::check_bool {} {
[sct controller] timeout 0.001
switch -- [string tolower [sct target]] {
off - false - no - 0 - on - true - yes - 1 {
return
}
}
error "illegal value for boolean: [sct target]"
}
proc SECoP::check_length {{low None} {high None}} {
if {$low ne "None" && [string length [sct target]] < $low} {
error "value [sct target] must not be shorter than $low"
}
if {$high ne "None" && [string length [sct target]] > $high} {
error "value [sct target] must not be longer than $high"
}
}
proc SECoP::make_par {secopar desc {kind ""}} {
set path [topath $secopar [silent "" dict get $desc group]]
array set props $desc
set validator_args [lassign [silent "" set props(datatype)] secoptype0]
if {$secoptype0 eq "tuple" && [string match *:status $secopar]} {
lassign $validator_args elements
make_par0 text ${path}_text $secopar $desc
hsetprop ${path}_text width 24
set validator_args [lassign [lindex $elements 0] secoptype]
set status_node 1
} else {
set secoptype $secoptype0
set status_node 0
}
switch -- $secoptype {
double {set type float}
int - enum {set type int}
string {
set type text
# can not use SICS drivable for string
set kind ""
}
bool {set type text}
none {set type none}
default {
clientput "unknown type for $secopar (use text): $secoptype ($props(datatype))"
set type text
}
}
make_par0 $type $path $secopar $desc $kind
hsetprop $path secoptype $secoptype0
if {$status_node} {
hsetprop $path nonewline 1
}
switch -- $secoptype {
enum {
set enumprop [list]
set wid 8
foreach {name value} [lindex $validator_args 0] {
lappend enumprop "$name=$value"
set wid [expr max($wid,[string length $name])]
}
hsetprop $path enum [join $enumprop ,]
if {$wid > 8} {
hsetprop $path width $wid
}
}
bool {
hsetprop $path enum 1
hsetprop $path validator SECoP::check_bool
}
double - int {
hsetprop $path validator [concat SECoP::check_range $validator_args]
}
string {
hsetprop $path width 16
hsetprop $path validator [concat SECoP::check_range $validator_args]
}
}
return $path
}
proc SECoP::make_par0 {type path secopar desc {kind std}} {
array set props $desc
# clientput "$path $desc"
set readonly [silent 0 set props(readonly)]
if {$readonly} {
set priv internal
} else {
set priv user
}
if {[silent "" hinfo $path] ne ""} {
error "$path exists already!"
}
lassign [split $path /] nul obj par
if {$par eq ""} {
if {$kind eq "driv"} {
dynsctdriveobj $obj float user SECoP [sct controller]
hfactory $path link $obj
hsetprop $obj checklimits SECoP::checklimits
hsetprop $obj halt SECoP::halt
# allow start without run:
hsetprop $obj check SECoP::checklimits
hsetprop $obj write SECoP::complete_run
set readonly 0
hsetprop $obj sicscommand "run $obj"
} else {
# clientput "OBJ $obj $type"
dynsicsobj $obj SECoP $priv $type
hfactory $path link $obj
}
hsetprop $path group $obj
hsetprop $path objectPath $path
hsetprop /sics/[sct controller] p_$secopar:value $path
} else {
if {$par eq "status"} {
set path /$obj/s_status
}
# clientput "PAR $path $type"
hfactory $path plain $priv $type
if {[info exists props(visibility)]} {
if {$props(visibility) >= 3} {
hsetprop $path visible false
}
}
}
hsetprop $path secopar $secopar
hsetprop /sics/[sct controller] p_$secopar $path
if {!$readonly} {
[sct controller] write $path
} else {
[sct controller] connect $path
}
logsetup $path 1
if {[info exists props(value)]} {
clientput "VALUE in descr $path"
if {[catch {hupdate /$path $props(value)} msg]} {
clientput $msg
}
unset props(value)
}
set fmtunit ""
if {[info exists props(unit)]} {
set fmtunit [format { [%s]} $props(unit)]
if {$par eq "" || $par eq "target"} {
if {[sct shownUnits] eq "ALL" || [lsearch [sct shownUnits] $props(unit)] >= 0} {
GraphAdd $path $props(unit) [join [lrange [split $path /] 1 end] .]
}
}
}
if {[info exists props(description)]} {
hsetprop $path help "$props(description)$fmtunit"
unset props(description)
}
foreach {prop item} [array get props] {
hsetprop $path s_$prop $item
}
}
proc SECoP::make_cmd {secopar desc {first 0}} {
array set props $desc
set path [topath $secopar [silent "" dict get $desc group]]
set cmd [join [lassign [split $path /] _ obj] /]
lassign [lindex [silent "" set props(datatype)] 1] secoptype validator
if {$secoptype eq "None"} {
$obj makescriptfunc $cmd "SECoP::check_cmd [sct secoppath] $secopar" user
hsetprop $path newline $first
hsetprop $path secopar $secopar
hsetprop $path sicscommand "$obj $cmd"
if {[info exists props(visibility)]} {
if {$props(visibility) >= 3} {
hsetprop $path visible false
}
}
} else {
if {[llength $secoptype] == 1} {
set secoptype [lindex $secoptype 0]
}
dict set desc datatype $secoptype
make_par $secopar $desc
lassign $secoptype maintype
if {$maintype eq "double" || $maintype eq "int" || $maintype eq "bool"} {
hsetprop $path check "SECoP::check_cmd_num [sct secoppath] $secopar"
} else {
hsetprop $path check "SECoP::check_cmd_text [sct secoppath] $secopar"
}
}
}
proc SECoP::check_cmd {secoppath secopar} {
hset $secoppath "do $secopar"
}
proc SECoP::check_cmd_num {secoppath secopar} {
hset $secoppath [format {do %s %.15g} $secopar [sct target]]
sct update [sct target]
}
proc SECoP::check_cmd_text {secoppath secopar} {
hset $secoppath [format {do %s "%s"} $secopar [sct target]]
sct update [sct target]
}
proc SECoP::make_module {obj desc} {
clientput "MAKE_MODULE $obj"
if {[obj_list exists $obj]} {
clientput "$obj exists already"
return
}
obj_list makeitem $obj /$obj
array unset modprop
set parlist [list]
set pardict [dict create]
foreach {key item} $desc {
switch $key {
accessibles {
foreach acsitm $item {
lassign $acsitm parname pardesc
dict set pardict $parname $pardesc
}
}
default {
set modprop($key) $item
}
}
}
if {[dict exists $pardict value]} {
set value [dict get $pardict value]
dict unset pardict value
} else {
set value [dict create datatype none]
}
set classes [silent "" set modprop(interface_class)]
if {[string match "* Drivable *" " $classes "]} {
set path [make_par $obj $value driv]
} else {
set path [make_par $obj $value]
}
if {[info exists modprop(visibility)] && $modprop(visibility) >= 3} {
hdelprop $path group
}
foreach {prop val} [array get modprop] {
hsetprop $obj sm_$prop $val
}
device_layout makeitem /$obj [silent 0 set modprop(layoutpos)]
set groups [dict create]
foreach {parname pardesc} $pardict {
if {[dict exists $pardesc group]} {
dict set groups [dict get $pardesc group] 1
}
}
foreach g [dict keys $groups] {
clientput "GROUP $g"
hfactory $obj/$g plain user none
hsetprop $obj/$g group "group $g"
}
set shortcmds [list]
foreach {parname pardesc} $pardict {
set datatype [dict get $pardesc datatype]
if {[lindex $datatype 0] eq "command"} {
if {[lindex $datatype 1] ne "None"} {
# only commands with arguments
make_cmd $obj:$parname $pardesc 1
} else {
lappend shortcmds $parname $pardesc
}
} else {
make_par $obj:$parname $pardesc
}
}
# then commands without arguments, on one line
set first 1
foreach {parname pardesc} $shortcmds {
make_cmd $obj:$parname $pardesc $first
set first 0
}
}
proc SECoP::make_node {desc} {
array unset nodeprop
set modlist [list]
foreach {key item} $desc {
switch $key {
modules {
set modlist $item
}
default {
set nodeprop($key) $item
}
}
}
foreach moditem $modlist {
lassign $moditem modname moddesc
make_module $modname $moddesc
}
foreach {prop val} [array get nodeprop] {
sct sn_$prop $val
}
sort_layout
}
proc SECoP::topath {secopar {pargroup ""}} {
lassign [split [string tolower $secopar] :] module parameter
if {$parameter eq "value" || $parameter eq ""} {
return "/$module"
}
if {$parameter eq "status"} {
set parameter s_status
}
if {[string match {_*} $parameter]} {
set parameter [string range $parameter 1 end]
}
if {$pargroup ne ""} {
return "/$module/$pargroup/$parameter"
}
return "/$module/$parameter"
}
proc SECoP::msg_describing {secnode specifier val} {
do_as_manager {
make_node $val
}
$secnode activate
}
proc SECoP::msg_changed {secnode par val} {
variable sentto_$secnode
if {[string match *:target $par]} {
hsetprop /$obj writestatus done
}
hsetprop $path changed 0
if {[lrange [set sentto_$secnode] 0 1] eq [list change $par]} {
set message_to_client "change $par $val"
}
msg_update $secnode $par $val change
}
proc SECoP::msg_update {secnode par val {action update}} {
if {$action eq "update"} {
if {[DoubleTime] < [silent 0 hgetpropval $path changed] + 10} {
# ignore updates of variables during change
# clientput "ignore [sct result]"
return
}
if {[lrange $sent_message 0 1] eq [list read $par]} {
set message_to_client "$action $par $val"
}
}
lassign $val value qual
if {[silent 0 hgetpropval $path secoptype] eq "tuple" &&
[string match *:status $par]} {
if {[llength $value] > 2} {
set text_value [lrange $value 1 end]
} else {
set text_value [lindex $value 1]
}
set objpath [sct parent $path]
set visible_old [silent true hgetpropval $objpath visible]
if {$text_value ne "disabled"} {
set visible_new true
set shown 1
} else {
set visible_new false
set shown 0
}
if {$visible_new ne $visible_old} {
hsetprop $objpath visible $visible_new
GraphItem shown $objpath $shown
}
lassign $value value
if {[catch {updateval ${path}_text $text_value}]} {
clientput "cannot update ${path}_text to $text_value"
clientput "MSG($action $par $val)"
}
if {[string match *:status $par]} {
if {[silent 0 hgetpropval /$obj writestatus] eq "start"} {
set status run
} elseif {[string match 3* $value]} {
set status run
} elseif {[string match 4* $value]} {
set status posfault
} else {
set status idle
}
hsetprop /$obj status $status
}
}
if {[catch {updateval $path $value} msg]} {
if {$value eq "None"} {
hsetprop $path geterror None
} else {
clientput "cannot update $path to $value"
clientput $msg
}
} elseif {[string match *:target $par]} {
# clientput [sct result]/[silent "" hgetpropval /$obj status]
if {[silent "" hgetpropval /$obj status] eq "idle"} {
hsetprop /$obj target $value
}
}
catch {
hsetprop $path timestamp [dict get $qual t]
}
}
proc SECoP::msg_pong {secnode args} {
clientlog "pong $secnode $args"
}
proc SECoP::msg_done {secnode args} {
clientlog "done $secnode $args"
}
proc SECoP::msg_active {secnode args} {
clientlog "active $secnode $args"
}
proc SECoP::msg_error {secnode args} {
clientlog "error $secnode $args"
}

View File

@ -0,0 +1,195 @@
proc get_next_filename {} {
set file [store file]
set filepattern [file join [result exe batchpath] $file]
set nameformat [string map "* [store numfmt]" $filepattern]
if {$nameformat eq $filepattern} {
# no * in filepattern
if {![file exists $filepattern]} {
# simple filename
store path [file normalize $filepattern]
return $filepattern
}
# insert * before . or at end
set split [split $file .]
if {[llength $split] == 1} {
lappend split ""
}
set file [join [linsert $split end-1 *] .]
store file $file
set filepattern [file join [result exe batchpath] $file]
set nameformat [string map "* [store numfmt]" $filepattern]
set num 0
store num 0
} else {
set num [store num]
}
set path [format $nameformat $num]
if {$num == 0 || [file exists $path]} {
# determine next num
set n $num
foreach p [glob -nocomplain $filepattern] {
scan $p $nameformat n
if {$n > $num} {
set num $n
}
}
incr num
store num $num
set path [format $nameformat $num]
}
store path [file normalize $path]
return $path
}
proc store {{command ""} args} {
if {[sicsdescriptor store_array] ne "array"} {
makeobject store_array array
store_array makeitem numfmt %04d
store_array makeitem file data.txt
store_array makeitem path
store_array makeitem vars
store_array makeitem num 0
}
switch -- $command {
open {
store_array vars $args
set f [open [get_next_filename] w]
set i 1
foreach var $args {
puts $f [format "# col %d: %s (%s)" $i $var [GraphItem label $var]]
incr i
}
close $f
return "open [store path]"
}
put {
set row [list]
foreach var [split [store vars]] {
lappend row [get_var_value $var]
}
set f [open [store path] a]
puts $f [join $row "\t"]
close $f
}
"" - list {
set result [join {
"store open <var1> <var2> ... # open file for storing named variables"
"store put # write a row with values of variables"
} "\n"]
foreach key [store_array items] {
append result "\nstore $key [result store_array $key]"
}
return $result
}
default {
set l [llength $args]
if {$l > 1} {
error "Usage: store $command \[<$command>\]"
}
if {![store_array exists $command]} {
error "what is 'store $command'?"
}
if {$l == 1} {
if {$command eq "file" || $command eq "numfmt" } {
store_array num 0
}
store_array $command $args
}
return "[result store_array $command]"
}
}
}
namespace eval varscan {} {
variable waittime 10
variable cmd ""
variable reltol 0
variable digits 6
proc reltol {rel args} {
variable reltol
variable tolcmd
set reltol [expr abs($rel)]
set tolcmd $args
}
proc do {args} {
variable waittime
variable cmd
variable last
variable reltol
variable tolcmd
variable digits
foreach value $args {
if {$reltol != 0} {
eval "$tolcmd [format %.${digits}g [expr $reltol * $value]]"
}
set starttime [DoubleTime]
clientput "$cmd $value"
eval "$cmd $value"
wait [expr max(0, $starttime + $waittime - [DoubleTime])]
store put
set last $value
}
}
proc linear {encode value} {
return $value
}
proc log {encode value} {
variable digits
if {$encode} {
return [expr log10($value)]
}
return [format %.${digits}g [expr 10 ** $value]]
}
proc dosteps {step endarg {func linear}} {
variable last
variable precision
variable reltol
variable digits
set end [$func 1 $endarg]
set val [$func 1 $last]
if {$end < $val} {
set step [expr -abs($step)]
} else {
set step [expr abs($step)]
}
set precision [expr max(abs($step) * 0.1, $reltol)]
set prec 0.1
for {set digits 2} {$prec > $precision} {incr digits} {
set prec [expr $prec * 0.1]
}
while 1 {
set val [expr $val + $step]
if {($end - $val) / $step < 0.5} {
break
}
do [$func 0 $val]
}
do $endarg
set digits 6
}
proc waittime {wait} {
variable waittime
set waittime $wait
}
proc command {args} {
variable cmd
set cmd $args
}
}
proc varscan {code} {
namespace eval varscan $code
}
publishLazy store
publishLazy varscan

View File

@ -0,0 +1,10 @@
deviceDesc = "test ana8 (8 analog channels using taskit RS232 ADC)"
set div [expr (3.6 / 1.1 + 1)]
set div100 [expr (3.6 / 1.1 + 1) * 100]
makenv a4 -driver ana8 -controller ana -port ldmlab1-ts:3005 4 $div 0 tpr010
makenv a0 -driver ana8 -controller ana -port ldmlab1-ts:3005 0 $div100
GraphAdd a4 V
#GraphAdd a1 V
#GraphAdd a2 V

View File

@ -0,0 +1,3 @@
deviceDesc = "AVS45 test"
makenv t -driver avs45 -port ldmlab1-ts:3015

View File

@ -0,0 +1 @@
makenv b -driver bin

View File

@ -0,0 +1,10 @@
deviceDesc = flowmeter test
makeCCU4 ori1 nv sensirion
hupdate /nv/set 1.6
makenv hastings -driver fluke45 {X * 10 + 0.4}
GraphAdd hastings ln/min h_flow dark_green
GraphAdd cc.f mbar p

View File

@ -0,0 +1,3 @@
deviceDesc = taskit test
makenv t -driver taskit

View File

@ -0,0 +1,20 @@
deviceDesc = CryoTel be-filter
makenv tt -driver [lsdriver] {
lsc_sensor tm A -sensor pt-100
}
makenv -objname cryo -driver cryotel
cryo filter/period 0
cryo integ 0.01
cryo prop 30
# -port ldmprep12-ts:3008
GraphAdd cryo K T_cryotel red
GraphAdd cryo.set K T_set green
GraphAdd cryo.power W Power red
#ccu4_device none

View File

@ -0,0 +1,159 @@
Sensor Model: CX-unknown
Serial Number: CX078
Data Format: 5 (Log Ohms/Log Kelvin)
SetPoint Limit: 330.1
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 149
Calibration date: 2014-05-15
No. Units Temperature (K)
1 1.80076 2.51858
2 1.80639 2.51188
3 1.81326 2.50379
4 1.81969 2.49624
5 1.82627 2.48855
6 1.83299 2.48073
7 1.83986 2.47276
8 1.84690 2.46464
9 1.85409 2.45637
10 1.86144 2.44793
11 1.86896 2.43933
12 1.87665 2.43056
13 1.88451 2.42160
14 1.89256 2.41246
15 1.90078 2.40312
16 1.90843 2.39445
17 1.91625 2.38561
18 1.92421 2.37658
19 1.93236 2.36736
20 1.94068 2.35793
21 1.94917 2.34830
22 1.95786 2.33846
23 1.96674 2.32838
24 1.97582 2.31806
25 1.98511 2.30750
26 1.99461 2.29667
27 2.00433 2.28556
28 2.01428 2.27416
29 2.02447 2.26245
30 2.03386 2.25164
31 2.04346 2.24055
32 2.05326 2.22917
33 2.06331 2.21748
34 2.07357 2.20548
35 2.08410 2.19312
36 2.09487 2.18041
37 2.10593 2.16732
38 2.11725 2.15381
39 2.12888 2.13988
40 2.13948 2.12710
41 2.15034 2.11394
42 2.16147 2.10037
43 2.17289 2.08636
44 2.18462 2.07188
45 2.19667 2.05690
46 2.20906 2.04139
47 2.22181 2.02531
48 2.23330 2.01072
49 2.24170 2.00000
50 2.25026 1.98900
51 2.25899 1.97772
52 2.26791 1.96614
53 2.27701 1.95424
54 2.28632 1.94201
55 2.29585 1.92942
56 2.30560 1.91645
57 2.31558 1.90309
58 2.32581 1.88930
59 2.33419 1.87795
60 2.34273 1.86629
61 2.35147 1.85431
62 2.36040 1.84198
63 2.36953 1.82930
64 2.37889 1.81624
65 2.38847 1.80277
66 2.39829 1.78888
67 2.40888 1.77379
68 2.41924 1.75891
69 2.42990 1.74351
70 2.43976 1.72916
71 2.44987 1.71433
72 2.46026 1.69897
73 2.47094 1.68305
74 2.48195 1.66652
75 2.49329 1.64933
76 2.50367 1.63347
77 2.51436 1.61700
78 2.52606 1.59879
79 2.53742 1.58092
80 2.54917 1.56229
81 2.56054 1.54407
82 2.57228 1.52504
83 2.58443 1.50515
84 2.59617 1.48572
85 2.60832 1.46538
86 2.62092 1.44404
87 2.63306 1.42325
88 2.64565 1.40140
89 2.65773 1.38021
90 2.67028 1.35793
91 2.68334 1.33445
92 2.69584 1.31175
93 2.70528 1.29447
94 2.71316 1.27989
95 2.72124 1.26482
96 2.72957 1.24920
97 2.73815 1.23300
98 2.74631 1.21748
99 2.75472 1.20140
100 2.76339 1.18469
101 2.77160 1.16879
102 2.78007 1.15229
103 2.78883 1.13513
104 2.79790 1.11727
105 2.80644 1.10037
106 2.81528 1.08279
107 2.82443 1.06446
108 2.83299 1.04727
109 2.84185 1.02938
110 2.85104 1.01072
111 2.86060 0.99123
112 2.86944 0.97313
113 2.87861 0.95424
114 2.88816 0.93450
115 2.89811 0.91381
116 2.90850 0.89209
117 2.91801 0.87216
118 2.92790 0.85126
119 2.93825 0.82930
120 2.94907 0.80618
121 2.96043 0.78176
122 2.97099 0.75891
123 2.98167 0.73560
124 2.99287 0.71096
125 3.00385 0.68664
126 3.01533 0.66087
127 3.02655 0.63548
128 3.03829 0.60853
129 3.04779 0.58659
130 3.05613 0.56703
131 3.06477 0.54654
132 3.07319 0.52634
133 3.08191 0.50515
134 3.09096 0.48287
135 3.09976 0.46090
136 3.10887 0.43775
137 3.11770 0.41497
138 3.12682 0.39094
139 3.13560 0.36736
140 3.14464 0.34242
141 3.15398 0.31597
142 3.16288 0.29003
143 3.17203 0.26245
144 3.18147 0.23300
145 3.19034 0.20412
146 3.19854 0.17609
147 3.20681 0.14922
148 3.20788 0.14613
149 3.23003 0.07968

View File

@ -0,0 +1,208 @@
Sensor Model: RX-1000-BF0.007
Serial Number: LakeShore_ch1
Data Format: 4 (Log Ohms/Kelvin)
SetPoint Limit: 0.0166 (Kelvin)
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 198
No. Units Temperature (K)
1 3.205339721431523 2.29950691832369
2 3.2097810700613474 2.1133357363357415
3 3.214177458273696 1.9580612995911988
4 3.218529787235223 1.8169797320615846
5 3.2228389312873205 1.6877672933904413
6 3.227105739000353 1.5722622575374017
7 3.2313310341766046 1.4697605096124464
8 3.235515616804908 1.378120246231821
9 3.2396602639697165 1.295544169078362
10 3.2437657307172088 1.2205560153493331
11 3.2478327508808373 1.151999879833848
12 3.2518620378685794 1.0891226512760712
13 3.2558542854140025 1.0313183758800881
14 3.2598101682931215 0.9780565541130672
15 3.2637303430089033 0.9288714756152382
16 3.267615448445151 0.8833473503299999
17 3.2714661064913986 0.8411070092302035
18 3.2752829226403493 0.8018176951611662
19 3.279066486559281 0.7651863569680788
20 3.2828173726367846 0.7309545188586433
21 3.286536140506087 0.6989186967412938
22 3.29022333554616 0.6689432878914867
23 3.2938794893617365 0.6409058136597712
24 3.2975051202432892 0.6146902542169623
25 3.301100733607965 0.5901870083512905
26 3.304666822422419 0.5672816066830729
27 3.3082038676084293 0.5458207461386768
28 3.3117123384321236 0.525655610715861
29 3.3151926928776136 0.5066545991303119
30 3.318645378005776 0.4887011291217188
31 3.3220708302988826 0.4716917913750741
32 3.325469475991745 0.4555413810166217
33 3.3288417313900065 0.4401883965377525
34 3.3321880031761633 0.4255786488691995
35 3.335508688703895 0.41166240033292
36 3.3388041762812226 0.39839394603691713
37 3.3420748454430043 0.38573123960723416
38 3.345321067213247 0.3736388696213544
39 3.34854320435769 0.36209540686873637
40 3.3517416116270815 0.35108230134869106
41 3.3549166359915685 0.34058104509990617
42 3.3580686168665768 0.3305732845860963
43 3.3611978863305545 0.32104091562166354
44 3.3643047693349257 0.3119657104461987
45 3.367389583906591 0.3033191194348796
46 3.3704526413432796 0.2950638992472267
47 3.3734942464020703 0.2871658561139464
48 3.376514697481347 0.2795940397192163
49 3.379514286796477 0.272320414871872
50 3.38249330054946 0.26531957263400296
51 3.3854520190928024 0.25856852395736907
52 3.388390717087841 0.25205113250187977
53 3.3913096636577524 0.245760933359935
54 3.3942091225354516 0.23969235202374947
55 3.397089352206584 0.23383973552837592
56 3.399950606047813 0.2281973854612427
57 3.4027931324605745 0.22275958717174088
58 3.4056171750004895 0.217520635503722
59 3.4084229725025916 0.2124747556312106
60 3.4112107592025374 0.20761438394392348
61 3.413980764853948 0.20293067549472246
62 3.416733214842041 0.19841523713951462
63 3.4194683302936695 0.19406015494570983
64 3.4221863281839324 0.18985796255247253
65 3.424887421439461 0.1858016118875661
66 3.4275718190385156 0.18188444604625534
67 3.4302397261080064 0.17810017221149688
68 3.4328913440175546 0.17444194846580885
69 3.4355268704706994 0.17090111133432387
70 3.4381464995933495 0.1674693030325541
71 3.4407504220195917 0.16413880859662533
72 3.443338824974932 0.1609025050098339
73 3.4459118923570795 0.15775381517961953
74 3.448469804814346 0.15468666623372493
75 3.451012739821753 0.1516954516663306
76 3.4535408717549214 0.14877499691921683
77 3.456054371961825 0.14592209040383455
78 3.4585534088324774 0.14314007405847348
79 3.4610381478666277 0.14043339575975972
80 3.4635087517395298 0.13780586397192207
81 3.4659653803658492 0.13526070678652388
82 3.4684081909617763 0.1328006286593571
83 3.4708373381054005 0.13042786461019756
84 3.473252973795405 0.12814423173200698
85 3.4756552475081386 0.12595117792085625
86 3.4780443062531177 0.12384981398434444
87 3.4804202946270117 0.12183727614446321
88 3.482783354866156 0.11990231930322089
89 3.485133626897648 0.11803341326562487
90 3.4874712483890646 0.11621996662848523
91 3.4897963547968516 0.11445224890720333
92 3.492109079413423 0.11272132427450213
93 3.4944095534130124 0.11101899526132743
94 3.496697905896319 0.109337754982865
95 3.4989742639339805 0.10767074663125696
96 3.5012387526089137 0.10601172912727631
97 3.503491495057559 0.104355219797915
98 3.505732612510055 0.10270125376784009
99 3.507962224329392 0.10105546749294594
100 3.510180448049552 0.09942331598598556
101 3.512387399412692 0.09780976967108469
102 3.514583192405381 0.09621933869103337
103 3.5167679392939246 0.09465609851880563
104 3.518941750658811 0.09312371643091606
105 3.521104735428293 0.09162547845857452
106 3.5232570009111424 0.09016431648742085
107 3.5253986528285943 0.0887428352275814
108 3.5275297953455085 0.0873633388226642
109 3.5296505311007698 0.08602781459530236
110 3.5317609612369507 0.08473607986870577
111 3.533861185429255 0.08348525778490817
112 3.5359513019137663 0.08227246036477517
113 3.5380314075150188 0.08109498547652488
114 3.5401015976729133 0.07995030370508645
115 3.5421619664689916 0.07883604639977054
116 3.5442126066520934 0.07774999478429062
117 3.5462536096634074 0.07669007002521983
118 3.5482850656609406 0.0756543241656316
119 3.5503070635434133 0.07464093184015028
120 3.5523196909736034 0.07364818269604241
121 3.5543230344011527 0.07267447445247364
122 3.556317179084846 0.07171830653672735
123 3.558302209114385 0.07077830063837746
124 3.560278207431667 0.06985360254791527
125 3.5622452558515754 0.06894376220569125
126 3.56420343508231 0.06804835881717188
127 3.566152824745257 0.06716698860168534
128 3.5680935033944134 0.06629926402776767
129 3.570025548535381 0.06544481308660564
130 3.5719490366439417 0.0646032786014169
131 3.5738640431842206 0.06377431757074654
132 3.57577064262645 0.06295760054378352
133 3.5776689084643496 0.062152811025920386
134 3.5795589132321206 0.06135964491289308
135 3.581440728521081 0.06057780995193435
136 3.583314424995935 0.059807025228478555
137 3.5851800724106946 0.05904702067703845
138 3.587037739624264 0.05829756691316801
139 3.5888874946156872 0.05755859821660205
140 3.5907294044990765 0.05683009443728373
141 3.5925635355382206 0.05611202751481569
142 3.5943899531608934 0.05540436195926386
143 3.5962087219728547 0.05470705533995854
144 3.598019905771565 0.05402005875283448
145 3.5998235675596115 0.053343317266938396
146 3.601619769557861 0.052676770350725974
147 3.603408573218336 0.052020352278782926
148 3.605190039236832 0.051373992519592196
149 3.6069642275652742 0.050737616104976145
150 3.6087311974238245 0.05011114398183197
151 3.6104910073127408 0.04949449334677612
152 3.612243715024 0.04888757796430359
153 3.613989377652685 0.04828986011110037
154 3.615728051608144 0.047699039742507485
155 3.6174597926249303 0.047112527383469986
156 3.6191846557735206 0.046527917545417144
157 3.6209026954708237 0.04594298200154157
158 3.622613965490481 0.04535566437519196
159 3.624318518972968 0.044764075838669704
160 3.6260164084354924 0.04416649173553819
161 3.627707685781705 0.04356134895341628
162 3.629392402311222 0.04294724388649669
163 3.631070608728956 0.042322930838087885
164 3.6327423551542783 0.04168732072362697
165 3.6344076911299985 0.04103947994416368
166 3.636066665631173 0.04037868976928422
167 3.637719327073748 0.03970807836336272
168 3.639365723323039 0.039036274948209555
169 3.6410059017020466 0.03837168648410094
170 3.6426399089996204 0.037721988611411184
171 3.6442677914784665 0.037094166900026
172 3.645889594883007 0.03649457062074466
173 3.647505364447093 0.035928976351175215
174 3.6491151449015757 0.035402659150092636
175 3.6507189804817353 0.03492046946902619
176 3.652316914934574 0.03448691440376818
177 3.6539089915259795 0.03410624231224536
178 3.6554952530477496 0.033782529698540176
179 3.6570757418244955 0.03351145071440784
180 3.6586504997204194 0.033260058051473286
181 3.6602195681459664 0.03299082703268596
182 3.661782988064357 0.03266826394142384
183 3.663340799998009 0.03225923637831841
184 3.6648930440348333 0.03173363953571915
185 3.666439759834428 0.03106532705323702
186 3.6679809866341575 0.030233216602994592
187 3.669516763255124 0.029222459125517165
188 3.671047128108037 0.028025768650965757
189 3.6725721191989744 0.026702560340697613
190 3.6740917741350483 0.02543701072187969
191 3.6756061301299696 0.02439612960428289
192 3.677115224009515 0.023718019012504196
193 3.678619092216901 0.02348979463885896
194 3.680117770818065 0.023415690421220926
195 3.6816112955068525 0.02300210019140085
196 3.683099701610123 0.021807715297389875
197 3.684583024092758 0.01955130157960377
198 3.686061297562594 0.016563579419186746

100
tcl/calcurves/RCW575.inp Normal file
View File

@ -0,0 +1,100 @@
sens=RCW575
unit=Ohm ! sensor format (mV V Ohm) log formats are choosen automatically
!tlim=2 ! setpoint limit (automatic if omitted)
type=Special ! sensor type (Special Si GaAlAs Pt250 Pt500 Pt2500 RhFe C Cernox RuOx)
form=loglog
curv ! curve (sensor temp/K) follows must be ordered but can be in$
1000 300
1196.0677 26.0000
1197.9099 23.2067
1200.0980 20.7134
1202.6877 18.4881
1205.7424 16.5018
1209.3334 14.7289
1213.5411 13.1465
1218.4554 11.7341
1224.1767 10.4734
1230.8169 9.3482
1238.5000 8.3439
1247.3630 7.4474
1257.5571 6.6473
1269.2482 5.9331
1282.6180 5.2957
1297.8652 4.7268
1315.2055 4.2189
1334.8733 3.7657
1357.1224 3.3611
1382.2261 3.0000
1386.2 2.9779
1399.7 2.8638
1413.2 2.7541
1422.3 2.6573
1426.8 2.6059
1436 2.5144
1449.9 2.4102
1464 2.3254
1473.3 2.2364
1487.6 2.1507
1502.1 2.075
1511.8 2.0217
1521.5 1.9569
1531.3 1.8943
1541.1 1.8337
1556.1 1.7807
1581.4 1.6957
1596.7 1.6149
1612.2 1.5581
1633.1 1.4887
1648.9 1.4224
1664.9 1.3768
1686.6 1.324
1708.5 1.2773
1719.5 1.2404
1736.2 1.2007
1753.1 1.1622
1770.1 1.1213
1804.8 1.0643
1834.1 1.007
1876.2 0.9589
1912.8 0.8984
1956.6 0.8444
2034.1 0.7707
2087.4 0.7173
2163.1 0.6676
2219.8 0.6234
2256 0.5975
2330.3 0.5579
2414.7 0.5126
2535.1 0.4662
2644.2 0.4325
2793.9 0.382
2933 0.3452
3079 0.308
3285 0.27114
3483 0.24264
3656 0.22214
3838 0.20141
4069 0.18141
4328 0.16498
4471 0.15505
4694 0.1415
4928 0.13039
5123 0.12056
5292 0.11441
5485 0.10857
5629 0.10338
5758 0.10005
5948 0.09243
6211 0.08538
6486 0.07886
6772 0.07283
7069 0.06727
7378 0.06214
7699 0.05739
8032 0.05301
8378 0.04896
8736 0.04522
9107. 0.04177
9492 0.03858
9889 0.03563
10301 0.03291

View File

@ -0,0 +1,107 @@
sens=RCW575_fit
unit=Ohm ! sensor format (mV V Ohm) log formats are choosen automatical$
!tlim=2 ! setpoint limit (automatic if omitted)
type=Special ! sensor type (Special Si GaAlAs Pt250 Pt500 Pt2500 RhFe C Cern$
form=loglog
curv ! curve (sensor temp/K) follows must be ordered but can be in$
1000 300
1196.067 26
1197.321 24.01478
1198.735 22.18114
1200.329 20.4875
1202.121 18.9232
1204.134 17.47833
1206.391 16.1437
1208.916 14.9111
1211.738 13.7725
1214.886 12.7209
1218.393 11.7496
1222.293 10.8525
1226.624 10.0239
1231.426 9.258539
1236.742 8.55160
1242.619 7.89865
1249.107 7.29555
1256.259 6.73850
1264.131 6.22399
1272.785 5.74876
1282.284 5.30981
1292.697 4.90439
1304.097 4.52991
1316.561 4.18403
1330.169 3.86456
1345.009 3.56949
1361.170 3.29694
1378.749 3.04520
1397.845 2.81269
1418.565 2.59793
1441.020 2.39956
1465.324 2.21634
1491.601 2.04712
1519.976 1.89081
1550.583 1.74644
1583.558 1.61309
1619.046 1.48992
1657.196 1.37616
1698.163 1.27108
1742.106 1.17403
1789.194 1.08439
1839.596 1.00159
1893.491 0.92511
1951.062 0.85448
2012.498 0.78923
2077.991 0.72897
2147.742 0.67331
2221.955 0.62190
2300.840 0.57441
2384.611 0.530559
2473.488 0.49004
2567.695 0.45263
2667.461 0.418070
2773.018 0.38614
2884.603 0.35666
3002.457 0.329432
3126.825 0.30427
3257.954 0.28104
3396.096 0.25958
3541.504 0.239765
3694.434 0.22145
3855.145 0.20454
4023.898 0.18893
4200.955 0.17450
4386.579 0.16118
4581.035 0.14887
4784.588 0.13750
4997.503 0.12700
5220.046 0.11731
5452.482 0.108352
5695.076 0.10007
5948.090 0.09243
6211.786 0.08538
6486.424 0.07886
6772.262 0.07283
7069.555 0.06727
7378.555 0.06214
7699.512 0.05739
8032.669 0.05301
8378.269 0.04896
8736.548 0.04522
9107.739 0.04177
9492.069 0.03858
9889.760 0.03563
10301.02 0.03291
10726.08 0.03040
11165.12 0.02808
11618.36 0.02593
12085.97 0.023957
12568.14 0.02212
13065.06 0.02043
13576.87 0.01887
14103.76 0.01743
14645.86 0.01610
15203.32 0.01487
15776.28 0.01373
16364.87 0.01269
16969.19 0.011721
17589.36 0.01082
18225.49 0.01

81
tcl/calcurves/RO1975.340 Normal file
View File

@ -0,0 +1,81 @@
Sensor Model: RX-RO600A Scientific Instruments
Serial Number: RO1975
Data Format: 4 (Log Ohms vs. Kelvin)
SetPoint Limit: 40.0000 (Kelvin)
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 72
No. Units Temperature (K)
1 3.17 3.23739
2 3.175 3.11803
3 3.18 3.00459
4 3.185 2.89674
5 3.19 2.79413
6 3.195 2.69646
7 3.2 2.60345
8 3.205 2.51481
9 3.21 2.43031
10 3.215 2.34971
11 3.22 2.27277
12 3.225 2.19931
13 3.23 2.12912
14 3.235 2.06203
15 3.24 1.99786
16 3.245 1.93646
17 3.25 1.87767
18 3.255 1.82137
19 3.26 1.76741
20 3.265 1.71568
21 3.27 1.66605
22 3.275 1.61843
23 3.28 1.57271
24 3.285 1.52879
25 3.29 1.48658
26 3.295 1.44601
27 3.3 1.40698
28 3.31 1.33329
29 3.32 1.26494
30 3.33 1.20146
31 3.34 1.14241
32 3.35 1.08739
33 3.36 1.03606
34 3.37 0.98811
35 3.38 0.94324
36 3.39 0.90121
37 3.4 0.8618
38 3.42 0.78998
39 3.44 0.72637
40 3.46 0.66979
41 3.48 0.61924
42 3.5 0.57393
43 3.52 0.53316
44 3.54 0.49636
45 3.56 0.46304
46 3.58 0.43277
47 3.6 0.40521
48 3.62 0.38005
49 3.64 0.35701
50 3.66 0.33588
51 3.68 0.31645
52 3.7 0.29854
53 3.73 0.27421
54 3.76 0.25253
55 3.79 0.23314
56 3.82 0.21573
57 3.85 0.20005
58 3.88 0.18588
59 3.91 0.17303
60 3.94 0.16135
61 3.97 0.1507
62 4 0.14098
63 4.05 0.12654
64 4.1 0.11399
65 4.15 0.10303
66 4.2 0.0934
67 4.25 0.0849
68 4.3 0.07737
69 4.35 0.07067
70 4.4 0.06469
71 4.45 0.05933
72 4.5 0.05452

View File

@ -0,0 +1,42 @@
sens=R0408
unit=Ohm ! sensor format (mV V Ohm) log formats are choosen automatical$
!tlim=2 ! setpoint limit (automatic if omitted)
type=Special ! sensor type (Special Si GaAlAs Pt250 Pt500 Pt2500 RhFe C Cern$
form=loglog
curv ! curve (sensor temp/K) follows must be ordered but can be in$
1480.0 300
1488.5 3.20
1517.2 3.00
1550.3 2.80
1587.5 2.60
1630.2 2.40
1679.8 2.20
1739.8 2.00
1774.8 1.90
1812.4 1.80
1854.4 1.70
1901.5 1.60
1953.7 1.50
2011.5 1.40
2079.3 1.30
2160.4 1.20
2256.6 1.10
2368.1 1.00
2508.7 0.90
2679.9 0.80
2902.2 0.70
3193.5 0.60
3602.5 0.50
3875.1 0.45
4222.8 0.40
4629.0 0.35
5228.7 0.30
6081.5 0.25
7398.5 0.20
9749.7 0.15
15315. 0.10
17554 0.09
20523 0.08
23723 0.07
29568 0.06
37886.0 0.05

View File

@ -0,0 +1,125 @@
Sensor Model: CX-unknown
Serial Number: RX078
Data Format: 5 (Log Ohms/Log Kelvin)
SetPoint Limit: 330.1
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 149
Calibration date: 2014-05-15
No. Units Temperature (K)
1 3.43221 2.51858
36 3.43222 2.18041
37 3.43242 2.16732
38 3.43264 2.15381
39 3.43288 2.13988
40 3.43312 2.12710
41 3.43338 2.11394
42 3.43367 2.10037
43 3.43399 2.08636
44 3.43433 2.07188
45 3.43471 2.05690
46 3.43512 2.04139
47 3.43558 2.02531
48 3.43601 2.01072
49 3.43635 2.00000
50 3.43670 1.98900
51 3.43707 1.97772
52 3.43747 1.96614
53 3.43789 1.95424
54 3.43835 1.94201
55 3.43883 1.92942
56 3.43934 1.91645
57 3.43989 1.90309
58 3.44047 1.88930
59 3.44097 1.87795
60 3.44149 1.86629
61 3.44205 1.85431
62 3.44264 1.84198
63 3.44326 1.82930
64 3.44392 1.81624
65 3.44463 1.80277
66 3.44538 1.78888
67 3.44622 1.77379
68 3.44707 1.75891
69 3.44799 1.74351
70 3.44887 1.72916
71 3.44981 1.71433
72 3.45082 1.69897
73 3.45189 1.68305
74 3.45305 1.66652
75 3.45429 1.64933
76 3.45548 1.63347
77 3.45675 1.61700
78 3.45820 1.59879
79 3.45968 1.58092
80 3.46127 1.56229
81 3.46288 1.54407
82 3.46463 1.52504
83 3.46651 1.50515
84 3.46842 1.48572
85 3.47049 1.46538
86 3.47275 1.44404
87 3.47502 1.42325
88 3.47750 1.40140
89 3.48000 1.38021
90 3.48271 1.35793
91 3.48568 1.33445
92 3.48867 1.31175
93 3.49102 1.29447
94 3.49305 1.27989
95 3.49520 1.26482
96 3.49748 1.24920
97 3.49991 1.23300
98 3.50229 1.21748
99 3.50482 1.20140
100 3.50752 1.18469
101 3.51016 1.16879
102 3.51297 1.15229
103 3.51596 1.13513
104 3.51917 1.11727
105 3.52229 1.10037
106 3.52562 1.08279
107 3.52920 1.06446
108 3.53264 1.04727
109 3.53632 1.02938
110 3.54027 1.01072
111 3.54452 0.99123
112 3.54859 0.97313
113 3.55294 0.95424
114 3.55762 0.93450
115 3.56268 0.91381
116 3.56816 0.89209
117 3.57335 0.87216
118 3.57895 0.85126
119 3.58501 0.82930
120 3.59160 0.80618
121 3.59879 0.78176
122 3.60575 0.75891
123 3.61307 0.73560
124 3.62105 0.71096
125 3.62919 0.68664
126 3.63808 0.66087
127 3.64713 0.63548
128 3.65705 0.60853
129 3.66541 0.58659
130 3.67302 0.56703
131 3.68118 0.54654
132 3.68943 0.52634
133 3.69830 0.50515
134 3.70787 0.48287
135 3.71759 0.46090
136 3.72809 0.43775
137 3.73874 0.41497
138 3.75027 0.39094
139 3.76193 0.36736
140 3.77457 0.34242
141 3.78836 0.31597
142 3.80223 0.29003
143 3.81730 0.26245
144 3.83377 0.23300
145 3.85017 0.20412
146 3.86616 0.17609
147 3.88234 0.14922
148 3.88443 0.14613
149 3.92781 0.07968

209
tcl/calcurves/RX21084.340 Normal file
View File

@ -0,0 +1,209 @@
Comment: 30.07.2021, FP and CMN, 16mK--2.3K extrapolated elsewhere
Sensor Model: RX-1000-BF0.007
Serial Number: RX21084
Data Format: 4 (Log Ohms/Kelvin)
SetPoint Limit: 0.0167 (Kelvin)
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 198
No. Units Temperature (K)
1 3.20846285563324 2.29950691832369
2 3.4519520794355336 0.6498012090542048
3 3.6070343783101015 0.3704581486839852
4 3.721074805163944 0.26059484895628243
5 3.8113120960880713 0.20228193951599618
6 3.8859872141076326 0.1665105526879469
7 3.949686473102909 0.1422944849269331
8 4.005226735685933 0.12488648687396488
9 4.054462777653993 0.11172863733572738
10 4.098680971293318 0.10146402807187511
11 4.138810160963405 0.09324234729409901
12 4.1755429936890325 0.08648395066677375
13 4.209409782613786 0.08081268692879562
14 4.240825579325993 0.07598812870148532
15 4.2701213313800315 0.07183902939770141
16 4.297565174873086 0.06823645575716103
17 4.323377387971616 0.06507932801010942
18 4.347741143331186 0.062289070996918876
19 4.370810400706755 0.05980454678579108
20 4.392715806580754 0.057577436265929115
21 4.413569175789821 0.05556854119927189
22 4.433466945446951 0.053745910262315885
23 4.452492871602556 0.05208355897841065
24 4.470720159535553 0.050560146757243664
25 4.488213164681848 0.04915798484490007
26 4.505028764035037 0.04786234539867137
27 4.521217471779108 0.04666121336416267
28 4.536824354342013 0.04554449599295128
29 4.551889786646683 0.04450349674253729
30 4.566450081524307 0.04353068071479723
31 4.580538016991243 0.0426194865713567
32 4.594183280654664 0.04176417387123741
33 4.607412846401465 0.04095969828378444
34 4.620251295387211 0.04020159653034395
35 4.632721090925318 0.03948568131023798
36 4.644842815000059 0.038808053740086015
37 4.65663537265818 0.038165277473563186
38 4.668116169375982 0.03755431934067681
39 4.679301265579416 0.03697249221372099
40 4.690205511760261 0.03641740727159124
41 4.700842667040841 0.035886933914353075
42 4.711225503562264 0.03537916594067244
43 4.721365898682805 0.03489239288004529
44 4.731274916655688 0.03442507558955731
45 4.740962881194752 0.033975825395827434
46 4.7504394401213155 0.03354341304180551
47 4.7597136231071 0.03312693001286275
48 4.768793893379504 0.03272562874888363
49 4.777688194131303 0.03233880462655265
50 4.786403990272565 0.03196579269193495
51 4.794948306074722 0.03160596525189884
52 4.803327759182448 0.03125872959404176
53 4.811548591405942 0.030923525835009062
54 4.819616696652556 0.030599824895015865
55 4.827537646310873 0.030287126594927695
56 4.835316712361069 0.029984957871270798
57 4.842958888451666 0.029692871103911146
58 4.850468909153691 0.029410442550776832
59 4.857851267578177 0.029137270883826817
60 4.865110231521148 0.028872975820446085
61 4.872249858281366 0.028617196844524333
62 4.8792740082796495 0.028369592011629523
63 4.886186357594227 0.028129836789268253
64 4.892990409514036 0.027897594576483477
65 4.899689505200867 0.027672472212608813
66 4.9062868335415875 0.027454090958515334
67 4.912785440263165 0.027242098159955423
68 4.919188236375724 0.027036165072266957
69 4.925498006002204 0.026835984897298357
70 4.93171741364733 0.02664127100892969
71 4.937849010953414 0.026451755346509214
72 4.9438952429858425 0.026267186958065784
73 4.949858454086998 0.02608733067735169
74 4.955740893333708 0.025911965920672964
75 4.961544719629997 0.0257408855911163
76 4.967272006464015 0.025573895079218145
77 4.97292474635535 0.025410811350374714
78 4.9785048550166335 0.025251462110385838
79 4.984014175251137 0.025095685041484656
80 4.989454480606254 0.024943327102043805
81 4.994827478800945 0.024794243883888303
82 5.000134814943763 0.02464829902179385
83 5.005378074556595 0.024505363650323124
84 5.010558786418044 0.024365315903656953
85 5.01567842523921 0.024228040454526117
86 5.020738414183583 0.024093428088744755
87 5.025740127241814 0.02396137531219892
88 5.0306848914712985 0.023831783987455578
89 5.035573989109678 0.02370456099743642
90 5.040408659570707 0.02357961793384775
91 5.045190101330236 0.023456873114059824
92 5.049919473709507 0.023336263039570274
93 5.054597898562387 0.02321773214687803
94 5.059226461872687 0.02310122682601919
95 5.063806215267258 0.022986695323041755
96 5.068338177450135 0.022874087659763016
97 5.072823335562626 0.02276335555766745
98 5.077262646473879 0.022654452365698248
99 5.081657038006153 0.022547332991711865
100 5.086007410098723 0.022441953837380336
101 5.090314635914066 0.0223382727363408
102 5.09457956288972 0.022236248895404633
103 5.098803013739008 0.02213584283865078
104 5.1029857874035605 0.022037016354239502
105 5.107128659960404 0.021939732443793013
106 5.111232385486198 0.021843955274199606
107 5.115297696881016 0.02174965013170656
108 5.119325306653925 0.02165678337817612
109 5.123315907672482 0.02156532240938591
110 5.127270173878088 0.021475235615263554
111 5.131188760969096 0.02138649234195073
112 5.135072307053346 0.021299062855599803
113 5.1389214332718085 0.02121291830781055
114 5.142736744394813 0.02112803070262106
115 5.146518829392325 0.02104437286497174
116 5.150268261979605 0.020961918410566
117 5.153985601139506 0.020880641717055812
118 5.157671391622619 0.02080051789648448
119 5.161326164426362 0.020721522768923174
120 5.164950437254085 0.020643632837240727
121 5.1685447149551695 0.02056682526295059
122 5.172109489947079 0.020491077843081032
123 5.17564524262021 0.02041636898801879
124 5.179152441726411 0.02034267770027795
125 5.18263154475193 0.02026998355414966
126 5.186082998275546 0.020198266676189885
127 5.18950723831258 0.020127507726505255
128 5.192904690645454 0.020057687880799056
129 5.19627577114141 0.019988788813141294
130 5.199620886058005 0.01992079267942922
131 5.202940432336923 0.019853682101505656
132 5.206234797886642 0.01978744015190522
133 5.209504361854472 0.019722050300466344
134 5.212749494888408 0.01965749488255514
135 5.215970559389296 0.019593754693782984
136 5.219167909753699 0.019530810988654727
137 5.222341892607895 0.019468645604081316
138 5.2254928470333875 0.019407240936944705
139 5.228621104784289 0.0193465799226898
140 5.231726990496936 0.019286646014889344
141 5.234810821892061 0.019227423165730364
142 5.237872909969827 0.01916889580737451
143 5.240913559198058 0.019111048834146525
144 5.243933067693895 0.01905386758550874
145 5.246931727399209 0.018997337829781413
146 5.249909824249979 0.018941445748570936
147 5.2528676383399135 0.018886177921870452
148 5.255805444078533 0.018831521313799508
149 5.258723510343942 0.018777463258950532
150 5.2616221006305075 0.018723991449312794
151 5.264501473191633 0.018671093921745343
152 5.267361881177835 0.018618759045972284
153 5.27020357277031 0.018566975513075148
154 5.273026791310143 0.018515732324458786
155 5.275831775423361 0.018465018781267887
156 5.278618759141958 0.018414824474233208
157 5.2813879720210775 0.018365139273926852
158 5.2841396392524675 0.018315953321408136
159 5.286873981774375 0.018267257019241465
160 5.289591216377995 0.018219041022869045
161 5.292291555810619 0.01817129623232279
162 5.294975208875583 0.01812401378425928
163 5.29764238052916 0.018077185044303605
164 5.300293271974489 0.018030801599688187
165 5.302928080752651 0.017984855252173408
166 5.305547000831011 0.017939338011237337
167 5.308150222688895 0.01789424208752309
168 5.310737933400731 0.017849559886532418
169 5.313310316716719 0.01780528400255435
170 5.315867553141125 0.017761407212819682
171 5.318409820008287 0.017717922471870623
172 5.320937291556412 0.017674822906137023
173 5.3234501389992275 0.017632101808710283
174 5.325948530595585 0.017589752634306413
175 5.328432631717061 0.017547768994410566
176 5.330902604913646 0.017506144652595295
177 5.33335860997757 0.01746487352000543
178 5.3358008040053315 0.017423949651002694
179 5.338229341457999 0.017383367238963443
180 5.340644374219832 0.017343120612223355
181 5.3430460516552785 0.017303204230163207
182 5.34543452066441 0.01726361267942977
183 5.347809925736839 0.017224340670286796
184 5.350172409004169 0.01718538303309055
185 5.352522110291023 0.017146734714885228
186 5.354859167164706 0.01710839077611348
187 5.357183714983534 0.017070346387437256
188 5.359495886943872 0.01703259682666522
189 5.361795814125938 0.016995137475782077
190 5.36408362553839 0.016957963818076176
191 5.366359448161749 0.01692107143536154
192 5.368623406990689 0.016884456005290812
193 5.370875625075233 0.01684811329875544
194 5.373116223560886 0.01681203917737013
195 5.37534532172773 0.0167762295910382
196 5.377563037028536 0.016740680575594753
197 5.379769485125891 0.016705388250525127
198 5.381964779928401 0.016670348816755363

209
tcl/calcurves/RX21086.340 Normal file
View File

@ -0,0 +1,209 @@
Comment: 30.07.2021, FP and CMN, 16mK--2.3K extrapolated elsewhere
Sensor Model: RX-1000-BF0.007
Serial Number: RX21086
Data Format: 4 (Log Ohms/Kelvin)
SetPoint Limit: 0.0167 (Kelvin)
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 198
No. Units Temperature (K)
1 3.95172112186057 0.4180505091843286
2 3.9695976306545586 0.40162941564240395
3 3.986767302435376 0.3864626849234625
4 4.00328391425531 0.37238276518892366
5 4.019195330271573 0.3592855962289843
6 4.034544338032305 0.3470875218656867
7 4.0493693419485615 0.33571271660075375
8 4.063704942254607 0.32509252408915157
9 4.077582421423871 0.3151648000006031
10 4.091030155243403 0.3058684676708055
11 4.104073962130744 0.29713652025270054
12 4.116737401502962 0.2889092616486872
13 4.129042029862561 0.28113535525905975
14 4.141007621593087 0.2737704327904062
15 4.1526523601441045 0.2667759679572164
16 4.163993004246593 0.26011835871279726
17 4.175045032972715 0.2537701725425371
18 4.1858227727910915 0.24771376868376796
19 4.196339509234364 0.24193399707554128
20 4.206607585362598 0.23641640934180486
21 4.21663848885292 0.23114726678338812
22 4.22644292925642 0.2261135360025413
23 4.236030906725152 0.22130287556524825
24 4.2454117733149825 0.21670361631457905
25 4.254594287806358 0.21230449743609126
26 4.263586664848482 0.20809223987850517
27 4.2723966191179645 0.2040530576485453
28 4.2810314050868135 0.20017449377673227
29 4.289497852913454 0.1964452923329563
30 4.297802400901659 0.19285525919708682
31 4.305951124913849 0.18939514148161465
32 4.3139497650753915 0.18605652278418564
33 4.3218037500638715 0.18283173192192465
34 4.3295182192408 0.17971376318626692
35 4.337098042851705 0.17669631010410758
36 4.344547840493472 0.17377480891405978
37 4.351871998024261 0.17094575213264646
38 4.359074683071033 0.16820576419576727
39 4.366159859271952 0.16555158531038544
40 4.373131299375545 0.16298007114798133
41 4.3799925973049945 0.16048819175909865
42 4.386747179284154 0.15807302987007918
43 4.393398314111519 0.15573177869589305
44 4.399949122659253 0.15346173938020186
45 4.4064025866664 0.15126031815470192
46 4.412761556888276 0.14912502329383764
47 4.419028760657795 0.14705338936280482
48 4.42520680890894 0.14504255936356905
49 4.4312982027076195 0.14308963753836265
50 4.437305339330834 0.14119191194500988
51 4.4432305179311 0.13934684092374708
52 4.44907594481964 0.13755203997076285
53 4.454843738398728 0.13580526979992144
54 4.460535933770766 0.13410442546983029
55 4.466154487049198 0.1324475264676318
56 4.471701279394117 0.13083270765330937
57 4.4771781207933845 0.1292582109791396
58 4.48258675360829 0.1277223779084147
59 4.487928855901125 0.1262236424658884
60 4.493206044560577 0.12476052485971367
61 4.498419878239503 0.12333163304380296
62 4.503571860118438 0.12193574631828279
63 4.508663440507109 0.12057176990519662
64 4.5136960192952 0.11923865748866554
65 4.51867094826274 0.11793540714711268
66 4.523589533259658 0.11666105905378815
67 4.528453036263288 0.11541469331734591
68 4.533262677321936 0.1141954279527051
69 4.5380196363920025 0.11300241697318955
70 4.542725055075576 0.11183484859564194
71 4.547380038264897 0.11069194355084538
72 4.551985655699627 0.10957295349216913
73 4.556542943442405 0.10847715949589558
74 4.5610529052777835 0.107403870647169
75 4.5655165140392695 0.10635242270596287
76 4.569934712868869 0.10532217684786949
77 4.5743084164131975 0.10431251695197608
78 4.5786385119599595 0.10332283844739922
79 4.582925860518338 0.10235255465698116
80 4.58717129784656 0.10140110157845207
81 4.591375635429739 0.1004679368322608
82 4.595539661410823 0.09955253863642508
83 4.5996641414773425 0.0986544048391098
84 4.603749819706445 0.09777305200518102
85 4.607797419370548 0.09690801455325226
86 4.611807643705798 0.0960588439400026
87 4.615781176645365 0.09522510788877314
88 4.619718683519506 0.09440638965966222
89 4.623620811724166 0.09360228735854248
90 4.627488191359815 0.09281241328259995
91 4.631321435842091 0.09203639330016182
92 4.635121142485725 0.09127386626274112
93 4.6388878930631465 0.09052448344735803
94 4.642622254339068 0.08978790802734032
95 4.646324778582288 0.08906381456991713
96 4.649996004055852 0.08835188855904216
97 4.653636455486678 0.08765182594197644
98 4.657246644515652 0.08696333269826736
99 4.660827070129182 0.08628612446384723
100 4.664378219073096 0.08561992795859034
101 4.667900566249762 0.08496448135336596
102 4.671394575099234 0.08431953119632819
103 4.674860697965178 0.08368483186046159
104 4.678299376446321 0.08306014524586271
105 4.681711041734095 0.08244524049545562
106 4.6850961149371155 0.08183989372343856
107 4.688455007393115 0.08124388775580493
108 4.691788120968907 0.08065701188231766
109 4.695095848348927 0.08007906161935352
110 4.69837857331287 0.07950983848306784
111 4.701636671002902 0.07894914977236192
112 4.70487050818094 0.07839680836116064
113 4.708080443476412 0.07785263249954284
114 4.7112668276249305 0.07731644562328702
115 4.714430003698276 0.07678807617142054
116 4.717570307326063 0.07626735741138517
117 4.720688066909449 0.07575412727145134
118 4.723783603827232 0.0752482281800327
119 4.7268572326346465 0.07474950691157567
120 4.729909261255182 0.0742578144387094
121 4.732939991165704 0.07377300579036607
122 4.73594971757516 0.07329493991559047
123 4.738938729597138 0.07282347955277604
124 4.741907310416527 0.07235849110407866
125 4.744855737450517 0.07189984451476855
126 4.747784282504175 0.07144741315729988
127 4.750693211920808 0.07100107355468722
128 4.753582786727326 0.07056070377241648
129 4.7564532627747935 0.07012618412597511
130 4.759304890874382 0.06969739809767002
131 4.762137916928867 0.06927423224497434
132 4.764952582059886 0.06885657609980934
133 4.76774912273108 0.06844432207175648
134 4.77052777086731 0.06803736535502074
135 4.773288753970074 0.06763560383897768
136 4.7760322952292835 0.0672389380221434
137 4.778758613631531 0.06684727092941604
138 4.78146792406498 0.06646050803244512
139 4.784160437421 0.06607855717299183
140 4.786836360692677 0.06570132848914854
141 4.789495897070302 0.0653287343442967
142 4.792139246033957 0.06496068925868274
143 4.794766603443298 0.06459710984350182
144 4.797378161624639 0.06423791473738227
145 4.799974109455434 0.0638830245451698
146 4.802554632446248 0.06353236177891428
147 4.805119912820313 0.0631858508009678
148 4.807670129590734 0.06284341776910732
149 4.810205458635457 0.06250499058359602
150 4.812726072770052 0.06217049883610672
151 4.815232141818401 0.061839873760429175
152 4.817723832681355 0.06151304818489118
153 4.820201309403431 0.061189956486422066
154 4.822664733237622 0.06087053454619543
155 4.825114262708381 0.06055471970678521
156 4.827550053672828 0.06024245073077867
157 4.829972259380262 0.05993366776078559
158 4.832381030530016 0.05962831228079127
159 4.834776515327716 0.05932632707880041
160 4.837158859540007 0.059027656210720675
161 4.839528206547766 0.05873224502313993
162 4.8418846973978935 0.058440040434167374
163 4.844228470853692 0.058150990656022646
164 4.846559663443902 0.05786504500714514
165 4.8488784095104185 0.05758215388246619
166 4.851184841254755 0.05730226872504534
167 4.853479088783263 0.05702534199859812
168 4.855761280151179 0.05675132716088082
169 4.858031541405511 0.05648017863790337
170 4.860289996626812 0.05621185179893897
171 4.862536767969872 0.055946302932302704
172 4.864771975703369 0.055683489221870615
173 4.866995738248494 0.0554233687243152
174 4.869208172216601 0.05516590034702931
175 4.871409392445901 0.05491104382671652
176 4.873599512037227 0.05465875970862297
177 4.875778642388907 0.05440900932638965
178 4.87794689323076 0.05416175478250309
179 4.880104372657257 0.05391695892932373
180 4.882251187159854 0.05367458535067225
181 4.88438744165853 0.05343459834395558
182 4.886513239532558 0.053196962902812575
183 4.888628682650528 0.052961644700263634
184 4.890733871399632 0.05272861007234635
185 4.892828904714253 0.05249782600222082
186 4.8949138801038625 0.05226926010472968
187 4.8969888936802555 0.05204288061139703
188 4.899054040184134 0.051818656355852
189 4.90110941301106 0.051596556759663965
190 4.903155104236805 0.05137655181857391
191 4.905191204642099 0.051158612089110905
192 4.907217803736801 0.05094270867558101
193 4.909234989783513 0.050728813217414986
194 4.911242849820645 0.05051689787686572
195 4.913241469684952 0.050306935327041884
196 4.9152309340335485 0.05009889874026919
197 4.917211326365431 0.04989276177676692
198 4.9191827290425 0.04968849857363164

209
tcl/calcurves/RX21087.340 Normal file
View File

@ -0,0 +1,209 @@
Comment: 30.07.2021, FP and CMN, 16mK--2.3K extrapolated elsewhere
Sensor Model: RX-1000-BF0.007
Serial Number: RX21087
Data Format: 4 (Log Ohms/Kelvin)
SetPoint Limit: 0.0167 (Kelvin)
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 198
No. Units Temperature (K)
1 3.1877039882751053 3.636144640618681
2 3.2152148320126863 3.0639436002478933
3 3.2410863045045946 2.6701709865003567
4 3.2655028466489204 2.3777117752759884
5 3.2886194237420754 2.143670635870384
6 3.3105674897771427 1.9505157438499452
7 3.3314595155331577 1.790183389795224
8 3.3513924764647065 1.655299766614305
9 3.3704505745875135 1.5401509173521934
10 3.388707387768537 1.4408619049649685
11 3.4062275851497037 1.3545874970343195
12 3.4230683097383037 1.2790988499856546
13 3.439280302771094 1.2126291649765184
14 3.454908825648797 1.1536933911170497
15 3.4699944216595013 1.1009465681167245
16 3.484573549781061 1.0533071291194047
17 3.498679115506066 1.0099175521250492
18 3.5123409181366814 0.9700919811559997
19 3.525586029842336 0.9332778635327277
20 3.5384391186032236 0.8990792729598817
21 3.5509227247219237 0.86727454039794
22 3.5630574986907453 0.8376767561227868
23 3.5748624067198973 0.8101142797601791
24 3.5863549090631164 0.78442978910307
25 3.597551115350019 0.7604792731110397
26 3.6084659203936176 0.738131016634416
27 3.6191131233459846 0.7172558713509263
28 3.6295055325936243 0.6977080132366713
29 3.639655058392744 0.6793536862595989
30 3.6495727949247523 0.6620760545613921
31 3.6592690931896437 0.645772682918738
32 3.6687536259381064 0.6303534462582784
33 3.678035445663524 0.6157387864523007
34 3.687123036525386 0.6018582517739349
35 3.6960243609505885 0.588649267965512
36 3.7047469015540964 0.576058280423931
37 3.7132976989320334 0.5640442884492296
38 3.7216833858054796 0.5525711871891125
39 3.729910217929833 0.5416057252887579
40 3.737984102130578 0.5311172349278432
41 3.7459106217802094 0.5210773914157912
42 3.753695059991548 0.511459998687214
43 3.761342420768757 0.5022407975423541
44 3.768857448328131 0.49339729390439974
45 3.7762446447754816 0.48490860472928077
46 3.783508286305049 0.4767553195140824
47 3.7906524380659006 0.4689192475843778
48 3.7976809678252152 0.4613824000470675
49 3.804597558543438 0.45412758922755814
50 3.811405719963662 0.4471389021963244
51 3.8181087993065455 0.44040158991456363
52 3.824709991152338 0.4339019639413095
53 3.8312123465830603 0.42762730384072917
54 3.837618781650318 0.4215657740290891
55 3.84393208522758 0.41570634896657765
56 3.8501549262998465 0.4100387457409287
57 3.856289860738393 0.40455336321133184
58 3.8623393376036357 0.39924122698560216
59 3.868305705015011 0.39409393959362105
60 3.8741912156230893 0.3891036352977913
61 3.8799980317158247 0.38426293801335426
62 3.885728229987918 0.37956488387931403
63 3.8913838059996104 0.37500288040286556
64 3.8969666783488663 0.37057073110135247
65 3.9024786925787764 0.3662626099782028
66 3.907921624840088 0.3620730344948809
67 3.9132971853270506 0.3579968408540618
68 3.9186070215032136 0.3540291613684391
69 3.923852721132389 0.35016540371424293
70 3.929035815128743 0.34640123189020944
71 3.934157780238807 0.34273254872185477
72 3.939220041567169 0.33915547976775123
73 3.944223974956656 0.3356663584993975
74 3.9491709092329392 0.33226171263946774
75 3.954062128322745 0.32893825155489365
76 3.9588988732540966 0.3256928546116378
77 3.9636823440464015 0.3225225604072209
78 3.9684137014975707 0.3194245568053007
79 3.9730940688748393 0.31639617170391887
80 3.977724533515442 0.31343490526824447
81 3.9823061483428535 0.3105385514456228
82 3.9868399333038824 0.3077050460444255
83 3.991326876731522 0.3049324105739437
84 3.9957679366381202 0.3022187478737892
85 4.000164041943092 0.2995622380077851
86 4.004516093639118 0.29696113440281663
87 4.008824965900488 0.2944137602158292
88 4.0130915071369975 0.2919185049134636
89 4.01731654099658 0.2894738210500048
90 4.021500867319638 0.28707822123041005
91 4.025645263047832 0.2847302752461832
92 4.029750483089925 0.28242860737276565
93 4.033817261147075 0.2801718938179665
94 4.03784631049985 0.27795886031170464
95 4.041838324759075 0.27578827982805787
96 4.045793978582471 0.27365897043125537
97 4.049713928358965 0.2715697932378405
98 4.053598812862381 0.2695196504878006
99 4.057449253876158 0.26750748371793776
100 4.061265856790618 0.2655322720312521
101 4.065049211174207 0.26359303045651306
102 4.0687998913200865 0.2616888083926095
103 4.072518456769307 0.25981868776859524
104 4.0762054528117835 0.2579817525621261
105 4.079861410966175 0.25617706918937516
106 4.083486849439743 0.25440373411162076
107 4.08708227356917 0.2526608774845938
108 4.090648176243276 0.2509476616081476
109 4.09418503830853 0.24926327946029492
110 4.097693328958175 0.24760695331033175
111 4.101173506105765 0.24597793340613885
112 4.104626016743853 0.24437549673109854
113 4.108051297288534 0.24279894582637804
114 4.111449773910508 0.24124760767461934
115 4.114821862853287 0.23972083264135838
116 4.1181679707391465 0.23821799347072992
117 4.121488494863379 0.2367384843322564
118 4.124783823477384 0.23528171991572747
119 4.128054336061096 0.233847134571379
120 4.131300403585236 0.23243418149275563
121 4.134522388763833 0.2310423319398192
122 4.137720646297441 0.22967107450002383
123 4.140895523107476 0.22831991438520818
124 4.144047358562044 0.22698837276231645
125 4.147176484693627 0.22567598611606787
126 4.150283226409003 0.22438230564181283
127 4.153367901691679 0.22310689666693673
128 4.15643082179722 0.22184933809925386
129 4.159472291441712 0.22060922190094906
130 4.162492608983685 0.2193861525866949
131 4.165492066599749 0.2181797467446706
132 4.168470950454206 0.21698963257927084
133 4.1714295408628885 0.21581544947437473
134 4.174368112451449 0.21465684814150626
135 4.177286934308337 0.21351350450512266
136 4.180186270132661 0.21238511942741822
137 4.183066378377157 0.21127140232230077
138 4.185927512386444 0.21017207007388233
139 4.188769920530746 0.20908684679827477
140 4.191593846335285 0.2080154636144282
141 4.194399528605476 0.20695765842362385
142 4.197187201548116 0.20591317569723383
143 4.1999570948887035 0.20488176627239618
144 4.202709433985037 0.20386318715525725
145 4.205444439937247 0.2028572013314603
146 4.20816232969437 0.201863577583572
147 4.210863316157627 0.2008820903151469
148 4.213547608280489 0.19991251938115806
149 4.216215411165688 0.19895464992452025
150 4.218866926159255 0.19800827221845532
151 4.221502350941708 0.19707318151445913
152 4.22412187961649 0.19614917789563396
153 4.2267257027957585 0.1952360661351738
154 4.2293140076836115 0.19433365555978768
155 4.231886978156857 0.1934417599178627
156 4.234444794843395 0.19256019725217816
157 4.236987635198314 0.1916887897769855
158 4.2395156735777615 0.19082736375928233
159 4.242029081310689 0.1899757494041153
160 4.244528026768528 0.18913378074374992
161 4.247012675432862 0.18830129553056282
162 4.2494831899611984 0.187478135133502
163 4.251939730250854 0.18666414443798768
164 4.254382453501057 0.18585917174911354
165 4.256811514273317 0.185063068698024
166 4.259227064550105 0.18427569015134998
167 4.261629253791912 0.18349689412358397
168 4.264018228992748 0.182726541692283
169 4.2663941347341146 0.18196449691599775
170 4.268757113237504 0.18121062675482338
171 4.271107304415496 0.18046480099347273
172 4.273444845921459 0.17972689216678672
173 4.275769873197934 0.1789967754875818
174 4.278082519523727 0.17827432858918132
175 4.280382916059749 0.17755942773007427
176 4.28267119189366 0.17685194813757257
177 4.284947474083325 0.17615176766480145
178 4.287211887699161 0.17545876686671316
179 4.289464555865363 0.17477282892559737
180 4.291705599800078 0.17409383957903976
181 4.293935138854549 0.17342168705023678
182 4.29615329055125 0.17275626198057856
183 4.298360170621065 0.17209745736441343
184 4.300555893039515 0.1714451684859111
185 4.302740570062084 0.17079929285794965
186 4.304914312258648 0.1701597301629475
187 4.307077228547064 0.1695263821955702
188 4.309229426225912 0.16889915280724357
189 4.311371011006433 0.16827794785240663
190 4.313502087043693 0.16766267513644123
191 4.315622756966971 0.1670532443652169
192 4.317733121909421 0.16644956709619527
193 4.319833281537009 0.1658515566910346
194 4.321923334076758 0.1652591282696447
195 4.324003376344317 0.1646721986656377
196 4.326073503770869 0.16409068638312743
197 4.328133810429403 0.16351451155482966
198 4.330184389060367 0.16294359590141771

209
tcl/calcurves/RX21088.340 Normal file
View File

@ -0,0 +1,209 @@
Comment: 30.07.2021, FP and CMN, 16mK--2.3K extrapolated elsewhere
Sensor Model: RX-1000-BF0.007
Serial Number: RX21088
Data Format: 4 (Log Ohms/Kelvin)
SetPoint Limit: 0.0167 (Kelvin)
Temperature coefficient: 1 (Negative)
Number of Breakpoints: 198
No. Units Temperature (K)
1 3.940038099187222 2.29950691832369
2 3.9574739246974557 2.0041624874409303
3 3.974236681010697 1.767106836845007
4 3.9903764069933003 1.5762778018750998
5 4.005937760770854 1.4199490479114263
6 4.020960764570671 1.2900756141338707
7 4.035481424980388 1.180801803241447
8 4.049532252821143 1.087422428902758
9 4.063142701521795 1.006064942694466
10 4.076339538860837 0.9338947937886868
11 4.0891471638719326 0.8690801293997024
12 4.101587878342379 0.8108836236695705
13 4.113682120494735 0.7587359531986022
14 4.125448667001661 0.7120699083527054
15 4.1369048083478654 0.6701384887139029
16 4.148066501650667 0.6321614389597935
17 4.158948504329194 0.5975096142527055
18 4.169564491432014 0.5656855286912152
19 4.179927158963436 0.5363598142594884
20 4.190048315166892 0.5092869485735346
21 4.199938961411425 0.48425022428996173
22 4.209609364070723 0.4610583588250701
23 4.219069118572192 0.43955162112944574
24 4.228327206617794 0.4195930053414979
25 4.237392047432011 0.401057368854736
26 4.246271543769799 0.38383028573895694
27 4.254973123314622 0.36779143870170433
28 4.263503776009971 0.35279480559000304
29 4.271870087794494 0.33871057866348864
30 4.28007827114865 0.3254290260642854
31 4.288134192807806 0.31285733093353324
32 4.296043398951475 0.3009327084274243
33 4.303811138139568 0.28962701403925417
34 4.311442382233247 0.27891458322617685
35 4.318941845509212 0.26876930298202284
36 4.326314002151462 0.25916499674613075
37 4.333563102283041 0.25007208111528356
38 4.340693186681615 0.2414528626956213
39 4.347708100306445 0.23327164649445672
40 4.354611504750145 0.22549619998775064
41 4.361406889716177 0.21809735406793998
42 4.3680975836121405 0.21104871985556792
43 4.374686763339375 0.20432722605554546
44 4.381177463350938 0.1979124253294737
45 4.38757258404262 0.1917854952770754
46 4.393874899535055 0.1859290666661048
47 4.4000870648992185 0.18032708922471152
48 4.406211622872388 0.17496481741769473
49 4.412251010107105 0.16982964510701443
50 4.418207562991554 0.1649103488260771
51 4.42408352307618 0.1601963116209544
52 4.429881042138058 0.15567748266248777
53 4.435602186911665 0.1513443477731787
54 4.4412489435120825 0.14718787753901091
55 4.44682322157431 0.14319852010264547
56 4.4523268581302835 0.13936603400817626
57 4.457761621243293 0.13568091191992998
58 4.463129213417783 0.13213441099130918
59 4.468431274801015 0.12871848008816145
60 4.473669386191611 0.12542569490366604
61 4.478845071868848 0.1222493973125674
62 4.483959802255308 0.11918597296783866
63 4.489014996424571 0.11623358668983622
64 4.494012024464627 0.11339017952119677
65 4.498952209706856 0.11065347719092387
66 4.503836830829653 0.1080210361559921
67 4.508667123845063 0.10549028370922908
68 4.51344428397615 0.10305807569036254
69 4.518169467432222 0.10071830647276082
70 4.522843793088532 0.0984642098118807
71 4.5274683440765235 0.09628962242918321
72 4.532044169290318 0.09418892766814362
73 4.536572284814644 0.09215700253414763
74 4.541053675279106 0.09018917057334168
75 4.545489295143277 0.08828115985953428
76 4.549880069916838 0.08642906551106713
77 4.554226897318645 0.0846298181698003
78 4.5585306483783725 0.08288225674449136
79 4.562792168484095 0.08118554870006753
80 4.567012278378972 0.07953879921205276
81 4.571191775109982 0.07794106237303348
82 4.575331432931419 0.07639135119638533
83 4.579432004165755 0.07488864652375314
84 4.583494220024225 0.07343190493523498
85 4.587518791389394 0.07202006575390188
86 4.591506409561802 0.07065203575930201
87 4.5954577469726265 0.0693262105679929
88 4.5993734578642345 0.06804054293113795
89 4.603254178940311 0.06679309017870143
90 4.6071005299872105 0.06558203052848408
91 4.610913114468027 0.06440565428896738
92 4.614692520090809 0.06326235579364271
93 4.618439319352279 0.06215062599839707
94 4.622154070058279 0.061069045680631574
95 4.625837315822161 0.06001627918505145
96 4.629489586542214 0.05899106866666346
97 4.633111398859182 0.05799229365059771
98 4.6367032565948625 0.05701915489354337
99 4.640265651172722 0.05607094516093912
100 4.643799062021391 0.05514697518980446
101 4.647303956961881 0.05424657354658097
102 4.650780792579303 0.053369086447045924
103 4.654230014579823 0.05251387754340015
104 4.657652058133553 0.051680327683222976
105 4.661047348204041 0.05086783464449915
106 4.664416299864975 0.050075812850495616
107 4.667759318604705 0.049303693067861795
108 4.671076800619129 0.048550921691161195
109 4.674369133093479 0.047816949128391656
110 4.6776366944735015 0.047101229249355454
111 4.680879854726522 0.04640323275018934
112 4.684098975592821 0.0457224473757743
113 4.68729441082778 0.045058377366721004
114 4.69046650643516 0.04441054292111815
115 4.6936156008919445 0.04377847967107667
116 4.696742025365077 0.043161738174050904
117 4.699846103920455 0.04255988341885811
118 4.702928153724513 0.04197249434627342
119 4.705988485238693 0.04139916338403901
120 4.709027402407121 0.04083949599609103
121 4.712045202837756 0.04029310116191913
122 4.715042177977294 0.03975944350617588
123 4.718018613280073 0.03923788282553713
124 4.720974788371232 0.038727812478557805
125 4.723910977204355 0.038228661549696986
126 4.726827448213822 0.037739892589972825
127 4.729724464462073 0.03726099952320955
128 4.732602283782004 0.03679150570393065
129 4.735461158914662 0.03633096211425861
130 4.738301337642449 0.03587894568834204
131 4.741123062917994 0.03543505775388299
132 4.743926572988866 0.03499892258128095
133 4.746712101518284 0.03457018603176353
134 4.7494798777019875 0.03414851429664064
135 4.7522301263814 0.03373359464551937
136 4.754963068153236 0.03332523726118644
137 4.757678919475676 0.032923415217846655
138 4.760377892771253 0.03252810853719416
139 4.763060196526542 0.03213929103515762
140 4.765726035388815 0.031756930832732455
141 4.768375610259726 0.03138099083673781
142 4.771009118386166 0.031011429191915556
143 4.773626753448379 0.030648199705751722
144 4.776228705645438 0.030291252247355654
145 4.778815161778171 0.02994053312168893
146 4.781386305329642 0.02959598542039078
147 4.78394231654325 0.029257549350401788
148 4.7864833724985605 0.028925162541539796
149 4.789009647184914 0.02859876033414166
150 4.791521311572916 0.028278276047832264
151 4.794018533683875 0.02796363603335898
152 4.796501478657241 0.02765469680290596
153 4.798970308816141 0.027351270942355215
154 4.801425183731058 0.027053177957022168
155 4.803866260281719 0.026760244998946033
156 4.8062936927172535 0.026472306497849034
157 4.80870763271468 0.026189203812448027
158 4.811108229435779 0.025910784900844835
159 4.813495629582398 0.025636904008810774
160 4.815869977450252 0.025367421374860387
161 4.8182314149812475 0.025102202951088753
162 4.820580081814412 0.02484112013881317
163 4.822916115335432 0.024584049538128237
164 4.825239650724885 0.024330872710540186
165 4.827550821005174 0.02408147595390556
166 4.829849757086223 0.023835750088946693
167 4.83213658780998 0.023593590256667962
168 4.834411439993738 0.023354859208972435
169 4.836674438472338 0.023119210032179788
170 4.8389257061392765 0.022886238199826978
171 4.84116536398675 0.022655565156790684
172 4.843393531144677 0.022426837193391006
173 4.8456103249187175 0.022199724282190407
174 4.847815860827332 0.021973919008799674
175 4.850010252637905 0.021749135586660175
176 4.852193612401959 0.021525108946707335
177 4.854366050489481 0.021301593893665857
178 4.85652767562241 0.021078364321491325
179 4.858678594907279 0.020855212481169425
180 4.860818913867066 0.020631948294708276
181 4.862948736472249 0.020408398709740982
182 4.865068165171123 0.020184407089672788
183 4.867177300919361 0.019959832634793888
184 4.869276243208876 0.019734549848596197
185 4.871365090095978 0.01950855906498009
186 4.873443938228863 0.019282233474291463
187 4.875512882874445 0.01905599999342183
188 4.877572017944558 0.018830258478171522
189 4.879621436021523 0.018605382580096252
190 4.881661228383141 0.018381720651923898
191 4.8836914850270725 0.01815959669095671
192 4.885712294694675 0.01793931131084732
193 4.887723744894268 0.01772114273308412
194 4.889725921923883 0.017505347790407702
195 4.891718910893468 0.017292162935232714
196 4.893702795746605 0.017081805246938364
197 4.89567765928172 0.01687447343264147
198 4.897643583172822 0.016670348816755363

60
tcl/calcurves/RuO2392.inp Normal file
View File

@ -0,0 +1,60 @@
#sens=RuO2392
#unit=Ohm
#type=Special Model:RuO2392
#curv ! Curve follows R[Ohm] T[K]
1373.8 4.369
1400.6 4.045
1427.4 3.759
1454.5 3.51
1482 3.289
1509.4 3.089
1535.2 2.927
1593.3 2.605
1650.1 2.349
1707.2 2.135
1764.8 1.956
1824 1.804
1882.2 1.673
1941.3 1.56
1999.8 1.459
2084.2 1.328
2176.2 1.222
2265.9 1.128
2355.3 1.047
2445.7 0.977
2533.5 0.917
2656.7 0.844
2773.5 0.784
2957.3 0.706
3143.1 0.642
3329.5 0.589
3581.9 0.529
3842.7 0.481
4181.2 0.432
4533.3 0.393
512.4 0.337
5708.4 0.3
6063.7 0.28
7338.8 0.222
8057.2 0.202
8765.7 0.185
9486.1 0.171
10255 0.159
10998 0.149
12514 0.133
14842 0.118
15772 0.109
19200 0.093
21161 0.087
23163 0.082
24916 0.078
28421 0.071
33467 0.065
40298 0.059
48260 0.054
56358 0.05
68461 0.046
84969 0.043
94612 0.042
124595 0.039
157821 0.037

Some files were not shown because too many files have changed in this diff Show More