Sie sind auf Seite 1von 14

• G AND M CODES

G-codes are also called preparatory codes, and are any word in a CNC program that
begins with the letter "G". Generally it is a code telling the machine tool what type of
action to perform, such as:

• rapid move
• controlled feed move in a straight line or arc
• series of controlled feed moves that would result in a hole being bored, a
workpiece cut (routed) to a specific dimension, or a decorative profile shape
added to the edge of a workpiece.
• set tool information such as offset.

Letter addresses

Some letter addresses are used only in milling or only in turning; most are used in both.
Bold below are the letters seen most frequently throughout a program.

Variable Description Corollary info


A Absolute or
incremental position of
A axis (rotational axis
around X axis)
B Absolute or
incremental position of
B axis (rotational axis
around Y axis)
C Absolute or
incremental position of
C axis (rotational axis
around Z axis)
D Defines diameter or
radial offset used for
cutter compensation
E Precision feedrate for
threading on lathes
F Defines feed rate
G G commands often tell the control what kind of motion
Address for
is wanted (e.g., rapid positioning, linear feed, circular
preparatory commands
feed, fixed cycle) or what offset value to use.
H Defines tool length
offset;
Incremental axis
corresponding to C
axis (e.g., on a turn-
mill)
I Defines arc size in X
axis for G02 or G03
arc commands.
Also used as a
parameter within some
fixed cycles.
J Defines arc size in Y
axis for G02 or G03
arc commands.
Also used as a
parameter within some
fixed cycles.
K Defines arc size in Z
axis for G02 or G03
arc commands.
Also used as a
parameter within some
fixed cycles, equal to L
address.
L Fixed cycle loop count: Defines number of repetitions
("loops") of a fixed cycle at each position. Assumed to
be 1 unless programmed with another integer.
Fixed cycle loop count;
Sometimes the K address is used instead of L. With
Specification of what
incremental positioning (G91), a series of equally spaced
register to edit using
holes can be programmed as a loop rather than as
G10
individual positions.
G10 use: Specification of what register to edit (work
offsets, tool radius offsets, tool length offsets, etc.).
M Action code, auxiliary command; descriptions vary.
Many M-codes call for machine functions, which is why
Miscellaneous function
people often say that the "M" stands for "machine",
although it was not intended to.
N Line (block) number in Line (block) numbers: Optional, so often omitted.
program; Necessary for certain tasks, such as M99 P address (to
System parameter tell the control which block of the program to return to if
number to be changed not the default one) or GoTo statements (if the control
using G10 supports those). N numbering need not increment by 1
(for example, it can increment by 10, 20, or 1000) and
can be used on every block or only in certain spots
throughout a program.
System parameter number: G10 allows changing of
system parameters under program control.
O Program name For example, O4501.
P • With G04, defines dwell time value.
• Also serves as a parameter in some canned
cycles, representing dwell times or other
Serves as parameter variables.
address for various G
and M codes • Also used in the calling and termination of
subprograms. (With M98, it specifies which
subprogram to call; with M99, it specifies which
block number of the main program to return to.)
Q Peck increment in
For example, G73, G83 (peck drilling cycles)
canned cycles
R Defines size of arc
radius or defines retract
height in canned cycles
S Data type = integer. In G97 mode (which is usually the
default), an integer after S is interpreted as a number of
Defines speed, either rev/min (rpm). In G96 mode (CSS), an integer after S is
spindle speed or interpreted as surface speed—sfm (G20) or m/min
surface speed (G21). See also Speeds and feeds. On multifunction
depending on mode (turn-mill or mill-turn) machines, which spindle gets the
input (main spindle or subspindles) is determined by
other M codes.
T To understand how the T address works and how it
interacts (or not) with M06, one must study the various
methods, such as lathe turret programming, ATC fixed
Tool selection tool selection, ATC random memory tool selection, the
concept of "next tool waiting", and empty tools.
Programming on any particular machine tool requires
knowing which method that machine uses.
U Incremental axis
corresponding to X
axis (typically only In these controls, X and U obviate G90 and G91,
lathe group A controls) respectively. On these lathes, G90 is instead a fixed
Also defines dwell cycle address for roughing.
time on some machines
(instead of "P" or "X").
V Incremental axis Until the 2000s, the V address was very rarely used,
corresponding to Y because most lathes that used U and W didn't have a Y-
axis axis, so they didn't use V. (Green et al 1996[2] did not
even list V in their table of addresses.) That is still often
the case, although the proliferation of live lathe tooling
and turn-mill machining has made V address usage less
rare than it used to be (Smid 2008[1] shows an example).
See also G18.
W Incremental axis
In these controls, Z and W obviate G90 and G91,
corresponding to Z axis
respectively. On these lathes, G90 is instead a fixed
(typically only lathe
cycle address for roughing.
group A controls)
X Absolute or
incremental position of
X axis.
Also defines dwell
time on some machines
(instead of "P" or "U").
Y Absolute or
incremental position of
Y axis
Z Absolute or
The main spindle's axis of rotation often determines
incremental position of
which axis of a machine tool is labeled as Z.
Z axis
• List of G-codes commonly found on Fanuc and similarly designed
controls

Milling Turning
Code Description Corollary info
(M) (T)
G00 On 2- or 3-axis moves, G00 (unlike G01)
traditionally does not necessarily move in
a single straight line between start point
and end point. It moves each axis at its
max speed until its vector is achieved.
Shorter vector usually finishes first
(given similar axis speeds). This matters
Rapid positioning M T
because it may yield a dog-leg or hockey-
stick motion, which the programmer
needs to consider depending on what
obstacles are nearby, to avoid a crash.
Some machines offer interpolated rapids
as a feature for ease of programming
(safe to assume a straight line).
G01 Linear interpolation M T The most common workhorse code for
feeding during a cut. The program specs
the start and end points, and the control
automatically calculates (interpolates) the
intermediate points to pass through that
will yield a straight line (hence "linear").
The control then calculates the angular
velocities at which to turn the axis
leadscrews. The computer performs
thousands of calculations per second.
Actual machining takes place with given
feed on linear path.
G02 Circular Cannot start G41 or G42 in G02 or G03
interpolation, M T modes. Must already be compensated in
clockwise earlier G01 block.
G03 Circular Cannot start G41 or G42 in G02 or G03
interpolation, M T modes. Must already be compensated in
counterclockwise earlier G01 block.
G04 Takes an address for dwell period (may
Dwell M T
be X, U, or P)
G05 Uses a deep look-ahead buffer and
High-precision
P10000 simulation processing to provide better
contour control M
axis movement acceleration and
(HPCC)
deceleration during contour milling
G05.1 Uses a deep look-ahead buffer and
Q1. Ai Nano contour simulation processing to provide better
M
control axis movement acceleration and
deceleration during contour milling
G07 Imaginary axis
M
designation
G09 Exact stop check M T
G10 Programmable data
M T
input
G11 Data write cancel M T
G12 Fixed cycle for ease of programming
Full-circle
360° circular interpolation with blend-
interpolation, M
radius lead-in and lead-out. Not standard
clockwise
on Fanuc controls.
G13 Fixed cycle for ease of programming
Full-circle
360° circular interpolation with blend-
interpolation, M
radius lead-in and lead-out. Not standard
counterclockwise
on Fanuc controls.
G17 XY plane selection M
G18 ZX plane selection M T On most CNC lathes (built 1960s to
2000s), ZX is the only available plane, so
no G17 to G19 codes are used. This is
now changing as the era begins in which
live tooling, multitask/multifunction, and
mill-turn/turn-mill gradually become the
"new normal". But the simpler,
traditional form factor will probably not
disappear—just move over to make room
for the newer configurations. See also V
address.
G19 YZ plane selection M
G20 Somewhat uncommon except in USA
and (to lesser extent) Canada and UK.
However, in the global marketplace,
competence with both G20 and G21
always stands some chance of being
necessary at any time. The usual
Programming in
M T minimum increment in G20 is one ten-
inches
thousandth of an inch (0.0001"), which is
a larger distance than the usual minimum
increment in G21 (one thousandth of a
millimeter, .001 mm, that is, one
micrometre). This physical difference
sometimes favors G21 programming.
G21 Prevalent worldwide. However, in the
Programming in global marketplace, competence with
M T
millimeters (mm) both G20 and G21 always stands some
chance of being necessary at any time.
G28 Takes X Y Z addresses which define the
Return to home
intermediate point that the tool tip will
position (machine
M T pass through on its way home to machine
zero, aka machine
zero. They are in terms of part zero (aka
reference point)
program zero), NOT machine zero.
G30 Takes a P address specifying which
machine zero point is desired, if the
Return to secondary machine has several secondary points (P1
home position to P4). Takes X Y Z addresses which
(machine zero, aka M T define the intermediate point that the tool
machine reference tip will pass through on its way home to
point) machine zero. They are in terms of part
zero (aka program zero), NOT machine
zero.
G31 Skip function (used
for probes and tool
M
length measurement
systems)
G32 Single-point T Similar to G01 linear interpolation,
threading, longhand except with automatic spindle
style (if not using a synchronization for single-point
cycle, e.g., G76) threading.
G33 Constant-pitch
M
threading
G33 Single-point
threading, longhand Some lathe controls assign this mode to
T
style (if not using a G33 rather than G32.
cycle, e.g., G76)
G34 Variable-pitch
M
threading
G40 Tool radius
M T Cancels G41 or G42.
compensation off
G41 Milling: Given righthand-helix cutter and
M03 spindle direction, G41 corresponds
to climb milling (down milling). Takes
an address (D or H) that calls an offset
Tool radius register value for radius.
M T
compensation left Turning: Often needs no D or H address
on lathes, because whatever tool is active
automatically calls its geometry offsets
with it. (Each turret station is bound to its
geometry offset register.)
G42 Similar corollary info as for G41. Given
Tool radius righthand-helix cutter and M03 spindle
M T
compensation right direction, G42 corresponds to
conventional milling (up milling).
G43 Takes an address, usually H, to call the
Tool height offset tool length offset register value. The
compensation M value is negative because it will be added
negative to the gauge line position. G43 is the
commonly used version (vs G44).
G44 Takes an address, usually H, to call the
Tool height offset tool length offset register value. The
compensation M value is positive because it will be
positive subtracted from the gauge line position.
G44 is the seldom-used version (vs G43).
G45 Axis offset single
M
increase
G46 Axis offset single
M
decrease
G47 Axis offset double
M
increase
G48 Axis offset double
M
decrease
G49 Tool length offset
M Cancels G43 or G44.
compensation cancel
G50 Takes an S address integer which is
interpreted as rpm. Without this feature,
Define the maximum
T G96 mode (CSS) would rev the spindle
spindle speed
to "wide open throttle" when closely
approaching the axis of rotation.
Scaling function
G50 M
cancel
Position register is one of the original
methods to relate the part (program)
coordinate system to the tool position,
which indirectly relates it to the machine
coordinate system, the only position the
Position register
control really "knows". Not commonly
(programming of
G50 T programmed anymore because G54 to
vector from part zero
G59 (WCSs) are a better, newer method.
to tool tip)
Called via G50 for turning, G92 for
milling. Those G addresses also have
alternate meanings (which see). Position
register can still be useful for datum shift
programming.
G52 Temporarily shifts program zero to a new
Local coordinate
M location. This simplifies programming in
system (LCS)
some cases.
G53 Takes absolute coordinates
(X,Y,Z,A,B,C) with reference to machine
zero rather than program zero. Can be
Machine coordinate
M T helpful for tool changes. Nonmodal and
system
absolute only. Subsequent blocks are
interpreted as "back to G54" even if it is
not explicitly programmed.
G54 to Have largely replaced position register
G59 (G50 and G92). Each tuple of axis offsets
Work coordinate relates program zero directly to machine
M T
systems (WCSs) zero. Standard is 6 tuples (G54 to G59),
with optional extensibility to 48 more via
G54.1 P1 to P48.
G54.1 Extended work M T Up to 48 more WCSs besides the 6
P1 to coordinate systems provided as standard by G54 to G59.
P48 Note floating-point extension of G-code
data type (formerly all integers). Other
examples have also evolved (e.g., G84.2).
Modern controls have the hardware to
handle it.
G70 Fixed cycle, multiple
repetitive cycle, for
T
finishing (including
contours)
G71 Fixed cycle, multiple
repetitive cycle, for
T
roughing (Z-axis
emphasis)
G72 Fixed cycle, multiple
repetitive cycle, for
T
roughing (X-axis
emphasis)
G73 Fixed cycle, multiple
repetitive cycle, for
T
roughing, with
pattern repetition
G73 Peck drilling cycle
Retracts only as far as a clearance
for milling - high-
increment (system parameter). For when
speed (NO full M
chipbreaking is the main concern, but
retraction from
chip clogging of flutes is not.
pecks)
G74 Peck drilling cycle
T
for turning
Tapping cycle for
milling, lefthand
G74 M
thread, M04 spindle
direction
G75 Peck grooving cycle
T
for turning
G76 Fine boring cycle for
M
milling
Threading cycle for
G76 turning, multiple T
repetitive cycle
G80 Cancel canned cycle M T Milling: Cancels all cycles such as G73,
G83, G88, etc. Z-axis returns either to Z-
initial level or R-level, as programmed
(G98 or G99, respectively).
Turning: Usually not needed on lathes,
because a new group-1 G address (G00 to
G03) cancels whatever cycle was active.
G81 Simple drilling cycle M No dwell built in
G82 Dwells at hole bottom (Z-depth) for the
Drilling cycle with number of milliseconds specified by the
M
dwell P address. Good for when hole bottom
finish matters.
G83 Peck drilling cycle
Returns to R-level after each peck. Good
(full retraction from M
for clearing flutes of chips.
pecks)
G84 Tapping cycle,
righthand thread,
M
M03 spindle
direction
G84.2 Tapping cycle,
righthand thread,
M03 spindle M
direction, rigid
toolholder
G90 Positioning defined with reference to part
zero.
Milling: Always as above.
Turning: Sometimes as above (Fanuc
group type B and similarly designed), but
Absolute on most lathes (Fanuc group type A and
M T (B)
programming similarly designed), G90/G91 are not
used for absolute/incremental modes.
Instead, U and W are the incremental
addresses and X and Z are the absolute
addresses. On these lathes, G90 is instead
a fixed cycle address for roughing.
Fixed cycle, simple
When not serving for absolute
G90 cycle, for roughing T (A)
programming (above)
(Z-axis emphasis)
G91 Incremental M T (B) Positioning defined with reference to
programming previous position.
Milling: Always as above.
Turning: Sometimes as above (Fanuc
group type B and similarly designed), but
on most lathes (Fanuc group type A and
similarly designed), G90/G91 are not
used for absolute/incremental modes.
Instead, U and W are the incremental
addresses and X and Z are the absolute
addresses. On these lathes, G90 is a fixed
cycle address for roughing.
G92 Same corollary info as at G50 position
register.
Position register Milling: Always as above.
(programming of Turning: Sometimes as above (Fanuc
M T (B)
vector from part zero group type B and similarly designed), but
to tool tip) on most lathes (Fanuc group type A and
similarly designed), position register is
G50.
Threading cycle,
G92 T (A)
simple cycle
G94 On group type A lathes, feedrate per
Feedrate per minute M T (B)
minute is G98.
Fixed cycle, simple
When not serving for feedrate per minute
G94 cycle, for roughing T (A)
(above)
(X-axis emphasis)
G95 Feedrate per On group type A lathes, feedrate per
M T (B)
revolution revolution is G99.
G96 Varies spindle speed automatically to
achieve a constant surface speed. See
Constant surface
T speeds and feeds. Takes an S address
speed (CSS)
integer, which is interpreted as sfm in
G20 mode or as m/min in G21 mode.
G97 Takes an S address integer, which is
Constant spindle interpreted as rev/min (rpm). The default
M T
speed speed mode per system parameter if no
mode is programmed.
G98 Return to initial Z
M
level in canned cycle
Feedrate per minute Feedrate per minute is G94 on group type
G98 T (A)
(group type A) B.
G99 Return to R level in
M
canned cycle
Feedrate per
Feedrate per revolution is G95 on group
G99 revolution (group T (A)
type B.
type A)
• List of M-codes commonly found on Fanuc and similarly designed
controls

Milling Turning
Code Description Corollary info
(M) (T)
M00 Compulsory stop M T Non-optional—machine will always stop
upon reaching M00 in the program
execution.
M01 Machine will only stop at M01 if operator
Optional stop M T
has pushed the optional stop button.
M02 No return to program top; may or may not
End of program M T
reset register values.
M03 How to objectively define "clockwise" or
"counterclockwise" (CW or CCW) when
the same rotating cylinder can be viewed
as either CW or CCW, depending on
which end of it the viewer is looking
from? The answer links back to the right-
hand rule. Right-hand-helix screws
Spindle on
M T moving in the tightening direction (and
(clockwise rotation)
right-hand-helix flutes spinning in the
cutting direction) are defined as moving in
the M03 direction, and are labeled
"clockwise" by convention. The M03
direction is always M03 regardless of
local vantage point and local CW/CCW
distinction.
M04 Spindle on
(counterclockwise M T See comment above at M03.
rotation)
M05 Spindle stop M T
M06 Many lathes do not use M06 because the
T address itself indexes the turret.
To understand how the T address works
and how it interacts (or not) with M06,
one must study the various methods, such
Automatic tool T (some-
M as lathe turret programming, ATC fixed
change (ATC) times)
tool selection, ATC random memory tool
selection, the concept of "next tool
waiting", and empty tools. Programming
on any particular machine tool requires
knowing which method that machine uses.
M07 Coolant on (mist) M T
M08 Coolant on (flood) M T
M09 Coolant off M T
M10 For machining centers with pallet
Pallet clamp on M
changers
M11 For machining centers with pallet
Pallet clamp off M
changers
M13 This one M-code does the work of both
Spindle on
M03 and M08. It is not unusual for
(clockwise rotation)
M specific machine models to have such
and coolant on
combined commands, which make for
(flood)
shorter, more quickly written programs.
M19 Spindle orientation is more often called
within cycles (automatically) or during
setup (manually), but it is also available
Spindle orientation M T under program control via M19. The
abbreviation OSS (oriented spindle stop)
may be seen in reference to an oriented
stop within cycles.
M21 Mirror, X-axis M
M21 Tailstock forward T
M22 Mirror, Y-axis M
M22 Tailstock backward T
M23 Mirror OFF M
Thread gradual
M23 T
pullout ON
M24 Thread gradual
T
pullout OFF
M30 End of program with
M T
return to program top
M41 Gear select - gear 1 T
M42 Gear select - gear 2 T
M43 Gear select - gear 3 T
M44 Gear select - gear 4 T
M48 Feedrate override
M T
allowed
M49 This rule is also called (automatically)
within tapping cycles or single-point
Feedrate override
M T threading cycles, where feed is precisely
NOT allowed
correlated to speed. Same with spindle
speed override and feed hold button.
M60 Automatic pallet For machining centers with pallet
M
change (APC) changers
M98 Takes an address P to specify which
Subprogram call M T subprogram to call, for example, "M98
P8979" calls subprogram O8979.
M99 Subprogram end M T Usually placed at end of subprogram,
where it returns execution control to the
main program. The default is that control
returns to the block following the M98
call in the main program. Return to a
different block number can be specified
by a P address. M99 can also be used in
main program with block skip for endless
loop of main program on bar work on
lathes (until operator toggles block skip).

Das könnte Ihnen auch gefallen