Method for Zeroing a "c" axis

More
03 Sep 2024 03:53 #309251 by M4MazakUser
So as far as I can tell there is a few ways to zero out a c axis that can be disengaged. 
1, engage the axis drive then drive the spindle around till the spindle reaches its encoders 'z' point.
2, engage the axis drive then re-zero the c axis (it has a prox) then reading both the spindle position and the current position adjust the c axis position. - the c axis position could be set on startup. 
3, stuff around and get spindle alignment working (m19) - this is no easy task using modbus for spindle drive.  Then drive both to a point where the gears mesh.

What are some solutions people out there have used?

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

More
03 Sep 2024 04:03 #309253 by M4MazakUser
Here's a pic!
Attachments:

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

More
04 Sep 2024 12:47 #309354 by onceloved
My suggestion is to use m19

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

More
06 Sep 2024 07:49 #309490 by M4MazakUser
After a fair bit of research,  looks like it's easy enough to incorporate into the m106 code that will engage the c axis do some math to read the spindle position and do a g10 l20 to set the c axis  in reference to the spindle encoder.  I will have to work out how to subtract the whole number from the spindle position and just use what's after the decimal place to get a reference to 360degrees. - more reading....

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

More
06 Sep 2024 11:43 #309496 by spumco
My commercial machine re-homes the C-axis each time it's engaged.  Homing is to the 1:1 spindle encoder index.

My LCNC machine uses caxis.comp (Andy Pugh wrote it) and that also re-homes each time C-axis is engaged.

If you have any missed encoder pulses or a little noise, relying on an initial homing and then math to G10 the C-axis position would result in C-axis misalignment between C-axis engagements.  Prolly not much at first, but imagine a long run of parts if you've got a bar feeder.

I think taking the slight time hit homing would cost is worth it to avoid an accumulating error.

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

More
06 Sep 2024 19:09 #309521 by M4MazakUser
Yeah, I'm just using a cheap stepper drive but it does have an encoder built in so it dosent loose steps, I ran it yesterday for hours running in the gear teeth drive. And the gear engage command would do the g10 l20, so it should be accurate. I'll be testing this next week.
The bit that has me currently is converting 8.5674 etc to eight point five six seven four revolutions, and getting rid of the eight.

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

More
06 Sep 2024 20:37 #309528 by PCW
Replied by PCW on topic Method for Zeroing a "c" axis
If you have a combined C axis/spindle, I think the position does really need to be
reset when going back into C mode (Ideally by homing to index or absolute position)
because if you simply do math on the accumulated spindle mode position, you will
eventually lose  position resolution as the position gets huge.

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

More
07 Sep 2024 10:26 #309558 by andypugh

I will have to work out how to subtract the whole number from the spindle position and just use what's after the decimal place to get a reference to 360degrees. - more reading....

Take a look at the "orient" HAL component. It's meant for this specific use case. 

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

More
07 Sep 2024 10:31 #309559 by andypugh

If you have a combined C axis/spindle, I think the position does really need to be
reset when going back into C mode (Ideally by homing to index or absolute position)
because if you simply do math on the accumulated spindle mode position, you will
eventually lose  position resolution as the position gets huge.

I don't think that this is a problem in practice, though it's definitely something to consider. 

Double-precision float has at least 15 significant digits. If we spend 6 of those to measure to a millionth of a turn, that still leaves 10 to hold the full turns. At 10,000 rpm that is 2000 hours of operation before the sub-turn accuracy degrades to 1/100,000 of a turn. 

Note that that is 2000 hours between encoder resets..
 

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

More
07 Sep 2024 14:32 #309574 by PCW
Replied by PCW on topic Method for Zeroing a "c" axis
I have actually seen this issue with LinuxCNC, but it may only have to do
with displayed numbers. I think many displayed floats are single precision.

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

Time to create page: 0.118 seconds
Powered by Kunena Forum