Introduction to CNC

Introduction to CNC
From Wikipedia, the free encyclopedia

The abbreviation CNC stands for computer numerical control, and refers specifi cally to a computer
“controller” that reads G-code instructions and drives a machine tool, a powered mechanical device
typically used to fabricate components by the selective removal of material. CNC does numerically
directed interpolation of a cutting tool in the work envelope of a machine. The operating parameters of
the CNC can be altered via software load program.
CNC was preceded by NC (Numerically Controlled) machines, which were hard wired and their operating
parameters could not be changed. NC was developed in the late 1940s and early 1950s by
John T. Parsons in collaboration with the MIT Servomechanisms Laboratory. The fi rst CNC systems
used NC style hardware, and the computer was used for the tool compensation calculations and
sometimes for editing.
Punched tape continued to be used as a medium for transferring G-codes into the controller for many
decades after 1950, until it was eventually superseded by RS232 cables, fl oppy disks, and now is
commonly tied directly into plant networks. The fi les containing the G-codes to be interpreted by the
controller are usually saved under the .NC extension. Most shops have their own saving format that
matches their ISO certifi cation requirements.
The introduction of CNC machines radically changed the manufacturing industry. Curves are as easy
to cut as straight lines, complex 3-D structures are relatively easy to produce, and the number of machining
steps that required human action has been dramatically reduced.
With the increased automation of manufacturing processes with CNC machining, considerable improvements
in consistency and quality have been achieved with no strain on the operator. CNC automation
reduced the frequency of errors and provided CNC operators with time to perform additional
tasks. CNC automation also allows for more fl exibility in the way parts are held in the manufacturing
process and the time required to change the machine to produce different components.
In a production environment, a series of CNC machines may be combined into one station, commonly
called a “ cell”, to progressively machine a part requiring several operations. CNC machines today are
controlled directly from fi les created by CAM software packages, so that a part or assembly can go
directly from design to manufacturing without the need of producing a drafted paper drawing of the
manufactured component. In a sense, the CNC machines represent a special segment of industrial
robot systems, as they are programmable to perform many kinds of machining operations (within
their designed physical limits, like other robotic systems). CNC machines can run over night and over
weekends without operator intervention. Error detection features have been developed, giving CNC
machines the ability to call the operator’s mobile phone if it detects that a tool has broken. While the
machine is awaiting replacement on the tool, it would run other parts it is already loaded with up to
that tool and wait for the operator. The ever changing intelligence of CNC controllers has dramatically
increased job shop cell production. Some machines might even make 1000 parts on a weekend with
no operator, checking each part with lasers and sensors.

Types of instruction
A line in a G-code fi le can instruct the machine tool to do one of several things.
  • Movements
The most basic motion for a controller is to move the machine tool along a linear path from one point
to another. Some machine tools can only do this in XY, and have to accept changes in Z separately.
Some have two further axes of rotation to control the orientation of the cutter, and can move them
simultaneously with the XYZ motion. Lately 4 and 5 axis machines have become popular. The 2 additional
axis allow for the work surface or medium to be rotated around X and Y. For example, a 4-axis
machine can move the tool head in XY and Z directions, and also rotate the medium around the X or
Y axis, similar to a lathe. This is called the A or B axis in most cases.
All motions can be built from linear motions if they are short and there are enough of them. But most
controllers can interpolate horizontal circular arcs in XY.
Lately, some controllers have implemented the ability to follow an arbitrary curve ( NURBS), but these
efforts have been met with skepticism since, unlike circular arcs, their defi nitions are not natural and
are too complicated to set up by hand, and CAM software can already generate any motion using
many short linear segments.
With the advent of the vortech router cnc quad drive system which utilizes four (bidirectional) motors
and drive, users are able to achieve greater speeds and accuracy.
  • Drilling
A tool can be used to drill holes by pecking to let the swarf out. Using an internal thread cutting tool
and the ability to control the exact rotational position of the tool with the depth of cut, it can be used to cut screw threads.
  • Drilling cycles
A drilling cycle is used to repeat drilling or tapping operations on a workpiece. The drilling cycle accepts
a list of parameters about the operation, such as depth and feed rate. To begin drilling any number
of holes to the specifi cations confi gured in the cycle, the only input required is a set of coordinates
for hole location. The cycle takes care of depth, feed rate, retraction, and other parameters that appear in more complex cycles. After the holes are completed, the machine is given another command
to cancel the cycle, and resumes operation.
  • Parametric programming
A more recent advancement in CNC interpreters is support of logical commands, known as parametric
programming. Parametric programs incorporate both G-code and these logical constructs to create
a programming language and syntax similar to BASIC. Various manufacturers refer to parametric
programming in brand-specifi c ways. For instance, Haas refers to parametric programs as macros.
GE Fanuc refers to it as Custom Macro A & B, while Okuma refers to it as User Task 2. The programmer can make if/then/else statements, loops, subprogram calls, perform various arithmetic, and manipulate variables to create a large degree of freedom within one program. An entire product line of different sizes can be programmed using logic and simple math to create and scale an entire range of parts, or create a stock part that can be scaled to any size a customer demands.
Parametric programming also enables custom machining cycles, such as fi xture creation and bolt
circles. If a user wishes to create additional fi xture locations on a work holding device, the machine
can be manually guided to the new location and the fi xture subroutine called. The machine will then
drill and form the patterns required to mount additional vises or clamps at that location. Parametric
programs are also used to shorten long programs with incremental or stepped passes. A loop can be
created with variables for step values and other parameters, and in doing so remove a large amount
of repetition in the program body.
Because of these features, a parametric program is more effi cient than using CAD/CAM software for
large part runs. The brevity of the program allows the CNC programmer to rapidly make performance
adjustments to looped commands, and tailor the program to the machine it is running on. Tool wear,
breakage, and other system parameters can be accessed and changed directly in the program, allowing
extensions and modifi cations to the functionality of a machine beyond what a manufacturer envisioned.
There are three types of variables used in CNC systems: Local variable, Common variable, and
System variable. Local variable is used to hold data after machine off preset value. Common variable
is used to hold data if machine switch off does not erase form data. The System variable this variable
used system parameter this cannot use direct to convert the common variable for example Tool
radius, Tool length and tool height to be measured in mm or inches.

There are other codes; the type codes can be thought of like registers in a computer

• X absolute position
• Y absolute position
• Z absolute position
• A position (rotary around X)
• B position (rotary around Y)
• C position (rotary around Z)
• U Relative axis parallel to X
• V Relative axis parallel to Y
• W Relative axis parallel to Z
• M code (otherwise referred to as a “Miscellaneous” function”)
• F feed rate
• S spindle speed
• N line number
• R Arc radius or optional word passed to a subprogram/canned cycle
• P Dwell time or optional word passed to a subprogram/canned cycle
• T Tool selection
• I Arc data X axis
• J Arc data Y axis.
• K Arc data Z axis, or optional word passed to a subprogram/canned cycle
• D Cutter diameter/radius offset
• H Tool length offset