Kind of negative. I meant to say that servos have some inherent
advantages over steppers, the biggest of which is the ability to close
the control loop in software, using encoder feedback.
This is why the world has moved on, and most everyone is using servo
technology right now.
Right. This is a servo drive with a closed loop, and easy computer
interface that looks like a stepper, so you cna use Mach3.
But what the computer does not know is what is the current following
error, so it cannot make decisions involving following error over
What is this electronic gear, is that for threading?
It is just possible to match the pulse output capability
of the controller and the servodrive.
At my spindle, I would need 3000RPM * 2000ppr / 60 min/s = 100kHz
pulse rate at step input to get full speed. With 100:1 electronic
gear, I get the same speed with 1kHz pulse rate, which is realistic
with PC parallel port.
Of course, the spindle angular accuracy is also just
2000/100 pulses per revolution. Works for me as I just
need the spindle servo control for running tool changer
(which is a EMCO hack where tool changer carousel runs with
spindle servo motor through a gear touching spindle gear
only in tool change position of Z, outside normal Z range).
This kind of little machine (google image found this link, not mine)
I replaced the right electronics unit with a little box of
modern electronics, bolted to the side of the main unit.
In my opinion, the drivers which accept step and direction
pulses to run a servo motor throw away some of the benefits of servo
motors, including smooth motion and the ability to traverse
intermediate values without leaving steps in the workpiece. After all
-- even though the motor is capable of intermediate positions, the
controller is not capable of commanding them to reach those positions
if it has to treat them as steppers.
Because the steps may *not* be small enough. This is certainly
the case with my Emco-Maier Compact-5/CNC lathe. A little lathe made
mostly for teaching CNC machining. The minimum step (from the program
point of view) is either 0.01mm or 0.001" depending on the position of a
front panel switch. The steps are in metric units, so the inch units
wind up with patterns like:
0.001-0.002- -0.004 0.005- -0.007
And -- to make it worse, the cross-feed steps have to translate into
diameter, so a slow taper like a Morse is visibly stepped.
And if you are going to say -- finer steps and step faster, that
machine *can't* step fast enough as it is. As an example, when
threading with a fairly coarse thread, you have to slow down to 180 RPM
(or sometime slower) on the spindle so the CPU can keep up with stepping
the longitudinal feed at the right times. The CPU is an ancient 6502,
and has little enough memory so finer steps would reduce the nubmer of
program lines possible -- because the input is fixed format.
Of course. But steppers run fast can introduce resonance in the
leadscrews -- and the same applies to servos pretending to be steppers.
Oh yes -- the fineness of the steps with a servo pretending to
be a stepper is limited by the resolution of the encoder on the servo's
shaft. Used as a true servo, the computer simply outputs a voltage
saying "go so many RPM" and the servo amp takes care of keeping that
happening. The computer simply checks every so often to make sure that
the speed is right, and if it is a little too fast or slow, it changes
the output voltage just enough to fix that speed. And this gives a
smooth travel between the two end points, even in the areas where the
encoders don't have resolution to tell the difference.
The only disadvantage to true servo operation that I can see is
that if the computer hangs up (say a Windows box which experiences BSOD
-- Blue Screen Of Death), each axis will keep going at the last
commanded speed -- until it hits a limit which should be wired to shut
it down fully. With steppers, a hung computer will stop outputing
pulses, and the motor will stop. Likely a spoiled job in either case,
but less potentially exciting with the steppers.
And with servos in home machines, it is likely being controlled
by what used to be called EMC, and is now LinuxCNC, which runs in a real
time engine under the linux OS' kernel, so a hang is less likely.
There is a solution for this also, pulse input that requires
pulses from the controller all the time, and if pulses stop
(controller hangs), it disables drives. My mach3 system is
built like that. In Mach3 it is called "change pump" output.
In other parlances, that's called a "dead man signal". Common on all
The name comes from the pedal or lever that railroad engineers had to keep
depressed all the time for the locomotive to move. If they fell off the
"dead man switch", the engine stopped.
On Tue, 12 Jun 2012 22:48:58 +0300, Kristian Ukkonen
I believe you meant "charge pump", Kristian.
Doctors prescribe medicine of which they know little,
to cure diseases of which they know less,
in human beings of which they know nothing.
--Francois-Marie Arouet Voltaire, about 250 years ago
But since Mach3 does not do "true servo" operation -- only
servos pretending to be steppers, so if the computer hangs up, Mach3
stops producing pulses anyway.
The "servo pretending to be a stepper" is accomplished by a
counter controlled by the step and direction pulses, and another one by
the encoder on the servo motor. The Gecko servo driver is an example of
Typically, there will be a circuit comparing the count in each
of the two counters, and producing a voltage proportional to the
difference between the two counts. The step and direction pulses get a
burst to move to a higher value, and the voltage difference starts the
motor moving (speed dependent on the difference) which starts counting
encoder pulses until the two are equal again. This circuitry is totally
separate from the computer, so if the computer hangs it stops outputting
pulses, so there is no problem. (This unless the computer is asked to
be part of the driver too, which I have not yet encountered.
So the only place where I would expect this problem to show up
is when using a servo as a true servo -- controller outputs a desired
speed voltage, not pulses, and the servo amp (driver) simply runs the
motor at that speed until it is changed.
As for the hanging problem, computers designed to run unix have
in their hardware a "watchdog timer" -- the OS pokes at it once every so
many milliseconds, and if it does not get a poke in so-many + 10% or so
milliseconds, it generates a pulse which resets the computer, starting a
reboot, and hopefully, the card generating the speed command voltages
will sense that reset and adjust the output voltages to zero. But in
any case, the axes with true servos should have limit switches to shut
down the servo amps to prevent crashes. Again -- something which does
not depend on the computer.
Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here.
All logos and trade names are the property of their respective owners.