First implementation of an Emu.

TODO: Review motor names.
This commit is contained in:
Ferdi Franceschini
2015-03-10 14:13:11 +11:00
parent f72e20b120
commit a76f5d9143
15 changed files with 657 additions and 0 deletions

View File

@ -0,0 +1,7 @@
runsics_def.py
emu_configuration.tcl
config
util
hostport_config.tcl
hostport_config_test.tcl
sics_simulation.tcl

View File

@ -0,0 +1 @@
source $cfPath(hipadaba)/hipadaba_configuration_common.tcl

View 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

View File

@ -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
1 mtth2_axis F
2 mtth2_axis_number 14
3 mtth2_cnts_per_x 8192
4 mtth2_description 2nd Reflector rotation
5 mtth2_dflt_accel_steps 25000
6 mtth2_dflt_decel_steps 25000
7 mtth2_dflt_speed_steps 100000
8 mtth2_fwd_enc_lim 293114
9 mtth2_maxaccel 0.4
10 mtth2_maxdecel 0.4
11 mtth2_maxspeed 0.4
12 mtth2_mc mc2
13 mtth2_part instrument
14 mtth2_rev_enc_lim 23251
15 mtth2_steps_per_x 500000
16 mtth2_units degrees
17 pmchi_axis A
18 pmchi_axis_number 1
19 pmchi_cnts_per_x 2046
20 pmchi_description Pre Mono Tilt
21 pmchi_dflt_accel_steps 50000
22 pmchi_dflt_decel_steps 50000
23 pmchi_dflt_speed_steps 50000
24 pmchi_fwd_enc_lim 4181460
25 pmchi_maxaccel 0.1
26 pmchi_maxdecel 0.1
27 pmchi_maxspeed 0.1
28 pmchi_mc mc1
29 pmchi_part instrument
30 pmchi_rev_enc_lim 4210266
31 pmchi_steps_per_x 500000
32 pmchi_units degrees
33 pmth_axis A
34 pmth_axis_number 9
35 pmth_cnts_per_x 93206.7555555556
36 pmth_description Pre Mono Rotation
37 pmth_dflt_accel_steps 50000
38 pmth_dflt_decel_steps 50000
39 pmth_dflt_speed_steps 50000
40 pmth_fwd_enc_lim 19270709
41 pmth_maxaccel 0.1
42 pmth_maxdecel 0.1
43 pmth_maxspeed 0.1
44 pmth_mc mc2
45 pmth_part instrument
46 pmth_rev_enc_lim 20287178
47 pmth_steps_per_x 500000
48 pmth_units degrees
49 pmx_axis B
50 pmx_axis_number 2
51 pmx_cnts_per_x 10241
52 pmx_description Pre Mono Translation
53 pmx_dflt_accel_steps 50000
54 pmx_dflt_decel_steps 50000
55 pmx_dflt_speed_steps 50000
56 pmx_fwd_enc_lim 4131464
57 pmx_maxaccel 0.4
58 pmx_maxdecel 0.4
59 pmx_maxspeed 0.4
60 pmx_mc mc1
61 pmx_part instrument
62 pmx_rev_enc_lim 4275488
63 pmx_steps_per_x 125000
64 pmx_units mm

View File

@ -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 {} {}

View File

@ -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

View 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

View File

@ -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

View 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
1 mtth2_absenchome 23251.0000
2 mtth2_accel 0.0500
3 mtth2_decel 0.0500
4 mtth2_fwd_lim 32.9423
5 mtth2_home 0.0000
6 mtth2_rev_lim 0.0000
7 mtth2_speed 0.2000
8 pmchi_absenchome 4210266.0000
9 pmchi_accel 0.1000
10 pmchi_decel 0.1000
11 pmchi_fwd_lim -14.0792
12 pmchi_home 0.0000
13 pmchi_rev_lim 0.0000
14 pmchi_speed 0.1000
15 pmth_absenchome 20287178.0000
16 pmth_accel 0.1000
17 pmth_decel 0.1000
18 pmth_fwd_lim -10.9055
19 pmth_home 0.0000
20 pmth_rev_lim 0.0000
21 pmth_speed 0.1000
22 pmx_absenchome 4275488.0000
23 pmx_accel 0.4000
24 pmx_decel 0.4000
25 pmx_fwd_lim -14.0635
26 pmx_home 0.0000
27 pmx_rev_lim 0.0000
28 pmx_speed 0.4000

View File

@ -0,0 +1,4 @@
source $cfPath(nexus)/nxscripts_common_1.tcl
proc ::nexus::isc_initialize {} {
::nexus::ic_initialize
}

View 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

View 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
}

View 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
}

View File

@ -0,0 +1,3 @@
inst_user = 'emu_sics'
inst_name = 'emu'
inst_config = 'emu_configuration.tcl'

View 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
}