Machsupport Forum

Mach Discussion => General Mach Discussion => Topic started by: mmurray70 on February 21, 2016, 09:59:07 PM

Title: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: mmurray70 on February 21, 2016, 09:59:07 PM
Curious how feed hold works when using a ESS? I understand there is sort of a buffer of moves sent to the ESS in case there is a slight delay with mach right? So what happens when you hit feed hold? Does the ESS handle the feed hold command and stop instantly or do you have to wait for this "buffer" to run out and the feed hold command from mach finally reaches the ESS?

Typically how long is this buffer? Are we talking fraction of a second? few seconds? Even longer? Thanks.

Mark
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: fixittt on February 21, 2016, 11:59:44 PM
The SS and Uc100 both have buffers.  I have seen the SS buffer take a couple seconds to stop the mill.
In the video you can hear the mouse click at 16 seconds. Machine stops at 20 seconds.
https://www.youtube.com/watch?v=b_TvtD847A0
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: dude1 on February 22, 2016, 12:05:13 AM
in M3 it's the end of the line of code it's on
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: Tweakie.CNC on February 22, 2016, 03:02:52 AM
Hi Mark,

I think your understanding is correct.

From the ESS doc...
A smaller buffer size is more responsive to Feed Hold commands, but more sensitive to the ESS running out of data if your computer gets bogged down. 
A larger buffer size is less likely to experience the ESS running out of data, but will take longer to respond to Feed Hold commands.

Tweakie.
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: mmurray70 on February 24, 2016, 08:09:31 PM
Thanks for the help guys. Found more info about this on the warp 9 website. Here are the details if anybody else is interested:

The ESS has a fixed amount of memory, and the controller frequency is a setting for how many motion positions per second there are, or how many times each second the velocity is sent from Mach 3 to the ESS.  Having it output data faster means that if can buffer less data.  If your system is running out of data, try slowing this down to a slower frequency so  the SmoothStepper can go for longer periods of times between updates from the PC/Mach3.

4 kHz gives a buffer of 250 ms or 1/4 second:  This provides a faster response to commands like feed hold, since it uses only a quarter second buffer.  However, your PC needs to be able to supply the data transmissions to the SmoothStepper fast enough (newer PCs that are not low end, and that are running properly, can handle this).  While this provides for a snappier response, it will not be reliable for all machines and you may experience run out of data errors.
2 kHz gives a buffer of 500 ms or 1/2 seconds.
1 kHz gives a buffer of 1000 ms or 1 seconds:  This is the default value most machines should use.
500 Hz gives a buffer of 2000 ms or 2 seconds.
250 Hz gives a buffer of 4000 ms or 4 seconds: Slow PCs can run this speed, and with a 4 second data buffer, it will make it hard for them to run out of data.  This setting will have the slowest change in velocities out of all the settings, but should still work just fine for most applications.
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: stirling on February 25, 2016, 06:16:00 AM
To calculate the TOTAL time from feedhold to stopped motion - don't forget to add in the deceleration ramp. If you have poor accel then this can be significant compared to buffer flush time.
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: olf20 on February 25, 2016, 06:57:21 AM
Is there a gcode command that will flush the buffer?
Thanks
olf20 / Bob
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: stirling on February 25, 2016, 07:10:06 AM
Sorry - flush was perhaps the wrong term. The buffer isn't so much flushing as emptying.

As your motion is going along, Mach is constantly checking for space in the buffer and constantly adding more of its planned motion. When you feedhold it stops adding motion from the planner and instead adds the decel motion. So whatever motion was in the buffer MUST be allowed to finish and then the decel ramp finishes the job. Does that make sense?

Contrast that with a limit or e-stop where motion ceases immediately and the currently buffered motion IS flushed or dumped.
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: olf20 on February 25, 2016, 07:39:47 AM
Makes sense!
Thanks!
olf20 / Bob
Title: Re: How does feed hold work when using a smooth stepper? Is it delayed?
Post by: stirling on February 25, 2016, 10:16:20 AM
I know this thread is about the SS but it does raise an interesting point about PP users upping their kernel rate beyond that which is strictly needed for velocity.

A 60KHz kernel will certainly empty the existing buffer faster than a 25KHz kernel, so feedholds WILL be quicker. We're talking speeding up the buffer unload from a max of 819ms to a max of 341ms. Is it worth it? Well I suppose if your machine can handle higher kernel speeds then why not? Then again if your (lower than ideal) accel is what's really slowing down feedhold then probably not.