Acorn & PC Division of Tasks

All things related to the Centroid Acorn CNC Controller

Moderator: cnckeith

mikes
Posts: 94
Joined: Thu Jan 04, 2018 3:09 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: New Albany, OH

Acorn & PC Division of Tasks

Post by mikes »

I am not new to the world of real-time embedded systems, so I appreciate using a PC for the frontend processing and having a dedicated controller for the real-time processing. I also understand that the PC and controller have to work hand in hand to provide a responsive and seamless user experience. This certainly puts very specific requirements on the controller and its processing. Having two microcontrollers on the Beaglebone is definitely a plus when isolating the real-time processing from the PC communications.

What I am wondering about is the processing requirements for the PC. The signal core minimum requirements is not extreme for any new computer, but if you have even a 3+ year old i5 you are starting to hit the limit on recommended support. I also appreciate how Windows can be a fickle beast to have anything close to near real-time support. My question is what is the division of tasks that makes the PC require such performance, and what will happen if it does not. Will the interface be sluggish, but your job will run just fine, or are there potential impacts to the job? I am assuming that the G-code is downloaded to the Acorn and then the job runs, with the Acorn providing near real-time feedback for display and manual control via communication with the PC. Once a job is started, I am not seeing where the PC is doing heavy near real-time lifting.
RayL
Posts: 45
Joined: Wed Jan 03, 2018 9:41 pm
Acorn CNC Controller: No
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No

Re: Acorn & PC Division of Tasks

Post by RayL »

I am assuming that the G-code is downloaded to the Acorn and then the job runs, with the Acorn providing near real-time feedback for display and manual control via communication with the PC.
I would be willing to bet that is NOT correct. Typically on this type of controller the g-code parsing, interpretation, and trajectory planning are done on the PC, with periodic motion commands sent to the controller itself (10-100X per second) which actually doe all the real-time motion control (step signal generation, etc.). The trajectory planning (converting the g-code into low-level motion commands, handling acceleration, deceleration etc) is a pretty heavy computational task, especially when done well, hence the need to a lot of processing power on the PC. Trajectory planning is, by far, the majority of the work a cnc controller must perform. I would expect the majority of the PLC processing is likely done on the Acorn itself.

Regards,
Ray L.
Regaards,
Ray L.
cnckeith
Posts: 7166
Joined: Wed Mar 03, 2010 4:23 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: Yes
Oak CNC controller: Yes
CNC Control System Serial Number: none
DC3IOB: Yes
CNC11: Yes
CPU10 or CPU7: Yes
Contact:

Re: Acorn & PC Division of Tasks

Post by cnckeith »

fyi..info on this subject is available in other threads as well
in general.
1.) the BBG is doing most all the heavy motion control lifting
2.) you still want a clean windows 10 install with a decent cpu and an SSD for the best CNC experience
3.) if you want to do Digitizing or use Centroid's G-code smoothing feature you need a decent PC that meets or beats the Centroid Minimum PC requirements. (Centroid's Smoothing pre processes short vector G-code and smooths it out by lofting arcs and vectors thru a best fit curve and requires decent PC CPU performance, smoothing is popular feature with users running large short vector programs generated by cad/cam system that might not be putting out the cleanest Gcode. )
4.) if you are drilling holes or running a lathe you can get away with less of a PC cpu benchmark (AS long as the PC is not loaded up with games and other programs choking up the OS and stealing CPU time)
Need support? READ THIS POST first. http://centroidcncforum.com/viewtopic.php?f=60&t=1043
All Acorn Documentation is located here: viewtopic.php?f=60&t=3397
Answers to common questions: viewforum.php?f=63
and here viewforum.php?f=61
Gear we use but don't sell. https://www.centroidcnc.com/centroid_di ... _gear.html
diycncscott

Re: Acorn & PC Division of Tasks

Post by diycncscott »

The PC parses the G code, breaks up the g code motion commands into vectors, applies accel/deccel trajectories, inserts I/O commands into stream and sends data to motion control board where it is buffered.

Depending on the geometry being processed, size of job and CPU/Network load from other processes, it's possible that the PC may be unable to respond when more vectors/data needed. If that's the case, the software will issue a fault message and the hardware will place itself in a e stop condition
mikes
Posts: 94
Joined: Thu Jan 04, 2018 3:09 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: New Albany, OH

Re: Acorn & PC Division of Tasks

Post by mikes »

diycncscott wrote: Mon Jan 08, 2018 12:01 pm The PC parses the G code, breaks up the g code motion commands into vectors, applies accel/deccel trajectories, inserts I/O commands into stream and sends data to motion control board where it is buffered.

Depending on the geometry being processed, size of job and CPU/Network load from other processes, it's possible that the PC may be unable to respond when more vectors/data needed. If that's the case, the software will issue a fault message and the hardware will place itself in a e stop condition
Base on what cnckevin just stated, I think the notion that the PC is processing g-code and creating low level control directives is incorrect. This makes perfect sense to me. The 3D printer world has been doing this for some time on 8-bit microcontrollers, and they operate at even higher speeds then a mill. From Kevin's response it sounds like the smoothing is preprocessing g-code into optimized (regarding smoothing) g-code. If the Acorn were not doing the real-time vector and accel/de-accel, then it would be doing nothing more them buffering data, which make no sense for something like the Beaglebone Green. If all the g-code processing were done in the PC, you could do this (as Mach3/4 does) with a simple I/O board and parallel port. 100 baseT Ethernet can provide even greater throughput than a parallel port. It does require some conversion and buffering of the data stream, but as I have pointed out the Beagle is a dual microcontroller leaving one processor dedicated for the real work.

It sounds like the PC requirement is realy about responsiveness to user interaction, which is of course is important in a MMI for something like a CNC machine.
diycncscott

Re: Acorn & PC Division of Tasks

Post by diycncscott »

The Acorn does do real-time accel/deccel but it does it on pre-processed vectors coming from the PC. The Acorn does not process G code.
mikes
Posts: 94
Joined: Thu Jan 04, 2018 3:09 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: New Albany, OH

Re: Acorn & PC Division of Tasks

Post by mikes »

Interesting... I wish I could claim to be anything more than a novice in the area of motion control, but my 3D printing experience shows me that complicated vectors as well as acceleration and such can be comfortably accomplished in a 32-bit microcontroller. I mean processing g-code and building the control real-time. In the 3D printing world you download your g-code and set the job in motion. The connection back to the PC, if you even have one, is for feedback and manual control. I suspect the g-code in 3D printing is enormous in comparison to most CNC jobs. Keep in mind that some 3D printer jobs run longer than 24 hours, and as I said they operate much faster than a mill.

If you disconnect the network cable between the Acorn and the PC while a job is running, what happens? Does it complete, pause until the connection is reestablished, or abort?

Having the Acorn require the PC to run a job once started, appears to me to be a design weakness. Again, I am new to the CNC world, and may be missing some key points. That said, CNC and g-code has been around a long time and have been doing some advanced milling even back in the 8-bit days.
Last edited by mikes on Mon Jan 08, 2018 2:47 pm, edited 1 time in total.
mikes
Posts: 94
Joined: Thu Jan 04, 2018 3:09 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: New Albany, OH

Re: Acorn & PC Division of Tasks

Post by mikes »

diycncscott wrote: Mon Jan 08, 2018 12:01 pm Depending on the geometry being processed, size of job and CPU/Network load from other processes, it's possible that the PC may be unable to respond when more vectors/data needed. If that's the case, the software will issue a fault message and the hardware will place itself in a e stop condition
I am sorry if i am hitting this hard, I just want to understand what I may be purchasing, and to the extent the consumer can, how it is architected.

You say that depending of the geometry, etc it may impact the PC's ability to be "ready" to support the Acorn in processing a job. That makes it sound like the PC is doing real-time data calculation on what is static data (g-code). Why would a system be designed that way, when it (PC) can do all the preprocessing of the data before the job even starts? How big are the control data streams? Would it not be better to preprocess the job, send the full job down to the Acorn and run it. I just don't understand why the PC is needed once the job starts.
diycncscott

Re: Acorn & PC Division of Tasks

Post by diycncscott »

The control will attempt to reconnect, if it can not
the software will issue a fault message and the hardware will place itself in a e stop condition

Having the Acorn require the PC to run a job once started, appears to me to be a design weakness.
While the Acorn could keep running after it is disconnected from the PC, given that the PC is used to display the current position, job status, fault status etc.. it would be less than a great idea to keep blindly running a job in that state.

It is not unusual for a G code file to be several GB in size or for a job to run over 24 hours. It would impractical and inefficient to send a multi GB file to a micro controller all at once. As for speed? It's strictly dependent on material and cutting method. Some lasers cutters cut at 3 feet per second.. most 3d surfacing toolpaths are far more complex than a 3d printer 2.5d toolpath
mikes
Posts: 94
Joined: Thu Jan 04, 2018 3:09 pm
Acorn CNC Controller: Yes
Allin1DC CNC Controller: No
Oak CNC controller: No
CNC Control System Serial Number: none
DC3IOB: No
CNC11: No
CPU10 or CPU7: No
Location: New Albany, OH

Re: Acorn & PC Division of Tasks

Post by mikes »

diycncscott wrote: Mon Jan 08, 2018 3:04 pm It is not unusual for a G code file to be several GB in size or for a job to run over 24 hours. It would impractical and inefficient to send a multi GB file to a micro controller all at once.
First, thank you for taking the time to respond. I don't want to come across as though I do not appreciate your time and effort.

Justs so you know, it is very practical to have the full g-code file sent down to the controller, that is exactly what is done in 3D printing. I presently use a 16GByte flash on my controller. Taking a min to download a job that is going to run for 24 hours is just not an issue. I also suspect that the majority of DIY jobs are in the KBytes, and would download in a second or two.

As far as the loss of connection and appropriate action. I am not sure how much a user interface matters when you have a 4 hour job running. Yes, you may check on it from time-to-time, but an operator is not going to watch the PC screen for 4 hours. The concern is one of material loss and efficiency. If the PC fails or the connection is lost, I would much rather come back and see my job done then a fault message, and potentially ruined work. Is it possible to restart a job once aborted do to a connection loss or PC failure? I am concerned about losing valuable material.

Again, I hope I do not appear argumentative, I would just like to understand.
Post Reply