A rather common
question on the various DIY type CNC forums around the
internet goes something like this:
- I have an old
machine with a dead controller, I'd like to retrofit it
with Mach3, what are my options?
On this page I'll try
to cover some of the options available as of today,
please note though that I haven't tried all of them
myself and there may be ways that I don't know about so
this is neither a complete reference nor a manual for
Mach3 or any of the devices shown.
Before we go into how
Mach3 fits in here, lets take a look at a typical "classic"
CNC-system as can be found on many older machinetools.
(By the way, you can rightclick and 'save target as' to
get larger (300dpi) versions of the pictures.)
A tachometer on the
motor feeds back velocity information to the amplifier
and a resolver feeds back position information to the
control. The control runs the position PID-loop and
calculates how much "effort" is needed from the motor to
stay on path/in position. This "effort", represented
either as a torque command or a velocity command is sent
to the amplifiers in form of an analog voltage, usually
+/-10V where +10V is max torque or speed in one
direction and -10V is max in the other direction.
On some systems the
position feedback device may be an incremental encoder
mounted on the motor, on the screw and sometimes even
linear scales mounted to the actual machine slides but
the principle is the same.
So how does Mach3 fit
in here? Well, if the existing amplifiers works there
are a couple of ways to do it. Since Mach3, "out-of-the-box"
outputs step and direction signals we can use a device
that converts these signals to an analog voltage that we
can feed to drives. One such devoce is called the
YAPSC:10V and a system using that might look like
this:
What's worth noting
here is that the resolver from the "classic" system has
been replaced with an incremental encoder that feeds
postion information back to the
YAPSC:10V which closes the position loop. From
Mach3's point of view this is just as drivning a
stepmotor system, it does not know or care that it's
actually servo-motors driven by analog servo-amps. A
fault signal from the
YAPSC:10V can be routed back to Mach3 to let it know
if one or more axies faults. (Not shown in picture.)
This is probably the
cheapest possible way to make use of the existing
drives. The good thing is that because it is connected
to Mach3 thru its "native" interface (step and direction
signals thru the LPT-port) everything that works in
Mach3 works with the
YAPSC:10V. The drawback is that you must have a
computer with a LPT-port and the speed may be a limitng
factor depending on encoder resolution, desired axis
veloctity and computer perforamce.
The next option is to
use an external motion controller like the
DSPMC from VitalSystems:
Here we
are still using the existing drives, the resolver has
been replaced with an encoder which feeds back position
information to the
DSPMC controller that closes the position loop. In
this case Mach3 is "extended" with a plugin specific to
the
DSPMC and they communicate thru the network.
The
benefits here are that you no longer relies on
step-pulses being generated by software and output thru
the LPT-port so much higher speeds and/or resolutions
may be a possible. It can also be operated on computers
without LPT-ports (obviously) and the it's not as
demanding on the computer as the LPT-port driver is
which means you can use a cheaper/older computer. Not
that the LPT-port needs THAT much of a computer but
anyway.
The
drawbacks are that it's a lot more expensive than the
YAPSC:10V aproach for example and because there's a
plugin-software "between" Mach3 and controller there may
be features in Mach3 that aren't supported or doesn't
work the same way as they do with the LPT-port. On the
other hand the plugin and external motion controller may
OFFER features that aren available natively in Mach3.
Another
option, similar to the DSPMC is the
KFlop
motion controller from
Dynomotion. In
order for it to work with analog drives it needs to be
extended with the
KAnalog
add-on card. Apart from the fact that it talks to Mach3
via USB instead of TCP/IP the overall motion system is
the same as with the Vital Systems DSPMC:
Basically the same
drawback and benefits as with the DSPMC applies here.
One "simply" needs to read up on the various features
avialable by the different controllers and their plugins.
The next system we are
going to look at is a little different:
Here we are back to
using step- and direction signals thru the LPT-port of
the PC but in this case the analog servo-amplifers have
been replaced with ones that accepts step- and
direction.The tachometer is no longer needed (although
it may very well be left on the motor) and position
information is fed back to the drive which closes
position loop. This is a very common servo system setup
with Mach3 and there are servo drives available from
many sources from open source to industrial multi kW
brushless drives.
The final system I'll
show here is also based on replacing the analog drives
with new ones that accepts step- and direction. The
difference is that here we're using an external pulse
engine, in this case the
Smoothstepper
instead of relying on the PC and the LPT-port. This
pretty much means it has the same benefits and drawback
as with the other external motion controllers outlined
above, one difference though is that position loop is
now being closed by the servo-drive instead of by the
motion controller.
Please note that there
are other "pulse engines" available, the
KFlop
mentioned earlier is one example.
What has been covered
here is the basic motion part of the system but there's
often more to it than that, like spindle and coolant
control, limt and home switches, basic I/O, and perhaps
a toolchanger. The different hardware devices shown
above all offers different amount of I/O etc so which
ever way you choose to go make sure you read up on
what's available and what's not.
//Henrik Olsson.
2009-11-26
|