WIP: another pass at the Pelican motor configuration

r3539 | dcl | 2012-04-27 14:40:00 +1000 (Fri, 27 Apr 2012) | 1 line
This commit is contained in:
Douglas Clowes
2012-04-27 14:40:00 +10:00
parent 1326492c00
commit 7959d78fd1

View File

@@ -1,9 +1,6 @@
# Author: Jing Chen (jgn@ansto.gov.au)
# All Motors are 25000 steps per motor revolution
# SET TO 1 TO USE THE TILT STAGE ie sample phi and chi
set use_tiltstage 0
set animal pelican
set sim_mode [SplitReply [motor_simulation]]
@@ -30,29 +27,29 @@ 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 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)
# MakeAsyncQueue mc6 DMC2280 $dmc2280_controller6(host) $dmc2280_controller6(port)
MakeAsyncQueue mc6 DMC2280 $dmc2280_controller6(host) $dmc2280_controller6(port)
}
#Measured absolute encoder reading at home position
set dummy_Home 0
set ftz_Home 32096132
set ptz_Home 1242083
set ptz_Home 32096132
set ftz_Home 1242083
set pom_Home 34677
set stth_Home 152965
set mtth_Home 24409175
set sv1_Home 0
set sh1_Home 0
set sv2_Home 0
set sh2_Home 0
set gom_Home 0
set scor_Home 0
set sv1_Home 33431185
set sh1_Home 33414
set sv2_Home 33357369
set sh2_Home 33505668
set gom_Home 373521
set scor_Home 20193638
# AND abs Encoder Reading with FFF to get the lowest 12 bits only
#set mra_Home 4286
@@ -74,9 +71,10 @@ set mx_Home 8390604
set my_Home 8391084
set mom_Home 8389414
set rco_Home 0
set rcz_Home 0
set bsr_Home 0
set rco_Home 33531098
# TODO get real values from Dan
set rcz_Home 33141607
set bsr_Home 1192516
set gv1_Home 0
set gv2_Home 0
@@ -125,29 +123,26 @@ Motor ptz $motor_driver_type [params \
port pmc1-pelican\
axis B\
units mm\
hardlowerlim 0\
hardupperlim 500\
hardlowerlim -264\
hardupperlim 187\
maxSpeed [expr { 300000.0 / $ptzStepRate }]\
maxAccel [expr { 150000.0 / $ptzStepRate }]\
maxDecel [expr { 150000.0 / $ptzStepRate }]\
stepsPerX $ptzStepRate\
stepsPerX -$ptzStepRate\
absEnc 1\
absEncHome $ptz_Home\
cntsPerX 4096\
posit_count 5]
cntsPerX -[expr { 8192.0 / 2.0 }]\
posit_count 3]
ptz part crystal
ptz long_name ptz
ptz softlowerlim 0
ptz softupperlim 500
ptz softlowerlim -264
ptz softupperlim 187
ptz home 0
# 1:RevLimit, 2:Coll, 3:Open, 4:Polarizer, 5:FwdLim
ptz posit_1 31327313
ptz posit_2 31408274
ptz_posit_3 32096132
ptz posit_4 33171650
ptz posit_5 33179305
ptz posit_1 31408274
ptz posit_2 32096132
ptz posit_3 33171650
#if $use_tiltstage {
# mc1: Beryllium / Graphite filter shared - Z translation slide
# Moto: 100:1 gear, 2mm pitch
set ftzStepRate [expr { 25000 * 100 / 2.0 }]
@@ -158,27 +153,25 @@ Motor ftz $motor_driver_type [params \
port pmc1-pelican\
axis C\
units mm\
hardlowerlim 0\
hardupperlim 500\
hardlowerlim -280\
hardupperlim 160\
maxSpeed [expr { 300000.0 / $ftzStepRate }]\
maxAccel [expr { 150000.0 / $ftzStepRate }]\
maxDecel [expr { 150000.0 / $ftzStepRate }]\
stepsPerX $ftzStepRate\
stepsPerX -$ftzStepRate\
absEnc 1\
absEncHome $ftz_Home\
cntsPerX 4096\
posit_count 5]
cntsPerX -[expr { 8192.0 / 2.0 }]\
posit_count 3]
ftz part crystal
ftz long_name ftz
ftz softlowerlim 0
ftz softupperlim 500
ftz softlowerlim -280
ftz softupperlim 160
ftz home 0
# 1:RevLimit, 2:PG, 3:Open, 4:Be, 5:FwdLim
ptz posit_1 590458
ptz posit_2 590157
ptz_posit_3 1242083
ptz posit_4 2348104
ptz posit_5 2426769
ftz posit_1 590157
ftz posit_2 1242083
ftz posit_3 2348104
# mc1: Polariser (& Spin Flipper) - Rotation + - 2 deg about polariser (i.e, The Elbow)
set pomStepRate [expr { 1176 * 25000 }]
@@ -206,7 +199,7 @@ pom home 0
# mc1: Sample/Detector Chamber Rotation (Detector)
#set stthStepRate 66807.314
set stthStepRate [expr { 25000 * 100.0 * (3800.0 / 395.0) / 360.0) }]
set stthStepRate [expr { 25000 * 100.0 * (3800.0 / 395.0) / 360.0 }]
Motor stth $motor_driver_type [params \
asyncqueue mc1\
@@ -222,7 +215,7 @@ Motor stth $motor_driver_type [params \
stepsPerX $stthStepRate\
absEnc 1\
absEncHome $stth_Home\
cntsPerX [expr { -8192.0 / 360.0 }]]
cntsPerX -[expr { 8192.0 / 360.0 }]]
stth part detector
stth long_name stth
stth softlowerlim -60
@@ -263,129 +256,129 @@ mtth home 90
#
# mc2: Slits Set AB1- (After Beryllium Filter) (2 blades and 1 Motor & Encoder set)
set sv1StepRate 25000
set sv1StepRate [expr { 25000 / 0.635 / 2.0 }]
#Motor sv1 $motor_driver_type [params \
Motor sv1 $motor_driver_type [params \
asyncqueue mc2\
host mc2-pelican\
port pmc2-pelican\
axis A\
units mm\
hardlowerlim -2\
hardupperlim 60\
hardlowerlim -0.2\
hardupperlim 116\
maxSpeed [expr 25000.0/$sv1StepRate]\
maxAccel [expr 25000.0/$sv1StepRate]\
maxDecel [expr 25000.0/$sv1StepRate]\
stepsPerX $sv1StepRate\
stepsPerX -$sv1StepRate\
absEnc 1\
absEncHome $sv1_Home\
cntsPerX 4096]
#sv1 part aperture
#sv1 long_name sv1
#sv1 softlowerlim -2
#sv1 softupperlim 60
#sv1 home 0
cntsPerX [expr { 1024.0 / 0.635 / 2.0 }]]
sv1 part aperture
sv1 long_name sv1
sv1 softlowerlim -0.2
sv1 softupperlim 116
sv1 home 0
# mc2: Slits Set AB2- (After Beryllium Filter) (2 blades and 1 Motor & Encoder set)
set sh1StepRate 25000
set sh1StepRate [expr { 25000 / 0.635 / 2.0 }]
#Motor sh1 $motor_driver_type [params \
Motor sh1 $motor_driver_type [params \
asyncqueue mc2\
host mc2-pelican\
port pmc2-pelican\
axis B\
units mm\
hardlowerlim -2\
hardupperlim 50\
hardlowerlim -3\
hardupperlim 90\
maxSpeed [expr 25000.0/$sh1StepRate]\
maxAccel [expr 25000.0/$sh1StepRate]\
maxDecel [expr 25000.0/$sh1StepRate]\
stepsPerX $sh1StepRate\
stepsPerX -$sh1StepRate\
absEnc 1\
absEncHome $sh1_Home\
cntsPerX 4096]
#sh1 part aperture
#sh1 long_name sh1
#sh1 softlowerlim -2
#sh1 softupperlim 50
#sh1 home 0
cntsPerX [expr { 1024.0 / 0.635 / 2.0 }]]
sh1 part aperture
sh1 long_name sh1
sh1 softlowerlim -3
sh1 softupperlim 90
sh1 home 0
# mc2: Slits Set AF1- (After Fermi Chopper) (2 blades and 1 Motor & Encoder set)
set sv2StepRate 25000
set sv2StepRate [expr { 25000 / 0.635 / 2.0 }]
#Motor sv2 $motor_driver_type [params \
Motor sv2 $motor_driver_type [params \
asyncqueue mc2\
host mc2-pelican\
port pmc2-pelican\
axis C\
units mm\
hardlowerlim -2\
hardupperlim 40\
hardupperlim 80\
maxSpeed [expr 25000.0/$sv2StepRate]\
maxAccel [expr 25000.0/$sv2StepRate]\
maxDecel [expr 25000.0/$sv2StepRate]\
stepsPerX $sv2StepRate\
absEnc 1\
absEncHome $sv2_Home\
cntsPerX 4096]
#sv2 part aperture
#sv2 long_name sv2
#sv2 softlowerlim -2
#sv2 softupperlim 40
#sv2 home 0
cntsPerX [expr { 1024.0 / 0.635 / 2.0 }]]
sv2 part aperture
sv2 long_name sv2
sv2 softlowerlim -2
sv2 softupperlim 80
sv2 home 0
# mc2: Slits Set AF2- (After Fermi Chopper) (2 blades and 1 Motor & Encoder set)
set sh2StepRate 25000
set sh2StepRate [expr { 25000 / 0.635 / 2.0 }]
#Motor sh2 $motor_driver_type [params \
Motor sh2 $motor_driver_type [params \
asyncqueue mc2\
host mc2-pelican\
port pmc2-pelican\
axis D\
units mm\
hardlowerlim -2\
hardupperlim 30\
hardlowerlim -0.5\
hardupperlim 50\
maxSpeed [expr 25000.0/$sh2StepRate]\
maxAccel [expr 25000.0/$sh2StepRate]\
maxDecel [expr 25000.0/$sh2StepRate]\
stepsPerX $sh2StepRate\
stepsPerX -$sh2StepRate\
absEnc 1\
absEncHome $sh2_Home\
cntsPerX 4096]
#sh2 part aperture
#sh2 long_name sh2
#sh2 softlowerlim -2
#sh2 softupperlim 30
#sh2 home 0
cntsPerX [expr { 1024.0 / 0.635 / 2.0 }]]
sh2 part aperture
sh2 long_name sh2
sh2 softlowerlim -0.5
sh2 softupperlim 50
sh2 home 0
# mc2: Graphite filter rotation stage (post 1st slit and post 1st Fermi chopper)
set gomStepRate 25000
set gomStepRate [expr { 25000.0 / 2.0 }]
#Motor gom $motor_driver_type [params \
Motor gom $motor_driver_type [params \
asyncqueue mc2\
host mc2-pelican\
port pmc2-pelican\
axis E\
units degrees\
hardlowerlim 0\
hardlowerlim -15\
hardupperlim 15\
maxSpeed [expr 50000.0/$gomStepRate]\
maxSpeed [expr 25000.0/$gomStepRate]\
maxAccel [expr 25000.0/$gomStepRate]\
maxDecel [expr 25000.0/$gomStepRate]\
stepsPerX $gomStepRate\
absEnc 1\
absEncHome $gom_Home\
cntsPerX 4096]
#gom part sample
#gom long_name gom
#gom softlowerlim 0
#gom softupperlim 15
#gom home 0
cntsPerX [expr { 8192.0 / 2.0 }]]
gom part sample
gom long_name gom
gom softlowerlim -15
gom softupperlim 15
gom home 0
# mc2: Sample rotation correction - 10 deg rotation
set scorStepRate 25000
set scorStepRate [expr { 25000.0 * 100.0 / 360.0 }]
#Motor scor $motor_driver_type [params \
Motor scor $motor_driver_type [params \
asyncqueue mc2\
host mc2-pelican\
port pmc2-pelican\
@@ -393,18 +386,18 @@ set scorStepRate 25000
units degrees\
hardlowerlim 0\
hardupperlim 360\
maxSpeed [expr 50000.0/$scorStepRate]\
maxSpeed [expr 25000.0/$scorStepRate]\
maxAccel [expr 25000.0/$scorStepRate]\
maxDecel [expr 25000.0/$scorStepRate]\
stepsPerX $scorStepRate\
absEnc 1\
absEncHome $scor_Home\
cntsPerX 4096]
#scor part sample
#scor long_name scor
#scor softlowerlim 0
#scor softupperlim 360
#scor home 0
cntsPerX -[expr { 8192.0 * 100.0 / 360.0 }]]
scor part sample
scor long_name scor
scor softlowerlim 0
scor softupperlim 360
scor home 0
############################
# Motor Controller 3
@@ -742,118 +735,138 @@ mom home 0
#
# mc6: Radial Collimator -- Oscillator
#Motor rco $motor_driver_type [params \
set rcoStepRate [expr { (1200.26 / 60.0) * (25000.0 / 360.0) * 49.0 }]
Motor rco $motor_driver_type [params \
asyncqueue mc6\
host mc6-pelican\
port pmc6-pelican\
axis A\
units mm\
hardlowerlim 0\
hardupperlim 180\
maxSpeed 50000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
hardupperlim 0\
maxSpeed [expr { 5000.0 / $rcoStepRate }]\
maxAccel [expr { 5000.0 / $rcoStepRate }]\
maxDecel [expr { 5000.0 / $rcoStepRate }]\
stepsPerX $rcoStepRate\
absEnc 1\
absEncHome $rco_Home\
cntsPerX 4096]
#rco part collimator
#rco long_name rco
#rco softlowerlim 0
#rco softupperlim 180
#rco home 0
cntsPerX [expr { (1200.26 / 60.0) * (8192.0 / 360.0) }]]
rco part collimator
rco long_name rco
rco softlowerlim 0
rco softupperlim 0
rco home 0
# fix this motor
rco fixed 1
# mc6: Radial Collimator -- Z Translation
#Motor rcz $motor_driver_type [params \
set rczStepRate [expr { 25000.0 * 100.0 / 10.0 }]
Motor rcz $motor_driver_type [params \
asyncqueue mc6\
host mc6-pelican\
port pmc6-pelican\
axis B\
units mm\
hardlowerlim 0\
hardupperlim 180\
maxSpeed 50000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
hardupperlim 450\
maxSpeed [expr { 250000 / $rczStepRate }]\
maxAccel [expr { 100000 / $rczStepRate }]\
maxDecel [expr { 100000 / $rczStepRate }]\
stepsPerX $rczStepRate\
absEnc 1\
absEncHome $rcz_Home\
cntsPerX 4096]
#rcz part collimator
#rcz long_name rcz
#rcz softlowerlim 0
#rcz softupperlim 180
#rcz home 0
cntsPerX [expr { 8192.0 / 10.0 }]]
rcz part collimator
rcz long_name rcz
rcz softlowerlim 0
rcz softupperlim 450
rcz home 0
# fix this motor
rcz fixed 1
# mc6: Beam Stop Stage - Rotation
#Motor bsr $motor_driver_type [params \
set bsrStepRate [expr { 25000.0 / 2.0 }]
Motor bsr $motor_driver_type [params \
asyncqueue mc6\
host mc6-pelican\
port pmc6-pelican\
axis C\
units degrees\
hardlowerlim 0\
hardlowerlim -150\
hardupperlim 180\
maxSpeed 50000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
maxSpeed [expr { 25000.0 / $bsrStepRate }]\
maxAccel [expr { 25000.0 / $bsrStepRate }]\
maxDecel [expr { 25000.0 / $bsrStepRate }]\
stepsPerX $bsrStepRate\
absEnc 1\
absEncHome $bsr_Home\
cntsPerX 4096]
#bsr part sample
#bsr long_name bsr
#bsr softlowerlim 0
#bsr softupperlim 180
#bsr home 0
cntsPerX [expr { 8192.0 / 2.0 }]]
bsr part sample
bsr long_name bsr
bsr softlowerlim -150
bsr softupperlim 180
bsr home 0
# fix this motor
bsr fixed 1
# mc6: Isolation Vaue -- Axis 1, currently this Axis is set to read ONLY to read the encoder
#Motor gv1 $motor_driver_type [params \
Motor gv1 $motor_driver_type [params \
asyncqueue mc6\
host mc6-pelican\
port pmc6-pelican\
axis E\
units degrees\
hardlowerlim 0\
hardupperlim 180\
maxSpeed 50000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
hardupperlim 0\
maxSpeed 0\
maxAccel 0\
maxDecel 0\
stepsPerX 1\
absEnc 1\
absEncHome $gv1_Home\
cntsPerX 4096]
#gv1 part sample
#gv1 long_name gv1
#gv1 softlowerlim 0
#gv1 softupperlim 180
#gv1 home 0
cntsPerX 1\
posit_count 2]
gv1 part sample
gv1 long_name gv1
gv1 softlowerlim 0
gv1 softupperlim 180
gv1 home 0
# 1:open, 2:closed
gv1 posit_1 33468000
gv1 posit_2 33221600
# fix the motor
#gv1 fixed -1
gv1 fixed 1
# mc6: Isolation Vaue -- Axis 2, currently this Axis is set to read ONLY to read the encoder
#Motor gv2 $motor_driver_type [params \
Motor gv2 $motor_driver_type [params \
asyncqueue mc6\
host mc6-pelican\
port pmc6-pelican\
axis F\
units degrees\
hardlowerlim 0\
hardupperlim 180\
maxSpeed 30000\
maxAccel 60000\
maxDecel 60000\
stepsPerX 4096\
hardupperlim 0\
maxSpeed 0\
maxAccel 0\
maxDecel 0\
stepsPerX 1\
absEnc 1\
absEncHome $gv2_Home\
cntsPerX 4096]
#gv2 part sample
#gv2 long_name gv2
#gv2 softlowerlim 0
#gv2 softupperlim 180
#gv2 home 0
cntsPerX 1\
posit_count 2]
gv2 part sample
gv2 long_name gv2
gv2 softlowerlim 0
gv2 softupperlim 0
gv2 home 0
# 1:open, 2:closed
gv2 posit_1 33549541
gv2 posit_2 33549541
# fix the motor
#gv2 fixed -1
gv2 fixed 1
proc motor_set_sobj_attributes {} {
}