Use fwd_enc_lim for SICS motor lower-limit when positive steps drive an axis in the negative direction for our standard coordinate system.
This commit is contained in:
@ -93,7 +93,11 @@ proc gen_attval {mot att} {
|
|||||||
if [info exists ::${mot}_attarr(absenchome)] {
|
if [info exists ::${mot}_attarr(absenchome)] {
|
||||||
set enc_home_val [expr double([set ::${mot}_attarr(absenchome)])]
|
set enc_home_val [expr double([set ::${mot}_attarr(absenchome)])]
|
||||||
} else {
|
} else {
|
||||||
set enc_home_val [expr double([set ::${mot}_encatts(rev_enc_lim)])]
|
if {$sign < 0} {
|
||||||
|
set enc_home_val [expr double([set ::${mot}_encatts(fwd_enc_lim)])]
|
||||||
|
} else {
|
||||||
|
set enc_home_val [expr double([set ::${mot}_encatts(rev_enc_lim)])]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if [info exists ::${mot}_attarr(home)] {
|
if [info exists ::${mot}_attarr(home)] {
|
||||||
set home_val [expr double([set ::${mot}_attarr(home)])]
|
set home_val [expr double([set ::${mot}_attarr(home)])]
|
||||||
@ -103,7 +107,7 @@ proc gen_attval {mot att} {
|
|||||||
switch $att {
|
switch $att {
|
||||||
"absenchome" {
|
"absenchome" {
|
||||||
if [info exists ::${mot}_encatts(rev_enc_lim)] {
|
if [info exists ::${mot}_encatts(rev_enc_lim)] {
|
||||||
return [set ::${mot}_encatts(rev_enc_lim)]
|
return $enc_home_val
|
||||||
} else {
|
} else {
|
||||||
return "NOATT"
|
return "NOATT"
|
||||||
}
|
}
|
||||||
@ -113,7 +117,11 @@ proc gen_attval {mot att} {
|
|||||||
"maxdecel" {return 1}
|
"maxdecel" {return 1}
|
||||||
"rev_lim" {
|
"rev_lim" {
|
||||||
if { [info exists ::${mot}_encatts(rev_enc_lim)] && [info exists ::${mot}_encatts(cnts_per_x)] } {
|
if { [info exists ::${mot}_encatts(rev_enc_lim)] && [info exists ::${mot}_encatts(cnts_per_x)] } {
|
||||||
return [expr {$sign * ($rev_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
if {$sign < 0} {
|
||||||
|
return [expr {($fwd_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||||
|
} else {
|
||||||
|
return [expr {($rev_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
@ -121,7 +129,11 @@ proc gen_attval {mot att} {
|
|||||||
"home" {return 0}
|
"home" {return 0}
|
||||||
"fwd_lim" {
|
"fwd_lim" {
|
||||||
if { [info exists ::${mot}_encatts(fwd_enc_lim)] && [info exists ::${mot}_encatts(cnts_per_x)] } {
|
if { [info exists ::${mot}_encatts(fwd_enc_lim)] && [info exists ::${mot}_encatts(cnts_per_x)] } {
|
||||||
return [expr {$sign * ($fwd_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
if {$sign < 0} {
|
||||||
|
return [expr {($rev_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||||
|
} else {
|
||||||
|
return [expr {($fwd_enc_lim_val - $enc_home_val) / $cnts_per_x_val + $home_val}]
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user