Files
sics/site_ansto/instrument/config/source/source_common.tcl
Ferdi Franceschini 8b1e84eac6 Report zero for reactor power and temperatures when using dummy reactor info.
r2924 | ffr | 2010-05-18 15:10:20 +1000 (Tue, 18 May 2010) | 2 lines
2012-11-15 17:02:39 +11:00

116 lines
3.7 KiB
Tcl

# Make the opal status info object
set sim_mode [SplitReply [opal_simulation]]
if {$sim_mode == "true"} {
proc opal {status} {
set opal_status {
"CALIBRATED.CALIBRATED REACTOR POWER 0290_04:ARPCS_CNTRL.RO0005 = 0 (08-06-04 11:42:39)"
"CNS HELIUM INLET TEMPERATURE 6290_09:TI_100.PNT = 0 (08-06-20 12:17:36)"
"CNS H/E HELIUM OUTLET TEMPERATUR 6290_MB08:TI_712DCI.MEAS = 0 (08-06-20 12:17:36)"
"CNS HELIUM FLOW 6290_09:FI1_106.PNT = 0 (08-06-20 12:17:36)"
"CG 1,2,3 HELIUM TEMPERATURE.CG 1,2,3 HELIUM TEMPERATURE 6090_08:TI_117.PNT = 0 (08-09-26 14:42:38)"
}
switch $status {
"CALIBRATED REACTOR POWER" {
return [lindex $opal_status 0]
}
"CNS HELIUM INLET TEMPERATURE" {
return [lindex $opal_status 1]
}
"HELIUM OUTLET TEMPERATUR" {
return [lindex $opal_status 2]
}
"CNS HELIUM FLOW" {
return [lindex $opal_status 3]
}
"CG 1,2,3 HELIUM TEMPERATURE" {
return [lindex $opal_status 4]
}
"list" {
return $opal_status
}
}
}
publish opal user
} else {
MakeAsyncQueue lss_chan LSS 137.157.204.67 31250
MakeLSSMonitor opal lss_chan 0
}
::utility::macro::getset float reactor_power {} {
set str [opal "CALIBRATED REACTOR POWER"]
set value [lindex [lindex [split $str =] 1] 0]
if [string is double $value] {
return "reactor_power = $value"
} else {
return "reactor_power = -1"
}
}
sicslist setatt reactor_power klass source
sicslist setatt reactor_power long_name power
sicslist setatt reactor_power mutable true
sicslist setatt reactor_power units "MW"
namespace eval source { }
proc ::source::ic_initialize {guide} {
switch $guide {
"cold" {
::utility::macro::getset float cns_inlet_temp {} {
set str [opal "CNS HELIUM INLET TEMPERATURE"]
set value [lindex [lindex [split $str =] 1] 0]
if [string is double $value] {
return "cns_inlet_temp = $value"
} else {
return "cns_inlet_temp = -1"
}
}
sicslist setatt cns_inlet_temp klass source
sicslist setatt cns_inlet_temp long_name cns_inlet_temp
sicslist setatt cns_inlet_temp mutable true
sicslist setatt cns_inlet_temp units "K"
::utility::macro::getset float cns_outlet_temp {} {
set str [opal "HELIUM OUTLET TEMPERATUR"]
set value [lindex [lindex [split $str =] 1] 0]
if [string is double $value] {
return "cns_outlet_temp = $value"
} else {
return "cns_outlet_temp = -1"
}
}
sicslist setatt cns_outlet_temp klass source
sicslist setatt cns_outlet_temp long_name cns_outlet_temp
sicslist setatt cns_outlet_temp mutable true
sicslist setatt cns_outlet_temp units "K"
::utility::macro::getset float cns_flow {} {
set str [opal "CNS HELIUM FLOW"]
set value [lindex [lindex [split $str =] 1] 0]
if [string is double $value] {
return "cns_flow = $value"
} else {
return "cns_flow = -1"
}
}
sicslist setatt cns_flow klass source
sicslist setatt cns_flow long_name cns_flow_temp
sicslist setatt cns_flow mutable true
sicslist setatt cns_flow units "ls-1"
::utility::macro::getset float cg123He_temp {} {
set str [opal "CG 1,2,3 HELIUM TEMPERATURE"]
set value [lindex [lindex [split $str =] 1] 0]
if [string is double $value] {
return "cg123He_temp = $value"
} else {
return "cg123He_temp = -1"
}
}
sicslist setatt cg123He_temp klass source
sicslist setatt cg123He_temp long_name cg123He_temp
sicslist setatt cg123He_temp mutable true
sicslist setatt cg123He_temp units "K"
}
"thermal" {
}
}
}