Saturday, March 11th, 2017
Why does this have to be done in real time? Why can’t you compile this and just run it?
Thirty years ago I worked for a company who sold CNC woodworking machines. They carried a big, full cnc line, and a small, Italian made machine that mostly drilled holes. To give you an idea of what I mean, Ikea uses many of this exact machine to make their adjustable shelving units. That machine uses a compiled code processor. It doesn’t do much machining, because compiled code isn’t up to the task, really. And there are several really good reasons why- at least for metalworking machines.
One of them is this. Watch this video all the way through.
Note the cutting times? yeah. Those are hours. 5 hour rough cut. 11 hour first pass. 15 hour second pass. 15 hour roughing level two. and so on and so forth.
Now, this is a true 5 axis machine in the video, which is still, in reality, a very simple mechainsm, and from a CNC programmer’s standpoint, still relatively simple. You just have to make sure your tool isn’t going to heel, that you have clearance for everything, that your tool is set with sub-micron precision, that the forging is bolted down and dialed in with sub micronic precision, and that the power to the machine isn’t going to go out for, oh, four or five days. The tooling, though, that’s another issue.
See, in order to make this all work, the finished pass (and in some cases, the roughing tools) have to be the same tool- on some critical components, changing a tool in the middle of a cut immediately scraps the part. So if you have to make a part that has a single tool that lasts for a 15 hour finishing pass, how do you keep it from wearing? You don’t. If it wears, how does that not change the profile of the part as it cuts? Offsets.
The most critical ability of a machine tool is it’s ability to do offsets. See, most of the time, a CNC part is programmed to it’s actual profile, and you have to tell the machine what the diameter of the tool is, and the machine offsets the path of the tool by it’s radius and cuts exactly the part you expect. On a five axis machine, this includes the diameter of the tool at it’s nose, the diameter of the ball, and the taper of the tool if it has one (Most do, to some degree)
At it’s most simple, the machine will stop the machining process every so often and use built in measuring tools to measure the tool and offset that amount. Tooling these days has predictable wear patterns in certain materials, and the machine can offset on the fly as the tool wears. Remember the ball we kicked? yes, it does happen that the geometry of the machine is changed in real time as conditions change. Oh, and let’s talk about changing conditions a moment. As a machine moves, the friction of the ways, ballscrew, gears, brakes, all causes temperature rise. Some machines- especially five axis machines- cannot be even operated without a specific warmup time. And when you are cutting, on something critical, even a three axis machine will have temperature monitoring equipment embedded into the castings at various locations through the machine, and that processor that’s keeping track of the circular path in real time will adjust the path, in real time, based on the tool wear and the increasing or decreasing temperature conditions in the machine. And we are STILL only talking about two axis, though the complexity involved in going to three axis or even five (Common in machine tools) is not really dramatically different. BTW, the turbine rotor in the video above is a classic example of how a curve can be interpolated in 5 axis at once.
SiGray mentions cutting tools, and this is a good point. Cutting tools are an issue both for machine tools and robots, (Yes, plenty of people use robots to cut things, more on that later).
Cutting tools are almost a black art. A simple mill may use a simple tool, some of the simplest (Like Bridgeport mills) just use collets directly in the spindle head. More complex mills use tapered holders which do their best to minimize the amount of runout the tool has, with more accurate tools requiring more stringent manufacturing processes. At a certain level the error introduced by clamping mechanisms and collets is inadequately innacurate, and hydraulics or heat are used to clamp tools into specially ground toolholders like Techniks
I know most of the players in the cutting tool industry, and I know men who I think are the very best at it, and one of those is a guy named Craig. Craig knows more about cutting tools than I will ever know about all the things i know about. As far as I am concerned, if you are not Craig, everything you think you know about cutting tools is wrong. And that’s beyond relatively simple things like tool wobble and vibration- the gyroscope effect, which in a properly constructed spindle cancels most of the unwanted BS out of properly constructed tools, is another whole discussion.
Asks the perfectly legitimate question “What’s the big deal?”
Well, if you’re a programmer, the examples I’ve already shown aren’t that big a deal, but a: They’re in two axis, and b: we’re talking about industrial control here, not hobbyist stuff. What’s the difference? Plenty.
Industrial controls have not changed dramatically for many years. Yes, the processors have improved, but only at a pace that has been necessary for the industry. Cellphones are loaded with processing power, because users demand more and more. Metal removal can only take place at specific speeds within a specific horsepower range on the cutting tool, and to develop controls with more speed than is required to do that is of literally no value. Especially when the predominant issue is not speed but reliability.
When someone spends a half a million dollars on a machining center, and that is not a difficult thing to to at all, you want it to run. And run, and run, and run some more. For this reason the makers of machine tool controls are downright stodgy.
As a result of this machine tool CNC is fairly reliable. How reliable? I’m glad you asked. A Fanuc industrial robot has a published mean time between failure of 76,000 hours
Seventy. Six. Thousand. Hours. Mean. Time. Between. Failure.
That is operating at 100% of rated temperature, at 100% of rated speed, and at 100% of rated load. IN actual operation, it’s a lot more like 100,000 hours. What does that mean? Imagine if you bought a car tomorrow, and you drove it as fast as it could go, on the roughest roads imaginable, twenty four hours a day seven days a week, and did NOTHING to it other than put in gas, and at the end of 11 years, it was still humming along as sweetly as if it were brand new.
This may seem like an exaggeration but it is not, it is actual data collected by Fanuc. Anecdotally, I have been in the industry for twenty five years now, and in that time I have installed hundreds of robots. I have also serviced them, and here is the breakdown as to why I had to service them
1: The user programmed the robot to do something stupid. The robot/machine tool did the stupid thing. It broke the robot/machine tool. 80%
2: An external device attached to the robot broke or failed or wore out. 20%
3: The robot itself wore out. 0%
Oh, I have seen robots that were worn out, most of which are now in excess of 30 years old but which in their lifetimes made hundreds of thousands if not millions of parts. Machine tools, likewise, fail, some with a more astounding regularity than others, but almost invariably because of abuse. I have at least one customer who has 40 year old NC machinery which is still running quite nicely with little or no downtime.
So: Why not use some of that processing power to make machines faster? Well, they already go as fast as is remotely practical, and the development cost of industrially hardening hugely fast controls is ludicrous, and not worth it.