Linking Spindle RPM to Travel Speed
CNC owners discuss the feasibility of tweaking their control systems to couple bit speed with gantry travel velocity. July 16, 2008
Question
Which machines control the spindle RPM as a function of the velocity of travel? Is anyone using this concept and how do they accomplish it?
I am interested in maximizing tool life and travel speed. I can push the travel speed pretty far with my machine. For standard materials 1600ipm is barely taxing the hardware. That is all well and good, but it takes awhile for the heavy mass of the overarm gantry to get moving. Even in an 8 foot cut, I get less than half of that at 1600ipm due to a smooth but slow acceleration. I can set the travel speed and the spindle RPM to maximize the situation for full speed, whether that is 800 or 1000 or 1600ipm, but as the spindle goes into a corner, it needs to come to a full stop at some point. That means I am spinning at a high RPM but very low velocity, and therefore generating a lot of heat in the corners. In a larger sense, it means that acceleration speed is actually limiting my cycle times. I understand that in the real world horsepower drops at low RPM, and even at a very slow travel speed some reasonable RPM rate must be maintained.
It would be relatively simple to write a formula to define the spindle RPM as function of travel velocity. It seems to me that theoretically this would be done best in the controller. I imagine it might also be possible in the G code, though it would be more complex and may offer less fine control of the process, perhaps a step function that modifies the spindle speed at various distances from a corner? Does anyone have any thoughts on this?
Forum Responses
(CNC Forum)
From contributor A:
I would think you could adjust the macro settings in your controller to get your feed rate ramped up quicker. I had my machine adjusted to get up to speed in a matter of a few inches of cut. This more than doubled tool life and shortened cycle times.
From the original questioner:
Exactly. Yes, I thought so too. I asked the manufacturer of the machine for an acceleration curve for this piece of hardware. It was a very painful process. Their engineer and salesperson got very confused between the concepts of velocity and acceleration, and after perhaps a dozen emails back and forth, they were firm that no acceleration data for this machine exists. Of course there is in reality. A machine like this could not possibly be designed without understanding what the acceleration curve looks like. I asked more than once if there were variables that controlled acceleration and was firmly assured that there were not. Maybe I need to bypass the manufacturer of the hardware and go to the manufacturer of the controller? If I was up to speed in even say 8-10 inches, I think this would be a non-problem. At the same time, this is an overarm machine, not a bridge gantry so it is heavy enough that I am a little concerned about pushing the acceleration too far. My gut says that I could be up to speed twice as fast anyway without much danger. The 20 plus inches it takes now just seems way too slow. Is your controller Fanuc, Siemens or something else? Was the manufacturer of the hardware helpful in addressing your problem?
From contributor B:
Camsoft makes OEM and retrofit closed loop servo controller and software that regulates spindle speed based on the load feedback from the spindle. Higher torque and the controller increases power to the spindle to regulate speed. I am assuming they can do the same thing based on accel/decel rates. Camsoft has interesting features compared to many controllers. If it works like they say, it is an awesome control package. Is tool life that big of an issue? Tooling seems pretty cheap compared to the amount of product you can get from one tool. I am not particularly careful to figure feeds and speeds and our tools seem to last plenty long for the amount they cost.
From contributor A:
It's an Anderson with a Fanuc. After a year of running slow and burning up bits on a regular basis I called my installation tech and told him I wanted more speed. He called me back one evening and talked me through the macros that needed to be changed. It took about an hour to go through them all. Now when I set the speed at the software it coincides with the speed at the machine. It gets up to speed in a matter of inches and turns corners quickly. I also do a bit of carving and engraving and they take less time to complete also. Now I can run at speeds the machine was designed for. If your machine is a Fanuc, send me an e-mail and I will give you this guys name and number. He is very good at what he does. If you are using CV for software you may need your post adjusted to obtain higher speeds also. I started with the post and when that only gained me a little more speed I looked to the macros.
From the original questioner:
To contributor B: Thanks for the response and the reference, that's just the kind of information I am looking for. At this stage I am exploring an idea for feasibility. You are right - in a sense, tool life is a cost, and a significant one, but in the big picture it is not the end of the world. I have been trying for a bit more speed, and find that at 1600ipm, I am setting a very rare and occasional fire in the corners as the machine slows down. Granted the tool needs to be near the end of its life too for this to happen. I have since ramped back my travel speeds to 1000, and 1200 depending on application and am fine.
From the original questioner:
To contributor A: Thanks for the response. I ran an Andersen for a year. I found their tech help outstanding and they really went out of their way to solve problems with the customer. It was a good nesting machine. At that shop there was never an environment though that saw even the most minor change as a positive thing. The management was a bit narrow minded, but that's another story. I noticed the "get up and go" issue with the Andi too. I have a Siemens controller now and use Alphacam just about exclusively for my programming. If Andersen and Fanuc can do it, perhaps my machine manufacturer and Siemens can as well. I really like the concept and to hear you have actually implemented it is a great piece of information for me. I may have more mass to move on this arm than the Andi, but some improvement is surely within my reach. There are beefier drives on this router too, so that is in my favor. I will get in touch again with the machine manufacturer with the new info and see if I can get them to help me this time. I can see how carving and profiling would be sped up hugely with your modification too.
From contributor C:
Are you guys saying there is no method to control x,y,z axis acceleration on these machines? That sure seems that is the case. I've just run a few PC based routers so have no hands on experience with the "big iron". However, with my PC based machines there is an .INI file in which default feed rates and acceleration can be set. When we run normal long travel runs we set the acceleration at a high rate to get up to speed as fast as possible. When we are running short back and forth movement we lower the acceleration for smoother direction changes. It's very easy to change with a few keystrokes. The acceleration setting controls both acceleration and deceleration of the axis movement.
To the original question though, I don't see how a connection between feed rate and spindle speed could be automatically created on my PC based control. I could certainly edit it into the G-code by hand if I had the time and inclination. Am I totally off base in understanding this discussion or is my assumption on the acceleration issue correct?
From the original questioner:
You have it right. I have run a Multicam, an Andersen Selexx Pal and this, my current machine. It is all good hardware for its own use and cost level. I have always had full control of feed rate and spindle RPM but have never been aware of the functions, if there are any, that control acceleration rates. The manufacturer of this machine, which by the way is a really nice piece of hardware, has specifically and consistently insisted that there is no control over the acceleration rates on this machine. I have doubted that from the start, but let's be realistic. I could screw up a lot of things by just poking around, and need guidance from someone to get this job done. I would love to find an .INI file to do this for me - that would be fantastic, simple and just what I need. I would love to find a parameter in the controller to adjust. In fact, at the outset I wondered whether such a thing existed. I sure don't have the time and inclination to edit it into G code manually either. Even if it could work, I may be off base with that thought in any case.
From contributor B:
Below is a text copy of my .INI setup and configuration file. I have learned to change maxaccel and several other settings depending on the type of geometry I am cutting. I can greatly improve speeds for straight cuts or slow down for smoother highly curved cuts under heavy load. The # symbols in front of lines tells the UNIX controller to disregard a line. Lines I change often are set up so I just have to move the # symbol up or down a row. It is astounding how differently the machine behaves and wow can it be FAST! I am still a newbie at understanding all of this but my tech has been very helpful and patient. He says most guys never bother to investigate this stuff and just want to hit the go button and have the machine work.
# file: /flexicam/bin/tech.ini
# system:
# date:2005/mm/dd
# Customer
[HPGL Defaults]
AbsoluteMode=1
VelUp=16000
VelDraw=2000
VelCut=2000
VelPen=2000
PenDown=10
SPPause=0
[HPGL Machine]
HomeX=0.0
HomeY=0.0
HomeZ=0.0
HomeAng=0.0
UpPos=-20
VelMax=24000
AccelMax=40000
VelRapid=24000
AccelRapid=120000
VelMaxZ=10000
AccelMaxZ=40000
VelMaxAng=90
AccelMaxAng=360
MaxAng=720
MinAng=-720
MachineName=FLEXICAM
PPInchMode=0
3DMode=0
VMergeAngle=5
VMergeLow=0
ArcMergeAngle=40
ArcMergeErrMax=4
ArcMergeRMax=10000
ReturnUnknown=1
ZDFast=400
ZDownPos=1
3DAA=1
LineFiltErrMax=4
LineFiltDMax=10
LineFiltAngle=91
#Debug=5
[Gcode Defaults]
InchMode=0
AbsoluteDimensionMode=1
FeedRate=0.0
Plane=XY
[Gcode Machine]
nAxes=3
RadTol=0.1
AccelTol=0
HomeX=0.0
HomeY=0.0
HomeZ=0.0
FeedRateMax=36000.0
FeedRateRapid=36000.0
FeedRateMaxZ=15000.0
#AccelMax=2600000.0
AccelMax=2000000.0
#AccelRapid=10800000.0
AccelRapid=7800000.0
MachineName=FLEXICAM
PPInchMode=0
VMergeAngle=2
VMergeLow=0
#ArcMergeAngle=40
ArcMergeAngle=5
ArcMergeErrMax=0.1
ArcMergeRMax=2500
LineFilterErrMax=0.1
LineFilterDMax=0.3
LineFilterAngle=91
#Debug=5
#C-Axis
From contributor D:
A lot of times CNC machines are set up to be conservative and to handle a variety of things that may come their way, both with the mechanics, electronics, and skill level of the users. By having more aggressive acc and dec times, the inverter drive varying spindle RPM's several times in the processing of each part instead of achieving and maintaining a fixed speed, more wear and tear is put on machine components. Workholding has to be considered as well, if you are losing the last 2 parts on most nests, or having issues with smaller parts in general the faster cycle times won't make up for parts having to be replaced and processed, even with increased tooling life. Machine providers don't know what the skill level is going to be of the operators or programmers, and even if the ones starting out are great, that level of competence may or may not be there in a few days, weeks, months, or whatever length of time.
I can't tell you the number of times I've heard the, "Make it go as fast as you can", and after doing so, I get a call a short time later saying, "The parts are moving", or "The tools are coming out of the collets", or "We've hit "X" number of pods", followed by "Can you tell us how to slow it down, or do you need to come back?"
It really is a compromise deciding on the longevity of the machine vs. increased tooling life vs. holding you parts securely vs. paying for a more rigid machine with higher grade electronics and drives that will handle the more aggressive machining, and provide adequate workholding. That said, Siemens controls generally are different than most. The time constants are fixed in firmware, but there is a parameter that can help the corner issue. There is an accuracy parameter that is generally set too tight for woodworking, and that is why you see and notice the extreme slowdowns on the 90 degree corners. The larger this setting, the further away from the programmed point the machine will begin changing direction. The control will also more aggressively acc and dec because of this.
If memory serves me correctly, it is likely set to something like .0003. If you set it to .005, the corner lag will be much less, probably acceptable.
You can make this too open, and the corners will actually overshoot or round over. You'll need to get the access information to this from your machine provider, it is likely password protected, and that varies by OEM. Daniel is right about CAMSoft controls, and I think they also have a patent on the idea and implementation. That may be why such a good idea is not very commonly discussed.
From the original questioner:
To contributor D: I am certainly not looking to push this machine beyond its realistic design limits and overly affect the useful life of the hardware. At the same time, you are also right when you say that these parameters are generally set up on the conservative side. I am looking to achieve perhaps a better balance here, one that positively affects other factors without being ridiculous and stretching the limits of what the machine can reasonably do, and maybe even learn some things in the process.
I certainly have no holding issues. Even when running at 1600 I am keeping 8 by 4 inch drawer parts at 100 percent on the table. If I ever lose a part it is always a dust or sheet warp issue. At the 1000 to 1200 I am running lately it is a cake walk. In a perfect world it seems I would like to ramp down RPMs into a corner as well as get out of the blocks a bit quicker. If the Siemens controller won't let me get up and go any faster or ramp down the RPMs your compromise on the accuracy parameter may be a good thing. Your post is giving me a lot to think about.
From the original questioner:
To contributor B: That code you sent looks like it's from a Flexicam (from the name in several of the lines). Their website says they manufacture their own controller, and from looking at the INI and reading your posts you are manipulating the acceleration rate there.
Very cool, just wanted to verify: it is a unix PC cntroller that is made by Flexicam that this INI file is for, not a retrofitted Camsoft, correct?
From contributor B:
My control is the factory controller. I looked into Camsoft prior to my CNC purchase. I originally considered buying a 1990's industrial machine and retro fitting it with new servos and Camsoft as a less expensive option. I opted for the new machine so I would have support and training. Luckily I went this route because we went immediately into production instead of muddling our way through the learning curve. After our 4 day training I shipped our first wood floor inlay off of the CNC 3 days later. I have to say I love the people at Flexicam in Vancouver. The only thing I regret is not spending the extra to have a C axis but at the time I saw no application for it. Since we have acquired the technology we have started doing more furniture and walls and a C axis would be really useful for milling pockets etc in the side of panels. I will probably upgrade our machine to 4 axis as the business grows. I am pretty confident at this point that I can add the extra servo amp, replace the spindle, and modify the INI files to recognize the extra axis myself with a few phone calls to my tech at Flexicam. They have really done a great job at educating me about my machine. The CNC odyssey has been and continues to be an excellent adventure.
From contributor E:
We too have a Flexicam Machine and use Alphacam software but may I state a word of CAUTION with the alteration of the INI file. Like they told me at Flexicam if you dont know what you are doing, don't mess with the INI file. He said this, "INI, Stick in the eye." You can really mess your machine up and even damage it by messing with this file and you'd probably rather you had a stick in the eye instead. So be careful about altering it. I've never had to mess with my INI file.
From contributor B:
I haven't made any changes to the INI that I have not discussed with a tech a Flexicam first. I am not really keen on taking risk with a $100k investment. But the small changes to the INI are really noticeable in machine performance on larger pieces without arcs.