Block Processing Speed

More
29 Oct 2016 17:06 #82238 by Feliciano
Hi guys,

I'm doing a systematic compare between linuxCNC and other industrial CNC for my master thesis. One thing that is getting me nuts is the block processing speed. Actually, I want to use this as my parameter to make a relation between a Fanuc 0i controller that we have on a 3 axis machine and a linuxCNC with mesa card and closed loop feature. Reading a lot about the meter, I get to a point to understand the block processing time as a servo period on linuxCNC, because BPT is the time take by the controller to processes de G code and send a update of that to the servos. But my question is, how much time linuxCNC actualy take to process a G1 ou a G2 block.

Did you guys could give some help with this? Thanks a lot, and sorry for some english mistake

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 20:31 #82240 by Todd Zuercher
I am afraid that this is actually a much more complicated question than it appears on the surface. Because of how Linuxcnc's tool planner works, the blocks of code are read and processed long before the move is commanded. I suspect he whole strategy is significantly different from how a Fanuc control works. Throw in special high speed machining code processing options used on most modern Fanuc controls, such as HPCC, APPC, and AIAPC, it can get to be really hard to know if a limitation is a real design limitation or just a limit created to get you to buy a better option.

Please Log in or Create an account to join the conversation.

More
29 Oct 2016 20:33 #82242 by PCW
Replied by PCW on topic Block Processing Speed
Not an expert but here's my understanding of this:

The servo thread period is not directly related to the block processing time
The servo thread normally sets the update rate of the low level hardware.

So for example with a hardware step generator or velocity mode servo, the servo thread
sets the rate that straight line segments are emitted and that the position feedback loop runs.

The block processing is done at a higher level and multiple blocks are queued before being
processed into real time trajectories (position updates at the servo thread rate).

You _may_ be able to get a sense of how much time the processing takes (per trajectory planner invocation)
by watching the motion-controller.time pin

On LinuxCNC with a reasonably fast CPU, simple G1 blocks can be processed at at least a couple
of thousand blocks per second so this is rarely a limitation

Note: I created a realtime LinuxCNC config with outrageous velocity and acceleration parameters
(2000 IPS 20000 IP/S^2) to test fast block processing with standard example files

Please Log in or Create an account to join the conversation.

More
31 Oct 2016 01:11 #82266 by Feliciano
Replied by Feliciano on topic Block Processing Speed
Thank you guys,

well I've looked deep in to it and I found something about it, not specifically about the linuxcnc but about the processing time on the Miles Arnone book High performance machining.

The objective is to point out what's the main diferences and "advantages" of using linuxcnc compare to a Fanuc controller in a technical point of view. As Arnone talks, a look ahead could help getting more from the controller. Also I found that linuxcnc is testing a look ahead for future updates. If you guys have any idea to assist me it would be very helpfull.

But, if linuxcnc have no look ahead, how the G64 works? Should be at least 2 or 3 lines of code to compose a bland, I'm right?

Thanks again guys

Please Log in or Create an account to join the conversation.

More
31 Oct 2016 02:09 #82267 by PCW
Replied by PCW on topic Block Processing Speed
LinuxCNC versions 2.7 and > have a default 50 segment lookahead:

linuxcnc.org/docs/html/config/ini-config.html#_traj_section

(you can change the lookahead by setting it in the INI file)
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

More
31 Oct 2016 03:52 #82270 by tommylight
Replied by tommylight on topic Block Processing Speed
It does have, and can be set at any value, as far as i remember from when 2.7 came out.
If i remember correctly it was set to 50 lines, by default.
I switched to using 2.8 pre some time ago and i noticed that it can move through gcode like a bat out of hell. I build some small machines for engraving on stone or glass or any hard surface, and the software for converting the pictures to gcode (modified dmap2gcode) produces a lot of lines of code as it has to change the PWM for the pressure head several times in a picture line, times several hundred lines per picture, example a picture 100x110mm results in 788kB of code, or 56333 lines in that example. Takes 5 minutes to complete, so over 1800 lines per second. All this has to run at 2-3 meters per minute at a constant rate. I did not try it any faster.
I also use some industrial controls, but i do not believe they can do that as they use much slower computers and, but they are optimised for that purpose so i do not know.
I doubt this is helpful to you, but it is related to gcode speed of processing in Linuxcnc.
Regards,
Tom

Please Log in or Create an account to join the conversation.

More
31 Oct 2016 17:18 #82277 by DaBit
Replied by DaBit on topic Block Processing Speed
Same here; I have been executing ultra-dumb profile milling G-code at way over 2000 G1 lines per second.

The preview doesn't like a gazillion of small segments though and must be switched off for really huge files.

Please Log in or Create an account to join the conversation.

Time to create page: 0.075 seconds
Powered by Kunena Forum