Professional Documents
Culture Documents
Maple,
NIST
I. INTRODUCTION
2
CNC stands for Computer Numerical Control[ ], and refers
to a computer "controller" that drives a machine tool to
create objects by selective removal of material. This
computer based controller reads G-code instructions,
interprets them and performs numerically directed
interpolation[I] of a cutting tool in the work envelope of a
machine to fabricate components.
The designer generally uses a Computer Aided Design/
Computer Aided Manufacturing (CAD/CAM) program on a
computer to generate the "G-code" file. The output G-code
from the CAM system is transferred to the Machine Controller
for interpretation and consequent tool motion control.
The machine controller interprets the part program to control
the tool motion in multiple axes[3 ], to realize the target
object after removal of excess material. The axes of the
machine are moved by screws which are powered by servo
motors or stepper motors. The signals from the machine
controller are amplified by the drives so that they are
powerful enough and suitably timed to operate the motors.
The traditional machine controllers (like Fanuc[5], siemens)
employ PC based or embedded CNC systems which,
because of the overheads imposed by a very large G-code
parser (>200 kB of binary code, in case of the NIST parser),
increase the hardware cost of the system, making it
unaffordable for use by small-scale industries and bottom
of-the-pyramid CNC users. The earlier developed micro978-1-4673-4603-0/12/$31.00 2012 IEEE
Proceedings of7'h International Conference on Intelligent Systems and Control (ISCO 2013)
524
input files - the input G-code file, the tool file and the
parameter file to it. The output generated is a text file
containing the canonical code (NCC). The GUI provides the
capability to upload the output file to a USB stick which
acts as an input to the actual CNC controller.
""" I
l=
5l
:::k llfeevedbaCky
525
For producing a job with smoother finish, all the axes of the
machine should ideally move simultaneously. To achieve
this, a 6-axes Bresenham Algorithm is employed. The
inputs to the Bresenham module are the initial and the fmal
points. The outputs are the interpolated points between the
two endpoints. The whole data generated in addition to the
feed rate for each of the axis is stored in a FIFO buffer.
Many hardware interpolation circuits have been traditionally
employed like the project titled - "Interpolator for a Computer
Numerical Control System" [41. But for the micro-controller
based CNC system, Bresenham algorithm provides quick and
easy to process coordinates.
tep
6 stapting points: 1 ? 3 9 ? 8
ntep 6 end points: 2 ? 4 082
fDsplaYing the inteppolated points
?
I ?
?
?
I .. ?
?
2?
i? ?
12 ?
?
3 9 ?8
3 8 ? ?
3 ? ? ?
3 6 ? 6
35 ?5
4 485
43 8 4
4283
4 183
4 082
D. FIFO Buffer
11)15
g1 .. 5>5
$1 .. 3 t1
g1o5 z10
.. hlJ
OK
I'
Tail
(insert)
Proceedings of7'h International Conference on Intelligent Systems and Control (ISCO 2013)
526
Where,
S is the speed at the time instant t
F is the feed rate
a is a constant defined as
td is
a constant defmed as
Predefin ed
Pulse Widt h
e4A IF
log(F -1)
log(a)
S - Curve
'-
>
I I
(
TEP
PIN PULSING
_ S-Curve
Trapezoidal
10
40
lO
Time Axis
527
LENGTH- UNITS
V. EXPERIMENTAL RESULTS
Proceedings of7'h International Conference on Intelligent Systems and Control (ISCO 2013)
528
Diameter
S. No.
Desired
Diameter (mm)
Obtained
Diameter (mm)
Error
(microns)
5.02
20
3.02
20
5.03
30
3.05
50
9.5
9.55
50
6.05
50
10
10.05
50
Max Error
20 microns
Z(mm)
5.02 mm
X(mm)
G. G. Ertell, Numerical
Interscience, 1969.
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
VI. CONCLUSIONS
Control.
New
York:
Wiley
and Automation.
[10] Giovanni Elentano, Francesco Calabrese,"Design and realization
of a STEP-NC compliant CNC embedded controller." Suhua
Xiao, Di Li, Yizong Lai, Jiafu Wan, and Shouting Feng, "
[II] Venkata Krishna Pabolu and Prof. Sri K.N.H.Srinivas, "Design
and Implementation of a Three Dimensional CNC Machine",
Devices
[I]
[2]
http://www.ftdichip.com/Products/Modules/
VDRIVE2
ApplicationModules.htm
[3]
MicroVGA - http://microvga.com/
[4]