Pullback from Taipan 2015-02-19
This commit is contained in:
@ -7,7 +7,6 @@ namespace eval counter {
|
||||
|
||||
proc ::counter::transferscript {} {
|
||||
variable isc_numchannels
|
||||
bm status
|
||||
set val [SplitReply [bm1 gettime]]
|
||||
for {set i 1} {$i <= $isc_numchannels} {incr i} {
|
||||
append val " [SplitReply [bm$i getcounts] ]"
|
||||
@ -36,8 +35,8 @@ proc ::counter::ic_initialize {} {
|
||||
# This must be sourced before the hmm_configuration.tcl until we separate the scan setup from the hmm setup
|
||||
for {set i 0; set n 1} {$i < $isc_numchannels} {incr i; incr n} {
|
||||
MakeCounter bm$n anstomonitor [ params host $isc_monitor_address port [lindex $isc_portlist $i] ]
|
||||
bm$n send scan=1
|
||||
bm$n send sample=10
|
||||
bm$n send set scan=1
|
||||
bm$n send set sample=10
|
||||
append bm_list "bm$n "
|
||||
}
|
||||
}
|
||||
|
@ -50,7 +50,7 @@ namespace eval ::scobj::[set vendor]_[set device] {
|
||||
|
||||
proc debug_log {debug_level arg_string} {
|
||||
# write a timestamped string message to a log file for debugging
|
||||
set debug_threshold 0
|
||||
set debug_threshold 5
|
||||
if {$debug_level >= $debug_threshold} {
|
||||
set fd [open "[set [namespace current]::log_file]" "a"]
|
||||
set line "[clock format [clock seconds] -format "%T"] $arg_string"
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -27,6 +27,33 @@ proc ::scobj::west_6100::sics_log {debug_level debug_string} {
|
||||
} catch_message ]
|
||||
}
|
||||
|
||||
# checklimits function for driveable interface
|
||||
proc ::scobj::west_6100::checklimits {tc_root} {
|
||||
set catch_status [ catch {
|
||||
debug_log ${tc_root} 1 "checklimits tc_root=${tc_root} sct=[sct] target=[sct target]"
|
||||
set setpoint [sct target]
|
||||
if { [hpropexists [sct] lowerlimit] } {
|
||||
set lolimit [sct lowerlimit]
|
||||
} else {
|
||||
# lowerlimit not set, use target
|
||||
set lolimit [sct target]
|
||||
}
|
||||
if { [hpropexists [sct] upperlimit] } {
|
||||
set hilimit [sct upperlimit]
|
||||
} else {
|
||||
# upperlimit not set, use target
|
||||
set hilimit [sct target]
|
||||
}
|
||||
# checklimits hook code goes here
|
||||
if { ${setpoint} < ${lolimit} || ${setpoint} > ${hilimit} } {
|
||||
sct driving 0
|
||||
error "setpoint ${setpoint} violates limits (${lolimit}..${hilimit}) on [sct]"
|
||||
}
|
||||
return OK
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
# check function for hset change
|
||||
proc ::scobj::west_6100::checkrange {tc_root} {
|
||||
set catch_status [ catch {
|
||||
@ -53,6 +80,40 @@ proc ::scobj::west_6100::checkrange {tc_root} {
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
# checkstatus function for driveable interface
|
||||
proc ::scobj::west_6100::checkstatus {tc_root} {
|
||||
set catch_status [ catch {
|
||||
# checkstatus hook code goes here
|
||||
if {[sct driving]} {
|
||||
set sp "[sct target]"
|
||||
set pv "[hval ${tc_root}/[sct driveable]]"
|
||||
if { abs(${pv} - ${sp}) <= [sct tolerance] } {
|
||||
if { [hpropexists [sct] settle_time] } {
|
||||
if { [hpropexists [sct] settle_time_start] } {
|
||||
if { [sct utime] - [sct settle_time_start] >= [sct settle_time]} {
|
||||
sct driving 0
|
||||
return "idle"
|
||||
}
|
||||
return "busy"
|
||||
} else {
|
||||
sct utime settle_time_start
|
||||
return "busy"
|
||||
}
|
||||
}
|
||||
sct driving 0
|
||||
return "idle"
|
||||
}
|
||||
if { [hpropexists [sct] settle_time_start] } {
|
||||
hdelprop [sct] settle_time_start
|
||||
}
|
||||
return "busy"
|
||||
} else {
|
||||
return "idle"
|
||||
}
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
# function to request the read of a parameter on a device
|
||||
proc ::scobj::west_6100::getDecimal {tc_root nextState cmd_str} {
|
||||
set catch_status [ catch {
|
||||
@ -101,6 +162,18 @@ proc ::scobj::west_6100::getInteger {tc_root nextState cmd_str} {
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
# halt function for driveable interface
|
||||
proc ::scobj::west_6100::halt {tc_root} {
|
||||
set catch_status [ catch {
|
||||
debug_log ${tc_root} 1 "halt tc_root=${tc_root} sct=[sct] driving=[sct driving]"
|
||||
### TODO hset [sct] [hval [sct]]
|
||||
# halt hook code goes here
|
||||
sct driving 0
|
||||
return "idle"
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
# function to check the write parameter on a device
|
||||
proc ::scobj::west_6100::noResponse {tc_root} {
|
||||
set catch_status [ catch {
|
||||
@ -262,8 +335,8 @@ proc ::scobj::west_6100::wrInteger {tc_root nextState cmd_str} {
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_flag ip_address tcp_port dev_id } {
|
||||
::scobj::west_6100::sics_log 9 "::scobj::west_6100::mkDriver ${sct_controller} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${dev_id}"
|
||||
proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_flag ip_address tcp_port id {datype T} } {
|
||||
::scobj::west_6100::sics_log 9 "::scobj::west_6100::mkDriver ${sct_controller} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${id}"
|
||||
set ns "[namespace current]"
|
||||
set catch_status [ catch {
|
||||
|
||||
@ -358,6 +431,8 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath}/sensor data true
|
||||
hsetprop ${scobj_hpath}/sensor mutable true
|
||||
hsetprop ${scobj_hpath}/sensor nxsave true
|
||||
hsetprop ${scobj_hpath}/sensor permlink data_set "${datype}[format "%02d" ${id}]S01"
|
||||
hsetprop ${scobj_hpath}/sensor @description "${datype}[format "%02d" ${id}]S01"
|
||||
hsetprop ${scobj_hpath}/sensor oldval 0.0
|
||||
hsetprop ${scobj_hpath}/sensor klass "parameter"
|
||||
hsetprop ${scobj_hpath}/sensor sdsinfo "::nexus::scobj::sdsinfo"
|
||||
@ -370,14 +445,25 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath}/setpoint write ${ns}::wrDecimal ${scobj_hpath} noResponse {2}
|
||||
hsetprop ${scobj_hpath}/setpoint noResponse ${ns}::noResponse ${scobj_hpath}
|
||||
hsetprop ${scobj_hpath}/setpoint check ${ns}::checkrange ${scobj_hpath}
|
||||
hsetprop ${scobj_hpath}/setpoint driving 0
|
||||
hsetprop ${scobj_hpath}/setpoint checklimits ${ns}::checklimits ${scobj_hpath}
|
||||
hsetprop ${scobj_hpath}/setpoint checkstatus ${ns}::checkstatus ${scobj_hpath}
|
||||
hsetprop ${scobj_hpath}/setpoint halt ${ns}::halt ${scobj_hpath}
|
||||
hsetprop ${scobj_hpath}/setpoint driveable sensor
|
||||
hsetprop ${scobj_hpath}/setpoint control true
|
||||
hsetprop ${scobj_hpath}/setpoint data true
|
||||
hsetprop ${scobj_hpath}/setpoint mutable true
|
||||
hsetprop ${scobj_hpath}/setpoint nxsave true
|
||||
hsetprop ${scobj_hpath}/setpoint lowerlimit 0
|
||||
hsetprop ${scobj_hpath}/setpoint upperlimit 1600
|
||||
hsetprop ${scobj_hpath}/setpoint tolerance 1
|
||||
hsetprop ${scobj_hpath}/setpoint permlink data_set "${datype}[format "%02d" ${id}]SP01"
|
||||
hsetprop ${scobj_hpath}/setpoint @description "${datype}[format "%02d" ${id}]SP01"
|
||||
hsetprop ${scobj_hpath}/setpoint oldval 0.0
|
||||
hsetprop ${scobj_hpath}/setpoint klass "parameter"
|
||||
hsetprop ${scobj_hpath}/setpoint sdsinfo "::nexus::scobj::sdsinfo"
|
||||
hsetprop ${scobj_hpath}/setpoint type "part"
|
||||
hsetprop ${scobj_hpath}/setpoint settle_time "30"
|
||||
hsetprop ${scobj_hpath}/setpoint type "drivable"
|
||||
hsetprop ${scobj_hpath}/setpoint nxalias "${name}_setpoint"
|
||||
|
||||
hfactory ${scobj_hpath}/w_sp plain user float
|
||||
@ -471,14 +557,17 @@ proc ::scobj::west_6100::mkDriver { sct_controller name device_class simulation_
|
||||
hsetprop ${scobj_hpath} klass ${device_class}
|
||||
hsetprop ${scobj_hpath} data true
|
||||
hsetprop ${scobj_hpath} debug_threshold 5
|
||||
if {[string equal -nocase "${simulation_flag}" "false"]} {
|
||||
ansto_makesctdrive ${name}_setpoint ${scobj_hpath}/setpoint ${scobj_hpath}/sensor ${sct_controller}
|
||||
}
|
||||
# mkDriver hook code goes here
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
|
||||
proc ::scobj::west_6100::add_driver {name device_class simulation_flag ip_address tcp_port dev_id} {
|
||||
proc ::scobj::west_6100::add_driver {name device_class simulation_flag ip_address tcp_port id {datype T} } {
|
||||
set catch_status [ catch {
|
||||
::scobj::west_6100::sics_log 9 "::scobj::west_6100::add_driver ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${dev_id}"
|
||||
::scobj::west_6100::sics_log 9 "::scobj::west_6100::add_driver ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${id}"
|
||||
if {[string equal -nocase "${simulation_flag}" "false"]} {
|
||||
if {[string equal -nocase "aqadapter" "${ip_address}"]} {
|
||||
::scobj::west_6100::sics_log 9 "makesctcontroller sct_${name} aqadapter ${tcp_port}"
|
||||
@ -490,8 +579,8 @@ proc ::scobj::west_6100::add_driver {name device_class simulation_flag ip_addres
|
||||
} else {
|
||||
::scobj::west_6100::sics_log 9 "simulation_flag={simulation_flag} => No sctcontroller for west_6100"
|
||||
}
|
||||
::scobj::west_6100::sics_log 1 "::scobj::west_6100::mkDriver sct_${name} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${dev_id}"
|
||||
::scobj::west_6100::mkDriver sct_${name} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${dev_id}
|
||||
::scobj::west_6100::sics_log 1 "::scobj::west_6100::mkDriver sct_${name} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${id}"
|
||||
::scobj::west_6100::mkDriver sct_${name} ${name} ${device_class} ${simulation_flag} ${ip_address} ${tcp_port} ${id} $datype
|
||||
} catch_message ]
|
||||
handle_exception ${catch_status} ${catch_message}
|
||||
}
|
||||
@ -504,9 +593,9 @@ namespace eval ::scobj::west_6100 {
|
||||
namespace export add_driver
|
||||
}
|
||||
|
||||
proc add_west_6100 {name ip_address tcp_port dev_id} {
|
||||
proc add_west_6100 {name ip_address tcp_port id {datype T} } {
|
||||
set simulation_flag "[string tolower [SplitReply [environment_simulation]]]"
|
||||
::scobj::west_6100::add_driver ${name} "environment" "${simulation_flag}" ${ip_address} ${tcp_port} "${dev_id}"
|
||||
::scobj::west_6100::add_driver ${name} "environment" "${simulation_flag}" ${ip_address} ${tcp_port} "${id} ${datype}"
|
||||
}
|
||||
|
||||
clientput "file evaluation of sct_west_6100.tcl"
|
||||
@ -572,7 +661,7 @@ proc ::scobj::west_6100::read_config {} {
|
||||
}
|
||||
set arg_list [list]
|
||||
set missing_list [list]
|
||||
foreach arg {dev_id} {
|
||||
foreach arg {id datype} {
|
||||
if {[dict exists $u $arg]} {
|
||||
lappend arg_list "[dict get $u $arg]"
|
||||
} elseif {[dict exists $v $arg]} {
|
||||
|
@ -254,25 +254,20 @@ proc waitaction {obj action args} {
|
||||
publish waitaction user
|
||||
|
||||
proc server_set_sobj_attributes {} {
|
||||
if [ catch {
|
||||
motor_set_sobj_attributes
|
||||
::utility::set_motor_attributes
|
||||
if [ catch { motor_set_sobj_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::utility::set_motor_attributes } msg ] { puts $msg }
|
||||
#XXX::utility::set_histomem_attributes
|
||||
::utility::set_sobj_attributes
|
||||
::utility::set_envcontrol_attributes
|
||||
::plc::set_sobj_attributes
|
||||
::counter::set_sobj_attributes
|
||||
::nexus::set_sobj_attributes
|
||||
::histogram_memory::set_sobj_attributes
|
||||
::utility::set_chopper_attributes
|
||||
::utility::set_sct_object_attributes
|
||||
if [ catch { ::utility::set_sobj_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::utility::set_envcontrol_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::plc::set_sobj_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::counter::set_sobj_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::nexus::set_sobj_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::histogram_memory::set_sobj_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::utility::set_chopper_attributes } msg ] { puts $msg }
|
||||
if [ catch { ::utility::set_sct_object_attributes } msg ] { puts $msg }
|
||||
## TODO move the following to the new ansto gumxml.tcl
|
||||
sicslist setatt getgumtreexml privilege internal
|
||||
if [ catch { sicslist setatt getgumtreexml privilege internal } msg ] { puts $msg }
|
||||
clientput "serverport $::serverport"
|
||||
} message ] {
|
||||
if {$::errorCode=="NONE"} {return $message}
|
||||
return -code error $message
|
||||
}
|
||||
}
|
||||
|
||||
proc server_init {} {
|
||||
@ -313,6 +308,7 @@ proc server_init {} {
|
||||
fileeval ../extraconfig.tcl
|
||||
}
|
||||
server_set_sobj_attributes
|
||||
if [ catch { hsetprop /sics/magnet1/magneticFieldTesla permlink data_set B1S1 } msg ] { puts $msg }
|
||||
buildHDB instrument_dictionary
|
||||
|
||||
} message ]
|
||||
|
@ -4,9 +4,6 @@
|
||||
# FastShutter is currently set on Quokka only
|
||||
#::utility::mkVar FastShutter text manager FastShutter false instrument true false
|
||||
|
||||
# SET TO 1 TO USE THE TILT STAGE ie sample phi and chi
|
||||
set use_tiltstage 0
|
||||
|
||||
set animal taipan
|
||||
set sim_mode [SplitReply [motor_simulation]]
|
||||
|
||||
@ -93,6 +90,75 @@ set move_count 100
|
||||
############################
|
||||
#
|
||||
|
||||
# CHOOSE HERE for sample stage configuration
|
||||
##########################################
|
||||
# Set axis_config as follows to use different axis configurations
|
||||
# 0: normal stage configuration
|
||||
# 1: Oxford magnet sample stick
|
||||
set axis_config 0
|
||||
|
||||
if { [ info exists ::config_dict ] } {
|
||||
if { [ dict exists $::config_dict sample_stage implementation ] } {
|
||||
set implementation [ dict get $::config_dict sample_stage implementation ]
|
||||
if {$implementation == "normal_sample_stage"} {
|
||||
set axis_config 0
|
||||
} elseif {$implementation == "12tmagnet_sample_insert"} {
|
||||
set axis_config 1
|
||||
} elseif {$implementation == "eulerian_cradle"} {
|
||||
set axis_config 2
|
||||
} else {
|
||||
set axis_config 0
|
||||
}
|
||||
}
|
||||
if { [ dict exists $::config_dict m2s2 implementation ] } {
|
||||
set implementation [ dict get $::config_dict m2s2 implementation ]
|
||||
if {$implementation == "normal_m2s2"} {
|
||||
set m2_speed 0.4
|
||||
set m2_accel 0.04
|
||||
set m2_decel 0.04
|
||||
set s2_speed 0.8
|
||||
set s2_accel 0.2
|
||||
set s2_decel 0.2
|
||||
} elseif {$implementation == "extended_m2s2"} {
|
||||
set m2_speed 0.1
|
||||
set m2_accel 0.025
|
||||
set m2_decel 0.025
|
||||
set s2_speed 0.4
|
||||
set s2_accel 0.1
|
||||
set s2_decel 0.1
|
||||
} else {
|
||||
set m2_speed 0.4
|
||||
set m2_accel 0.04
|
||||
set m2_decel 0.04
|
||||
set s2_speed 0.8
|
||||
set s2_accel 0.2
|
||||
set s2_decel 0.2
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
switch $axis_config {
|
||||
0 {
|
||||
set use_s1_stage "true"
|
||||
set tilt_motor_driver_type $motor_driver_type
|
||||
fileeval $cfPath(motors)/tilt_configuration.tcl
|
||||
}
|
||||
1 {
|
||||
set magmot s1
|
||||
set magmot_aq "mc2"
|
||||
set magmot_axis "A"
|
||||
set use_s1_stage "false"
|
||||
set tilt_motor_driver_type asim
|
||||
fileeval $cfPath(motors)/tilt_configuration.tcl
|
||||
fileeval $cfPath(motors)/magnet_configuration.tcl
|
||||
}
|
||||
2 {
|
||||
set use_s1_stage "true"
|
||||
fileeval $cfPath(motors)/euler_configuration.tcl
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
# Dummy translation motor, useful for testing scans
|
||||
|
||||
Motor dummy_motor asim [params \
|
||||
@ -138,36 +204,6 @@ dummy_s1 softupperlim 180
|
||||
dummy_s1 precision 0.02
|
||||
dummy_s1 home 0
|
||||
|
||||
if { [ info exists ::config_dict ] && [ dict get $::config_dict s1_sample_insert enabled ] } {
|
||||
set samp_stage_name "s1ss"
|
||||
set tilt_motor_driver_type asim
|
||||
|
||||
Motor s1 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-taipan\
|
||||
port pmc2-taipan\
|
||||
axis A\
|
||||
units degrees\
|
||||
hardlowerlim -1440\
|
||||
hardupperlim 1440\
|
||||
maxSpeed 1\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX [expr 67.0 * 25000 / 360]\
|
||||
absEnc 1\
|
||||
absEncHome 31275743\
|
||||
cntsPerX [expr 67.0 * 8192 / 360]]
|
||||
s1 part sample
|
||||
s1 long_name s1
|
||||
s1 softlowerlim -180
|
||||
s1 softupperlim 180
|
||||
s1 home 0
|
||||
} else {
|
||||
set samp_stage_name "s1"
|
||||
set tilt_motor_driver_type $motor_driver_type
|
||||
}
|
||||
|
||||
#if $use_tiltstage {
|
||||
# mc1: Monochromator crystal selection rotation/Tilt
|
||||
Motor mtilt $motor_driver_type [params \
|
||||
asyncqueue mc1\
|
||||
@ -182,16 +218,14 @@ Motor mtilt $motor_driver_type [params \
|
||||
maxDecel 1\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome 79650\
|
||||
absEncHome 27115\
|
||||
cntsPerX 4096]
|
||||
mtilt part crystal
|
||||
mtilt long_name mtilt
|
||||
mtilt softlowerlim -5
|
||||
mtilt softupperlim 5
|
||||
mtilt home 0
|
||||
#}
|
||||
|
||||
set atest mtilt
|
||||
|
||||
# mc1: Monochromator Linear (Translate)
|
||||
Motor mtrans $motor_driver_type [params \
|
||||
@ -207,7 +241,7 @@ Motor mtrans $motor_driver_type [params \
|
||||
maxDecel 1\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome 469388\
|
||||
absEncHome 859242\
|
||||
cntsPerX 4096]
|
||||
mtrans part crystal
|
||||
mtrans long_name mtrans
|
||||
@ -249,9 +283,9 @@ m2 motOffDelay 0
|
||||
m2 backlash_offset -0.5
|
||||
m2 creep_offset 0.1
|
||||
m2 creep_precision 0.0
|
||||
m2 speed 0.4
|
||||
m2 accel 0.04
|
||||
m2 decel 0.04
|
||||
m2 speed $m2_speed
|
||||
m2 accel $m2_accel
|
||||
m2 decel $m2_decel
|
||||
|
||||
# mc1: Detector Rotate
|
||||
Motor a2 $motor_driver_type [params \
|
||||
@ -291,100 +325,9 @@ a2 decel 0.2
|
||||
############################
|
||||
#
|
||||
|
||||
# mc2: Sample Tilt 1
|
||||
Motor sgu $tilt_motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-taipan\
|
||||
port pmc2-taipan\
|
||||
axis A\
|
||||
units degrees\
|
||||
hardlowerlim -13\
|
||||
hardupperlim 16.5\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome 7745478\
|
||||
cntsPerX 8192]
|
||||
sgu part sample
|
||||
sgu long_name sgu
|
||||
sgu softlowerlim -13
|
||||
sgu softupperlim 16.5
|
||||
sgu home 0
|
||||
sgu backlash_offset -0.2
|
||||
|
||||
# mc2: Sample Tilt 2
|
||||
Motor sgl $tilt_motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-taipan\
|
||||
port pmc2-taipan\
|
||||
axis B\
|
||||
units degrees\
|
||||
hardlowerlim -16.5\
|
||||
hardupperlim 17.5\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome 7499135\
|
||||
cntsPerX 8192]
|
||||
sgl part sample
|
||||
sgl long_name sgl
|
||||
sgl softlowerlim -16.5
|
||||
sgl softupperlim 17.5
|
||||
sgl home 0
|
||||
sgl backlash_offset -0.2
|
||||
|
||||
# mc2: Sample Up Tanslation
|
||||
Motor stu $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-taipan\
|
||||
port pmc2-taipan\
|
||||
axis C\
|
||||
units mm\
|
||||
hardlowerlim -15\
|
||||
hardupperlim 15\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX -25000\
|
||||
absEnc 1\
|
||||
absEncHome 7392933\
|
||||
cntsPerX -8192]
|
||||
stu part sample
|
||||
stu long_name stu
|
||||
stu softlowerlim -15
|
||||
stu softupperlim 15
|
||||
stu home 0.0
|
||||
stu backlash_offset -0.2
|
||||
|
||||
# mc2: Sample Lower Tanslation
|
||||
Motor stl $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-taipan\
|
||||
port pmc2-taipan\
|
||||
axis D\
|
||||
units mm\
|
||||
hardlowerlim -15\
|
||||
hardupperlim 15\
|
||||
maxSpeed 2\
|
||||
maxAccel 1\
|
||||
maxDecel 1\
|
||||
stepsPerX 25000\
|
||||
absEnc 1\
|
||||
absEncHome 7582773\
|
||||
cntsPerX 8192]
|
||||
stl part sample
|
||||
stl long_name stl
|
||||
stl softlowerlim -15
|
||||
stl softupperlim 15
|
||||
stl home 0.0
|
||||
stl backlash_offset -0.2
|
||||
|
||||
# mc2: Sample Rotate
|
||||
Motor $samp_stage_name $motor_driver_type [params \
|
||||
if {$use_s1_stage == "true"} {
|
||||
Motor s1 $motor_driver_type [params \
|
||||
asyncqueue mc2\
|
||||
host mc2-taipan\
|
||||
port pmc2-taipan\
|
||||
@ -399,12 +342,14 @@ Motor $samp_stage_name $motor_driver_type [params \
|
||||
absEnc 1\
|
||||
absEncHome 10695068\
|
||||
cntsPerX 4096]
|
||||
$samp_stage_name part sample
|
||||
$samp_stage_name long_name $samp_stage_name
|
||||
$samp_stage_name softlowerlim -170
|
||||
$samp_stage_name softupperlim 120
|
||||
$samp_stage_name home 35.997
|
||||
$samp_stage_name backlash_offset -0.2
|
||||
s1 part sample
|
||||
s1 long_name s1
|
||||
s1 softlowerlim -170
|
||||
s1 softupperlim 120
|
||||
s1 home 35.997
|
||||
s1 backlash_offset -0.2
|
||||
}
|
||||
|
||||
|
||||
# mc2: Analyser Detector Rotate -- Sample Scattering Angle
|
||||
# absEncHome 20728908\ at -50
|
||||
@ -437,9 +382,9 @@ s2 backlash_offset 0.5
|
||||
s2 blockage_thresh 1
|
||||
s2 creep_offset 0.015
|
||||
s2 creep_precision 0.005
|
||||
s2 speed 0.8
|
||||
s2 accel 0.2
|
||||
s2 decel 0.2
|
||||
s2 speed $s2_speed
|
||||
s2 accel $s2_accel
|
||||
s2 decel $s2_decel
|
||||
|
||||
# mc2: Analyser Horizontal Focus
|
||||
Motor ahfocus $motor_driver_type [params \
|
||||
@ -517,9 +462,10 @@ mvfocus long_name mvfocus
|
||||
mvfocus softlowerlim 0
|
||||
mvfocus softupperlim 300
|
||||
mvfocus home 0.0
|
||||
mvfocus Blockage_Thresh 2
|
||||
mvfocus Blockage_Thresh 4
|
||||
mvfocus Blockage_Check_Interval 2
|
||||
mvfocus creep_offset 0.2
|
||||
mvfocus backlash_offset -4
|
||||
# mc3: Monochromator Horizontal Focus
|
||||
Motor mhfocus $motor_driver_type [params \
|
||||
asyncqueue mc3\
|
||||
@ -528,25 +474,26 @@ Motor mhfocus $motor_driver_type [params \
|
||||
axis B\
|
||||
units degrees\
|
||||
precision 0.2\
|
||||
hardlowerlim -80\
|
||||
hardupperlim 240\
|
||||
hardlowerlim -10\
|
||||
hardupperlim 280\
|
||||
maxSpeed 3.6\
|
||||
maxAccel 1.728\
|
||||
maxDecel 1.728\
|
||||
stepsPerX [expr 25000.0 * 50.0 / 360.0]\
|
||||
absEnc 1\
|
||||
bias_bits 12\
|
||||
bias_bias 1540\
|
||||
absEncHome 2788\
|
||||
cntsPerX [expr -4096.0 / 360.0]]
|
||||
bias_bias 1300\
|
||||
absEncHome 243\
|
||||
cntsPerX [expr 4096.0 / 360.0]]
|
||||
mhfocus part crystal
|
||||
mhfocus long_name mhfocus
|
||||
mhfocus softlowerlim -75
|
||||
mhfocus softupperlim 235
|
||||
mhfocus softlowerlim -10
|
||||
mhfocus softupperlim 280
|
||||
mhfocus home 0
|
||||
mhfocus Blockage_Thresh 2
|
||||
mhfocus Blockage_Thresh 4
|
||||
mhfocus Blockage_Check_Interval 2
|
||||
mhfocus creep_offset 0.2
|
||||
mhfocus backlash_offset -4
|
||||
|
||||
# mc3: Monochromator Rotate
|
||||
Motor m1 $motor_driver_type [params \
|
||||
@ -563,13 +510,13 @@ Motor m1 $motor_driver_type [params \
|
||||
maxDecel 0.25\
|
||||
stepsPerX 100000\
|
||||
absEnc 1\
|
||||
absEncHome 16323070\
|
||||
absEncHome 16189898\
|
||||
cntsPerX -2048]
|
||||
m1 part crystal
|
||||
m1 long_name m1
|
||||
m1 softlowerlim 5
|
||||
m1 softupperlim 40
|
||||
m1 home 20.45933
|
||||
m1 home 0
|
||||
m1 backlash_offset -1.0
|
||||
|
||||
# mc4: Analyzer Tilt 1 -- Two-theta Angle
|
||||
|
@ -35,21 +35,27 @@ namespace eval anticollider { proc ::anticollider::init {} {} }
|
||||
#fileeval $cfPath(anticollider)/anticollider.tcl
|
||||
#fileeval $cfPath(tasmad)/taspub_sics/tasp.tcl
|
||||
#fileeval $cfPath(tasmad)/taspub_sics/tasscript.tcl
|
||||
|
||||
fileeval $cfPath(environment)/sct_agilent_33220A.tcl
|
||||
fileeval $cfPath(environment)/sct_protek_common.tcl
|
||||
fileeval $cfPath(environment)/sct_protekmm.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_eurotherm_2000.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_eurotherm_3200.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_julabo_lh45.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_lakeshore_336.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_ls336.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_lakeshore_340.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_ls340.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_lakeshore_370.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_lakeshore_m370.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_oxford_itc.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_oxford_mercury.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_mercury_base.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_mercury_temp.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_mercury_pres.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_mercury_level.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_mercury_valve.tcl
|
||||
fileeval $cfPath(environment)/temperature/west400.tcl
|
||||
fileeval $cfPath(environment)/temperature/sct_west_6100.tcl
|
||||
fileeval $cfPath(environment)/he3/sct_he3.tcl
|
||||
fileeval $cfPath(environment)/magneticField/oxford_labview.tcl
|
||||
fileeval $cfPath(environment)/magneticField/sct_oxford12tlv.tcl
|
||||
fileeval $cfPath(beamline)/sct_he3_polanal.tcl
|
||||
fileeval config/load_setup.tcl
|
||||
fileeval log.tcl
|
||||
publish logbook spy
|
||||
@ -58,12 +64,44 @@ source gumxml.tcl
|
||||
::utility::mkVar ::anticollider::protect_detector text manager protect_detector false detector true false
|
||||
::anticollider::protect_detector "true"
|
||||
|
||||
if { [ dict exists $::config_dict sample_stage implementation ] } {
|
||||
set sample_stage [ dict get $::config_dict sample_stage implementation ]
|
||||
} else {
|
||||
set sample_stage "normal_sample_stage"
|
||||
}
|
||||
switch $sample_stage {
|
||||
"eulerian_cradle" {
|
||||
# s1-> eom, sgu -> ephi, sgl -> echi
|
||||
set OMEGA s1
|
||||
set PHI ephi
|
||||
set CHI echi
|
||||
}
|
||||
"normal_sample_stage" - default {
|
||||
set OMEGA s1
|
||||
set PHI sgu
|
||||
set CHI sgl
|
||||
}
|
||||
}
|
||||
# init for the tasUB
|
||||
#make mcv mch acv ach into mvfocus mhfocus avfocus ahfocus when it works
|
||||
puts "doing tasub"
|
||||
MakeTasUB tasub m1 m2 mcv mch s1 s2 sgu sgl a1 a2 acv ach
|
||||
MakeTasUB tasub m1 m2 mvfocus mhfocus $OMEGA s2 $PHI $CHI a1 a2 avfocus ahfocus
|
||||
tasub mono dd 3.35416
|
||||
tasub ana dd 3.35416
|
||||
# NOTE Autofocussing parameters (vbn, hbn) persist in status.tcl
|
||||
# To override this behaviour you can set them in extraconfig.tcl
|
||||
tasub mono vb1 102.2
|
||||
tasub mono vb2 1.78
|
||||
tasub mono hb1 18.28
|
||||
tasub mono hb2 60.1
|
||||
tasub mono hb3 0.951
|
||||
tasub ana vb1 115
|
||||
tasub ana vb2 2.13
|
||||
tasub ana hb1 45.68
|
||||
tasub ana hb2 105.7
|
||||
tasub ana hb3 0.945
|
||||
tasub focusfn energy
|
||||
tasub autofocus 0
|
||||
tasub updatetargets
|
||||
puts "done tasub"
|
||||
|
||||
@ -74,6 +112,16 @@ server_init
|
||||
###########################################
|
||||
# WARNING: Do not add any code below server_init, if you do SICS may fail to initialise properly.
|
||||
|
||||
puts "Making hkl command"
|
||||
MakeMono mono PG m1 m2
|
||||
mono dd 3.35416
|
||||
MakeWaveLength lambda mono
|
||||
MakeEnergy energy mono
|
||||
#MakeSingleX singlex
|
||||
#MakeHKL s2 $OMEGA $PHI $CHI
|
||||
#MakeHKLMot hkl
|
||||
#MakeUBcalc ubcalc hkl
|
||||
|
||||
# Provide tasmot notifications to GumTree when real motors move
|
||||
proc m2tasupdate {} {
|
||||
tasub update
|
||||
@ -109,7 +157,7 @@ proc a2tasupdate {} {
|
||||
publish a2tasupdate user
|
||||
|
||||
scriptcallback connect m2 MOTEND m2tasupdate
|
||||
scriptcallback connect s1 MOTEND s1s2tasupdate
|
||||
scriptcallback connect $OMEGA MOTEND s1s2tasupdate
|
||||
scriptcallback connect s2 MOTEND s1s2tasupdate
|
||||
scriptcallback connect a2 MOTEND a2tasupdate
|
||||
|
||||
|
@ -1,156 +1,304 @@
|
||||
[12tmagnet]
|
||||
desc = "12 Tesla Oxford Magnet"
|
||||
driver = "12tmagnet"
|
||||
enabled = False
|
||||
group = environment:magnet
|
||||
id = 11
|
||||
ip = 10.157.205.3
|
||||
name = magnetic
|
||||
port = 55001
|
||||
type = B
|
||||
|
||||
[12tmagnet_setup]
|
||||
cascade = 12tmagnet,s1_sample_insert,mercury_scpi
|
||||
cascade = B1:12tmagnet_oxford,sample_stage:12tmagnet_sample_insert,T1:mercury_scpi_01
|
||||
enabled = False
|
||||
group = 0setup
|
||||
|
||||
[ls336_1]
|
||||
desc = "tc1: Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
[CF1]
|
||||
cascade = T1:CF1_ls340,sample_stage:normal_sample_stage
|
||||
enabled = False
|
||||
[Default]
|
||||
cascade = sample_stage:normal_sample_stage
|
||||
enabled = True
|
||||
[B1]
|
||||
datype = B
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 1
|
||||
ip = 10.157.205.28
|
||||
name = tc1
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
|
||||
[ls336_12]
|
||||
desc = "tc6: Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
implementation = none
|
||||
name = magnet1
|
||||
optype = magnetic_field
|
||||
[Function_Generator]
|
||||
datype = V
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 6
|
||||
ip = 10.157.205.31
|
||||
name = tc6
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
|
||||
[ls336_2]
|
||||
desc = "tc2: Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
id = 1
|
||||
implementation = none
|
||||
name = pulser
|
||||
optype = function_generator
|
||||
[I1]
|
||||
datype = I
|
||||
enabled = False
|
||||
id = 1
|
||||
implementation = none
|
||||
name = curr1
|
||||
optype = multimeter
|
||||
[I2]
|
||||
datype = I
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 2
|
||||
ip = 10.157.205.29
|
||||
implementation = none
|
||||
name = curr2
|
||||
optype = multimeter
|
||||
[T1]
|
||||
datype = T
|
||||
enabled = False
|
||||
id = 1
|
||||
implementation = none
|
||||
name = tc1
|
||||
optype = temperature
|
||||
[T2]
|
||||
datype = T
|
||||
enabled = False
|
||||
id = 2
|
||||
implementation = none
|
||||
name = tc2
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
|
||||
[ls336_4]
|
||||
desc = "tc3: Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
optype = temperature
|
||||
[T3]
|
||||
datype = T
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 3
|
||||
ip = 10.157.205.30
|
||||
implementation = none
|
||||
name = tc3
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
|
||||
[ls336_5]
|
||||
desc = "tc4: Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
optype = temperature
|
||||
[T4]
|
||||
datype = T
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 4
|
||||
ip = 137.157.201.21
|
||||
implementation = none
|
||||
name = tc4
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
|
||||
[ls336_6]
|
||||
desc = "tc5: Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
optype = temperature
|
||||
[V1]
|
||||
datype = V
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 5
|
||||
ip = 137.157.201.21
|
||||
name = tc5
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
id = 1
|
||||
implementation = none
|
||||
name = volts1
|
||||
optype = multimeter
|
||||
[V2]
|
||||
datype = V
|
||||
enabled = False
|
||||
id = 2
|
||||
implementation = none
|
||||
name = volts2
|
||||
optype = multimeter
|
||||
[sample_stage]
|
||||
enabled = Always
|
||||
implementation = normal_sample_stage
|
||||
name = sample_stage
|
||||
optype = motion_axis
|
||||
[12tmagnet_oxford]
|
||||
asyncqueue = sct
|
||||
desc = "12 Tesla Oxford Magnet"
|
||||
driver = "oxford12tlv"
|
||||
imptype = magnetic_field
|
||||
interval = 5
|
||||
ip = 10.157.205.3
|
||||
port = 55001
|
||||
|
||||
[ls340_1]
|
||||
desc = "tc13: Lakeshore 340 temperature controller"
|
||||
[12tmagnet_sample_insert]
|
||||
desc = "s1 will be redefined as the magnet sample insert rotation."
|
||||
imptype = motion_axis
|
||||
|
||||
[CF1_ls340]
|
||||
desc = "cf1: Bottom loading cryofurnace"
|
||||
driver = "ls340"
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 13
|
||||
ip = 137.157.203.137
|
||||
name = tc13
|
||||
imptype = temperature
|
||||
ip = 10.157.205.43
|
||||
port = 4001
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
type = T
|
||||
|
||||
[ls370]
|
||||
desc = "tc8: Lakeshore 370 temperature controller"
|
||||
driver = "ls370"
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 8
|
||||
ip = 137.157.203.137
|
||||
name = tc8
|
||||
port = 4003
|
||||
[agilent_33220A]
|
||||
asyncqueue = sct
|
||||
desc = "Function Generator"
|
||||
driver = agilent_33220A
|
||||
imptype = function_generator
|
||||
ip = 10.157.205.16
|
||||
name = pulser
|
||||
port = 5025
|
||||
|
||||
[ls336_01]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.28
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol = 2.0
|
||||
type = T
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[mercury_scpi]
|
||||
desc = "tc9: Oxford Mercury temperature controller in Mercury mode"
|
||||
driver = "mercury_scpi"
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 9
|
||||
[ls336_02]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.29
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls336_04]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.30
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls336_05]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 137.157.201.21
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls336_06]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.30
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls336_11]
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.27
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls336_12]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 336 temperature controller"
|
||||
driver = "ls336"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.31
|
||||
port = 7777
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls340_01]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 340 temperature controller"
|
||||
driver = "ls340"
|
||||
imptype = temperature
|
||||
ip = 137.157.201.86
|
||||
port = 4001
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls340_02]
|
||||
asyncqueue = sct
|
||||
desc = "Lakeshore 340 temperature controller"
|
||||
driver = "ls340"
|
||||
imptype = temperature
|
||||
ip = 137.157.201.86
|
||||
port = 4002
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[ls340_11]
|
||||
desc = "Lakeshore 340 temperature controller"
|
||||
driver = "ls340"
|
||||
imptype = temperature
|
||||
ip = 137.157.201.86
|
||||
port = 4001
|
||||
terminator = \r\n
|
||||
tol1 = 1.0
|
||||
tol2 = 1.0
|
||||
|
||||
[mercury_scpi_01]
|
||||
desc = "Oxford Mercury temperature controller with three temperature loops."
|
||||
driver = "mercury_base"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.5
|
||||
name = tc9
|
||||
offifon = mercury_itc500
|
||||
permlink = LT
|
||||
port = 7020
|
||||
terminator = \r
|
||||
tol = 2.0
|
||||
type = T
|
||||
terminator = \r\n
|
||||
tol = 1.0
|
||||
valve_tol = 2
|
||||
|
||||
[s1_sample_insert]
|
||||
desc = "s1 will be defined as the sample insert rotation. Sample stage will be renamed to s1ss and sgu and sgl will be simulated"
|
||||
enabled = False
|
||||
group = motors
|
||||
[mercury_scpi_02]
|
||||
desc = "Oxford Mercury temperature controller with four temperature loops and needle valve control"
|
||||
driver = "mercury_scpi"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.47
|
||||
permlink = LT
|
||||
port = 7020
|
||||
terminator = \r\n
|
||||
tol = 1.0
|
||||
valve_tol = 2
|
||||
|
||||
[west4100]
|
||||
desc = "tc10: Blue furnace temperature controller"
|
||||
[normal_sample_stage]
|
||||
desc = "This is the default sample stage configuration"
|
||||
imptype = motion_axis
|
||||
|
||||
[protek_01]
|
||||
asyncqueue = sct
|
||||
desc = "Protek Multimeter"
|
||||
driver = "protekmm"
|
||||
imptype = multimeter
|
||||
ip = 10.157.205.36
|
||||
port = 4001
|
||||
|
||||
[protek_02]
|
||||
asyncqueue = sct
|
||||
desc = "Protek Multimeter"
|
||||
driver = "protekmm"
|
||||
imptype = multimeter
|
||||
ip = 10.157.205.37
|
||||
port = 4001
|
||||
|
||||
[vf1_west4100]
|
||||
asyncqueue = sct
|
||||
desc = "VF1 Blue furnace temperature controller"
|
||||
dev_id = 1
|
||||
driver = "west4100"
|
||||
enabled = False
|
||||
group = environment:temperature
|
||||
id = 10
|
||||
ip = 10.157.205.19
|
||||
name = tc10
|
||||
type = T
|
||||
imptype = temperature
|
||||
ip = 10.157.205.24
|
||||
port = 502
|
||||
|
||||
[vf1_west6100]
|
||||
asyncprotocol = modbus_ap
|
||||
desc = "VF1 Blue furnace 6100 temperature controller"
|
||||
dev_id = 1
|
||||
driver = "west_6100"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.24
|
||||
port = 502
|
||||
timeout = 2000
|
||||
|
||||
[vf2_west4100]
|
||||
asyncqueue = sct
|
||||
desc = "VF2 Blue furnace temperature controller"
|
||||
dev_id = 1
|
||||
driver = "west4100"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.25
|
||||
port = 502
|
||||
|
||||
[vf2_west6100]
|
||||
asyncprotocol = modbus_ap
|
||||
desc = "VF2 Blue furnace 6100 temperature controller"
|
||||
dev_id = 1
|
||||
driver = "west_6100"
|
||||
imptype = temperature
|
||||
ip = 10.157.205.25
|
||||
port = 502
|
||||
timeout = 2000
|
||||
|
||||
|
Reference in New Issue
Block a user