Question about live tooling
04 Apr 2021 17:41 #204789
by Anonymous
Question about live tooling was created by Anonymous
Hello everyone!
I have a lathe with an X- and Z-Axis and I'm driving the Spindle with a Servo Motor(130st m10015) over a timing belt.
I currently only have control over the Spindle Speed.
I would like to use live Tooling on this machine by controlling the position of the Servo spindle(I think it would be called the C-Axis).
Sorry for my ignorance but i have no idea how to do this and cant seem to find a lot in the internet about how to set this up.
Could i just wire up the spindle with pulse/dir signals and configure it as the 4th-Axis in stepconf? But how would linuxcnc switch between speed and Position control? Is it just a G- or M-Code?
I would appreciate any help.
I have a lathe with an X- and Z-Axis and I'm driving the Spindle with a Servo Motor(130st m10015) over a timing belt.
I currently only have control over the Spindle Speed.
I would like to use live Tooling on this machine by controlling the position of the Servo spindle(I think it would be called the C-Axis).
Sorry for my ignorance but i have no idea how to do this and cant seem to find a lot in the internet about how to set this up.
Could i just wire up the spindle with pulse/dir signals and configure it as the 4th-Axis in stepconf? But how would linuxcnc switch between speed and Position control? Is it just a G- or M-Code?
I would appreciate any help.
Please Log in or Create an account to join the conversation.
04 Apr 2021 18:37 #204799
by andypugh
Replied by andypugh on topic Question about live tooling
Typically you would set up two PID controllers to control the spindle.
One would be used for speed control, the other for position control.
You can either use the M19 command to switch mode and set the angle, or create a custom M-code to do the same thing and run the spindle as a C-axis.
The logic is shown in this diagram:
wiki.linuxcnc.org/cgi-bin/wiki.pl?SpindleOrient
But note that the spindle pin names have changed, and the (for example) motion.spindle-orient it now spindle.0.orient
One would be used for speed control, the other for position control.
You can either use the M19 command to switch mode and set the angle, or create a custom M-code to do the same thing and run the spindle as a C-axis.
The logic is shown in this diagram:
wiki.linuxcnc.org/cgi-bin/wiki.pl?SpindleOrient
But note that the spindle pin names have changed, and the (for example) motion.spindle-orient it now spindle.0.orient
The following user(s) said Thank You: NewGuyJim
Please Log in or Create an account to join the conversation.
04 Apr 2021 19:04 #204802
by andypugh
I changed the file
Replied by andypugh on topic Question about live tooling
note that the spindle pin names have changed, and the (for example) motion.spindle-orient it now spindle.0.orient
I changed the file
Please Log in or Create an account to join the conversation.
05 Apr 2021 10:50 #204876
by Anonymous
Replied by Anonymous on topic Question about live tooling
Wow
Thanks for the quick reply.
I would like to wire the servo spindle in a closed loop system, because my breakout board doesn't accept any encoder inputs. Sorry for my ignorance but do I really need encoder feedback, or could i just use the spindle index as a Reference for the Spindle?
Sorry for my ignorance but I'm also pretty new to HAL and don't really know how this works. Are there any examples or presets for this? If not I'm ready to learn something new.
Thanks for the quick reply.
I would like to wire the servo spindle in a closed loop system, because my breakout board doesn't accept any encoder inputs. Sorry for my ignorance but do I really need encoder feedback, or could i just use the spindle index as a Reference for the Spindle?
Sorry for my ignorance but I'm also pretty new to HAL and don't really know how this works. Are there any examples or presets for this? If not I'm ready to learn something new.
Please Log in or Create an account to join the conversation.
05 Apr 2021 13:08 #204893
by andypugh
Do you mean "open loop"?
I assume that you are controlling the spindle with step-dir pulses?
Are you using a velocity-mode stepgen to control the spindle speed?
If you are, then are you happy to use M19 for C-axis positioning, or does it need to be controlled by a C-command in the Gcode?
I can see two ways to do this, either with two stepgens (one in velocity mode, one in position mode) and switching the step/dir source with a bit-type mux_generic .
Or, keep the single stepgen and add a PID to control it when in position mode. This would look like a sub-set of the diagram posted earlier, except that the velocity PID is removed (as is much of the downstream stuff) and stepgen position-fb is used in place of encoder feedback.
You would use a mux to switch the velocity command from straight spindle.0.speed control to pid.spindle control. I _think_ that the "orient" command is clever enough to allow for the (thousands) of complete revolutions "in" the stepgen.
You don't get consistent orient to a spindle encoder this way. That would matter if you planned on leaving the part in the chuck through shutdowns.
Replied by andypugh on topic Question about live tooling
I would like to wire the servo spindle in a closed loop system, because my breakout board doesn't accept any encoder inputs
Do you mean "open loop"?
I assume that you are controlling the spindle with step-dir pulses?
Are you using a velocity-mode stepgen to control the spindle speed?
If you are, then are you happy to use M19 for C-axis positioning, or does it need to be controlled by a C-command in the Gcode?
I can see two ways to do this, either with two stepgens (one in velocity mode, one in position mode) and switching the step/dir source with a bit-type mux_generic .
Or, keep the single stepgen and add a PID to control it when in position mode. This would look like a sub-set of the diagram posted earlier, except that the velocity PID is removed (as is much of the downstream stuff) and stepgen position-fb is used in place of encoder feedback.
You would use a mux to switch the velocity command from straight spindle.0.speed control to pid.spindle control. I _think_ that the "orient" command is clever enough to allow for the (thousands) of complete revolutions "in" the stepgen.
You don't get consistent orient to a spindle encoder this way. That would matter if you planned on leaving the part in the chuck through shutdowns.
Please Log in or Create an account to join the conversation.
05 Apr 2021 15:40 #204910
by Anonymous
Replied by Anonymous on topic Question about live tooling
Yes I meant open loop, sorry.
No I'm not controlling the spindle speed with step/dir pulses but the servo drive does have these inputs though(haven't wired them up yet).
I currently control the spindle speed with an analog voltage.
I want to use an analog voltage to control the spindle speed for turning and step/dir pulses when using C-axis.
The servo drive could switch between speed and position control (I'd probably do this with a relay).
I'm not using step/dir pulses for turning because I think it would be a bit too much for my PC, so i would like to switch between speed and position control like that.
Another question could i just hook the servo drive up over rs232 or rs485 to a usb port and let linuxcnc control the speed/position of the servo like that, or would that not work?
No I'm not controlling the spindle speed with step/dir pulses but the servo drive does have these inputs though(haven't wired them up yet).
I currently control the spindle speed with an analog voltage.
I want to use an analog voltage to control the spindle speed for turning and step/dir pulses when using C-axis.
The servo drive could switch between speed and position control (I'd probably do this with a relay).
I'm not using step/dir pulses for turning because I think it would be a bit too much for my PC, so i would like to switch between speed and position control like that.
Another question could i just hook the servo drive up over rs232 or rs485 to a usb port and let linuxcnc control the speed/position of the servo like that, or would that not work?
Please Log in or Create an account to join the conversation.
05 Apr 2021 16:36 #204918
by andypugh
That might be possible. Is there a LinuxCNC HAL driver for the drive?
Replied by andypugh on topic Question about live tooling
Are you sure that the drive supports changing command type on the fly?Y
I want to use an analog voltage to control the spindle speed for turning and step/dir pulses when using C-axis.
The servo drive could switch between speed and position control (I'd probably do this with a relay).
Another question could i just hook the servo drive up over rs232 or rs485 to a usb port and let linuxcnc control the speed/position of the servo like that, or would that not work?
That might be possible. Is there a LinuxCNC HAL driver for the drive?
The following user(s) said Thank You: Anonymous
Please Log in or Create an account to join the conversation.
Moderators: piasdom
Time to create page: 0.075 seconds