Hi,
if your servo encoder is 10,000 count per rev then Mach would have to produce 10,000 pulses in one second to cause the servo to turn one revolution.
If you want the servo to run at 3000 rpm it will have to run at 50 revolutions per second and Mach would have to produce 500,000 pulses per second to
do it. A parallel port installation can't even get close to 500,000 pulses per second, 25,000 per second is the norm.
Thus because of the limited pulse speed of Mach you can't use the full potential of the servo. One way around that is to use electronic gearing.
If the denominator is set to 20 then for each pulse received by the drive from Mach the servo will turn 20 counts of its encoder. If Mach produces its
max 25,000 pulses per second the servo will turn 20 *25,000=500,000 counts per second ie 3000 rpm.
You don't get it for nothing. Without electronic gearing the servo resolution is 1/10,000 rev=0.036 degrees or 2.16 min of arc. With an electronic gear ratio of 1/20
the resolution is 20/10,000 rev=0.72 degree or 43.2 min of arc. Using electronic gearing trades resolution for speed.
Most external motion controllers have pulse speeds much higher than Machs parallel port, 100kHz is a minimum, my ESS can manage 4MHz. Most servo drives
can't even with differential signaling accept more than 500kHz so 4MHz is somewhat academic. It is still useful if reading an encoder however. Many Delta servos
for instance have 17 bit encoders for 131,072 counts per rev or 6.5MHz at 3000 rpm!
Give me some details about what your trying to achieve and I'll try to help with the two numbers you require (numerator and denominator). You'll need to know the maximum
useful signaling rate of your controller and the maximum speed that you wish to run the servo. Note that single ended signaling is good to about 75kHz (the manual
might say more, but 75Khz is safely conservative) and beyond that you'll need differential signaling. If your BoB can't do it you'll have to make a circuit with a line
driver IC on it.
Craig