Homing procedure for axis with multiple slaves

More
6 years 7 months ago - 6 years 7 months ago #160731 by piter
Hi all,

I have one axis (let's call it Z) driven by four motors, and I am starting my way to implement it's homing procedure.
The result I want to obtain includes the following steps:
- drive all motors simultaneously to a certain position at full speed (i.e. z = 10)
- drive all motors simultaneously at reduced speed (i.e. 20%) until the first limit switch is triggered
- loop through the rest of the motors and drive them one by one until the respective switch is triggered
- finally, move all the motors simultaneously to position z = 2 and home again (ideally all the switches should now be triggered at the same time)

I'm now starting some experiments and I will post here (hopefully) results and comments.

As I see it, there are two ways to get there:
1) use the same pins for all the motors (step/dir) and use the Enable/Disable pin of each drive to stop it once the switch is triggered (could lead to issues if you were homing a vertical axis and using ballscrews, but it's not my case)
2) assign each motor to an axis and slave them somehow (I am still new to the linuxCnc universe), with the inherent drawback of using 4 axis (out of 9) for just 1 DOF

I will start with strategy number 1.

One possibly relevant comment: the setup I'm using is run through mesa boards 5i25+7i76

If you have previous experience, tips or any advice you would like to share, please do so!

Pietro
Last edit: 6 years 7 months ago by piter. Reason: Added setup description

Please Log in or Create an account to join the conversation.

More
6 years 7 months ago #160734 by bbsr_5a
if you try to setup multiple spindle heads as Z you shoudt use the spindle component to place the ofset to the given position

the most comen way if this is true you use a Coordinate system for eatch spindle

WHY 4 motors and what are they pulling as it is only one Axis you call

Please Log in or Create an account to join the conversation.

More
6 years 7 months ago - 6 years 7 months ago #160737 by Clive S
I think you could achieve this using 2.8 with axis and joints.

So one Z axis with 4 joints (=motors) . In the ini file make sure all the joint sequence to be the same :-

HOME = 30 where you want home to be
HOME_OFFSET = 0 use this for final position for each motor switch
HOME_SEARCH_VEL = -50 this is the speed for the search to home
HOME_LATCH_VEL = 1 speed for the latch
HOME_FINAL_VEL = 50 speed to the final home position

HOME_SEQUENCE = -1 make sure all the 4 joints have the same -ve number so that they all home together

HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True
Last edit: 6 years 7 months ago by Clive S.
The following user(s) said Thank You: piter

Please Log in or Create an account to join the conversation.

More
6 years 7 months ago #160749 by rodw

Clive S wrote: I think you could achieve this using 2.8 with axis and joints.

So one Z axis with 4 joints (=motors) . In the ini file make sure all the joint sequence to be the same :-

HOME = 30 where you want home to be
HOME_OFFSET = 0 use this for final position for each motor switch
HOME_SEARCH_VEL = -50 this is the speed for the search to home
HOME_LATCH_VEL = 1 speed for the latch
HOME_FINAL_VEL = 50 speed to the final home position

HOME_SEQUENCE = -1 make sure all the 4 joints have the same -ve number so that they all home together

HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = True


X 2. but each joint (motor) needs its own home switch. It should be all supported out of the box in V 2.8 and above. But if you had say a gantry machine with 2 motors each side, probably common one home switch to both motors on the same side. That way they should home in unison.

Please Log in or Create an account to join the conversation.

More
6 years 7 months ago #160750 by rodw
Actually, this will be a bit different to how you describe but it will go something like this.

All joints will have seperate stepgens from your mesa card.
All joints travel at any speed you set until the first joint hits its home switch then wait until the other joints catch up.
Move off the home switches in unison at a slower speed you set
move to the home switches in unison again at your final homing velocity which you set.
Move to the final home position.
You adjust for anything out of square using a HOME_OFFSET in the ini file on each joint and this is accounted for in that move to final home.

See homing configuration in the 2.8 and master docs.

The only thing I found homing at high speed is that the joints need room to almost coast to a stop during homing for maximum accuracy so you need to allow for this when setting your home switch position so you don't hit any limits.

Also once triggered, a home switch must stay triggered all the way to the limits so that if the machine is homed with limit switches triggered, Linuxcnc knows which way to move off the limits before the homing sequence commences.

Please Log in or Create an account to join the conversation.

More
6 years 7 months ago - 6 years 7 months ago #160752 by Clive S

The only thing I found homing at high speed is that the joints need room to almost coast to a stop during homing for maximum accuracy so you need to allow for this when setting your home switch position so you don't hit any limits.

Rod I think I have to disagree. I have used gantry homing on several machines. the HOME_SEARCH_VEL is there for that reason.
so you don't try to home at max speed..
.

Also once triggered, a home switch must stay triggered all the way to the limits so that if the machine is homed with limit switches triggered, Linuxcnc knows which way to move off the limits before the homing sequence commences.


The HOME_LATCH_VEL with the correct sign will back off the switch and thus be triggered but not active. I don't use any long slides to keep it active
.
I actually started a post in 2013 forum.linuxcnc.org/forum/49-basic-config...with-x-axis-2-joints before this all came into linuxcnc When I look back on it a lot has changed with linuxcnc :)
Last edit: 6 years 7 months ago by Clive S.

Please Log in or Create an account to join the conversation.

Time to create page: 0.756 seconds
Powered by Kunena Forum