First implementation of an Emu.
TODO: Review motor names.
This commit is contained in:
7
site_ansto/instrument/emu/MANIFEST.TXT
Normal file
7
site_ansto/instrument/emu/MANIFEST.TXT
Normal file
@ -0,0 +1,7 @@
|
||||
runsics_def.py
|
||||
emu_configuration.tcl
|
||||
config
|
||||
util
|
||||
hostport_config.tcl
|
||||
hostport_config_test.tcl
|
||||
sics_simulation.tcl
|
@ -0,0 +1 @@
|
||||
source $cfPath(hipadaba)/hipadaba_configuration_common.tcl
|
74
site_ansto/instrument/emu/config/hmm/hmm_configuration.tcl
Normal file
74
site_ansto/instrument/emu/config/hmm/hmm_configuration.tcl
Normal file
@ -0,0 +1,74 @@
|
||||
#TODO Set emu hmm parameters, this is the bilby config.
|
||||
fileeval $cfPath(hmm)/hmm_configuration_common_1.tcl
|
||||
set sim_mode [SplitReply [hmm_simulation]]
|
||||
|
||||
proc ::histogram_memory::init_OAT_TABLE {} {
|
||||
if [ catch {
|
||||
# We don't need a MAX_CHAN parameter for time because the time channel
|
||||
# is scaled by calling the ::histogram_memory::clock_scale function
|
||||
OAT_TABLE X -setdata MAX_CHAN 240
|
||||
OAT_TABLE Y -setdata MAX_CHAN 256
|
||||
OAT_TABLE X -setdata BMIN -0.5
|
||||
OAT_TABLE X -setdata BMAX 239.5
|
||||
OAT_TABLE Y -setdata BMIN -0.5
|
||||
OAT_TABLE Y -setdata BMAX 255.5
|
||||
|
||||
set clock_scale 1000
|
||||
set freq 50
|
||||
hmm configure fat_clock_scale $clock_scale
|
||||
hmm configure fat_frame_frequency $freq
|
||||
hmm configure fat_frame_source INTERNAL
|
||||
|
||||
OAT_TABLE -set X { 239.5 238.5 } NXC 240 Y { -0.5 2.5 } NYC 86 T { 0 20000 } NTC 1
|
||||
} message ] {
|
||||
return -code error $message
|
||||
}
|
||||
}
|
||||
proc ::histogram_memory::init_FAT_TABLE {} {
|
||||
hmm configure FAT_EVENT_OUTPUT_STREAMING ENABLE
|
||||
}
|
||||
proc ::histogram_memory::pre_count {} {}
|
||||
proc ::histogram_memory::post_count {} {}
|
||||
proc ::histogram_memory::isc_initialize {} {
|
||||
# Instrument specific X and Y dimension names
|
||||
variable INST_NXC "oat_nxc_eff"
|
||||
variable INST_NYC "oat_nyc_eff"
|
||||
|
||||
if [ catch {
|
||||
::histogram_memory::init_hmm_objs
|
||||
if {$::sim_mode == "true"} {
|
||||
hmm configure oat_ntc_eff 1
|
||||
hmm configure $INST_NYC 86
|
||||
hmm configure $INST_NXC 240
|
||||
}
|
||||
BAT_TABLE -init
|
||||
CAT_TABLE -init
|
||||
SAT_TABLE -init
|
||||
OAT_TABLE -init
|
||||
FAT_TABLE -init
|
||||
::histogram_memory::ic_initialize
|
||||
|
||||
detector_active_height_mm [expr 5.08 * 86]
|
||||
detector_active_width_mm [expr 5.08 * 240]
|
||||
detector_active_height_mm lock
|
||||
detector_active_width_mm lock
|
||||
|
||||
# hmm configure FAT_SIMULATED_EVENT_Y0 $y_bb0
|
||||
# hmm configure FAT_SIMULATED_EVENT_Y1 $ybbmax
|
||||
# hmm configure FAT_SIMULATED_EVENT_X0 $x_bb0
|
||||
# hmm configure FAT_SIMULATED_EVENT_X1 $xbbmax
|
||||
::histogram_memory::init_OAT_TABLE
|
||||
::histogram_memory::init_FAT_TABLE
|
||||
::histogram_memory::upload_config Filler_defaults
|
||||
|
||||
set ::histogram_memory::histmem_axes(HOR) /instrument/detector/x_pixel_offset
|
||||
set ::histogram_memory::histmem_axes(VER) /instrument/detector/y_pixel_offset
|
||||
} message ] {
|
||||
return -code error $message
|
||||
}
|
||||
}
|
||||
|
||||
proc histmem {cmd args} {
|
||||
eval "_histmem $cmd $args"
|
||||
}
|
||||
publish histmem user
|
@ -0,0 +1,64 @@
|
||||
mtth2_axis,F
|
||||
mtth2_axis_number,14
|
||||
mtth2_cnts_per_x,8192
|
||||
mtth2_description,2nd Reflector rotation
|
||||
mtth2_dflt_accel_steps,25000
|
||||
mtth2_dflt_decel_steps,25000
|
||||
mtth2_dflt_speed_steps,100000
|
||||
mtth2_fwd_enc_lim,293114
|
||||
mtth2_maxaccel,0.4
|
||||
mtth2_maxdecel,0.4
|
||||
mtth2_maxspeed,0.4
|
||||
mtth2_mc,mc2
|
||||
mtth2_part,instrument
|
||||
mtth2_rev_enc_lim,23251
|
||||
mtth2_steps_per_x,500000
|
||||
mtth2_units,degrees
|
||||
pmchi_axis,A
|
||||
pmchi_axis_number,1
|
||||
pmchi_cnts_per_x,2046
|
||||
pmchi_description,Pre Mono Tilt
|
||||
pmchi_dflt_accel_steps,50000
|
||||
pmchi_dflt_decel_steps,50000
|
||||
pmchi_dflt_speed_steps,50000
|
||||
pmchi_fwd_enc_lim,4181460
|
||||
pmchi_maxaccel,0.1
|
||||
pmchi_maxdecel,0.1
|
||||
pmchi_maxspeed,0.1
|
||||
pmchi_mc,mc1
|
||||
pmchi_part,instrument
|
||||
pmchi_rev_enc_lim,4210266
|
||||
pmchi_steps_per_x,500000
|
||||
pmchi_units,degrees
|
||||
pmth_axis,A
|
||||
pmth_axis_number,9
|
||||
pmth_cnts_per_x,93206.7555555556
|
||||
pmth_description,Pre Mono Rotation
|
||||
pmth_dflt_accel_steps,50000
|
||||
pmth_dflt_decel_steps,50000
|
||||
pmth_dflt_speed_steps,50000
|
||||
pmth_fwd_enc_lim,19270709
|
||||
pmth_maxaccel,0.1
|
||||
pmth_maxdecel,0.1
|
||||
pmth_maxspeed,0.1
|
||||
pmth_mc,mc2
|
||||
pmth_part,instrument
|
||||
pmth_rev_enc_lim,20287178
|
||||
pmth_steps_per_x,500000
|
||||
pmth_units,degrees
|
||||
pmx_axis,B
|
||||
pmx_axis_number,2
|
||||
pmx_cnts_per_x,10241
|
||||
pmx_description,Pre Mono Translation
|
||||
pmx_dflt_accel_steps,50000
|
||||
pmx_dflt_decel_steps,50000
|
||||
pmx_dflt_speed_steps,50000
|
||||
pmx_fwd_enc_lim,4131464
|
||||
pmx_maxaccel,0.4
|
||||
pmx_maxdecel,0.4
|
||||
pmx_maxspeed,0.4
|
||||
pmx_mc,mc1
|
||||
pmx_part,instrument
|
||||
pmx_rev_enc_lim,4275488
|
||||
pmx_steps_per_x,125000
|
||||
pmx_units,mm
|
|
@ -0,0 +1,140 @@
|
||||
#### SICS motor driver configuration ####
|
||||
# Generated by: ../../../util/genmotconf.tcl Emu_motion_control_commissioning_checklist.csv sicsmot_attlist.csv
|
||||
# Generated from the following files,
|
||||
# file1: Emu_motion_control_commissioning_checklist.csv
|
||||
# file2: sicsmot_attlist.csv
|
||||
|
||||
# Load motor driver configuration parameters
|
||||
set flist [list\
|
||||
{Emu_motion_control_commissioning_checklist.csv}\
|
||||
{sicsmot_attlist.csv}\
|
||||
]
|
||||
|
||||
foreach fattfile $flist {
|
||||
if [catch {
|
||||
set fattpath config/motors/$fattfile
|
||||
set fh [open $fattpath RDONLY]
|
||||
while {[gets $fh line] >= 0} {
|
||||
eval "set [split $line {,}]"
|
||||
}
|
||||
close $fh
|
||||
} msg] {
|
||||
clientput ERROR: $msg
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
set sim_mode [SplitReply [motor_simulation]]
|
||||
|
||||
if {$sim_mode == true} {
|
||||
set motor_driver_type asim
|
||||
} else {
|
||||
set motor_driver_type DMC2280
|
||||
}
|
||||
|
||||
if {$sim_mode == false} {
|
||||
MakeAsyncQueue mc1 DMC2280 [dict get $::MOTOR_HOSTPORT MC1 HOST] [dict get $::MOTOR_HOSTPORT MC1 PORT]
|
||||
MakeAsyncQueue mc2 DMC2280 [dict get $::MOTOR_HOSTPORT MC2 HOST] [dict get $::MOTOR_HOSTPORT MC2 PORT]
|
||||
}
|
||||
|
||||
# mtth2 configuration
|
||||
# 2nd Reflector rotation
|
||||
# Axis number 14
|
||||
Motor mtth2 $motor_driver_type [params\
|
||||
asyncqueue mc2\
|
||||
axis F\
|
||||
units $mtth2_units\
|
||||
hardlowerlim $mtth2_rev_lim\
|
||||
hardupperlim $mtth2_fwd_lim\
|
||||
maxSpeed $mtth2_maxspeed\
|
||||
maxAccel $mtth2_maxaccel\
|
||||
maxDecel $mtth2_maxdecel\
|
||||
stepsPerX $mtth2_steps_per_x\
|
||||
absEnc 1\
|
||||
absEncHome $mtth2_absenchome\
|
||||
cntsPerX $mtth2_cnts_per_x]
|
||||
mtth2 softlowerlim $mtth2_rev_lim
|
||||
mtth2 softupperlim $mtth2_fwd_lim
|
||||
mtth2 home $mtth2_home
|
||||
mtth2 part $mtth2_part
|
||||
mtth2 long_name mtth2
|
||||
mtth2 speed $mtth2_speed
|
||||
mtth2 accel $mtth2_accel
|
||||
mtth2 decel $mtth2_decel
|
||||
|
||||
# pmchi configuration
|
||||
# Pre Mono Tilt
|
||||
# Axis number 1
|
||||
Motor pmchi $motor_driver_type [params\
|
||||
asyncqueue mc1\
|
||||
axis A\
|
||||
units $pmchi_units\
|
||||
hardlowerlim $pmchi_rev_lim\
|
||||
hardupperlim $pmchi_fwd_lim\
|
||||
maxSpeed $pmchi_maxspeed\
|
||||
maxAccel $pmchi_maxaccel\
|
||||
maxDecel $pmchi_maxdecel\
|
||||
stepsPerX $pmchi_steps_per_x\
|
||||
absEnc 1\
|
||||
absEncHome $pmchi_absenchome\
|
||||
cntsPerX $pmchi_cnts_per_x]
|
||||
pmchi softlowerlim $pmchi_rev_lim
|
||||
pmchi softupperlim $pmchi_fwd_lim
|
||||
pmchi home $pmchi_home
|
||||
pmchi part $pmchi_part
|
||||
pmchi long_name pmchi
|
||||
pmchi speed $pmchi_speed
|
||||
pmchi accel $pmchi_accel
|
||||
pmchi decel $pmchi_decel
|
||||
|
||||
# pmth configuration
|
||||
# Pre Mono Rotation
|
||||
# Axis number 9
|
||||
Motor pmth $motor_driver_type [params\
|
||||
asyncqueue mc2\
|
||||
axis A\
|
||||
units $pmth_units\
|
||||
hardlowerlim $pmth_rev_lim\
|
||||
hardupperlim $pmth_fwd_lim\
|
||||
maxSpeed $pmth_maxspeed\
|
||||
maxAccel $pmth_maxaccel\
|
||||
maxDecel $pmth_maxdecel\
|
||||
stepsPerX $pmth_steps_per_x\
|
||||
absEnc 1\
|
||||
absEncHome $pmth_absenchome\
|
||||
cntsPerX $pmth_cnts_per_x]
|
||||
pmth softlowerlim $pmth_rev_lim
|
||||
pmth softupperlim $pmth_fwd_lim
|
||||
pmth home $pmth_home
|
||||
pmth part $pmth_part
|
||||
pmth long_name pmth
|
||||
pmth speed $pmth_speed
|
||||
pmth accel $pmth_accel
|
||||
pmth decel $pmth_decel
|
||||
|
||||
# pmx configuration
|
||||
# Pre Mono Translation
|
||||
# Axis number 2
|
||||
Motor pmx $motor_driver_type [params\
|
||||
asyncqueue mc1\
|
||||
axis B\
|
||||
units $pmx_units\
|
||||
hardlowerlim $pmx_rev_lim\
|
||||
hardupperlim $pmx_fwd_lim\
|
||||
maxSpeed $pmx_maxspeed\
|
||||
maxAccel $pmx_maxaccel\
|
||||
maxDecel $pmx_maxdecel\
|
||||
stepsPerX $pmx_steps_per_x\
|
||||
absEnc 1\
|
||||
absEncHome $pmx_absenchome\
|
||||
cntsPerX $pmx_cnts_per_x]
|
||||
pmx softlowerlim $pmx_rev_lim
|
||||
pmx softupperlim $pmx_fwd_lim
|
||||
pmx home $pmx_home
|
||||
pmx part $pmx_part
|
||||
pmx long_name pmx
|
||||
pmx speed $pmx_speed
|
||||
pmx accel $pmx_accel
|
||||
pmx decel $pmx_decel
|
||||
|
||||
proc motor_set_sobj_attributes {} {}
|
@ -0,0 +1,5 @@
|
||||
0 ERRORS IN PARSE STAGE 'Emu_motion_control_commissioning_checklist.csv'. PROCESSED 64 lines
|
||||
0 ERRORS IN PARSE STAGE 'sicsmot_attlist.csv'. PROCESSED 28 lines
|
||||
GENERATE MOTOR CONFIGURATIONS
|
||||
Required attributes: axis fwd_lim home maxaccel maxdecel maxspeed mc part rev_lim steps_per_x units
|
||||
Found 0 incomplete motor configurations
|
198
site_ansto/instrument/emu/config/motors/genmotconf_report.log
Normal file
198
site_ansto/instrument/emu/config/motors/genmotconf_report.log
Normal file
@ -0,0 +1,198 @@
|
||||
|
||||
PARSE 'Emu_motion_control_commissioning_checklist.csv'
|
||||
Processing 'mtth2_axis,F'
|
||||
Add ::mtth2_attarr(axis) = F
|
||||
Processing 'mtth2_axis_number,14'
|
||||
Add ::mtth2_attarr(axis_number) = 14
|
||||
Processing 'mtth2_cnts_per_x,8192'
|
||||
Add ::mtth2_encatts(cnts_per_x) = 8192
|
||||
Processing 'mtth2_description,2nd Reflector rotation'
|
||||
Add ::mtth2_attarr(description) = 2nd Reflector rotation
|
||||
Processing 'mtth2_dflt_accel_steps,25000'
|
||||
Add ::mtth2_attarr(dflt_accel_steps) = 25000
|
||||
Processing 'mtth2_dflt_decel_steps,25000'
|
||||
Add ::mtth2_attarr(dflt_decel_steps) = 25000
|
||||
Processing 'mtth2_dflt_speed_steps,100000'
|
||||
Add ::mtth2_attarr(dflt_speed_steps) = 100000
|
||||
Processing 'mtth2_fwd_enc_lim,293114'
|
||||
Add ::mtth2_encatts(fwd_enc_lim) = 293114
|
||||
Processing 'mtth2_maxaccel,0.4'
|
||||
Add ::mtth2_attarr(maxaccel) = 0.4
|
||||
Processing 'mtth2_maxdecel,0.4'
|
||||
Add ::mtth2_attarr(maxdecel) = 0.4
|
||||
Processing 'mtth2_maxspeed,0.4'
|
||||
Add ::mtth2_attarr(maxspeed) = 0.4
|
||||
Processing 'mtth2_mc,mc2'
|
||||
Add ::mtth2_attarr(mc) = mc2
|
||||
Processing 'mtth2_part,instrument'
|
||||
Add ::mtth2_attarr(part) = instrument
|
||||
Processing 'mtth2_rev_enc_lim,23251'
|
||||
Add ::mtth2_encatts(rev_enc_lim) = 23251
|
||||
Processing 'mtth2_steps_per_x,500000'
|
||||
Add ::mtth2_attarr(steps_per_x) = 500000
|
||||
Processing 'mtth2_units,degrees'
|
||||
Add ::mtth2_attarr(units) = degrees
|
||||
Processing 'pmchi_axis,A'
|
||||
Add ::pmchi_attarr(axis) = A
|
||||
Processing 'pmchi_axis_number,1'
|
||||
Add ::pmchi_attarr(axis_number) = 1
|
||||
Processing 'pmchi_cnts_per_x,2046'
|
||||
Add ::pmchi_encatts(cnts_per_x) = 2046
|
||||
Processing 'pmchi_description,Pre Mono Tilt'
|
||||
Add ::pmchi_attarr(description) = Pre Mono Tilt
|
||||
Processing 'pmchi_dflt_accel_steps,50000'
|
||||
Add ::pmchi_attarr(dflt_accel_steps) = 50000
|
||||
Processing 'pmchi_dflt_decel_steps,50000'
|
||||
Add ::pmchi_attarr(dflt_decel_steps) = 50000
|
||||
Processing 'pmchi_dflt_speed_steps,50000'
|
||||
Add ::pmchi_attarr(dflt_speed_steps) = 50000
|
||||
Processing 'pmchi_fwd_enc_lim,4181460'
|
||||
Add ::pmchi_encatts(fwd_enc_lim) = 4181460
|
||||
Processing 'pmchi_maxaccel,0.1'
|
||||
Add ::pmchi_attarr(maxaccel) = 0.1
|
||||
Processing 'pmchi_maxdecel,0.1'
|
||||
Add ::pmchi_attarr(maxdecel) = 0.1
|
||||
Processing 'pmchi_maxspeed,0.1'
|
||||
Add ::pmchi_attarr(maxspeed) = 0.1
|
||||
Processing 'pmchi_mc,mc1'
|
||||
Add ::pmchi_attarr(mc) = mc1
|
||||
Processing 'pmchi_part,instrument'
|
||||
Add ::pmchi_attarr(part) = instrument
|
||||
Processing 'pmchi_rev_enc_lim,4210266'
|
||||
Add ::pmchi_encatts(rev_enc_lim) = 4210266
|
||||
Processing 'pmchi_steps_per_x,500000'
|
||||
Add ::pmchi_attarr(steps_per_x) = 500000
|
||||
Processing 'pmchi_units,degrees'
|
||||
Add ::pmchi_attarr(units) = degrees
|
||||
Processing 'pmth_axis,A'
|
||||
Add ::pmth_attarr(axis) = A
|
||||
Processing 'pmth_axis_number,9'
|
||||
Add ::pmth_attarr(axis_number) = 9
|
||||
Processing 'pmth_cnts_per_x,93206.7555555556'
|
||||
Add ::pmth_encatts(cnts_per_x) = 93206.7555555556
|
||||
Processing 'pmth_description,Pre Mono Rotation'
|
||||
Add ::pmth_attarr(description) = Pre Mono Rotation
|
||||
Processing 'pmth_dflt_accel_steps,50000'
|
||||
Add ::pmth_attarr(dflt_accel_steps) = 50000
|
||||
Processing 'pmth_dflt_decel_steps,50000'
|
||||
Add ::pmth_attarr(dflt_decel_steps) = 50000
|
||||
Processing 'pmth_dflt_speed_steps,50000'
|
||||
Add ::pmth_attarr(dflt_speed_steps) = 50000
|
||||
Processing 'pmth_fwd_enc_lim,19270709'
|
||||
Add ::pmth_encatts(fwd_enc_lim) = 19270709
|
||||
Processing 'pmth_maxaccel,0.1'
|
||||
Add ::pmth_attarr(maxaccel) = 0.1
|
||||
Processing 'pmth_maxdecel,0.1'
|
||||
Add ::pmth_attarr(maxdecel) = 0.1
|
||||
Processing 'pmth_maxspeed,0.1'
|
||||
Add ::pmth_attarr(maxspeed) = 0.1
|
||||
Processing 'pmth_mc,mc2'
|
||||
Add ::pmth_attarr(mc) = mc2
|
||||
Processing 'pmth_part,instrument'
|
||||
Add ::pmth_attarr(part) = instrument
|
||||
Processing 'pmth_rev_enc_lim,20287178'
|
||||
Add ::pmth_encatts(rev_enc_lim) = 20287178
|
||||
Processing 'pmth_steps_per_x,500000'
|
||||
Add ::pmth_attarr(steps_per_x) = 500000
|
||||
Processing 'pmth_units,degrees'
|
||||
Add ::pmth_attarr(units) = degrees
|
||||
Processing 'pmx_axis,B'
|
||||
Add ::pmx_attarr(axis) = B
|
||||
Processing 'pmx_axis_number,2'
|
||||
Add ::pmx_attarr(axis_number) = 2
|
||||
Processing 'pmx_cnts_per_x,10241'
|
||||
Add ::pmx_encatts(cnts_per_x) = 10241
|
||||
Processing 'pmx_description,Pre Mono Translation'
|
||||
Add ::pmx_attarr(description) = Pre Mono Translation
|
||||
Processing 'pmx_dflt_accel_steps,50000'
|
||||
Add ::pmx_attarr(dflt_accel_steps) = 50000
|
||||
Processing 'pmx_dflt_decel_steps,50000'
|
||||
Add ::pmx_attarr(dflt_decel_steps) = 50000
|
||||
Processing 'pmx_dflt_speed_steps,50000'
|
||||
Add ::pmx_attarr(dflt_speed_steps) = 50000
|
||||
Processing 'pmx_fwd_enc_lim,4131464'
|
||||
Add ::pmx_encatts(fwd_enc_lim) = 4131464
|
||||
Processing 'pmx_maxaccel,0.4'
|
||||
Add ::pmx_attarr(maxaccel) = 0.4
|
||||
Processing 'pmx_maxdecel,0.4'
|
||||
Add ::pmx_attarr(maxdecel) = 0.4
|
||||
Processing 'pmx_maxspeed,0.4'
|
||||
Add ::pmx_attarr(maxspeed) = 0.4
|
||||
Processing 'pmx_mc,mc1'
|
||||
Add ::pmx_attarr(mc) = mc1
|
||||
Processing 'pmx_part,instrument'
|
||||
Add ::pmx_attarr(part) = instrument
|
||||
Processing 'pmx_rev_enc_lim,4275488'
|
||||
Add ::pmx_encatts(rev_enc_lim) = 4275488
|
||||
Processing 'pmx_steps_per_x,125000'
|
||||
Add ::pmx_attarr(steps_per_x) = 125000
|
||||
Processing 'pmx_units,mm'
|
||||
Add ::pmx_attarr(units) = mm
|
||||
CONTROLLER USAGE COUNT: mc1 count=2; mc2 count=2;
|
||||
PARSED 64 lines in 'Emu_motion_control_commissioning_checklist.csv'; failed 0 lines
|
||||
|
||||
PARSE 'sicsmot_attlist.csv'
|
||||
Processing 'mtth2_absenchome,23251.0000'
|
||||
Add ::mtth2_attarr(absenchome) = 23251.0000
|
||||
Processing 'mtth2_accel,0.0500'
|
||||
Add ::mtth2_attarr(accel) = 0.0500
|
||||
Processing 'mtth2_decel,0.0500'
|
||||
Add ::mtth2_attarr(decel) = 0.0500
|
||||
Processing 'mtth2_fwd_lim,32.9423'
|
||||
Add ::mtth2_attarr(fwd_lim) = 32.9423
|
||||
Processing 'mtth2_home,0.0000'
|
||||
Add ::mtth2_attarr(home) = 0.0000
|
||||
Processing 'mtth2_rev_lim,0.0000'
|
||||
Add ::mtth2_attarr(rev_lim) = 0.0000
|
||||
Processing 'mtth2_speed,0.2000'
|
||||
Add ::mtth2_attarr(speed) = 0.2000
|
||||
Processing 'pmchi_absenchome,4210266.0000'
|
||||
Add ::pmchi_attarr(absenchome) = 4210266.0000
|
||||
Processing 'pmchi_accel,0.1000'
|
||||
Add ::pmchi_attarr(accel) = 0.1000
|
||||
Processing 'pmchi_decel,0.1000'
|
||||
Add ::pmchi_attarr(decel) = 0.1000
|
||||
Processing 'pmchi_fwd_lim,-14.0792'
|
||||
Add ::pmchi_attarr(fwd_lim) = -14.0792
|
||||
Processing 'pmchi_home,0.0000'
|
||||
Add ::pmchi_attarr(home) = 0.0000
|
||||
Processing 'pmchi_rev_lim,0.0000'
|
||||
Add ::pmchi_attarr(rev_lim) = 0.0000
|
||||
Processing 'pmchi_speed,0.1000'
|
||||
Add ::pmchi_attarr(speed) = 0.1000
|
||||
Processing 'pmth_absenchome,20287178.0000'
|
||||
Add ::pmth_attarr(absenchome) = 20287178.0000
|
||||
Processing 'pmth_accel,0.1000'
|
||||
Add ::pmth_attarr(accel) = 0.1000
|
||||
Processing 'pmth_decel,0.1000'
|
||||
Add ::pmth_attarr(decel) = 0.1000
|
||||
Processing 'pmth_fwd_lim,-10.9055'
|
||||
Add ::pmth_attarr(fwd_lim) = -10.9055
|
||||
Processing 'pmth_home,0.0000'
|
||||
Add ::pmth_attarr(home) = 0.0000
|
||||
Processing 'pmth_rev_lim,0.0000'
|
||||
Add ::pmth_attarr(rev_lim) = 0.0000
|
||||
Processing 'pmth_speed,0.1000'
|
||||
Add ::pmth_attarr(speed) = 0.1000
|
||||
Processing 'pmx_absenchome,4275488.0000'
|
||||
Add ::pmx_attarr(absenchome) = 4275488.0000
|
||||
Processing 'pmx_accel,0.4000'
|
||||
Add ::pmx_attarr(accel) = 0.4000
|
||||
Processing 'pmx_decel,0.4000'
|
||||
Add ::pmx_attarr(decel) = 0.4000
|
||||
Processing 'pmx_fwd_lim,-14.0635'
|
||||
Add ::pmx_attarr(fwd_lim) = -14.0635
|
||||
Processing 'pmx_home,0.0000'
|
||||
Add ::pmx_attarr(home) = 0.0000
|
||||
Processing 'pmx_rev_lim,0.0000'
|
||||
Add ::pmx_attarr(rev_lim) = 0.0000
|
||||
Processing 'pmx_speed,0.4000'
|
||||
Add ::pmx_attarr(speed) = 0.4000
|
||||
CONTROLLER USAGE COUNT: mc1 count=2; mc2 count=2;
|
||||
PARSED 28 lines in 'sicsmot_attlist.csv'; failed 0 lines
|
||||
GENERATE MOTOR CONFIGURATIONS
|
||||
Configured mtth2
|
||||
Configured pmchi
|
||||
Configured pmth
|
||||
Configured pmx
|
||||
Generated 4 motor driver configurations
|
@ -0,0 +1,2 @@
|
||||
# @file Loads the generated_motor_configuration.tcl file which is created by util/genmotconf.tcl from CSV files.
|
||||
fileeval config/motors/generated_motor_configuration.tcl
|
28
site_ansto/instrument/emu/config/motors/sicsmot_attlist.csv
Normal file
28
site_ansto/instrument/emu/config/motors/sicsmot_attlist.csv
Normal file
@ -0,0 +1,28 @@
|
||||
mtth2_absenchome,23251.0000
|
||||
mtth2_accel,0.0500
|
||||
mtth2_decel,0.0500
|
||||
mtth2_fwd_lim,32.9423
|
||||
mtth2_home,0.0000
|
||||
mtth2_rev_lim,0.0000
|
||||
mtth2_speed,0.2000
|
||||
pmchi_absenchome,4210266.0000
|
||||
pmchi_accel,0.1000
|
||||
pmchi_decel,0.1000
|
||||
pmchi_fwd_lim,-14.0792
|
||||
pmchi_home,0.0000
|
||||
pmchi_rev_lim,0.0000
|
||||
pmchi_speed,0.1000
|
||||
pmth_absenchome,20287178.0000
|
||||
pmth_accel,0.1000
|
||||
pmth_decel,0.1000
|
||||
pmth_fwd_lim,-10.9055
|
||||
pmth_home,0.0000
|
||||
pmth_rev_lim,0.0000
|
||||
pmth_speed,0.1000
|
||||
pmx_absenchome,4275488.0000
|
||||
pmx_accel,0.4000
|
||||
pmx_decel,0.4000
|
||||
pmx_fwd_lim,-14.0635
|
||||
pmx_home,0.0000
|
||||
pmx_rev_lim,0.0000
|
||||
pmx_speed,0.4000
|
|
4
site_ansto/instrument/emu/config/nexus/nxscripts.tcl
Normal file
4
site_ansto/instrument/emu/config/nexus/nxscripts.tcl
Normal file
@ -0,0 +1,4 @@
|
||||
source $cfPath(nexus)/nxscripts_common_1.tcl
|
||||
proc ::nexus::isc_initialize {} {
|
||||
::nexus::ic_initialize
|
||||
}
|
37
site_ansto/instrument/emu/emu_configuration.tcl
Normal file
37
site_ansto/instrument/emu/emu_configuration.tcl
Normal file
@ -0,0 +1,37 @@
|
||||
|
||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||
|
||||
# Required by server_config.tcl
|
||||
VarMake Instrument Text Internal
|
||||
Instrument Emu
|
||||
Instrument lock
|
||||
|
||||
#START SERVER CONFIGURATION SECTION
|
||||
source util/dmc2280/dmc2280_util.tcl
|
||||
source server_config.tcl
|
||||
MakeDrive
|
||||
#END SERVER CONFIGURATION SECTION
|
||||
|
||||
########################################
|
||||
# INSTRUMENT SPECIFIC CONFIGURATION
|
||||
|
||||
fileeval $cfPath(motors)/motor_configuration.tcl
|
||||
|
||||
|
||||
fileeval $cfPath(source)/source.tcl
|
||||
source $cfPath(hipadaba)/hipadaba_configuration.tcl
|
||||
fileeval $cfPath(plc)/plc.tcl
|
||||
fileeval $cfPath(counter)/counter.tcl
|
||||
fileeval $cfPath(hmm)/hmm_configuration.tcl
|
||||
fileeval $cfPath(nexus)/nxscripts.tcl
|
||||
fileeval $cfPath(scan)/scan.tcl
|
||||
fileeval $cfPath(commands)/commands.tcl
|
||||
fileeval $cfPath(anticollider)/anticollider.tcl
|
||||
source gumxml.tcl
|
||||
|
||||
|
||||
server_init
|
||||
###########################################
|
||||
# WARNING: Do not add any code below server_init, if you do SICS may fail to initialise properly.
|
||||
|
||||
# You can add extra-configuration code in ../extraconfig.tcl
|
35
site_ansto/instrument/emu/hostport_config.tcl
Normal file
35
site_ansto/instrument/emu/hostport_config.tcl
Normal file
@ -0,0 +1,35 @@
|
||||
# MOTOR HOST AND PORT
|
||||
foreach {mc host port} {
|
||||
MC1 mc1-emu 1034
|
||||
MC2 mc2-emu 1034
|
||||
} {
|
||||
dict set MOTOR_HOSTPORT $mc HOST $host
|
||||
dict set MOTOR_HOSTPORT $mc PORT $port
|
||||
}
|
||||
|
||||
# BEAM MONITOR HOST AND PORT
|
||||
foreach {bm host port} {
|
||||
MONITOR_1 das1-emu 30000
|
||||
} {
|
||||
dict set MONITOR_HOSTPORT $bm HOST $host
|
||||
dict set MONITOR_HOSTPORT $bm PORT $port
|
||||
}
|
||||
|
||||
# HISTOGRAM SERVER HOST AND PORT
|
||||
# TODO HV control
|
||||
foreach {key host port} {
|
||||
HMM das1-emu.nbi.ansto.gov.au 8080
|
||||
HMSTAT das1-emu.nbi.ansto.gov.au 8081
|
||||
} {
|
||||
dict set HISTMEM_HOSTPORT $key HOST $host
|
||||
dict set HISTMEM_HOSTPORT $key PORT $port
|
||||
}
|
||||
|
||||
# Safety Interlock System
|
||||
# TODO
|
||||
foreach {host port} {
|
||||
IP PORT
|
||||
} {
|
||||
dict set PLC_HOSTPORT HOST $host
|
||||
dict set PLC_HOSTPORT PORT $port
|
||||
}
|
36
site_ansto/instrument/emu/hostport_config_test.tcl
Normal file
36
site_ansto/instrument/emu/hostport_config_test.tcl
Normal file
@ -0,0 +1,36 @@
|
||||
# Specify NONE for HOST and PORT if there is no fake device to talk to.
|
||||
|
||||
# TEST MOTOR HOST AND PORT
|
||||
foreach {key host port} {
|
||||
MC1 localhost 63130
|
||||
MC2 localhost 63131
|
||||
} {
|
||||
dict set MOTOR_HOSTPORT $key HOST $host
|
||||
dict set MOTOR_HOSTPORT $key PORT $port
|
||||
}
|
||||
|
||||
# TEST BEAM MONITOR HOST AND PORT
|
||||
foreach {key host port} {
|
||||
MONITOR_1 localhost 30000
|
||||
} {
|
||||
dict set MONITOR_HOSTPORT $key HOST $host
|
||||
dict set MONITOR_HOSTPORT $key PORT $port
|
||||
}
|
||||
|
||||
# TEST HISTOGRAM SERVER HOST AND PORT
|
||||
foreach {key host port} {
|
||||
HMM das1-test.nbi.ansto.gov.au 8080
|
||||
HMSTAT das1-test.nbi.ansto.gov.au 8081
|
||||
} {
|
||||
dict set HISTMEM_HOSTPORT $key HOST $host
|
||||
dict set HISTMEM_HOSTPORT $key PORT $port
|
||||
}
|
||||
|
||||
# Safety Interlock System
|
||||
# TODO
|
||||
foreach {host port} {
|
||||
NONE NONE
|
||||
} {
|
||||
dict set PLC_HOSTPORT HOST $host
|
||||
dict set PLC_HOSTPORT PORT $port
|
||||
}
|
3
site_ansto/instrument/emu/runsics_def.py
Normal file
3
site_ansto/instrument/emu/runsics_def.py
Normal file
@ -0,0 +1,3 @@
|
||||
inst_user = 'emu_sics'
|
||||
inst_name = 'emu'
|
||||
inst_config = 'emu_configuration.tcl'
|
23
site_ansto/instrument/emu/sics_simulation.tcl
Normal file
23
site_ansto/instrument/emu/sics_simulation.tcl
Normal file
@ -0,0 +1,23 @@
|
||||
# Simulation flags, possible values = true or false
|
||||
# true: The simulated driver will be used.
|
||||
# false: The real driver will be used.
|
||||
# icsval column = settings when running on the Instrument Control Server (ie SICS_SIMULATION not defined)
|
||||
# fakedev column = settings for test platforms (ie SICS_SIMULATION=fakedev)
|
||||
foreach {simflag icsval fakedev} {
|
||||
opal_simulation false true
|
||||
detector_simulation false true
|
||||
hmm_simulation false true
|
||||
environment_simulation false false
|
||||
counter_simulation true true
|
||||
motor_simulation false false
|
||||
chopper_simulation false true
|
||||
velsel_simulation false true
|
||||
plc_simulation false true
|
||||
rfgen_simulation false true
|
||||
goniometer_simulation false true
|
||||
magnetic_simulation false true
|
||||
} {
|
||||
dict set SIMFLAG_VAL $simflag ICSVAL $icsval
|
||||
dict set SIMFLAG_VAL $simflag FAKEDEV $fakedev
|
||||
VarMake $simflag Text internal
|
||||
}
|
Reference in New Issue
Block a user