A question for the "experts" in here (i.e. professional CNC operators)... CNC vs NC

I used a computer to compute the numerical control code. How’s that?

1 Like

I would remind the guy that there’s a reason his instructor is teaching at a technical school and not actually a machinist as a profession. :slight_smile:

As far as computers in our everyday lives; if consider a raspberry pi a computer for the simple reason it can multi-task. Arduino, Esp32, etc, etc, would all fall under microcontroller status.

The difference being that a computer has multiple different microcontrollers integrated into a single device.

A car’s ECU is not a computer. The entertainment system on newer cars is.

1 Like

Well, “computer” as a definition predating the personal computers (or even the mainframes of yore) we all know and love and hate, also refers to a person performing calculations. In the day, that was often done with slide rules. The book and movie “Hidden Figures” was a quite enjoyable story about the black women “computers” who helped put the first men in orbit. And the term goes back even further than that, to the late 19th century, when “computers” calculated data from astrophotographic images to assist in laying out some theories of modern astronomy.

pushes nerd glasses up my nose

Anything I read on NC machines vs CNC machines, they referenced older machines running punch cards, and having no memory or storage. You want to cut the same part twice? Feed the cards through again. Really seems like our machines have a lot more to do with a CNC than an NC. I don’t have my machine set up with a touch screen, but you can store a ton of jobs on the internal storage card and do what you like with it. I’ve also got one of Bart Dring’s Universal Controllers (ESP32 based board) that even has a self-hosted web server to interact with it. If that doesn’t count as a computer, not sure what does.

C

1 Like

Just playing devils advocate here but when you think of one of our machines you could consider a g code file (simple text) as the new digital version of a punch card. You can run it multiple times by running the same file but unless you have the same machine it likely won’t run on any other(the g code for my cnc won’t run on a laser engraver) for that instructor the diffrence is probably that of a marlin or grbl machine vs somthing that runs on MasterCAM. We need a computer to generate a g code where as what he considers a cnc has a computer that takes a svg and outputs directly to the machine. Witch is why I said ours would be considered a “cnc” (by his definition) if you hook up a computer too it because then your not porting a digital punch card. This is all just speculation and like I said the diffrences would be purely technical (because even mastercam would convert it to a flavor of g code before sending it to a board to turn code into movement.)

Edit: I forgot to mention that this would also explain the “feedback” portion. When a computer is connected you get a console that will provide feedback as to what the machine is doing. Most of our machines have a limited version of this reporting temps and locations etc. But a full computer has more options for that. I am curious what he would clarify somthing that is running a esp32 with web interface and full console, or a machine with an rpi running cnc.js

I beg to differ. It has a CPU, RAM, and a program. It operates on the basic fetch, sequence, execute principle that any other computer does. It executes code, and is able to loop, branch off to different areas of the program, manipulate variables, and generate output. Pretty much any car ECU since the advent of OBDII pretty much has to have the function to qualify as a computer, and many OBD cars would as well.

Multi-tasking is a function of the operating system, NOT THE COMPUTER. Aside from multi-threading, which is altogether different, any ability that the computer has to perform multiple “simultaneous” tasks is a function of the operating system, which is itself a program running on the system.

Would you consider a 386 PC to be a computer? Well, if ran DOS, it didn’t multitask any better than an Arduino, but if it ran SCO Xenix, it could multitask more than adequately. Enough to run as a multi-user pseudo-unix machine anyway. But step back to an 8086, and there wasn’t anything like that. You could go back to a Commodore 64, but it had GEOS, which allowed it to run a windowing system and gasp multitasking! No way you can call that a computer and not an Arduino.

The only thing that the Arduino is lacking by comparison is a default display device. Does it count if I connect up a 2004 LCD and give it a keyboard?

The CNC machines that one of my clients (an actual machine shop, BTW) actually run using Intel motherboards, a few generations behind current. They run using a custom realtime OS that does not multitask The whole power of the CPU is dedicated to the management of the various motors and functions via a PCI card.

I have no problem categorizing an Arduino as a “computer” If you had the talent, you could write a multitasking OS for it, but most don’t have the processing power to use it effectively, and of course any programs to use that would have to be written to hook into its threading and obey its directives to suspend and resume.

All that said, the advent of SOC (System On Chip) technology is replacing things that used to be microcontrollers with things more properly called a computer. The stepper drivers are controllers, but not computers, for example.

Well, you can run servo’s on Marlin, and verify positions and movements. Getting WAY over my head here, and I’m not sure of anyone actually doing this.

There’s a number of other conversations about “Marlin servo”, and the codes been in the firmware for awhile now.

As far as just “running the g-code like a punch card”, as far as I know, even the “mid-range boys” use CAD to design, CAM to generate the code for the machine, and then they feed that to the C/NC to make shit happen. I can stick code in place to do tool changes, even with an ATC, AFAIK. But the computer that calculates all the movement is not the same computer that’s controlling the machine. Again. Could be off base on that. Just having a random/off-topic discussion. :slight_smile:

Then to confuse things more, I’ve seen a number of LinuxCNC based machines, running simple NEMA23 motors (no servos or encoders). Does that make them an NC or a CNC? For that matter, would anyone “in the industry” even understand when you tell them you have a Shapeoko NC making signs for you in your garage? Or would they correct you to say you’ve got a Shapeoko CNC?

C

2 Likes

The machine operator I know calls them all cnc machines. He’s never even mentioned a NC machine.

1 Like

That’s my second point (besides the one about there being a computer controlling the motion or not)… If everyone in the industry understands and refers to them as a CNC, then doesn’t that mean the definition has possibly evolved to perhaps mean something other than what it originally meant?

Anywhooo… :slight_smile: Thanks for bouncing ideas!

C

2 Likes

By definition, ECU or ECM stands for electronic control unit or module. If the obdll goes out on your car, it will still function… If the gpu on your computer goes out, you’re screwed. Same with the other examples in the wall of text you put. At the end of the day, that ECU still only has one function. The arduino only has one function unless you reflash the firmware. These units are microcontrollers because that is all they do.

I will admit the Esp32 gets into a grey area when you consider it can run micro python.

1 Like

Esp32 also runs FreeRTOS, has dual cores and can multi task. It cannot run firefox though. I would still call it a “computer”, but to be more specific, I would call it a microcontroller.

A microwave oven is an “oven”, but no one would call it that. And everyone knows what an oven is.

I hope this conversation comes to a close at some point though.

1 Like

I think in terms of an NC having no ability to allow the operator to change anything. Kind of like an autopen that always generates the same signature or a template for a lathe that recreates the same table leg over and over again. To be a CNC instead there is the ability to make changes to the design instead of just using the same recipe. Since we can choose to run faster or slower during the machining process and can create different code that performs different functions we’re dealing with CNC.

2 Likes

Funny that you mention the GPU, which is a processor with only one function. I could also say that I have a computer where the GPU regularly crashes, but I don’t care because it’s current duty is entirely network based, running ESXi. Well, since that’s the only thing that it runs, maybe it’s not actually a computer after all. How about a Chromebook, which (essentially) only runs a web brower?

One could say that your computer only has one function in firmware, too. To self test and load the program that exists on the boot sector of your hard drive. If you want it to do something different, it needs different firmware. It is only a matter of the complexity of the firmware. It’s not hard to code a simple interpreter. It might not be very full featured, but at what point does it become a computer? In my last post, I mentioned the CNC machines using Intel desktop motherboards. Are those computers? The software that they run is single purpose. They do not multitask, and they don’t do anything but run the CNC machine.

I’m also guessing that you don’t have much experience with modern automotive computers. Yes, ECU/ECM is still used as the moniker, but that’s because language changes more slowly than technology. Those names are still around dating back to the 1960s when even using the term “electronic” was kind of pushing it, and was used because there were a few transistors in those boxes, which did the exact same things that the older mechanical mechanisms did.

While the OBDII connector is a separate module, which may fail separately, part of the specification for OBDII is that the OS running the car has to be able to do certain functions, and must control certain things within feedback loops. If this fails, your car has no functioning ignition or fuel system, and the only way it’s moving is downhill or behind a tow truck.

This I don’t understand. If you built a (CNC)machine that you want to produce a certain part, based on the information fed into it, if the machine were to “adapt to changing circumstances”, my guess is that you wouldn’t get the part you thought you “programmed” the machine to create. When I think of CNC machines, I think of mills, lathes, and other multi axis machines carving something out of a piece of material. The only thing I could think of this applying to would be something like a pick and place machine that could adapt to a part not being in its expected pick, or place position. Then again, CNC seems at it’s root to be a protocol of sorts, not the machine itself. I dunno, just thought I’d add my thoughts to the heap.

It’ll probably get worse before it gets better :wink:

Well, I THINK the “continuously adapting” part has to do with being able to realize that it was supposed to “move 1mm to the left”, but that didn’t happen, so try again with a little more umph. Or being able to realize that a bit has broken, so stop the job and reload. In the end, though, it’s still supposed to carve/mill/whatever exactly the same path. It’s just being smart enough to realize that it wasn’t successful.

C

Fair enough!

The conversation won’t come to an end, because we’re playing with semantics. And the problem is based solely on where you draw the line between a computer and a controller.

But without reading any other comments, I’ll simply bow out of the conversation.

I’m sitting over here in the corner and playing videogames! Is it a console or a computer? I don’t know! :crazy_face: :partying_face:

1 Like

Helped write one in 2003 as part of a Senior design project in College. Reverse engineered an aftermarket one on my Harley so that I could modify the MAP file with my Linux laptop.

But you’re right. Everything with a chip is a computer. Even my son’s night light. I mean. It has a button to control it and RGB lights to get feedback from it, so why not.

1 Like

The diffrence is in the architecture of the chips(at least according to my college professors) a controller unit runs a program (sequential code) a logic controller like your computer cpu runs a function (as in math equation) and runs concurrent logic. A computer is a complex system involving the use of both controller units for ease of use and complex time sensitive system and logic controllers for fast calculations. An electric bicycle isn’t considered a motorized vehicle even though it has wheels and a motor but an electric motorcycle is. We are pretty much debating at what point an electric bike becomes a motorcycle. Lol

I can get behind that definition. And I’ll even conceed that if that’s the definition we want to use, then modern ECUs can be called computers (@SupraGuy) .

Ya’ll have a good day. I need to get back to work on my computer working on other computers so that others with computers can get information for their computers.

1 Like