RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Posted by
Alan Marconett
on 2005-07-25 08:44:15 UTC
Hi Les,
Thanks for the additional information. Sounds like the Mach driver does a
good job, as long as the competing programs you describe are kept out.
I can see how a circular buffer would be used for communication with the
driver. I gather that it passes blocks (structures) of velocity (or steps?)
and step counts for the driver to generate? Are there any return messages?
Any thought to running this circular queue out a USB, and into a hardware
pulse generator device (G2002 comes to mind)?
Alan KM6VV
Thanks for the additional information. Sounds like the Mach driver does a
good job, as long as the competing programs you describe are kept out.
I can see how a circular buffer would be used for communication with the
driver. I gather that it passes blocks (structures) of velocity (or steps?)
and step counts for the driver to generate? Are there any return messages?
Any thought to running this circular queue out a USB, and into a hardware
pulse generator device (G2002 comes to mind)?
Alan KM6VV
> -----Original Message-----
> From: CAD_CAM_EDM_DRO@yahoogroups.com
> [mailto:CAD_CAM_EDM_DRO@yahoogroups.com] On Behalf Of Les Newell
> Sent: Monday, July 25, 2005 2:25 AM
> To: CAD_CAM_EDM_DRO@yahoogroups.com
> Subject: Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they
> work?
>
> Hi Alan,
>
> The Mach2/3 driver is not a normal windows task. It installs itself as
> an interrupt handler for the timer then reprograms the interrupt
> controller to make the timer the highest priority. The task scheduler is
> also interrupt driven but as it is now at a lower priority the Mach2
> driver will be serviced before the task scheduler. The driver is then
> fed from the main Mach2 application which runs as a normal high priority
> Windows task. The application communicates with the driver through a
> circular buffer. Each entry in the buffer is the equivalent to one cycle
> of EMC's servo loop. EMC works out the velocities in real time every x
> milliseconds while Mach2 calculates them in advance. The buffer is
> continually filled from Mach2 and emptied by the driver. There are a few
> weaknesses in this arrangement:
>
> DMA or any hardware that disables the CPU will of course interrupt the
> pulses. This is the case with any software based pulser including EMC.
> Some applications and services such as qttask reprogram the timer and/or
> interrupt controller causing the driver to run slow or end up running at
> a lower priority.
> If the system is heavily loaded and Mach2 does not keep the circular
> buffer full the pulses will abruptly halt until Mach2 catches up then
> they will abruptly start up again. Using a bigger circular buffer helps
> but slows down jogging/pause response. This is why response can become
> very choppy for slow CPUs. It doesn't help that the driver is taking up
> a fair percentage of CPU time.
>
> Les
>
>
> KM6VV wrote:
>
> >Hi Les,
> >
> >Interrupt priority? That's it? But isn't it more like the highest TASK
> >priority? the pulse stream could still be delayed or altered if another
> >task was still "taking it's good sweat time", and not relinquishing
> >Control. Do you have more detail?
> >
> >Alan KM6VV
> >
> >
Discussion Thread
ibewgypsie
2005-07-24 06:41:06 UTC
Windows timing subroutines, how do they work?
Jack Hudler
2005-07-24 12:59:51 UTC
RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Jon Elson
2005-07-24 13:00:59 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
KM6VV
2005-07-24 13:14:20 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
ibewgypsie
2005-07-24 13:30:22 UTC
Re: Windows timing subroutines, how do they work?
Jim Peck
2005-07-24 14:45:43 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Les Newell
2005-07-24 15:04:21 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
KM6VV
2005-07-24 16:46:14 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
notoneleft
2005-07-24 17:20:45 UTC
Re: Windows timing subroutines, how do they work?
Jon Elson
2005-07-24 20:00:49 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Jack Hudler
2005-07-24 21:17:33 UTC
RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
ibewgypsie
2005-07-24 22:04:15 UTC
Re: Windows timing subroutines, how do they work?
Mariss Freimanis
2005-07-24 23:41:25 UTC
Re: Windows timing subroutines, how do they work?
Jack Hudler
2005-07-25 00:45:30 UTC
RE: [CAD_CAM_EDM_DRO] Re: Windows timing subroutines, how do they work?
caedave
2005-07-25 02:23:24 UTC
Re: [CAD_CAM_EDM_DRO] Re: Windows timing subroutines, how do they work?
Les Newell
2005-07-25 02:23:26 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Les Newell
2005-07-25 02:34:10 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Fred Smith
2005-07-25 07:47:13 UTC
Re: Windows timing subroutines, how do they work?
Alan Marconett
2005-07-25 08:44:15 UTC
RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Jon Elson
2005-07-25 09:30:49 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
ibewgypsie
2005-07-25 10:01:52 UTC
Re: Windows timing subroutines, how do they work?
Les Newell
2005-07-25 11:02:16 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Alan Marconett
2005-07-25 13:22:42 UTC
RE: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
Les Newell
2005-07-25 14:58:54 UTC
Re: [CAD_CAM_EDM_DRO] Windows timing subroutines, how do they work?
caudlet
2005-07-25 19:46:24 UTC
Re: Windows timing subroutines, how do they work?
ibewgypsie
2005-07-25 21:19:36 UTC
Re: Windows timing subroutines, how do they work?
Jymmm
2005-07-25 22:29:38 UTC
Re: Windows timing subroutines, how do they work?
yahoo@h...
2005-07-26 02:10:13 UTC
RE: [CAD_CAM_EDM_DRO] Re: Windows timing subroutines, how do they work?
Mariss Freimanis
2005-07-26 08:15:13 UTC
Re: Windows timing subroutines, how do they work?
Mariss Freimanis
2005-07-26 08:19:33 UTC
Re: Windows timing subroutines, how do they work?
ibewgypsie
2005-07-26 10:36:48 UTC
Re: Windows timing subroutines, how do they work? JitteryMonkey pic
ibewgypsie
2005-07-26 10:48:27 UTC
Re: Windows timing subroutines, how do they work? JitteryMonkey pic
ibewgypsie
2005-07-26 11:08:39 UTC
Re: Windows timing subroutines, how do they work?
Andrey Lipavsky
2005-07-27 06:05:52 UTC
Converting a rotary table
victorlorenzo
2005-07-27 07:02:24 UTC
Re: Converting a rotary table
David Micklethwaite
2005-07-27 16:36:34 UTC
Re: [CAD_CAM_EDM_DRO] Converting a rotary table
cutsgems
2005-07-27 18:38:06 UTC
Re: Converting a rotary table
Andrey Lipavsky
2005-07-27 20:24:07 UTC
RE: [CAD_CAM_EDM_DRO] Re: Converting a rotary table
cutsgems
2005-07-28 08:54:39 UTC
Re: Converting a rotary table
Les Newell
2005-07-28 09:23:43 UTC
Re: [CAD_CAM_EDM_DRO] Re: Converting a rotary table
Andrey Lipavsky
2005-07-31 16:43:28 UTC
RE: [CAD_CAM_EDM_DRO] Re: Converting a rotary table