Merged Release 1.2
r1897 | ffr | 2007-04-20 11:53:31 +1000 (Fri, 20 Apr 2007) | 2 lines
This commit is contained in:
committed by
Douglas Clowes
parent
d0957b18d5
commit
ade5216ea9
@@ -377,6 +377,7 @@ static pHdb MakeSicsVarNode(pSicsVariable pVar, char *name){
|
|||||||
pHdbCallback pCall = NULL;
|
pHdbCallback pCall = NULL;
|
||||||
commandContext comCom;
|
commandContext comCom;
|
||||||
int type;
|
int type;
|
||||||
|
hdbValue v;
|
||||||
|
|
||||||
switch(pVar->eType){
|
switch(pVar->eType){
|
||||||
case veInt:
|
case veInt:
|
||||||
@@ -407,6 +408,18 @@ static pHdb MakeSicsVarNode(pSicsVariable pVar, char *name){
|
|||||||
AppendHipadabaCallback(node,HCBSET,pCall);
|
AppendHipadabaCallback(node,HCBSET,pCall);
|
||||||
RegisterCallback(pVar->pCall,comCom, VALUECHANGE, ValueCallback,
|
RegisterCallback(pVar->pCall,comCom, VALUECHANGE, ValueCallback,
|
||||||
node,NULL);
|
node,NULL);
|
||||||
|
switch(pVar->eType){
|
||||||
|
case veInt:
|
||||||
|
v = MakeHdbInt(pVar->iVal);
|
||||||
|
break;
|
||||||
|
case veFloat:
|
||||||
|
v = MakeHdbFloat((double)pVar->fVal);
|
||||||
|
break;
|
||||||
|
case veText:
|
||||||
|
v = MakeHdbText(pVar->text);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
UpdateHipadabaPar(node,v,NULL);
|
||||||
|
|
||||||
node->protected = 1;
|
node->protected = 1;
|
||||||
return node;
|
return node;
|
||||||
|
|||||||
@@ -19,8 +19,13 @@ proc xhmake {path priv dtype pKey pVal} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hmake /commands spy none
|
hmake /commands spy none
|
||||||
hsetprop /commands type commandset
|
|
||||||
set pathlist(/commands) 1
|
set pathlist(/commands) 1
|
||||||
|
hsetprop /commands type commandset
|
||||||
|
hmake /graphics spy none
|
||||||
|
set pathlist(/graphics) 1
|
||||||
|
hsetprop /graphics type graphset
|
||||||
|
hsetprop /commands type commandset
|
||||||
|
|
||||||
|
|
||||||
#TODO change this to hparts.tcl
|
#TODO change this to hparts.tcl
|
||||||
source $cfPath(hipadaba)/hpaths.tcl
|
source $cfPath(hipadaba)/hpaths.tcl
|
||||||
@@ -28,6 +33,9 @@ set instrument [string tolower [SplitReply [Instrument]] ]
|
|||||||
hmake /$instrument spy none
|
hmake /$instrument spy none
|
||||||
hsetprop /$instrument type instrument
|
hsetprop /$instrument type instrument
|
||||||
set pathlist(/$instrument) 1
|
set pathlist(/$instrument) 1
|
||||||
|
hmake /$instrument/status spy none
|
||||||
|
set pathlist(/$instrument/status) 1
|
||||||
|
hsetprop /$instrument/status type part
|
||||||
|
|
||||||
# Generate hipadaba nodes for the paths in the hpaths file
|
# Generate hipadaba nodes for the paths in the hpaths file
|
||||||
foreach hp $hpaths {
|
foreach hp $hpaths {
|
||||||
@@ -75,17 +83,20 @@ foreach motor [sicslist type motor] {
|
|||||||
foreach {obj name part master_obj} $cvirtmotor_hpath {
|
foreach {obj name part master_obj} $cvirtmotor_hpath {
|
||||||
set path /$instrument/$part
|
set path /$instrument/$part
|
||||||
hattach $path $obj $name
|
hattach $path $obj $name
|
||||||
sicspoll add $path/$name hdb 2
|
foreach m $master_obj {
|
||||||
|
hchain $path/$name $path/$m
|
||||||
|
}
|
||||||
|
#FIXME polling causes scans to abort
|
||||||
|
#sicspoll add $path/$name hdb 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#------------- scan command
|
#------------- scan command
|
||||||
hsetprop /commands type part
|
|
||||||
|
|
||||||
#--- Graphics
|
|
||||||
hmake /graphics spy none
|
|
||||||
hsetprop /graphics type graphset
|
|
||||||
::scancommand::commands_hpath_setup /commands
|
::scancommand::commands_hpath_setup /commands
|
||||||
::scancommand::graphics_hpath_setup /graphics
|
::scancommand::graphics_hpath_setup /graphics
|
||||||
::scancommand::init
|
::scancommand::init
|
||||||
|
|
||||||
|
#------------- plc controller
|
||||||
|
::plc::status_hpath_setup /$instrument/status
|
||||||
|
|
||||||
unset pathlist;
|
unset pathlist;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
set tmpstr [string map {"$" ""} {$Name: not supported by cvs2svn $}]
|
set tmpstr [string map {"$" ""} {$Name: not supported by cvs2svn $}]
|
||||||
set nx_content_release_tag [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
set nx_content_release_tag [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
||||||
set tmpstr [string map {"$" ""} {$Revision: 1.22 $}]
|
set tmpstr [string map {"$" ""} {$Revision: 1.23 $}]
|
||||||
set nx_content_revision_num [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
set nx_content_revision_num [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
||||||
|
|
||||||
MakeNXScript
|
MakeNXScript
|
||||||
@@ -101,7 +101,7 @@ proc hmm_save {nxobj entryname point} {
|
|||||||
$nxobj updatedictvar padim0 $dim0
|
$nxobj updatedictvar padim0 $dim0
|
||||||
$nxobj updatedictvar padim1 $dim1
|
$nxobj updatedictvar padim1 $dim1
|
||||||
$nxobj putslab $dictalias(hmm) [list $point 0 0] [list 1 $dim0 $dim1 ] hmm [SplitReply [hmm_start]] $histo_length [SplitReply [hmm_bank]]
|
$nxobj putslab $dictalias(hmm) [list $point 0 0] [list 1 $dim0 $dim1 ] hmm [SplitReply [hmm_start]] $histo_length [SplitReply [hmm_bank]]
|
||||||
put2Dpolar_angle $nxobj $point $dim0 $dim1;
|
# put2Dpolar_angle $nxobj $point $dim0 $dim1;
|
||||||
#TODO replace scandata with generic name
|
#TODO replace scandata with generic name
|
||||||
$nxobj makelink scandata hmcounts
|
$nxobj makelink scandata hmcounts
|
||||||
$nxobj makelink scanhoraxis dhaxis
|
$nxobj makelink scanhoraxis dhaxis
|
||||||
|
|||||||
13
site_ansto/instrument/config/plc/plc_common_1.tcl
Normal file
13
site_ansto/instrument/config/plc/plc_common_1.tcl
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
namespace eval plc {
|
||||||
|
proc status_hpath_setup {parent} {
|
||||||
|
set plcPath $parent/plc
|
||||||
|
hmake $plcPath spy none;
|
||||||
|
hsetprop $plcPath type part;
|
||||||
|
set objlist [sicslist match plc_*];
|
||||||
|
foreach v $objlist {
|
||||||
|
if { [SplitReply [sicslist $v type]]== "SicsVariable"} {
|
||||||
|
hattach $plcPath $v [string replace $v 0 3];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -243,7 +243,7 @@ variable scanVariable scan_var scanVarStart 0 scanVarStep 1
|
|||||||
hsetprop $parent/beam_monitor_scan type graphdata;
|
hsetprop $parent/beam_monitor_scan type graphdata;
|
||||||
hsetprop $parent/beam_monitor_scan viewer default;
|
hsetprop $parent/beam_monitor_scan viewer default;
|
||||||
hsetprop $parent/beam_monitor_scan rank 1;
|
hsetprop $parent/beam_monitor_scan rank 1;
|
||||||
hattach $parent/beam_monitor_scan bmonscan_np_graphics_target dim;
|
hattach $parent/beam_monitor_scan bmonscan_np_target dim;
|
||||||
hattach $parent/beam_monitor_scan bmonscan_point_graphics_current point;
|
hattach $parent/beam_monitor_scan bmonscan_point_graphics_current point;
|
||||||
hattach $parent/beam_monitor_scan bmonscan_var_graphics_value lastaxis
|
hattach $parent/beam_monitor_scan bmonscan_var_graphics_value lastaxis
|
||||||
hattach $parent/beam_monitor_scan bmonscan_counts lastdata
|
hattach $parent/beam_monitor_scan bmonscan_counts lastdata
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
config/plc/plc_common_1.tcl
|
||||||
config/counter/counter_common_1.tcl
|
config/counter/counter_common_1.tcl
|
||||||
config/hipadaba/common_hipadaba_configuration.tcl
|
config/hipadaba/common_hipadaba_configuration.tcl
|
||||||
config/hmm/hmm_configuration_common_1.tcl
|
config/hmm/hmm_configuration_common_1.tcl
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ aperture slits ]
|
|||||||
# Configurable virtual motors
|
# Configurable virtual motors
|
||||||
# obj name path master_obj
|
# obj name path master_obj
|
||||||
set cvirtmotor_hpath [list \
|
set cvirtmotor_hpath [list \
|
||||||
ss1vg ss1vg slits/first top\
|
ss1vg ss1vg slits/first [list top bottom left right]\
|
||||||
ss1vo ss1vo slits/first top\
|
ss1vo ss1vo slits/first [list top bottom left right]\
|
||||||
ss1hg ss1hg slits/first right\
|
ss1hg ss1hg slits/first [list top bottom left right]\
|
||||||
ss1ho ss1ho slits/first right\
|
ss1ho ss1ho slits/first [list top bottom left right]\
|
||||||
ss2vg ss2vg slits/second top\
|
ss2vg ss2vg slits/second [list top bottom left right]\
|
||||||
ss2vo ss2vo slits/second top\
|
ss2vo ss2vo slits/second [list top bottom left right]\
|
||||||
ss2hg ss2hg slits/second right\
|
ss2hg ss2hg slits/second [list top bottom left right]\
|
||||||
ss2ho ss2ho slits/second right\
|
ss2ho ss2ho slits/second [list top bottom left right]\
|
||||||
sth sth sample [SplitReply [stth long_name]]\
|
sth sth sample [SplitReply [stth long_name]]\
|
||||||
mth mth monochromator [SplitReply [mtth long_name]]]
|
mth mth monochromator [SplitReply [mtth long_name]]]
|
||||||
|
|
||||||
|
|||||||
353
site_ansto/instrument/hipd/config/hmm/anstohm_full_small.xml
Normal file
353
site_ansto/instrument/hipd/config/hmm/anstohm_full_small.xml
Normal file
@@ -0,0 +1,353 @@
|
|||||||
|
<?xml version = '1.0' encoding = 'UTF-8'?>
|
||||||
|
<!-- Revised version MJL 2/07 -->
|
||||||
|
<anstohm:anstohm filler="ansto1" >
|
||||||
|
<config_server>
|
||||||
|
<DIR defaultpath="/srv/www/htdocs" />
|
||||||
|
<DAT filenamepre="DAT" filenameext_BIN="bin" filenameext_CSV="csv" filenameext_XML="xml" filenameext_ZIP="zip" />
|
||||||
|
</config_server>
|
||||||
|
<config_fillers>
|
||||||
|
<config_filler host="ALL" dae_type="ALL" >
|
||||||
|
<DIR defaultpath="/srv/www/htdocs" />
|
||||||
|
<EIS filename="EIS.bin" />
|
||||||
|
<CFG_ECHO filenamepre="CFG" filenameext="xml" />
|
||||||
|
<RAW filenamepre="RAW" filenameext="txt" />
|
||||||
|
<EVT filenamepre="EVT" filenameext="txt" />
|
||||||
|
<HDS filenamepre="HDS" filenameext="bin.zip" />
|
||||||
|
<HDD filenamepre="HDD" filenameext="bin.zip" />
|
||||||
|
<EOS filename="EOS.bin" />
|
||||||
|
<FAT
|
||||||
|
DATASET_SOURCE="INTERNAL"
|
||||||
|
FRAME_SOURCE="INTERNAL"
|
||||||
|
HARD_VETO_1="ENABLE" HARD_VETO_2="DISABLE" HARD_VETO_3="DISABLE" HARD_VETO_4="DISABLE"
|
||||||
|
SOFT_VETO_1="DISABLE" SOFT_VETO_2="DISABLE" SOFT_VETO_3="DISABLE" SOFT_VETO_4="DISABLE"
|
||||||
|
MONITOR_1="ENABLE" MONITOR_2="DISABLE" MONITOR_3="DISABLE"
|
||||||
|
FRAME_FREQUENCY="50.00"
|
||||||
|
FRAME_DUTYCYCLE="99"
|
||||||
|
CLOCK_SCALE="1000"
|
||||||
|
NOS_PERIODS="1"
|
||||||
|
COUNT_METHOD="UNLIMITED"
|
||||||
|
COUNT_SIZE="0"
|
||||||
|
COUNT_STOP="IMMEDIATE"
|
||||||
|
EXPAND_OAT_X="0"
|
||||||
|
EXPAND_OAT_Y="0"
|
||||||
|
EXPAND_OAT_T="0"
|
||||||
|
OFFSET_OAT_X="0"
|
||||||
|
OFFSET_OAT_Y="0"
|
||||||
|
OFFSET_OAT_T="0"
|
||||||
|
HISTOGRAM_WEIGHT="1"
|
||||||
|
HISTOGRAM_MODE="XYTP"
|
||||||
|
RATE_MAPPING="ENABLE"
|
||||||
|
TOTAL_HISTOGRAMS="ENABLE"
|
||||||
|
TEST_HISTOGRAMS="ENABLE"
|
||||||
|
TEST_HISTO_1D_SIZES="1024"
|
||||||
|
TEST_HISTO_2D_SIZES="1024"
|
||||||
|
FIND_EVENT_MINMAX="ENABLE"
|
||||||
|
EVENT_STORAGE="ENABLE"
|
||||||
|
EVENT_STORAGE_SIZE="1000000"
|
||||||
|
EVENT_INPUT_STREAMING="DISABLE"
|
||||||
|
EVENT_INPUT_STREAMING_FORMAT="PACKEDBIN"
|
||||||
|
EVENT_INPUT_STREAMING_RATE="REALTIME"
|
||||||
|
EVENT_OUTPUT_STREAMING="DISABLE"
|
||||||
|
EVENT_OUTPUT_STREAMING_FORMAT="PACKEDBIN"
|
||||||
|
EVENT_OUTPUT_STREAMING_UNPACKED_BITFIELDSIZE_X="16"
|
||||||
|
EVENT_OUTPUT_STREAMING_UNPACKED_BITFIELDSIZE_Y="16"
|
||||||
|
EVENT_OUTPUT_STREAMING_UNPACKED_BITFIELDSIZE_T="32"
|
||||||
|
EVENT_OUTPUT_STREAMING_UNPACKED_BITFIELDSIZE_F="32"
|
||||||
|
EVENT_OUTPUT_STREAMING_UNPACKED_BITFIELDSIZE_V="8"
|
||||||
|
EVENT_OUTPUT_STREAMING_UNPACKED_BITFIELDSIZE_SPARE="24"
|
||||||
|
HISTO_STREAMING="ZIPBIN"
|
||||||
|
LOG_RAW="DISABLE"
|
||||||
|
LOG_EVT="DISABLE"
|
||||||
|
MULTIPLE_DATASETS="ENABLE"
|
||||||
|
MULTI_HOST_HISTO_STITCH_TYPE="X_DIRECTION"
|
||||||
|
MULTI_HOST_HISTO_STITCH_OVERLAP="32"
|
||||||
|
MULTI_HOST_HISTO_STITCH_ORDER="NORMAL"
|
||||||
|
READ_DATA_TYPE="HISTOPERIOD_XYT"
|
||||||
|
READ_DATA_MULTIHOST_JOIN_OR_STITCH="STITCH"
|
||||||
|
READ_DATA_PERIOD_NUMBER="0"
|
||||||
|
READ_DATA_START="-1"
|
||||||
|
READ_DATA_END="-1"
|
||||||
|
READ_DATA_ORDER_TRANSPOSE_XY="DISABLE"
|
||||||
|
READ_DATA_ORDER_FLIP_X="DISABLE"
|
||||||
|
READ_DATA_ORDER_FLIP_Y="DISABLE"
|
||||||
|
VIEW_TYPE="HISTOPERIOD_XYT"
|
||||||
|
VIEW_COLOUR_TABLE="RAIN"
|
||||||
|
VIEW_SCALING_TYPE="LOG"
|
||||||
|
VIEW_RATE_MAP_TIME_CONST="1."
|
||||||
|
VIEW_LOG_SCALING_RANGE="2"
|
||||||
|
VIEW_ROOT_SCALING_RANGE="2"
|
||||||
|
VIEW_ROI_XMIN="-1"
|
||||||
|
VIEW_ROI_XMAX="-1"
|
||||||
|
VIEW_ROI_YMIN="-1"
|
||||||
|
VIEW_ROI_YMAX="-1"
|
||||||
|
VIEW_ROI_1DMIN="-1"
|
||||||
|
VIEW_ROI_1DMAX="-1"
|
||||||
|
VIEW_MAG_X="1"
|
||||||
|
VIEW_MAG_Y="1"
|
||||||
|
VIEW_MAG_1D="1"
|
||||||
|
VIEW_INTERP_X="1"
|
||||||
|
VIEW_INTERP_Y="1"
|
||||||
|
VIEW_FLIP_X="DISABLE"
|
||||||
|
VIEW_FLIP_Y="DISABLE"
|
||||||
|
VIEW_MAJOR_TICK_MARKS_X="5"
|
||||||
|
VIEW_MAJOR_TICK_MARKS_Y="5"
|
||||||
|
VIEW_MINOR_TICK_MARKS_X="32"
|
||||||
|
VIEW_MINOR_TICK_MARKS_Y="16"
|
||||||
|
VIEW_HISTO_PERIOD="-1"
|
||||||
|
VIEW_HISTO_OAT_T_BIN="-1"
|
||||||
|
VIEW_AUTO_REFRESH="1"
|
||||||
|
VIEW_DISPLAY_FORMAT="DISLIN_PNG"
|
||||||
|
VIEW_MULTIHOST_JOIN_OR_STITCH="STITCH"
|
||||||
|
>
|
||||||
|
</FAT>
|
||||||
|
<BAT NO_BAT_ENTRIES="1" NO_BAT_PERIODS="1" NO_REPEAT_ENTRY="0" NO_REPEAT_TABLE="0" NO_EXECUTE_TABLE="0" >
|
||||||
|
<PERIOD_INDICES>
|
||||||
|
0
|
||||||
|
</PERIOD_INDICES>
|
||||||
|
</BAT>
|
||||||
|
<CAT>
|
||||||
|
</CAT>
|
||||||
|
</config_filler>
|
||||||
|
<config_filler host="ALL" dae_type="SIMULATED" >
|
||||||
|
<FAT
|
||||||
|
FRAME_FREQUENCY="50.00"
|
||||||
|
SIZE_PERIOD="262144"
|
||||||
|
MULTI_HOST_HISTO_STITCH_TYPE="X_DIRECTION"
|
||||||
|
MULTI_HOST_HISTO_STITCH_OVERLAP="32"
|
||||||
|
MULTI_HOST_HISTO_STITCH_ORDER="NORMAL"
|
||||||
|
VIEW_TYPE="HISTOPERIOD_XYT"
|
||||||
|
VIEW_RATE_MAP_TIME_CONST="10"
|
||||||
|
VIEW_MAG_X="1"
|
||||||
|
VIEW_MAG_Y="1"
|
||||||
|
SIMULATED_EVENT_PATTERN="RADIAL_LINES"
|
||||||
|
SIMULATED_EVENT_X0="0"
|
||||||
|
SIMULATED_EVENT_X1="511"
|
||||||
|
SIMULATED_EVENT_Y0="0"
|
||||||
|
SIMULATED_EVENT_Y1="511"
|
||||||
|
SIMULATED_EVENT_T0="0"
|
||||||
|
SIMULATED_EVENT_T1="19999999"
|
||||||
|
SIMULATED_EVENTS_PER_FRAME="10000"
|
||||||
|
SIMULATED_FRAMES_PER_CYCLE="5000"
|
||||||
|
SIMULATED_PARAM_K1="0.9"
|
||||||
|
>
|
||||||
|
</FAT>
|
||||||
|
<OAT NO_OAT_X_CHANNELS="512" NO_OAT_Y_CHANNELS="512" NO_OAT_T_CHANNELS="1">
|
||||||
|
<X>
|
||||||
|
-0.5 0.5
|
||||||
|
</X>
|
||||||
|
<Y>
|
||||||
|
-0.5 0.5
|
||||||
|
</Y>
|
||||||
|
<T>
|
||||||
|
0 200000
|
||||||
|
</T>
|
||||||
|
</OAT>
|
||||||
|
</config_filler>
|
||||||
|
<config_filler host="ALL" dae_type="FASTCOMTEC" >
|
||||||
|
<FAT
|
||||||
|
FRAME_FREQUENCY="50.00"
|
||||||
|
SIZE_PERIOD="150000"
|
||||||
|
VIEW_TYPE="HISTOPERIOD_XYT"
|
||||||
|
VIEW_RATE_MAP_TIME_CONST="3"
|
||||||
|
VIEW_MAG_X="2"
|
||||||
|
VIEW_MAG_Y="1"
|
||||||
|
P7888_PLL_SYNC_METHOD="USING_DUPLICATED_ANODE_PULSE_INPUT"
|
||||||
|
>
|
||||||
|
</FAT>
|
||||||
|
<OAT NO_OAT_X_CHANNELS="500" NO_OAT_Y_CHANNELS="300" NO_OAT_T_CHANNELS="1">
|
||||||
|
<X>
|
||||||
|
-0.5 0.5
|
||||||
|
</X>
|
||||||
|
<Y>
|
||||||
|
-0.5 0.5
|
||||||
|
</Y>
|
||||||
|
<T>
|
||||||
|
0 200000
|
||||||
|
</T>
|
||||||
|
</OAT>
|
||||||
|
</config_filler>
|
||||||
|
<config_filler host="ALL" dae_type="MESYTEC" >
|
||||||
|
<FAT
|
||||||
|
FRAME_FREQUENCY="50.00"
|
||||||
|
SIZE_PERIOD="65536"
|
||||||
|
VIEW_TYPE="HISTOPERIOD_XYT"
|
||||||
|
VIEW_RATE_MAP_TIME_CONST="10"
|
||||||
|
VIEW_MAG_X="8"
|
||||||
|
VIEW_MAG_Y="1"
|
||||||
|
MESYTEC_MCPD2_IP="192.168.168.121"
|
||||||
|
MESYTEC_MCPD2_LAST_IP="192.168.168.122"
|
||||||
|
MESYTEC_USING_PAIRED_TUBES="YES"
|
||||||
|
MESYTEC_TUBE_PAIR_LEN="960"
|
||||||
|
MESYTEC_PULSER="DISABLE"
|
||||||
|
> <!-- MESYTEC_TUBE_PAIR_LEN = 960 spans full range of observed position data -->
|
||||||
|
</FAT>
|
||||||
|
<OAT NO_OAT_X_CHANNELS="128" NO_OAT_Y_CHANNELS="512" NO_OAT_T_CHANNELS="1">
|
||||||
|
<X>
|
||||||
|
127.5 126.5
|
||||||
|
</X>
|
||||||
|
<Y>
|
||||||
|
-0.5 0.5
|
||||||
|
</Y>
|
||||||
|
<T>
|
||||||
|
0 200000
|
||||||
|
</T>
|
||||||
|
</OAT>
|
||||||
|
<CAT>
|
||||||
|
<MESYTEC_MPSD8_CHANNEL_GAINS>
|
||||||
|
<!-- MPSD8 gain per channel, settable in range 0.50 - 1.88 -->
|
||||||
|
<!-- MPSD8 #0 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #1 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #2 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #3 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #4 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #5 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #6 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #7 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #8 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #9 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #A --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #B --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #C --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #D --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #E --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #F --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
</MESYTEC_MPSD8_CHANNEL_GAINS>
|
||||||
|
|
||||||
|
<MESYTEC_MPSD8_THRESHOLDS>
|
||||||
|
<!-- MPSD8 thresholds per unit, settable in range 5% - 50% -->
|
||||||
|
<!-- MPSD8 #0 --> 6
|
||||||
|
<!-- MPSD8 #1 --> 6
|
||||||
|
<!-- MPSD8 #2 --> 6
|
||||||
|
<!-- MPSD8 #3 --> 6
|
||||||
|
<!-- MPSD8 #4 --> 6
|
||||||
|
<!-- MPSD8 #5 --> 6
|
||||||
|
<!-- MPSD8 #6 --> 6
|
||||||
|
<!-- MPSD8 #7 --> 6
|
||||||
|
<!-- MPSD8 #8 --> 6
|
||||||
|
<!-- MPSD8 #9 --> 6
|
||||||
|
<!-- MPSD8 #A --> 6
|
||||||
|
<!-- MPSD8 #B --> 6
|
||||||
|
<!-- MPSD8 #C --> 6
|
||||||
|
<!-- MPSD8 #D --> 6
|
||||||
|
<!-- MPSD8 #E --> 6
|
||||||
|
<!-- MPSD8 #F --> 6
|
||||||
|
</MESYTEC_MPSD8_THRESHOLDS>
|
||||||
|
|
||||||
|
<MESYTEC_TUBE_PAIR_RESISTANCE_RATIOS>
|
||||||
|
<!-- Resistance ratio R1/R0 per Mesytec tube pair -->
|
||||||
|
<!-- Set entry to 0. where single tubes are used. -->
|
||||||
|
<!-- MPSD8 #0 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #1 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #2 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #3 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #4 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #5 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #6 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #7 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #8 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #9 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #A --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #B --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #C --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #D --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #E --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #F --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
</MESYTEC_TUBE_PAIR_RESISTANCE_RATIOS>
|
||||||
|
|
||||||
|
<MESYTEC_TUBE_MAGNIFICATIONS>
|
||||||
|
<!-- Magnification factors for Mesytec position readings, per tube. -->
|
||||||
|
<!-- Default value 1. -->
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
</MESYTEC_TUBE_MAGNIFICATIONS>
|
||||||
|
|
||||||
|
<MESYTEC_TUBE_OFFSETS>
|
||||||
|
<!-- Offset factors to be added to Mesytec position readings, per tube. -->
|
||||||
|
<!-- Default value 0. -->
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
</MESYTEC_TUBE_OFFSETS>
|
||||||
|
|
||||||
|
<MESYTEC_MPSD8_TUBE_HISTOGRAM_WEIGHTS>
|
||||||
|
<!-- MPSD8 histogram weights, per tube. -->
|
||||||
|
<!-- Use positive integer values in this table, default value 100 suggested. -->
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100
|
||||||
|
</MESYTEC_MPSD8_TUBE_HISTOGRAM_WEIGHTS>
|
||||||
|
</CAT>
|
||||||
|
</config_filler>
|
||||||
|
<config_filler host="ALL" dae_type="BNL" >
|
||||||
|
<FAT
|
||||||
|
FRAME_FREQUENCY="50.00"
|
||||||
|
SIZE_PERIOD="31744"
|
||||||
|
MULTI_HOST_HISTO_STITCH_TYPE="X_DIRECTION"
|
||||||
|
MULTI_HOST_HISTO_STITCH_OVERLAP="8"
|
||||||
|
MULTI_HOST_HISTO_JOIN_STITCH_ORDER="INVERTED"
|
||||||
|
VIEW_TYPE="HISTOPERIOD_XYT"
|
||||||
|
VIEW_RATE_MAP_TIME_CONST="1"
|
||||||
|
VIEW_MAG_X="0.25"
|
||||||
|
VIEW_MAG_Y="1"
|
||||||
|
BNL_SIMEVENTRATE="0"
|
||||||
|
BNL_FRAME_SCALER="0"
|
||||||
|
BNL_DATASET_SCALER="0"
|
||||||
|
BNL_DATASET_TIMER="ENABLE"
|
||||||
|
BNL_DATASET_FRAME="ENABLE"
|
||||||
|
BNL_PER_CARD_X_OFFSET="480"
|
||||||
|
>
|
||||||
|
</FAT>
|
||||||
|
<OAT NO_OAT_X_CHANNELS="248" NO_OAT_Y_CHANNELS="128" NO_OAT_T_CHANNELS="1">
|
||||||
|
<X>
|
||||||
|
991.5 987.5
|
||||||
|
</X>
|
||||||
|
<Y>
|
||||||
|
-0.5 3.5
|
||||||
|
</Y>
|
||||||
|
<T>
|
||||||
|
0 200000
|
||||||
|
</T>
|
||||||
|
</OAT>
|
||||||
|
</config_filler>
|
||||||
|
</config_fillers>
|
||||||
|
</anstohm:anstohm>
|
||||||
244
site_ansto/instrument/hipd/config/hmm/anstohm_full_standard.xml
Normal file
244
site_ansto/instrument/hipd/config/hmm/anstohm_full_standard.xml
Normal file
@@ -0,0 +1,244 @@
|
|||||||
|
<?xml version = '1.0' encoding = 'UTF-8'?>
|
||||||
|
<!-- Revised version MJL 2/07 -->
|
||||||
|
<anstohm:anstohm filler="ansto1" >
|
||||||
|
<config_server>
|
||||||
|
<DIR defaultpath="/srv/www/htdocs" />
|
||||||
|
<DAT filenamepre="DAT" filenameext_BIN="bin" filenameext_CSV="csv" filenameext_XML="xml" filenameext_ZIP="zip" />
|
||||||
|
</config_server>
|
||||||
|
<config_fillers>
|
||||||
|
<config_filler host="ALL">
|
||||||
|
<DIR defaultpath="/srv/www/htdocs" />
|
||||||
|
<CFG_ECHO filenamepre="CFG" filenameext="xml" />
|
||||||
|
<RAW filenamepre="RAW" filenameext="txt" />
|
||||||
|
<EVT filenamepre="EVT" filenameext="txt" />
|
||||||
|
<HDS filenamepre="HDS" filenameext="bin.zip" />
|
||||||
|
<HDD filenamepre="HDD" filenameext="bin.zip" />
|
||||||
|
<DAT filenamepre="DAT" filenameext_BIN="bin" filenameext_CSV="csv" filenameext_XML="xml" filenameext_ZIP="zip" />
|
||||||
|
<FAT
|
||||||
|
DATASET_SOURCE="INTERNAL"
|
||||||
|
FRAME_SOURCE="INTERNAL"
|
||||||
|
HARD_VETO_1="ENABLE" HARD_VETO_2="DISABLE" HARD_VETO_3="DISABLE" HARD_VETO_4="DISABLE"
|
||||||
|
SOFT_VETO_1="DISABLE" SOFT_VETO_2="DISABLE" SOFT_VETO_3="DISABLE" SOFT_VETO_4="DISABLE"
|
||||||
|
MONITOR_1="ENABLE" MONITOR_2="DISABLE" MONITOR_3="DISABLE"
|
||||||
|
FRAME_FREQUENCY="50.00"
|
||||||
|
FRAME_DUTYCYCLE="99"
|
||||||
|
CLOCK_SCALE="1000"
|
||||||
|
NOS_PERIODS="1"
|
||||||
|
SIZE_PERIOD="507904"
|
||||||
|
COUNT_METHOD="UNLIMITED"
|
||||||
|
COUNT_SIZE="0"
|
||||||
|
COUNT_STOP="IMMEDIATE"
|
||||||
|
EXPAND_OAT_X="0"
|
||||||
|
EXPAND_OAT_Y="0"
|
||||||
|
EXPAND_OAT_T="0"
|
||||||
|
OFFSET_OAT_X="0"
|
||||||
|
OFFSET_OAT_Y="0"
|
||||||
|
OFFSET_OAT_T="0"
|
||||||
|
HISTOGRAM_WEIGHT="1"
|
||||||
|
HISTOGRAM_MODE="XYTP"
|
||||||
|
RATE_MAPPING="ENABLE"
|
||||||
|
TOTAL_HISTOGRAMS="ENABLE"
|
||||||
|
TEST_HISTOGRAMS="ENABLE"
|
||||||
|
TEST_HISTO_1D_SIZES="1024"
|
||||||
|
TEST_HISTO_2D_SIZES="1024"
|
||||||
|
DATA_MINMAX="ENABLE"
|
||||||
|
DATA_STREAMING="ZIPBIN"
|
||||||
|
HISTO_STREAMING="ZIPBIN"
|
||||||
|
LOG_RAW="DISABLE"
|
||||||
|
LOG_EVT="DISABLE"
|
||||||
|
MULTIPLE_DATASETS="ENABLE"
|
||||||
|
MULTI_HOST_HISTO_STITCH_TYPE="X_DIRECTION"
|
||||||
|
MULTI_HOST_HISTO_STITCH_OVERLAP="32"
|
||||||
|
MULTI_HOST_HISTO_JOIN_STITCH_ORDER="INVERTED"
|
||||||
|
READ_DATA_ORDER_TRANSPOSE_XY="DISABLE"
|
||||||
|
READ_DATA_ORDER_FLIP_X="DISABLE"
|
||||||
|
READ_DATA_ORDER_FLIP_Y="ENABLE"
|
||||||
|
VIEW_TYPE="TOTAL_HISTOGRAM_XY"
|
||||||
|
VIEW_COLOUR_TABLE="RAIN"
|
||||||
|
VIEW_SCALING_TYPE="LOG"
|
||||||
|
VIEW_LOG_SCALING_RANGE="2"
|
||||||
|
VIEW_ROOT_SCALING_RANGE="2"
|
||||||
|
VIEW_ROI_XMIN="-1"
|
||||||
|
VIEW_ROI_XMAX="-1"
|
||||||
|
VIEW_ROI_YMIN="-1"
|
||||||
|
VIEW_ROI_YMAX="-1"
|
||||||
|
VIEW_ROI_1DMIN="-1"
|
||||||
|
VIEW_ROI_1DMAX="-1"
|
||||||
|
VIEW_MAG_X="0.25"
|
||||||
|
VIEW_MAG_Y="0.5"
|
||||||
|
VIEW_MAG_1D="1"
|
||||||
|
VIEW_INTERP_X="1"
|
||||||
|
VIEW_INTERP_Y="1"
|
||||||
|
VIEW_HISTO_PERIOD="-1"
|
||||||
|
VIEW_HISTO_OAT_T_BIN="-1"
|
||||||
|
VIEW_AUTO_REFRESH="1"
|
||||||
|
VIEW_DISPLAY_FORMAT="DISLIN_PNG"
|
||||||
|
VIEW_MULTIHOST_JOIN_OR_STITCH="STITCH"
|
||||||
|
SIMULATED_EVENT_PATTERN="RADIAL_LINES"
|
||||||
|
SIMULATED_EVENT_X0="0"
|
||||||
|
SIMULATED_EVENT_X1="991"
|
||||||
|
SIMULATED_EVENT_Y0="0"
|
||||||
|
SIMULATED_EVENT_Y1="511"
|
||||||
|
SIMULATED_EVENT_T0="0"
|
||||||
|
SIMULATED_EVENT_T1="19999999"
|
||||||
|
SIMULATED_EVENTS_PER_FRAME="10000"
|
||||||
|
SIMULATED_FRAMES_PER_CYCLE="1000"
|
||||||
|
SIMULATED_PARAM_K1="0.9"
|
||||||
|
P7888_PLL_SYNC_METHOD="USING_DUPLICATED_ANODE_PULSE_INPUT"
|
||||||
|
MESYTEC_MCPD2_IP="192.168.168.121"
|
||||||
|
MESYTEC_MCPD2_LAST_IP="192.168.168.122"
|
||||||
|
MESYTEC_USING_PAIRED_TUBES="YES"
|
||||||
|
MESYTEC_TUBE_PAIR_LEN="960"
|
||||||
|
MESYTEC_PULSER="DISABLE"
|
||||||
|
BNL_SIMEVENTRATE="0"
|
||||||
|
BNL_FRAME_SCALER="0"
|
||||||
|
BNL_DATASET_SCALER="0"
|
||||||
|
BNL_DATASET_TIMER="ENABLE"
|
||||||
|
BNL_DATASET_FRAME="ENABLE"
|
||||||
|
BNL_PER_CARD_X_OFFSET="480"
|
||||||
|
> <!-- MESYTEC_TUBE_PAIR_LEN = 960 spans full range of observed position data -->
|
||||||
|
</FAT>
|
||||||
|
<BAT NO_BAT_ENTRIES="1" NO_BAT_PERIODS="1" NO_REPEAT_ENTRY="0" NO_REPEAT_TABLE="0" NO_EXECUTE_TABLE="0" >
|
||||||
|
<PERIOD_INDICES>
|
||||||
|
0
|
||||||
|
</PERIOD_INDICES>
|
||||||
|
</BAT>
|
||||||
|
<OAT NO_OAT_X_CHANNELS="992" NO_OAT_Y_CHANNELS="512" NO_OAT_T_CHANNELS="1">
|
||||||
|
<X>
|
||||||
|
991.5 990.5
|
||||||
|
</X>
|
||||||
|
<Y>
|
||||||
|
511.5 510.5
|
||||||
|
</Y>
|
||||||
|
<T>
|
||||||
|
0 200000
|
||||||
|
</T>
|
||||||
|
</OAT>
|
||||||
|
<CAT>
|
||||||
|
<MESYTEC_MPSD8_CHANNEL_GAINS>
|
||||||
|
<!-- MPSD8 gain per channel, settable in range 0.50 - 1.88 -->
|
||||||
|
<!-- MPSD8 #0 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #1 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #2 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #3 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #4 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #5 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #6 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #7 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #8 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #9 --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #A --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #B --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #C --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #D --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #E --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
<!-- MPSD8 #F --> 1.00 1.00 1.00 1.00 1.00 1.00 1.00 1.00
|
||||||
|
</MESYTEC_MPSD8_CHANNEL_GAINS>
|
||||||
|
|
||||||
|
<MESYTEC_MPSD8_THRESHOLDS>
|
||||||
|
<!-- MPSD8 thresholds per unit, settable in range 5% - 50% -->
|
||||||
|
<!-- MPSD8 #0 --> 6
|
||||||
|
<!-- MPSD8 #1 --> 6
|
||||||
|
<!-- MPSD8 #2 --> 6
|
||||||
|
<!-- MPSD8 #3 --> 6
|
||||||
|
<!-- MPSD8 #4 --> 6
|
||||||
|
<!-- MPSD8 #5 --> 6
|
||||||
|
<!-- MPSD8 #6 --> 6
|
||||||
|
<!-- MPSD8 #7 --> 6
|
||||||
|
<!-- MPSD8 #8 --> 6
|
||||||
|
<!-- MPSD8 #9 --> 6
|
||||||
|
<!-- MPSD8 #A --> 6
|
||||||
|
<!-- MPSD8 #B --> 6
|
||||||
|
<!-- MPSD8 #C --> 6
|
||||||
|
<!-- MPSD8 #D --> 6
|
||||||
|
<!-- MPSD8 #E --> 6
|
||||||
|
<!-- MPSD8 #F --> 6
|
||||||
|
</MESYTEC_MPSD8_THRESHOLDS>
|
||||||
|
|
||||||
|
<MESYTEC_TUBE_PAIR_RESISTANCE_RATIOS>
|
||||||
|
<!-- Resistance ratio R1/R0 per Mesytec tube pair -->
|
||||||
|
<!-- Set entry to 0. where single tubes are used. -->
|
||||||
|
<!-- MPSD8 #0 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #1 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #2 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #3 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #4 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #5 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #6 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #7 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #8 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #9 --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #A --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #B --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #C --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #D --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #E --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
<!-- MPSD8 #F --> 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
</MESYTEC_TUBE_PAIR_RESISTANCE_RATIOS>
|
||||||
|
|
||||||
|
<MESYTEC_TUBE_MAGNIFICATIONS>
|
||||||
|
<!-- Magnification factors for Mesytec position readings, per tube. -->
|
||||||
|
<!-- Default value 1. -->
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.
|
||||||
|
</MESYTEC_TUBE_MAGNIFICATIONS>
|
||||||
|
|
||||||
|
<MESYTEC_TUBE_OFFSETS>
|
||||||
|
<!-- Offset factors to be added to Mesytec position readings, per tube. -->
|
||||||
|
<!-- Default value 0. -->
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
|
||||||
|
</MESYTEC_TUBE_OFFSETS>
|
||||||
|
|
||||||
|
<MESYTEC_MPSD8_TUBE_HISTOGRAM_WEIGHTS>
|
||||||
|
<!-- MPSD8 histogram weights, per tube. -->
|
||||||
|
<!-- Use positive integer values in this table, default value 100 suggested. -->
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
|
</MESYTEC_MPSD8_TUBE_HISTOGRAM_WEIGHTS>
|
||||||
|
</CAT>
|
||||||
|
</config_filler>
|
||||||
|
</config_fillers>
|
||||||
|
</anstohm:anstohm>
|
||||||
@@ -14,6 +14,18 @@ if {$sim_mode == "true"} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
source $cfPath(hmm)/hmm_configuration_common_1.tcl
|
source $cfPath(hmm)/hmm_configuration_common_1.tcl
|
||||||
|
# Configure to upload a complete configuration to the histogram server.
|
||||||
|
# In this case it's the main config file plus the FAT, BAT and OAT files
|
||||||
|
# in the same direcory as the SICS executable (for this example).
|
||||||
|
# Alternatives:
|
||||||
|
# - A partial config could be uploaded instead - e.g. just the main config file,
|
||||||
|
# in that case the main config file points to a set of FAT, BAT OAT files
|
||||||
|
# located on the server.
|
||||||
|
# - The histogram server could configure itself from a config file set
|
||||||
|
# kept on the local file system (not automated presently, manual control only)
|
||||||
|
# - Or, no configuration at all could be uploaded, the
|
||||||
|
# histogram server can configure itself using its default config files.
|
||||||
|
hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full.xml"
|
||||||
|
|
||||||
if {$sim_mode == "true"} {
|
if {$sim_mode == "true"} {
|
||||||
proc ::histogram_memory::hmm_initialize {} {
|
proc ::histogram_memory::hmm_initialize {} {
|
||||||
@@ -62,7 +74,8 @@ proc setmode {mode} {
|
|||||||
hmm configure stitch_nxc [expr 480*8 - 1];
|
hmm configure stitch_nxc [expr 480*8 - 1];
|
||||||
hmm configure oat_ntc_eff 1;
|
hmm configure oat_ntc_eff 1;
|
||||||
}
|
}
|
||||||
hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full_normal.xml"
|
#hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full_normal.xml"
|
||||||
|
hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full_small.xml"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# $Revision: 1.11 $
|
# $Revision: 1.12 $
|
||||||
# $Date: 2007-04-10 00:31:41 $
|
# $Date: 2007-04-20 01:53:31 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: dcl $
|
# Last revision by: $Author: ffr $
|
||||||
|
|
||||||
# START MOTOR CONFIGURATION
|
# START MOTOR CONFIGURATION
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange]
|
|||||||
|
|
||||||
# set movecount high to reduce the frequency of
|
# set movecount high to reduce the frequency of
|
||||||
# hnotify messages to a reasonable level
|
# hnotify messages to a reasonable level
|
||||||
set move_count 100
|
set move_count 10
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Motor Controller 1
|
# Motor Controller 1
|
||||||
|
|||||||
5
site_ansto/instrument/hipd/config/plc/plc.tcl
Normal file
5
site_ansto/instrument/hipd/config/plc/plc.tcl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
MakeMultiChan plc_chan 137.157.204.65 30001
|
||||||
|
MakeSafetyPLC plc plc_chan 0
|
||||||
|
|
||||||
|
source $cfPath(plc)/plc_common_1.tcl
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# $Revision: 1.14 $
|
# $Revision: 1.15 $
|
||||||
# $Date: 2007-04-17 23:32:58 $
|
# $Date: 2007-04-20 01:53:31 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: dcl $
|
# Last revision by: $Author: ffr $
|
||||||
|
|
||||||
# Required by server_config.tcl
|
# Required by server_config.tcl
|
||||||
VarMake Instrument Text Internal
|
VarMake Instrument Text Internal
|
||||||
@@ -25,6 +25,7 @@ fileeval $cfPath(motors)/motor_configuration.tcl
|
|||||||
|
|
||||||
########
|
########
|
||||||
|
|
||||||
|
fileeval $cfPath(plc)/plc.tcl
|
||||||
fileeval $cfPath(counter)/counter.tcl
|
fileeval $cfPath(counter)/counter.tcl
|
||||||
fileeval $cfPath(hmm)/hmm_configuration.tcl
|
fileeval $cfPath(hmm)/hmm_configuration.tcl
|
||||||
fileeval $cfPath(nexus)/nxscripts.tcl
|
fileeval $cfPath(nexus)/nxscripts.tcl
|
||||||
@@ -70,7 +71,4 @@ detector_type lock
|
|||||||
detector_description 8 curved multiwire segments
|
detector_description 8 curved multiwire segments
|
||||||
detector_description lock
|
detector_description lock
|
||||||
|
|
||||||
fileeval extraconfig.tcl
|
fileeval extraconfig.tcl
|
||||||
|
|
||||||
MakeMultiChan plc_chan 137.157.204.65 30001
|
|
||||||
MakeSafetyPLC plc plc_chan 0
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
config/plc/plc_common_1.tcl
|
||||||
config/counter/counter_common_1.tcl
|
config/counter/counter_common_1.tcl
|
||||||
config/hipadaba/common_hipadaba_configuration.tcl
|
config/hipadaba/common_hipadaba_configuration.tcl
|
||||||
config/hmm/hmm_configuration_common_1.tcl
|
config/hmm/hmm_configuration_common_1.tcl
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ aperture slits ]
|
|||||||
# Configurable virtual motors
|
# Configurable virtual motors
|
||||||
# obj name path master_obj
|
# obj name path master_obj
|
||||||
set cvirtmotor_hpath [list \
|
set cvirtmotor_hpath [list \
|
||||||
ss1vg ss1vg slits/first top\
|
ss1vg ss1vg slits/first [list top bottom left right]\
|
||||||
ss1vo ss1vo slits/first top\
|
ss1vo ss1vo slits/first [list top bottom left right]\
|
||||||
ss1hg ss1hg slits/first right\
|
ss1hg ss1hg slits/first [list top bottom left right]\
|
||||||
ss1ho ss1ho slits/first right\
|
ss1ho ss1ho slits/first [list top bottom left right]\
|
||||||
ss2vg ss2vg slits/second top\
|
ss2vg ss2vg slits/second [list top bottom left right]\
|
||||||
ss2vo ss2vo slits/second top\
|
ss2vo ss2vo slits/second [list top bottom left right]\
|
||||||
ss2hg ss2hg slits/second right\
|
ss2hg ss2hg slits/second [list top bottom left right]\
|
||||||
ss2ho ss2ho slits/second right\
|
ss2ho ss2ho slits/second [list top bottom left right]\
|
||||||
sth sth sample [SplitReply [stth long_name]]\
|
sth sth sample [SplitReply [stth long_name]]\
|
||||||
mth mth monochromator [SplitReply [mtth long_name]]]
|
mth mth monochromator [SplitReply [mtth long_name]]]
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,32 @@ if {$sim_mode == "true"} {
|
|||||||
}
|
}
|
||||||
|
|
||||||
source $cfPath(hmm)/hmm_configuration_common_1.tcl
|
source $cfPath(hmm)/hmm_configuration_common_1.tcl
|
||||||
|
# Configure to upload a complete configuration to the histogram server.
|
||||||
|
# In this case it's the main config file plus the FAT, BAT and OAT files
|
||||||
|
# in the same direcory as the SICS executable (for this example).
|
||||||
|
# Alternatives:
|
||||||
|
# - A partial config could be uploaded instead - e.g. just the main config file,
|
||||||
|
# in that case the main config file points to a set of FAT, BAT OAT files
|
||||||
|
# located on the server.
|
||||||
|
# - The histogram server could configure itself from a config file set
|
||||||
|
# kept on the local file system (not automated presently, manual control only)
|
||||||
|
# - Or, no configuration at all could be uploaded, the
|
||||||
|
# histogram server can configure itself using its default config files.
|
||||||
|
proc setmode {mode} {
|
||||||
|
global cfPath;
|
||||||
|
switch $mode {
|
||||||
|
pulser {
|
||||||
|
hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full_MESYTEC_PULSER.xml"
|
||||||
|
}
|
||||||
|
calibration {
|
||||||
|
hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full_nofolding.xml"
|
||||||
|
}
|
||||||
|
normal -
|
||||||
|
default {
|
||||||
|
hmm configure hmconfigscript "returnconfigfile $cfPath(hmm)/anstohm_full_folding.xml"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if {$sim_mode == "true"} {
|
if {$sim_mode == "true"} {
|
||||||
proc ::histogram_memory::hmm_initialize {} {
|
proc ::histogram_memory::hmm_initialize {} {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# $Revision: 1.14 $
|
# $Revision: 1.15 $
|
||||||
# $Date: 2007-04-06 09:32:57 $
|
# $Date: 2007-04-20 01:53:31 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: ffr $
|
# Last revision by: $Author: ffr $
|
||||||
|
|
||||||
@@ -91,7 +91,7 @@ set ss2d_HiRange [expr $vSlitHome + $vSlitLoRange]
|
|||||||
|
|
||||||
# set movecount high to reduce the frequency of
|
# set movecount high to reduce the frequency of
|
||||||
# hnotify messages to a reasonable level
|
# hnotify messages to a reasonable level
|
||||||
set move_count 100
|
set move_count 10
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Motor Controller 1
|
# Motor Controller 1
|
||||||
|
|||||||
5
site_ansto/instrument/hrpd/config/plc/plc.tcl
Normal file
5
site_ansto/instrument/hrpd/config/plc/plc.tcl
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
MakeMultiChan plc_chan 137.157.204.65 30002
|
||||||
|
MakeSafetyPLC plc plc_chan 0
|
||||||
|
|
||||||
|
source $cfPath(plc)/plc_common_1.tcl
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
# $Revision: 1.21 $
|
# $Revision: 1.22 $
|
||||||
# $Date: 2007-04-17 23:32:34 $
|
# $Date: 2007-04-20 01:53:31 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: dcl $
|
# Last revision by: $Author: ffr $
|
||||||
|
|
||||||
# Required by server_config.tcl
|
# Required by server_config.tcl
|
||||||
VarMake Instrument Text Internal
|
VarMake Instrument Text Internal
|
||||||
@@ -25,6 +25,7 @@ fileeval $cfPath(motors)/motor_configuration.tcl
|
|||||||
|
|
||||||
########
|
########
|
||||||
|
|
||||||
|
fileeval $cfPath(plc)/plc.tcl
|
||||||
fileeval $cfPath(counter)/counter.tcl
|
fileeval $cfPath(counter)/counter.tcl
|
||||||
fileeval $cfPath(hmm)/hmm_configuration.tcl
|
fileeval $cfPath(hmm)/hmm_configuration.tcl
|
||||||
fileeval $cfPath(nexus)/nxscripts.tcl
|
fileeval $cfPath(nexus)/nxscripts.tcl
|
||||||
@@ -72,5 +73,3 @@ detector_description lock
|
|||||||
|
|
||||||
fileeval extraconfig.tcl
|
fileeval extraconfig.tcl
|
||||||
|
|
||||||
MakeMultiChan plc_chan 137.157.204.65 30002
|
|
||||||
MakeSafetyPLC plc plc_chan 0
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# SICS common configuration
|
# SICS common configuration
|
||||||
|
|
||||||
# $Revision: 1.23 $
|
# $Revision: 1.24 $
|
||||||
# $Date: 2007-04-13 03:13:22 $
|
# $Date: 2007-04-20 01:53:31 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by $Author: ffr $
|
# Last revision by $Author: ffr $
|
||||||
|
|
||||||
@@ -15,7 +15,8 @@ hmm $cfParent/hmm\
|
|||||||
scan $cfParent/scan\
|
scan $cfParent/scan\
|
||||||
counter $cfParent/counter\
|
counter $cfParent/counter\
|
||||||
nexus $cfParent/nexus\
|
nexus $cfParent/nexus\
|
||||||
hipadaba $cfParent/hipadaba]
|
hipadaba $cfParent/hipadaba\
|
||||||
|
plc $cfParent/plc]
|
||||||
|
|
||||||
ServerOption LogFileBaseName $sicsroot/log/serverlog
|
ServerOption LogFileBaseName $sicsroot/log/serverlog
|
||||||
|
|
||||||
@@ -51,7 +52,7 @@ sics_release [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
|||||||
sics_release lock
|
sics_release lock
|
||||||
|
|
||||||
VarMake sics_revision_num Text Internal
|
VarMake sics_revision_num Text Internal
|
||||||
set tmpstr [string map {"$" ""} {$Revision: 1.23 $}]
|
set tmpstr [string map {"$" ""} {$Revision: 1.24 $}]
|
||||||
sics_revision_num [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
sics_revision_num [lindex $tmpstr [expr [llength $tmpstr] - 1]]
|
||||||
sics_revision_num lock
|
sics_revision_num lock
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# Some useful functions for SICS configuration.
|
# Some useful functions for SICS configuration.
|
||||||
|
|
||||||
# $Revision: 1.2 $
|
# $Revision: 1.3 $
|
||||||
# $Date: 2007-03-13 21:27:28 $
|
# $Date: 2007-04-20 01:53:31 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by $Author: ffr $
|
# Last revision by $Author: ffr $
|
||||||
|
|
||||||
@@ -54,7 +54,9 @@ proc getinfo {object} {
|
|||||||
set wc [format "%s_*" $object];
|
set wc [format "%s_*" $object];
|
||||||
set objlist [sicslist match $wc];
|
set objlist [sicslist match $wc];
|
||||||
foreach v $objlist {
|
foreach v $objlist {
|
||||||
clientput [$v];
|
if { [SplitReply [sicslist $v type]]== "SicsVariable"} {
|
||||||
|
clientput [$v];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
publish getinfo spy
|
publish getinfo spy
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "multichan.h"
|
#include "multichan.h"
|
||||||
#include "nwatch.h"
|
#include "nwatch.h"
|
||||||
#include "safetyplc.h"
|
#include "safetyplc.h"
|
||||||
|
#include "sicsvar.h"
|
||||||
|
|
||||||
extern int DMC2280MotionControl;
|
extern int DMC2280MotionControl;
|
||||||
|
|
||||||
@@ -40,6 +41,25 @@ extern int DMC2280MotionControl;
|
|||||||
#define MOTOR_BOTH_BITS (MOTOR_ENABLED_BIT | MOTOR_DISABLED_BIT)
|
#define MOTOR_BOTH_BITS (MOTOR_ENABLED_BIT | MOTOR_DISABLED_BIT)
|
||||||
#define ACCESS_BOTH_BITS (ACCESS_LOCKED_BIT | ACCESS_UNLOCKED_BIT)
|
#define ACCESS_BOTH_BITS (ACCESS_LOCKED_BIT | ACCESS_UNLOCKED_BIT)
|
||||||
|
|
||||||
|
int PLC_UserPriv = 0; /* Internal */
|
||||||
|
typedef enum {
|
||||||
|
Unknown_low, Invalid_high, Enabled, Disabled,
|
||||||
|
Opened, Closed, Locked, Unlocked, True, False,}PLC_STATUS;
|
||||||
|
|
||||||
|
char *plc_states[] = {
|
||||||
|
"Unknown_low", "Invalid_high", "Enabled",
|
||||||
|
"Disabled", "Opened", "Closed",
|
||||||
|
"Locked", "Unlocked", "True", "False"};
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
Key,Secondary,Tertiary,MotionControl,Access,
|
||||||
|
DC,Exit,Trip,Fault,Operate,Relay,Ready,}PLC_PARAM;
|
||||||
|
|
||||||
|
char *plc_parname[] = {
|
||||||
|
"plc_key","plc_secondary","plc_tertiary","plc_motioncontrol",
|
||||||
|
"plc_access","plc_dc","plc_exit","plc_trip",
|
||||||
|
"plc_fault","plc_operate","plc_relay","plc_ready"};
|
||||||
|
|
||||||
typedef struct __SafetyPLCController SafetyPLCController, *pSafetyPLCController;
|
typedef struct __SafetyPLCController SafetyPLCController, *pSafetyPLCController;
|
||||||
|
|
||||||
struct __SafetyPLCController {
|
struct __SafetyPLCController {
|
||||||
@@ -47,6 +67,7 @@ struct __SafetyPLCController {
|
|||||||
pMultiChan mcc; /* associated MultiChan object */
|
pMultiChan mcc; /* associated MultiChan object */
|
||||||
int iGetOut;
|
int iGetOut;
|
||||||
int iValue;
|
int iValue;
|
||||||
|
int oldValue;
|
||||||
pNWTimer nw_tmr; /* NetWait timer handle */
|
pNWTimer nw_tmr; /* NetWait timer handle */
|
||||||
int timeout;
|
int timeout;
|
||||||
struct timeval tvSend;
|
struct timeval tvSend;
|
||||||
@@ -69,6 +90,8 @@ struct __command {
|
|||||||
void* cntx;
|
void* cntx;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int PLC_GetState(void *pData, char *param, PLC_STATUS *retState);
|
||||||
|
|
||||||
static int PLC_Tx(void* ctx)
|
static int PLC_Tx(void* ctx)
|
||||||
{
|
{
|
||||||
int iRet = 1;
|
int iRet = 1;
|
||||||
@@ -202,8 +225,11 @@ static void PLC_Notify(void* context, int event)
|
|||||||
*/
|
*/
|
||||||
static int GetCallback(void* ctx, const char* resp, int resp_len)
|
static int GetCallback(void* ctx, const char* resp, int resp_len)
|
||||||
{
|
{
|
||||||
int iRet;
|
int iRet,i;
|
||||||
unsigned int iRead;
|
unsigned int iRead;
|
||||||
|
PLC_STATUS plcState;
|
||||||
|
pSicsVariable plcVar=NULL;
|
||||||
|
|
||||||
pSafetyPLCController self = (pSafetyPLCController) ctx;
|
pSafetyPLCController self = (pSafetyPLCController) ctx;
|
||||||
if (resp_len < 0) {
|
if (resp_len < 0) {
|
||||||
DMC2280MotionControl = -1;
|
DMC2280MotionControl = -1;
|
||||||
@@ -226,7 +252,15 @@ static int GetCallback(void* ctx, const char* resp, int resp_len)
|
|||||||
else /* disabled */
|
else /* disabled */
|
||||||
DMC2280MotionControl = 0;
|
DMC2280MotionControl = 0;
|
||||||
}
|
}
|
||||||
|
if (self->oldValue != self->iValue) {
|
||||||
|
for (i=0; i < sizeof(plc_parname)/sizeof(plc_parname[0]); i++) {
|
||||||
|
plcVar = (pSicsVariable)FindCommandData(pServ->pSics,plc_parname[i],"SicsVariable");
|
||||||
|
PLC_GetState(self,plc_parname[i],&plcState);
|
||||||
|
VarSetText(plcVar,plc_states[plcState],PLC_UserPriv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
self->oldValue = self->iValue;
|
||||||
self->iGetOut = 0;
|
self->iGetOut = 0;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -249,128 +283,117 @@ static int MyTimerCallback(void* context, int mode)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int PLC_GetState(void *pData, char *param, PLC_STATUS *retState)
|
||||||
|
{
|
||||||
|
pSafetyPLCController self = (pSafetyPLCController) pData;
|
||||||
|
if (strcasecmp(param, plc_parname[Key]) == 0) {
|
||||||
|
*retState = Unknown_low;
|
||||||
|
if ((self->iValue & KEY_BOTH_BITS) == KEY_BOTH_BITS)
|
||||||
|
*retState = Invalid_high;
|
||||||
|
else if (self->iValue & KEY_ENABLED_BIT)
|
||||||
|
*retState = Enabled;
|
||||||
|
else if (self->iValue & KEY_DISABLED_BIT)
|
||||||
|
*retState = Disabled;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Secondary]) == 0) {
|
||||||
|
*retState = Unknown_low;
|
||||||
|
if ((self->iValue & SEC_BOTH_BITS) == SEC_BOTH_BITS)
|
||||||
|
*retState = Invalid_high;
|
||||||
|
if (self->iValue & SEC_OPENED_BIT)
|
||||||
|
*retState = Opened;
|
||||||
|
else if (self->iValue & SEC_CLOSED_BIT)
|
||||||
|
*retState = Closed;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Tertiary]) == 0) {
|
||||||
|
*retState = Unknown_low;
|
||||||
|
if ((self->iValue & TER_BOTH_BITS) == TER_BOTH_BITS)
|
||||||
|
*retState = Invalid_high;
|
||||||
|
if (self->iValue & TER_OPENED_BIT)
|
||||||
|
*retState = Opened;
|
||||||
|
else if (self->iValue & TER_CLOSED_BIT)
|
||||||
|
*retState = Closed;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[MotionControl]) == 0) {
|
||||||
|
*retState = Unknown_low;
|
||||||
|
if ((self->iValue & MOTOR_BOTH_BITS) == MOTOR_BOTH_BITS)
|
||||||
|
*retState = Invalid_high;
|
||||||
|
else if (self->iValue & MOTOR_ENABLED_BIT)
|
||||||
|
*retState = Enabled;
|
||||||
|
else if (self->iValue & MOTOR_DISABLED_BIT)
|
||||||
|
*retState = Disabled;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Access]) == 0) {
|
||||||
|
*retState = Unknown_low;
|
||||||
|
if ((self->iValue & ACCESS_BOTH_BITS) == ACCESS_BOTH_BITS)
|
||||||
|
*retState = Invalid_high;
|
||||||
|
else if (self->iValue & ACCESS_LOCKED_BIT)
|
||||||
|
*retState = Locked;
|
||||||
|
else if (self->iValue & ACCESS_UNLOCKED_BIT)
|
||||||
|
*retState = Unlocked;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[DC]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & DC_POWEROK_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Exit]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & EXIT_INPROGRESS_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Trip]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & SAFETY_TRIPPED_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Fault]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & SAFETY_MALFUNCTION_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Operate]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & TER_OPERATE_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Relay]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & RELAY_ENABLED_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
if (strcasecmp(param, plc_parname[Ready]) == 0) {
|
||||||
|
*retState = False;
|
||||||
|
if (self->iValue & INST_READY_BIT)
|
||||||
|
*retState = True;
|
||||||
|
return OKOK;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int PLC_Print(SConnection *pCon, SicsInterp *pSics,
|
static int PLC_Print(SConnection *pCon, SicsInterp *pSics,
|
||||||
void *pData, char *name, char *param)
|
void *pData, char *name, char *param)
|
||||||
{
|
{
|
||||||
char line[132];
|
char line[132];
|
||||||
pSafetyPLCController self = (pSafetyPLCController) pData;
|
PLC_STATUS state;
|
||||||
if (strcasecmp(param, "key") == 0) {
|
|
||||||
char* state = "unknown(low)";
|
if (PLC_GetState(pData, param, &state) != OKOK) {
|
||||||
if ((self->iValue & KEY_BOTH_BITS) == KEY_BOTH_BITS)
|
return 0;
|
||||||
state = "invalid(high)";
|
} else {
|
||||||
else if (self->iValue & KEY_ENABLED_BIT)
|
snprintf(line, 132, "%s.%s = %s", name, param, plc_states[state]);
|
||||||
state = "enabled";
|
|
||||||
else if (self->iValue & KEY_DISABLED_BIT)
|
|
||||||
state = "disabled";
|
|
||||||
snprintf(line, 132, "%s.Key = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
SCWrite(pCon, line, eStatus);
|
||||||
return OKOK;
|
return OKOK;
|
||||||
}
|
}
|
||||||
if (strcasecmp(param, "secondary") == 0) {
|
|
||||||
char* state = "unknown(low)";
|
|
||||||
if ((self->iValue & SEC_BOTH_BITS) == SEC_BOTH_BITS)
|
|
||||||
state = "invalid(high)";
|
|
||||||
if (self->iValue & SEC_OPENED_BIT)
|
|
||||||
state = "opened";
|
|
||||||
else if (self->iValue & SEC_CLOSED_BIT)
|
|
||||||
state = "closed";
|
|
||||||
snprintf(line, 132, "%s.Secondary = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "tertiary") == 0) {
|
|
||||||
char* state = "unknown(low)";
|
|
||||||
if ((self->iValue & TER_BOTH_BITS) == TER_BOTH_BITS)
|
|
||||||
state = "invalid(high)";
|
|
||||||
if (self->iValue & TER_OPENED_BIT)
|
|
||||||
state = "opened";
|
|
||||||
else if (self->iValue & TER_CLOSED_BIT)
|
|
||||||
state = "closed";
|
|
||||||
snprintf(line, 132, "%s.Tertiary = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "motioncontrol") == 0) {
|
|
||||||
char* state = "unknown(low)";
|
|
||||||
if ((self->iValue & MOTOR_BOTH_BITS) == MOTOR_BOTH_BITS)
|
|
||||||
state = "invalid(high)";
|
|
||||||
else if (self->iValue & MOTOR_ENABLED_BIT)
|
|
||||||
state = "enabled";
|
|
||||||
else if (self->iValue & MOTOR_DISABLED_BIT)
|
|
||||||
state = "disabled";
|
|
||||||
snprintf(line, 132, "%s.MotionControl = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "access") == 0) {
|
|
||||||
char* state = "unknown(low)";
|
|
||||||
if ((self->iValue & ACCESS_BOTH_BITS) == ACCESS_BOTH_BITS)
|
|
||||||
state = "invalid(high)";
|
|
||||||
else if (self->iValue & ACCESS_LOCKED_BIT)
|
|
||||||
state = "locked";
|
|
||||||
else if (self->iValue & ACCESS_UNLOCKED_BIT)
|
|
||||||
state = "unlocked";
|
|
||||||
snprintf(line, 132, "%s.Access = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "dc") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & DC_POWEROK_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.DC = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "exit") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & EXIT_INPROGRESS_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.Exit = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "trip") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & SAFETY_TRIPPED_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.Trip = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "fault") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & SAFETY_MALFUNCTION_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.Fault = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "operate") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & TER_OPERATE_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.Operate = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "relay") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & RELAY_ENABLED_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.Relay = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
if (strcasecmp(param, "ready") == 0) {
|
|
||||||
char* state = "false";
|
|
||||||
if (self->iValue & INST_READY_BIT)
|
|
||||||
state = "true";
|
|
||||||
snprintf(line, 132, "%s.Ready = %s", name, state);
|
|
||||||
SCWrite(pCon, line, eStatus);
|
|
||||||
return OKOK;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int PLC_Action(SConnection *pCon, SicsInterp *pSics,
|
static int PLC_Action(SConnection *pCon, SicsInterp *pSics,
|
||||||
@@ -385,22 +408,25 @@ static int PLC_Action(SConnection *pCon, SicsInterp *pSics,
|
|||||||
}
|
}
|
||||||
else if (argc == 2) {
|
else if (argc == 2) {
|
||||||
if (strcasecmp(argv[1], "list") == 0) {
|
if (strcasecmp(argv[1], "list") == 0) {
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "key");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Key]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "secondary");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Secondary]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "tertiary");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Tertiary]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "motioncontrol");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[MotionControl]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "access");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Access]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "dc");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[DC]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "exit");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Exit]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "trip");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Trip]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "fault");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Fault]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "operate");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Operate]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "relay");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Relay]);
|
||||||
PLC_Print(pCon, pSics, pData, argv[0], "ready");
|
PLC_Print(pCon, pSics, pData, argv[0], plc_parname[Ready]);
|
||||||
return OKOK;
|
return OKOK;
|
||||||
}
|
}
|
||||||
if (PLC_Print(pCon, pSics, pData, argv[0], argv[1]))
|
if (PLC_Print(pCon, pSics, pData, argv[0], argv[1]))
|
||||||
return OKOK;
|
return OKOK;
|
||||||
|
} else if (argc == 3) {
|
||||||
|
if (strcasecmp(argv[1], "hattach") == 0) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
snprintf(line, 132, "%s does not understand %s", argv[0], argv[1]);
|
snprintf(line, 132, "%s does not understand %s", argv[0], argv[1]);
|
||||||
SCWrite(pCon, line, eError);
|
SCWrite(pCon, line, eError);
|
||||||
@@ -451,8 +477,10 @@ int SafetyPLCFactory(SConnection *pCon, SicsInterp *pSics,
|
|||||||
void *pData, int argc, char *argv[])
|
void *pData, int argc, char *argv[])
|
||||||
{
|
{
|
||||||
pSafetyPLCController pNew = NULL;
|
pSafetyPLCController pNew = NULL;
|
||||||
int iRet, status;
|
int iRet, status, i;
|
||||||
char pError[256];
|
char pError[256];
|
||||||
|
pSicsVariable plcVar=NULL;
|
||||||
|
PLC_STATUS plcState;
|
||||||
|
|
||||||
if(argc < 4)
|
if(argc < 4)
|
||||||
{
|
{
|
||||||
@@ -479,6 +507,12 @@ int SafetyPLCFactory(SConnection *pCon, SicsInterp *pSics,
|
|||||||
SCWrite(pCon,pError,eError);
|
SCWrite(pCon,pError,eError);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i=0; i < sizeof(plc_parname)/sizeof(plc_parname[0]); i++) {
|
||||||
|
plcVar = VarCreate(PLC_UserPriv,veText,plc_parname[i]);
|
||||||
|
PLC_GetState(pNew,plc_parname[i],&plcState);
|
||||||
|
VarSetText(plcVar,plc_states[plcState],PLC_UserPriv);
|
||||||
|
AddCommand(pSics,plc_parname[i],VarWrapper,(KillFunc)VarKill,plcVar);
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
create the command
|
create the command
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user