On 8 July 2016 at 07:47, Leonardo Romor <
leonard...@gmail.com> wrote:
> As pause we mean a quick deceleration that doesn't violate machine
> constraints avoiding any steps loss.
Yep. Essentially so that it is possible to pick up afterwards. It is
meant if someone say opens the CNC machine door to inspect the part.
It does not need to be 'immediately', I think it is ok if it takes a
couple of seconds until we get there.
> What I think we could do, since we should follow the profiled path for
> decelerating and not randomly moving in a direction to just stop.
> Would be to change the pru code so that we can force a deceleration from
> whatever accel/deve/travel we are doing to consume any possibile step as
> deceleration for the next slots.
I think there is no need to touch the PRU or have the PRU do something
special. The PRU can't do the work necessary of the 'pause/resume'
thing, because it is a little more complicated than stoping the
current path in the tracks: we might need multiple deceleration
segments to get there (we only can do 64k steps per segment, and if we
are very fast currently, we might need multiple segments to slow down;
something to calculate for the host CPU).
What we need to do is from the host side to look at the segments in
the queue that have not been consumed by the PRU yet, and just replace
the one after the current one with something that decelerates (along
the path it currently is) to zero; maybe these are multiple segments
we need to enqueue actually if the current speed is very fast.
There can be a race condition if the PRU is faster executing the
previous segment than we are able to fully replace the next segment,
so that needs some more detailed thought. But in general, all the
complexity is in the host-side, with the only changes needed for the
PRU to deal with the race condition thing mentioned above.
Anyway, after that, we know exactly where we are, and know exactly
what to do to continue in our track (with some re-calculation, e.g. we
need to speed up again etc.). Also, we can allow the user to jog
around while they are paused (for instance, because they want to
inspect the work-piece without the spindle in the way, want to vacuum
etc.), and then go back to the original position before continuing.
-h
>
>
> what do you think?
>
> -l
>
> --
> You received this message because you are subscribed to the Google Groups
> "beagleg-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to
beagleg-dev...@googlegroups.com.
> To post to this group, send email to
beagl...@googlegroups.com.
> To view this discussion on the web visit
>
https://groups.google.com/d/msgid/beagleg-dev/0d0a7f61-1c00-4d7c-91cf-490e95956106%40googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.