Hi,
I suspect that you are up against the limitation of a Windows CNC solution.
Windows is not a realtime system and due to Windows extensive use of the interrupt system for its own purposes it cannot
ever be a realtime system. CNC
IS and IS REQUIRED to be realtime.
To achieve CNC control all Windows CNC solutions are buffered. That is to say that Mach issues P(osistion)V(elocity)overT(ime)
data to a motion controller in a buffer, sometimes as short as 50ms but possibly up to 1000ms. Please note that for the purposes
of this explanation that I consider Machs parallel port a motion controller just like a SmoothStepper or UC100.
Any realtime operation required by the CNC machine
MUST be handled by the motion controller. As an example if you
are referencing (homing) your machine and the X axis is advancing towards its home switch. When the switch activates the
axis must stop immediately. The motion controller must do it, it can't wait to send a message to Mach, Mach decide what to do
and then send an instruction back by sticking it in a buffering queue. Its just to slow...the machine would have overrun the
home switch already. This is an example, one of many, of realtime 'supports' that a motion controller must be able to offer
because its nominal 'master' is at the far end (time wise) of a queue.
With respect to jogging, Mach plans a trajectory and issues PVT data to the motion controller by adding to the buffer.
Many, if not all, industrial machine controllers are realtime, thus each 'click' of an MPG results in a 'click or step' at the servo
concerned within microseconds.
It is not surprising then that there is a difference between to two approaches.
I have used Mach3 and Mach4. Mach4 has a somewhat faster response but is still buffered. I leave my Mach4 installation
at its default buffer length of 180ms. With subtle differences they both perform similarly.
If you require realtime response use a dedicated industrial controller or use LinuxCNC. Certain distros of Linux have
R(eal)T(ime)E(xtenstions) and makes a pretty fair realtime system.
It is possible to make Windows into a realtime system, the RTX64 solution of Interval Zero is a very good example and is well
worth Googling. It will help you understand the difference between Windows and buffering verses realtime. At the time I researched
it was beyond hobby budget.
Note also there is a conversation going on in the Mach4 board that addresses a similar issue. Both that thread and private
communications suggest that an Ethercat solution may be on the cards which rely on RTX64 to provide realtime determinism
to a Windows PC.
https://www.machsupport.com/forum/index.php?topic=41233.0Craig