double z axis
- carlosbahia
- Offline
- New Member
Less
More
- Posts: 5
- Thank you received: 0
26 Jan 2019 17:42 #124910
by carlosbahia
double z axis was created by carlosbahia
Hi everyone, my name is Carlos, I want to implement in my machine cnc 2 or 3 spindles, to serve as an ATC, an ATC is very expensive, I want every time an M6 comes to exchange the spindle, so I will have 2 or 3 tools available, thank you very much to everyone.
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5009
- Thank you received: 1443
26 Jan 2019 19:33 #124923
by Todd Zuercher
Replied by Todd Zuercher on topic double z axis
Do you have a separate axis for each spindle? Or all of them mounted to a single axis with something like an air cylinders to move them each into and out of milling position?
Please Log in or Create an account to join the conversation.
- carlosbahia
- Offline
- New Member
Less
More
- Posts: 5
- Thank you received: 0
26 Jan 2019 21:57 #124936
by carlosbahia
Replied by carlosbahia on topic double z axis
Hi friend, I have a separate axis for each spindle, ie I have 3 motors for z, I want to know how to control 3 z axes in cnc linux, thanks for replying.
Please Log in or Create an account to join the conversation.
- carlosbahia
- Offline
- New Member
Less
More
- Posts: 5
- Thank you received: 0
26 Jan 2019 22:01 #124937
by carlosbahia
Replied by carlosbahia on topic double z axis
Can I control if I can control 2 or 3 spindles with only 1 VFD?
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5009
- Thank you received: 1443
27 Jan 2019 00:24 #124942
by Todd Zuercher
Replied by Todd Zuercher on topic double z axis
It could be done. In fact I work with a machine that was set up that way from the factory. But I'd have to research the necessary hardware to make it work. And you wouldn't be able to use two or more spindles at the same time.
It is also going to be a rather complex non standard configuration,
It is also going to be a rather complex non standard configuration,
Please Log in or Create an account to join the conversation.
- rodw
- Offline
- Platinum Member
Less
More
- Posts: 10747
- Thank you received: 3543
27 Jan 2019 01:20 - 27 Jan 2019 01:20 #124945
by rodw
Replied by rodw on topic double z axis
Actually, this might not be that hard with master branch becasue of 2 new features:
1. Multi spindle support (so that one is done for you already)
2 separation of joints (motors) from axes.
So say you had a 3 axis machine with multiple Z axes, it might look like Joint 0 = X, Joint 1 = Y, X = Joint 2
So for a machine with two Z axes, the second Z would be on Joint 3.
You would be able to use something like a mux2 component (several of them) so you could swap the z axis I/O pins to the particular joint you wanted to use. In a perfect world, you'd want to do this automatically when you selected the spindle. I couldn't see something to say which spindle was the currently selected one. I don't know enough about that spindles and tool changers to really help that much there. It would be possible to select the joint using a motion.analog.nn.in pin from gcode.
If you could tie it in with a tool changer, that would look after the offsets between spindles..
Sharing the VFD is probably more trouble than its worth as you would likely have to build contactors etc
I think its about time Todd caught up with master branch
1. Multi spindle support (so that one is done for you already)
2 separation of joints (motors) from axes.
So say you had a 3 axis machine with multiple Z axes, it might look like Joint 0 = X, Joint 1 = Y, X = Joint 2
So for a machine with two Z axes, the second Z would be on Joint 3.
You would be able to use something like a mux2 component (several of them) so you could swap the z axis I/O pins to the particular joint you wanted to use. In a perfect world, you'd want to do this automatically when you selected the spindle. I couldn't see something to say which spindle was the currently selected one. I don't know enough about that spindles and tool changers to really help that much there. It would be possible to select the joint using a motion.analog.nn.in pin from gcode.
If you could tie it in with a tool changer, that would look after the offsets between spindles..
Sharing the VFD is probably more trouble than its worth as you would likely have to build contactors etc
I think its about time Todd caught up with master branch
Last edit: 27 Jan 2019 01:20 by rodw.
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5009
- Thank you received: 1443
27 Jan 2019 15:20 #124973
by Todd Zuercher
Replied by Todd Zuercher on topic double z axis
The multiple z axis machines I have set up are in a factory production environment and I don't feel the need to take them out of service to fix something that isn't broken. Maybe once Master is released as 2.8 I'd have more incentive to reinvent my configuration.
The following user(s) said Thank You: rodw
Please Log in or Create an account to join the conversation.
- rodw
- Offline
- Platinum Member
Less
More
- Posts: 10747
- Thank you received: 3543
27 Jan 2019 23:42 #124995
by rodw
Todd it was a tongue in cheek comment. I think though its interesting that the separation of joints and axes enables much more flexibility in machine design. Of course I don't know anywhere near enough about how real machines work to put something together..
Replied by rodw on topic double z axis
The multiple z axis machines I have set up are in a factory production environment and I don't feel the need to take them out of service to fix something that isn't broken. Maybe once Master is released as 2.8 I'd have more incentive to reinvent my configuration.
Todd it was a tongue in cheek comment. I think though its interesting that the separation of joints and axes enables much more flexibility in machine design. Of course I don't know anywhere near enough about how real machines work to put something together..
Please Log in or Create an account to join the conversation.
- Todd Zuercher
- Offline
- Platinum Member
Less
More
- Posts: 5009
- Thank you received: 1443
28 Jan 2019 03:05 #125007
by Todd Zuercher
Replied by Todd Zuercher on topic double z axis
I agree master with JA and external offsets would probably make building my configuration easier. I am anxiously awaiting its release and the time to play with bending it to my will. But till then I'm maintaining the status quo. Ideally though I think a kinematics solution would be more elegant for my config, but I lack the programming skills to pull that off.
Sorry, but none of this is helping this fellow with his question.
The multi z-axis machines I have are only 2 z-axis. Really I took the easy path and configured the two axis as Z and W. And this worked/works fine. Until the new trajectory planner opened a door to much faster carving on our wood carving machines. That was wonderful except it didn't apply to g-code that used the W axis. So to take advantaged of the new trajectory planner I had to use some complicated hal trickery to temporarily slave the W axis to the Z axis using some custom M-codes.
That or a similar approach probably could be made to work, but it may not be the best way in light of the advances in Master over the last couple years. All in all I think the problem and it's solution is more complicated than it would first appear on the surface.
It would be simpler if the machine only had a single Z axis with multiple spindles mounted to independent actuators.
Sorry, but none of this is helping this fellow with his question.
The multi z-axis machines I have are only 2 z-axis. Really I took the easy path and configured the two axis as Z and W. And this worked/works fine. Until the new trajectory planner opened a door to much faster carving on our wood carving machines. That was wonderful except it didn't apply to g-code that used the W axis. So to take advantaged of the new trajectory planner I had to use some complicated hal trickery to temporarily slave the W axis to the Z axis using some custom M-codes.
That or a similar approach probably could be made to work, but it may not be the best way in light of the advances in Master over the last couple years. All in all I think the problem and it's solution is more complicated than it would first appear on the surface.
It would be simpler if the machine only had a single Z axis with multiple spindles mounted to independent actuators.
Please Log in or Create an account to join the conversation.
- rodw
- Offline
- Platinum Member
Less
More
- Posts: 10747
- Thank you received: 3543
28 Jan 2019 08:39 #125051
by rodw
Replied by rodw on topic double z axis
Todd, its very similar to the dual control of a plasma torch height control (THC) in which there are two methods to control the Z axis. 1 for normal XYZ motion and the other from the THC via torch voltage as the feedback to a second PID component.
Just in this case, we would be using 2 joints that are switched to the Z axis on demand. I think the basics would be pretty simple but merging the capability into a working machine might be a bit harder. I'll leave that part to you.
For a 2 Z axis system, we'd call them Z0 and Z1 and we would need a pin signifying axis select that had a value of 0 or 1 so you could use a mux2
If you look at a 7i76e stepper motor config, it looks something like this for Joint 3
#*******************
# JOINT 3 Z
#*******************
setp pid.3.Pgain [JOINT_3]P
setp pid.3.Igain [JOINT_3]I
setp pid.3.Dgain [JOINT_3]D
setp pid.3.bias [JOINT_3]BIAS
setp pid.3.FF0 [JOINT_3]FF0
setp pid.3.FF1 [JOINT_3]FF1
setp pid.3.FF2 [JOINT_3]FF2
setp pid.3.deadband [JOINT_3]DEADBAND
setp pid.3.maxoutput [JOINT_3]MAX_OUTPUT
setp pid.3.error-previous-target true
setp pid.3.maxerror .0005
net 3-index-enable <=> pid.3.index-enable
net 3-enable => pid.3.enable
net 3-pos-cmd => pid.3.command
net 3-vel-cmd => pid.3.command-deriv
net 3-pos-fb => pid.3.feedback
net 3-output => pid.3.output
# Step Gen signals/setup
setp hm2_7i76e.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_7i76e.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_7i76e.0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_7i76e.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_7i76e.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
setp hm2_7i76e.0.stepgen.03.step_type 0
setp hm2_7i76e.0.stepgen.03.control-type 1
setp hm2_7i76e.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
setp hm2_7i76e.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net 3-pos-cmd <= joint.3.motor-pos-cmd
net 3-vel-cmd <= joint.3.vel-cmd
net 3-output <= hm2_7i76e.0.stepgen.03.velocity-cmd
net 3-pos-fb <= hm2_7i76e.0.stepgen.03.position-fb
net 3-pos-fb => joint.3.motor-pos-fb
net 3-enable <= joint.3.amp-enable-out
net 3-enable => hm2_7i76e.0.stepgen.03.enable
# ---setup home / limit switch signals---
net max-home-3 => joint.3.home-sw-in
net min-3 => joint.3.neg-lim-sw-in
net max-3 => joint.3.pos-lim-sw-in
Provided the 2 joints were identical so they could share the same PID settings, it would just be a matter of switching to the other hardware stepgen. Thats the lines containing
Looks like there are only 3 of them so you could use a mux2 to swap say this signalto
etc.
I'm not sure if a parallel port config uses the pid.
I'm sure I've missed something but it is a way forward...
Just in this case, we would be using 2 joints that are switched to the Z axis on demand. I think the basics would be pretty simple but merging the capability into a working machine might be a bit harder. I'll leave that part to you.
For a 2 Z axis system, we'd call them Z0 and Z1 and we would need a pin signifying axis select that had a value of 0 or 1 so you could use a mux2
If you look at a 7i76e stepper motor config, it looks something like this for Joint 3
Warning: Spoiler!
#*******************
# JOINT 3 Z
#*******************
setp pid.3.Pgain [JOINT_3]P
setp pid.3.Igain [JOINT_3]I
setp pid.3.Dgain [JOINT_3]D
setp pid.3.bias [JOINT_3]BIAS
setp pid.3.FF0 [JOINT_3]FF0
setp pid.3.FF1 [JOINT_3]FF1
setp pid.3.FF2 [JOINT_3]FF2
setp pid.3.deadband [JOINT_3]DEADBAND
setp pid.3.maxoutput [JOINT_3]MAX_OUTPUT
setp pid.3.error-previous-target true
setp pid.3.maxerror .0005
net 3-index-enable <=> pid.3.index-enable
net 3-enable => pid.3.enable
net 3-pos-cmd => pid.3.command
net 3-vel-cmd => pid.3.command-deriv
net 3-pos-fb => pid.3.feedback
net 3-output => pid.3.output
# Step Gen signals/setup
setp hm2_7i76e.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_7i76e.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_7i76e.0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_7i76e.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_7i76e.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
setp hm2_7i76e.0.stepgen.03.step_type 0
setp hm2_7i76e.0.stepgen.03.control-type 1
setp hm2_7i76e.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
setp hm2_7i76e.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net 3-pos-cmd <= joint.3.motor-pos-cmd
net 3-vel-cmd <= joint.3.vel-cmd
net 3-output <= hm2_7i76e.0.stepgen.03.velocity-cmd
net 3-pos-fb <= hm2_7i76e.0.stepgen.03.position-fb
net 3-pos-fb => joint.3.motor-pos-fb
net 3-enable <= joint.3.amp-enable-out
net 3-enable => hm2_7i76e.0.stepgen.03.enable
# ---setup home / limit switch signals---
net max-home-3 => joint.3.home-sw-in
net min-3 => joint.3.neg-lim-sw-in
net max-3 => joint.3.pos-lim-sw-in
Provided the 2 joints were identical so they could share the same PID settings, it would just be a matter of switching to the other hardware stepgen. Thats the lines containing
hm2_7i76e.0.stepgen.
Looks like there are only 3 of them so you could use a mux2 to swap say this signal
net 3-enable => hm2_7i76e.0.stepgen.03.enable
net 3-enable => hm2_7i76e.0.stepgen.04.enable
etc.
I'm not sure if a parallel port config uses the pid.
I'm sure I've missed something but it is a way forward...
Please Log in or Create an account to join the conversation.
Time to create page: 0.164 seconds