Method for Zeroing a "c" axis
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 177
- Thank you received: 5
03 Sep 2024 03:53 #309251
by M4MazakUser
Method for Zeroing a "c" axis was created 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?
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.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 177
- Thank you received: 5
03 Sep 2024 04:03 #309253
by M4MazakUser
Replied by M4MazakUser on topic Method for Zeroing a "c" axis
Here's a pic!
Please Log in or Create an account to join the conversation.
04 Sep 2024 12:47 #309354
by onceloved
Replied by onceloved on topic Method for Zeroing a "c" axis
My suggestion is to use m19
Please Log in or Create an account to join the conversation.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 177
- Thank you received: 5
06 Sep 2024 07:49 #309490
by M4MazakUser
Replied by M4MazakUser on topic Method for Zeroing a "c" axis
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.
06 Sep 2024 11:43 #309496
by spumco
Replied by spumco on topic Method for Zeroing a "c" axis
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.
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.
- M4MazakUser
- Offline
- Elite Member
Less
More
- Posts: 177
- Thank you received: 5
06 Sep 2024 19:09 #309521
by M4MazakUser
Replied by M4MazakUser on topic Method for Zeroing a "c" axis
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.
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.
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.
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.
07 Sep 2024 10:26 #309558
by andypugh
Replied by andypugh on topic Method for Zeroing a "c" axis
Take a look at the "orient" HAL component. It's meant for this specific use case.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.
07 Sep 2024 10:31 #309559
by andypugh
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..
Replied by andypugh on topic Method for Zeroing a "c" axis
I don't think that this is a problem in practice, though it's definitely something to consider.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.
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.
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.
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