Part Programming Manual MACHINEMATE

Similar documents
Mach4 CNC Controller Mill Programming Guide Version 1.0

ADVANCED TECHNIQUES APPENDIX A

G & M Code REFERENCE MANUAL. Specializing in CNC Automation and Motion Control

Mach4 CNC Controller Lathe Programming Guide Version 1.0

Lesson 4 Introduction To Programming Words

HAAS AUTOMATION, INC.

Century Star Turning CNC System. Programming Guide

Mach4 CNC Controller Mill Programming Guide Version 1.1 Build 3775

Conversational Programming for 6000M, 5000M CNC

Conversational Programming for 6000i CNC

CHAPTER 12. CNC Program Codes. Miscellaneous CNC Program Symbols. D - Tool Diameter Offset Number. E - Select Work Coordinate System.

Mach4 Lathe G-Code and M-Code Reference

Conversational Programming for 6000M, 5000M CNC

Conversational Programming for 6000i CNC

Polar coordinate interpolation function G12.1

COPYCAT NEW FANGLED SOLUTIONS 2/6/2009

CNC C6/C64/C64T PROGRAMMING MANUAL (LATHE TYPE) BNP-B2264D(ENG)

ACR-MotionMax Programmer's Reference Manual

CNC PART PROGRAMMING

Software designed to work seamlessly with your CNC Masters machine. Made to work with Windows PC. Works with standard USB

2. INTRODUCTION TO CNC

4.10 INVOLUTE INTERPOLATION (G02.2, G03.2)

G47 Text Engraving (Group 00) - Mill. Troubleshooting. How it Works. Haas Technical Documentation. Setting 85 is Too High for Shallow Text Engraving

SYSTEM SPECIFICATION


NC CODE REFERENCE MANUAL

MACHINEMATE. Product Guide

MELDAS, MELDASMAGIC, and MELSEC are registered trademarks of Mitsubishi Electric Corporation. The other company names and product names are

CNC Programming Simplified. EZ-Turn Tutorial.

Our thanks go to: Puppy Linux, RTAI, EMC, axis, all the kernel developers and big mama thornton.

Introduction CAUTION. Details described in this manual

COMPUTER NUMERICAL CONTROL OF MACHINE TOOLS

PC-BASED NUMERIC CONTROLLER

Turning ISO Dialect T

ISO INTERNATIONAL STANDARD

9000 CNC 9000 CNC: THE NEW STANDARD OF CONTROL. INTUITIVE EFFICIENT PRODUCTIVE

ADT-CNC4940 CNC4940 Milling Machine Control System. Programming Manual

6000i CNC User s Manual

SINUMERIK 802D. Brief Instructions Edition. Milling. User Documentation

CNC 8055 MC EXAMPLES MANUAL REF Ref. 0601

NcStudio Programming Manual

SINUMERIK 802D. Turning. User Documentation

MAX CONTROL FOR TURNING CENTERS

Welcome to. the workshop on the CNC 8055 MC

GE FANUC 21 CONCEPT 55 MILL ATC TEACHER GUIDE

Operating Manual. CNC Programming. XCx and ProNumeric. CNC Programming Version 03/15 Article No. R ( )

CNC 8055 T. Error solution. Ref.1705

3000M CNC Programming and Operations Manual for Two-Axis Systems

Mach3. Mach3 Gcode Manual Ultimate Screen Reference Guide

CNC 8055 M. Error solution. Ref.1705

3300M/MK CNC Programming and Operations Manual

List of ISO supported G-Codes and M-functions

CIRCULAR INTERPOLATION COMMANDS

MotionOne CM G&M Code Programming Manual

FAGOR AUTOMATION MC TRAINING MANUAL

5000M CNC Programming and Operations Manual

PROGRAMMING MANUAL. for. ALL MAZATROL TURNING CNC (including T-Plus) MAZATROL FUSION 640T NEXUS. Programming EIA/ISO. Serial No. :

SINUMERIK 808D SINUMERIK 808D, SINUMERIK 808D ADVANCED Programming and Operating Manual (ISO Turning/Milling) User Manual

SINUMERIK SINUMERIK 808D ADVANCED Programming and Operating Manual (ISO Turning/Milling) User Manual

What s new in EZCAM Version 18

Programming Features PERFORMANCE & SPECIFICATIONS

Section 20: Graphics

Pilot TNC 426. NC-Software xx xx 1/97

Introduction to Word Address Programming

GE Fanuc Automation. Series 15 / 150 Model B for Machining Center. Computer Numerical Control Products. Descriptions Manual

Preface. GSK983Ma User Manual divides into three parts, that is, Programming, Operation and Appendix.

GSP - G&M codes extension to ACSPL+

WINMAX LATHE NC PROGRAMMING

Mill Level 1 Training Tutorial

3000M CNC Programming and Operations Manual for Three- and Four-Axis Systems

Table of Contents. Table Of Contents. Access to parameters (lesson 2)) 26 Surprised? 26 Key Points for Lesson 1: 26 Quiz 26

Warranty. Student Workbook for Three-Axis Systems

GE FANUC 21 CONCEPT 55 TURN TEACHER GUIDE

Prismatic Machining Overview What's New Getting Started User Tasks

DIFFERENCES FROM SERIES 0i-C

CNC 8070 (SOFT 02.0X) REF Quick reference

VERO UK TRAINING MATERIAL. 2D CAM Training

KA3-6VS 300mm KA3-6VS 400mm Vertical Spindle

Linear Interpolation and Dwell Cycle. Dr. Belal Gharaibeh

300S READOUTS REFERENCE MANUAL

What's New in BobCAD-CAM V29

NOTE This function is optional.

User s Manual V MillPlus IT. NC Software

FANUC Series 30+-MODEL B FANUC Series 31+-MODEL B FANUC Series 32+-MODEL B. For Lathe System OPERATOR'S MANUAL B-64484EN-1/02

Multi-Pockets Machining

CNC 8055 T. New features. Ref.1710 Soft: V02.3x

CONTENTS I GENERAL GENERAL CONTROLLED AXES PREPARATORY FUNCTION (G FUNCTION) INTERPOLATION FUNCTIONS 4-1

Operating Instructions POSITIP 880

Multi-Axis Surface Machining

Digital display for EMCO milling machines

HAAS AUTOMATION, INC.

FANUC Series 30+-MODEL B FANUC Series 31+-MODEL B FANUC Series 32+-MODEL B. For Machining Center System OPERATOR'S MANUAL B-64484EN-2/03

Xbox gamepad CNC pendant user manual

CNC Programming Simplified. EZ-Turn / TurnMill Tutorial.

Touch Control Panels. Precision Built Solutions

MAIN TECHNICAL SPECIFICATIONS

GSK218M Milling Machine CNC System

Yaskawa Siemens CNC Series

TNC 410 TNC 426 TNC 430

This manual describes the various matters concerning the. operations of this CNC system as much as possible. However, it is

Transcription:

MACHINEMATE

NOTE Progress is an ongoing commitment at MACHINEMATE INC. We continually strive to offer the most advanced products in the industry. Therefore, information in this document is subject to change without notice. The illustrations and specifications in this document are not binding in detail. MACHINEMATE INC shall not be liable for any technical or editorial omissions occurring in this document nor for any consequential or incidental damages resulting from the use of this document. DO NOT ATTEMPT to use any MACHINEMATE INC product until the use of such product is completely understood. It is the responsibility of the user to make certain proper operation practices are understood. MACHINEMATE INC products should be used only by qualified personnel and for the express purpose for which said products were designed. Should information not covered in this document be required, please contact: MACHINEMATE INC. Fond du Lac, WI 54937 Phone: 920-907-0001 Fax: 920-907-0181 Email: info@machinemate.com Document revision: 0712 page 2/352

Table of Contents TABLE OF FIGURES AND TABLES...10 1 BASICS OF NC PROGRAMMING...15 1.1 Program Layout...15 1.2 Program block...15 1.3 Program Word...16 1.4 Auxiliary functions (BCDs)...23 1.5 Programming functional overview...24 1.6 Block suppression...25 1.7 Program Repetition...25 1.8 Subroutines...26 1.9 Comments in NC programs...27 1.10 Program number...28 1.11 Cycle block layout...28 1.12 Reading from External Data Files...28 1.13 Program Safety...31 1.14 Axis designations for machine tool machines...32 1.15 Gantry Axes...35 1.16 Resettable Rotational Axis...36 2 POSITIONING INSTRUCTIONS...37 2.1 General positioning instructions...37 2.1.1 Monitoring the axis travel limits...37 2.1.2 G00 linear interpolation in rapid traverse...38 2.1.3 G01 linear interpolation in the feed rate...42 2.1.4 G02, G03 circular interpolation with specified center point...45 2.1.5 G12, G13 circular interpolation with specified radius...49 2.1.6 Helical Interpolation...51 2.1.7 G74 Programmable homing...51 2.1.8 M80 delete remaining path using probe function...52 2.2 Positioning instructions...57 2.2.1 G07 Tangential circular interpolation...57 2.2.2 G05, G06 Spline Definition and Spline Interpolation 2D...60 2.2.3 G78, G79 Tangential Setting to the 2D Path...64 3 INFLUENCING THE PROGRAM...73 3.1 M00 program interruption (unconditional stop)...73 3.2 M01 program interruption (conditional stop)...73 3.3 M02, M30 end of program...74 3.4 G10, G11 empty/fill dynamic block buffer...75 3.4.1 G10 Empty dynamic block buffer...75 3.4.2 G11 Fill dynamic block buffer...75 3.5 G72, G73 interpolation with precision stop OFF or ON...76 3.6 G08, G09 look ahead OFF or ON...77 3.7 G186 corner acceleration, contour accuracy...80 3.7.1 Corner Acceleration...80 3.7.2 Contour Accuracy:...83 3.8 G75, G76 Curvature...84 page 3/352

3.8.1 Curvature Activation... 84 3.8.2 Curvature Acceleration Limit... 85 3.9 G04 dwell time... 85 3.10 Corner Smoothing... 86 3.10.1 G-codes... 86 3.10.2 Curvature radius R... 86 3.10.3 Corner deviation E... 86 3.10.4 Minimum block length... 87 3.10.5 Acceleration monitoring... 88 3.10.6 Minimum and maximum bend angle... 89 3.10.7 The necessity of corner smoothing... 89 3.10.8 Programming... 90 3.10.9 Problem case: angle too acute... 94 3.10.10 Problem case: collision monitor with real-time mill radius correction... 94 4 TECHNOLOGICAL INSTRUCTIONS... 95 4.1 Influencing the feedrate... 95 4.1.1 G94 Inches (Millimeters) per minute IPM/MMPM... 95 4.1.2 G95 Inches (Millimeters) per revolution IPR/MMPR... 95 4.1.3 F word for feed rate... 96 4.1.4 G63, G66 Feed override... 96 4.1.5 Programmable acceleration... 98 4.2 Spindle Control... 99 4.2.1 S Word... 99 4.2.2 M03, M04 Spindle ON, Clockwise or Counter-Clockwise... 99 4.2.3 M05 Spindle OFF... 100 4.2.4 M19 Spindle Orientation... 100 4.2.5 G63, G66 Spindle Override... 100 4.2.6 G92 Spindle speed limitation... 101 4.2.7 G96 Constant Surface Speed (Feet/Meter)... 102 4.2.8 G97 Revolutions per minute... 102 4.2.9 Reversal of rotation at M19, spindle orientation... 103 4.3 Tool compensation functions... 104 4.3.1 Tool radius compensation... 104 4.3.2 Tool length compensation values... 106 4.3.3 Tool or turret selection... 108 4.4 Advanced Regulation Technology (ART)... 112 4.4.1 Application... 112 5 GEOMETRIC INSTRUCTIONS... 113 5.1 General geometric instructions... 113 5.1.1 G40-G44 Path compensations... 114 5.1.2 G53-G59 Part position offsets... 145 5.1.3 G70, G71 Programming in metric or inch format... 149 5.1.4 G90, G91 Absolute/incremental dimension programming... 150 5.1.5 G92 Set axis value... 152 5.1.6 G14-G16 Polar coordinate programming... 154 5.2 Specific geometric instructions... 159 page 4/352

5.2.1 G17-G20 Plane selection...160 5.2.2 G24-G27 Programmable work field limitation (Safe Zone Programming)...162 5.2.3 G38, G39 Programmable axis motion mirror...165 5.2.4 G51, G52 Part rotation...170 5.2.5 G50 Scaling...173 5.3 Dresser, wheel or tool tip radius compensation (DWRC)...175 5.3.1 Entering compensation values in tables...175 5.3.2 Dresser Wheel Radius Compensation...178 5.3.3 DWRC application schemes...180 5.3.4 NC block formats...183 5.3.5 Compensation Entry/Exit Move Types...184 5.3.6 Special Cases...191 6 GENERAL CYCLE PROGRAMMING...193 6.1 Introduction...193 6.2 Application of Cycle Blocks...193 6.2.1 Cycle programming...193 6.2.2 Integrating Cycle Blocks in an NC Program...194 6.2.3 Comments...194 6.2.4 Cycle block syntax...195 6.2.5 Basic rules for processing of instructions...196 6.2.6 Numbers and variables...197 6.2.7 Calculation operations and functions...198 6.2.8 Use of P-parameters...202 6.2.9 Use of CNC parameters...206 6.2.10 Conditional instructions and jump instructions...211 6.2.11 Possible errors...213 6.2.12 Instructions...215 6.3 Work Cycles...218 6.3.1 General notes...218 6.3.2 Example...218 7 DRILLING CYCLES...219 7.1 Introduction...219 7.2 Use of the drilling cycles...220 7.2.1 Allocation of the parameters/definition of terms...220 7.2.2 Selection of the desired drilling cycle...222 7.2.3 Move to the drilling position in X and Y (once or repeatedly)...222 7.2.4 Deselecting of the drilling cycle...224 7.3 G80 Cancel the drilling cycle...225 7.4 G81 Drilling to final depth...225 7.5 G82 Spot facing with dwell time...227 7.6 G83 Deep hole drilling...229 7.7 G84 Thread cutting with balanced chuck...231 7.8 G85 Reaming...233 7.9 G86 Bore out...235 7.10 G87 Reaming with measuring stop...237 7.11 G88 Bore out with spindle halt...239 page 5/352

7.12 G89 Bore out with intermediate halt... 241 7.13 Example: base plate... 243 8 PROGRAM OPTIMIZATION... 246 8.1 Hints for rational program creation... 246 8.1.1 Subroutines... 246 8.1.2 Modally effective instructions... 246 8.1.3 Value allocation to NC addresses using parameters... 246 8.2 Hints for Processing Programs... 247 8.2.1 Look Ahead... 247 8.2.2 Programmable acceleration at Look Ahead... 247 8.2.3 Activation of special functions using a subroutine... 247 8.3 Hints for Avoiding Errors... 248 8.3.1 Protection of subroutines against call up as main program... 248 8.3.2 Functions not automatically reset at the program end... 248 8.3.3 Circular interpolation... 248 8.3.4 Avoid dummy blocks at subroutine call up... 248 8.3.5 Avoid dummy blocks at subroutine end... 249 8.3.6 Avoid dummy blocks at path compensation... 249 8.3.7 Collision free movement... 250 8.3.8 Contour accuracy (G186)... 250 9 PROGRAMMING VARIOUS CNC FEATURES/CAPABILITIES... 251 9.1 Angled Wheel Transformation... 251 9.1.1 Angled wheel transformation syntax... 251 9.1.2 Axes sequence by two step mode... 255 9.1.3 Mirroring... 256 9.1.4 H and G compensation... 256 9.2 Automatic Spindle Gear Step (Range) Selection... 256 9.2.1 General... 256 9.2.2 M40 is Active... 257 9.2.3 M41 to M46 is Active... 257 9.2.4 Switchover procedure between gear ranges... 257 9.2.5 G96 is Active... 258 9.2.6 G92 is Active... 258 9.2.7 G33/G34 is Active... 258 9.3 Barrel Cam Transformation... 259 9.3.1 General... 259 9.3.2 Barrel cam transformation using Cartesian coordinates G102... 259 9.3.3 Barrel cam transformation with cylinder coordinates G106... 261 9.3.4 Illegal G-codes during Barrel Cam... 262 9.3.5 Real time radius compensation G103, G107... 262 9.3.6 Barrel cam transformation with centerline deviation of an additional axis and real time radius compensation, G104, G108... 264 9.3.7 Switching between machine coordinates with barrel cam transformation.... 266 9.3.8 End of program and change of the operating mode... 266 9.4 Diameter Programming... 267 9.4.1 Programming... 267 page 6/352

9.4.2 Control reset, end of program...270 9.4.3 Display functions...270 9.4.4 Programming conditions...271 9.4.5 Programming Examples...272 9.5 Distance Regulation...273 9.5.1 G265 Axis selection...273 9.5.2 M140 / M141 activation/deactivation of distance regulation...273 9.5.3 Monitoring the axis limits...274 9.5.4 G74 is invalid...274 9.6 Fast output signals...275 9.6.1 Output turned on or off by CNC with M-code...275 9.6.2 Position-defined fast M-functions...276 9.7 Feed Influencing via Probe Signals...278 9.7.1 General...278 9.7.2 Programming...279 9.7.3 Programming measurement probe logic...280 9.7.4 Masking out input bits via the PLC...280 9.7.5 G92 and setting the remaining distance to zero...280 9.7.6 Measurement probe logic via the interface signal...280 9.7.7 Dwell time...281 9.7.8 Programming with Stop on block pre-processing...281 9.8 Feed Interpolation...282 9.8.1 Function and handling...282 9.9 Handwheels in Automatic mode...284 9.9.1 General...284 9.9.2 Programming...284 9.9.3 End of program and control reset...285 9.9.4 Cycle-Stop, Cycle-Off...285 9.10 Infinitely Rotating Round (or Rotary) Axis...286 9.10.1 General...286 9.10.2 Programming...286 9.10.3 Normal round axis...287 9.10.4 Tool magazine round axis...289 9.10.5 Modulo round axis...290 9.11 Multiple Spindles...293 9.11.1 General...293 9.11.2 Spindle programming...293 9.11.3 Thread cutting, G33 and G34...293 9.11.4 Spindle speed override rotary switch, G63...294 9.11.5 Spindle speed restriction, G92...294 9.11.6 Feed rate in mm / rev, or in / rev, G95...295 9.11.7 G93, G96 and G97...295 9.11.8 Spindle orientation, M19...298 9.11.9 Spindle / rotational axis switchover...298 9.11.10 Gear ranges or gear stages...298 9.12 Parallel Axes...299 9.12.1 Syntax...299 page 7/352

9.12.2 Program examples... 300 9.13 Positioning Axis... 301 9.13.1 Introduction... 301 9.13.2 Programming... 302 9.14 Programmable Oscillation... 305 9.14.1 Preparation set... 305 9.14.2 Erasing oscillation data... 305 9.14.3 Deviation lengths... 305 9.14.4 Number of deviations... 305 9.14.5 Frequency... 306 9.14.6 Dwell times... 306 9.14.7 Behavior in case of programming errors... 306 9.14.8 Behavior in case of Emergency Stop... 306 9.14.9 M20 Start M-code... 307 9.14.10 M21 End M-code... 307 9.14.11 M00 Programming... 308 9.14.12 Program end / home position... 308 9.14.13 Error messages... 308 9.15 Switchover Spindle-Rotary Axis... 309 9.15.1 General... 309 9.15.2 Programming... 309 9.15.3 Spindle running... 310 9.16 Thread Cutting or Rigid Tapping... 312 9.16.1 General... 312 9.16.2 Spindle Control... 312 9.16.3 Programming thread with uniform pitch, G33... 312 9.16.4 Programming thread with dynamic pitch, G34... 313 9.16.5 Definition of the thread block... 313 9.16.6 Programming cylindrical thread, G33, G34... 314 9.16.7 Programming conical thread G33, G34... 317 9.16.8 Programming lag free thread, G133, G134... 318 9.17 Turning Cycles or Stock Removal Cycles... 320 9.17.1 General... 320 9.17.2 G271 Stock removal in turning... 321 9.17.3 G272 Stock removal in facing... 324 9.17.4 Direction of allowance... 326 9.17.5 G270 Finishing Cycle... 327 9.17.6 G274 Peck finishing cycle... 328 9.17.7 G275 Outer diameter/internal diameter turning cycle... 329 9.17.8 G276 Multiple pass threading cycle... 330 9.17.9 Error messages... 332 9.17.10 Part program display... 333 10 PROGRAMMING MACHINEMATE SPECIAL FEATURES... 334 10.1 Lathe T-code Programming... 334 10.2 Programming a Rotary-only Motion in G70... 335 10.3 G93 for Programming a Mix of Linear and Rotary Motion... 335 10.4 Canned Drilling Cycle Letter Programming... 337 page 8/352

10.4.1 Canned Cycle Programming with Letters not Parameters...337 10.4.2 Canned Cycle Programming: Cross Reference to Section 7...339 10.4.3 Canned Cycle Programming Examples...339 10.5 Two-axes Collinear Tracking Programming...340 10.6 Extended Part Offsets Programming...342 10.6.1 Programming the additional Part Offsets...342 10.6.2 Managing the additional part offsets...343 INDEX...345 page 9/352

Table of Figures and Tables Figure 1-1: Elements of an NC program... 15 Table 1-1: G-Codes... 21 Table 1-2: M-Codes... 22 Figure 1-2: Nesting depth... 26 Table 1-3: ASCII Character Set... 30 Figure 1-3: Orientation of the three basic feed axes using the right-hand rule... 32 Figure 1-4: Work piece rigid, tool rotates... 33 Figure 1-5: Work piece rotates, tool rigid... 34 Figure 1-6: Position and direction of feed rate and rotary axes.... 35 Figure 2-1: G00 when turning... 38 Figure 2-2: G00 when milling... 38 Figure 2-3: Two successive rapid traverse positioning instructions... 39 Figure 2-4: Absolute dimension coordinates (G90)... 40 Figure 2-5: Incremental dimension coordinates (G91)... 41 Figure 2-6: G01 when turning... 42 Figure 2-7: G01 when milling... 43 Figure 2-8: G01 Linear interpolation in the feed rate... 44 Figure 2-9: Direction of rotation with G02 and G03 (turning)... 45 Figure 2-10: Direction of rotation with G02 and G03 (milling)... 46 Table 2-1: Interpolation parameters at G02 and G03 (at G17, G18 and G19)... 47 Figure 2-11: Example for G02... 48 Figure 2-12: G12, G13 Circular interpolation in the counter-clockwise direction with specified radius with K > 0 and K < 0... 49 Figure 2-13: G12, G13 circular interpolation with specified radius... 50 Figure 2-14: Delete remaining path using probe function (ignoring the probe's radius).. 53 Figure 2-15: Delete remaining path using probe function and measuring probe radius... 54 Figure 2-16: CNC reaction to the probe contact... 56 Figure 2-17: Straight line/circular arc... 58 Figure 2-18: Straight line/circular arc... 58 Figure 2-19: Circular arc/circular arc... 59 Figure 2-20: M70: Start of spline and end of spline with the curve 0 (natural spline)... 61 Figure 2-21: M71: Start of spline with tangential transition and end with curve 0... 61 Figure 2-22: M72: Start of spline with curve 0 and end of spline with tangential transition 61 Figure 2-23: M73: Start of spline and end of spline with tangential transitions... 62 Figure 2-24: Path velocity with linear interpolation and spline interpolation... 64 Figure 2-25: Tangential setting to the 2D path... 65 Figure 2-26: Tangential setting to the 2D path when turning... 65 Figure 2-27: Tangential setting to the 2D path when punching/nibbling... 66 Figure 2-28: Programming the leading-in at a specific angle... 67 Figure 2-29: Programming a changing angle offset using G78... 68 Figure 2-30: Behavior of the lead-in during a reversal of the motion direction... 69 Figure 2-31: Influence of the lead-in at reversal of motion reversal... 70 page 10/352

Figure 3-1: Contour with contouring error... 76 Figure 3-2: Contour processed with precision stop... 77 Figure 3-3: Processing of NC blocks with and without "Look Ahead"... 78 Table 3-1: Effect of different E word values... 80 Figure 3-4: Sharp decrease in speed between motion blocks dependent on the corner acceleration... 81 Figure 3-5: Sharp decrease in speed dependent on the angle between successive motion blocks. 82 Figure 3-6: Circle reduction error when pulling out of a circle from standstill... 83 Figure 3-7: Corner deviation E... 87 Figure 3-8: Curvature radius R... 87 Figure 3-9: Curvature radius R with a minimum path shortened... 88 Figure 3-10: Curvature bend angle in a corner... 89 Figure 3-11: Corner smoothing and corner jumps... 90 Figure 3-12: Corner smoothing in G203... 91 Figure 3-13: Real-time radius correction with corner smoothing... 93 Figure 3-14: Corner smoothing with corners rounded outside not inside... 94 Figure 4-1: Tool tip radius compensation for rotating tools... 104 Figure 4-2: Tool length compensation for rotating tools... 106 Figure 4-3: Tool length compensation for fixed tools... 106 Figure 5-1: Effect of different tool radii on the work piece contour... 114 Figure 5-2: Equidistant left and right of the work piece contour... 115 Figure 5-3: Path compensation at the block transition Straight line/straight line... 116 Figure 5-4: Path compensation at the block transition Straight line/circular arc... 117 Figure 5-5: Path compensation at the block transition circular arc/circular arc... 118 Figure 5-6: Move to intersection on a linear path... 120 Figure 5-7: Move to intersection on a spiral path... 121 Figure 5-8: Comparison of path compensations G41 and G43... 122 Figure 5-9: Retreat on a linear path... 123 Figure 5-10: Retreat on a spiral path... 124 Figure 5-11: Generation of intermediate blocks, example 1... 125 Figure 5-12: Generation of intermediate blocks, example 2... 126 Figure 5-13: Generation of intermediate blocks, example 3... 127 Figure 5-14: Angle cut off... 128 Figure 5-15: End point radius compensation... 129 Figure 5-16: Real-time radius compensation... 130 Figure 5-17: Insufficient cutting of internal contours with real-time radius compensation 130 Figure 5-18: Motion with blocks without positioning information in the active plane.. 133 Figure 5-19: Motion with a change between G41 and G42... 134 Figure 5-20: Motion with a sign change of the compensation value... 135 Figure 5-21: Motion with change of compensation value but no sign change, example 1 136 Figure 5-22: Motion with change of compensation value but no sign change, example 2 137 Figure 5-23: Motion with a tool radius that is too large for an inside corner... 138 Figure 5-24: Radius smaller than compensation value (R < D)... 139 page 11/352

Figure 5-25: Motion with a full circle as external contour (with G42)... 140 Figure 5-26: Motion with a full circle as external contour (with G44)... 141 Figure 5-27: Motion with a full circle as internal contour (with radius compensation). 142 Figure 5-28: Full circle as external contour (with radius compensation)... 143 Figure 5-29: Processing with external path compensation at corners, internal contour processing 144 Figure 5-30: Setting work piece zero points... 146 Figure 5-31: Programming in metric or imperial format... 149 Figure 5-32: Dimension input in absolute dimension programming... 150 Figure 5-33: Dimension input in incremental dimension programming... 151 Figure 5-34: Set axis value with G92... 152 Figure 5-35: Definition of a reference point for work piece zero points... 153 Figure 5-36: Polar coordinates... 155 Table 5-1: Major axis and minor axis... 155 Table 5-2: Angle and radius values in the three predefined planes... 156 Figure 5-37: Polar coordinate programming without pole point information... 156 Figure 5-38: Polar coordinate programming with pole point information... 158 Figure 5-39: Circular interpolation plane selection... 161 Table 5-3: Circular interpolation planes (G20)... 162 Figure 5-40: Work area of a machine tool with the axes X and Y... 163 Figure 5-41: Programmable mirror, effect of the programs P1 to P4... 166 Figure 5-42: Mirror with prior setting of an axis value using G92... 167 Figure 5-43: Part rotation in the case of active G90... 171 Figure 5-44: Part rotation in combination with incremental programming (G91)... 172 Figure 5-45: Scaling with absolute and relative dimension input... 174 Figure 5-46: Grinding wheel offset definitions... 175 Figure 5-47: Grinding wheel radius orientation definitions... 176 Figure 5-48: Dresser or tool tip radius orientation definitions... 177 Figure 5-49: Grinding wheel control point and gauge point definitions... 178 Figure 5-50: Inside corner definition... 179 Table 5-4: Differences between DWRC entry/exit move types A, B, C... 179 Table 5-5: G-codes for DWRC path compensation... 180 Table 5-6: Application schemes for DWRC path compensation... 181 Figure 5-51: Dress/wheel radius compensation example... 181 Figure 5-52: Wheel corner radius compensation example... 182 Table 5-7: Activations of DWRC path compensation... 183 Figure 5-53: Linear and circular intermediate blocks... 184 Figure 5-54: The three compensation entry move types (overview)... 185 Figure 5-55: Compensation entry moves type A, linear to linear... 186 Figure 5-56: Compensation entry moves type A, linear to circular... 187 Figure 5-57: Compensation entry moves type A, circular to linear... 187 Figure 5-58: Compensation entry moves type A, circular to circular... 188 Figure 5-59: Compensation entry moves type B, linear to linear... 189 Figure 5-60: Compensation entry moves type B, circular intermediate blocks... 190 Figure 5-61: Compensation entry moves type C, linear to linear... 191 Table 6-1: Cycle programming: parameters and instructions... 196 Figure 6-1: Transfer of the NC blocks to the interpolator process... 196 page 12/352

Table 6-2: Calculation operations and functions... 199 Table 6-3: Reserved cycle parameters... 205 Table 6-4: Summary of CNC data as cycle parameters... 206 Table 6-5: IF comparison operators... 215 Table 6-6: Summary of cycle block SEL functions... 217 Figure 7-1: Reference plane, retract plane and final hole depth... 221 Figure 7-2: Drilling cycle G81... 226 Figure 7-3: Drilling cycle G82... 228 Figure 7-4: Drilling cycle G83... 230 Figure 7-5: Drilling cycle G84... 232 Figure 7-6: Drilling cycle G85... 234 Figure 7-7: Drilling cycle G86... 236 Figure 7-8: Drilling cycle G87... 238 Figure 7-9: Drilling cycle G88... 240 Figure 7-10: Drilling cycle G89... 242 Figure 7-11: Example: Base plate... 243 Figure 9-1: Relationship between two linear axes with Angled Wheel Transformation 252 Figure 9-2: Example for G222, two step move for Angled Wheel Transformation... 254 Table 9-1: Angled Wheel Transformation two-step motion description... 255 Figure 9-3: Interpretation of the X and Y values when G102 is active... 260 Figure 9-4: Barrel cam transformation... 260 Figure 9-5: Meaning of the C and V values when G106 is active... 262 Figure 9-6: Osculation plane axis allocations for the cylinder... 263 Figure 9-7: Real-time radius compensation... 264 Figure 9-8: Barrel cam transformation with centerline deviation... 265 Figure 9-9: Diameter Programming... 267 Table 9-2: Diameter programming G-codes... 268 Figure 9-10: Diameter Programming with negative orientation... 269 Figure 9-11: Diameter Programming Point of Contact... 271 Table 9-3: Diameter programming conditions... 271 Figure 9-12: Position-defined fast M-functions... 277 Figure 9-13: Rotations of a normal round axis... 287 Table 9-4: Programmable values for a round axis... 287 Figure 9-14: Rotations of A axis (normal round)... 289 Table 9-5: Programmable values for a tool magazine axis... 289 Figure 9-15: Tool magazine round axis... 290 Figure 9-16: Modulo round axis... 291 Table 9-6: Programmable values for a modulo axis... 291 Table 9-7: Definition of a G33/G34 thread block... 313 Figure 9-17: Work piece before G33 processing... 314 Figure 9-18: Work piece after processing with G33... 315 Figure 9-19: Work piece with controller running out (G33)... 315 Figure 9-20: Work piece with increasing pitch (G34)... 316 Figure 9-21: Work piece with decreasing pitch (G34)... 316 Figure 9-22: Work piece before processing with G33... 317 Figure 9-23: Work piece after processing with G33... 317 page 13/352

Figure 9-24: Work piece with controlled running out (G33)... 318 Figure 9-25: Stock removal... 322 Figure 9-26: Stock removal: direction of allowance... 323 Figure 9-27: Stock removal in facing... 325 Figure 9-28: Stock removal in facing: direction of removal... 326 Figure 9-29: G274 peck finishing cycle... 329 Figure 9-30: G275 inner/outer diameter turning cycle... 330 Figure 9-31: G276 multiple pass thread turning cycle... 332 Figure 9-32: G276 threading cycle and tool tip parameters... 332 page 14/352

1 Basics of NC Programming 1.1 Program Layout An NC program (part program) is a sequence of processing steps and is divided into program blocks. Each program block contains the information that the machine requires to perform the desired process. N10 G90 Additional conditions N20 G1 X50 Y20 F120 M3 S100 N30 X15 Instruction Sequence of digits Program blocks N40 Y-20 X25 N50 G4 F1000 Address letter Program words Block number Figure 1-1: Elements of an NC program 1.2 Program block Individual lines of an NC program are called program blocks or NC blocks. A program block is the smallest work step that can be taken when processing a work piece. A program block begins with a block number and ends with a block end character. A block number is made up of the address character N with a maximum of four digits. Leading zeros can be omitted. Blocks without block numbers can neither be read nor entered during programming. The block end character used by the CNC is the linefeed character (0AH). Placing a slash / (block slash code) before a block allows the block to be ignored or masked out. (See 1.5 Block Suppression.) The maximum length of a program block is 128 characters (including block end character and optional checksum). To allow editing of an NC program the program blocks are numbered sequentially in blocks of ten with rising block numbers. This provides easy location of program blocks and insertion of additional blocks. Example: N10 G90 N20 G1 X50 Y20 F3000 M3 S1000 N30 X15 page 15/352

1.3 Program Word N40 Y-20 X25 N50 G4 F1000 N60 M30 The NC blocks being manually input into the CNC are automatically sorted according to block numbers. The NC block with the lowest block number appears at the beginning of the program and the one with the highest number at the end. The program blocks are processed in the sequence in which they were stored. NC programs entered directly into the CNC are also processed by increasing block numbers. NC programs that have been externally created and then read into the CNC may not be processed by increasing block numbers because the program is not checked for increasing block numbers when loaded. The externally created program will be processed sequentially as ordered in the file, not by increasing block number. The individual information in a program block is called a program word. A program word contains technical, geometrical or technological information related to the program. The sequence of the program words in a block is arbitrary. A program word is made up of an address letter and a sequence of digits with or without a sign. The address letter designates the type of program word. Each address letter must only be programmed once per NC block. If the same address letter is programmed several times in a block during program input, the program block is rejected (error message 5 appears). If the same address letter appears repeatedly in a block from an externally created program that is read into the CNC, the last address letter read becomes effective. The sequence of digits of a word is an integer or a number, consisting of an integer value and a decimal fraction that can be zero. The decimal is separated from the integer by a period. A comma is not admissible. Signs are programmed between address letter and sequence of digits. Positive signs, leading zeros and nonsignificant zeros after the decimal point do not need to be programmed. If the decimal point is not followed by any significant digits, it is automatically set in the display. Example: G1 instead of: M1 instead of: G01 M01 X1234.5 instead of: X+1234.500 Y12 instead of: Y+12.00 Z-25.4 instead of: Z-0025.4 There are common uses for many of the letters. These conventions are listed below. Note that these are not all permanent letter assignments. It is possible for axes to get page 16/352

any of the letters A, B, C, O, U, V, W, X, Y, Z and for any of these letters to be either a rotary or linear axis. The following axis assignments are typical and are described in more detail later (see 1.15). A B C D F G H I J K L M N P Q R S T X Y Z A-axis command (usually a rotary) B-axis command (usually a rotary) C-axis command (usually a rotary) Tool diameter/radius compensation number Feedrate value CNC function or code Tool length compensation number Circle center distance for X Circle center distance for Y Circle center distance for Z or circle radius (G12/G13) Loop count for subroutine/macro Machine function or code Block sequence number Macro programming variable Subroutine program number to call Rotation or scaling factor Spindle speed (RPM) Tool number or turret position X-axis command (usually a linear) Y-axis command (usually a linear) Z-axis command (usually a linear) The D, F, G, H, I, J, K, M, N, P, Q, R, S letter assignments are permanent, per this list, except where the syntax defined in this manual identifies an alternate meaning (e.g., P and Q are also used in turning cycles, in 9.17) or a feature is not used (e.g., R could be an axis only if G50 to G52 were never used). Note that typically the letters D, G, H, L, M, N, P, Q, S, T never have a decimal point. Program words are considered instructions or additional conditions. An instruction (e.g., G- or M-codes) prepares or triggers a process in the machine tool or the control. An additional condition describes the instructions more exactly (e.g., specifying the destination coordinates for a positioning instruction). Program words can be distinguished as either modal (retentive) or non-modal. Modal program words are active in all following program blocks until they are overridden or overwritten by an instruction or additional condition that cancels them. Non-modal program words are only active in the block in which they are programmed. Modal instructions must therefore only be programmed when they are changing or when additions are necessary. Non-modal instructions have to be programmed in each block in which they are included. Instructions are organized into instruction groups. In any one instruction group all the instructions are summed up but only one instruction can be in effect at a time. Table 1-1 on the following pages contains G-Codes available in the CNC. The tables include notes on group division, effectiveness, whether the respective instruction is page 17/352

active at CONTROL RESET and whether positioning instructions are programmable in the same block. G-Codes used to program travel movements within the same block are marked in Table 1-1 by an asterisk (*). Table 1-2 on the following pages contains M-codes, some of which are available only in application specific versions of the CNC. G-Function Meaning Group Effectivity Active after reset? G00 * Linear interpolation with maximum speed 1 Modal G01 * Linear interpolation with programmed speed 1 Modal Yes G02 * Circle or helical interpolation with defined circle 1 Modal G03 * center (clockwise) Circle of helical interpolation (counter clockwise) 1 Modal G04 * Dwell time Blockwise G05 * Definition of spline Blockwise G06 * Activation of spline 1 Modal G07 * Tangential arc interpolation 1 Modal G08 * Look Ahead OFF 7 Modal Yes G09 * Look Ahead ON 7 Modal G10 * Clean dynamic buffer Blockwise G11 * Fill up dynamic buffer Blockwise G12 * Arc interpolation with defined radius (clockwise) 1 Modal G13 * Arc interpolation with radius (counter clockwise) 1 Modal G14 * Polar coordinate programming absolute 3 Modal G15 * Polar coordinate programming incremental 3 Modal G16 * Definition of coordinate system Blockwise G17 * G18 * G19 * G20 * Plane select X/Y Plane select Z/X Plane select Y/Z Plane select programmable 12 12 12 12 Modal Modal Modal Modal G21 * Parallel axis ON 14 Modal G22 * Parallel axis OFF 14 Modal G24 * Work area limit lower boundary Blockwise G25 * Work area limit upper boundary Blockwise G26 * Work area limit OFF 9 Modal G27 Work area limit ON 9 Modal G33 * Thread cutting, constant pitch 1 Modal G34 * Thread cutting, variable pitch 1 Modal G35 * Oscillation Blockwise G38 Programmable mirroring ON 10 Modal G39 * Programmable mirroring OFF 10 Modal G40 * G41 * G42 * G43 * G44 * Tool radius correction OFF Tool radius correction to the left Tool radius correction to the right Tool radius correction to the left with modified activation Tool radius correction to the right with modified activation 4 4 4 4 4 Modal Modal Modal Modal Modal G45 * Linear intermediate blocks Modal G46 * Circular intermediate blocks Modal G50 * Scaling Modal G51 * Part rotation degrees Modal G52 * Part rotation radians Modal Yes Yes Yes Yes page 18/352

G53 * G54 * G55 * G56 * G57 * G58 * G59 * G63 * G66 * G70 * G71 * G72 * G73 * Zero point shifting OFF Zero point shifting 1 ON Zero point shifting 2 ON Zero point shifting 3 ON Zero point shifting 4 ON Zero point shifting 5 ON Zero point shifting 6 ON Feed/spindle override ON Feed/spindle override OFF Programming in inches Programming in metric (mm) Interpolation with exact position OFF Interpolation with exact position ON page 19/352 11 11 11 11 11 11 11 8 8 2 2 6 6 Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal G74 Programmable homing Blockwise G75 G76 Curvature activation Curvature acceleration 7 7 Modal Modal G78 * Tangential direction 2D control ON Modal G79 * Tangential direction 2D control OFF Modal G80 * Canned Drilling Cycles (work cycles) Canned cycle off Modal G81 ^ Drilling to final depth Modal G82 ^ Spot facing with dwell time Modal G83 ^ Deep hole drilling Modal G84 ^ Tapping or thread cutting with balanced chuck Modal G85 ^ Reaming Modal G86 ^ Boring Modal G87 ^ Reaming with measuring stop Modal G88 ^ Boring with spindle stop Modal G89 ^ Boring with intermediate stop Modal G90 * Absolute programming 3 Modal G91 * incremental programming 3 Modal G92 Zero point setting, maximum spindle speed Modal G94 * Feed in millimeters/minute 5 Modal G95 * Feed in millimeters/revolution 5 Modal G96 * Constant cutting speed ON 15 Modal G97 * Constant cutting speed OFF 15 Modal G98 ^ Positioning axis dwell time Blockwise G99 * Axis offset Modal G100 Polar/cylindrical transformation OFF Modal G101 ^ Polar/cylindrical transformation ON Modal G102 ^ Cylindrical transformation ON Modal G103 ^ Barrel CAM transformation, real time radius comp Modal G104 ^ Barrel CAM transformation with centerline deviation Modal G105 ^ G101 with alternative axis addresses Modal G106 ^ G102 with alternative axes addresses Modal G107 ^ G103 with alternative axes addresses Modal G108 ^ G104 with alternative axes addresses Modal G109 * Axis transformation programming of tool depth Modal G110 ^ Axes selection laser power control Blockwise G111 * Definition of voltage 1 (V1), speed (F1), time (T1) Blockwise G112 * Definition of voltage 2 (V2), speed (F2), time (T2) Blockwise G113 * Definition of voltage 3 (V3), speed (F3), time (T3) Blockwise G114 * Definition of time 4 (T4) Blockwise G115 * Definition of time 5 (T5) Blockwise G116 * Definition of time 6 (T6) Blockwise G117 * Definition of time 7 (T7) Blockwise G120 G121 G125 G126 G127 Axis transformation; orientation change of rotary axis Axis transformation; orientation change in a plane Electronic gear box; plain teeth Electronic gear box; helical gearing, axial Electronic gear box; helical gearing, tangential Modal Modal Modal Modal Modal Yes Yes Yes Yes Yes Yes Yes

G128 Electronic gear box; helical gearing, diagonal Modal G130 G131 G132 Axis transformation; program orientation change Axis transformation; orientation change Axis transformation; orientation change Modal Modal Modal G133 Lag free threading learning ON Modal G134 G140 G141 G150 G151 G152 G160 G161 ^ G162 ^ G163 ^ G164 ^ G165 G166 G170 G171 Lag free threading learning OFF Axis transformation; orientation designation of work piece fixed coordinates Axis transformation; orientation designation of active coordinates Real-time cutter radius compensation OFF Real-time cutter radius comp ON to the left of path Real-time cutter radius comp ON to right of path ART (Adaptive Regulation Technology) activation ART learning function for velocity factors ART learning function deactivation ART learning function for acceleration factors ART learning function for acceleration changing Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal Modal Command filter OFF Command filter ON Modal Digital measuring signals; block transfer, hard stop Modal Digital measuring signals; block transfer, without hard Modal stop G172 Digital measuring signals; block transfer, soft stop Modal G180 ^ 5-axes transformation OFF Modal G181 ^ 5-axes transformation ON, no rotated coord. sys. Modal G182 ^ 5-axes transformation ON with rotated coord. sys. Modal G183 * 5-axes transformation; define coordinate system Modal G184 * 5-axes transformation; program tool dimensions Modal G186 Acceleration on corners, accuracy of arc interpolation Blockwise G188 * Enable positioning axis motion Blockwise G190 G191 G192 G193 G200 G201 G202 G203 Diameter programming OFF Diameter programming and display ON Diameter display ON Diameter display in actual dimension Corner smoothing OFF Corner smoothing ON with defined radius Corner smoothing ON with defined corner radius Corner smoothing ON with defined radius up to tolerance Modal Modal Modal Modal Modal Modal Modal Modal G210 to Laser power control for 2 nd output channel (like Modal G217 G110-G117) G220 ^ G221 ^ G222 ^ G223 ^ G224 ^ G225 ^ Angled wheel transformation OFF Angled wheel transformation ON - normal Angled wheel transformation ON two-step with angled wheel axis moving first then other axes Angled wheel transformation ON two-step with angled wheel axis moving last after other axes Same as G222 but axes move in machine coord. Same as G223 but axes move in machine coord. Modal Modal Modal Modal Modal Modal G265 Distance regulation axis selection Modal G270 G271 G272 G274 G275 G276 G310 to G317 Turning Cycles Turning finishing cycle Stock removal in turning Stock removal in facing Peck finishing cycle Outer diameter / inner diameter turning cycle Multiple pass threading cycle Laser power control for 3rd output channel (like G110-G117) Modal Modal Modal Modal Modal Modal Modal page 20/352

* Axis information is programmable in the same block ^ No axis information is allowed in the same block Table 1-1: G-Codes The currently active G-codes are displayed in the G-codes window of the Information page by entering ALT I: INFO. The above list contains optional G-codes that are only available in application specific versions of the CNC. With typical default settings, then at CONTROL RESET the correspondingly marked G-codes in Table 1-1 are active. For another possible default setting see the G-codes window by entering ALT I: INFO after selection of CONTROL RESET or reference the documentation with control (with any changes to the control defaults). M-Command Meaning M00 * Unconditional Stop M01 (*) M02 (*) Conditional Stop End of Program M03 * M04 * M05 * M19 * Spindle orientation M20 * M21 * M22 * M25 * M30 (*) End of program M40 * M41 * M42 * M43 * M44 * M45 * M46 * M70 * M71 * M72 * M73 * Spindle clockwise Spindle counterclockwise Spindle Stop Oscillation ON, Punching/Nibbling ON Oscillation OFF Nibbling ON Punching with/without dwell time ON Automatic gear selection Spindle gear transmission step 1 Spindle gear transmission step 2 Spindle gear transmission step 3 Spindle gear transmission step 4 Spindle gear transmission step 5 Spindle gear transmission step 6 Spline, beginning and end curve 0 Spline, beginning tangential, end curve 0 Spline, beginning curve 0, end tangential Spline, beginning and end tangential M80 * Delete rest of distance using probe function M81 * Drive on application block (resynchronize axis positions via PLC signal during the block) M101... M108 M109 M111... M118 M121... M128 M140 * M141 * M150 * M151 * to M158 * Reset Bit 1... Reset Bit 8 Reset all (8) bits Set Bit 1... Set Bit 8 Pulsate Bit 1... Pulsate Bit 8 Distance regulation ON (configured by G265) Distance regulation OFF Delete rest of distance using probe function, for a probe input (one of 16, M151-M168) Digital input byte 1 bit 1 (to bit 8) is active probe input (for M150) page 21/352

M159 * M160 * M161 * to M168 * M170 * M171 * M200 * M201 * to M208 * M209 * M210 * M211 * M213 * M214 * M215 * M280 * M281 * M290 * M291 * PLC cannot define the bit mask for probe PLC can define the bit mask for probe Digital input byte 2 bit 1 (to bit 8) is active probe input (for M150) Continue look ahead (cancel M171) Stop look ahead in probe program Handwheel in automatic mode ON (activated) Axis select for handwheel in auto (axis 1 to 8) Handwheel parameters Suspend handwheel input (offsets still active) Handwheel in automatic mode OFF Spindle 2 on, clockwise Spindle 2 on, counter clockwise Spindle 2 off or stop Switchable spindle/rotary axis rotary axis on (not spindle), first combination Switchable spindle/rotary axis rotary axis on (not spindle), second combination Switchable spindle/rotary axis spindle on (not rotary axis), first combination Switchable spindle/rotary axis spindle on (not rotary axis), second combination Note: * M-Code will be transmitted as BCD to PLC (*) M-Code will only be transmitted to PLC if the function is actually executed M-Code will not be transmitted as BCD to PLC; these are the fast output signals for the laser power control option, handled internally by the CNC. The above list contains some optional M-Codes that are available only in application specific versions of MACHINEMATE. Many of the M-codes in the table above can be assigned a different value with a machine parameter associated with that feature. Table 1-2: M-Codes page 22/352

1.4 Auxiliary functions (BCDs) Auxiliary functions are program words that are used to transfer information from the NC program to the PLC program. Up to four of these auxiliary functions can be preset in the CNC. The address letters M, S, U and T are used for auxiliary functions. The corresponding program words are ignored in the NC program and transferred as BCDs to the PLC Program. The meaning of the BCDs is determined by the machine manufacturer and should be explained in the machine documentation. The M-codes that are listed in Table 1-2 however are predefined but can only be used if the relevant function is also available. Only those M-codes listed in Table 1-2 that are marked by an asterisk (*) are transferred to the PLC. Some M-Codes (e.g., M02, M30) are only transferred to the PLC when the corresponding function is actually executed. For example M02 is only transferred to the PLC when it is at the end of a main program and CONTROL RESET is initiated. M02 is not transferred to the PLC when it is positioned at the end of a subroutine because this would cause a jump back to the main program. page 23/352

1.5 Programming functional overview Positioning instructions This is a summary of the programming functions. G00 G01 G02/G03 G12/G13 G74 M80 G07 G05/G06 G78/G79 G08/G09 G101/G105 G102/G106 Program execution instructions M00 M01 M02/M30 G10/G11 G72/G73 G08/G09 G186 G75/G76 G04 Technical instructions: Geometric instructions: G94/G95 F word, S word G63/G66 B word M03/M04/M05 M19 G92 G96/G97 G40-G44 G53-G59 G70/G71 G90/G91 G92 G14-G16 Linear interpolation in rapid traverse Linear interpolation in the feed rate Circular interpolation with specified center point Circular interpolation with specified radius Programmable homing Delete remaining paths using probe function Tangential circular interpolation Spline interpolation 2D Tangential setting to the 2D path Look Ahead over more than two blocks Polar transformation Cylinder pattern development transformation Program stop (unconditional) Program stop (conditional) End of program Empty/Fill block buffer Interpolation with precision stop OFF/ON Look Ahead over more than two blocks Corner acceleration, contour accuracy Curvature Programmable dwell Inches/minute or Inches/revolution Feed rate, spindle speed Feed rate or spindle override ON/OFF Programmable acceleration Spindle ON/OFF (clockwise or counter-clockwise) Spindle Orientation Spindle speed limitation S as constant surface speed or rpm Path compensations Part position offsets Programming in imperial/ metric format (inch/mm) Absolute or incremental programming Axis value settings Polar coordinate programming page 24/352

G17-G20 G24-G27 G38/G39 G51/G52 G50 Plane selection Programmable work field limits Programmable axis motion mirror Part rotation in degrees/radians Scaling 1.6 Block suppression Placing a slash (block slash code) before a block marks the block as suppressed. The block is ignored if Alt A: AUTOmatic F3: Execute program 2 F1: (/) Block Read over is selected. When F1:(/) Block Read over is not selected, the blocks are processed like ordinary NC blocks. Cycle blocks cannot be suppressed in this manner. Example: N10 G0 X0 Y0 /N20 G1 X2000 Y300 Is not executed when ignore block read over is selected. N30 G1 X4000 Application: The processing of a family of parts is described in an NC program. All machining operations that are required for part version A, but are not to be executed for part version B, can be preceded by a slash (/). After selection of: Alt A: AUTOmatic F3: Program process 2 F1: (/) Block Read over the blocks marked by a slash are not considered. Note: If Alt A: AUTOmatic F3: Program process 2 F1: (/) Block read over is selected after a suppressed block has already been preprocessed and is waiting in the dynamic block buffer, the suppressed block is not ignored, even if this block has not yet been reached in the actual program execution. 1.7 Program Repetition Program repetitions are programmed with an L-code in the last block along with the instructions M30 or M02: Example: N... L5 M30 The program is repeated 5 times. It is executed 6 times in total. The special case of L0 causes the program to be executed infinitely. Repetition calls in the last block of a subroutine are ignored (see 1.8 Subroutines). At the end of a subroutine, the instructions M02 and M30 cause a jump back to the main program from which the subroutine was called. At the end of a main program, the instructions M02 and M30 initiate CONTROL RESET. page 25/352

1.8 Subroutines Subroutine calls are programmed by entering Q followed by the program number of an NC program already available in the CNC. The subroutine call causes the first block of the selected subroutine to be processed as next NC block. A subroutine is also called a subprogram because the syntax in a subroutine is identical to that of a main program (except its very first block cannot be a cycle block). When the main program calls a subroutine, it is really just calling another program to run. Program repetition calls in the last block of a subroutine are ignored and have to be programmed, together with L, in the calling program. They are programmed in the same line in which Q was entered, followed by the number of subroutine runs. Example: N... Q100 L5 The program with the number 100 is called as a subroutine and executed 6 times in total. Further subroutines can be called within subroutines. The nesting depth is limited to 4 times. One main program level and four subroutine levels can be programmed altogether. P100 P200 P300 P400 Figure 1-2: Nesting depth Note: A M30 or M02 code cannot be positioned in a block with a subroutine call, since in such blocks subroutine calls are ignored. Also, subroutines must not start with a cycle block! The example above uses a main program and its subroutines that are in CNC memory. The subroutines must be in the same location as the main program. If the main is in CNC memory then subroutines must be there also. The CNC will search for the subroutine program number first in the CNC memory. This is useful for subroutines common to multiple main programs. If the subroutine is not found there and if the main program is in a disk folder then the subroutine file will be checked in that same folder. When the main program is in CNC memory and the subroutine program number is not found (in CNC memory) then error 152 results. When the main program is in a disk folder and the subroutine program number is not found (in either CNC or the disk folder) then error 761 results. page 26/352

When the main program is in a disk folder then the file naming for the subprograms is important. The default format for the letter Q is six digits. Therefore the CNC will look for a file having exactly the correct name to match the subprogram call. For example, a program running from the disk having a block N40Q100 will result in the running of a file named P000100. from the same disk folder as the main program. Other commands in the block with the subroutine call will be executed before the subroutine is called. For example with a block like N300 X10 Q500 the X-axis will move as directed and after its move is done then the subroutine 500 will be called. A subroutine call cannot be made from the X and/or Y block that will run a canned drilling cycle (when one of G81 to G89 is modal). The drilling cycle defines an implied subroutine that runs automatically for the axis move with a modal drilling cycle so another subroutine cannot be run as well from the same block. 1.9 Comments in NC programs NC blocks for the CNC can contain comments. These can be included at any position in the NC block. They have no effect on the processing of the NC block. The comment is enclosed in parentheses. Example:... N20 G1 X0 Y0 Z0 (move to zero point)... This comment is included in the NC block and the block display during processing but is otherwise completely ignored by the CNC. There are two forms of comment that can be used to output notes in the state line:... (MSG, text)...... (*MSG, text)... In the first case, the text between the comma and the closing parenthesis together with the icon (symbol) for notes is displayed in the status line of the CNC during the processing of the NC block. The text is then cleared again when the next block is processed. In the second case the text remains displayed in the status line until it is either explicitly confirmed or the end of the main program is reached. Note that the MSG often accompanies an M0, an operator stop, so the operator sees the message that is the reason for the stop. If there is no M0, sometimes there will be a short dwell in the block with the MSG (like G4F.5) so that the CNC displays the message and does not skip it as it maintains a high block throughput. In cycle blocks, comments of the form... /Text... can also be used. Here all characters between the slash (/) and the block end are treated as a comment. There are no parentheses in cycle blocks (before a comment). page 27/352