XZC Lathe Rotational feed rate - Kinematics?

More
07 Jun 2015 07:07 #59553 by cts1085
I am running LinuxCNC 2.5.4 and successfully have configured a XZC lathe - the X axis is from center to the operator, the Z axis is from the headstock to the tailstock and C rotates around the Z axis.

My question is one of feed rates. When I am operating in the X plane and milling the end of a piece, when i move from X=50, C=0 to X=100, C=0 the feed works as expected. when I move from X=50, C=0 to X=50, C=20 at the same feed rate it progresses MUCH faster probably due to the feed rate being simply in degrees a minute. Is there a way to adjust/configure the kinematics to take into consideration the current X value and compute the arc feed rate during rotation to be the same as if there was no rotation?

Is the new version of 2.6.8 any better in this regards (i.e. should I take the trouble to upgrade?)

All thoughts and suggestions would be welcome. Thank you!
-Tom

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

More
07 Jun 2015 20:47 #59578 by andypugh

Is there a way to adjust/configure the kinematics to take into consideration the current X value and compute the arc feed rate during rotation to be the same as if there was no rotation?


This isn't really a job for kinematics (and no, nothing has changed in newer releases)

The motion control system has no real way to know how long the path defined by a combined linear and radial move is. There is no way to tell if your X value starts at the origin or the material surface, for example. You might know, and it might always be the same way, but there is no means to pass that to the motion controller, and making assumptions would be wrong as often as right. Your lathe will always have X = 0 at the rotation axis, but an engraver engraving onto cylindrical parts would always have Z=0 at the material surface.

The solution is to work out the feed rates at the G-code level (or earlier) and to then use the "inverse time" feed mode to tell the motion controller how long the move should take in the time domain.

Inverse time feed is a bit strange because higher numbers move faster.
www.linuxcnc.org/docs/html/gcode/gcode.h...sec:G93-G94-G95-Mode

It is a bit painful, but would be amenable to an input filter if your system is always set up with X=0 at the rotation axis.
www.linuxcnc.org/docs/html/config/ini_co...l#sub:FILTER-Section

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

More
07 Jun 2015 21:55 #59581 by cts1085
Andy, Thank you for your thoughts. Yes the X=0 always in my configuration being a lathe.

I will look into this - what is weird is that depending on the move command I am seeing different interpretations of the feed rate.

for example:

F2
G1 X42.003 C54.000 Z59.000
G1 X42.003 C56.000 Z59.000

Moves quickly

F2
G1 X42.003 C54.000 Z59.000
G1 C56.000

Moves very slowly.

I am wondering why this is happening...

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

More
07 Jun 2015 22:09 #59583 by cts1085
I just upgraded to 2.6.8 with my simulator and I am seeing the same behavior even without the z axis directive.

F2
g1 C250.00 X54.00
g1 C255.00 X54.00 (Fast)
g1 C260.00 (Slow)

Interesting...

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

More
07 Jun 2015 22:13 #59584 by cts1085
Sorry - more information. Maybe this is my own doing???

When the moves are long - the behavior seems to be as expected.
When the moves are short - the move is much faster - is this a situation where the move is so short that the acceleration / deceleration exceeds the feed rate?

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

More
07 Jun 2015 22:17 #59585 by cts1085
Sorry for so many posts - just trying to be specific...

The following is interesting

F2
G1 C250.0 X54.0
G1 C255.0 X54.0 (Slow as expected)
G1 C257.5 X54.01 (Fast- so when moving in multiple axis it seems to run much faster???)

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

More
07 Jun 2015 22:17 #59586 by andypugh

is this a situation where the move is so short that the acceleration / deceleration exceeds the feed rate?


I don't think that there should be such a situation. Short moves without time to accelerate should be slower, not faster.

In a pure rotary move the current F-rate is interpreted to be degrees per minute so will typically be slow.
If there is a linear move then the F-word is interpreted as mm/min or in/min and the rotary axis moves at the speed necessary to reach the end point at the same time as the linear move.

I think that that is all that you are seeing.

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

More
07 Jun 2015 22:22 #59587 by cts1085
Andy, I think this makes sense.
So when the linear move is a fraction of a MM the rotational speed will increase (or decrease) so that the linear move happens in the specified feed rate.

Interesting - so the system is then running at potentially the maximum rotational speed to make sure it ends up as close as possible to the linear feed rate.

Is this true with inverse time as well?

Thank you for your patience in responding...
-Tom

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

More
07 Jun 2015 22:26 #59588 by andypugh

Is this true with inverse time as well?


Yes, but it won't look that way.

If you are in inverse time mode and program F30 then the move will take 2 seconds no matter how long it is.
So, as you reduce the length of the linear move the linear feed rate will reduce to still take 2 seconds.

The rotary move will still be set at a rate to finish at the same time as the linear move, but in inverse-time mode you won't see tiny linear moves making very fast rotary moves happen.

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

More
07 Jun 2015 23:22 #59596 by cts1085
ok - so inverse time does the same thing.

If there is no linear movement, just rotational, it still moves quickly in degrees/min feed rate.
I probably will need to work on a filter or modify my original code so that if there is a rotational only move then the feed rate is reduced so the actual feed rate does not increase dramatically.

For example:
G93
G1 C255 X54 F75
G1 C257 X54.1 F75 (Slow move)
G1 C259 X54.1 F75 (Moves fast)

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

Time to create page: 0.087 seconds
Powered by Kunena Forum