Re: [CAD_CAM_EDM_DRO] PC to driver interface types
Posted by
Jon Elson
on 2003-09-30 10:22:48 UTC
builder4wd wrote:
the computer to only send a signal when a one-step movement is required.
It can be done in software, although the performance is limited. This
is generally
an "open-loop" system, where the computer has no feedback of where the
machine actually is, it just assumes it has followed every step pulse sent.
Gecko and Rutex have both servo and stepper drivers that accept these
signals.
The old-style analog servo system has the computer, through a Digital
to Analog Converter, send a voltage from -10 V to +10 V to a servo
amplifier. This signal is proportional to the velocity the computer has
decided the machine needs to move at to minimize error. This requires
a closed-loop system, where the computer has the encoder sending information
on the machine's position. The Servo-to-Go and Pico Systems PPMC
boards are examples of this type of interface. Copley Controls makes some
newer, relatively inexpensive servo amps of this type. Servo Dynamics,
Westamp, Kolmorgen and others have made these type of amps for many
years. Some of the advantages of these systems are that they can be
switched
from CNC to manual and back to CNC without losing position, and that the
computer can constantly monitor following error, and stop the machine if
it exceeds a user-controlled limit.
PWM servo amps are similar in many ways to the analog servo system, but
they eliminate the analog signal. This allows better isolation between the
high-power driver stages and the PC. But, you need a servo controller/
interface that puts out a PWM signal at the frequency required by the amp.
If you have a controller that puts out a 15 KHz PWM signal, and an amp
designed for 100 KHz, it may not work at all, may smoke the amp, or have
some other unwanted effect. So, it is a bit harder to mix and match the
systems.
The old, traditional velocity servo system had 3 nested control loops.
The innermost loop was motor current. Current was measured, and
forced to match the torque command. (Motor torque is very closely
proportional to current.) The torque command was derived from the
next outermost loop. Velocity was measured by a DC tachometer and
compared to the commanded velocity, and the error between those
was used as the torque command to the inner loop. The outermost
loop was the position loop, and was computed by the CNC computer,
by measuring actual position with the encoder, and comparing to desired
position every update interval, and adding in desired velocity and
PID compensation terms. Then, a new velocity was sent to the servo
amp.
The PWM servo amp is often used to get rid of many of these measurements,
such as motor current and tachometer velocity, but the system performance
can suffer unless it is done JUST right. This gets into deep levels of
control
systems theory, where continuous-time and discontinuous-time systems
meet.
I don't know of any PC CNC program that will support such amps directly.
I can say that with some relatively minor reprogramming, my Universal
Stepper Controller has all the things you'd need to generate PWM pulses.
It can read encoder positions, and the logic dedicated to making step pulses
could be converted to a PWM generator with rather small changes. The
big problem is someone would have to write a fair bit of code to implement
the inner control loops mentioned above in the low-level driver software.
If someone wants to try this, I'd be glad to do the FPGA program changes,
and make a "Universal PWM Controller" version of the product. I'd
also be interested in putting one of these together to test it here, with
motors and amps.
Jon
Jon
>Hi, I have a question:The standard PC CNC program uses step and direction signals. This requires
>What are the different types of PC to driver interface? For example,
>how would these drivers: http://www.a-m-c.com/products/pwminput.htm
>interface with a PC? It says PWM input, how does this differ from
>other types of signals? Can they be used with software like Turbocnc?
>I'm a bit confused over the various PC-to-driver interfaces, and I'd
>really appreciate it if anyone could shed some light on this. Thanks
>in advance.
>
>
the computer to only send a signal when a one-step movement is required.
It can be done in software, although the performance is limited. This
is generally
an "open-loop" system, where the computer has no feedback of where the
machine actually is, it just assumes it has followed every step pulse sent.
Gecko and Rutex have both servo and stepper drivers that accept these
signals.
The old-style analog servo system has the computer, through a Digital
to Analog Converter, send a voltage from -10 V to +10 V to a servo
amplifier. This signal is proportional to the velocity the computer has
decided the machine needs to move at to minimize error. This requires
a closed-loop system, where the computer has the encoder sending information
on the machine's position. The Servo-to-Go and Pico Systems PPMC
boards are examples of this type of interface. Copley Controls makes some
newer, relatively inexpensive servo amps of this type. Servo Dynamics,
Westamp, Kolmorgen and others have made these type of amps for many
years. Some of the advantages of these systems are that they can be
switched
from CNC to manual and back to CNC without losing position, and that the
computer can constantly monitor following error, and stop the machine if
it exceeds a user-controlled limit.
PWM servo amps are similar in many ways to the analog servo system, but
they eliminate the analog signal. This allows better isolation between the
high-power driver stages and the PC. But, you need a servo controller/
interface that puts out a PWM signal at the frequency required by the amp.
If you have a controller that puts out a 15 KHz PWM signal, and an amp
designed for 100 KHz, it may not work at all, may smoke the amp, or have
some other unwanted effect. So, it is a bit harder to mix and match the
systems.
The old, traditional velocity servo system had 3 nested control loops.
The innermost loop was motor current. Current was measured, and
forced to match the torque command. (Motor torque is very closely
proportional to current.) The torque command was derived from the
next outermost loop. Velocity was measured by a DC tachometer and
compared to the commanded velocity, and the error between those
was used as the torque command to the inner loop. The outermost
loop was the position loop, and was computed by the CNC computer,
by measuring actual position with the encoder, and comparing to desired
position every update interval, and adding in desired velocity and
PID compensation terms. Then, a new velocity was sent to the servo
amp.
The PWM servo amp is often used to get rid of many of these measurements,
such as motor current and tachometer velocity, but the system performance
can suffer unless it is done JUST right. This gets into deep levels of
control
systems theory, where continuous-time and discontinuous-time systems
meet.
I don't know of any PC CNC program that will support such amps directly.
I can say that with some relatively minor reprogramming, my Universal
Stepper Controller has all the things you'd need to generate PWM pulses.
It can read encoder positions, and the logic dedicated to making step pulses
could be converted to a PWM generator with rather small changes. The
big problem is someone would have to write a fair bit of code to implement
the inner control loops mentioned above in the low-level driver software.
If someone wants to try this, I'd be glad to do the FPGA program changes,
and make a "Universal PWM Controller" version of the product. I'd
also be interested in putting one of these together to test it here, with
motors and amps.
Jon
Jon
Discussion Thread
builder4wd
2003-09-30 00:02:53 UTC
PC to driver interface types
illya
2003-09-30 04:04:52 UTC
Re: [CAD_CAM_EDM_DRO] PC to driver interface types
Jon Elson
2003-09-30 10:22:48 UTC
Re: [CAD_CAM_EDM_DRO] PC to driver interface types
Peter R
2003-09-30 11:32:01 UTC
Re: [CAD_CAM_EDM_DRO] PC to driver interface types