Added west400.tcl config to wombat config/environment/temperature

util/utility.tcl
The 'setpoint_script' for temperature controllers is now generated by '::utility::macro::getset'

r2706 | ffr | 2008-09-25 08:47:12 +1000 (Thu, 25 Sep 2008) | 5 lines
This commit is contained in:
Ferdi Franceschini
2008-09-25 08:47:12 +10:00
committed by Douglas Clowes
parent 1f755ccb0d
commit c30ce9c5a0
4 changed files with 74 additions and 40 deletions

View File

@@ -0,0 +1,53 @@
# $Revision: 1.1 $
# $Date: 2008-09-24 22:47:11 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
namespace eval ::environment::temperature { }
# @brief Make a simulated temperature controller object.
#
# @param temp_sobj, name for temperature controller object.
proc ::environment::temperature::mkwest400sim {temp_sobj} {
EvFactory new $temp_sobj sim
sicslist setatt $temp_sobj numsensors 1
sicslist setatt $temp_sobj controlsensor sensora
sicslist setatt $temp_sobj sensorlist sensora
sicslist setatt $temp_sobj units kelvin
sicslist setatt $temp_sobj klass @none
}
#WEST4100 tempcontroller creation
proc ::environment::temperature::mkwest400 {temp_sobj} {
MakeRS232Controller sertemp 137.157.201.88 502
sertemp timeout 300
sertemp sendterminator 0x0
sertemp replyterminator 0x0
EvFactory new tc1 west4100 sertemp 1 2
sicslist setatt tc1 units kelvin
sicslist setatt tc1 klass @none
}
# @brief Adds a west400 temperature controller object.
#
# This must be called when the instrument configuration is loaded and before\n
# the buildHDB function is called. Currently there is no way to add and remove\n
# environment controllers and their hdb paths at runtime.
proc ::environment::temperature::add_west400 {} {
set sim_mode [SplitReply [environment_simulation]]
if {$sim_mode == "true"} {
::environment::temperature::mkwest400sim tc1
} else {
::environment::temperature::mkwest400 tc1
tc1 Upperlimit 1500
tc1 Lowerlimit 0
tc1 tolerance 10
}
sicslist setatt tc1 environment_name tempone
sicslist setatt tc1 long_name control_sensor_reading
::environment::mkenvinfo tc1 {ramprate {priv user} powerlimit {priv manager} }
#::environment::mkenvinfo tc1 {heateron {priv user} range {priv manager} }
}

View File

@@ -344,8 +344,8 @@ Motor som $motor_driver_type [params \
asyncqueue mc2\
axis E\
units degrees\
hardlowerlim -60\
hardupperlim 60\
hardlowerlim -110\
hardupperlim 110\
maxSpeed 1\
maxAccel 1\
maxDecel 1\
@@ -353,7 +353,7 @@ Motor som $motor_driver_type [params \
absEnc 1\
absEncHome $som_Home\
cntsPerX 4096]
setHomeandRange -motor som -home 0 -lowrange 60 -uprange 60
setHomeandRange -motor som -home 0 -lowrange 80 -uprange 60
som speed 1
som precision 0.01
som part sample

View File

@@ -1,5 +1,5 @@
# $Revision: 1.26 $
# $Date: 2008-09-18 02:20:09 $
# $Revision: 1.27 $
# $Date: 2008-09-24 22:47:11 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by: $Author: ffr $
@@ -45,6 +45,7 @@ catch {
::anticollider::init
# ::environment::temperature::add_ls340 tc1 1
# ::environment::temperature::add_ls340 tc2 2
# ::environment::temperature::add_west400
server_init
if [file exists ../extraconfig.tcl] {

View File

@@ -1,7 +1,7 @@
# Some useful functions for SICS configuration.
# $Revision: 1.16 $
# $Date: 2008-08-29 12:14:19 $
# $Revision: 1.17 $
# $Date: 2008-09-24 22:47:12 $
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
# Last revision by $Author: ffr $
@@ -117,39 +117,19 @@ proc ::environment::mkenvinfo {sobj paramlist} {
# }
set setpoint_script ::environment::${sobj}_setpoint
proc $setpoint_script [subst {{val "@none"} {_sobj $sobj}}] {
if [catch {
if {[SplitReply [environment_simulation]]=="true"} {
if {$val=="@none"} {
return [SplitReply [${_sobj}]]
::utility::macro::getset float $setpoint_script {args} {
if {$args == ""} {
return [tc1 setpoint]
} else {
${_sobj} $val
}
} else {
if {$val=="@none"} {
return [SplitReply [${_sobj} setpoint]]
} else {
${_sobj} $val
tc1 setpoint $args
}
}
} message ] {
if {$::errorCode == "NONE"} {return $message}
return -code error $message
}
}
publish $setpoint_script user
sicslist setatt $setpoint_script privilege internal
sicslist setatt $setpoint_script access rw
sicslist setatt $setpoint_script klass @none
sicslist setatt $setpoint_script long_name setpoint
sicslist setatt $setpoint_script dtype float
sicslist setatt $setpoint_script dlen 1
sicslist setatt $setpoint_script data false
sicslist setatt $setpoint_script nxsave false
sicslist setatt $setpoint_script mutable false
sicslist setatt $setpoint_script control true
sicslist setatt $setpoint_script units K
sicslist setatt $setpoint_script klass sensor
sicslist setatt $setpoint_script kind script
sicslist setatt $setpoint_script mutable true
lappend env_macrolist $setpoint_script
foreach {param attlist} $paramlist {