Homing / limits - the manual is misleading, possibly wrong
the machine is a gantry style xyyz
with shared home/min for xyy and home/max for z
This seems to be working fine, is there anything obviously wrong ?
[AXIS_X]
MIN_LIMIT = 0
MAX_LIMIT = 440
[AXIS_Y]
MIN_LIMIT = 0
MAX_LIMIT = 380
[AXIS_Z]
MIN_LIMIT = 0
MAX_LIMIT = 51
[JOINT_0]
AXIS = X
MIN_LIMIT = 0
MAX_LIMIT = 440
HOME = 1
HOME_OFFSET = -3
HOME_SEARCH_VEL = -60
HOME_LATCH_VEL = 30
HOME_SEQUENCE = 0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
[JOINT_1]
AXIS = Y
MIN_LIMIT = 0
MAX_LIMIT = 380
HOME = 1
HOME_OFFSET = -3
HOME_SEARCH_VEL = -60
HOME_LATCH_VEL = 30
HOME_SEQUENCE = -1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
[JOINT_2]
AXIS = Y
MIN_LIMIT = 0
MAX_LIMIT = 380
HOME = 1
HOME_OFFSET = -3
HOME_SEARCH_VEL = -60
HOME_LATCH_VEL = 30
HOME_SEQUENCE = -1
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
[JOINT_3]
AXIS = Z
MIN_LIMIT = 0
MAX_LIMIT = 51
HOME = 49
HOME_OFFSET = 53
HOME_SEARCH_VEL = 60
HOME_LATCH_VEL = -30
HOME_SEQUENCE = 2
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
Please Log in or Create an account to join the conversation.
For instance in joint 0 (X axis I think) :
you designate that x is between 0 and 440
you are using a shared limit/home for the negative limit so when your home switch trips the machine should be at zero but with HOME_OFFSET you tell linuxcnc that is is actually at -3
3mm isn't much (about 1/8 inch) but I bet it's enough to trip the limit switches.
Chris
Please Log in or Create an account to join the conversation.
And if you can trip a hard limit after homing, something is wrong.
Please Log in or Create an account to join the conversation.
but I have HOME_OFFSET = -3
when I set it to 3 I get a limit switch error during homing
I can do the full travel and it stops at the soft limit before it hits my end stop
it seams like setting the HOME_OFFSET = -3 is saying that the limit switch location is at -3 so it hits the switch homes to 1 then can never go below 0 because that is the hard limit negative of the machine
[JOINT_0]
AXIS = X
MIN_LIMIT = 0 (hard limit min)
MAX_LIMIT = 440 (hard limit max)
HOME = 0 (moves machine to this position after homing )
HOME_OFFSET = -3 (distance to offset machine coordinates by, sets machine 0 at that point)
HOME_SEARCH_VEL = -60 (search towards the min)
HOME_LATCH_VEL = 30 (latch toward positive and back)
HOME_SEQUENCE = 0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
Please Log in or Create an account to join the conversation.
technically MIN_LIMIT and MAX_LIMIT set the soft limits not the hard limits.MIN_LIMIT = 0 (hard limit min)
MAX_LIMIT = 440 (hard limit max)
Linuxcnc doesn't know anything about hard limits location, just to disable the amps.
I can do the full travel and it stops at the soft limit before it hits my end stop
You say end stops - I assume you mean limit switch.
It's hard for me to say why this still works without seeing everything.
The differences between switch trip point and measurement of actual t trip-to-trip travel vrs what is entered into linuxcnc could make this work satisfactory in practice. As I said 3mm isn't much.
it seams like setting the HOME_OFFSET = -3 is saying that the limit switch location is at -3 so it hits the switch homes to 1 then can never go below 0 because that is the hard limit negative of the machine
Well almost it hits the home switch tells linuxcnc this is -3 then moves to home position (0 from your post there)
meaning you are 3mm from your home/limit switch and your position is 0
meaning you will always be 3mm away from the home/limit switch when it stops at the soft limit, which you set at 0
To see what i mean set your HOME_OFFSET to something easy to see say -25mm
Then you I think you will see your operating limits have shifted 25mm away from one limit and 25mm past the other.
Chris
Please Log in or Create an account to join the conversation.
I was only trying to confirm that the docs are right and think how we could improve them. ( I in fact already added a little bi to the docs about machine assumtions that homing makes)
Chris
Please Log in or Create an account to join the conversation.
if I just have a home/min limit switch I had assumed (probably bad on my part) that I would not want to be able to get too close to the limit switch during travel, which means I need to "lose" some amount of travel. I looked at it as the overrun space.
the link is super helpful
Hard-limits = physical end stops in my case (the orange bits stop the bearing blocks from coming off the rails)
Please Log in or Create an account to join the conversation.
so HOME_OFFSET= -3 sets 0 3mm from the limit switch
is that not a reasonable choice ?
I know i have to add just the travel to make sure I can not hit the end stop because I am loosing 3mm form the total travel
C
Please Log in or Create an account to join the conversation.
I would try this:
MIN_LIMIT = -.01
HOME = 0
that should get you all the travel you can on the minimum side.
Then I would temporarily set MAX_LIMIT = 450
Then home the machine
it should be just off the negative limts and absolute machine position (not user coordinates ) should be zero
now jog until you hit the max limit switch or if you don't have a max limit switch then until you get maximum travel.
now check the machine position it will be close to 440 but probably a bit more.
If you you have a a max limit switch it needs to be slightly under this number.
say like .01 under
That will be your MAX_LIMIT in your INI.
And that should give you absolute maximum travel.
once linuxcnc is homed it's smart enough to de-accelerate before it hits the soft limits -so it will always stop right on the soft limit.
Of course I would test everything before I tried rapid-ing into the max soft limit.
Chris
Please Log in or Create an account to join the conversation.