Hi,
this has been done for a very long time with the Mach software. Based on that, I fail to understand the "real time" issues related to Windows.
Mach, or indeed any program on a PC, does not run continuously. It will run for a few milliseconds and then Windows will rush away
and do anther job or even several jobs and then come back to Mach and run for a few more milliseconds. This is the nature of
Windows and little or nothing you can do about it.
Your steppers/servos require non-interrupted pulse streams, the machine would stutter and stall if it relied on Mach alone
to generate pulse streams given that Mach runs 'in fits and starts'. For this reason Mach builds up a string of moves
and stores them in a buffer so while Mach is idle waiting for CPU time the motion controller 'has something to go on with'.
Its that 'something to go on with' that characterizes ALL Windows based CNC programs. While it works pretty well,
jogging in response to an MPG is one area where the 'something to go on with' idea catches you out.
The CSMIO works as well as it does because it can directly process MPG pulses to step/direction pulses without Machs
intervention. It is however the only controller that does that, to the best of my knowledge, and until Hood pointed it out
I didn't know that.
All the genuine realtime hardware controllers are very expensive, ten times and more what Mach costs.
LinuxCNC however is free and the hardware required is modestly priced. I personally am not a fan of Linux but you may
differ.
I use a VistaCNC P1A pendant, first with Mach3 and then with Mach4. The pendant is USB connected to the PC and has its
own plugin. In response to the pendants plugin Mach plans moves and communicates them to my ESS which in turn
generates the pulse streams required to move the axes. I have no trouble, if I select 0.1mm per click, the axes move 0.1mm
per click. What can happen if I select 1mm per click and spin the MPG fast the 'clicks stack up' faster than the machine can move,
and the machine runs on after I have stopped spinning the MPG to catch up on the backlog. It is very un-nerving. If I increase
the jog speed the machine can move that much faster an the problem is much reduced. I don't like that idea much, usually when I'm
jogging I want modest movement speeds to prevent overruns, inaccuracy and crashes. For this reason I tend not to use 1mm
per click, but I find 0.5mm per click or 0.1mm per click better matched to my machine speed and my brain function!
There is a thread running on the Mach4 board which talks a bit about Ethercat. Ethercat is essentially real time communication
for which Windows PCs have struggled because they are not real time capable. What changed here is a
VERY clever
innovation provided by Interval Zero called RTX64 which adds a real time processing core to your existing Windows machine.
Further is sounds like its coming to Mach4 soon......and we hope affordably.
https://www.machsupport.com/forum/index.php?topic=41233.0Whether it would solve your problem is not immediately clear to me but it might interest you. Googling Interval Zero and
RTX64 will yield some very interesting and informative videos.
Craig