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