limit_axis - Dynamic range based axis limits
loadrt limit_axis [count=N|names=name1[,name2...]] [personality=P1,P2,...] |
limit_axis.c
Limit axis to
certain limits at varying inputs For example on a spindle
with C rotation, to avoid hitting a gantry when the height
is above Z-10
- Use Z axis as feedback
- Use 2 ranges (0,-10) (-10, -40)
- When Z is above 10, C rotation is limited to range 0
- When Z is below 10, C rotation is limited to range 1
Usage:
loadrt limit_axis count=3 personality=2,3,2
or
loadrt limit_axis names=limit_x,limit_y,limit_z
personality=2,3,2
The
"personality" argument defines how many ranges are
supported by each instance.
(Note that no spaces can be used in the names= and
personality= parameters)
Caveats
- Searches ranges from 0 to 9 and will take the first range
that matches
- Ranges are inclusive min_range <= feedback <=
max_range
- Max can not be less than minimum for any group
- Sticky indicates, to not check other ranges if the
feedback is still in the current range
- Enable allows for a range to be turned on/off, for cases
such as avoiding a tool changer, but allowing sometimes
limit-axis.N (requires a floating-point thread)
limit-axis.N.error-no-range bit out
error pin indicating that no range matches the fb
limit-axis.N.min-output float out
Minimum limit output
limit-axis.N.max-output float out
Maximum limit output
limit-axis.N.fb float in
Feedback pin, the value of this pin determines which range is active
limit-axis.N.current-range u32 out
Indicates which range is currently active
limit-axis.N.min-limit-MM float in (MM=00..personality)
The array of minimum limits to select from
limit-axis.N.max-limit-MM float in (MM=00..personality)
The array of macimum limits
limit-axis.N.min-range-MM float in (MM=00..personality)
Defines the range of values with which the fb is compared to set the range
limit-axis.N.max-range-MM float in (MM=00..personality)
Defines the range of values with which the fb is compared to set the range
limit-axis.N.enable-MM bit in (MM=00..personality)
Used to enable and disable a specific range
limit-axis.N.sticky-MM bit in (MM=00..personality)
Used to make specific range ’sticky’ or not
limit-axis.N.error-range-MM bit out (MM=00..personality) (default: 1)
Error bit indicating that the fb pin falls outside all ranges
limit-axis.N.error-limit-MM bit out (MM=00..personality) (default: 1)
Error bit indicating that the max limit is not larger than the min limit
Chad Woitas
GPL