CNC G-Codes

G-Code, or preparatory code or function, are functions in the Numerical control programming language. The G-codes are the codes that position the tool and do the actual work, as opposed to M-codes, that manages the machine; T for tool-related codes. S and F are tool-Speed and tool-Feed, and finally D-codes for tool compensation.

The programming language of Numerical Control (NC) is sometimes informally called G-code. But in actuality, G-codes are only a part of the NC-programming language that controls NC and CNC machine tools. The term Numerical Control was coined at the MIT Servomechanisms Laboratory, and several versions of NC were and are still developed independently by CNC-machine manufacturers.

The main standardized version used in the United States was settled by the Electronic Industries Alliance in the early 1960s. A final revision was approved in February 1980 as RS274D. In Europe, the ISO standard DIN 66025 is often used instead.

Due to the lack of further development, the immense variety of machine tool configurations, and little demand for interoperability, few machine tool controllers (CNCs) adhere to this standard. Extensions and variations have been added independently by manufacturers, and operators of a specific controller must be aware of differences of each manufacturers’ product. When initially introduced, CAM systems were limited in the configurations of tools supported.

Today, the main manufacturers of CNC control systems are GE Fanuc Automation (joint venture of General Electric and Fanuc), Siemens and Maho (Philips), but there still exist many smaller and/or older controller systems.

Some CNC machine manufacturers attempted to overcome compatibility difficulties by standardizing on a machine tool controller built by Fanuc. Unfortunately, Fanuc does not remain consistent with RS-274 or its own previous versions, and has been slow at adding new features, as well as exploiting increases in computing power. For example, they changed G70/G71 to G20/G21; they used parentheses for comments which caused difficulty when they introduced mathematical calculations so the use square parentheses for macro calculations; they now have nano technology recently in 32-bit mode but in the Fanuc 15MB control they introduced HPCC (high-precision contour control) which uses a 64-bit RISC (reduced instruction set computer) processor and this now has a 500 block buffer for look-ahead for correct shape contouring and surfacing of small block programs and 5-axis continuous machining.

Below is a complete listing of current NC Programming codes as per ISO (DIN 66025) and RS274:

G-Code Description
G00 Rapid traverse
G01 Linear interpolation with feedrate
G02 Circular interpolation (clockwise)
G03 Circular interpolation (counter clockwise)
G04 Dwell time in milliseconds
G05 Spline definition
G06 Spline interpolation
G07 Tangential circular interpolation / Helix interpolation / Polygon interpolation / Feedrate interpolation
G08 Ramping function at block transition / Look ahead “off”
G09 No ramping function at block transition / Look ahead “on”
G10 Stop dynamic block preprocessing
G11 Stop interpolation during block preprocessing
G12 Circular interpolation (cw) with radius
G13 Circular interpolation (ccw) with radius
G14 Polar coordinate programming, absolute
G15 Polar coordinate programming, relative
G16 Definition of the pole point of the polar coordinate system
G17 Selection of the X, Y plane
G18 Selection of the Z, X plane
G19 Selection of the Y, Z plane
G20 Selection of a freely definable plane
G21 Parallel axes “on”
G22 Parallel axes “off”
G24 Safe zone programming; lower limit values
G25 Safe zone programming; upper limit values
G26 Safe zone programming “off”
G27 Safe zone programming “on”
G33 Thread cutting with constant pitch
G34 Thread cutting with dynamic pitch
G35 Oscillation configuration
G38 Mirror imaging “on”
G39 Mirror imaging “off”
G40 Path compensations “off”
G41 Path compensation left of the work piece contour
G42 Path compensation right of the work piece contour
G43 Path compensation left of the work piece contour with altered approach
G44 Path compensation right of the work piece contour with altered approach
G50 Scaling
G51 Part rotation; programming in degrees
G52 Part rotation; programming in radians
G53 Zero offset off
G54 Zero offset #1
G55 Zero offset #2
G56 Zero offset #3
G57 Zero offset #4
G58 Zero offset #5
G59 Zero offset #6
G63 Feed / spindle override not active
G66 Feed / spindle override active
G70 Inch format active
G71 Metric format active
G72 Interpolation with precision stop “off”
G73 Interpolation with precision stop “on”
G74 Move to home position
G75 Curvature function activation
G76 Curvature acceleration limit
G78 Normalcy function “on” (rotational axis orientation)
G79 Normalcy function “off”
G80 - G89 (for milling applications):
  - G80   - Canned cycle “off”
  - G81   - Drilling to final depth canned cycle
  - G82   - Spot facing with dwell time canned cycle
  - G83   - Deep hole drilling canned cycle
  - G84   - Tapping or Thread cutting with balanced chuck canned cycle
  - G85   - Reaming canned cycle
  - G86   - Boring canned cycle
  - G87   - Reaming with measuring stop canned cycle
  - G88   - Boring with spindle stop canned cycle
  - G89   - Boring with intermediate stop canned cycle
G81 - G88 for cylindrical grinding applications:
  - G81   - Reciprocation without plunge
  - G82   - Incremental face grinding
  - G83   - Incremental plunge grinding
  - G84   - Multi-pass face grinding
  - G85   - Multi-pass diameter grinding
  - G86   - Shoulder grinding
  - G87   - Shoulder grinding with face plunge
  - G88   - Shoulder grinding with diameter plunge
G90 Absolute programming
G91 Incremental programming
G92 Position preset
G93 Constant tool circumference velocity “on” (grinding wheel)
G94 Feed in mm / min (or inch / min)
G95 Feed per revolution (mm / rev or inch / rev)
G96 Constant cutting speed “on”
G97 Constant cutting speed “off”
G98 Positioning axis signal to PLC
G99 Axis offset
G100 Polar transformation “off”
G101 Polar transformation “on”
G102 Cylinder barrel transformation “on”; cartesian coordinate system
G103 Cylinder barrel transformation “on,” with real-time-radius compensation (RRC)
G104 Cylinder barrel transformation with center line migration (CLM) and RRC
G105 Polar transformation “on” with polar axis selections
G106 Cylinder barrel transformation “on” polar-/cylinder-coordinates
G107 Cylinder barrel transformation “on” polar-/cylinder-coordinates with RRC
G108 Cylinder barrel transformation polar-/cylinder-coordinates with CLM and RRC
G109 Axis transformation programming of the tool depth
G110 Power control axis selection/channel 1
G111 Power control pre-selection V1, F1, T1/channel 1 (Voltage, Frequency, Time)
G112 Power control pre-selection V2, F2, T2/channel 1
G113 Power control pre-selection V3, F3, T3/channel 1
G114 Power control pre-selection T4/channel 1
G115 Power control pre-selection T5/channel 1
G116 Power control pre-selection T6/pulsing output
G117 Power control pre-selection T7/pulsing output
G120 Axis transformation; orientation changing of the linear interpolation rotary axis
G121 Axis transformation; orientation change in a plane
G125 Electronic gear box; plain teeth
G126 Electronic gear box; helical gearing, axial
G127 Electronic gear box; helical gearing, tangential
G128 Electronic gear box; helical gearing, diagonal
G130 Axis transformation; programming of the type of the orientation change
G131 Axis transformation; programming of the type of the orientation change
G132 Axis transformation; programming of the type of the orientation change
G133 Zero lag thread cutting “on”
G134 Zero lag thread cutting “off”
G140 Axis transformation; orientation designation work piece fixed coordinates
G141 Axis transformation; orientation designation active coordinates
G160 ART activation
G161 ART learning function for velocity factors “on”
G162 ART learning function deactivation
G163 ART learning function for acceleration factors
G164 ART learning function for acceleration changing
G165 Command filter “on”
G166 Command filter “off”
G170 Digital measuring signals; block transfer with hard stop
G171 Digital measuring signals; block transfer without hard stop
G172 Digital measuring signals; block transfer with smooth stop
G175 SERCOS-identification number “write”
G176 SERCOS-identification number “read”
G180 Axis transformation “off”
G181 Axis transformation “on” with not rotated coordinate system
G182 Axis transformation “on” with rotated / displaced coordinate system
G183 Axis transformation; definition of the coordinate system
G184 Axis transformation; programming tool dimensions
G186 Look ahead; corner acceleration; circle tolerance
G188 Activation of the positioning axes
G190 Diameter programming deactivation
G191 Diameter programming “on” and display of the contact point
G192 Diameter programming; only display contact point diameter
G193 Diameter programming; only display contact point actual axes center point
G200 Corner smoothing “off”
G201 Corner smoothing “on” with defined radius
G202 Corner smoothing “on” with defined corner tolerance
G203 Corner smoothing with defined radius up to maximum tolerance
G210 Power control axis selection/Channel 2
G211 Power control pre-selection V1, F1, T1/Channel 2
G212 Power control pre-selection V2, F2, T2/Channel 2
G213 Power control pre-selection V3, F3, T3/Channel 2
G214 Power control pre-selection T4/Channel 2
G215 Power control pre-selection T5/Channel 2
G216 Power control pre-selection T6/pulsing output/Channel 2
G217 Power control pre-selection T7/pulsing output/Channel 2
G220 Angled wheel transformation “off”
G221 Angled wheel transformation “on”
G222 Angled wheel transformation “on” but angled wheel moves before others
G223 Angled wheel transformation “on” but angled wheel moves after others
G265 Distance regulation – axis selection
G270 Turning finishing cycle
G271 Stock removal in turning
G272 Stock removal in facing
G274 Peck finishing cycle
G275 Outer diameter / internal diameter turning cycle
G276 Multiple pass threading cycle
G310 Power control axes selection /channel 3
G311 Power control pre-selection V1, F1, T1/channel 3
G312 Power control pre-selection V2, F2, T2/channel 3
G313 Power control pre-selection V3, F3, T3/channel 3
G314 Power control pre-selection T4/channel 3
G315 Power control pre-selection T5/channel 3
G316 Power control pre-selection T6/pulsing output/Channel 3
G317 Power control pre-selection T7/pulsing output/Channel 3

Note that some of the above G-codes are not standard. Specific control features, such as laser power control, enable those optional codes.

Add to deliciousdigg itAdd to FacebookAdd to Google BookmarksStumble itAdd to TechnoratiAdd to Yahoo My Web

Leave a Reply