- GCode and Part Programs
- G&M Codes
- Help: How to run X and A axis with different feed rates simultaneously?
Help: How to run X and A axis with different feed rates simultaneously?
- Masiwood123
- Offline
- Platinum Member
Less
More
- Posts: 335
- Thank you received: 80
21 Nov 2024 13:34 - 21 Nov 2024 13:40 #314980
by Masiwood123
Replied by Masiwood123 on topic Help: How to run X and A axis with different feed rates simultaneously?
maybe it seems need looking for a more complex path , because in the second cycle the diameter of the cylinder already changes for the thickness of the material being rolled (inversely proportional to the thread cutting on the lathe), another possible problem is the material itself, because in theory, A axis or S must make one revolution to move the linear axis for one stepover (material thickness), but as in practice material deviation occurs, I am very skeptical that they can guess the speeds. I used deskproto'' to export gcode for 4 axes with the path ``continues rotary'', where it has the basis of the speed of the linear axis and the stepover, as well as the diameter of the workpiece, so it calculates the speed of the A axis. but this is a hard material and then it is an accurate measure..www.youtube.com/shorts/OOtRMBdZchk
Last edit: 21 Nov 2024 13:40 by Masiwood123.
The following user(s) said Thank You: sk_linuxcnc
Please Log in or Create an account to join the conversation.
21 Nov 2024 18:14 #314987
by Aciera
Replied by Aciera on topic Help: How to run X and A axis with different feed rates simultaneously?
One thing to be aware of is that using motion commands with any other axis letter than XYZ causes the motion planner to fall back to one-line-look-ahead. This is not a problem if the motion segments are long enough but can cause jerky movement for short segments.
The following user(s) said Thank You: sk_linuxcnc
Please Log in or Create an account to join the conversation.
21 Nov 2024 18:47 #314992
by spumco
Or do you want it rotating at a continuous material linear speed? i.e. RPM slows down as the number of layers increases?
The few commercial winding machines I've seen appear to have torque-mode drums and an encoder on the material in-feed. Think encoder wheel with a tire pressed against the material at the infeed guide. I believe they are in torque mode to ensure that winding tension is constant regardless of number of wraps.
I don't know all the programming, but the infeed encoder RPM value could be connected to the drum/spindle PID to slow it or speed it up. And the position value would be used to move the guide shuttle based on a material diameter formula.
Not really G-code stuff, more like PLC stuff.
Replied by spumco on topic Help: How to run X and A axis with different feed rates simultaneously?
Do you want A-axis/spindle rotating at continuous speed?i want the A axis to be rotating continously at a given feedrate.
and X to perform back and forth motion (based on the material width that i have, so that i can acheive a side-by-side layup of the material) the material parameters are mentioned on the above reply of mine.
Or do you want it rotating at a continuous material linear speed? i.e. RPM slows down as the number of layers increases?
The few commercial winding machines I've seen appear to have torque-mode drums and an encoder on the material in-feed. Think encoder wheel with a tire pressed against the material at the infeed guide. I believe they are in torque mode to ensure that winding tension is constant regardless of number of wraps.
I don't know all the programming, but the infeed encoder RPM value could be connected to the drum/spindle PID to slow it or speed it up. And the position value would be used to move the guide shuttle based on a material diameter formula.
Not really G-code stuff, more like PLC stuff.
The following user(s) said Thank You: sk_linuxcnc
Please Log in or Create an account to join the conversation.
21 Nov 2024 19:05 - 21 Nov 2024 19:18 #314994
by spumco
Replied by spumco on topic Help: How to run X and A axis with different feed rates simultaneously?
Another thought...
Infeed guide shuttle direction changes could be handled with simple limit switches, or limit switches tied to a material diameter-dependent offset.
i.e "reverse direction N encoder counts after switch 1 goes HIGH". , and N is a variable based on material diameter and some experimentation.
The guide feedrate should be user-adjustable up or down (slightly) to account for inconsistent winding width due to material & tension variations. The base feedrate would be set by the nominal diameter, and a user-adjustment made once winding starts to account for flattening/width increases once on the drum.
So the user sets material diameter and desired tension values, and tweaks the feedrate as the first couple of turns start going on the drum.
EDIT:
on second thought...
Guide shuttle base feedrate is set by material diameter, and is adjusted in steps which are based on the infeed encoder. i.e. for diameter X, when encoder count reaches N, reverse direction.
I realized that the switches (mentioned above) are unnecessary as once you are adjusting feedrate in encoder-based increments, you can switch direction based on the same thing.
Still keep the user-adjustment, but also apply the adjustment value (or a derived value) to the shuttle direction change.
And another thought... a component to check the rate of encoder change. If the rate changes suddenly between direction changes (new layer), it means the machine just over-wrapped an existing layer and should stop and alert the operator.
i.e "reverse direction N encoder counts after switch 1 goes HIGH". , and N is a variable based on material diameter and some experimentation.
The guide feedrate should be user-adjustable up or down (slightly) to account for inconsistent winding width due to material & tension variations. The base feedrate would be set by the nominal diameter, and a user-adjustment made once winding starts to account for flattening/width increases once on the drum.
So the user sets material diameter and desired tension values, and tweaks the feedrate as the first couple of turns start going on the drum.
EDIT:
on second thought...
Guide shuttle base feedrate is set by material diameter, and is adjusted in steps which are based on the infeed encoder. i.e. for diameter X, when encoder count reaches N, reverse direction.
I realized that the switches (mentioned above) are unnecessary as once you are adjusting feedrate in encoder-based increments, you can switch direction based on the same thing.
Still keep the user-adjustment, but also apply the adjustment value (or a derived value) to the shuttle direction change.
And another thought... a component to check the rate of encoder change. If the rate changes suddenly between direction changes (new layer), it means the machine just over-wrapped an existing layer and should stop and alert the operator.
Last edit: 21 Nov 2024 19:18 by spumco. Reason: Fixed dumb idea
Please Log in or Create an account to join the conversation.
22 Nov 2024 06:19 #315018
by timo
Replied by timo on topic Help: How to run X and A axis with different feed rates simultaneously?
One stupid idea:
Just program the rotary axis as y-movement. Then program it as a diagonal move based on the diameter. Basically reverse what the CAM software does when you "wrap a path around a cylinder".
Curious if that would do the trick. (it should)
Just program the rotary axis as y-movement. Then program it as a diagonal move based on the diameter. Basically reverse what the CAM software does when you "wrap a path around a cylinder".
Curious if that would do the trick. (it should)
The following user(s) said Thank You: spumco, sk_linuxcnc
Please Log in or Create an account to join the conversation.
- sk_linuxcnc
- Offline
- New Member
Less
More
- Posts: 16
- Thank you received: 0
22 Nov 2024 08:51 #315021
by sk_linuxcnc
Replied by sk_linuxcnc on topic Help: How to run X and A axis with different feed rates simultaneously?
is it doable with G-code though?
Please Log in or Create an account to join the conversation.
22 Nov 2024 11:31 - 22 Nov 2024 11:50 #315025
by timo
Replied by timo on topic Help: How to run X and A axis with different feed rates simultaneously?
I would guess so, (dangerous half knowledge)
If you use y code instead of a, you can move
G01 x right_end y distance_1st F what_works
G01 x 0 y distance_1st_layer + distance_2nd F what_works
G01 x right_end y distance_1st + distance_2nd + distance_3rd F what_works
etc.
The y distance per layer will become shorter and shorter, as the motor needs to do less revolutions when the spool gets bigger, at the same time the x feed will become faster.
Hope that helps.
p.s. the described way should result in a constant material speed.
On the other hand when you keep the material under tension and move in a Thread-pitch fashion (lathe in threading mode) it should work just as fine. The pitch will be one material diameter per revolution and the material speed will increase when the spool becomes larger.
The speed increase can be counteracted by slowing the spindle speed down.
If you use y code instead of a, you can move
G01 x right_end y distance_1st F what_works
G01 x 0 y distance_1st_layer + distance_2nd F what_works
G01 x right_end y distance_1st + distance_2nd + distance_3rd F what_works
etc.
The y distance per layer will become shorter and shorter, as the motor needs to do less revolutions when the spool gets bigger, at the same time the x feed will become faster.
Hope that helps.
p.s. the described way should result in a constant material speed.
On the other hand when you keep the material under tension and move in a Thread-pitch fashion (lathe in threading mode) it should work just as fine. The pitch will be one material diameter per revolution and the material speed will increase when the spool becomes larger.
The speed increase can be counteracted by slowing the spindle speed down.
Last edit: 22 Nov 2024 11:50 by timo. Reason: p.s.
Please Log in or Create an account to join the conversation.
- GCode and Part Programs
- G&M Codes
- Help: How to run X and A axis with different feed rates simultaneously?
Time to create page: 0.076 seconds