# 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 = 20 (08-06-04 11:42:39)" "CNS HELIUM INLET TEMPERATURE 6290_09:TI_100.PNT = 19.6426 (08-06-20 12:17:36)" "CNS H/E HELIUM OUTLET TEMPERATUR 6290_MB08:TI_712DCI.MEAS = 25.68 (08-06-20 12:17:36)" "CNS HELIUM FLOW 6290_09:FI1_106.PNT = 64.2064 (08-06-20 12:17:36)" } 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] } "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" } "thermal" { } } }