calibrate S3 and S4, move to cartesian coordinates, add virtual slit motor constructors
r1667 | dcl | 2007-03-19 14:06:13 +1100 (Mon, 19 Mar 2007) | 2 lines
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# $Revision: 1.11 $
|
# $Revision: 1.12 $
|
||||||
# $Date: 2007-03-15 23:20:37 $
|
# $Date: 2007-03-19 03:06:13 $
|
||||||
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
# Author: Ferdi Franceschini (ffr@ansto.gov.au)
|
||||||
# Last revision by: $Author: dcl $
|
# Last revision by: $Author: dcl $
|
||||||
|
|
||||||
@@ -54,6 +54,11 @@ set ss1v_Gap 205.9
|
|||||||
set ss2h_Gap 51.3
|
set ss2h_Gap 51.3
|
||||||
set ss2v_Gap 203.8
|
set ss2v_Gap 203.8
|
||||||
|
|
||||||
|
set ss3h_Gap 7.5
|
||||||
|
set ss3v_Gap 28.5
|
||||||
|
set ss4h_Gap 12.0
|
||||||
|
set ss4v_Gap 24.0
|
||||||
|
|
||||||
set ss1r_Home [expr $ss1h_Gap/2*$slitStepRate]
|
set ss1r_Home [expr $ss1h_Gap/2*$slitStepRate]
|
||||||
set ss1l_Home [expr $ss1h_Gap/2*$slitStepRate]
|
set ss1l_Home [expr $ss1h_Gap/2*$slitStepRate]
|
||||||
set ss1u_Home [expr $ss1v_Gap/2*$slitStepRate]
|
set ss1u_Home [expr $ss1v_Gap/2*$slitStepRate]
|
||||||
@@ -63,6 +68,15 @@ set ss2l_Home [expr $ss2h_Gap/2*$slitStepRate]
|
|||||||
set ss2u_Home [expr $ss2v_Gap/2*$slitStepRate]
|
set ss2u_Home [expr $ss2v_Gap/2*$slitStepRate]
|
||||||
set ss2d_Home [expr $ss2v_Gap/2*$slitStepRate]
|
set ss2d_Home [expr $ss2v_Gap/2*$slitStepRate]
|
||||||
|
|
||||||
|
set ss3r_Home [expr $ss3h_Gap/2*$slitStepRate]
|
||||||
|
set ss3l_Home [expr $ss3h_Gap/2*$slitStepRate]
|
||||||
|
set ss3u_Home [expr $ss3v_Gap/2*$slitStepRate]
|
||||||
|
set ss3d_Home [expr $ss3v_Gap/2*$slitStepRate]
|
||||||
|
set ss4r_Home [expr $ss4h_Gap/2*$slitStepRate]
|
||||||
|
set ss4l_Home [expr $ss4h_Gap/2*$slitStepRate]
|
||||||
|
set ss4u_Home [expr $ss4v_Gap/2*$slitStepRate]
|
||||||
|
set ss4d_Home [expr $ss4v_Gap/2*$slitStepRate]
|
||||||
|
|
||||||
#Default upper and lower ranges for vertical slits
|
#Default upper and lower ranges for vertical slits
|
||||||
set vertSlitHome 0
|
set vertSlitHome 0
|
||||||
set vertSlitLowRange 25
|
set vertSlitLowRange 25
|
||||||
@@ -345,7 +359,8 @@ Motor ss1d DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss1d_Home]
|
||||||
ss1d softlowerlim -25
|
ss1d softlowerlim -25
|
||||||
ss1d softupperlim 95
|
ss1d softupperlim 95
|
||||||
ss1d home 0
|
ss1d home 0
|
||||||
@@ -360,7 +375,8 @@ Motor ss1u DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss1u_Home]
|
||||||
ss1u softlowerlim -25
|
ss1u softlowerlim -25
|
||||||
ss1u softupperlim 95
|
ss1u softupperlim 95
|
||||||
ss1u home 0
|
ss1u home 0
|
||||||
@@ -375,7 +391,8 @@ Motor ss1l DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss1l_Home]
|
||||||
ss1l softlowerlim -25
|
ss1l softlowerlim -25
|
||||||
ss1l softupperlim 25
|
ss1l softupperlim 25
|
||||||
ss1l home 0
|
ss1l home 0
|
||||||
@@ -390,7 +407,8 @@ Motor ss1r DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss1r_Home]
|
||||||
ss1r softlowerlim -25
|
ss1r softlowerlim -25
|
||||||
ss1r softupperlim 25
|
ss1r softupperlim 25
|
||||||
ss1r home 0
|
ss1r home 0
|
||||||
@@ -405,7 +423,8 @@ Motor ss2d DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss2d_Home]
|
||||||
ss2d softlowerlim -25
|
ss2d softlowerlim -25
|
||||||
ss2d softupperlim 95
|
ss2d softupperlim 95
|
||||||
ss2d home 0
|
ss2d home 0
|
||||||
@@ -420,7 +439,8 @@ Motor ss2u DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss2u_Home]
|
||||||
ss2u softlowerlim -25
|
ss2u softlowerlim -25
|
||||||
ss2u softupperlim 95
|
ss2u softupperlim 95
|
||||||
ss2u home 0
|
ss2u home 0
|
||||||
@@ -435,7 +455,8 @@ Motor ss2l DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss2l_Home]
|
||||||
ss2l softlowerlim -25
|
ss2l softlowerlim -25
|
||||||
ss2l softupperlim 25
|
ss2l softupperlim 25
|
||||||
ss2l home 0
|
ss2l home 0
|
||||||
@@ -450,7 +471,8 @@ Motor ss2r DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss2r_Home]
|
||||||
ss2r softlowerlim -25
|
ss2r softlowerlim -25
|
||||||
ss2r softupperlim 25
|
ss2r softupperlim 25
|
||||||
ss2r home 0
|
ss2r home 0
|
||||||
@@ -465,7 +487,8 @@ Motor ss3d DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss3d_Home]
|
||||||
ss3d softlowerlim -25
|
ss3d softlowerlim -25
|
||||||
ss3d softupperlim 95
|
ss3d softupperlim 95
|
||||||
ss3d home 0
|
ss3d home 0
|
||||||
@@ -480,7 +503,8 @@ Motor ss3u DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss3u_Home]
|
||||||
ss3u softlowerlim -25
|
ss3u softlowerlim -25
|
||||||
ss3u softupperlim 95
|
ss3u softupperlim 95
|
||||||
ss3u home 0
|
ss3u home 0
|
||||||
@@ -495,7 +519,8 @@ Motor ss3l DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss3l_Home]
|
||||||
ss3l softlowerlim -25
|
ss3l softlowerlim -25
|
||||||
ss3l softupperlim 25
|
ss3l softupperlim 25
|
||||||
ss3l home 0
|
ss3l home 0
|
||||||
@@ -510,7 +535,8 @@ Motor ss3r DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss3r_Home]
|
||||||
ss3r softlowerlim -25
|
ss3r softlowerlim -25
|
||||||
ss3r softupperlim 25
|
ss3r softupperlim 25
|
||||||
ss3r home 0
|
ss3r home 0
|
||||||
@@ -525,7 +551,8 @@ Motor ss4d DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss4d_Home]
|
||||||
ss4d softlowerlim -25
|
ss4d softlowerlim -25
|
||||||
ss4d softupperlim 95
|
ss4d softupperlim 95
|
||||||
ss4d home 0
|
ss4d home 0
|
||||||
@@ -540,7 +567,8 @@ Motor ss4u DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss4u_Home]
|
||||||
ss4u softlowerlim -25
|
ss4u softlowerlim -25
|
||||||
ss4u softupperlim 95
|
ss4u softupperlim 95
|
||||||
ss4u home 0
|
ss4u home 0
|
||||||
@@ -555,7 +583,8 @@ Motor ss4l DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX $slitStepRate\
|
||||||
|
motorHome $ss4l_Home]
|
||||||
ss4l softlowerlim -25
|
ss4l softlowerlim -25
|
||||||
ss4l softupperlim 25
|
ss4l softupperlim 25
|
||||||
ss4l home 0
|
ss4l home 0
|
||||||
@@ -570,7 +599,8 @@ Motor ss4r DMC2280 [params \
|
|||||||
maxSpeed 1\
|
maxSpeed 1\
|
||||||
maxAccel 1\
|
maxAccel 1\
|
||||||
maxDecel 1\
|
maxDecel 1\
|
||||||
stepsPerX $slitStepRate]
|
stepsPerX -$slitStepRate\
|
||||||
|
motorHome $ss4r_Home]
|
||||||
ss4r softlowerlim -25
|
ss4r softlowerlim -25
|
||||||
ss4r softupperlim 25
|
ss4r softupperlim 25
|
||||||
ss4r home 0
|
ss4r home 0
|
||||||
@@ -616,6 +646,72 @@ ss4r home 0
|
|||||||
# return [lindex $l 1]
|
# return [lindex $l 1]
|
||||||
#}
|
#}
|
||||||
|
|
||||||
|
if {1} {
|
||||||
|
proc get_gap_width {m1 m2} {
|
||||||
|
return [expr [SplitReply [$m1]] - [SplitReply [$m2]]]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc set_gap_width {m1 m2 val} {
|
||||||
|
set currentWidth [expr [SplitReply [$m1]] - [SplitReply [$m2]]]
|
||||||
|
set diff [expr $val - $currentWidth]
|
||||||
|
set newD1R [expr [SplitReply [$m1]] + $diff/2]
|
||||||
|
set newD1L [expr [SplitReply [$m2]] - $diff/2]
|
||||||
|
return "$m1=$newD1R,$m2=$newD1L"
|
||||||
|
}
|
||||||
|
|
||||||
|
proc get_gap_offset {m1 m2} {
|
||||||
|
set S1 [SplitReply [$m1]]
|
||||||
|
set S2 [SplitReply [$m2]]
|
||||||
|
return [ expr ($S1 + $S2)/2.0 ]
|
||||||
|
}
|
||||||
|
|
||||||
|
proc set_gap_offset {m1 m2 val} {
|
||||||
|
set S1 [SplitReply [$m1]]
|
||||||
|
set S2 [SplitReply [$m2]]
|
||||||
|
set currentoffset [expr ($S1 + $S2)/2.0 ]
|
||||||
|
set diff [expr $val - $currentoffset]
|
||||||
|
set newD1R [expr $S1 + $diff/2]
|
||||||
|
set newD1L [expr $S2 + $diff/2]
|
||||||
|
return "$m1=$newD1R,$m2=$newD1L"
|
||||||
|
}
|
||||||
|
|
||||||
|
# make_gap_motors virt_width_motor virt_offset_motor real_high_motor real_low_motor
|
||||||
|
proc make_gap_motors {vm1 vm2 m1 m2} {
|
||||||
|
uplevel #0 "proc get_$vm1 {} { get_gap_width $m1 $m2 }"
|
||||||
|
set v {$var}
|
||||||
|
set s "proc set_$vm1 {var} { set_gap_width $m1 $m2 $v }"
|
||||||
|
puts $s
|
||||||
|
uplevel #0 $s
|
||||||
|
uplevel #0 "MakeConfigurableMotor $vm1"
|
||||||
|
uplevel #0 "$vm1 readscript get_$vm1"
|
||||||
|
uplevel #0 "$vm1 drivescript set_$vm1"
|
||||||
|
uplevel #0 "publish get_$vm1 user"
|
||||||
|
uplevel #0 "publish set_$vm1 user"
|
||||||
|
|
||||||
|
uplevel #0 "proc get_$vm2 {} { get_gap_offset $m1 $m2 }"
|
||||||
|
set v {$var}
|
||||||
|
set s "proc set_$vm2 {var} { set_gap_offset $m1 $m2 $v }"
|
||||||
|
puts $s
|
||||||
|
uplevel #0 $s
|
||||||
|
uplevel #0 "MakeConfigurableMotor $vm2"
|
||||||
|
uplevel #0 "$vm2 readscript get_$vm2"
|
||||||
|
uplevel #0 "$vm2 drivescript set_$vm2"
|
||||||
|
uplevel #0 "publish get_$vm2 user"
|
||||||
|
uplevel #0 "publish set_$vm2 user"
|
||||||
|
}
|
||||||
|
|
||||||
|
make_gap_motors ss1vg ss1vo ss1u ss1d
|
||||||
|
make_gap_motors ss1hg ss1ho ss1r ss1l
|
||||||
|
|
||||||
|
make_gap_motors ss2vg ss2vo ss2u ss2d
|
||||||
|
make_gap_motors ss2hg ss2ho ss2r ss2l
|
||||||
|
|
||||||
|
make_gap_motors ss3vg ss3vo ss3u ss3d
|
||||||
|
make_gap_motors ss3hg ss3ho ss3r ss3l
|
||||||
|
|
||||||
|
make_gap_motors ss4vg ss4vo ss4u ss4d
|
||||||
|
make_gap_motors ss4hg ss4ho ss4r ss4l
|
||||||
|
} else {
|
||||||
#--------------------------------------------------------
|
#--------------------------------------------------------
|
||||||
proc ss1widthscript {val} {
|
proc ss1widthscript {val} {
|
||||||
set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]]
|
set currentWidth [expr [SplitReply [ss1r]] + [SplitReply [ss1l]]]
|
||||||
@@ -839,20 +935,20 @@ ss3vg readscript ss3readheight
|
|||||||
|
|
||||||
#--------------------------------------------------------
|
#--------------------------------------------------------
|
||||||
proc ss3horoffsetscript {val} {
|
proc ss3horoffsetscript {val} {
|
||||||
set sr [splitreply [ss3r]]
|
set SR [SplitReply [ss3r]]
|
||||||
set sl [splitreply [ss3l]]
|
set SL [SplitReply [ss3l]]
|
||||||
set currentoffset [ expr $sr - ($sr + $sl)/2.0 ]
|
set currentoffset [ expr $SR - ($SR + $SL)/2.0 ]
|
||||||
set diff [expr $val - $currentoffset]
|
set diff [expr $val - $currentoffset]
|
||||||
set newd1r [expr $sr + $diff]
|
set newd1r [expr $SR + $diff]
|
||||||
set newd1l [expr $sl - $diff]
|
set newd1l [expr $SL - $diff]
|
||||||
return "ss3r=$newd1r,ss3l=$newd1l"
|
return "ss3r=$newd1r,ss3l=$newd1l"
|
||||||
}
|
}
|
||||||
publish ss3horoffsetscript user
|
publish ss3horoffsetscript user
|
||||||
|
|
||||||
#-------------------------------------------------------
|
#-------------------------------------------------------
|
||||||
proc ss3readhoroffset {} {
|
proc ss3readhoroffset {} {
|
||||||
set sr [splitreply [ss3r]]
|
set SR [SplitReply [ss3r]]
|
||||||
return [ expr $sr - ($sr + [splitreply [ss3l]])/2.0 ]
|
return [ expr $SR - ($SR + [SplitReply [ss3l]])/2.0 ]
|
||||||
}
|
}
|
||||||
publish ss3readhoroffset user
|
publish ss3readhoroffset user
|
||||||
|
|
||||||
@@ -929,20 +1025,20 @@ ss4vg readscript ss4readheight
|
|||||||
|
|
||||||
#--------------------------------------------------------
|
#--------------------------------------------------------
|
||||||
proc ss4horoffsetscript {val} {
|
proc ss4horoffsetscript {val} {
|
||||||
set sr [splitreply [ss4r]]
|
set SR [SplitReply [ss4r]]
|
||||||
set sl [splitreply [ss4l]]
|
set SL [SplitReply [ss4l]]
|
||||||
set currentoffset [ expr $sr - ($sr + $sl)/2.0 ]
|
set currentoffset [ expr $SR - ($SR + $SL)/2.0 ]
|
||||||
set diff [expr $val - $currentoffset]
|
set diff [expr $val - $currentoffset]
|
||||||
set newd1r [expr $sr + $diff]
|
set newd1r [expr $SR + $diff]
|
||||||
set newd1l [expr $sl - $diff]
|
set newd1l [expr $SL - $diff]
|
||||||
return "ss4r=$newd1r,ss4l=$newd1l"
|
return "ss4r=$newd1r,ss4l=$newd1l"
|
||||||
}
|
}
|
||||||
publish ss4horoffsetscript user
|
publish ss4horoffsetscript user
|
||||||
|
|
||||||
#-------------------------------------------------------
|
#-------------------------------------------------------
|
||||||
proc ss4readhoroffset {} {
|
proc ss4readhoroffset {} {
|
||||||
set sr [splitreply [ss4r]]
|
set SR [SplitReply [ss4r]]
|
||||||
return [ expr $sr - ($sr + [splitreply [ss4l]])/2.0 ]
|
return [ expr $SR - ($SR + [SplitReply [ss4l]])/2.0 ]
|
||||||
}
|
}
|
||||||
publish ss4readhoroffset user
|
publish ss4readhoroffset user
|
||||||
|
|
||||||
@@ -974,3 +1070,4 @@ publish ss4readvertoffset user
|
|||||||
MakeConfigurableMotor ss4vo
|
MakeConfigurableMotor ss4vo
|
||||||
ss4vo drivescript ss4vertoffsetscript
|
ss4vo drivescript ss4vertoffsetscript
|
||||||
ss4vo readscript ss4readvertoffset
|
ss4vo readscript ss4readvertoffset
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user