Comm Buffer Size Question
Posted:
Thu Sep 28, 2017 8:09 pm
by CT63
The default comm buffer size is 0.1 and can be changed by the user. Is there a way of determining if this setting is best for a specific driver or computer system? What are the advantages or disadvantages of changing it? Not much is mentioned in the ETH400 or UCCNC software manual.
Re: Comm Buffer Size Question
Posted:
Fri Sep 29, 2017 10:11 pm
by cncdrive
The communication buffer lenght is the size of the buffer between the computer and the motion controller. The buffer lenght is defined in seconds. For example 0.1 buffer lenghts means that there is a 0.1seconds long buffer between the computer and the motion controller.
If the computer gets overly busy for upto this time period that will not cause a problem, because the controller can still work from the buffer and can quickly refill the buffer when it will be less loaded.
A problem occurs if the buffer is shorter than how long the computer gets fully busy. For example the buffer lenght is set to 0.1sec and the computer goes 100% overloaded for 0.2seconds, then this is a problem, because after the first 0.1seconds the buffer runs empty and in this case the motion controller will have no more data to work with.
What happens in this case is the motion controller stops the current motion with decceleration to the endpoint in the motion buffer and it will start motion again as soon as it receives new motion data into the buffer.
The buffer running empty is therefor not a catastrohic failure event, but it is not a good thing to happen, because the motion will be not fluent which is not optimal for cutting.
A 0.1sec buffer works fine for most computers and for higher end ones especially for multi code machines even the 0.05sec works fine, because multi-core machines are harder to go fully overloaded, because the tasks are shared between the processors, so it is not a likely event to happen that when one software having an issue fully overloads all cores of the CPU, it mostly only loads one core to 100%. (Ofcourse it depends on the software, but this is what happens with most softwares.)
The advantage of having a shorter buffer is that things happens more instant. For example changing the FRO value takes effect after the time of the buffer length. A 0.1sec is kind of instant while a 0.5sec is easily detectable with human scale, so it can make things to look acting laggy.
And the disadvantage of a short buffer or in other words the advantage of a long buffer is that the computer can run fully overloaded for longer time periods without causing the buffer to run empty and so the motion to pause, but as above mentioned it will cause a slower reaction time for function which fills data into the motion buffer.