add Pelican

r3108 | jgn | 2011-04-20 12:29:55 +1000 (Wed, 20 Apr 2011) | 1 line
This commit is contained in:
Jing Chen
2011-04-20 12:29:55 +10:00
committed by Douglas Clowes
parent 1fa3d21486
commit 22b22ffa25
66 changed files with 10293 additions and 0 deletions

View File

@@ -0,0 +1,791 @@
# Author: Jing Chen (jgn@ansto.gov.au)
# START MOTOR CONFIGURATION
::utility::mkVar FastShutter text manager FastShutter false instrument true false
# SET TO 1 TO USE THE TILT STAGE ie sample phi and chi
set use_tiltstage 0
set animal taipan
set sim_mode [SplitReply [motor_simulation]]
# Setup addresses of Galil DMC2280 controllers.
set dmc2280_controller1(host) mc1-$animal
set dmc2280_controller1(port) pmc1-$animal
set dmc2280_controller2(host) mc2-$animal
set dmc2280_controller2(port) pmc2-$animal
set dmc2280_controller3(host) mc3-$animal
set dmc2280_controller3(port) pmc3-$animal
set dmc2280_controller4(host) mc4-$animal
set dmc2280_controller4(port) pmc4-$animal
set dmc2280_controller6(host) mc6-$animal
set dmc2280_controller6(port) pmc6-$animal
if {$sim_mode == "true"} {
set motor_driver_type asim
} else {
set motor_driver_type DMC2280
MakeAsyncQueue mc1 DMC2280 $dmc2280_controller1(host) $dmc2280_controller1(port)
MakeAsyncQueue mc2 DMC2280 $dmc2280_controller2(host) $dmc2280_controller2(port)
MakeAsyncQueue mc3 DMC2280 $dmc2280_controller3(host) $dmc2280_controller3(port)
MakeAsyncQueue mc4 DMC2280 $dmc2280_controller4(host) $dmc2280_controller4(port)
}
#Measured absolute encoder reading at home position
set samchi_Home 7808328
set samphi_Home 7675008
set samx_Home 7420441
set samy_Home 7101486
set samz_Home 9944901
set samthet_Home 23004075
set det_Home 7055209
set detoff_Home 6857213
set srce_Home 7281463
set apx_Home 12965422
set apz_Home 7500000
set att_Home 24782942
#Measured or computed step/count rates for collimator translation
set coll_StepsPerX [expr -25000.0/6.0]
set coll_CntsPerX [expr 8192.0/6.0]
#Measured or computed step rate for samz (Sample Raise)
#Copied from Reflectometer then divided by 2.0 for SANS
# Motor:25000/turn, gear:1/25, screw:5mm/turn
set samzStepRate [expr -((25000.0*25.0)/5.0)/2.0]
#set samzCountRate [expr -(8192.0/5.0/0.932)]
# 8192 count encoder, 5mm/Turn screw, 14:15 gearing?
set samzCountRate [expr -((8192.0/5.0)/(14.0/15.0))/2.0]
# set movecount high to reduce the frequency of
# hnotify messages to a reasonable level
set move_count 100
############################
# Motor Controller 1
# Motor Controller 1
# Motor Controller 1
############################
#
# Dummy translation motor, useful for testing scans
Motor dummy_motor asim [params \
asyncqueue mc1\
host mc1-taipan\
port pmc1-taipan\
axis C\
units mm\
hardlowerlim -500\
hardupperlim 500\
maxSpeed 1\
maxAccel 5\
maxDecel 5\
stepsPerX [expr 25000.0/5.0]\
absEnc 1\
absEncHome $samx_Home\
cntsPerX [expr 8192.0/5.0]]
dummy_motor part instrument
dummy_motor long_name dummy_motor
dummy_motor softlowerlim -500
dummy_motor softupperlim 500
dummy_motor home 0
#if $use_tiltstage {
# mc1: Monochromator crystal selection rotation/Tilt
Motor mtilt $motor_driver_type [params \
asyncqueue mc1\
host mc1-taipan\
port pmc1-taipan\
axis A\
units degrees\
hardlowerlim -5\
hardupperlim 5\
maxSpeed 5000\
maxAccel 2048\
maxDecel 2048\
stepsPerX 4096\
absEnc 1\
absEncHome $samchi_Home\
cntsPerX 4096]
mtilt part sample
mtilt long_name mtilt
mtilt softlowerlim -5
mtilt softupperlim 5
mtilt home 0
#}
set atest mtilt
# mc1: Monochromator Linear (Translate)
Motor mtrans $motor_driver_type [params \
asyncqueue mc1\
host mc1-taipan\
port pmc1-taipan\
axis B\
units degrees\
hardlowerlim -10\
hardupperlim 195\
maxSpeed 20000\
maxAccel 2048\
maxDecel 2048\
stepsPerX 4096\
absEnc 1\
absEncHome $samphi_Home\
cntsPerX 4096]
mtrans part sample
mtrans long_name mtrans
mtrans softlowerlim -10
mtrans softupperlim 195
mtrans home 0
# mc1: Fight Tube Rotate
Motor m2 $motor_driver_type [params \
asyncqueue mc1\
host mc1-taipan\
port pmc1-taipan\
axis F\
units degrees\
hardlowerlim -32.5\
hardupperlim 53\
maxSpeed 75000\
maxAccel 25000\
maxDecel 25000\
stepsPerX 8192\
absEnc 1\
absEncHome $samx_Home\
cntsPerX 4096]
m2 part sample
m2 long_name m2
m2 softlowerlim -32.5
m2 softupperlim 53
m2 home 0
# mc1: Detector Rotate
Motor a2 $motor_driver_type [params \
asyncqueue mc1\
host mc1-taipan\
port pmc1-taipan\
axis H\
units degrees\
hardlowerlim -55\
hardupperlim 55\
maxSpeed 100000\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samy_Home\
cntsPerX 4096]
a2 part sample
a2 long_name a2
a2 softlowerlim -55
a2 softupperlim 55
a2 home 0
############################
# Motor Controller 2
# Motor Controller 2
# Motor Controller 2
############################
#
# mc2: Sample Tilt 1
Motor sgu $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis A\
units degrees\
hardlowerlim -18\
hardupperlim 19\
maxSpeed 12500\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samz_Home\
cntsPerX 4096]
sgu part sample
sgu long_name sgu
sgu softlowerlim -18
sgu softupperlim 19
sgu home 0
# mc2: Sample Tilt 2
Motor sgl $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis B\
units degrees\
hardlowerlim -18\
hardupperlim 18\
maxSpeed 25000\
maxAccel 25000\
maxDecel 25000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
sgl part sample
sgl long_name sgl
sgl softlowerlim -18
sgl softupperlim 18
sgl home 0
# mc2: Sample Up Tanslation
Motor stu $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis C\
units degrees\
hardlowerlim -15\
hardupperlim 15\
maxSpeed 30000\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
stu part sample
stu long_name stu
stu softlowerlim -15
stu softupperlim 15
stu home 0
# mc2: Sample Lower Tanslation
Motor stl $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis D\
units degrees\
hardlowerlim -15\
hardupperlim 15\
maxSpeed 30000\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
stl part sample
stl long_name stl
stl softlowerlim -15
stl softupperlim 15
stl home 0
# mc2: Sample Rotate
Motor s1 $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis E\
units degrees\
hardlowerlim -185\
hardupperlim 124\
maxSpeed 25000\
maxAccel 25000\
maxDecel 25000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
s1 part sample
s1 long_name s1
s1 softlowerlim -185
s1 softupperlim 124
s1 home 0
# mc2: Analyser Detector Rotate -- Sample Scattering Angle
Motor s2 $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis F\
units degrees\
hardlowerlim -128\
hardupperlim 3\
maxSpeed 100000\
maxAccel 25000\
maxDecel 25000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
s2 part sample
s2 long_name s2
s2 softlowerlim -128
s2 softupperlim 3
s2 home 0
# mc2: Analyser Horizontal Focus
Motor ahfocus $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis G\
units degrees\
hardlowerlim -360\
hardupperlim 360\
maxSpeed 2000\
maxAccel 1000\
maxDecel 1000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
ahfocus part sample
ahfocus long_name ahfocus
ahfocus softlowerlim -360
ahfocus softupperlim 360
ahfocus home 0
# mc2: Analyser Vertical Focus
Motor avfocus $motor_driver_type [params \
asyncqueue mc2\
host mc2-taipan\
port pmc2-taipan\
axis H\
units degrees\
hardlowerlim -200\
hardupperlim 0\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
avfocus part sample
avfocus long_name avfocus
avfocus softlowerlim -200
avfocus softupperlim 0
avfocus home 0
# mc3: Monochromator Vertical Focus
Motor mvfocus $motor_driver_type [params \
asyncqueue mc3\
host mc3-taipan\
port pmc3-taipan\
axis A\
units degrees\
hardlowerlim 0\
hardupperlim 240\
maxSpeed 25000\
maxAccel 8192\
maxDecel 4096\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
mvfocus part sample
mvfocus long_name mvfocus
mvfocus softlowerlim 0
mvfocus softupperlim 240
mvfocus home 0
# mc3: Monochromator Horizontal Focus
Motor mhfocus $motor_driver_type [params \
asyncqueue mc3\
host mc3-taipan\
port pmc3-taipan\
axis B\
units degrees\
hardlowerlim -180\
hardupperlim 275\
maxSpeed 25000\
maxAccel 8192\
maxDecel 4096\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
mhfocus part sample
mhfocus long_name mhfocus
mhfocus softlowerlim 0
mhfocus softupperlim 240
mhfocus home 0
# mc3: Monochromator Rotate
Motor m1 $motor_driver_type [params \
asyncqueue mc3\
host mc3-taipan\
port pmc3-taipan\
axis E\
units degrees\
hardlowerlim 5\
hardupperlim 40\
maxSpeed 75000\
maxAccel 25000\
maxDecel 25000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
m1 part sample
m1 long_name m1
m1 softlowerlim 5
m1 softupperlim 40
m1 home 0
# mc4: Analyzer Tilt 1 -- Two-theta Angle
Motor atilt $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis A\
units degrees\
hardlowerlim -5\
hardupperlim 5\
maxSpeed 100000\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
atilt part sample
atilt long_name atilt
atilt softlowerlim -5
atilt softupperlim 5
atilt home 0
# mc4: Analyzer Translate
Motor atrans $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis C\
units degrees\
hardlowerlim -1\
hardupperlim 22\
maxSpeed 100000\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
atrans part sample
atrans long_name atrans
atrans softlowerlim -1
atrans softupperlim 22
atrans home 0
# mc4: Analyzer Rotate
Motor a1 $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis D\
units degrees\
hardlowerlim -5.1\
hardupperlim 30\
maxSpeed 50000\
maxAccel 32768\
maxDecel 32768\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
a1 part sample
a1 long_name a1
a1 softlowerlim -5.1
a1 softupperlim 30
a1 home 0
# mc4: Virtural Source Left Translation
Motor VS_left $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis E\
units mm\
hardlowerlim 2\
hardupperlim 35\
maxSpeed 12500\
maxAccel 25000\
maxDecel 25000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
VS_left part sample
VS_left long_name VS_left
VS_left softlowerlim 2
VS_left softupperlim 35
VS_left home 0
# mc4: Virtural Source Right Translation
Motor VS_right $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis F\
units mm\
hardlowerlim -35\
hardupperlim -2\
maxSpeed 12500\
maxAccel 25000\
maxDecel 25000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
VS_right part sample
VS_right long_name VS_right
VS_right softlowerlim -35
VS_right softupperlim -2
VS_right home 0
# mc4: Filter Rotate
Motor mfilter $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis G\
units degrees\
hardlowerlim 0\
hardupperlim 360\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 8192\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
mfilter part sample
mfilter long_name mfilter
mfilter softlowerlim 0
mfilter softupperlim 360
mfilter home 0
# mc4: Primary collimator Translate
Motor collimator $motor_driver_type [params \
asyncqueue mc4\
host mc4-taipan\
port pmc4-taipan\
axis H\
units mm\
hardlowerlim -112\
hardupperlim 112\
maxSpeed 12500\
maxAccel 25000\
maxDecel 25000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
mfilter part sample
mfilter long_name collimator
mfilter softlowerlim -112
mfilter softupperlim 112
mfilter home 0
# mc6: Pre-sample right aperture -- Slit s1 right Blade
Motor ps_right $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis A\
units mm\
hardlowerlim -27\
hardupperlim -2\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
ps_right part sample
ps_right long_name ps_right
ps_right softlowerlim -27
ps_right softupperlim -2
ps_right home 0
# mc6: Pre-sample left aperture -- Slit s1 left Blade
Motor ps_left $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis B\
units mm\
hardlowerlim -27\
hardupperlim -2\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
ps_left part sample
ps_left long_name ps_left
ps_left softlowerlim -27
ps_left softupperlim -2
ps_left home 0
# mc6: Pre-sample top aperture -- Slit s1 top Blade
Motor ps_top $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis C\
units mm\
hardlowerlim -200\
hardupperlim -2\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
ps_top part sample
ps_top long_name ps_top
ps_top softlowerlim -200
ps_top softupperlim -2
ps_top home 0
# mc6: Pre-sample bottom aperture -- Slit s1 bottom Blade
Motor ps_bottom $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis D\
units mm\
hardlowerlim -200\
hardupperlim -2\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
ps_bottom part sample
ps_bottom long_name ps_bottom
ps_bottom softlowerlim -200
ps_bottom softupperlim -2
ps_bottom home 0
# mc6: Pre-sample right aperture -- Slit s2 right Blade
Motor pa_right $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis E\
units mm\
hardlowerlim -26\
hardupperlim 2\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
pa_right part sample
pa_right long_name pa_right
pa_right softlowerlim -26
pa_right softupperlim 2
pa_right home 0
# mc6: Pre-sample left aperture -- Slit s2 left Blade
Motor pa_left $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis F\
units mm\
hardlowerlim -26\
hardupperlim 2\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
pa_left part sample
pa_left long_name pa_left
pa_left softlowerlim -26
pa_left softupperlim 2
pa_left home 0
# mc6: Pre-sample top aperture -- Slit s2 top Blade
Motor pa_top $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis G\
units mm\
hardlowerlim -200\
hardupperlim 0\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
pa_left part sample
pa_left long_name pa_top
pa_left softlowerlim -200
pa_left softupperlim 0
pa_left home 0
# mc6: Pre-sample bottom aperture -- Slit s2 bottom Blade
Motor pa_bottom $motor_driver_type [params \
asyncqueue mc6\
host mc6-taipan\
port pmc6-taipan\
axis H\
units mm\
hardlowerlim -200\
hardupperlim 0\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
absEnc 1\
absEncHome $samthet_Home\
cntsPerX 4096]
pa_bottom part sample
pa_bottom long_name pa_bottom
pa_bottom softlowerlim -200
pa_bottom softupperlim 0
pa_bottom home 0
proc motor_set_sobj_attributes {} {
}
# END MOTOR CONFIGURATION
# According to http://www.nexusformat.org/Design units must conform to
# http://www.unidata.ucar.edu/software/udunits/udunits-1/udunits.txt
# So we use "count" for dimensionless decimal numbers
#set vc_units count
#make_coll_motor_2 c1 section_1 pc1 pc2 $vc_units
#make_coll_motor_1 c2 section_2 pc3 $vc_units
#make_coll_motor_1 c3 section_3 pc4 $vc_units
#make_coll_motor_1 c4 section_4 pc5 $vc_units
#make_coll_motor_1 c5 section_5 pc6 $vc_units
#make_coll_motor_1 c6 section_6 pc7 $vc_units
#make_coll_motor_1 c7 section_7 pc8 $vc_units
#make_coll_motor_1 c8 section_8 pc9 $vc_units
#make_coll_motor_1 c9 section_9 pc10 $vc_units
#unset vc_units

View File

@@ -0,0 +1,60 @@
# Author: Jing Chen (jgn@ansto.gov.au)
source $cfPath(motors)/sct_positmotor_common.tcl
set port1 [portnum pmc1-taipan]
set port2 [portnum pmc2-taipan]
set port3 [portnum pmc3-taipan]
set port4 [portnum pmc4-taipan]
set port5 [portnum pmc5-taipan]
set port6 [portnum pmc6-taipan]
makesctcontroller sct_mc1 std mc1-taipan:$port1
makesctcontroller sct_mc2 std mc2-taipan:$port2
makesctcontroller sct_mc3 std mc3-taipan:$port3
makesctcontroller sct_mc4 std mc4-taipan:$port4
makesctcontroller sct_mc5 std mc5-taipan:$port5
makesctcontroller sct_mc6 std mc6-taipan:$port6
# label pos
#index position
set 20sample_table {
1 453.7
2 411.7
3 369.7
4 327.7
5 285.7
6 203.7
7 161.7
8 119.7
9 77.7
10 35.7
11 -46.3
12 -88.3
13 -130.3
14 -172.3
15 -214.3
16 -296.3
17 -338.3
18 -380.3
19 -422.3
20 -464.3
}
#mkPosit sct_mc1 sampleNum float samx sample $20sample_table
#diameter position
set auto_ap_table {
2.5 0
5.0 -23
7.5 -47
10.0 -72
12.5 -98
15.0 -125
17.5 -153
20.0 -183
25.0 -215
30.0 -250
}
#mkPosit sct_mc3 diameter float apx sample $auto_ap_table