Haas Mill NGC Operation Manual PDF


Summary of Content for Haas Mill NGC Operation Manual PDF
,
Haas Automation Inc. 2800 Sturgis Road
Oxnard, CA 93030-8933 U.S.A. | HaasCNC.com
To get translated versions of this Manual: 1. Go to www.HaasCNC.com 2. See Owner Resources (bottom of page) 3. Select Manuals and Documentation
2015 Haas Automation, Inc. All Rights Reserved. Copy by Permission Only. Copyright Strictly Enforced.
Mill Operators Manual
96-8210 Revision A April 2016 Language
Original Instructions
2016 Haas Automation, Inc.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form, or by any means, mechanical, electronic, photocopying, recording, or otherwise, without the written permission of Haas Automation, Inc. No patent liability is assumed with respect to the use of the information contained herein. Moreover, because Haas Automation strives constantly to improve its high-quality products, the information contained in this manual is subject to change without notice. We have taken every precaution in the preparation of this manual; nevertheless, Haas Automation assumes no responsibility for errors or omissions, and we assume no liability for damages resulting from the use of the information contained in this publication.
i
This product uses Java Technology from Oracle Corporation and we request that you acknowledge that Oracle owns the Java Trademark and all Java related Trademarks and agree to comply with the trademark guidelines at www.oracle.com/us/legal/third-party-trademarks/index.html.
Any further distribution of the Java programs (beyond this appliance/machine) is subject to a legally binding End User License Agreement with Oracle. Any use of the commercial features for production purposes requires a separate license from Oracle.
ii
iii
LIMITED WARRANTY CERTIFICATE
Haas Automation, Inc.
Covering Haas Automation, Inc. CNC Equipment
Effective September 1, 2010
Haas Automation Inc. (Haas or Manufacturer) provides a limited warranty on all new mills, turning centers, and rotary machines (collectively, CNC Machines) and their components (except those listed below under Limits and Exclusions of Warranty) (Components) that are manufactured by Haas and sold by Haas or its authorized distributors as set forth in this Certificate. The warranty set forth in this Certificate is a limited warranty, it is the only warranty by Manufacturer, and is subject to the terms and conditions of this Certificate.
Limited Warranty Coverage
Each CNC Machine and its Components (collectively, Haas Products) are warranted by Manufacturer against defects in material and workmanship. This warranty is provided only to an end-user of the CNC Machine (a Customer). The period of this limited warranty is one (1) year. The warranty period commences on the date the CNC Machine is installed at the Customers facility. Customer may purchase an extension of the warranty period from an authorized Haas distributor (a Warranty Extension), any time during the first year of ownership.
Repair or Replacement Only
Manufacturers sole liability, and Customers exclusive remedy under this warranty, with respect to any and all Haas products, shall be limited to repairing or replacing, at the discretion of the Manufacturer, the defective Haas product.
Disclaimer of Warranty
This warranty is Manufacturers sole and exclusive warranty, and is in lieu of all other warranties of whatever kind or nature, express or implied, written or oral, including, but not limited to, any implied warranty of merchantability, implied warranty of fitness for a particular purpose, or other warranty of quality or performance or noninfringement. All such other warranties of whatever kind are hereby disclaimed by Manufacturer and waived by Customer.
iv
Limits and Exclusions of Warranty
Components subject to wear during normal use and over time, including, but not limited to, paint, window finish and condition, light bulbs, seals, wipers, gaskets, chip removal system (e.g., augers, chip chutes), belts, filters, door rollers, tool changer fingers, etc., are excluded from this warranty. Manufacturers specified maintenance procedures must be adhered to and recorded in order to maintain this warranty. This warranty is void if Manufacturer determines that (i) any Haas Product was subjected to mishandling, misuse, abuse, neglect, accident, improper installation, improper maintenance, improper storage, or improper operation or application, including the use of improper coolants or other fluids, (ii) any Haas Product was improperly repaired or serviced by Customer, an unauthorized service technician, or other unauthorized person, (iii) Customer or any person makes or attempts to make any modification to any Haas Product without the prior written authorization of Manufacturer, and/or (iv) any Haas Product was used for any non-commercial use (such as personal or household use). This warranty does not cover damage or defect due to an external influence or matters beyond the reasonable control of Manufacturer, including, but not limited to, theft, vandalism, fire, weather condition (such as rain, flood, wind, lightning, or earthquake), or acts of war or terrorism.
Without limiting the generality of any of the exclusions or limitations described in this Certificate, this warranty does not include any warranty that any Haas Product will meet any persons production specifications or other requirements, or that operation of any Haas Product will be uninterrupted or error-free. Manufacturer assumes no responsibility with respect to the use of any Haas Product by any person, and Manufacturer shall not incur any liability to any person for any failure in design, production, operation, performance, or otherwise of any Haas Product, other than repair or replacement of same as set forth in the warranty above.
Limitation of Liability and Damages
Manufacturer will not be liable to Customer or any other person for any compensatory, incidental, consequential, punitive, special, or other damage or claim, whether in an action in contract, tort, or other legal or equitable theory, arising out of or related to any Haas product, other products or services provided by Manufacturer or an authorized distributor, service technician, or other authorized representative of Manufacturer (collectively, authorized representative), or the failure of parts or products made by using any Haas Product, even if Manufacturer or any authorized representative has been advised of the possibility of such damages, which damage or claim includes, but is not limited to, loss of profits, lost data, lost products, loss of revenue, loss of use, cost of down time, business good will, any damage to equipment, premises, or other property of any person, and any damage that may be caused by a malfunction of any Haas product. All such damages and claims are disclaimed by Manufacturer and waived by Customer. Manufacturers sole liability, and Customers exclusive remedy, for damages and claims for any cause whatsoever shall be limited to repair or replacement, at the discretion of Manufacturer, of the defective Haas Product as provided in this warranty.
v
Customer has accepted the limitations and restrictions set forth in this Certificate, including, but not limited to, the restriction on its right to recover damages, as part of its bargain with Manufacturer or its Authorized Representative. Customer realizes and acknowledges that the price of the Haas Products would be higher if Manufacturer were required to be responsible for damages and claims beyond the scope of this warranty.
Entire Agreement
This Certificate supersedes any and all other agreements, promises, representations, or warranties, either oral or in writing, between the parties or by Manufacturer with respect to subject matter of this Certificate, and contains all of the covenants and agreements between the parties or by Manufacturer with respect to such subject matter. Manufacturer hereby expressly rejects any other agreements, promises, representations, or warranties, either oral or in writing, that are in addition to or inconsistent with any term or condition of this Certificate. No term or condition set forth in this Certificate may be modified or amended, unless by a written agreement signed by both Manufacturer and Customer. Notwithstanding the foregoing, Manufacturer will honor a Warranty Extension only to the extent that it extends the applicable warranty period.
Transferability
This warranty is transferable from the original Customer to another party if the CNC Machine is sold via private sale before the end of the warranty period, provided that written notice thereof is provided to Manufacturer and this warranty is not void at the time of transfer. The transferee of this warranty will be subject to all terms and conditions of this Certificate.
Miscellaneous
This warranty shall be governed by the laws of the State of California without application of rules on conflicts of laws. Any and all disputes arising from this warranty shall be resolved in a court of competent jurisdiction located in Ventura County, Los Angeles County, or Orange County, California. Any term or provision of this Certificate that is invalid or unenforceable in any situation in any jurisdiction shall not affect the validity or enforceability of the remaining terms and provisions hereof, or the validity or enforceability of the offending term or provision in any other situation or in any other jurisdiction.
vi
Customer Feedback
If you have concerns or questions regarding this Operators Manual, please contact us on our website, www.HaasCNC.com. Use the Contact Haas link and send your comments to the Customer Advocate.
You can find an electronic copy of this manual and other useful information on our website in the Resource Center. Join Haas owners online and be a part of the greater CNC community at these sites:
The Haas Resource Center: Documentation and Procedures atyourservice.haascnc.com
diy.haascnc.com
At Your Service: The Ofcial Haas Answer and Information Blog
haasparts.com Your Source for Genuine Haas Parts
www.facebook.com/HaasAutomationInc Haas Automation on Facebook
www.twitter.com/Haas_Automation Follow us on Twitter
www.linkedin.com/company/haas-automation Haas Automation on LinkedIn
www.youtube.com/user/haasautomation Product videos and information
www.ickr.com/photos/haasautomation Product photos and information
vii
Customer Satisfaction Policy
Dear Haas Customer,
Your complete satisfaction and goodwill are of the utmost importance to both Haas Automation, Inc. and the Haas distributor (HFO) where you purchased your equipment. Normally, your HFO will rapidly resolve any concerns you have about your sales transaction or the operation of your equipment.
However, if your concerns are not resolved to your complete satisfaction, and you have discussed your concerns with a member of the HFOs management, the General Manager, or the HFOs owner directly, please do the following:
Contact Haas Automations Customer Service Advocate at 805-988-6980. So that we may resolve your concerns as quickly as possible, please have the following information available when you call:
Your company name, address, and phone number The machine model and serial number The HFO name, and the name of your latest contact at the HFO The nature of your concern
If you wish to write Haas Automation, please use this address:
Haas Automation, Inc. U.S.A. 2800 Sturgis Road Oxnard CA 93030 Att: Customer Satisfaction Manager email: customerservice@HaasCNC.com
Once you contact the Haas Automation Customer Service Center, we will make every effort to work directly with you and your HFO to quickly resolve your concerns. At Haas Automation, we know that a good Customer-Distributor-Manufacturer relationship will help ensure continued success for all concerned.
International:
Haas Automation, Europe Mercuriusstraat 28, B-1930 Zaventem, Belgium email: customerservice@HaasCNC.com
Haas Automation, Asia No. 96 Yi Wei Road 67, Waigaoqiao FTZ Shanghai 200131 P.R.C. email: customerservice@HaasCNC.com
viii
96-8200C.book Page ix Friday, August 28, 2015 2:42 PM
Declaration of Conformity
Product: CNC Milling Centers (Vertical and Horizontal)*
*Including all options factory- or field-installed by a certified Haas Factory Outlet (HFO)
Manufactured By: Haas Automation, Inc.
2800 Sturgis Road, Oxnard, CA 93030 805-278-1800
We declare, in sole responsibility, that the above-listed products, to which this declaration refers, comply with the regulations as outlined in the CE directive for Machining Centers:
Machinery Directive 2006 / 42 / EC
Electromagnetic Compatibility Directive 2014 / 30 / EU Additional Standards:
EN 60204-1:2006 / A1:2009 EN 614-1:2006+A1:2009 EN 894-1:1997+A1:2008 CEN 13849-1:2015
RoHS: COMPLIANT by Exemption per producer documentation. Exempt by:
a) Large scale stationary industrial tool b) Monitoring and control systems c) Lead as an alloying element in steel, aluminum, and copper
Person authorized to compile technical file:
Jens Thing Address: Haas Automation Europe
Mercuriusstraat 28, B-1930 Zaventem, Belgium
ix
USA: Haas Automation certifies this machine to be in compliance with the OSHA and ANSI design and manufacturing standards listed below. Operation of this machine will be compliant with the below-listed standards only as long as the owner and operator continue to follow the operation, maintenance, and training requirements of these standards.
OSHA 1910.212 - General Requirements for All Machines
ANSI B11.5-1983 (R1994) Drilling, Milling, and Boring Machines
ANSI B11.19-2003 Performance Criteria for Safeguarding
ANSI B11.23-2002 Safety Requirements for Machining Centers and Automatic Numerically Controlled Milling, Drilling, and Boring Machines
ANSI B11.TR3-2000 Risk Assessment and Risk Reduction - A Guideline to Estimate, Evaluate, and Reduce Risks Associated with Machine Tools
CANADA: As the original equipment manufacturer, we declare that the listed products comply with regulations as outlined in the Pre-Start Health and Safety Reviews Section 7 of Regulation 851 of the Occupational Health and Safety Act Regulations for Industrial Establishments for machine guarding provisions and standards.
Further, this document satisfies the notice-in-writing provision for exemption from Pre-Start inspection for the listed machinery as outlined in the Ontario Health and Safety Guidelines, PSR Guidelines dated April 2001. The PSR Guidelines allow that notice in writing from the original equipment manufacturer declaring conformity to applicable standards is acceptable for the exemption from Pre-Start Health and Safety Review.
Original Instructions
ETL LISTED CONFORMS TO NFPA STD 79
ANSI/UL STD 508 UL SUBJECT 2011
CERTIFIED TO CAN/CSA STD C22.2 N O.73
All Haas CNC machine tools carry the ETL Listed mark, certifying that they conform to the NFPA 79 Electrical Standard for Industrial Machinery and the Canadian equivalent, CAN/CSA C22.2 No. 73. The ETL Listed and cETL Listed marks are awarded to products that have successfully undergone testing by Intertek Testing Services (ITS), an alternative to Underwriters' Laboratories.
The ISO 9001:2008 certification from ISA, Inc. (an ISO registrar) serves as an impartial appraisal of Haas Automations quality management system. This achievement affirms Haas Automations conformance with the standards set forth by the International Organization for Standardization, and acknowledges the Haas commitment to meeting the needs and requirements of its customers in the global marketplace.
C
x
How to Use This Manual
To get the maximum benefit of your new Haas machine, read this manual thoroughly and refer to it often. The content of this manual is also available on your machine control under the HELP function.
IMPORTANT: Before you operate the machine, read and understand the Operators Manual Safety chapter.
Declaration of Warnings
Throughout this manual, important statements are set off from the main text with an icon and an associated signal word: Danger, Warning, Caution, or Note. The icon and signal word indicate the severity of the condition or situation. Be sure to read these statements and take special care to follow the instructions.
Description Example
Danger means that there is a condition or situation that will cause death or severe injury if you do not follow the instructions given. DANGER: No step. Risk of electrocution, bodily
injury, or machine damage. Do not climb or stand on this area.
Warning means that there is a condition or situation that will cause moderate injury if you do not follow the instructions given. WARNING: Never put your hands between the
tool changer and the spindle head.
Caution means that minor injury or machine damage could occur if you do not follow the instructions given. You may also have to start a procedure over if you do not follow the instructions in a caution statement.
CAUTION: Power down the machine before you do maintenance tasks.
Note means that the text gives additional information, clarification, or helpful hints.
NOTE: Follow these guidelines if the machine is equipped with the optional extended Z-clearance table.
xi
Text Conventions Used in this Manual
Description Text Example
Code Block text gives program examples. G00 G90 G54 X0. Y0.;
A Control Button Reference gives the name of a control key or button that you are to press.
Press [CYCLE START].
A File Path describes a sequence of file system directories.
Service > Documents and Software >...
A Mode Reference describes a machine mode. MDI
A Screen Element describes an object on the machines display that you interact with.
Select the SYSTEM tab.
System Output describes text that the machine control displays in response to your actions.
PROGRAM END
User Input describes text that you should enter into the machine control.
G04 P1.;
Variable n indicates a range of non-negative integers from 0 to 9.
Dnn represents D00 through D99.
xii
Contents
Chapter 1 Safety . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 General Safety Notes . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Read Before Operating . . . . . . . . . . . . . . . . . . 1 1.2 Unattended Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Setup Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.1 Machine Behavior with the Door Open . . . . . . . . . . 4 1.3.2 Robot Cells . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Modifications to the Machine . . . . . . . . . . . . . . . . . . . . . . 5 1.5 Improper Coolants . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.6 Safety Decals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6.1 Decal Symbols Reference . . . . . . . . . . . . . . . . . 8 1.7 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . . 11
Chapter 2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1 Vertical Mill Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Horizontal Mill Overview . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Control Pendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.1 Pendant Front Panel . . . . . . . . . . . . . . . . . . . . 22 2.3.2 Pendant Right Side, Top, and Bottom Panels . . . . . . . 23 2.3.3 Keyboard. . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.4 Control Display. . . . . . . . . . . . . . . . . . . . . . . 36 2.3.5 Screen Capture . . . . . . . . . . . . . . . . . . . . . . 48
2.4 Tabbed Menu Basic Navigation . . . . . . . . . . . . . . . . . . . . . 49 2.5 Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.5.1 Active Icon Help . . . . . . . . . . . . . . . . . . . . . . 51 2.5.2 Active Window Help . . . . . . . . . . . . . . . . . . . . 51 2.5.3 Active Window Commands . . . . . . . . . . . . . . . . 51 2.5.4 Calculator . . . . . . . . . . . . . . . . . . . . . . . . . 51 2.5.5 Help Index . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.6 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . . 52
Chapter 3 Control Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.1 Control Icon Guide. . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.2 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . . 65
xiii
Chapter 4 Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .67 4.1 Machine Power-On . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2 Network Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2.1 Network Connection Terms and Responsibilities . . . . . 69 4.2.2 Wired Connection Setup. . . . . . . . . . . . . . . . . . 69 4.2.3 Wired Network Settings . . . . . . . . . . . . . . . . . . 70 4.2.4 Wireless Connection Setup . . . . . . . . . . . . . . . . 70 4.2.5 Wireless Network Settings. . . . . . . . . . . . . . . . . 73 4.2.6 Net Share Settings. . . . . . . . . . . . . . . . . . . . . 74 4.2.7 HaasConnect . . . . . . . . . . . . . . . . . . . . . . . 76
4.3 Spindle Warm-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.4 Device Manager ([LIST PROGRAM]) . . . . . . . . . . . . . . . . . . 76
4.4.1 Device Manager Operation . . . . . . . . . . . . . . . . 77 4.4.2 File Display Columns . . . . . . . . . . . . . . . . . . . 78 4.4.3 Create a New Program . . . . . . . . . . . . . . . . . . 79 4.4.4 Select the Active Program . . . . . . . . . . . . . . . . . 80 4.4.5 Check Mark Selection . . . . . . . . . . . . . . . . . . . 80 4.4.6 Copy Programs . . . . . . . . . . . . . . . . . . . . . . 80 4.4.7 Edit a Program. . . . . . . . . . . . . . . . . . . . . . . 81 4.4.8 File Commands . . . . . . . . . . . . . . . . . . . . . . 82
4.5 Full Machine Backup . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.5.1 Selected Machine Data Backup . . . . . . . . . . . . . . 85
4.6 Restoring a Full Machine Backup . . . . . . . . . . . . . . . . . . . . 86 4.6.1 Restoring Selected Backups. . . . . . . . . . . . . . . . 87
4.7 Basic Program Search. . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.8 Tooling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.8.1 Tool Holders . . . . . . . . . . . . . . . . . . . . . . . . 88 4.8.2 Advanced Tool Management Introduction . . . . . . . . . 89
4.9 Tool Changers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.9.1 Loading the Tool Changer . . . . . . . . . . . . . . . . . 95 4.9.2 Umbrella Tool Changer Recovery . . . . . . . . . . . . 100 4.9.3 SMTC Programming Notes . . . . . . . . . . . . . . . 100 4.9.4 SMTC Recovery . . . . . . . . . . . . . . . . . . . . . 101 4.9.5 SMTC Door Switch Panel . . . . . . . . . . . . . . . . 101
4.10 Part Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.10.1 Setting Offsets . . . . . . . . . . . . . . . . . . . . . . 103
4.11 Run-Stop-Jog-Continue . . . . . . . . . . . . . . . . . . . . . . . . 106 4.12 Graphics Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.13 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 108
Chapter 5 Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.1 Create / Select Programs for Editing . . . . . . . . . . . . . . . . . 109 5.2 Program Edit Modes. . . . . . . . . . . . . . . . . . . . . . . . . . 109
xiv
5.2.1 Basic Program Editing . . . . . . . . . . . . . . . . . . 110 5.2.2 Manual Data Input (MDI). . . . . . . . . . . . . . . . . 112 5.2.3 Background Edit . . . . . . . . . . . . . . . . . . . . . 113 5.2.4 Advanced Program Editor . . . . . . . . . . . . . . . . 114
5.3 Basic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.3.1 Preparation . . . . . . . . . . . . . . . . . . . . . . . 120 5.3.2 Cutting . . . . . . . . . . . . . . . . . . . . . . . . . . 121 5.3.3 Completion. . . . . . . . . . . . . . . . . . . . . . . . 121 5.3.4 Absolute vs. Incremental Positioning (G90, G91) . . . . 122
5.4 Tool and Work Offset Calls . . . . . . . . . . . . . . . . . . . . . . 126 5.4.1 G43 Tool Offset . . . . . . . . . . . . . . . . . . . . . 126 5.4.2 G54 Work Offsets . . . . . . . . . . . . . . . . . . . . 126
5.5 Miscellaneous Codes . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.5.1 Tool Functions (Tnn). . . . . . . . . . . . . . . . . . . 127 5.5.2 Spindle Commands . . . . . . . . . . . . . . . . . . . 128 5.5.3 Program Stop Commands . . . . . . . . . . . . . . . . 128 5.5.4 Coolant Commands . . . . . . . . . . . . . . . . . . . 129
5.6 Cutting G-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.6.1 Linear Interpolation Motion . . . . . . . . . . . . . . . 129 5.6.2 Circular Interpolation Motion . . . . . . . . . . . . . . . 129
5.7 Cutter Compensation . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.7.1 General Description of Cutter Compensation . . . . . . 131 5.7.2 Entry and Exit from Cutter Compensation . . . . . . . . 134 5.7.3 Feed Adjustments in Cutter Compensation . . . . . . . 135 5.7.4 Circular Interpolation and Cutter Compensation. . . . . 137
5.8 Canned Cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 5.8.1 Drilling Canned Cycles. . . . . . . . . . . . . . . . . . 140 5.8.2 Tapping Canned Cycles . . . . . . . . . . . . . . . . . 140 5.8.3 Boring and Reaming Cycles . . . . . . . . . . . . . . . 141 5.8.4 R Planes . . . . . . . . . . . . . . . . . . . . . . . . . 141
5.9 Special G-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 5.9.1 Engraving . . . . . . . . . . . . . . . . . . . . . . . . 142 5.9.2 Pocket Milling . . . . . . . . . . . . . . . . . . . . . . 142 5.9.3 Rotation and Scaling. . . . . . . . . . . . . . . . . . . 142 5.9.4 Mirror Image . . . . . . . . . . . . . . . . . . . . . . . 143
5.10 Subprograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 5.10.1 External Subprogram (M98) . . . . . . . . . . . . . . . 144 5.10.2 Local Subprogram (M97) . . . . . . . . . . . . . . . . 147 5.10.3 External Subprogram Canned Cycle Example (M98) . . 148 5.10.4 External Subprograms With Multiple Fixtures (M98) . . 150 5.10.5 Setting Up Search Locations . . . . . . . . . . . . . . 151
5.11 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 152
xv
Chapter 6 Options Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.2 Feature List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
6.2.1 Purchased Options Enable/Disable . . . . . . . . . . . 154 6.2.2 Option Tryout . . . . . . . . . . . . . . . . . . . . . . 154
6.3 Rotation and Scaling . . . . . . . . . . . . . . . . . . . . . . . . . 155 6.4 Visual Programming System (VPS) . . . . . . . . . . . . . . . . . . 155
6.4.1 VPS Example . . . . . . . . . . . . . . . . . . . . . . 156 6.5 Rigid Tapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.6 M19 Spindle Orientation . . . . . . . . . . . . . . . . . . . . . . . . 158 6.7 High-Speed Machining . . . . . . . . . . . . . . . . . . . . . . . . 158 6.8 Additional Memory Options . . . . . . . . . . . . . . . . . . . . . . 158 6.9 Probing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.9.1 Check Tool Probe . . . . . . . . . . . . . . . . . . . . 159 6.9.2 Check Work Probe. . . . . . . . . . . . . . . . . . . . 160 6.9.3 Probe Example . . . . . . . . . . . . . . . . . . . . . 161 6.9.4 Probe Use with Macros . . . . . . . . . . . . . . . . . 162 6.9.5 Probe Troubleshooting . . . . . . . . . . . . . . . . . 163
6.10 Maximum Spindle Speed . . . . . . . . . . . . . . . . . . . . . . . 163 6.11 Compensation Tables . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.12 Remote Jog Handle . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.12.1 RJH Operation Mode Menu . . . . . . . . . . . . . . . 165 6.12.2 RJH Auxiliary Menu . . . . . . . . . . . . . . . . . . . 166 6.12.3 Tool Offsets with the RJH . . . . . . . . . . . . . . . . 166 6.12.4 Work Offsets with the RJH. . . . . . . . . . . . . . . . 168
6.13 4th and 5th Axis Programming . . . . . . . . . . . . . . . . . . . . 169 6.13.1 New Rotary Configuration . . . . . . . . . . . . . . . . 169 6.13.2 TCPC/DWO Activation. . . . . . . . . . . . . . . . . . 174 6.13.3 Machine Rotary Zero Point (MRZP) . . . . . . . . . . . 176 6.13.4 Creating Five-Axis Programs . . . . . . . . . . . . . . 179 6.13.5 Tilt Axis Center-of-Rotation Offset (Tilting Rotary Products)
181 6.14 Macros (Optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.14.1 Macros Introduction . . . . . . . . . . . . . . . . . . . 183 6.14.2 Operation Notes . . . . . . . . . . . . . . . . . . . . . 186 6.14.3 System Variables In-Depth . . . . . . . . . . . . . . . 199 6.14.4 Variable Usage . . . . . . . . . . . . . . . . . . . . . 211 6.14.5 Address Substitution. . . . . . . . . . . . . . . . . . . 211 6.14.6 Communication With External Devices - DPRNT[ ] . . . 222 6.14.7 G65 Macro Subprogram Call Option (Group 00) . . . . 224
6.15 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 228
xvi
Chapter 7 G-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
7.1.1 List of G-codes. . . . . . . . . . . . . . . . . . . . . . 229 7.2 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 341
Chapter 8 M-codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
8.1.1 List of M-codes. . . . . . . . . . . . . . . . . . . . . . 343 8.2 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 360
Chapter 9 Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361 9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
9.1.1 List of Settings . . . . . . . . . . . . . . . . . . . . . . 361 9.1.2 More Information Online . . . . . . . . . . . . . . . . . 397
Chapter 10 Other Equipment . . . . . . . . . . . . . . . . . . . . . . . . . . . . .399 10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.2 Mini Mills. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.3 VF-Trunnion Series . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.4 Gantry Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.5 Office Mill . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.6 EC-400 Pallet Pool . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.7 UMC-750 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 10.8 More Information Online . . . . . . . . . . . . . . . . . . . . . . . . 400
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .401
xvii
xviii
Safety
Chapter 1: Safety
1.1 General Safety Notes
CAUTION: Only authorized and trained personnel may operate this equipment. You must always act in accordance with the Operator's manual, safety decals, safety procedures, and instructions for safe machine operation. Untrained personnel present a hazard to themselves and the machine.
IMPORTANT: Do not operate this machine until you have read all warnings, cautions, and instructions.
CAUTION: The sample programs in this manual have been tested for accuracy, but they are for illustrative purposes only. The programs do not define tools, offsets, or materials. They do not describe workholding or other fixturing. If you choose to run a sample program on your machine, do so in Graphics mode. Always follow safe machining practices when you run an unfamiliar program.
All CNC machines present hazards from rotating cutting tools, belts and pulleys, high voltage electricity, noise, and compressed air. When you use CNC machines and their components, you must always follow basic safety precautions to reduce the risk of personal injury and mechanical damage.
1.1.1 Read Before Operating
DANGER: Do not enter the machining area any time the machine is in motion, or at any time that machine motion is possible. Severe injury or death may result. Motion is possible when the power is on and the machine is not in [EMERGENCY STOP].
Basic safety:
This machine can cause severe bodily injury.
This machine is automatically controlled and may start at any time.
Consult your local safety codes and regulations before you operate the machine. Contact your dealer if you have questions about safety issues.
1
General Safety Notes
It is the machine owners responsibility to make sure that everyone who is involved in installing and operating the machine is fully acquainted with the operation and safety instructions provided with the machine, BEFORE they work with the machine. The ultimate responsibility for safety rests with the machine owner and the individuals who work with the machine.
Use appropriate eye and ear protection when you operate the machine.
Replace windows immediately if they are damaged or severely scratched.
Keep the side windows locked during operation (if available).
Electrical safety:
The electrical power must meet the required specifications. Attempting to run the machine from any other source can cause severe damage and will void the warranty.
The electrical panel should be closed and the key and latches on the control cabinet should be secured at all times, except during installation and service. At those times, only qualified electricians should have access to the panel. When the main circuit breaker is on, there is high voltage throughout the electrical panel (including the circuit boards and logic circuits) and some components operate at high temperatures; therefore, extreme caution is required. Once the machine is installed, the control cabinet must be locked, with the key available only to qualified service personnel.
Do not reset a circuit breaker until the reason for the fault is investigated and understood. Only Haas-trained service personnel should troubleshoot and repair Haas equipment.
Do not press [POWER UP/RESTART] on the control pendant before the machine is fully installed.
Operation Safety:
Do not operate the machine unless the doors are closed and the door interlocks are functioning correctly.
Check for damaged parts and tools before you operate the machine. Any part or tool that is damaged should be properly repaired or replaced by authorized personnel. Do not operate the machine if any component does not appear to be functioning correctly.
Rotating cutting tools can cause severe injury. When a program runs, the mill table and spindle head can move rapidly at any time.
Improperly clamped parts machined at high speeds/feeds may be ejected and puncture the enclosure. It is not safe to machine oversized or marginally clamped parts.
Follow these guidelines when you work with the machine:
Normal operation - Keep the door closed and guards in place (for non-enclosed machines) while the machine operates.
Part loading and unloading An operator opens the door, completes the task, closes the door, and then presses [CYCLE START] (starting automatic motion).
2
Safety
Machining job set-up Press [EMERGENCY STOP] before you add or remove machine fixtures.
Maintenance / Machine Cleaner Press [EMERGENCY STOP] or [POWER OFF] on the machine before you enter the enclosure.
1.2 Unattended Operation Fully enclosed Haas CNC machines are designed to operate unattended; however, your machining process may not be safe to operate unmonitored.
As it is the shop owners responsibility to set up the machine safely and use best practice machining techniques, it is also the owners responsibility to manage the progress of these methods. You must monitor your machining process to prevent damage, injury, or loss of life if a hazardous condition occurs.
For example, if there is the risk of fire due to the material machined, then you must install an appropriate fire suppression system to reduce the risk of harm to personnel, equipment, and the building. Contact a specialist to install monitoring tools before machines are allowed to run unattended.
It is especially important to select monitoring equipment that can immediately detect a problem and perform an appropriate action without human intervention.
1.3 Setup Mode All Haas CNC machines are equipped with locks on the operator doors and a key switch on the side of the control pendant to lock and unlock setup mode. Generally, setup mode status (locked or unlocked) affects how the machine operates when the doors are opened.
Setup mode should be locked out (the keyswitch in the vertical, locked position) at most times. In locked mode, the enclosure doors are locked closed during CNC program execution, spindle rotation or axis movement. The doors automatically unlock when the machine is not in cycle. Many machine functions are unavailable with the door open.
When unlocked, setup mode allows a skilled machinist more access to the machine to set up jobs. In this mode, machine behavior is dependent on whether the doors are opened or closed. Opening the doors when the machine is in cycle stops motion and reduces spindle speed. The machine allows several functions in setup mode with the doors opened, usually at reduced speed. The following charts summarize the modes and allowed functions.
DANGER: Do not attempt to override safety features. Doing so makes the machine unsafe and voids the warranty.
3
Setup Mode
1.3.1 Machine Behavior with the Door Open
For safety, machine operations stop when the door is open and the setup keyswitch is locked. The unlocked position allows limited machine functions with the door open.
T1.1: Safety Overrides with the Machine Doors Open
Machine Function Keyswitch Locked Keyswitch Unlocked
Maximum Rapid Not allowed. Not allowed.
Cycle Start Not allowed. No machine motion or program execution.
Not allowed. No machine motion or program execution.
Spindle [CW] / [CCW] Allowed, but you must press and hold [CW] or [CCW]. Maximum 750 RPM.
Allowed, but maximum 750 RPM.
Tool Change Not allowed. Not allowed.
Next Tool Not allowed. Not allowed.
Opening the doors while a program runs
Not allowed. The door is locked. Allowed, but axis motion stops and the spindle slows to a maximum of 750 RPM. The doors lock during tool changes and some canned cycles.
Conveyor motion Allowed, but you must press and hold [CHIP REV] to run in reverse.
Allowed, but you must press and hold [CHIP REV] to run in reverse.
CW CCW
750 RPM Max.
750 RPM Max.
0%
0% CHIP
FWD
CHIP
REV
CHIP
FWD
CHIP
REV
YX
Z
G00
G01
4
Safety
1.3.2 Robot Cells
A machine in a robot cell is allowed to run, unrestricted, with the door open while in lock/run mode.
This open-door condition is allowed only while a robot communicates with the CNC machine. Typically, an interface between the robot and the CNC machine addresses the safety of both machines.
Robot cell setup is beyond the scope of this manual. Work with a robot-cell integrator and your HFO to correctly set up a safe robot cell.
1.4 Modifications to the Machine Haas Automation, Inc. is not responsible for damage caused by modifications you make to your Haas machine(s) with parts or kits not manufactured or sold by Haas Automation, Inc. The use of such parts or kits may void your warranty.
Some parts or kits manufactured or sold by Haas Automation, Inc. are considered user-installable. If you choose to install these parts or kits yourself, be sure to completely read the accompanying installation instructions. Make sure you understand the procedure, and how to do it safely, before you begin. If you have any doubts about your ability to complete the procedure, contact your Haas Factory Outlet (HFO) for assistance.
1.5 Improper Coolants Coolant is an important part of many machining operations. When it is correctly used and maintained, coolant can improve part finish, lengthen tool life, and protect machine components from rust and other damage. Improper coolants, however, can cause significant damage to your machine.
Such damage can void your warranty, but it can also introduce hazardous conditions to your shop. For example, coolant leaks through damaged seals could create a slipping hazard.
Improper coolant use includes, but is not limited to, these points:
Do not use plain water. This causes machine components to rust.
Do not use flammable coolants.
Do not use straight or neat mineral-oil products. These products cause damage to rubber seals and tubing throughout the machine. If you use a minimum-quantity lubrication system for near-dry machining, use only the recommended oils.
Machine coolant must be water-soluble, synthetic oil-based or synthetic-based coolant or lubricant.
5
Improper Coolants
NOTE: Be sure to maintain your coolant mixture to keep the coolant concentrate at acceptable levels. Improperly maintained coolant mixtures can allow machine components to rust. Rust damage is not covered by your warranty.
Ask your HFO or your coolant dealer if you have questions about the specific coolant that you plan to use. The Haas Resource Center website has videos and other general information about coolant use and maintenance. You can also scan the code below with your mobile device to directly access this information.
6
Safety
1.6 Safety Decals The Haas factory puts decals on your machine to quickly communicate possible hazards. If decals become damaged or worn, or if you need additional decals to emphasize a particular safety point, contact your Haas Factory Outlet (HFO).
NOTE: Never alter or remove any safety decal or symbol.
Be sure to familiarize yourself with the symbols on the safety decals. The symbols are designed to quickly tell you the type of information they give:
Yellow Triangle - Describes a hazard.
Red Circle with Slash-Through - Describes a prohibited action.
Green Circle - Describes a recommended action.
Black Circle - Gives information about machine or accessory operation.
F1.1: Example Safety Decal Symbols: [1] Hazard Description, [2] Prohibited Action, [3] Recommended Action.
1 2 3
7
Safety Decals
1.6.1 Decal Symbols Reference
This section gives explanations and clarifications for the safety symbols you will see on your machine.
T1.2: Hazard Symbols Yellow Triangles
Symbol Description
Moving parts can entangle, trap, crush, and cut. Keep all parts of your body away from machine parts when they move, or whenever motion is possible. Motion is possible when the power is on and the machine is not in [EMERGENCY STOP]. Secure loose clothing, hair, etc. Remember that automatically controlled devices can start at any time.
Do not touch rotating tools. Keep all parts of your body away from machine parts when they move, or whenever motion is possible. Motion is possible when the power is on and the machine is not in [EMERGENCY STOP]. Sharp tools and chips can easily cut skin.
Long tools are dangerous, especially at spindle speeds higher than 5000 RPM. The tools can break and eject from the machine. Remember that machine enclosures are intended to stop coolant and chips. Enclosures may not stop broken tools or thrown parts. Always check your setup and tooling before you start machining.
Materials can create hazardous dust or fumes during machining. The machine enclosure alone is not designed to contain dust or fumes. Many materials are harmful, especially when airborne. This can include, but is not limited to: coolant mist, fine particles, fumes, and chips. When necessary, use devices such as breathing apparatus and dust/fume removal systems. Read and understand the Safety Data Sheet (SDS) for the materials, and follow the safety recommendations.
8
Safety
T1.3: Prohibited Action Symbols Red Circles with Slash-Through
Symbol Description
Do not enter the machine enclosure when the machine is capable of automatic motion. When you must enter the enclosure to complete tasks, press [EMERGENCY STOP] or power off the machine. Put a safety tag on the control pendant to alert other people that you are inside the machine, and that they must not turn on or operate the machine.
Do not machine ceramics.
Do not attempt to load tools with the spindle dogs misaligned with the cutouts in the toolholder V-Flange.
Do not machine flammable materials. Do not use flammable coolants. Flammable materials in particulate or vapor form can become explosive. The machine enclosure is not designed to contain explosions or extinguish fire.
Do not use pure water as coolant. This will cause machine components to rust. Always use a rust-inhibitive coolant concentrate with water.
9
Safety Decals
T1.4: Recommended Action Symbols Green Circles
Symbol Description
Keep the machine doors closed.
Always wear safety glasses or goggles when you are near a machine. Airborne debris can cause eye damage.
Make sure the spindle dogs are correctly aligned with the cutouts in the toolholder V-flange.
Note the location of the tool release button. Press this button only when you are holding the tool. Some tools are very heavy. Handle these tools carefully; use both hands and have someone press the tool release button for you.
10
Safety
T1.5: Informational Symbols Black Circles
1.7 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, go to DIY.HaasCNC.com.
You can also scan this code with your mobile device to directly access the Best Practices page on the Resource Center, which includes information about safety.
Symbol Description
Maintain the recommended coolant concentration. A lean coolant mixture (less concentrated than recommended) may not effectively prevent machine components from rusting. A rich coolant mixture (more concentrated than recommended) wastes coolant concentrate without further benefit over the recommended concentration.
11
More Information Online
12
Introduction
Chapter 2: Introduction
2.1 Vertical Mill Overview The following figures show some of the standard and optional features of your Haas Vertical Mill. Note that these figures are representative only; your machines appearance may vary depending on the model and installed options.
F2.1: Vertical Mill Features (front view)
1. Side Mount Tool Changer (optional) 2. Servo Auto Door (optional) 3. Spindle Assembly 4. Electrical Control Box 5. Work Light (2X) 6. Window Controls 7. Storage Tray 8. Air Gun 9. Front Work Table 10. Chip Container 11. Tool Holding Vise 12. Chip Conveyor (optional) 13. Tool Tray 14. High Intensity Lights (2X) (optional)
A. Umbrella Tool Changer (not shown) B. Control Pendant C. Spindle Head Assembly
VF
3
4
5
6
7
8 910
12
11
13
1 2
C
14A
B
13
Vertical Mill Overview
F2.2: Detail A
1. Umbrella-Style Tool Changer
F2.3: Detail B
1. Clipboard 2. Work Beacon 3. Hold To Run (where equipped) 4. Vise Handle Holder 5. Storage Pull Down Access Door 6. Tool Tray 7. G- and M-code Reference List 8. Operators Manual and Assembly Data (stored
inside) 9. Remote Jog Handle
F2.4: Detail C
1. SMTC Double Arm (if equipped) 2. Tool Release Button 3. Programmable Coolant (optional) 4. Coolant Nozzles 5. Spindle
1
2
1
6
3 5
7
4
8
9
5
3
4
1 2
14
Introduction
F2.5: Vertical Mill Features (rear view)
1. Data Plate 2. Main Circuit Breaker Switch 3. Vector Drive Fan (runs intermittently) 4. Control Cabinet
A Electrical Connectors B Coolant Tank Assembly (movable) C Electrical Control Cabinet Side Panel D Consolidated Air-Lubrication Module (CALM)
1
2
3
4
B
A
C
D
15
Vertical Mill Overview
F2.6: Detail A - Electrical Connectors
1. Coolant Level Sensor 2. Coolant (Optional) 3. Auxiliary Coolant (Optional) 4. Washdown (Optional) 5. Conveyor (Optional)
F2.7: Detail B
1. Standard Coolant Pump 2. Coolant Level Sensor 3. Chip Tray 4. Strainer 5. Through-Spindle Coolant Pump
1
2
3
4
5
2
1
4
3
5
16
Introduction
F2.8: Detail C
1. Ethernet (Optional) 2. A-Axis Scale (Optional) 3. B-Axis Scale (Optional) 4. A-Axis Power (Optional) 5. A-Axis Encoder (Optional) 6. B-Axis Power (Optional) 7. B-Axis Encoder (Optional) 8. 115 VAC @ 0.5A
1
2 3 4 5 6 7
8
17
Vertical Mill Overview
F2.9: Detail D (access door open)
1. Min Lubrication Grease Solenoid 2. Air Pressure Gauge 3. Air Relief Valve 4. Rotary Table Air Supply 5. Air/Water Separator 6. Air Shut Off Valve 7. Purge Solenoid 8. Air Inlet Port 9. Spindle Lubrication Reservoir 10. Spindle Lubrication Sight Glass (2) 11. Grease Reservoir Removal Wrench 12. Axis Lubrication Grease Reservoir 13. Grease Pressure Gauge
NOTE: More details are shown on the decals inside of the access door.
1
2
3
4
6
5
7
8
10
9
11
12
13
18
Introduction
2.2 Horizontal Mill Overview The following figures show some of the standard and optional features of your Haas horizontal mill. Some features are common with the vertical mill.
NOTE: These figures are representative only; your machines appearance may vary depending on the model and installed options.
F2.10: Horizontal Mill Features (EC-1600ZT, front view)
1. Side Mount Tool Changer SMTC 2. Control Pendant 3. Consolidated Air-Lubrication Module (CALM) 4. Electrical Control Box 5. Operator Spindle Access Door 6. Tool Tray 7. Front Work Table 8. Work Access Doors 9. Air Gun Holder 10. Coolant Tank Assembly (movable) 11. Dual Chip Conveyor 12. Enclosure Exhaust System (optional)
A Rotary Control B Work Access Steps C Secondary ATC Controls
7
EC 1600 ZT
6
4
3
2
5
8 B
1
9
10
A
C
11
12
19
Horizontal Mill Overview
F2.11: Detail A
1. Emergency Stop Button 2. (Optional) 3. (Optional) 4. (Optional) 5. Rotary Index Button
F2.12: Detail B
1. Chain to Enclosure 2. Floor Anchor Bolt Secure the work platform with chains to the enclosure or bolts to the floor.
2
3
5
4
1
1
2
20
Introduction
F2.13: Detail C
1. Secondary ATC Forward Button 2. Manual/Automatic Tool Change Switch
(enables/disables [1] and [4] buttons) 3. Emergency Stop Button 4. Secondary ATC Reverse Button
1
23
4
21
Control Pendant
2.3 Control Pendant The control pendant is the main interface to your Haas machine. This is where you program and run your CNC machining projects. This control pendant orientation section describes the different pendant sections:
Pendant front panel
Pendant right side, top, and bottom
Keyboard
Control display
2.3.1 Pendant Front Panel
T2.1: Front Panel Controls
Name Image Function
[POWER ON] Powers the machine on
[POWER OFF] Powers the machine off.
[EMERGENCY STOP] Press to stop all axis motion, disable servos, stop the spindle and tool changer, and turn off the coolant pump.
[HANDLE JOG] This is used to jog axes (select in [HANDLE JOG] Mode). Also used to scroll through program code or menu items while editing.
[CYCLE START] Starts a program. This button is also used to start a program simulation in graphics mode.
[FEED HOLD] Stops all axis motion during a program. The spindle continues to run. Press [CYCLE START] to cancel.
+-
22
Introduction
2.3.2 Pendant Right Side, Top, and Bottom Panels
The following tables describe the right side, top, and bottom of the pendant.
T2.2: Right Side Panel Controls
Name Image Function
USB Plug compatible USB devices into this port. It has a removable dust cap.
Memory Lock In the locked position, this keyswitch prevents alterations to programs, settings, parameters, offsets, and macro variables.
Setup Mode In the locked position, this keyswitch enables all machine safety features. Unlock allows setup (refer to Setup Mode in the Safety section of this manual for details).
Second Home Press to rapid all axes to the second home coordinates.
Servo Auto Door Override Press this button to open or close the Servo Auto Door (if equipped).
Worklight These buttons toggle the internal worklight and High Intensity Lighting (if equipped).
2
23
Control Pendant
T2.3: Pendant Top Panel
T2.4: Pendant Bottom Panel
Beacon Light
Provides quick visual confirmation of the machines current status. There are five different beacon states:
Light Status Meaning
Off The machine is idle.
Solid Green The machine is running.
Flashing Green The machine is stopped, but is in a ready state. Operator input is required to continue.
Flashing Red A fault has occurred, or the machine is in Emergency Stop.
Flashing Yellow A tool has expired, and the tool life screen automatically displays.
Name Function
Keyboard Beeper Located on the bottom of the control pendant. Turn the cover to adjust the volume.
24
Introduction
2.3.3 Keyboard
Keyboard keys are grouped into these functional areas:
1. Function
2. Cursor
3. Display
4. Mode
5. Numeric
6. Alpha
7. Jog
8. Overrides
F2.14: Mill Keyboard: [1] Function Keys, [2] Cursor Keys, [3] Display Keys, [4] Mode Keys, [5] Numeric Keys, [6] Alpha Keys, [7] Jog Keys, [8] Override Keys.
SHIFT
/ [ ]
& @ :
%
*
+
$
,
=
!
?
#
ALARMS
PROGRAM
DISPLAY
OVERRIDES
CURSOR
CHIP
CHIP
STOP
REV
7 8 9
4
1
-
5
2
0
6
3
EDCBA
K
Q
W
)
J
P
V
(
I
O
U
H
N
T
Z
G
M
S
Y
F
L
R
X
SPINDLE
RAPID
5% RAPID RAPID RAPID
25% 50% 100%
INSERT DELETE UNDO
. .0001
.1
001
1.
F1 F2 F3 F4
-X+X
-Z
+Z
E
RESET
NEXT TOOL
RECOVERPOWER UP
CANCEL SPACE ENTER;
POSITION CURRENT
HELP
OFFSET
SETTINGDIAGNOSTIC
COMMANDS
SPINDLE
HANDLE FEED
HANDLE SPINDLE
FEEDRATE
100%
+A/C -Y
-A/C+Y
FEEDRATE FEEDRATE
CHIP FWD
PAGE UP
PAGE DOWN
ALTER
GRAPHICS OPTION
STOP BLOCK
DELETE SINGLE BLOCK
COOLANT
.01 10.
.1 100.
HOME G28ALL ORIGIN SINGLE
ERASE PROGRAM
SELECT PROGRAM
LIST PROGRAM
ZERO RETURN
HANDLE JOG
MEMORY
EDIT
MDI
HOME
END
SPINDLE
100%
STOP
-10%
-10%
+10%
SPINDLE +10%
TOOL OFFSET
MEASURE
TOOL RELEASE
PART ZERO SET
JOG LOCK
+B
-B
CLNT UP
CLNT DOWN
AUX CLNT
HANDLE SCROLL
ATC FWD
ATC REV
21 3 4
68 7 5
FWD REV
25
Control Pendant
Function Keys
T2.5: List of Function Keys and How They Operate
Cursor Keys
The cursor keys let you move between data fields, scroll through programs, and navigate through tabbed menus.
T2.6: Cursor Key List
Name Key Function
Reset [RESET] Clears alarms. Clears input text. Sets overrides to default values if Setting 88 is ON.
Power up/Restart [POWER UP] Zero returns all axes and initializes the machine control.
Recover [RECOVER] Enters tool changer recovery mode.
F1- F4 [F1 - F4] These keys have different functions depending on the mode of operation.
Tool Offset Measure [TOOL OFFSET MEASURE] Records tool length offsets during part setup.
Next Tool [NEXT TOOL] Selects the next tool from the tool changer.
Tool Release [TOOL RELEASE] Releases the tool from the spindle when in MDI, ZERO RETURN, or HAND JOG mode.
Part Zero Set [PART ZERO SET] Records work coordinate offsets during part setup.
Name Key Function
Home [HOME] Moves the cursor to the top-most item on the screen; in editing, this is the top left block of the program.
Cursor Arrows [UP], [DOWN], [LEFT], [RIGHT]
Moves one item, block, or field in the associated direction. The keys depict arrows, but this manual refers to these keys by their spelled-out names.
26
Introduction
Display Keys
You use the Display keys to see the machine displays, operational information, and help pages.
T2.7: List of Display Keys and How They Operate
Page Up, Page Down [PAGE UP] / [PAGE DOWN]
Used to change displays or move up/down one page when viewing a program.
End [END] Moves the cursor to the bottom-most item on the screen. In editing, this is the last block of the program.
Name Key Function
Name Key Function
Program [PROGRAM] Selects the active program pane in most modes.
Position [POSITION] Selects the positions display.
Offsets [OFFSET] Displays the Tool Offset and Work Offset tabbed menu.
Current Commands [CURRENT COMMANDS]
Displays menus for Timers, Macros, Active Codes, Advanced Tool Management (ATM), Tool Table, and Pallet settings.
Alarms [ALARMS] Displays the Alarm viewer and Message screens.
Diagnostics [DIAGNOSTIC] Displays tabs for Features, Compensation, Diagnostics, and Maintenance.
Settings [SETTING] Displays and allows changing of user settings.
Help [HELP] Displays help information.
27
Control Pendant
Mode Keys
Mode keys change the operational state of the machine. Each mode key is arrow shaped and points to the row of keys that perform functions related to that mode key. The current mode is always displayed in the top left of the screen, in Mode:Key display form.
NOTE: [EDIT] and [LIST PROGRAMS] can also act as display keys, where you can access program editors and the device manager without changing the machine mode. For example, while the machine runs a program, you can use the device manager ([LIST PROGRAMS]) or background editor ([EDIT]) without stopping the program.
T2.8: List of [EDIT] Mode Keys and How They Operate
Name Key Function
Edit [EDIT] Lets you edit programs in the advanced editor or background editor. You can access the Visual Programming System (VPS) from the EDIT tabbed menu.
Insert [INSERT] Enters text from the input line or the clipboard into the program at the cursor position.
Alter [ALTER] Replaces the highlighted command or text with text from the input line or the clipboard.
NOTE: [ALTER] does not work for offsets.
Delete [DELETE] Deletes the item that the cursor is on, or deletes a selected program block.
Undo [UNDO] Undoes up to the last 40 edit changes, and deselects a highlighted block.
NOTE: [UNDO] does not work for deleted highlighted blocks or to recover a deleted program.
28
Introduction
T2.9: List of [MEMORY] Mode Keys and How They Operate
T2.10: List of [MDI] Mode Keys and How They Operate
Name Key Function
Memory [MEMORY] Selects memory mode. You run programs in this mode, and the other keys in the MEM row control the ways in which the program is run. Shows OPERATION:MEM in upper left display.
Single Block [SINGLE BLOCK]
Toggles single block on or off. When single block is on, the control runs only one program block each time you press [CYCLE START].
Graphics [GRAPHICS] Opens Graphics mode.
Optional Stop [OPTION STOP]
Toggles optional stop on or off. When optional stop is on, the machine stops when it reaches M01 commands.
Block Delete [BLOCK DELETE]
Toggles block delete on or off. The program ignores (does not execute) items with a slash (/) when this option is on.
Name Key Function
Manual Data Input [MDI] In MDI mode, you run unsaved programs or blocks of code entered from the control. Shows EDIT:MDI in upper left display.
Coolant [COOLANT] Turns the optional coolant on and off.
Handle Scroll [HANDLE SCROLL] Toggles Handle Scroll mode. This lets you use the jog handle to move the cursor in menus while the control is in jog mode.
Automatic Tool Changer Forward
[ATC FWD] Rotates the tool carousel to the next tool.
Automatic Tool Changer Reverse
[ATC REV] Rotates the tool carousel to the previous tool.
29
Control Pendant
T2.11: List of [HANDLE JOG] Mode Keys and How They Operate
T2.12: List of [ZERO RETURN] Mode Keys and How They Operate
Name Key Function
Handle Jog [HANDLE JOG] Enters Jog mode.
.0001/.1 .001/1 .01/10
.1/100 [.0001 /.1], [.001 / 1.], [.01 / 10.], [.1 / 100.]
Selects the increment for each click of the jog handle. When the mill is in MM mode the first number is multiplied by ten when jogging the axis (e.g., .0001 becomes 0.001 mm). The bottom number sets speed after you press [JOG LOCK] and an axis jog key or you press and hold an axis jog key. Shows SETUP:JOG in the upper left of the display.
Name Key Function
Zero Return [ZERO RETURN] Selects Zero Return mode, which displays axis location in four different categories: Operator, Work G54, Machine, and Dist (distance) To Go. Select the tab to switch between the categories. Shows SETUP:ZERO in the upper-left display.
All [ALL] Returns all axes to machine zero. This is similar to [POWER UP], except a tool change does not occur.
Origin [ORIGIN] Sets selected values to zero.
Single [SINGLE] Returns one axis to machine zero. Press the desired axis letter on the Alpha keyboard and then press [SINGLE].
Home G28 [HOME G28] Returns all axes to zero in rapid motion. [HOME G28] will also home a single axis in the same manner as [SINGLE].
CAUTION: Make sure the axis motion paths are clear when you press this key. There is no warning or prompt before axis motion begins.
30
Introduction
T2.13: List of [LIST PROGRAM] Mode Keys and How They Operate
Numeric Keys
Use the numeric keys to type numbers, along with some special characters (printed in yellow on the main key). Press [SHIFT] to enter the special characters.
T2.14: List of Numeric Keys and How They Operate
Name Key Function
List Programs [LIST PROGRAM] Accesses a tabbed menu to load and save programs.
Select Programs [SELECT PROGRAM] Makes the highlighted program the active program.
Back [BACK ARROW], Navigates to the screen you were on before the current one. This key operates like the BACK button on a web browser.
Forward [FORWARD ARROW], Navigates to the screen you went to after the current screen, if you have used the back arrow. This key operates like the FORWARD button on a web browser.
Erase Program [ERASE PROGRAM] Deletes the selected program in List Program mode. Deletes the entire program in MDI mode.
Name Key Function
Numbers [0]-[9] Types numbers.
Minus sign [-] Adds a minus (-) sign to the input line.
Decimal point [.] Adds a decimal point to the input line.
Cancel [CANCEL] Deletes the last character typed.
Space [SPACE] Adds a space to input.
Enter [ENTER] Answers prompts and writes input.
Special Characters Press [SHIFT], then a numeric key
Inserts the yellow character on the upper-left of the key. These characters are used for comments, macros, and certain special features.
+ [SHIFT], then [-] Inserts +
31
Control Pendant
Alpha Keys
Use the alpha keys to type the letters of the alphabet, along with some special characters (printed in yellow on the main key). Press [SHIFT] to enter the special characters.
T2.15: List of Alpha Keys and How They Operate
= [SHIFT], then [0] Inserts =
# [SHIFT], then [.] Inserts #
* [SHIFT], then [1] Inserts *
[SHIFT], then [2] Inserts
? [SHIFT], then [3] Inserts ?
% [SHIFT], then [4] Inserts %
$ [SHIFT], then [5] Inserts $
! [SHIFT], then [6] Inserts !
& [SHIFT], then [7] Inserts &
@ [SHIFT], then [8] Inserts @
: [SHIFT], then [9] Inserts :
Name Key Function
Name Key Function
Alphabet [A]-[Z] Uppercase letters are the default. Press [SHIFT] and a letter key for lowercase.
End-of-block (EOB) [;] This is the end-of-block character, which signifies the end of a program line.
Parentheses [(], [)] Separate CNC program commands from user comments. They must always be entered as a pair.
32
Introduction
Jog Keys
T2.16: List of Jog Keys and How They Operate
Shift [SHIFT] Accesses additional characters on the keyboard, or shifts to lower case alpha characters. The additional characters are seen in the upper left of some of the alpha and number keys.
Special Characters Press [SHIFT], then an alpha key
Inserts the yellow character on the upper-left of the key. These characters are used for comments, macros, and certain special features.
[SHIFT], then [;] Inserts /
[SHIFT], then [(] Inserts [
[SHIFT], then [)] Inserts ]
Name Key Function
Name Key Function
Chip Auger Forward [CHIP FWD] Starts the chip removal system in the forward direction (out of the machine).
Chip Auger Stop [CHIP STOP] Stops the chip removal system.
Chip Auger Reverse [CHIP REV] Starts the chip removal system in the "reverse" direction.
Axis Jog Keys [+X/-X, +Y/-Y, +Z/-Z, +A/C/-A/C AND +B/-B (SHIFT +A/C/-A/C)]
Jog axes manually. Press and hold the axis button, or press and release to select an axis and then use the jog handle.
Jog Lock [JOG LOCK] Works with the axis jog keys. Press [JOG LOCK], then an axis button, and the axis moves until you press [JOG LOCK] again.
Coolant Up [CLNT UP] Moves the optional Programmable Coolant (P-Cool) nozzle up.
33
Control Pendant
Override Keys
T2.17: List of Override Keys and How They Operate
Coolant Down [CLNT DOWN] Moves the optional P-Cool nozzle down.
Auxiliary Coolant [AUX CLNT] Press this key in MDI mode to toggle the Through-Spindle Coolant (TSC) system operation, if equipped.
Name Key Function
Name Key Function
-10% Feedrate [-10% FEEDRATE] Decreases the current feedrate by 10%.
100% Feedrate [100% FEEDRATE] Sets an overridden feedrate back to the programmed feed rate.
+10% Feedrate [+10% FEEDRATE] Increases the current feedrate by 10%.
Handle Control Feed Rate
[HANDLE FEED] Lets you use the jog handle to adjust the feedrate in 1% increments.
-10% Spindle [-10% SPINDLE] Decreases the current spindle speed by 10%.
100% Spindle [100% SPINDLE] Sets the overridden spindle speed back to the programmed speed.
+10% Spindle [+10% SPINDLE] Increases the current spindle speed by 10%.
Handle Spindle [HANDLE SPINDLE] Lets you use the jog handle to adjust the spindle speed in 1% increments.
Forward [FWD] Starts the spindle in the clockwise direction.
Stop [STOP] Stops the spindle.
Reverse [REV] Starts the spindle in the counterclockwise direction.
Rapids [5% RAPID ]/ [25% RAPID ]/ [50% RAPID] / [100% RAPID]
Limits machine rapids to the value on the key.
34
Introduction
Override Usage
Overrides let you temporarily adjust the speeds and feeds in your program. For example, you can slow down rapids while you prove out a program, or adjust the feedrate to experiment with its effect on part finish, etc.
You can use Settings 19, 20, and 21 to disable the feedrate, spindle, and rapid overrides, respectively.
[FEED HOLD] acts as an override that stops rapid and feed moves when you press it. [FEED HOLD] also stops tool changes and part timers, but not tapping cycles or dwell timers.
Press [CYCLE START] to continue after a [FEED HOLD]. When the Setup Mode key is unlocked, the door switch on the enclosure also has a similar result but displays Door Hold when the door is opened. When the door is closed, the control is in Feed Hold and [CYCLE START] must be pressed to continue. Door Hold and [FEED HOLD] do not stop any auxiliary axes.
You can override the standard coolant setting by pressing [COOLANT]. The coolant pump remains either on or off until the next M-code or operator action (see Setting 32).
Use Settings 83, 87, and 88 to have M30 and M06 commands, or [RESET], respectively, change overridden values back to their defaults.
35
Control Pendant
2.3.4 Control Display
The control display is organized into panes that change with the different machine and display modes.
F2.15: Basic Control Display Layout in Operation:Mem Mode (While a Program Runs)
The active pane has a white background. You can work with data in a pane only when that pane is active, and only one pane is active at a time. For example, when you select the Tool Offsets tab, the offsets table background turns white. You can then make changes to the data. In most cases, you change the active pane with the display keys.
1. Mode and Active Display Bar 2. Program Display 3. Main Display (size varies)/Program/Offsets/Current Commands/Settings/Graphics/Editor/VPS/Help 4. Active Codes 5. Active Tool 6. Coolant
7. Timers, Counters / Tool Management 8. Alarm Status 9. System Status Bar 10. Position Display / Axis Load 11. Input Bar 12. Icon Bar 13. Spindle Status
10
2 3 54 6
789111213
1
36
Introduction
Mode and Active Display Bar
The Haas control organizes machine functions into three modes: Setup, Edit, and Operation. Each mode shows on one screen all of the information you need to do tasks under that mode. For example, in Setup mode, you have access to both the work offset table, the tool offset table, and position information. Edit mode gives you access to the program editor and optional systems like Visual Programming (VPS) (which contains Wireless Intuitive Probing (WIPS)). Operation mode includes Memory (MEM), the mode in which you run programs.
F2.16: The Mode and Display bar shows [1] the current mode and [2] the current display function.
T2.18: Mode, Key Access, and Mode Display
Mode Keys Display [1] Function
Setup [ZERO RETURN] SETUP: ZERO Provides all control features for machine setup.
[HANDLE JOG] SETUP: JOG
Edit [EDIT] ANY Provides all program editing, management, and transfer functions.[MDI] EDIT: MDI
[LIST PROGRAM] ANY
Operation [MEMORY] OPERATION: MEM Provides all control features necessary to run a program.
[EDIT] OPERATION: MEM Provides background editing of active programs.
[LIST PROGRAM] ANY Provides background editing of programs.
1 2
37
Control Pendant
Offsets Display
To access the offset tables, press [OFFSET] and select the TOOL tab or the WORK tab.
T2.19: Offset Tables
Current Commands
This section describes the Current Commands pages and the types of data they show. The information from most of these pages also appears in other modes.
Press [CURRENT COMMANDS] to access the tabbed menu of available Current Commands displays.
Timers Display - This page shows:
The current date and time.
The total power on time.
Total cycle start time.
Total feed time.
M30 counters. Each time the a program reaches an M30 command, both of these counters increment by one.
Macro variable displays.
You also see these timers and counters in the lower-right section of the display in the OPERATION:MEM, SETUP:ZERO, and EDIT:MDI modes.
Macros Display -This page shows a list of the macro variables and their values. The control updates these variables as programs run. You can modify the variables in this display; refer to the Variable Display Page on page 186.
Active Codes - This page lists the active program codes. A smaller version of this display is included on the OPERATION:MEM and EDIT:MDI mode screens. Also when you press [PROGRAM] in any Operation mode, you see the active program codes.
Advanced Tool Management - This page contains information the control uses to predict tool life. Here is where you create and manage tool groups, and where you enter the maximum tool load percentage expected for each tool.
For more information, refer to the Advanced Tool Management section in the Operation chapter of this manual.
Name Function
TOOL Display and work with tool numbers and tool length geometry.
WORK Display and work with part zero locations.
38
Introduction
Timer and Counter Reset
You can reset the power-on, cycle-start, and feed cutting timers. You can also reset the M30 counters.
1. Select the Timers page in Current Commands.
2. Use the cursor arrow keys to highlight the name of the timer or counter that you want to reset.
3. Press [ORIGIN] to reset the timer or counter.
TIP: You can reset the M30 counters independently to track finished parts in two different ways; for example, parts finished in a shift and total parts finished.
Time Adjustment
Follow this procedure to adjust the date or time.
1. Select the Timers page in Current Commands.
2. Use the cursor arrow keys to highlight the Date:, Time:, or Time Zone field.
3. Press [EMERGENCY STOP].
4. In the Date: field, type the new date in the format MM-DD-YYYY, including the hyphens.
5. In the Time: field, type the new time in the format HH:MM, including the colon. Press [SHIFT] and then [9] to type the colon.
6. In the Time Zone: field, press ENTER to select from the list of time zones. You can type search terms in the pop-up window to narrow the list. For example, type PST to find Pacific Standard Time. Highlight the time zone you want to use.
7. Press [ENTER].
Settings/Graphics Display Function
Press [SETTING], then select the SETTINGS tab. Settings change the way the machine behaves; refer to the Settings section for a more detailed description.
To use Graphics mode, select the GRAPHICS tab. Graphics shows an on-screen representation of your part program. The axes do not move, so you do not risk tool or part damage from programming errors.
39
Control Pendant
Active Codes
F2.17: Active Codes Display Example
This display gives read-only, real-time information about the codes that are currently active in the program; specifically, the codes that define the current motion type (rapid vs linear feed vs circular feed), positioning system (absolute vs incremental), cutter compensation (left, right or off), active canned cycle, and work offset. This display also gives the active Dnn, Hnn, Tnn, and most recent M-code. If an alarm is active, this shows a quick display of the active alarm instead of the active codes.
Active Tool
F2.18: Active Tool Display Example
This display gives information about the current tool in the spindle. This information includes:
The tool number
The type of tool (if specified in the tool offsets table)
Maximum tool load (the highest load, in percent, that has been put on the tool)
40
Introduction
The remaining percentage of tool life or tool group
An example image of the tool type (if specified)
The next tool pocket number and the tool number currently in that pocket
Coolant Display
F2.19: Coolant Level Display Example
The coolant display appears in the upper-right of the screen in OPERATION:MEM mode.
The first line tells you if the coolant is ON or OFF.
The next line shows the position number of the optional Programmable Coolant Spigot (P-COOL). The positions are from 1 to 34. If the option is not installed, no position number appears.
In the coolant gauge, a black arrow shows the coolant level. Full is 1/1 and empty is 0/1. To avoid coolant flow problems, keep the coolant level above the red range. You can also see this gauge in DIAGNOSTICS mode under the GAUGES tab.
41
Control Pendant
Timers & Counters Display
F2.20: Timers & Counters Display Example
The timer section of this display gives information about cycle times (This Cycle, Last Cycle, and Remaining).
The counter section has two M30 counters and a Loops Remaining display.
M30 Counter #1: and M30 Counter #2: every time a program reaches an M30 command, the counters increase by one. If Setting 118 is on, the counters also increment every time a program reaches an M99 command.
If you have macros, you can clear or change M30 Counter #1 with #3901 and M30 Counter #2 with #3902 (#3901=0).
Refer to page 39 for information on how to reset the timers and counters.
Loops Remaining: shows the number of subprogram loops remaining to complete the current cycle.
Macro Labels #1 and #2: These fields let you name a custom macro label.
Macro Assign #1 and #2: In these fields, you assign the macro variable to use for the corresponding macro label.
Alarms and Messages Display
Use this display to learn more about machine alarms when they occur, view your machines entire alarm history, look up definitions of alarms that can occur, view created messages, and show the keystroke history.
Press [ALARMS], then select a display tab:
The ACTIVE ALARM tab shows the alarms that currently affect machine operation. Use [PAGE UP] and [PAGE DOWN] to see the other active alarms.
The MESSAGES tab shows the messages page. The text you put on this page stays there when you power the machine off. You can use this to leave messages and information for the next machine operator, etc.
42
Introduction
The ALARM HISTORY tab shows a list of the alarms that have recently affected machine operation.
The ALARM VIEWER tab shows a detailed description of the most recent alarm. You can also type an alarm number and press [ENTER] to read its description.
The KEY HISTORY tab shows up to the last 2000 keystrokes.
Add Messages
You can save a message in the MESSAGES tab. Your message stays there until you remove it or change it, even when you turn the machine off.
1. Press [ALARMS], select the MESSAGES tab, and press the [DOWN] cursor arrow key.
2. Type your message.
Press [CANCEL] to backspace and delete. Press [DELETE] to delete an entire line. Press [ERASE PROGRAM] to delete the entire message.
Alarm Notifications
Haas machines include a basic application to send an alert to an email address or cellular telephone when an alarm occurs. You need to know some information about your network to set up this application. Ask your system administrator or Internet Service Provider (ISP) if you do not know the correct settings.
To set up alarm alerts, press [SETTING] and choose the NOTIFICATIONS tab.
System Status Bar
The System Status Bar is the read-only section of the screen located in the bottom, center. It displays messages for the user about actions they have taken.
43
Control Pendant
Position Display
The Position display shows the current axis position relative to four reference points (Work, Distance-to-go, Machine, and Operator). In any mode, press [POSITION] and use cursor keys to access the different reference points displayed in tabs.The last tab display shows all the reference points on the same screen.
T2.20: Axis Position Reference Points
Axis Display Selection
You can add or remove axes in the Positions displays. While a Positions display tab is active, press [ALTER]. The axis display selection window comes in from the right side of the screen.
Coordinate Display Function
WORK (G54) This tab displays the axis positions relative to part zero. On power-up, this position uses work offset G54 automatically. It displays the axis positions relative to the most recently-used work offset.
DIST TO GO This tab displays the distance remaining before the axes reach their commanded position. When in SETUP:JOG mode, you can use this position display to show a distance moved. Change modes (MEM, MDI) and then switch back to SETUP:JOG mode to zero this value.
MACHINE This tab displays the axis positions relative to machine zero.
OPERATOR This tab shows the distance you have jogged the axes. This does not necessarily represent the actual distance the axis is from machine zero, except when the machine is first powered on.
ALL This tab displays all reference points on the same screen.
44
Introduction
F2.21: Axis Display Selector
Use the cursor arrow keys to highlight an axis, and press [ENTER] to toggle it on and off for display. The positions display will show axes that have a check mark. Press [ALTER] to close the axis display selector.
NOTE: You can display a maximum of (5) axes.
Input Bar
F2.22: Input Bar
The input bar is the data entry section located in the bottom-left corner of the screen. This is where your input appears as you type it.
45
Control Pendant
Special Symbol Input
Some special symbols are not on the keypad.
T2.21: Special Symbols
Do these steps to enter special symbols:
1. Press [LIST PROGRAMS] and select a storage device.
2. Press [F3].
The FILE drop-down menu shows:
3. Select Special Symbols and press [ENTER].
Symbol Name
_ underscore
^ caret
~ tilde
{ open curly brackets
} closed curly brackets
\ backslash
| pipe
< less than
> greater than
46
Introduction
The SPECIAL SYMBOLS pick list shows:
4. Select the symbol and press [ENTER] to copy the symbol to the INPUT: bar.
For example, to change a directorys name to MY_DIRECTORY:
1. Highlight the directory with the name that you want to change.
2. Type MY.
3. Press [F3].
4. Select SPECIAL SYMBOLS and press [ENTER].
5. Highlight _ (underscore) and press [ENTER].
6. Type DIRECTORY.
7. Press [F3].
8. Select RENAME and press [ENTER].
47
Control Pendant
Main Spindle Display
F2.23: Main Spindle (Speed and Feed Status) Display
The first column of this display gives you information about feedrate, spindle, and rapid overrides.
The second column displays the current spindle speed in rpm and spindle load in kW. The spindle load value reflects the actual spindle power to the tool. The next values presented are linked: surface speed of the rotating tool in fpm, the actual chip load in in/tth, and the programmed feed rate in in/min. Active feed rate displays the actual feed rate including any manual overrides.
The spindle load meter indicates the spindle load as a percentage of motor capacity.
2.3.5 Screen Capture
The control can capture and save an image of the current screen to an attached USB device or the User Data memory.
1. Press [SHIFT].
2. Press [F1].
NOTE: The control uses the default filename snapshot#.png. The # starts from 0 and increments each time you capture a screen. This counter resets at power off. Screen captures that you take after a power cycle overwrite previous screen captures that have the same filename on the User Data memory.
The control saves the screen capture to your USB device or control memory. The message Snapshot saved to USB or Snapshot saved to Memory appears when the process finishes.
48
Introduction
2.4 Tabbed Menu Basic Navigation The Haas control uses tabbed menus for several modes and displays. Tabbed menus keep related data together in an easy-to-access format. To navigate these menus:
1. Press a display or mode key.
The first time you access a tabbed menu, the first tab (or sub-tab) is active and has a white background. The highlight cursor is at the first available option in the tab.
2. Use the cursor keys or the [HANDLE JOG] control to move the highlight cursor within an active tab.
3. To choose a different tab in the same tabbed menu, press the mode or display key again.
NOTE: If the cursor is at the top of the menu screen, you can also press the [UP] cursor arrow key to select a different tab.
The current tab becomes inactive, and it appears with a gray background.
4. Use the cursor keys to highlight a tab or a sub-tab, and press the [DOWN] cursor arrow key to use the tab.
NOTE: You cannot make the tabs active in the POSITIONS tabbed display.
5. Press a different display or mode key to work with a different tabbed menu.
49
Help
2.5 Help Use the help function when you need to access the content of this manual on the control and get information about machine functions, commands, programming, or to access the calculator.
When you press [HELP], a window appears with options for different help information. Press [HELP] again to exit the help function.
F2.24: The Help Window
Use the cursor arrow keys to highlight an icon, then press [ENTER] to open the help item.
The first two rows of the options on the HELP window give quick access to sections of the on-screen manual. These keys are common to all of these options:
Use the [UP] and [DOWN] cursor arrow keys to highlight a section on the table of contents. These keys also let you scroll on the content pages.
Press [ENTER] to highlight an option and open the selected page to the HELP window.
Press [HOME] to go to the top directory level.
Press [F1] to search for help content by keyword. Type your search term in the text field, then press [F1] to execute the search. Search results for the keyword appear in the HELP window.
Press the [LEFT]/[RIGHT] cursor arrow keys to go to next page on the contents pages.
CALCULATORACTIVE
WINDOW
HELP
ACTIVE
WINDOW
COMMANDS
HELP INDEXACTIVE ICON
HELP
VPS HELP
VPS
INTROTABLE OF
CONTENTS
50
Introduction
2.5.1 Active Icon Help
Displays a list of the currently active icons.
2.5.2 Active Window Help
Displays the help system topic related to the currently active window.
2.5.3 Active Window Commands
Displays a list of the available commands for the active window. You can use the keys listed in parentheses, or you can select a command from the list.
2.5.4 Calculator
F2.25: The Calculator Pop-Up Window
The Haas control features a scientific calculator for simple mathematical operations.
1. Select the calculator in the HELP menu.
2. Use the number keys to type operands into the calculator.
3. To insert an arithmetic operator, use the letter key that appears in brackets next to the operator you want to insert.
51
More Information Online
4. Press [ENTER] to return the result of your calculation.
NOTE: You can also press [INSERT] or [ALTER] to move the calculation or results to the INPUT line. You can then insert it into a program.
By default, the Calculator pop-up window appears in the center of the display screen. Use the [RIGHT], [LEFT], [UP], or [DOWN] cursor keys to move the calculator to the corresponding corners of the display. Press [HOME] to move the calculator window to the default center location.
2.5.5 Help Index
This option provides a list of manual topics that link to the information in the on-screen manual. Use the cursor arrows to highlight a topic of interest, and then press [ENTER] to access that section of the manual.
2.6 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
52
Control Icons
Chapter 3: Control Icons
3.1 Control Icon Guide The control screen shows icons to quickly give you information about machine status. Icons tell you about current machine modes, your program as it runs, and machine maintenance status.
The icon bar is near the bottom of the control pendant display, above the input and status bars.
F3.1: Icon Bar Location
53
Control Icon Guide
Name Icon Meaning
Setup Setup mode is locked; the control is in Run mode. Most machine functions are disabled or limited while the machine doors are open.
Setup Setup mode is unlocked; the control is in Setup mode. Most machine functions are available, but may be limited while the machine doors are open.
Door Open Warning, door is open.
Running The machine is running a program.
Jog An axis is jogging at the current jog rate.
54
Control Icons
Power Saving The power-saving servos-off feature is active. Setting 216, SERVO AND HYDRAULIC SHUTOFF, designates the time period allowed before this feature activates. Press a key to activate the servos.
Jog This icon appears while the control returns to the workpiece during a run-stop-jog-continue operation.
Jog You have pressed [FEED HOLD] during the return portion of a run-stop-jog-continue operation.
Jog This icon prompts you to jog away during a run-stop-jog-continue operation.
Feed Hold The machine is in feed hold. Axis motion has stopped, but the spindle continues to turn.
Feed The machine is executing a cutting move.
Name Icon Meaning
55
Control Icon Guide
Rapid The machine is executing a non-cutting axis move (G00) at the fastest possible rate. Overrides can affect the actual rate.
Dwell The machine is executing a dwell (G04) command.
Restart The control scans the program before a restart if Setting 36 is ON.
Singbk Stop SINGLE BLOCK mode is active, and the control needs a command to continue.
Door Hold Machine motion has stopped because of door rules.
Jog Lock Jog lock is active. If you press an axis key, that axis moves at the current jog rate until you press [JOG LOCK] again, or the axis reaches its limit.
Name Icon Meaning
56
Control Icons
Remote Jog The optional remote jog handle is active.
Vector Jog For five-axis machines, the tool will jog along the vector defined by the rotary positions.
Gear Box Lube
The spindle gear box oil level is low.
Rotary Lube Check and fill the rotary table lubrication oil reservoir.
TSC Filter Off Clean the Through-Spindle Coolant filter.
Low Coolant Fill the concentrate reservoir for the coolant refill system.
Name Icon Meaning
TSC FILTER
57
Control Icon Guide
Low Lube The spindle lubrication oil system detected a low oil condition, or the axis ball screw lubrication system detected a low grease or low pressure condition.
Low Oil The rotary brake oil level is low.
Mist Filter Clean the mist extractor filter.
Coolant Warning
Coolant level is low.
Low Air Flow Inch Mode - Air flow is not sufficient for correct machine operation.
Low Air Flow Metric Mode - Air flow is not sufficient for correct machine operation.
Name Icon Meaning
MIST FILTER
CFM
l/min
58
Control Icons
Maintenance A maintenance procedure is due.
Spindle When you press [HANDLE SPINDLE], the jog handle varies the spindle override percentage.
Spindle When you press [HANDLE FEED], the jog handle varies the feed rate override percentage.
Text Scroll When you press [HANDLE SCROLL], the jog handle varies the spindle override percentage.
Mirroring Mirroring mode is active. Either G101 is programmed or Setting 45, 46, 47, 48, 80, or 250 (mirror image of axis X, Y, Z, A, B, or C) is set to ON.
Brake A rotary axis brake, or a combination of rotary axis brakes, is unclamped.
Name Icon Meaning
59
Control Icon Guide
Brake A rotary axis brake, or a combination of rotary axis brakes, is clamped.
Low Voltage The PFDM detects low incoming voltage. If the condition continues, the machine cannot continue operation.
Low Voltage The Power Fault Detect Module (PDFM) detects incoming voltage that is too low to operate. The machine will not operate until the condition is corrected.
High Voltage The PFDM detects incoming voltage above a set limit, but still within operating parameters. Correct the condition to prevent damage to machine components.
High Voltage The PFDM detects incoming voltage that is too high to operate and could cause damage to the machine. The machine will not operate until the condition is corrected.
High Air The air pressure to the machine is too high to reliably operate pneumatic systems. Correct this condition to prevent damage to or incorrect operation of pneumatic systems. You may need to install a regulator at the machines air input.
Name Icon Meaning
60
Control Icons
Low Air The air pressure to the machine is too low to operate pneumatic systems. The machine will not operate until the condition is corrected. You may need a higher-capacity air compressor.
Low Air The air pressure to the machine is too low to reliably operate pneumatic systems. Correct this condition to prevent damage to or incorrect operation of pneumatic systems.
High Air The air pressure to the machine is too high to operate pneumatic systems. The machine will not operate until the condition is corrected. You may need to install a regulator at the machines air input.
E-Stop [EMERGENCY STOP] on the pendant has been pressed. This icon disappears when [EMERGENCY STOP] is released.
E-Stop [EMERGENCY STOP] on the pallet changer has been pressed. This icon disappears when [EMERGENCY STOP] is released.
E-Stop [EMERGENCY STOP] on the tool changer cage has been pressed. This icon disappears when [EMERGENCY STOP] is released.
Name Icon Meaning
1
2
3
61
Control Icon Guide
E-Stop [EMERGENCY STOP] on an auxiliary device has been pressed. This icon disappears when [EMERGENCY STOP] is released.
Single Blk SINGLE BLOCK mode is active. The control executes programs (1) block at a time. Press [CYCLE START] to execute the next block.
Tool Life The tool life remaining is below Setting 240, or the current tool is the last one in its tool group.
Tool Life The tool or tool group has expired, and no replacement tools are available.
Opt Stop OPTIONAL STOP is active. The control stops the program at each M01 command.
Blk Delete BLOCK DELETE is active. The control skips program blocks that begin with a slash (/).
Name Icon Meaning
4
62
Control Icons
TC Door Open
The side-mount tool changer door is open.
TL CCW The side-mount tool changer carousel is rotating counter-clockwise.
TL CW The side-mount tool changer carousel is rotating clockwise.
Tool Change A tool change is in progress.
Unclamped The tool in the spindle is unclamped.
Probe The probe system is active.
Name Icon Meaning
63
Control Icon Guide
Conveyor The conveyor is active and moving forward.
Conveyor The conveyor is active and moving in reverse.
TSC The Through-Spindle Coolant (TSC) system is active.
TAB The Tool Air Blast (TAB) system is active.
Air Blast The Auto Air Gun is active.
Hi Light Indicates the optional High Intensity Lights (HIL) are turned ON and the doors are open. Duration is determined by Setting 238.
Name Icon Meaning
64
Control Icons
3.2 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
Refill The Coolant Refill feature is active. It mixes and adds coolant to the tank.
Coolant The main coolant system is active.
Name Icon Meaning
65
More Information Online
66
Operation
Chapter 4: Operation
4.1 Machine Power-On This section tells you how to power-on a new machine for the first time.
1. Press [POWER ON] until you see the Haas logo on the screen. After a self-test and boot sequence, the display shows the startup screen.
The startup screen gives basic instructions to start the machine. Press [CANCEL] to dismiss the screen.
2. Turn [EMERGENCY STOP] to the right to reset it.
3. Press [RESET] to clear the startup alarms. If you cannot clear an alarm, the machine may need service. Contact your Haas Factory Outlet (HFO) for assistance.
4. If your machine is enclosed, close the doors.
WARNING: Before you do the next step, remember that automatic motion begins immediately when you press [POWER UP]. Make sure the motion path is clear. Stay away from the spindle, machine table, and tool changer.
5. Press [POWER UP].
After the first [POWER UP], the axes move toward their home positions. The axes then move slowly until the machine finds the home switch for each axis. This establishes the machine home position.
6. Press any of the following:
a. [CANCEL] to dismiss the screen.
b. [CYCLE START] to run current program.
c. [HANDLE JOG] for manual operation.
POWER UP RECOVERRESET
67
Network Connection
4.2 Network Connection You can use a computer network through a wired connection (Ethernet) or a wireless connection (WiFi) to transfer program files to and from your Haas machine, and to let multiple machines access files from a central network location. You can also set up Net Share to quickly and easily share programs between the machines in your shop and the computers on your network.
To access the Network page:
1. Press [SETTING].
2. Select the Network tab in the tabbed menu.
3. Select the tab for the network settings ( Wired Connection, Wireless Connection, or Net Share) that you want to set up.
F4.1: Wired Network Settings Page Example
NOTE: Settings with a > character in the second column have preset values that you select from. Press the [RIGHT] cursor arrow key to see the list of options. Use the [UP] and [DOWN] cursor arrow keys to choose an option, and then press [ENTER] to confirm your choice.
68
Operation
4.2.1 Network Connection Terms and Responsibilities
Networks and operating systems are different from company to company. When your HFO Service Technician installs your machine, they can attempt to connect it to your network with your information, and they can troubleshoot connection problems with the machine itself. If the problem is with your network, you need a qualified IT service provider to assist you, at your expense.
If you call your HFO for help with network problems, remember that the technician can help only as far as the machine software and networking hardware.
F4.2: Network Responsibility Diagram: [A] Haas Responsibility, [B] Your Responsibility, [1] Haas Machine, [2] Haas Machine Network Hardware, [3] Your Server, [4] Your computer(s).
4.2.2 Wired Connection Setup
Before you begin, ask your network administrator if your network has a Dynamic Host Configuration Protocol (DHCP) server. If it does not have a DHCP server, collect this information:
The IP address that your machine will use on the network
The Subnet Mask address
The Default Gateway address
The DNS Server name
1. Connect an active Ethernet cable to the Ethernet port on your machine.
2. Select the Wired Connection tab in the Network tabbed menu.
3. Change the Wired Network Enabled setting to ON.
1
2
3
A
4
B
VF
69
Network Connection
4. If your network has a DHCP server, you can let the network assign an IP address automatically. Change the Obtain Address Automatically setting to ON, and then press [F4] to complete the connection. If your network does not have a DHCP server, go to the next step.
5. Type the machines IP Address, the Subnet Mask address, the Default Gateway address, and the DNS Server name into their respective fields.
6. Press [F4] to complete the connection, or press [F3] to discard your changes.
After the machine successfully connects to the network, the Status indicator in the Wired Network Information box changes to UP.
4.2.3 Wired Network Settings
Wired Network Enabled - This setting activates and deactivates wired networking.
Obtain Address Automatically - Lets the machine retrieve an IP address and other network information from the networks Dynamic Host Configuration Protocol (DHCP) server. You can use this option only if your network has a DHCP server.
IP Address - The machines static TCP/IP address on a network without a DHCP server. Your network administrator assigns this address to your machine.
Subnet Mask - Your network administrator assigns the subnet mask value for machines with a static TCP/IP address.
Default Gateway - An address to gain access to your network through routers. Your network administrator assigns this address.
DNS Server - The name of the Domain Name Server or DHCP server on the network.
NOTE: The address format for Subnet Mask, Gateway, and DNS is XXX.XXX.XXX.XXX. Do not end the address with a period. Do not use negative numbers. 255.255.255.255 is the highest possible address.
4.2.4 Wireless Connection Setup
This option lets your machine connect to a 2.4 GHz, 802.11b/g/n wireless network. 5 GHz is not supported.
Wireless network setup uses a wizard to scan for available networks and then set up the connection with your network information.
Before you begin, ask your network administrator if your network has a Dynamic Host Configuration Protocol (DHCP) server. If it does not have a DHCP server, collect this information:
The IP address that your machine will use on the network
70
Operation
The Subnet Mask address
The Default Gateway address
The DNS Server name
You also need this information:
The SSID for your wireless network
The password to connect to your secured wireless network
1. Select the Wireless Connection tab in the Network tabbed menu.
2. Press [F2] to scan for available networks.
The Connection Wizard displays a list of available networks, with their signal strengths and security types. The control supports 64/128 WEP, WPA, WPA2,TKIP, and AES security types.
F4.3: Connection Wizard List Display. [1] Current Active Network Connection (if any), [2] Network SSID, [3] Signal Strength, [4] Security Type.
3. Use the cursor arrow keys to highlight the network you want to connect to.
4. Press [ENTER].
The network settings table appears.
1
2
3
4
71
Network Connection
F4.4: Network Settings Table. [1] Password Field, [2] DHCP Enable / Disable. Further options appear when you turn the DHCP Setting OFF.
5. Type the access point password in the Password field.
NOTE: If you need special characters such as underscores ( _ ) or carets ( ^ ) for the password, press [F2] and use the menu to select the special character you need.
6. If your network does not have a DHCP server, change the DHCP Enabled setting to OFF and type the IP Address, Subnet Mask, Default Gateway, and DNS Server Address into their respective fields.
7. Press [F4] to complete the connection, or press [F3] to discard your changes.
After the machine successfully connects to the network, the Status indicator in the Wired Network Information box changes to UP. The machine will also automatically connect to this network when it is available, unless you press F1 and confirm to forget the network.
The possible status indicators are:
UP - The machine has an active connection to a wireless network.
DOWN - The machine does not have an active connection to a wireless network.
DORMANT - The machine is waiting for an external action (typically, waiting for authentication with the wireless access point).
UNKNOWN - The machine cannot determine the connection status. A bad link or incorrect network configuration can cause this. You may also see this status while the machine transitions between statuses.
1 2
72
Operation
Wireless Network Function Keys
4.2.5 Wireless Network Settings
Wireless Network Enabled - This setting activates and deactivates wireless networking.
Obtain Address Automatically - Lets the machine retrieve an IP address and other network information from the networks Dynamic Host Configuration Protocol (DHCP) server. You can use this option only if your network has a DHCP server.
IP Address - The machines static TCP/IP address on a network without a DHCP server. Your network administrator assigns this address to your machine.
Subnet Mask - Your network administrator assigns the subnet mask value for machines with a static TCP/IP address.
Default Gateway - An address to gain access to your network through routers. Your network administrator assigns this address.
DNS Server - The name of the Domain Name Server or DHCP server on the network.
NOTE: The address format for Subnet Mask, Gateway, and DNS is XXX.XXX.XXX.XXX. Do not end the address with a period. Do not use negative numbers. 255.255.255.255 is the highest possible address.
Key Description
Forget network - Highlight a network and press [F1] to remove all connection information and prevent automatic reconnection to this network.
Scan for network and Disconnect and refresh access points - In the network selection table, press [F2] to disconnect from the current network and scan for available networks. Special Symbols - In the wireless network settings table, use [F2] to access special characters, such as carets or underscores, for password entry.
Reconnect - Connect again to a network the machine was previously connected to. Apply Changes - After you make changes to settings for a particular network, press [F4] to save the changes and connect to the network.
73
Network Connection
Wireless SSID - The name of the wireless access point. You can enter this manually, or you can press the LEFT or RIGHT cursor arrow keys to select from a list of available networks. If your network does not broadcast its SSID, you must enter this manually.
Wireless Security - The security mode that your wireless access point uses.
Password - The password for the wireless access point.
4.2.6 Net Share Settings
Net Share lets you connect remote computers to the machine control over the network, to transfer files to and from the machines User Data directory. These are the settings you need to adjust to set up Net Share. Your network administrator can give you the correct values to use. You must enable remote sharing, local sharing, or both to use Net Share.
After you change these settings to the correct values, press [F4] to begin Net Share.
NOTE: If you need special characters such as underscores ( _ ) or carets ( ^ ) for these settings, refer to page 46 for instructions.
CNC Network Name - The name of the machine on the network. The default value is HAASMachine, but you must change this so that each machine on the network has a unique name.
Domain / Workgroup Name - The name of the domain or workgroup the machine belongs to.
Remote Net Share Enabled - When this is ON, the machine shows the contents of the shared network folder in the Network tab in the Device Manager.
Remote Server Name - The remote network name or IP address of the computer that has the share folder.
Remote Share Path - The name and location of the shared remote network folder.
NOTE: Do not use spaces in the shared folder name.
Remote User Name - The name to use to log in to the remote server or domain. User names are case-sensitive and cannot contain spaces.
Remote Password - The password to use to log in to the remote server. Passwords are case-sensitive.
Local Net Share Enabled - When this is ON, the machine allows access to the User Data directory to computers on the network (password required).
74
Operation
Local User Name - Displays the user name to log into the control from a remote computer. The default value is haas; you cannot change this.
Local Password - The password for the user account on the machine.
NOTE: You need the local user name and password to access the machine from an outside network.
Net Share Example
In this example, you have established a net share connection with the Local Net Share Enabled setting turned ON. You want to view the contents of the machines User Data folder on a networked PC.
NOTE: This example uses a Windows 7 PC; your configuration may vary. Ask your network administrator for help if you cannot establish a connection.
1. On the PC, click the START menu and select the RUN command. You can also hold the Windows key and press R.
2. At the Run prompt, type (2) backslashes (\\) and then the machines IP address or CNC Network Name.
3. Click OK or press Enter.
4. Type the machines Local User Name (haas) and Local Password in the appropriate fields, and then click OK or press Enter.
5. A window appears on the PC with the machines User Data folder displayed. You can interact with the folder as you would with any other Windows folder.
NOTE: If you use the machines CNC Network Name instead of the IP address, you may need to type a backslash before the User Name (\haas). If you cannot change the username in the Windows prompt, select the Use another account option first.
75
Spindle Warm-Up
4.2.7 HaasConnect
HaasConnect is a web-based application that lets you monitor your shop with a web browser or mobile device. To use HaasConnect, you set up an account at myhaascnc.com, add users and machines, and designate the alerts you want to receive. For more information about HaasConnect, go to diy.haascnc.com/haasconnect or scan the QR code below with your mobile device.
4.3 Spindle Warm-Up If your machines spindle has been idle for more than (4) days, run the spindle warm-up program before you use the machine. This program brings the spindle up to speed slowly to distribute the lubrication and let the spindle reach a stable temperature.
Your machine includes a 20-minute warm-up program (O02020) in the program list. If you use the spindle at consistent high speeds, you should run this program every day.
4.4 Device Manager ([LIST PROGRAM]) You use the device manager ([LIST PROGRAM]) to access, save, and manage data on the CNC control, and on other devices attached to the control. You also use the device manager to load and transfer programs between devices, set your active program, and back up your machine data.
In the tabbed menu at the top of the display, the device manager ([LIST PROGRAM]) shows you only the available memory devices. For example, if you do not have a USB memory device connected to the control pendant, the tabbed menu does not show a USB tab. For more information on navigating tabbed menus, refer to page 49.
The device manager ([LIST PROGRAM]) shows you the available data in a directory structure. At the root of the CNC control are the available memory devices in a tabbed menu. Each device can contain combinations of directories and files, many levels deep. This is similar to the file structure you find in common personal computer operating systems.
76
Operation
4.4.1 Device Manager Operation
Press [LIST PROGRAM] to access the device manager. The initial device manager display shows the available memory devices in a tabbed menu. These devices can include machine memory, the User Data directory, USB memory devices connected to the control, and files available on the connected network (not shown in the illustration). Select a device tab to work with the files on that device.
F4.5: Device Manager Initial Screen Example: [1] Available Device Tabs, [2] Search Box, [3] Function Keys, [4] File Display.
Use the cursor arrow keys to navigate the directory structure:
Use the [UP] and [DOWN] cursor arrow keys to highlight and interact with a file or a directory in the current root or directory.
Roots and directories have a right-hand arrow character (>) in the far-right column of the file display. Use the [RIGHT] cursor arrow key to open a highlighted root or directory. The display then shows the contents of that root or directory.
Use the [LEFT] cursor arrow key to return to the previous root or directory. The display then shows the contents of that root or directory
The CURRENT DIRECTORY message above the file display tells you where you are in the directory structure; for example: MEMORY/CUSTOMER 11/NEW PROGRAMS shows that you are in the subdirectory NEW_PROGRAMS inside the directory CUSTOMER 11, in the root of MEMORY.
1
2
34
77
Device Manager ([LIST PROGRAM])
4.4.2 File Display Columns
When you open a root or directory with the [RIGHT] cursor arrow key, the file display shows you a list of the files and directories in that directory. Each column in the file display has information about the files or directories in the list.
F4.6: Program/Directory List Example
The columns are:
File selection check box (no label): Press ENTER to toggle a check mark on and off in the box. A check mark in a box indicates that the file or directory selected for operations on multiple files (usually copy or delete).
Program O Number (O #): This column lists the program numbers of the programs in the directory. The letter O is omitted in the column data.
File comment (Comment): This column lists the optional program comment that appears in the first line of the program.
File Name (File Name): This is an optional name that the control uses when you copy the file to a memory device other than the control. For example, if you copy program O00045 to a USB memory device, the filename in the USB directory is NEXTGENtest.nc.
File Size (Size): This column shows the amount of storage space that the file takes up. Directories in the list have the designation
Date Last Modified (Last Modified): This column shows the last date and time when the file was changed. The format is YYYY/MM/DD HR:MIN.
Other Information (no label): This column gives you some information about a files status. The active program has an asterisk (*) in this column. A letter E in this column means that the program is in the program editor. A greater-than symbol (>) indicates a directory. A letter S indicates that a directory is part of Setting 252 (refer to page 389 for more information). Use the [RIGHT] or [LEFT] cursor arrow keys to enter or exit the directory.
78
Operation
4.4.3 Create a New Program
Press [INSERT] to create a new file in the current directory. The CREATE NEW PROGRAM popup menu shows on the screen:
F4.7: Create New Program Popup Menu Example: [1] Program O number field, [2] File Name field, [3] File comment field.
Enter the new program information in the fields. The Program O number field is required; the File Name and File comment are optional. Use the [UP] and [DOWN] cursors to move between the menu fields.
Press [UNDO] at any time to cancel program creation.
Program O number (required for files created in Memory): Enter a program number up to (5) digits long. The control adds the letter O automatically. If you enter a number shorter than (5) digits, the control adds leading zeros to the program number to make it (5) digits long; for example, if you enter 1, the control adds zeros to make it 00001.
NOTE: Do not use O09XXX numbers when you create new programs. Macro programs often use numbers in this block, and overwriting them may cause machine functions to malfunction or stop working.
File Name (optional): Type a filename for the new program. This is the name the control uses when you copy the program to a storage device other than memory.
File comment (optional): Type a descriptive program title. This title goes into the program as a comment in the first line with the O number.
Press [ENTER] to save your new program. If you specified an O number that exists in the current directory, the control gives the message File with O Number nnnnn already exists. Do you want to replace it? Press [ENTER] to save the program and overwrite the existing program, press [CANCEL] to return to the program name popup, or press [UNDO] to cancel.
1
2
3
79
Device Manager ([LIST PROGRAM])
4.4.4 Select the Active Program
Highlight a program in the memory directory, then press [SELECT PROGRAM] to make the highlighted program active.
The active program has an asterisk (*) in the far-right column in the file display. It is the program that runs when you press [CYCLE START] in OPERATION:MEM mode. The program is also protected from deletion while it is active.
4.4.5 Check Mark Selection
The check box column on the far left of the file display lets you select multiple files.
Press [ENTER] to place a check mark in a files check box. Highlight another file and press [ENTER] again to put a check mark in that files check box. Repeat this process until you have selected all of the files you want to select.
You can then do an operation (usually copy or delete) on all of those files at the same time. Each file that is part of your selection has a check mark in the check box. When you choose an operation, the control does that operation on all of the files with check marks.
For example, if you want to copy a set of files from the machine memory to a USB memory device, you would put a check mark on all of the files that you want to copy, then press [F2] to start the copy operation.
To delete a set of files, put a check mark on all of files you want to delete, then press [DELETE] to start the delete operation.
NOTE: A check-mark selection only marks the file for further operation; it does not make the program active.
NOTE: If you have not selected multiple files with check marks, the control does operations only on the currently highlighted directory or file. If you have selected files, the control does operations only on the selected files and not on the highlighted file, unless it is also selected.
4.4.6 Copy Programs
This function lets you copy programs to a device or a different directory.
1. To copy a single program, highlight it in the device manager program list and press [ENTER] to assign a check mark. To copy multiple programs, check-mark all the programs you want to copy.
2. Press [F2] to start the copy operation.
80
Operation
The Select Device popup appears.
F4.8: Select Device
3. Use the cursor arrow keys to select the destination directory. [RIGHT] cursor to enter the chosen directory.
The Insert Directory: Copy popup menu appears.
F4.9: Copy Popup Menu Example
4. Press [ENTER] to complete the copy operation, or press [CANCEL] to return to the device manager.
4.4.7 Edit a Program
Highlight a program, and then press [ALTER] to move the program into the program editor.
The program has the designation E in the far-right column of the file display list when it is in the editor, unless it is also the active program.
You can use this function to edit a program while the active program runs. You can edit the active program, but your changes do not take effect until you save the program and then select it again in the device manager menu.
81
Device Manager ([LIST PROGRAM])
4.4.8 File Commands
Press [F3] to access the file commands menu in the device manager. The list of options appears under the File [F3] drop-down menu in the device manager. Use the cursor arrow keys or the jog handle to highlight a command, and then press [ENTER].
F4.10: The File Commands Menu
Make Directory: creates a new subdirectory in the current directory. Type a name for the new directory, and then press [F4].
Rename: changes the name of a program. The Rename popup menu has the same options as the new program menu (File Name, O Number, and File Title).
Delete: deletes files and directories. When you confirm the operation, the control deletes the highlighted file, or all of the files with check-mark selection.
Duplicate Program: makes a copy of a file in the current location. The Save As popup menu asks you to specify a new program name before you can complete this operation.
Select All: adds check-marks to all of the files/directories in the Current Directory.
Clear Selections: removes check-marks from all of the files/directories in the Current Directory.
Sort By O Number: sorts the program list by O number. Use this menu item again to sort by filename. By default, the program list is sorted by filename.
Setting 252: adds a custom sub-program search location to the list of locations. See Setting Up Search Locations section for more information.
Setting 262 DPRNT: adds a custom destination file path for DPRNT.
Special Symbols: accesses text symbols that are not available on the keyboard. Highlight the character you want to use and press [ENTER] to put it in the input bar. The special characters are: _ ^ ~ { } \ | < >
82
Operation
4.5 Full Machine Backup The backup function makes a copy of your machines settings, programs, and other data so that you can easily restore them.
You create and load backup files with the System [F4] drop-down menu.
F4.11: [F4] Menu Selections
To create a full machine backup:
1. Press [LIST PROGRAM].
2. Navigate to the USB or Network Device.
3. Press [F4].
4. Select Backup Machine and press [ENTER].
83
Full Machine Backup
Backup Machine Pop-up Menu
5. Highlight the data to back up and press [ENTER] to apply a check mark. Press [F2] to select all data. Press [F3] to clear all check marks.
6. Press [F4].
The control saves the backup you selected in a zip file labeled HaasBackup(mm-dd-yyyy).zip where mm is the month, dd is the day, and yyyy is the year.
T4.1: Default File Names in the Zip File
Selected Backup Data Saved Name of File (Folder)
System Data Settings (Serial Number)
System Data Offsets OFFSETS.OFS
System Data Alarm History AlarmHistory.txt, AlarmHistory.HIS
System Data Advanced Tool Management (ATM) ATM.ATM
System Data Key History KeyHistory.HIS
Programs Memory Files and Folders (Memory)
User Data User Data Files and Folders (User Data)
84
Operation
4.5.1 Selected Machine Data Backup
To back up selected information from your machine:
1. If a USB is used, insert a USB memory device into the [USB] port on the right side of the control pendant. If Net Share is used, make sure Net Share is correctly set up.
2. Using the [LEFT] and [RIGHT] cursors navigate to USB in the Device Manager.
3. Open the destination directory. If you want to create a new directory for your backup data, refer to page 82 for instructions.
4. Press [F4].
5. Select the menu option for the data you want to back up, and press [ENTER].
6. Type a filename in the Save As pop-up menu. Press [ENTER]. The message SAVED is displayed after saving is complete. If the name exists you can overwrite or type a new name.
The file types for backups are listed in the following table.
T4.2: Menu Selection and File Name for Backup
F4 Menu Selection Save Load Created File
Settings yes yes USB0/serialnumber/CONFIGURATION/serialnumber_us.xml
Offsets yes yes filename.OFS
Macro Vars yes yes filename.VAR
ATM yes yes filename.ATM
Lsc yes yes
Network Config yes yes filename.xml
Alarm History yes no filename.txt filename.HIS
Key History yes no filename.HIS
85
Restoring a Full Machine Backup
NOTE: When you back up settings, the Control does not prompt for a file name. It saves the file in a subdirectory:
USB0/machine serial number/CONFIGURATION/machine serial number_us.xml
4.6 Restoring a Full Machine Backup This procedure tells you how to restore your machine data from the backup on a USB memory device.
1. Insert the USB memory device with the backup files into the USB port on the right side of the control pendant.
2. Navigate to USB in the Device Manager.
3. Press [EMERGENCY STOP].
4. Open the directory that contains the backup you want to restore.
5. Highlight the HaasBackup zip file to load.
6. Press [F4].
7. Select Restore Machine and press [ENTER].
The Restore Machine pop-up window shows what types of data can be selected to restore.
F4.12: Restore Machine Pop-up menu (example shows an all data backup)
8. Highlight the data to restore and press [ENTER] to apply a check mark. Press [F2] to select all data. Press [F3] to clear all selectors.
86
Operation
WARNING: User data and memory are erased prior to a restore.
9. Press F4.
Each data area restored is checked-off and initialized.
4.6.1 Restoring Selected Backups
This procedure tells you how to restore selected data backups from a USB memory device.
1. Insert the USB memory device with the backup files into the USB port on the right side of the control pendant.
2. Navigate to USB in the Device Manager.
3. Press [EMERGENCY STOP].
4. Open the directory that contains the files you want to restore.
5. Highlight or type in the name of the file to be restored. Typed file name takes precedence over highlighted file name.
NOTE: Type the backup name with or without a file extension (e.g., MACROS or MACROS.VAR)
6. Press [F4].
7. Highlight the backup type to load and press [ENTER].
The highlighted file or the typed name file is loaded on the machine. The message Disk Done displays after loading is complete.
NOTE: Settings load the moment you pick Settings from the System [F4] drop-down menu. Highlighting or typing is not required.
87
Basic Program Search
4.7 Basic Program Search You can use this function to quickly find code in a program.
NOTE: This is a quick-search function that finds the first match in the search direction that you specify. You can use the Advanced Editor for a more full-featured search. Refer to page 114 for more information on the Advanced Editor search function.
1. Type the text you want to find in the active program.
2. Press the [UP] or [DOWN] cursor arrow key.
The [UP] cursor arrow key searches from the cursor position to the start of the program. The [DOWN] cursor arrow key searches to the end of the program. The control highlights the first match.
4.8 Tooling This section describes tool management in the Haas control: commanding tool changes, loading tools into holders, and Advanced Tool Management.
4.8.1 Tool Holders
There are several different spindle options for Haas mills. Each of these types requires a specific tool holder. The most common spindles are 40- and 50-taper. 40-taper spindles are divided into two types, BT and CT; these are referred to as BT40 and CT40. The spindle and tool changer in a given machine are capable of holding only one tool type.
Tool Holder Care
1. Make sure that tool holders and pull studs are in good condition and tightened together securely or they may stick in the spindle.
F4.13: Tool Holder Assembly, 40-Taper CT Example: [1] Pull Stud, [2] Tool (Endmill).
2. Clean the tool holder taper body (the part that goes into the spindle) with a lightly oiled rag to leave a film, which helps prevent rusting.
1 2
88
Operation
Pull Studs
A pull stud (sometimes called a retention knob) secures the tool holder into the spindle. Pull studs are threaded into the top of the tool holder and are specific to the type of spindle. Refer to the 30, 40, and 50-taper spindle and tooling information on the Haas Resource Center website for descriptions of the pull studs you need.
CAUTION: Do not use short-shaft or pull studs with a sharp right-angle (90-degree) head; they will not work and will cause serious damage to the spindle.
4.8.2 Advanced Tool Management Introduction
Advanced Tool Management (ATM) lets you set up groups of duplicate tools for the same or a series of jobs.
ATM classifies duplicate or backup tools into specific groups. In your program, you specify a group of tools instead of a single tool. ATM tracks the tool use in each tool group and compares it to your defined limits. When a tool reaches a limit, the control considers it expired. The next time your program calls that tool group, the control chooses a non-expired tool from the group.
When a tool expires:
The ATM screen displays automatically.
ATM puts the expired tool in the EXP group
Tool groups that contain the tool appear with a red background.
To use ATM, press [CURRENT COMMANDS], and then select ATM in the tabbed menu. The ATM window has two sections: Allowed Limits and Tool Data.
89
Tooling
F4.14: Advanced Tool Management Window: [1] Active window label, [2] Allowed Limits window, [3] Tool Group window, [4] Tool Data window, [5] Help text
Allowed Limits
This table gives data about all of the current tool groups, including default groups and user-specified groups. ALL is a default group that lists all of the tools in the system. EXP is a default group that lists all of the tools that are expired. The last row in the table shows all of the tools that are not assigned to tool groups. Use the cursor arrow keys or [END] to move the cursor to the row and see these tools.
For each tool group in the ALLOWED LIMITS table, you define limits that determine when a tool expires. The limits apply to all tools assigned to this group. These limits affect every tool in the group.
The columns in the ALLOWED LIMITS table are:
GROUP - Displays the tool groups ID number. this is the number you use to specify the tool group in a program.
EXP # - Tells you how many tools in the group are expired. If you highlight the ALL row, you see a list of all of the expired tools in all groups.
ORDER - Specifies the tool to use first. If you select ORDERED, ATM uses the tools in tool number order. You can also have ATM automatically use the NEWEST or OLDEST tool in the group.
USAGE - The maximum number of times the control can use a tool before it expires.
HOLES - The maximum number of holes a tool is allowed to drill before it expires.
2
3
5
1
4
90
Operation
WARN - The minimum value for tool life remaining in the group before the control gives a warning message.
LOAD - The allowed load limit for tools in the group before the control does the ACTION that the next column specifies.
ACTION - The automatic action when a tool reaches its maximum tool load percentage. Highlight the tool action box to change and press [ENTER]. Use the [UP] and [DOWN] cursor keys to select the automatic action from the pull down menu (ALARM, FEEDHOLD, BEEP, AUTOFEED, NEXT TOOL).
FEED - The total amount of time, in minutes, that the tool can be in a feed.
TOTAL TIME - The total amount of time, in minutes, that the control can use a tool.
Tool Data
This table gives information about each tool in a tool group. To look at a group, highlight it in the ALLOWED LIMITS table, and then press [F4].
TOOL# - Shows the tool numbers used in the group.
LIFE - The percentage of life left in a tool. This is calculated by the CNC control, using actual tool data and the allowed limits the operator entered for the group.
USAGE - The total number of times that a program has called the tool (number of tool changes).
HOLES - The number of holes the tool has drilled/ tapped/ bored.
LOAD - The maximum load, in percent, exerted on the tool.
LIMIT - The maximum load allowed for the tool
FEED - The amount of time, in minutes, the tool has been in a feed.
TOTAL - The total amount of time, in minutes, the tool has been used.
H-CODE - The tool-length code to use for the tool. You can edit this only if Setting 15 is set to OFF.
D-CODE - The diameter code to use for the tool.
NOTE: By default, the H- and D-codes in Advanced Tool Management are set to equal the tool number that is added to the group.
Tool Group Setup
To add a tool group:
1. Select the ALLOWED LIMITS table.
2. Use the cursor arrow keys to highlight an empty row.
3. Type the group identification number (between 1000 and 2999) that you want to use for the new tool group.
4. Press [ENTER].
91
Tooling
Manage Tools in a Group
To add, change, or delete a tool in a group:
1. Highlight the group you want to work with in the ALLOWED LIMITS table.
2. Press [F4] to switch to the TOOL DATA table.
3. Use the cursor arrow keys to highlight an empty row.
4. Type an available tool number between 1 and 200.
5. Press [ENTER].
6. To change a tool number assigned to a group, use the cursor keys to highlight the tool number you want to change.
7. Type a new tool number.
NOTE: You can type 0 if you want to delete the tool from the tool group.
8. Press [ENTER].
Tool Group Usage
To use a tool group in a program, substitute the tool group ID number for the tool number and for the H-codes and D-codes in the program. Refer to this program for an example of the program format.
Example:
% O30001 (Tool change ex-prog); (G54 X0 Y0 is top right corner of part) ; (Z0 is on top of the part) ; (Group 1000 is a drill) ;(T1000 PREPARATION BLOCKS) ; T1000 M06 (Select tool group 1000) ; G00 G90 G40 G49 G54 (Safe startup) ; X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H1000 Z0.1 (Tool group offset 1000 on) ; M08 (Coolant on) ; (T1000 CUTTING BLOCKS) ; G83 Z-0.62 F15. R0.1 Q0.175 (Begin G83); X1.115 Y-2.75 (2nd hole); X3.365 Y-2.87 (3rd hole); G80 ; G00 Z1. M09 (Rapid retract, coolant off) ; G53 G49 Z0 M05 (Z home, spindle off) ; M01 (Optional stop) ;
92
Operation
(T2000 PREPARATION BLOCKS) ; T2000 M06 (Select tool group 2000) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0.565 Y-1.875 (Rapid to 4th position) ; S2500 M03 (Spindle on CW) ; G43 H2000 Z0.1 (Tool group offset 2000 on) ; M08 (Coolant on) ; (T2000 CUTTING BLOCKS) ; G83 Z-0.62 F15. R0.1 Q0.175 (Begin G83); X1.115 Y-2.75 (5th hole) ; X3.365 Y2.875 (6th hole) ; (T2000 COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
Advanced Tool Management Macros
Advanced Tool Management (ATM) can use macros to obsolete a tool within a tool group. Macros 8001 to 8200 represent tools 1 through 200. You can set one of these macros to 1 to expire a tool. For example:
8001 = 1 (this expires tool 1)
8001 = 0 (this makes tool 1 available)
Macro variables 8500 - 8515 enable a G code program to obtain tool group information. When you specify a tool group ID number with macro 8500, the control returns the tool group information in macro variables #8501 through #8515. Refer to the variables #8500 - #8515 in the Macros chapter for the macro variable data label information.
Macro variables #8550 - #8564 let a G-code program obtain information about individual tools. When you specify an individual tool ID number with macro #8550, the control returns the individual tool information in macro variables #8551 - #8564. You can also specify an ATM group number with macro 8550. In this case, the control returns the individual tool information for the current tool in the specified ATM tool group in macro variables 8551 - 8564. Refer to the description for variables #8550 - #8564 in the Macros chapter. The values in these macros provide data that is also accessible from macros starting at 1601, 1801, 2001, 2201, 2401, 2601, 3201, and 3401 and for macros starting at 5401, 5501, 5601, 5701, 5801, and 5901. These first 8 sets provide access for tool data for tools 1-200; the last 6 sets provide data for tools 1-100. Macros 8551 - 8564 give access to the same data, but for tools 1-200 for all data items.
93
Tool Changers
Save Advanced Tool Management Tables
You can save to USB the variables associated with Advanced Tool Management (ATM).
To save the ATM information:
1. Select the USB device in the Device Manager ([LIST PROGRAM]).
2. Type a filename on the input line.
3. Press [F4].
4. Highlight SAVE ATM in the pop-up menu.
5. Press [ENTER].
Restore Advanced Tool Management Tables
You can restore from USB the variables associated with Advanced Tool Management (ATM).
To restore the ATM information:
1. Select the USB device in the Device Manager ([LIST PROGRAM]).
2. Press [F4].
3. Highlight LOAD ATM in the pop-up menu.
4. Press [EMERGENCY STOP].
5. Press [ENTER].
4.9 Tool Changers There are (2) types of mill tool changers: the umbrella style (UTC), and the side-mount tool changer (SMTC). You command both tool changers in the same way, but you set them up differently.
1. Make sure the machine is zero returned. If it is not, press [POWER UP].
2. Use [TOOL RELEASE], [ATC FWD], and [ATC REV] to manually command the tool changer. There are (2) tool release buttons; one on the spindle head cover and another on the keyboard.
94
Operation
4.9.1 Loading the Tool Changer
CAUTION: Do not exceed the maximum tool changer specifications. Extremely heavy tool weights should be distributed evenly. This means heavy tools should be located across from one another, not next to each other. Ensure there is adequate clearance between tools in the tool changer; this distance is 3.6" for a 20-pocket and 3 for a 24+1 pocket. Check your tool changer specifications for the correct minimal clearance between tools.
NOTE: Low air pressure or insufficient volume reduces the pressure applied to the tool release piston and will slow down tool change time or will not release the tool.
WARNING: Stay away from the tool changer during power up, power down, and during tool changer operations.
Always load tools into the tool changer from the spindle. Never load a tool directly into the tool changer carousel. Some mills have remote tool changer controls to let you inspect and replace tools at the carousel. This station is not for initial loading and tool assignment.
CAUTION: Tools that make a loud noise when released indicate a problem and should be checked before serious damage occurs to the tool changer or spindle.
Tool Loading for a Side-Mount Tool Changer
This section tells you how to load tools into an empty tool changer for a new application. It assumes that the pocket tool table still contains information from the previous application.
1. Make sure your tool holders have the correct pull stud type for the mill.
2. Press [CURRENT COMMANDS] then navigate to the TOOL TABLE tab and press the [DOWN] cursor.
3. Clear the Large or Heavy tool designations from the pocket tool table by:
a. Scroll to a tool pocket with an L or H next to it.
b. Press [SPACE], then [ENTER] to clear the designation.
95
Tool Changers
c. Or, press [ENTER] and select CLEAR CATEGORY FLAG from the pulldown menu.
d. To clear all designations, press [ORIGIN] and select the CLEAR CATEGORY FLAGS option.
F4.15: A Large and Heavy Tool (left), and a Heavy (not Large) Tool (right)
4. Press [ORIGIN]. Select Sequence All Pockets to reset the tool pocket table to default values. This places tool 1 in the spindle, tool 2 in pocket 1, tool 3 in pocket 2, etc. This clears the previous tool pocket table settings, and it resets the tool pocket table for the next program.
NOTE: You cannot assign a tool number to more than one pocket. If you enter a tool number that is already defined in the tool pocket table, you see an Invalid Number error.
5. Determine if your program needs any large tools. A large tool has a diameter of greater than 3" for 40-taper machines and greater than 4" for 50-taper machines. If your program does not need large tools, skip to Step 7.
6. Organize the tools to match your CNC program. Determine the numerical positions of large tools and designate those pockets as Large in the tool pocket table. To designate a tool pocket as Large:
a. Scroll to the pocket of interest.
b. Press [L].
c. Press [ENTER]
1 2
96
Operation
CAUTION: You cannot place a large tool in the tool changer if one or both of the surrounding pockets already contain tools. Doing so causes the tool changer to crash. Large tools must have the surrounding pockets empty. However, large tools can share adjoining empty pockets.
7. Insert tool 1 (pull stud first) into the spindle.
F4.16: Inserting a Tool Into the Spindle: [1] Tool release button.
8. Turn the tool so that the two cutouts in the tool holder line up with the tabs of the spindle.
9. Push the tool upward and press the tool release button.
10. When the tool is fitted into the spindle, release the tool release button.
High-Speed Side-Mount Tool Changer
The high-speed side-mount tool changer has an additional tool assignment, which is Heavy. Tools that weigh more than 4 pounds are considered heavy. You must designate heavy tools with H (Note: All large tools are considered heavy). During operation, an h in the tool table denotes a heavy tool in a large pocket.
As a safety precaution, the tool changer will run at a maximum of 25% of the normal speed when it changes a heavy tool. The pocket up/down speed is not slowed down. The control restores the speed to the current rapid when the tool change is complete. Contact your HFO for assistance if you have problems with unusual or extreme tooling.
H - Heavy, but not necessarily large (large tools require empty pockets on either side).
h - Heavy small diameter tool in a pocket designated for a large tool (must have empty pocket on both sides). The lower case h and l is placed by the control; never enter a lower case h or l into the tool table.
1
97
Tool Changers
l - Small diameter tool in a pocket reserved for a large tool in the spindle.
Large tools are assumed to be heavy.
Heavy tools are not assumed to be large.
On non-high speed tool changers, H and h have no effect.
Using 0 for a Tool Designation
In the tool table, enter 0 (zero) for the tool number to label a tool pocket "always empty". The tool changer does not "see" this pocket, and it never tries to install or retrieve a tool from pockets with a 0 designation.
You cannot use a zero to designate the tool in the spindle. The spindle must always have a tool number designation.
Moving Tools in the Carousel
If you need to move tools in the carousel, follow this procedure.
CAUTION: Plan the reorganization of the tools in the carousel ahead of time. To reduce the potential for tool changer crashes, keep tool movement to a minimum. If there are large or heavy tools currently in the tool changer, ensure that they are only moved between tool pockets designated as such.
Moving Tools
The tool changer pictured has an assortment of normal-sized tools. For the purposes of this example, we need to move tool 12 to pocket 18 to make room for a large-sized tool in pocket 12.
F4.17: Making Room for Large Tools: [1] Tool 12 to Pocket 18, [2] Large Tool in Pocket 12.
1 2
98
Operation
1. Select MDI mode. Press [CURRENT COMMANDS] and navigate to the TOOL TABLE display. Identify the tool number that is in pocket 12.
2. Type Tnn (where nn is the tool number from step 1). Press [ATC FWD]. This places the tool from pocket 12 into the spindle.
3. Type P18 then press [ATC FWD] to put the tool in the spindle into pocket 18.
4. Scroll to pocket 12 in the TOOL TABLE and press L then [ENTER] to designate pocket 12 as large.
5. Enter the tool number into SPINDLE on the TOOL TABLE. Insert the tool into the spindle.
NOTE: Extra-large tools can be programmed as well. An extra-large tool is one that takes up three pockets; the diameter of the tool covers the tool pocket on either side of the pocket it is installed in. Contact your HFO to provide a special configuration if a tool this size is needed. The tool table must be updated since two empty pockets are needed between extra large tools.
6. Enter P12 into the control and press [ATC FWD]. The tool is placed into pocket 12.
Umbrella Tool Changer
Tools are loaded into the umbrella tool changer by first loading the tool into the spindle. To load a tool into the spindle, prepare the tool and then follow these steps:
1. Ensure the tools loaded have the correct pull stud type for the mill.
2. Press [MDI/DNC] for MDI mode.
3. Organize the tools to match to the CNC program.
4. Take tool in hand and insert the tool (pull stud first) into the spindle. Turn the tool so that the two cutouts in the tool holder line up with the tabs of the spindle. Push the tool upward while pressing the Tool Release button. When the tool is fitted into the spindle, release the Tool Release button.
5. Press [ATC FWD].
6. Repeat Steps 4 and 5 with the remaining tools until all the tools are loaded.
99
Tool Changers
4.9.2 Umbrella Tool Changer Recovery
If the tool changer jams, the control will automatically come to an alarm state. To correct this:
WARNING: Never put your hands near the tool changer unless the EMERGENCY STOP button is pressed first.
1. Press [EMERGENCY STOP].
2. Remove the cause of the jam.
3. Press [RESET] to clear the alarms.
4. Press [RECOVER] and follow the directions to reset the tool changer.
4.9.3 SMTC Programming Notes
Tool Pre-Call
To save time, the control looks ahead as far as 80 lines into your program to process and prepare machine motion and tool changes. When look-ahead finds a tool change, the control puts the next tool in your program into position. This is called tool pre-call.
Some program commands stop look-ahead. If your program has these commands before the next tool change, the control does not pre-call the next tool. This can cause your program to run slower, because the machine must wait for the next tool to move into position before it can change tools.
Program commands that stop look-ahead:
Work offset selections ( G54, G55, etc.)
G103 Limit Block Buffering, when programmed without a P address or with a nonzero P address
M01 Optional Stop
M00 Stop Program
Block Delete Slashes ( /)
A large number of program blocks executed at high speed
To make sure that the control pre-calls the next tool without look-ahead, you can command the carousel to the next tool position immediately after a tool change command, as in this code snippet:
T01 M06 (TOOL CHANGE) ; T02 (PRE-CALL THE NEXT TOOL) ;
100
Operation
4.9.4 SMTC Recovery
If a problem occurred during a tool change, a tool changer recovery needs to be performed. Enter the tool changer recovery mode by:
1. Press [RECOVER] and navigate to the TOOL CHANGER RECOVERY tab.
2. Press [ENTER]. If there is no Alarm, the control first attempts an automatic recovery. If there is an alarm press [RESET] to clear the alarms and repeat from step 1.
3. At the VMSTC TOOL RECOVERY screen, press [A] to begin automatic recovery or [E] to exit.
4. If the automatic recovery fails, press [M] to continue for a manual recovery.
5. In manual mode, follow the instructions and answer the questions to perform a proper tool changer recovery. The entire tool changer recovery process must be completed before exiting. Start the routine from the beginning if you exit the routine early.
4.9.5 SMTC Door Switch Panel
Mills such as the MDC, EC-300 and EC-400 have a sub-panel to aid tool loading. The Manual/Automatic Tool Change switch must be set to Automatic Operation for automatic tool changer operation. If the switch is set to Manual, the two buttons, labeled with clockwise and counterclockwise symbols, are enabled and automatic tool changes are disabled. The door has a sensor switch which detects when the door is open.
F4.18: Tool Changer Door Switch Panel Symbols: [1] Rotate Tool changer Carousel Counter-Clockwise, [2] Rotate Tool Changer Carousel Clockwise, [3] Tool Change Switch - Automatic Operation, [4] Tool Change Switch - Manual Operation Selection.
1 2
34
101
Part Setup
SMTC Door Operation
If the cage door is opened while a tool change is in progress, the tool change stops and resumes when the cage door is closed. Any machining operations in progress remain uninterrupted.
If the switch is turned to manual while a tool carousel is in motion, the tool carousel stops and resumes when the switch is turned back to automatic. The next tool change will not execute until the switch is turned back. Any machining operations that are in progress remain uninterrupted.
The carousel rotates one position whenever a clockwise or counter-clockwise button is pressed once, while the switch is set to manual.
During tool changer recovery, if the cage door is open or the Tool Change switch is in the manual position and [RECOVER] is pressed, a message is displayed telling the operator the door is open or is in manual mode. The operator must close the door and set the switch to the automatic position in order to continue.
4.10 Part Setup Correct workholding is very important for safety, and to get the machining results that you want. There are many workholding options for different applications. Contact your HFO or workholding dealer for guidance.
F4.19: Part Setup Examples: [1] Toe clamp, [2] Chuck, [3] Vise.
1
2
3
102
Operation
4.10.1 Setting Offsets
To machine a part accurately, the mill needs to know where the part is located on the table and the distance from the tip of the tools to the top of the part (tool offset from home position).
To manually enter offsets:
1. Choose one of the offsets pages.
2. Move the cursor to the desired column.
3. Type the offset value you want to use.
4. Press [ENTER] or [F1].
The value is entered into the column.
5. Enter a positive or negative value and press [ENTER] to add the amount entered to the number in the selected column; press [F1] to replace the number in the column.
Jog Mode
Jog mode lets you jog the machine axes to a desired location. Before you can jog an axis, the machine must establish its home position. The control does this at machine power-up.
To enter jog mode:
1. Press [HANDLE JOG].
2. Press the desired axis ([+X], [-X], [+Y],[-Y], [+Z], [-Z], [+A/C] or [-A/C], [+B], or [-B]).
3. There are different increment speeds that can be used while in jog mode; they are [.0001], [.001], [.01] and [.1]. Each click of the jog handle moves the axis the distance defined by the current jog rate. You can also use an optional Remote Jog Handle (RJH) to jog the axes.
4. Press and hold the handle jog buttons or use the jog handle control to move the axis.
103
Part Setup
Setting Part Zero (Work) Offset
To machine a workpiece, the mill needs to know where the workpiece is located on the table. You can use an edge finder, an electronic probe, or many other tools and methods to establish part zero. To set the part zero offset with a mechanical pointer:
F4.20: Part Zero Set
1. Place the material [1] in the vise and tighten.
2. Load a pointer tool [2] in the spindle.
3. Press [HANDLE JOG] [E].
4. Press [.1/100.] [F] (The mill moves at a fast speed when the handle is turned).
5. Press [+Z] [A].
6. Use the jog handle [J] to move the Z-Axis approximately 1" above the part.
7. Press [.001/1.] [G] (The mill moves at a slow speed when the handle is turned).
8. Jog the Z-Axis approximately. 0.2" above the part.
9. Select between the X and Y axes [I] and jog the tool to the upper left corner of the part (see illustration [9]).
10. Navigate to the [OFFSET]>WORK [C] tab and press the [DOWN] cursor key [H] to activate the page. You can press [F4] to toggle between Tool offsets and Work offsets.
11. Navigate to the G54 X Axis location.
CAUTION: In the next step, do not press [PART ZERO SET] a third time; this loads a value into the Z AXIS column. This causes a crash or a Z-Axis alarm when the program is run.
12. Press [PART ZERO SET] [B] to load the value into the X Axis column. The second press of [PART ZERO SET] [B] loads the value into the Y Axis column.
A D F
H
B E
I
C
GJ
1
2 9
104
Operation
Setting Tool Offsets
The next step is to touch off the tools. This defines the distance from the tip of the tool to the top of the part. Another name for this is Tool Length Offset, which is designated as H in a line of machine code. The distance for each tool is entered into the TOOL OFFSET table.
F4.21: Setting Tool Offset. With the Z Axis at its home position, Tool Length Offset is measured from the tip of the tool [1] to the top of the part [2].
1. Load the tool in the spindle [1].
2. Press [HANDLE JOG] [F].
3. Press [.1/100.] [G] (The mill moves at a fast rate when the handle is turned).
4. Select between the X and Y axes [J], and with the use the jog handle [K] to move the tool near the center of the part.
5. Press [+Z] [C].
6. Jog the Z Axis approximately 1" above the part.
7. Press [.0001/.1] [H] (The mill moves at a slow rate when the handle is turned).
8. Place a sheet of paper between the tool and the work piece. Carefully move the tool down to the top of the part, as close as possible, and still be able to move the paper.
9. Press [OFFSET] [D] and select the TOOL tab.
10. Highlight the H (length) Geometry value for position #1.
11. Press [TOOL OFFSET MEASURE] [A].
CAUTION: The next step causes the spindle to move rapidly in the Z Axis.
12. Press [NEXT TOOL] [B].
13. Repeat the offset process for each tool.
B FD
IK
C
H
E
J
GA
1
2
105
Run-Stop-Jog-Continue
4.11 Run-Stop-Jog-Continue This feature lets you stop a running program, jog away from the part, and then start the program again.
1. Press [FEED HOLD].
Axis motion stops. The spindle continues to turn.
2. Press [X], [Y], [Z], or an installed Rotary Axis ([A] for A Axis, [B] for B Axis, and [C] for C Axis), then press [HANDLE JOG]. The control stores the current X, Y, Z, and rotary axes positions.
3. The control gives the message Jog Away and displays the Jog Away icon. Use the jog handle or jog keys to move the tool away from the part. You can command coolant with [AUX CLNT] or [COOLANT]. You can start or stop the spindle with [FWD], [REV], or [STOP]. You can also release the tool to change inserts.
CAUTION: When you start the program again, the control uses the previous offsets for the return position. Therefore, it is unsafe and not recommended to change tools and offsets when you interrupt a program.
4. Jog to a position as close as possible to the stored position, or to a position where there is an unobstructed rapid path back to the stored position.
5. Press [MEMORY] or [MDI] to return to run mode. The control gives the message Jog Return and displays the Jog Return icon. The control continues only if you return to the mode that was in effect when you stopped the program.
6. Press [CYCLE START]. The control rapids X, Y, and rotary axes at 5% to the position where you pressed [FEED HOLD]. It then returns the Z Axis. If you press [FEED HOLD] during this motion, axis motion pauses and the control gives the message Jog Return Hold. Press [CYCLE START] to resume the Jog Return motion. The control goes into a feed hold state again when the motion is finished.
CAUTION: The control does not follow the same path that you used to jog away.
7. Press [CYCLE START] again and the program resumes operation.
106
Operation
CAUTION: If Setting 36 is ON, the control scans the program to make sure the machine is in the correct state (tools, offsets, G- and M-codes, etc.) to safely continue the program. If Setting 36 is OFF, the control does not scan the program. This can save time, but it could cause a crash in an unproven program.
4.12 Graphics Mode A safe way to troubleshoot a program is to press [GRAPHICS] to run it in graphics mode. No movement occurs on the machine, instead the movement is illustrated on the screen.
Key Help Area The lower-left part of the graphics display pane is the function key help area. This area shows you the function keys that you can use, and a description of what they do.
Locator Window The lower-right part of the pane displays the simulated machine table area, and it shows where the simulated view is zoomed and focused.
Tool Path Window The large window in the center of the display gives a simulated view of the work area. It displays a cutting tool icon and simulated tool paths.
NOTE: Feed motion appears as a black line. Rapid moves appear as a green line. Drill cycle locations appear with an X.
NOTE: If Setting 253 is ON, the tool diameter is shown as a thin line. If it is OFF, the tool diameter specified in the Tool Offsets Diameter Geometry table is used.
Zoom Press [F2] to display a rectangle (zoom window) that shows the area that the zoom operation will move to. Use [PAGE DOWN] to decrease the size of the zoom window (zoom in), and use [PAGE UP] to increase the size of the zoom window (zoom out). Use the cursor arrow keys to move the zoom window to the location you want to zoom, and press [ENTER] to complete the zoom. The control scales the tool path window to the zoom window. Run the program again to display the tool path. Press [F2] and then [HOME] to expand the Tool Path window to cover the entire work area.
Z-Axis Part Zero Line The horizontal line on the Z-Axis bar at the top-right corner of the graphics screen gives the position of the current Z-axis work offset plus the length of the current tool. While a program simulation runs, the shaded portion of the bar indicates the depth of the simulated Z-Axis motion relative to the Z-Axis work zero position.
107
More Information Online
Position PaneThe position pane displays axis locations just as it would during a live part run.
To run a program in graphics mode:
1. Press [SETTING] and navigate to the GRAPHICS page.
2. Press [CYCLE START].
NOTE: Graphics mode does not simulate all machine functions or motions.
4.13 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
108
Programming
Chapter 5: Programming
5.1 Create / Select Programs for Editing You use the Device Manager ([LIST PROGRAM]) to create and select programs for editing. Refer to page 79 to create a new program. Refer to page 80 to choose an existing program to edit.
5.2 Program Edit Modes The Haas control has (3) program edit modes: The program editor, the background editor, or manual data input (MDI). You use the program editor and background editor to make changes to numbered programs stored in an attached memory device (machine memory, USB, or net share). You use MDI mode to command the machine without a formal program.
The Haas control screen has (2) program edit panes: The Active Program / MDI pane, and the Program Generation pane. The Active Program / MDI pane is on the left side of the screen in all display modes. The Program Generation pane appears only in EDIT mode.
F5.1: Example Edit Panes. [1] Active Program / MDI Pane, [2] Program Edit Pane, [3] Clipboard Pane
1 2
3
109
Program Edit Modes
5.2.1 Basic Program Editing
This section describes the basic program editing functions. These functions are available in all program editing modes. When you use the Advanced Editor, you have additional functions available, which are described in that section.
1. To write a program, or make changes to a program:
a. To edit a program in MDI, press [MDI]. This is EDIT:MDI mode. The program is displayed on the Active pane.
b. To edit a numbered program, select it in the Device Manager ([LIST PROGRAM]), then press [EDIT]. This is EDIT:EDIT mode. The program is displayed in the Program Generation pane.
2. To highlight code:
a. Use the cursor arrow keys or the jog handle to move the highlight cursor through the program.
b. You can interact with single pieces of code or text (cursor highlighting), blocks of code, or multiple blocks of code (block selection). Refer to the Block Selection section for more information.
3. To add code to the program:
a. Highlight the code block you want the new code to follow.
b. Type the new code.
c. Press [INSERT]. Your new code appears after the block you highlighted.
4. To replace code:
a. Highlight the code you want to replace.
b. Type the code you want to replace the highlighted code with.
c. Press [ALTER]. Your new code takes the place of the code you highlighted.
5. To remove characters or commands:
a. Highlight the text you want to delete.
b. Press [DELETE]. The text that you highlighted is removed from the program.
6. Press [UNDO] to reverse up to the last (40) changes.
110
Programming
NOTE: You cannot use [UNDO] to reverse changes that you made if you exit EDIT:EDIT mode.
NOTE: In EDIT:EDIT mode, the control does not save the program as you edit. Press [MEMORY] to save the program and load it into the Active Program pane.
Block Selection
When you edit a program, you can select single or multiple blocks of code. You can then copy and paste, delete, or move those blocks in one step.
To select a block:
1. Use the cursor arrow keys to move the highlight cursor to the first or last block in your selection.
NOTE: You can start a selection at the top block or the bottom block, and then move up or down as appropriate to complete your selection.
NOTE: You cannot include the program name block in your selection. The control gives the message GUARDED CODE.
2. Press [F2] to start your selection.
3. Use the cursor arrow keys or the jog handle to expand the selection.
4. Press [F2] to complete the selection.
Actions with a Block Selection
After you make a text selection, you can copy and paste it, move it, or delete it.
NOTE: These instructions assume you have already made a block selection as described in the Block Selection section.
111
Program Edit Modes
NOTE: These are actions available in MDI and the Program Editor. You cannot use [UNDO] to reverse these actions.
1. To copy and paste the selection:
a. Move the cursor to the location where you want to put a copy of the text.
b. Press [ENTER].
The control puts a copy of the selection on the next line after the cursor location.
NOTE: The control does not copy the text to the clipboard when you use this function.
2. To move the selection:
a. Move the cursor to the location where you want to move the text.
b. Press [ALTER].
The control removes the text from its current location and puts it in the line after the current line.
3. Press [DELETE] to delete the selection.
5.2.2 Manual Data Input (MDI)
Manual Data Input (MDI) lets you command automatic CNC moves without a formal program. Your input stays on the MDI input page until you delete it.
F5.2: MDI Input Page Example
1. Press [MDI] to enter MDI mode.
2. Type your program commands in the window. Press [CYCLE START] to execute the commands.
112
Programming
3. If you want to save the program you created in MDI as a numbered program:
a. Press [HOME] to put the cursor at the beginning of the program.
b. Type a new program number. Program numbers must follow the standard program number format (Onnnnn).
c. Press [ALTER].
d. In the RENAME pop-up window, you can type a filename and file title for the program. Only the O number is required.
e. Press [ENTER] to save the program to memory.
4. Press [ERASE PROGRAM] to delete everything from the MDI input page.
5.2.3 Background Edit
Background edit lets you edit a program while a program runs. If you edit the active program, background edit creates a copy of the program until you overwrite the active program, save the edited program as a new program, or discard the program. The changes you make do not affect the program while it runs.
Background edit notes:
Press [PROGRAM] or [MEMORY] to exit background edit.
You cannot use [CYCLE START] during a background edit session. If the running program contains a programmed stop, you must exit background edit before you can use [CYCLE START] to continue the program.
1. To edit the active program, press [EDIT] while the program runs.
A copy of the active program appears in the PROGRAM GENERATION pane on the right-hand side of the screen.
2. To edit a different program while the active program runs:
a. Press [LIST PROGRAM].
b. Select the program that you want to edit.
c. Press [ALTER].
The program appears in the PROGRAM GENERATION pane on the right-hand side of the screen.
3. Edit the program.
4. The changes that you make to the active program do not affect the program while it runs.
113
Program Edit Modes
5. If you background edit the active program, after the program finishes running, when you attempt to leave the screen, a popup gives the option to overwrite the program or discard your changes.
Pick the first item, Overwrite After End of Program, in the popup and press [ENTER] to overwrite the active program with your changes.
Pick the second item, Discard Changes, in the popup and press [ENTER] to discard all of your changes.
5.2.4 Advanced Program Editor
The Advanced Program Editor is a full-featured editing environment with access to powerful functions in an easy-to-use pull-down menu. You use the Advanced Program Editor for normal and background editing.
Press [EDIT] to enter edit mode and use the Advanced Program Editor.
F5.3: Example Advanced Program Editor Screen. [1] Main Program Display, [2] Menu Bar, [3] Clipboard
1
2
3
114
Programming
Advanced Program Editor Pull-Down Menu
The Advanced Program Editor uses a pull-down menu to give you easy access to editor functions in (5) categories: FILE, EDIT, SEARCH, MODIFY, and OPTIONS. This section describes the categories and the choices you can make when you select them.
To use the pull-down menu:
1. Press [EDIT] to start the Advanced Program Editor.
2. Press [F1] to access the pull-down menu.
The menu opens for the last category you used. If you have not yet used the pull-down menu, the FILE menu opens by default.
3. Use the [LEFT] and [RIGHT] cursor arrow keys to highlight a category. When you highlight a category, the menu appears below the category name.
4. Use the [UP] and [DOWN] cursor arrow keys to select an option inside of the current category.
5. Press [ENTER] to execute the command.
Some menu commands require further input or confirmation. In these cases, an input window or confirmation pop-up appears on the screen. Type your input in the field(s) where applicable, and then press [ENTER] to confirm the action or [UNDO] to close the popup and cancel the action.
FILE Menu
The FILE menu has these options:
NEW: Creates a new program. In the pop-up menu fields, type an O number (required), a filename (optional), and a file title (optional). For more information about this menu, refer to Create a New Program in the Operation section of this manual.
SET TO RUN: Saves the program and puts it in the active program pane on the left-hand side of the screen. You can also press [MEMORY] to use this function.
SAVE: Saves the program. The programs filename and path change from red to black to show that the changes are saved.
SAVE AS: You can save the file under any filename. The programs new filename and path will change from red to black to show that the changes are saved.
DISCARD CHANGES: Reverts any changes youve made since the file was last saved.
EDIT Menu
The EDIT menu has these options:
UNDO: Reverses the last edit operation, up to the last (40) edit operations. You can also press [UNDO] to use this function.
REDO: Reverses the last undo operation, up to the last (40) undo operations.
115
Program Edit Modes
CUT SELECTION TO CLIPBOARD: Removes the selected lines of code from the program and puts them in the clipboard. Refer to Block Selection to learn how to make a selection.
COPY SELECTION TO CLIPBOARD: Puts the selected lines of code in the clipboard. This operation does not remove the original selection from the program.
PASTE FROM CLIPBOARD: Puts a copy of the clipboard contents below the current line. This does not remove the clipboard contents.
SEARCH Menu
The SEARCH menu gives you access to the FIND AND REPLACE TEXT function. This function lets you quickly find code in the program and optionally replace it. To use it:
NOTE: This function searches for program code, not text. You cannot use this function to find text strings (like comments).
F5.4: Find and Replace Menu Example: [1] Text to Find, [2] Replacement Text, [3] Search Direction, [4] Find Option, [5] Replace Option, [6] Find and Replace Option, [7] Replace all Option
Specify Your Find / Replace Code
1. Press [ENTER] in the editor pull-down menu to open the FIND AND REPLACE TEXT menu. Use the cursor arrow keys to move between the fields in the menu.
2. In the Find field, Type the code you want to search for.
3. If you want to replace some or all of the found code, type the replacement code in the Replace field.
1
2
3
4
5
6
7
116
Programming
4. Use the [LEFT] and [RIGHT] cursor arrow keys to choose the search direction. Forward searches the program below the cursor position, Backward searches the program above the cursor position.
After you specify at least the code that you want to search for and the direction you want to search, press the function key for the search mode that you want to use:
Find Code ( [F1])
Press [F1] to find the search term.
The control searches the program in the specified direction and highlights the first occurrence of the search term. Each time you press [F1], the control searches for the next occurrence of the search term, in the search direction that you specified, until it reaches the end of the program.
Replace Code ( [F2])
After the search function finds an occurrence of your search term, you can press [F2] to replace that code with the contents of the Replace field.
NOTE: If you press [F2] with no text in the Replace field, the control deletes that occurrence of your search term.
Find and Replace( [F3])
Press [F3] instead of [F1] to start the find and replace operation. For each occurrence of your search term, press [F3] if you want to replace it with the text in the Replace field.
Replace All( [F4])
Press [F4] to replace all of the search term occurrences in (1) step. You cannot undo this.
MODIFY Menu
The MODIFY menu has commands that let you make quick changes to an entire program, or to selected lines within a program.
NOTE: You cannot use [UNDO] to reverse MODIFY operations. The operations also automatically save the program. If you are not sure you want to keep the changes that you make, be sure to save a copy of the original program.
REMOVE ALL LINE NUMBERS: Automatically removes all N-code line numbers from the program or the selected program blocks.
117
Program Edit Modes
RENUMBER ALL LINES: Automatically adds N-code line numbers to the program or the selected program blocks. Enter the line number you want to start with and the increment to use between line numbers, then press [ENTER] to continue or press [UNDO] to cancel and to return to the editor.
REVERSE + AND - SIGNS: Changes positive values for selected address codes to negative, or negative values to positive. Press the letter key for the address codes that you want to reverse to toggle selections in the pop-up menu. Press [ENTER] to execute the command or [CANCEL] to return to the editor.
F5.5: Reverse Plus and Minus Signs Menu
REVERSE X AND Y: Changes the X address codes in the program to Y address codes, and changes Y address codes to X address codes.
118
Programming
5.3 Basic Programming A typical CNC program has (3) parts:
1. Preparation: This portion of the program selects the work and tool offsets, selects the cutting tool, turns on the coolant, sets spindle speed, and selects absolute or incremental positioning for axis motion.
2. Cutting: This portion of the program defines the tool path and feed rate for the cutting operation.
3. Completion: This portion of the program moves the spindle out of the way, turns off the spindle, turns off the coolant, and moves the table to a position from where the part can be unloaded and inspected.
This is a basic program that makes a 0.100" (2.54 mm) deep cut with Tool 1 in a piece of material along a straight line path from X = 0.0, Y = 0.0 to X = - 4.0, Y = - 4.0.
NOTE: A program block can contain more than one G-code, as long as those G-codes are from different groups. You cannot place two G-codes from the same group in a program block. Also note that only one M-code per block is allowed.
% O40001 (Basic program) ; (G54 X0 Y0 is top right corner of part) ; (Z0 is on top of the part) ; (T1 is a 1/2" end mill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G17 G40 G49 G54 (Safe startup) ; X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 F20. Z-0.1 (Feed to cutting depth) ; X-4. Y-4. (linear motion) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
119
Basic Programming
5.3.1 Preparation
These are the preparation code blocks in the sample program O40001:
Preparation Code Block Description
% Denotes the beginning of a program written in a text editor.
O40001 (Basic program) ; O40001 is the name of the program. Program naming convention follows the Onnnnn format: The letter O, or o is followed by a 5-digit number.
(G54 X0 Y0 is top right corner of part) ; Comment
(Z0 is on top of the part) ; Comment
(T1 is a 1/2" end mill) ; Comment
(BEGIN PREPARATION BLOCKS) ; Comment
T1 M06 (Select tool 1) ; Selects tool T1 to be used. M06 commands the tool changer to load Tool 1 (T1) into the spindle.
G00 G90 G17 G40 G49 G54 (Safe startup) ; This is referred to as a safe startup line. It is good machining practice to place this block of code after every tool change. G00 defines axis movement following it to be completed in Rapid Motion mode. G90 defines axis movements following it to be completed in absolute mode (refer to page 122 for more information). G17 defines the cutting plane as the XY plane. G40 cancels Cutter Compensation. G49 cancels tool length compensation. G54 defines the coordinate system to be centered on the Work Offset stored in G54 on the Offset display.
X0 Y0 (Rapid to 1st position) ; X0 Y0 commands the table to move to the position X = 0.0 and Y = 0.0 in the G54 coordinate system.
S1000 M03 (Spindle on CW) ; M03 turns the spindle on in a clockwise direction. It takes the address code Snnnn, where nnnn is the desired spindle RPM. On machines with a gearbox, the control automatically selects high gear or low gear, based on the commanded spindle speed. You can use an M41 or M42 to override this. Refer to page 352 for more information on these M-codes.
120
Programming
5.3.2 Cutting
These are the cutting code blocks in the sample program O40001:
5.3.3 Completion
These are the completion code blocks in the sample program O40001:
G43 H01 Z0.1 (Tool offset 1 on) ; G43 H01 turns on Tool Length Compensation +. The H01 specifies to use the length stored for Tool 1 in the Tool Offset display. Z0.1 commands the Z Axis to Z=0.1.
M08 (Coolant on) ; M08 commands the coolant to turn on.
Preparation Code Block Description
Cutting Code Block Description
G01 F20. Z-0.1 (Feed to cutting depth) ; G01 F20. defines axis movements after it to be completed in a straight line. G01 requires the address code Fnnn.nnnn. The address code F20. specifies that the feed rate for the motion is 20" (508 mm) / min. Z-0.1 commands the Z Axis to Z = - 0.1.
X-4. Y-4. (linear motion) ; X-4. Y-4. commands the X Axis to move to X = - 4.0 and commands the Y Axis to move to Y = - 4.0.
Completion Code Block Description
G00 Z0.1 M09 (Rapid retract, Coolant off) ; G00 commands the axis motion to be completed in rapid motion mode. Z0.1 Commands the Z Axis to Z = 0.1. M09 commands the coolant to turn off.
G53 G49 Z0 M05 (Z home, Spindle off) ; G53 defines axis movements after it to be with respect to the machine coordinate system. G49 cancels tool length compensation. Z0 is a command to move to Z = 0.0. M05 turns the spindle off.
G53 Y0 (Y home) ; G53 defines axis movements after it to be with respect to the machine coordinate system. Y0 is a command to move to Y = 0.0.
121
Basic Programming
5.3.4 Absolute vs. Incremental Positioning (G90, G91)
Absolute (G90) and incremental positioning (G91) define how the control interprets axis motion commands.
When you command axis motion after a G90 code, the axes move to that position relative to the origin of the coordinate system currently in use.
When you command axis motion after a G91, the axes move to that position relative to the current position.
Absolute programming is useful in most situations. Incremental programming is more efficient for repetitive, equally spaced cuts.
Figure F5.6 shows a part with 5 equally spaced 0.25" (13 mm) diameter holes. The hole depth is 1.00" (25.4 mm) and the spacing is 1.250" (31.75 mm) apart.
F5.6: Absolute / Incremental Sample Program. G54 X0. Y0. for Incremental [1], G54 for Absolute [2]
Below are two example programs that drill the holes as shown in the drawing, with a comparison between absolute and incremental positioning. We start the holes with a center drill, and finish drilling the holes with a 0.250" (6.35 mm) drill bit. We use a 0.200" (5.08 mm) depth of cut for the center drill and 1.00" (25.4 mm) depth of cut for the 0.250" drill. G81, Drill Canned Cycle, is used to drill the holes.
M30 (End program) ; M30 ends the program and moves the cursor on the control to the top of the program.
% Denotes the end of a program written in a text editor.
Completion Code Block Description
7.500
1 .0
0 0
1.250 1.250 1.250 1.250 1.250 0.25
0 .5
0 0
21
122
Programming
F5.7: Mill Incremental Positioning Example.
% O40002 (Incremental ex-prog) ; N1 (G54 X0 Y0 is center left of part) ; N2 (Z0 is on top of the part) ; N3 (T1 is a center drill) ; N4 (T2 is a drill) ; N5 (T1 PREPARATION BLOCKS) ; N6 T1 M06 (Select tool 1) ; N7 G00 G90 G40 G49 G54 (Safe startup) ; N8 X0 Y0 (Rapid to 1st position) ; N9 S1000 M03 (Spindle on CW) ; N10 G43 H01 Z0.1(Tool offset 1 on) ; N11 M08(Coolant on) ; N12 (T1 CUTTING BLOCKS) ; N13 G99 G91 G81 F8.15 X1.25 Z-0.3 L5 ; N14 (Begin G81, 5 times) ; N15 G80 (Cancel G81) ; N16 (T1 COMPLETION BLOCKS) ; N17 G00 G90 G53 Z0. M09 (rapid retract, clnt off); N18 M01 (Optional stop) ; N19 (T2 PREPARATION BLOCKS) ; N20 T2 M06 (Select tool 2) ; N21 G00 G90 G40 G49 (Safe startup) ; N22 G54 X0 Y0 (Rapid to 1st position) ; N23 S1000 M03 (Spindle on CW) ;
R
X0. Y0.
1.250 TYP
123
Basic Programming
N24 G43 H02 Z0.1(Tool offset 2 on) ; N25 M08(Coolant on) ; N26 (T2 CUTTING BLOCKS) ; N27 G99 G91 G81 F21.4 X1.25 Z-1.1 L5 ; N28 G80 (Cancel G81) ; N29 (T2 COMPLETION BLOCKS) ; N30 G00 Z0.1 M09 (Rapid retract, clnt off) ; N31 G53 G90 G49 Z0 M05 (Z home, spindle off) ; N32 G53 Y0 (Y home) ; N33 M30 (End program) ; %
F5.8: Mill Absolute Positioning Example
% O40003 (Absolute ex-prog) ; N1 (G54 X0 Y0 is center left of part) ; N2 (Z0 is on top of the part) ; N3 (T1 is a center drill) ; N4 (T2 is a drill) ; N5 (T1 PREPARATION BLOCKS) ; N6 T1 M06 (Select tool 1) ; N7 G00 G90 G40 G49 G54 (Safe startup) ; N8 X1.25 Y0 (Rapid to 1st position) ; N9 S1000 M03 (Spindle on CW) ; N10 G43 H01 Z0.1 (Tool offset 1 on) ; N11 M08 (Coolant on) ; N12 (T1 CUTTING BLOCKS) ;
R
X0. Y0.
1.250 2.500
3.750
5.000
6.250
124
Programming
N13 G99 G81 F8.15 X1.25 Z-0.2 ; N14 (Begin G81, 1st hole) ; N15 X2.5 (2nd hole) ; N16 X3.75 (3rd hole) ; N17 X5. (4th hole) ; N18 X6.25 (5th hole) ; N19 G80 (Cancel G81) ; N20 (T1 COMPLETION BLOCK) ; N21 G00 G90 G53 Z0. M09 (Rapid retract, clnt off); N22 M01 (Optional Stop) ; N23 (T2 PREPARATION BLOCKS) ; N24 T2 M06 (Select tool 2) ; N25 G00 G90 G40 G49 (Safe startup) ; N26 G54 X1.25 Y0 (Rapid to 1st position) ; N27 S1000 M03 (Spindle on CW) ; N28 G43 H02 Z0.1 (Tool offset 2 on) ; N29 M08 (Coolant on) ; N30 (T2 CUTTING BLOCKS) ; N31 G99 G81 F21.4 X1.25 Z-1. (1st hole) ; N32 X2.5 (2nd hole) ; N33 X3.75 (3rd hole) ; N34 X5. (4th hole) ; N35 X6.25 (5th hole) ; N36 G80 (Cancel G81) ; N37 (T2 COMPLETION BLOCKS) ; N38 G00 Z0.1 M09 (Rapid retract, Clnt off) ; N39 G53 G49 Z0 M05 (Z home, Spindle off) ; N40 G53 Y0 (Y home) ; N41 M30 (End program) ; %
The absolute program method needs more lines of code than the incremental program. The programs have similar preparation and completion sections.
Look at line N13 in the incremental programming example, where the center drill operation begins. G81 uses the loop address code, Lnn, to specify the number of times to repeat the cycle. The address code L5 repeats this process (5) times. Each time the canned cycle repeats, it moves the distance that the optional X and Y values specify. In this program, the incremental program moves 1.25" in X from the current position with each loop, and then does the drill cycle.
For each drill operation, the program specifies a drill depth 0.1" deeper than the actual depth, because motion starts from 0.1" above the part.
In absolute positioning, G81 specifies the drill depth, but it does not use the loop address code. Instead, the program gives the position of each hole on a separate line. Until G80 cancels the canned cycle, the control does the drill cycle at each position.
125
Tool and Work Offset Calls
The absolute positioning program specifies the exact hole depth, because the depth starts at the part surface (Z=0).
5.4 Tool and Work Offset Calls
5.4.1 G43 Tool Offset
The G43 Hnn Tool Length Compensation command should be used after every tool change. It adjusts the Z-Axis position to account for the length of the tool. The Hnn argument specifies which tool length to use. For more information see Setting Tool Offsets on page 105 in the Operation section.
CAUTION: The tool length nn value should match the nn value from the M06 Tnn tool change command to avoid a possible collision.
Setting 15 - H & T Code Agreement controls whether the nn value needs to match in the Tnn and Hnn arguments. If Setting 15 is ON and the Tnn and Hnn do not match, Alarm 332 - H and T Not Matched is generated.
5.4.2 G54 Work Offsets
Work Offsets define where a work piece is located on the table. Work Offsets available are G54-G59, G110-G129, and G154 P1-P99. G110-G129 and G154 P1-P20refer to the same Work Offsets. A useful feature is to set up multiple work pieces on the table and machining multiple parts in one machine cycle. This is accomplished by assigning each work piece to a different Work Offset. For more information, reference the G-code section of this manual. Below is an example of machining multiple parts in one cycle. The program uses M97 Local Sub-Program Call in the cutting operation.
% O40005 (Work offsets ex-prog) ; (G54 X0 Y0 is center left of part) ; (Z0 is on top of the part) ; (T1 is a drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54(Safe startup) ; X0 Y0 ; (Move to first work coordinate position-G54) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ;
126
Programming
M97 P1000 (Call local Subprogram) ; G00 Z3. (Rapid retract) ; G90 G110 G17 G40 G80 X0. Y0. ; (Move to second work coordinate position-G110) ; M97 P1000 (Call local Subprogram) ; G00 Z3. (Rapid Retract) ; G90 G154 P22 G17 G40 G80 X0. Y0. ; (Move to third work coordinate position-G154 P22) ; M97 P1000 (Call local Subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; N1000 (Local subprogram) ; G81 F41.6 X1. Y2. Z-1.25 R0.1 (Begin G81) ; (1st hole) ; X2. Y2. (2nd hole) ; G80 (Cancel G81) ; M99 ; %
5.5 Miscellaneous Codes This section lists frequently used M-codes. Most programs have at least one M-code from each of the following families. Refer to the M-code section of this manual, starting on page 343, for a list of all M-codes with descriptions.
NOTE: You can use only one M-code on each line of the program.
5.5.1 Tool Functions (Tnn)
The Tnn code selects the next tool to be placed in the spindle from the tool changer. The T address does not start the tool change operation; it only selects which tool will be used next. M06 starts a tool change operation; for example, T1M06 puts tool 1 in the spindle.
CAUTION: There is no X or Y motion required before a tool change; however, if the work piece or fixture is large, position X or Y before a tool change to prevent a crash between the tools and the part or fixture.
127
Miscellaneous Codes
You can command a tool change with the X, Y, and Z Axes in any position. The control will bring the Z Axis up to the machine zero position. The control moves the Z Axis to a position above machine zero during a tool change, but it never moves below machine zero. At the end of a tool change, the Z Axis is at machine zero.
5.5.2 Spindle Commands
There are (3) primary spindle M-code commands:
M03 Snnnn commands the spindle to turn clockwise.
M04 Snnnn commands the spindle to turn counter-clockwise.
NOTE: The Snnnn address commands the spindle to turn at nnnn RPM, up to the maximum spindle speed.
M05 commands the spindle to stop.
NOTE: When you command an M05, the control waits for the spindle to stop before the program continues.
5.5.3 Program Stop Commands
There are (2) main M-codes and (1) subprogram M-code to denote the end of a program or subprogram:
M30 - Program End and Rewind ends the program and resets to the beginning of the program. This is the most common way to end a program.
M02 - Program End ends the program and remains at the location of the M02 block of code in the program.
M99 - Subprogram Return or Loop exits the subprogram and resumes the program that called it.
NOTE: If your subprogram does not end with M99, the control gives Alarm 312 - Program End.
128
Programming
5.5.4 Coolant Commands
Use M08 to command standard coolant on. Use M09 to command standard coolant off. Refer to page 347 for more information on these M-codes.
If your machine has Through-Spindle Coolant (TSC), use M88 to command it on, and M89 to command it off.
5.6 Cutting G-codes The main cutting G-codes are categorized into interpolation motion and canned cycles. Interpolation motion cutting codes are broken down into:
G01 - Linear Interpolation Motion
G02 - Clockwise Circular Interpolation Motion
G03 - Counter-Clockwise Circular Interpolation Motion
G12 - Clockwise Circular Pocket Milling
G13 - Counter-Clockwise Circular Pocket Milling
5.6.1 Linear Interpolation Motion
G01 Linear Interpolation Motion is used to cut straight lines. It requires a feedrate, specified with the Fnnn.nnnn address code. Xnn.nnnn, Ynn.nnnn, Znn.nnnn, and Annn.nnn are optional address codes to specify cut. Subsequent axis motion commands will use the feed rate specified by G01 until another axis motion, G00, G02, G03, G12, or G13 is commanded.
Corners can be chamfered using the optional argument Cnn.nnnn to define the chamfer. Corners can be rounded using the optional address code Rnn.nnnn to define the radius of the arc. Refer to page 241 for more information on G01.
5.6.2 Circular Interpolation Motion
G02 and G03 are the G-codes for circular cutting motions. Circular Interpolation Motion has several optional address codes to define the arc or circle. The arc or circle begins cutting from the current cutter position [1] to the geometry specified within the G02/ G03 command.
Arcs can be defined using two different methods. The preferred method is to define the center of the arc or circle with I, J and/or K and to define the end point [3] of the arc with an X, Y and/or Z. The I J K values define the relative X Y Z distances from the starting point [2] to the center of the circle. The X Y Z values define the absolute X Y Z distances from the starting point to the end point of the arc within the current coordinate system. This is also the only method to cut a circle. Defining only the I J K values and not defining the end point X Y Z values will cut a circle.
The other method to cut an arc is to define the X Y Z values for the end point and to define the radius of the circle with an R value.
129
Cutting G-codes
Below are examples of using the two different methods to cut a 2" (or 2 mm) radius, 180 degree, counter-clockwise arc. The tool starts at X0 Y0 [1], moves to the starting point of the arc [2], and cuts the arc to the end point [3]:
F5.9: Arc Cutting Example
Method 1:
% T01 M06 ; ... G00 X4. Y2. ; G01 F20.0 Z-0.1 ; G03 F20.0 I-2.0 J0. X0. Y2. ; ... M30 ; %
Method 2:
% T01 M06 ; ... G00 X4. Y2. ; G01 F20.0 Z-0.1 ; G03 F20.0 X0. Y2. R2. ; ...M30 ; %
Y+
X+ (G54)
R 2.0
23(X0. Y2.) (I-2. J0.)
(G03)
1
(X4. Y2.)
130
Programming
Below is an example of how to cut a 2" (or 2 mm) radius circle:
% T01 M06 ; ... G00 X4. Y2. ; G01 F20.0 Z-0.1 ; G02 F20.0 I2.0 J0. ; ... M30 ; %
5.7 Cutter Compensation Cutter compensation is a method of shifting the tool path so that the actual centerline of the tool moves to either the left or right of the programmed path. Normally, cutter compensation is programmed to shift the tool in order to control feature size. The offset display is used to enter the amount that the tool is to be shifted. The offset can be entered as either a diameter or radius value, depending on Setting 40, for both the geometry and wear values. If diameter is specified, the shift amount is half of the value entered. The effective offset values are the sum of the geometry and wear values. Cutter compensation is only available in the X Axis and the Y Axis for 2D machining (G17). For 3D machining, cutter compensation is available in the X Axis, Y Axis, and Z Axis (G141).
5.7.1 General Description of Cutter Compensation
G41 selects cutter compensation left. This means that the control moves the tool to the left of the programmed path (with respect to the direction of travel) to compensate for the tool radius or diameter defined in the tool offsets table (Refer to Setting 40). G42 selects cutter compensation right, which moves the tool to the right of the programmed path, with respect to the direction of travel.
A G41 or G42 command must have a Dnnn value to select the correct offset number from the radius / diameter offset column. The number to use with D is in the far-left column of the tool offsets table.The value that the control uses for cutter compensation is in the GEOMETRY column under D (if Setting 40 is DIAMETER) or R (if Setting 40 is RADIUS).
If the offset value is negative, cutter compensation operates as though the program specifies the opposite G code. For example, a negative value entered for a G41 will behave as if a positive value was entered for G42. Also, when cutter compensation is active (G41 or G42), you may use only the X-Y plane (G17) for circular motions. Cutter compensation is limited to compensation in only the X-Y plane.
G40 cancels cutter compensation and is the default condition when you power on your machine. When cutter compensation is not active, the programmed path is the same as the center of the cutter path. You may not end a program (M30, M00, M01, or M02) with cutter compensation active.
131
Cutter Compensation
The control operates on one motion block at a time. However, it will look ahead at the next (2) blocks that have X or Y motions. The control checks these (3) blocks of information for interference. Setting 58 controls how this part of cutter compensation works. Available Setting 58 values are Fanuc or Yasnac.
If Setting 58 is set to Yasnac, the control must be able to position the side of the tool along all of the edges of the programmed contour without overcutting the next two motions. A circular motion joins all of the outside angles.
If Setting 58 is set to Fanuc, the control does not require that the tool cutting edge be placed along all edges of the programmed contour, preventing overcutting. However the control will generate an alarm if the cutters path is programmed so that it will overcut. The control joins outside angles less than or equal to 270 degrees with a sharp corner. It joins outside angles of more than 270 degrees with an extra linear motion.
These diagrams show how cutter compensation works for the possible values of Setting 58. Note that a small cut of less than the tool radius and at a right angle to the previous motion will work only with the Fanuc setting.
F5.10: Cutter Compensation, YASNAC Style,G41 with a Positive Tool Diameter or G42 with a Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end of the tool path.
1
2
3
4
G40
G41 / G42
YASNAC, G41+ / G42-
S S
132
Programming
F5.11: Cutter Compensation, YASNAC Style, G42 with a Positive Tool Diameter or G41 with a Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end of the tool path.
F5.12: Cutter Compensation, FANUC Style, G41 with a Positive Tool Diameter or G42 with a Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end of the tool path.
G41 / G42
G40
1
2
3
4
YASNAC, G42+ / G41-
S
S
1
2
3
4S
S
G40
G41 / G42
FANUC, G41+ / G42-
133
Cutter Compensation
F5.13: Cutter Compensation, FANUC Style, G42 with a Positive Tool Diameter or G41 with a Negative Tool Diameter: [1] Tool Path Actual Center, [2] Programmed Tool Path, [3] Start Point, [4] Cutter Compensation. G41 / G42 and G40 are commanded at the start and end of the tool path.
5.7.2 Entry and Exit from Cutter Compensation
When entering and exiting cutter compensation, or when changing from left side to right side compensation, there are special considerations to be aware of. Cutting should not be performed during any of these moves. To activate cutter compensation, a nonzero D code must be specified with either G41 or G42 and G40 must be specified in the line that cancels cutter compensation. In the block that turns on cutter compensation, the starting position of the move is the same as the programmed position, but the ending position will be offset, to either the left or right of the programmed path, by the amount entered in the, radius/diameter, offset column.
In the block that turns off cutter compensation, the starting point is offset and the ending point is not offset. Similarly, when changing from left to right or right to left side compensation, the starting point of the move needed to change cutter compensation direction will be offset to one side of the programmed path and end at a point that is offset to the opposite side of the programmed path. The result of all this is that the tool moves through a path that may not be the same as the intended path or direction.
If cutter compensation is turned on or off in a block without any X-Y move, there is no change made to cutter compensation until the next X or Y move is encountered. To exit from cutter compensation, you must specify G40.
You should always turn off cutter compensation in a move that clears the tool away from the part being cut. If a program is terminated with cutter compensation still active, an alarm is generated. In addition, you cannot turn cutter compensation on or off during a circular move (G02 or G03); otherwise an alarm will be generated.
1
2
3
4
FANUC, G42+ / G41-
G40
G41 / G42
S S
134
Programming
An offset selection of D0 will use zero as the offset value and have the same effect as turning off cutter compensation. If a new D value is selected while cutter compensation is already active, the new value will take effect at the end of the proceeding move. You cannot change the D value or change sides during a circular motion block.
When turning on cutter compensation in a move that is followed by a second move at an angle of less than 90 degrees, there are two ways of computing the first motion: cutter compensation type A and type B (Setting 43). Type A is the default in Setting 43 and is what is normally needed; the tool moves directly to the offset start point for the second cut. Type B is used when clearance around a fixture of clamp is needed, or in rare cases when part geometry demands it. The diagrams in this section illustrate the differences between type A and type B for both Fanuc and Yasnac settings (Setting 58).
Improper Cutter Compensation Application
F5.14: Improper Cutter Compensation: [1] Move is less than cutting comp radius, [2] Workpiece, [3] Tool.
NOTE: A small cut of less than tool radius and at a right angle to the previous motion will only work with the Fanuc setting. A cutter compensation alarm will be generated if the machine is set to the Yasnac setting.
5.7.3 Feed Adjustments in Cutter Compensation
When using cutter compensation in circular moves, there is the possibility of speed adjustments to what has been programmed. If the intended finish cut is on the inside of a circular motion, the tool should be slowed down to ensure that the surface feed does not exceed what was intended by the programmer. There are problems, however, when the speed is slowed by too much. For this reason, Setting 44 is used to limit the amount by which the feed is adjusted in this case. It can be set between 1% and 100%. If set to 100%, there will be no speed changes. If set to 1%, the speed can be slowed to 1% of the programmed feed.
When the cut is on the outside of a circular motion, there is no speed-up adjustment made to the feed rate.
1
2
3
135
Cutter Compensation
Cutter Compensation Entry (Yasnac)
F5.15: Cutter Compensation Entry (Yasnac) Type A and B: [1] Programmed Path, [2] Tool Center Path, [r] Tool Radius
r r
G42 G42
r r
r
G42 G42
TYPE A TYPE B
r
1
1
2
2
1
1
2
2
136
Programming
Cutter Compensation Entry (Fanuc style)
F5.16: Cutter Compensation Entry (Fanuc style) Type A and B: [1] Programmed Path, [2] Tool Center Path, [r] Tool Radius
5.7.4 Circular Interpolation and Cutter Compensation
In this section, the usage of G02 (Circular Interpolation Clockwise), G03 (Circular Interpolation Counterclockwise) and Cutter Compensation (G41: Cutter Compensation Left, G42: Cutter Compensation Right) is described.
Using G02 and G03, we can program the machine to cut circular moves and radii. Generally, when programming a profile or a contour, the easiest way to describe a radius between two points is with an R and a value. For complete circular moves (360 degrees), an I or a J with a value must be specified. The circle section illustration will describe the different sections of a circle.
By using cutter compensation in this section, the programmer will be able to shift the cutter by an exact amount and be able to machine a profile or a contour to the exact print dimensions. By using cutter compensation, programming time and the likelihood of a programming calculation error is reduced due to the fact that real dimensions can be programmed, and part size and geometry can be easily controlled.
TYPE A TYPE B
G42 G42
G42 G42
1
1
2
2
1
2 r
r r
r
r
r 1
2 r
r
r r
137
Cutter Compensation
Here are a few rules about cutter compensation that you must follow closely for successful machining operations. Always refer to these rules when you write your programs.
1. Cutter compensation must be turned ON during a G01 X,Y move that is equal to or greater than the cutter radius, or the amount being compensated.
2. When an operation using cutter compensation is done, the cutter compensation will need to be turned OFF, using the same rules as the turn ON process, i.e., what is put in must be taken out.
3. In most machines, during cutter compensation, a linear X,Y move that is smaller than the cutter radius may not work. (Setting 58 - set to Fanuc - for positive results.)
4. Cutter compensation cannot be turned ON or OFF in a G02 or G03 arc movement.
5. With cutter compensation active, machining an inside arc with a radius less than what is defined by the active D value causes the machine to alarm. Can not have too big of a tool diameter if the radius of arc is too small.
F5.17: Circle Sections
This illustration shows how the tool path is calculated for the cutter compensation. The detail section shows the tool in the starting position and then in the offset position as the cutter reaches the workpiece.
138
Programming
F5.18: Circular Interpolation G02 and G03: [1] 0.250" diameter endmill, [2] Programmed path, [3] Center of Tool, [4] Start Position, [5] Offset Tool Path.
Programming exercise showing tool path.
This program uses cutter compensation. The toolpath is programmed to the centerline of the cutter. This is also the way the control calculates for cutter compensation.
% O40006 (Cutter comp ex-prog) ; (G54 X0 Y0 is at the lower left of part corner) ; (Z0 is on top of the part) ; (T1 is a .250 dia endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; X-1. Y-1. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1(Tool offset 1 on) ; M08(Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-1. F50. (Feed to cutting depth) ; G41 G01 X0 Y0 D01 F50. (2D Cutter Comp left on) ; Y4.125 (Linear motion) ; G02 X0.25 Y4.375 R0.375 (Corner rounding) ; G01 X1.6562 (Linear motion) ; G02 X2. Y4.0313 R0.3437 (Corner rounding) ; G01 Y3.125 (Linear motion) ; G03 X2.375 Y2.75 R0.375 (Corner rounding) ;
X0. Y0.
X1. Y1.
R .375
R .5625
X0. Y0.
R .3437
R .375 R .500
1
2 34
5
139
Canned Cycles
G01 X3.5 (Linear motion) ; G02 X4. Y2.25 R0.5 (Corner rounding) ; G01 Y0.4375 (Linear motion) ; G02 X3.4375 Y-0.125 R0.5625 (Corner rounding) ; G01 X-0.125 (Linear motion) ; G40 X-1. Y-1. (Last position, cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
5.8 Canned Cycles Canned cycles are G-codes that do repetitive operations such as drilling, tapping, and boring. You define a canned cycle with alphabetic address codes. While the canned cycle is active, the machine does the defined operation every time you command a new position, unless you specify not to.
5.8.1 Drilling Canned Cycles
All four drill canned cycles can be looped in G91, Incremental Programming mode.
The G81 Drill Canned Cycle is the basic drilling cycle. It is used for drilling shallow holes or for drilling with Through Spindle Coolant (TSC).
The G82 Spot Drill Canned Cycle is the same as the G81 Drill Canned Cycle except that it can dwell at the bottom of the hole. The optional argument Pn.nnn specifies the duration of the dwell.
The G83 Normal Peck Drilling Canned Cycle is typically used for drilling deep holes. Peck depth can be variable or constant and always incremental. Qnn.nnn. Do not use a Q value when programming with I, J, and K.
The G73 High-Speed Peck Drilling Canned Cycle is the same as the G83 Normal Peck Drilling Canned Cycle except that tool peck retraction is specified with Setting 22 - Can Cycle Delta Z. Peck drilling cycles are advised for hole depths greater than 3 times the diameter of the drill bit. The initial peck depth, defined by I, should generally be a depth of 1 tool diameter.
5.8.2 Tapping Canned Cycles
There are two tapping canned cycles. All tapping canned cycles can be looped in G91, Incremental Programming mode.
The G84 Tapping Canned Cycle is the normal tapping cycle. It is used for tapping right-hand threads.
G74 Reverse Tap Canned Cycle is the reverse thread tapping cycle. It is used for tapping left-hand threads.
140
Programming
5.8.3 Boring and Reaming Cycles
There are (5) boring canned cycles. All boring canned cycles can be looped in G91, Incremental Programming mode.
The G85 Boring Canned Cycle is the basic boring cycle. It will bore down to the desired height and return to the specified height.
The G86 Bore and Stop Canned Cycle is the same as the G85 Boring Canned Cycle except that the spindle will stop at the bottom of the hole before returning to the specified height.
The G89 Bore In, Dwell, Bore Out Canned Cycle is the same as G85 except that there is a dwell at the bottom of the hole, and the hole continues to be bored at the specified feed rate as the tool returns to the specified position. This differs from other boring canned cycles where the tool either moves in Rapid Motion or hand jog to return to the return position.
The G76 Fine Boring Canned Cycle bores the hole to the specified depth and after boring the hole, moves to clear the tool from hole before retracting.
The G77 Back Bore Canned Cycle works similar to G76 except that before beginning to bore the hole, it moves the tool to clear the hole, moves down into the hole, and bores to the specified depth.
5.8.4 R Planes
R Planes, or return planes, are G-code commands that specify the Z-Axis return height during canned cycles. The R Plane G-codes remain active for the duration of the canned cycle it is used with. G98 Canned Cycle Initial Point Return moves the Z axis to the height of the Z axis prior to the canned cycle. G99 Canned Cycle R Plane Return moves the Z axis to the height specified by the Rnn.nnnn argument specified with the canned cycle. For additional information, refer to the G and M-code section.
141
Special G-codes
5.9 Special G-codes Special G-codes are used for complex milling. These include:
Engraving (G47)
Pocket Milling (G12, G13, and G150)
Rotation and Scaling (G68, G69, G50, G51)
Mirror Image (G101 and G100)
5.9.1 Engraving
The G47 Text Engraving G-code lets you engrave text (including some ASCII characters) or sequential serial numbers with a single block of code.
Refer to page 263 for more information on engraving.
5.9.2 Pocket Milling
There are two types of pocket milling G-codes on the Haas control:
Circular Pocket Milling is performed with the G12 Clockwise Circular Pocket Milling Command and the G13 Counter-Clockwise Circular Pocket Milling Command G-codes.
The G150 General Purpose Pocket Milling uses a subprogram to machine user-defined pocket geometries.
Make sure that the subprogram geometry is a fully closed shape. Make sure that the X-Y starting point in the G150 command is within the boundary of the fully closed shape. Failure to do so may cause Alarm 370 - Pocket Definition Error.
Refer to page 252 for more information on the pocket milling G-codes.
5.9.3 Rotation and Scaling
NOTE: You must purchase the rotation and scaling option to use these features. A 200-hour option tryout is also available.
G68 Rotation is used to rotate the coordinate system in the desired plane. You can use this feature together with G91 Incremental Programming mode to machine symmetrical patterns. G69 cancels rotation.
G51 applies a scaling factor to the positioning values in blocks after the G51 command. G50 cancels scaling. You can use scaling together with rotation, but be sure to command scaling first.
Refer to page 274 for more information on the rotation and scaling G-codes.
142
Programming
5.9.4 Mirror Image
G101 Enable Mirror Image will mirror axis motion about the specified axis. Settings 45-48, 80 and 250 enable mirror imaging about the X, Y, Z, A, B, and C axes. The mirror pivot point along an axis is defined by the Xnn.nn argument. This can be specified for a Y Axis that is enabled on the machine and in the settings by using the axis to mirror as the argument. G100 cancels G101.
Refer to page 301 for more information on the mirror image G-codes.
5.10 Subprograms Subprograms:
Are usually a series of commands that are repeated several times in a program.
Are written in a separate program, instead of repeating the commands many times in the main program.
Are called in the main program with an M97 or M98 and a P code.
Can include an L for repeat count. The subprogram call repeats L times before the main program continues with the next block.
When you useM97:
The P code (nnnnn) is the same as the block number (Nnnnnn) of the local subprogram.
The subprogram must be within the main program
When you use M98:
The P code (nnnnn) is the same as the program number (Onnnnn) of the subprogram.
The subprogram must reside in the active directory, or in a location specified in Settings 251/252. Refer to page 389 for more information on subprogram search locations.
Canned Cycles are the most common use of subprograms. For example, you might put the X and Y locations of a series of holes in a separate program. Then you can call that program as a subprogram with a canned cycle. Instead of writing the locations once for each tool, you write the locations only once for any number of tools.
143
Subprograms
5.10.1 External Subprogram (M98)
An external subprogram is a separate program that the main program references. Use M98 to command (call) an external subprograms, with Pnnnnn to refer to the program number you want to call.
When your program calls an M98 subprogram, the control looks for the subprogram in the main programs directory. If the control cannot find the subprogram in the main programs directory, it then looks in the location specified in Setting 251. Refer to page for more information. An alarm occurs if the control cannot find the subprogram.
In this example, the subprogram (program O40008) specifies (8) positions. It also includes a G98 command at the move between positions 4 and 5. This causes the Z Axis to return to the initial starting point instead of the R plane, so the tool passes over the workholding.
The main program (Program O40007) specifies (3) different canned cycles:
1. G81 Spot drill at each position
2. G83 Peck drill at each position
3. G84 Tap at each position
Each canned cycle calls the subprogram and does the operation at each position.
% O40007 (External subprogram ex-prog) ; (G54 X0 Y0 is center left of part) ; (Z0 is on top of the part) ; (T1 is a spot drill) ; (T2 is a drill) ; (T3 is a tap) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X1.5 Y-0.5 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z1. (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 G99 Z-0.14 R0.1 F7. (Begin G81) ; M98 P40008 (Call external subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; M01 (Optional stop) ; (BEGIN PREPARATION BLOCKS) ; T2 M06 (Select tool 2) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X1.5 Y-0.5 (Rapid to 1st position) ;
144
Programming
S2082 M03 (Spindle on CW) ; G43 H02 Z1. (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G83 G99 Z-0.75 Q0.2 R0.1 F12.5 (Begin G83) ; M98 P40008 (Call external subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; M01 (Optional stop) ; (BEGIN PREPARATION BLOCKS) ; T3 M06 (Select tool 3) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X1.5 Y-0.5 (Rapid to 1st position) ; S750 M03 (Spindle on CW) ; G43 H03 Z1. (Tool offset 3 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G84 G99 Z-0.6 R0.1 F37.5 (Begin G84) ; M98 P40008 (Call external subprogram); (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
145
Subprograms
F5.19: Subprogram Pattern
Subprogram
% O40008 (Subprogram) ; X0.5 Y-0.75 (2nd position) ; Y-2.25 (3rd position) ; G98 X1.5 Y-2.5 (4th position) ; (Initial point return) ; G99 X3.5 (5th position) ; (R plane return) ; X4.5 Y-2.25 (6th position); Y-0.75 (7th position) ; X3.5 Y-0.5 (8th position) ; M99 (sub program return or loop) ; %
1 2
3 4 5 6
78
G98
G99
Y0.
X 0
.
2 x 0
.5 0
0
2 x 3
.5 0
0
2 x 4
.5 0
0
2 x 1
.5 0
0
G98
2x 0.500
2x 2.250 2x 2.500
2x 0.750 1 2
3 4 5 6
78
146
Programming
5.10.2 Local Subprogram (M97)
A local subprogram is a block of code in the main program that is referenced several times by the main program. Local subprograms are commanded (called) using an M97 and Pnnnnn, which refers to the N line number of the local subprogram.
The local subprogram format is to end the main program with an M30 then enter the local subprograms after the M30. Each subprogram must have an N line number at the start and a M99 at the end that will send the program back to the next line in the main program.
Local Subprogram Example
% O40009 (Local subprogram ex-prog) ; (G54 X0 Y0 is at the top left corner of part) ; (Z0 is on top of the part) ; (T1 is a spot drill) ; (T2 is a drill) ; (T3 is a tap) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54(Safe startup) ; X1.5 Y-0.5 (Rapid to 1st position) ; S1406 M03 (Spindle on CW) ; G43 H01 Z1.(Tool offset 1 on) ; M08(Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 G99 Z-0.26 R0.1 F7. (Begin G81) ; M97 P1000 (Call local subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; M01 (Optional stop) ; (BEGIN PREPARATION BLOCKS) ; T2 M06 (Select tool 2) ; G00 G90 G40 G49 (Safe startup) ; G54 X1.5 Y-0.5 (Rapid back to 1st position) ; S2082 M03 (Spindle on CW) ; G43 H02 Z1. (Tool offset 2 on) ; M08(Coolant on) ; (BEGIN CUTTING BLOCKS) ; G83 G99 Z-0.75 Q0.2 R0.1 F12.5 (Begin G83) ; M97 P1000 (Call local subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; M01 (Optional stop) ;
147
Subprograms
(BEGIN PREPARATION BLOCKS) ; T3 M06 (Select tool 3) ; G00 G90 G40 G49 (Safe startup) ; G54 X1.5 Y-0.5 ; (Rapid back to 1st position) ; S750 M03 (Spindle on CW) ; G43 H03 Z1.(Tool offset 3 on) ; M08(Coolant on) ; (BEGIN CUTTING BLOCKS) ; G84 G99 Z-0.6 R0.1 F37.5 (Begin G84) ; M97 P1000 (Call local subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; (LOCAL subprogram) ; N1000 (Begin local subprogram) ; X0.5 Y-0.75 (2nd position) ; Y-2.25 (3rd position) ; G98 X1.5 Y-2.5 (4th position) ; (Initial point return) ; G99 X3.5 (5th position) ; (R-plane return) ; X4.5 Y-2.25 (6th position) ; Y-0.75 (7th position) ; X3.5 Y-0.5 (8th position) ; M99 ; %
5.10.3 External Subprogram Canned Cycle Example (M98)
% O40010 (M98_External sub canned cycle ex) ; (G54 X0 Y0 is at the top left of the part) ; (Z0 is on top of the part) ; (T1 is a spot drill) ; (T2 is a drill) ; (T3 is a tap) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54(Safe startup) ; X0.565 Y-1.875 (Rapid to 1st position) ; S1275 M03 (Spindle on CW) ; G43 H01 Z0.1 (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ;
148
Programming
G82 Z-0.175 P0.03 R0.1 F10. (Begin G82) ; M98 P40011 (Call external subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; M01 (optional stop) ; (BEGIN PREPARATION BLOCKS) ; T2 M06 (Select tool 2) ; G00 G90 G40 G49 (Safe startup) ; G54 X0.565 Y-1.875 ; (Rapid back to 1st position) ; S2500 M03 (Spindle on CW) ; G43 H02 Z0.1 (Tool offset 2 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G83 Z-0.72 Q0.175 R0.1 F15. (Begin G83) ; M98 P40011 (Call external subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; M01 (optional stop) ; (BEGIN PREPARATION BLOCKS) ; T3 M06 (Select tool 3) ; G00 G90 G40 G49 (Safe startup) ; G54 X0.565 Y-1.875 ; (Rapid back to 1st position) ; S900 M03 (Spindle on CW) ; G43 H03 Z0.1 (Tool offset 3 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G84 Z-0.6 R0.2 F56.25 (Begin G84) ; M98 P40011 (Call external subprogram) ; G80 G00 Z1. M09 (Cancel canned cycle) ; (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
149
Subprograms
Subprogram
% O40011 (M98_Subprogram X,Y Locations) ; X1.115 Y-2.75 (2nd position) ; X3.365 Y-2.875 (3rd position) ; X4.188 Y-3.313 (4th position) ; X5. Y-4. (5th position) ; M99 ; %
5.10.4 External Subprograms With Multiple Fixtures (M98)
Subprograms can be useful when cutting the same part in different X and Y locations within the machine. For example, there are six vises mounted on the table. Each of these vises uses a new X, Y zero. They are referenced in the program using the G54 through G59 work offsets in absolute coordinates. Use an edge finder or an indicator to establish the zero point on each part. Use the part zero set key in the work offset page to record each X, Y location. Once the X, Y zero position for each workpiece is in the offset page, the programming can begin.
The figure shows what this setup would look like on the machine table. For an example, each of these six parts will need to be drilled at the center, X and Y zero.
Main Program
% O40012 (M98_External sub multi fixture); (G54-G59 X0 Y0 is center of each part) ; (G54-G59 Z0 is on top of the part) ; (T1 is a drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54(Safe startup) ; X0 Y0 (Rapid to 1st position) ; S1500 M03 (Spindle on CW) ; G43 H01 Z0.1 (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; M98 P40013 (Call external subprogram) ; G55 (Change work offset) ; M98 P40013 (Call external subprogram) ; G56 (Change work offset) ; M98 P40013 (Call external subprogram) ; G57 (Change work offset) ; M98 P40013 (Call external subprogram) ; G58 (Change work offset) ; M98 P40013 (Call external subprogram) ;
150
Programming
G59 (Change work offset) ; M98 P40013 (Call external subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
F5.20: Subprogram Multiple Fixture Drawing
Subprogram
% O40013 (M98_Subprogram) ; X0 Y0 (Move to zero of work offset) ; G83 Z-1. Q0.2 R0.1 F15. (Begin G83) ; G00 G80 Z0.2 M09 (Cancel canned cycle) ; M99 ; %
5.10.5 Setting Up Search Locations
When program calls a subprogram, the control first looks for the subprogram in the active directory. If the control cannot find the subprogram, the control uses Settings 251 and 252 to determine where to look next. Refer to those settings for more information.
To build a list of search locations in Setting 252:
1. In the Device Manager ([LIST PROGRAM]), select the directory that you want to add to the list.
2. Press [F3].
3. Highlight the SETTING 252 option in the menu, and then press [ENTER].
The control adds the current directory to the list of search locations in Setting 252.
To see the list of search locations, look at the values of Setting 252 on the Settings page.
151
More Information Online
5.11 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
152
Options Programming
Chapter 6: Options Programming
6.1 Introduction In addition to the standard functions included with your machine, you may also have optional equipment with special programming considerations. This section tells you how to program these options.
You can contact your HFO to purchase most of these options, if your machine did not come equipped with them.
6.2 Feature List The Feature List contains both standard and purchasable options.
F6.1: Features Tab
153
Feature List
To access the list:
1. Press [DIAGNOSTIC].
2. Navigate to the Parameters and then the Features tab. (Purchased options are marked in green and their status is set as PURCHASED.)
6.2.1 Purchased Options Enable/Disable
To enable or disable a purchased option:
1. Highlight the option on the FEATURES tab.
2. Press [ENTER] to turn ON/OFF the option.
If the featured option is turned OFF, the option is not available.
6.2.2 Option Tryout
Some options have a 200-hour tryout available. The FEATURES tab Status column shows the options available for tryout.
NOTE: If an option does not have a tryout, the Status column shows FEATURE DISABLED, and you must purchase the option to use it.
To start tryout:
1. Highlight the feature.
2. Press [ENTER]. Press [ENTER] again to disable the option and stop the timer.
The status of the feature changes to TRYOUT ENABLED, and the date column shows the remaining hours left in the tryout period. When the tryout period expires, the status changes to EXPIRED. You cannot extend the tryout time for expired options. You must purchase them to use them.
NOTE: Tryout time is updated only while the option is enabled.
154
Options Programming
6.3 Rotation and Scaling Rotation lets you rotate a pattern to another location or around a circumference. Scaling reduces or enlarges a toolpath or pattern.
6.4 Visual Programming System (VPS) VPS lets you quickly build programs from program templates. To access VPS, press [EDIT] and then select the VPS tab.
F6.2: VPS Starting Screen. [1] Recently Used Templates, [2] Template Directory Window, [3] [ENTER] to Load a Template, [4] [F4] to Switch Between Recently Used and Template Directory.
In the template directory window, you can choose from the PROBING, VPS, or CUSTOM directories. Highlight a directory name and press the [RIGHT] cursor arrow to see the directorys contents.
The VPS starting screen also lets you choose templates you have recently used. Press [F4 ]to change to the Recently Used window and highlight a template from the list. Press [ENTER] to load the template.
1
2
3
4
155
Visual Programming System (VPS)
6.4.1 VPS Example
When you use VPS, you choose a template for the function you want to program, and then enter variables to create a program. The default templates include probing and part features. You can also create custom templates. Contact the Applications department at your HFO for help with custom templates.
In this example, we use a VPS template to program the engraving cycle from the G47 program example in this manual. The G47 description starts on page 263. VPS templates all work in the same way: You first fill in values for the template variables, and you then output a program.
1. Press [EDIT], and then select the VPS tab.
2. Use the cursor arrow keys to highlight the VPS menu option. Press the [RIGHT] cursor arrow key to select the option.
3. Highlight and select the Engraving option from the next menu.
F6.3: VPS Engraving Program Generation Window Example. [1] Variable Illustration, [2] Variables Table, [3] Variable Description Text, [4] Template Illustration, [5] Generate G-code [F4], [6] Run in MDI [CYCLE START].
4. In the Program Generation window, use the [UP] and [DOWN] cursor arrow keys to highlight the variable rows.
1
2
3
4
5 6
156
Options Programming
5. Type a value for the highlighted variable and press ENTER. Press the DOWN cursor arrow key to move to the next variable.
To generate the example engraving cycle, we use these variable values. Note that all of the position values are given in work coordinates.
6. With all of the variables entered, you can press [CYCLE START] to immediately run the program in MDI, or F4 to output the code to either the clipboard or MDI without running the program.
Variable Description Value
WORK_OFFSETS Work Offset Number 54
T Tool Number 1
S Spindle Speed 1000
F Feedrate 15.
M8 Coolant (1 - YES / 0 - NO) 1
X Starting X Position 2.
Y Starting Y Position 2.
R R-Plane Height 0.05
Z Z Depth -0.005
P Text or Serial Number Switch (0 - Text, 1 - Serial Number) 0
J Text Height 0.5
I Text Angle (Degrees from Horizontal) 45.
TEXT Text to Engrave TEXT TO ENGRAVE
157
Rigid Tapping
This VPS template creates a program with the specified variables to engrave the text:
% O11111 ; (Engraving) ; ( TOOL 1 ) ; ( SPINDLE 1000 RPM / FEED 15. ) ; ( DEPTH -0.005 ) ; T1 M06 ; G00 G90 G54 X2. Y2. S1000 M03 ; G43 Z0.05 H1 ; M08 ; G00 G90 G54 X2. Y2. ; ( TEXT ENGRAVING : TEXT TO ENGRAVE ) ; G47 E7.5000 F15. I45. J.5 P0 R0.05 Z-0.005 (TEXT TO ENGRAVE) ; G0 Z0.05 M09 ; M05 ; G91 G28 Z0. ; G91 G28 Y0. ; M01 ( END ENGRAVING ) ; %
6.5 Rigid Tapping This option synchronizes the spindles RPM with the feedrate during a tapping operation.
6.6 M19 Spindle Orientation The Spindle Orientation lets you position the spindle to a programmed angle. This option provides inexpensive, accurate positioning. For more information about M19, refer to page 348.
6.7 High-Speed Machining The Haas high-speed machining option allows faster feedrates and more complex toolpaths. HSM uses a motion algorithm called Acceleration Before Interpolation combined with full look-ahead to provide contouring feeds up to 1200 ipm (30.5 m/min) without risk of distortion to the programmed path. This reduces cycle times, improves accuracy, and smooths motion.
6.8 Additional Memory Options This option expands the on-board solid-state memory and allows the control to store, run, and edit large programs directly at the machine.
158
Options Programming
6.9 Probing You can use an optional probe system to set offsets, check work, measure tools, and check tools. This section describes basic probe use and troubleshooting.
6.9.1 Check Tool Probe
Do these steps to make sure the tool probe operates correctly:
F6.4: Tool Probe Test
1. In MDI mode, run: M59 P2 ; G04 P1.0 ; M59 P3 ;
This turns on tool probe communication, delays one second, and turns on the tool probe. The LED [1] on the tool probe flashes green.
2. Touch the stylus [2].
The machine makes a "beep" sound and the LED becomes red [1]. This tells you that the tool probe is started.
3. Press [RESET] to deactivate the probe.
The probe LED [1] turns off.
1
2
159
Probing
6.9.2 Check Work Probe
Do these steps to make sure the work probe operates correctly:
F6.5: Work Probe Test
1. Select the work probe with a tool change, or manually insert the work probe into the spindle.
2. In MDI mode, run M69 P2 ;
This starts communication with the work probe.
3. in MDI mode: run M59 P3 ;
The probe LED flashes green [1].
4. Touch the stylus [2].
The machine makes a "beep" sound and the LED becomes red [3]. This tells you that the work probe is started.
5. Press [RESET] to deactivate the probe.
The work probe LED turns off [1].
1
2
3
160
Options Programming
6.9.3 Probe Example
You can use a probe to check your part for correct dimensions during the machining process. For example, this program uses the work probe to check for squareness. The program uses G65 to call 9XXXXX macro programs created specifically for probing. You can find more information on these programs in the Renishaw manuals on the web at diy.haascnc.com.
The program does the following:
1. After a tool change, home, and adding tool length compensation, the system turns on the work probe and moves to a safe start location.
2. The probe stylus moves adjacent to the surface at the required Z-Axis point to provide a central start position [1].
3. The cycle makes two measurements, symmetrically about the start position, to establish the surface angle [2], [3].
4. Finally, the probe stylus moves to its safe out position, tuns off the probe, and returns home.
F6.6: Check for Square: [1] Safe Move Position, [2] First Measurement, [3] Second Measurement
(0.0,-0.5,-0.5) (0.0,-0.25,-0.5)
(0.0,-0.75,-0.5)
1 2
3
Z
Y
X
161
Probing
Example:
% O00010 (CHECK FOR SQUARE) ; T20 M06 (PROBE) ; G00 G90 G54 X0. Y0. ; G43 H20 Z6. ; G65 P9832 (WORK PROBE ON) ; G65 P9810 Z-0.5 F100. (SAFE MOVE) ; G65 P9843 Y-0.5 D0.5 A15. (ANGLE MEAS.) ; G65 P9810 Z6. F100. (SAFE OUT) ; G65 P9833 (WORK PROBE OFF) ; G00 G90 G53 Z0. ; M01 ; ; ; ( PART PROGRAM ) ; G00 G90 G54 X0. Y0. ; T2 M06 (1/2" END MILL) ; G00 G90 G43 H02 Z1.5 ; G68 R#189 ; G01 X-2. F50. ; M30 ; %
6.9.4 Probe Use with Macros
Macro statements select and turn on and off the probe the same as M-codes.
T6.1: Probe Macro Values
If you assign the system variable to a viewable global variable, you can see the macro value change in the Macro Vars tab under [CURRENT COMMANDS].
M-Code System Variable Macro Value Probe
M59 P2 ; #12002 1.000000 Tool Probe Selected
M69 P2 ; #12002 0.000000 Work Probe Selected
M59 P3 ; #12003 1.000000 Probe Enable
M69 P3 ; #12003 0.000000 Probe Disable
162
Options Programming
For example,
M59 P3 ; #10003=#12003 ;
The global variable #10003 shows the output from M59 P3 ; as 1.000000. This means that either the tool probe or work probe is on.
6.9.5 Probe Troubleshooting
If you cannot get the tool or work probe to beep or flash, do these steps:
1. In [MDI] mode, run M69 P2 ; to select the spindle work probe or M59 P2 ; to select the table tool probe.
2. Run M59 P3 ; to make the probe flash.
3. To check the I/O values for the probe, press [DIAGNOSTIC] and select the Diagnostics tab, then the I/O tab.
4. Type PROBE and press [F1] to search for I/O items that contain the word probe.
5. Check the table for proper probe values. For example, Output 2 with a value of 0 selects the work probe.
6. If you are using the correct I/O values in your programs, but the probe does not flash or beep, check the batteries in the probes, and then check the wired connections to the control.
6.10 Maximum Spindle Speed This option increases the maximum speed at which you can run the machine spindle.
6.11 Compensation Tables With this option, the control stores a compensation table to correct for small errors in the rotary worm gear, as well as small errors in X, Y, and Z.
Type Numbe
r M-code Name Value Probe
OUTPUT 2 M69 P2 ; PROBE_SELECT_TO_PROBE 0 work
OUTPUT 2 M59 P2 ; PROBE_SELECT_TO_PROBE 1 tool
OUTPUT 3 M69 P3 ; PROBE_ENABLE_TO_PROBE 0 Off
OUTPUT 3 M59 P3 ; PROBE_ENABLE_TO_PROBE 1 flashing
163
Remote Jog Handle
6.12 Remote Jog Handle The Remote Jog Handle (RJH) is an optional accessory that gives you hand-held access to the control for faster and easier setups.
F6.7: Remote Jog Handle [1] Function Keys, [2] Cycle Start Key, [3] Cursor Keys, [4] Feed Hold Key, [5] Screen, [6] Holster, [7] Shuttle Jog Knob, [8] Pulse Jog Knob, [9] Axis Select Knob
This illustration shows these components:
1. Function Soft Keys. These keys have different functions in different modes. The current label appears on the screen above each key. Press the key that corresponds to the function you want to use.
2. Cycle Start. Has the same function as [CYCLE START] on the control pendant.
3. Cursor Arrow Keys. Use these keys to navigate menus and choose jog rates.
4. Feed Hold. Has the same function as [FEED HOLD] on the control pendant.
5. Color LCD display.
6. Holster. To activate the RJH, lift it out of the holster. To deactivate the RJH, put it back into the holster.
7. Shuttle Jog Knob. This spring-loaded knob returns to center when you let it go. The farther from center you move the knob, the faster the selected axis moves.
8. Pulse Jog Knob. This knob works like the jog handle on the control pendant. Each click of the knob moves the selected axis one unit of the selected jog rate.
9. Axis Selector Knob. This knob selects the axis to jog. Each position of the knob selects a different axis. Move the knob all the way to the right to access the auxiliary menu.
1
2
3
4
5
6
7 89
164
Options Programming
Most RJH functions are available in Handle Jog mode. In other modes, the RJH screen displays information about the active or MDI program.
6.12.1 RJH Operation Mode Menu
The operation mode menu lets you quickly select the RJH mode. When you select a mode on the RJH, the control pendant also changes to that mode.
Press the [MENU] function key in most RJH modes to access this menu.
F6.8: RJH Operation Mode Menu Example
Use the [UP] and [DOWN] cursor arrow keys on the RJH to highlight a menu option, and then press the [RIGHT] cursor arrow key to go to that option. The menu options are:
MANUAL - JOGGING puts the RJH and the machine control in HANDLE JOG mode.
TOOL OFFSETS puts the RJH and the machine control in TOOL OFFSET mode.
WORK OFFSETS puts the RJH and the machine control in WORK OFFSETS mode.
AUXILIARY MENU brings up the Auxiliary Menu for the RJH.
UTILITY MENU brings up the Utility Menu for the RJH. This menu contains only diagnostic information.
OPERATION MODE MENU
BACK
> MANUAL - JOGGING > TOOL OFFSETS > WORK OFFSETS > AUXILIARY MENU > UTILITY MENU
^
^
165
Remote Jog Handle
6.12.2 RJH Auxiliary Menu
The RJH auxiliary menu lets you use the built-in flashlight and also control the spindle and coolant. Toggle the flashlight and coolant on and off with the [LIGHT] and [M08] function keys.
Press the [SPNDL] function key to access spindle controls. You can use the function keys to command the spindle to turn clockwise, counterclockwise, or stop.
F6.9: RJH Auxiliary Menu
6.12.3 Tool Offsets with the RJH
This section describes the controls you use on the RJH to set tool offsets. For more information about the process of setting tool offsets, refer to page 105.
To access this function on the RJH, press [OFFSET] on the control pendant and select the Tool Offsets page, or select TOOL OFFSETS from the RJH operation mode menu (refer to page 165).
AUXILIARY MENU
LIGHTSPNDL M08 MENU
FLASH LIGHT: OFF COOLANT: OFF SPINDLE SPEED: 0
166
Options Programming
F6.10: RJH Tool Offsets Screen Example
Use the [LEFT] and [RIGHT] cursor arrow keys to select the jog rate.
Use the [UP] and [DOWN] cursor arrow keys to highlight menu options.
Press the [NEXT] function key to change to the next tool.
To change the tool offset, highlight the TOOL OFFSET field and use the pulse jog knob to change the value.
Use the jog knobs and axis selector knob to touch off the tool. Press the [SETL] function key to record the tool length.
To adjust the tool length, for example, if you want to subtract from the tool length the thickness of the paper you used to touch off the tool:
a) Press the [ADJST] function key.
b) Use the pulse knob to change the value (positive or negative) to add to the tool length.
c) Press the [ENTER] function key.
If your machine has the Programmable Coolant option, you can adjust the spigot position for the tool. Highlight the COOLANT POS field and use the pulse jog knob to change the value. You can use the [M08] function key to turn on the coolant and test the spigot position. Press that function key again to turn off the coolant.
SET TOOL OFFSETS
<> .0001 - .001 - .01 - .1
ADJSTSETL NEXT M08 MENU
TOOL IN SPINDLE: 1
TOOL OFFSET: 1
^
^
LENGTH: 0.0000
COOLANT POS: 1
Z: 0.0000
167
Remote Jog Handle
6.12.4 Work Offsets with the RJH
This section describes the controls you use on the RJH to set work offsets. For more information about the process of setting work offsets, refer to page 104
To access this function on the RJH, press [OFFSET] on the control pendant and select the Work Offsets page, or select WORK OFFSETS from the RJH operation mode menu (refer to page 165).
F6.11: RJH Work Offsets Screen Example
Use the [LEFT] and [RIGHT] cursor arrow keys to select the jog rate.
To change the work offset number, press the [WORKN] function key and use the pulse jog knob to select a new offset number. Press the [ENTER] function key to set the new offset.
Use the jog knobs and the axis selector knob to move the axes. When you reach the offset position in an axis, press the [SET] function key to record the offset position.
To adjust an offset value:
a) Press the [ADJST] function key.
b) Use the pulse knob to change the value (positive or negative) to add to the offset.
c) Press the [ENTER] function key.
Set Work Offsets
<> .0001 - .001 - .01 - .1
ADJSTSET WORKN MENU
Work Off#: G54
X 0.0000 Y 0.0000 Z 0.0000
X 0.0000
168
Options Programming
6.13 4th and 5th Axis Programming F6.12: Axis Motion on an Example Rotary Trunnion Unit: [1] Rotary Axis, [2] Tilt Axis
6.13.1 New Rotary Configuration
When you install a rotary unit to your machine, you must:
Designate the correct rotary model so that the machine control can load the correct parameters.
Assign an axis letter (A, B, or C) to each new axis.
Tell the machine which physical connection (4th or 5th axis) to use for each axis.
You do these tasks on the Rotary Selection page:
1. Press [SETTING].
2. Select the Rotary tab.
NOTE: Make sure the machine is not in Hand Jog mode when you go to the Rotary Selection page. The control does not allow changes to rotary configuration in Hand Jog mode.
When you go to the Rotary Selection page to install a rotary unit for the first time, both the 4th and 5th axes are disabled and have no rotary model selections. This process assigns a rotary model axis, and an axis letter, to the 4th and 5th axes.
360 120
1
2
+ +- -
169
4th and 5th Axis Programming
NOTE: To use Tool Center Point Control (TCPC) and Dynamic Work Offsets (DWO), your axis definitions and rotary installation must match the ANSI standard, where the A, B, and C Axes each rotate about the X, Y, and Z Axes, respectively. Refer to page 333 for more information about TCP. Refer to page 333 for more information about DWO.
F6.13: Rotary Selections Page. [1] Current Rotary Selections, [2] Select New Rotaries Table.
Rotary Model Selection
In this procedure, you select your particular rotary model from the list of models in the control, so that the control can load the correct parameters for that unit. In this example, we have a TR160 unit installed on the table, with the tilt axis parallel to X.
We want to configure both the rotary (platter) and tilt (trunnion) axes. The rotary axis is physically connected to the 5th axis at the control cabinet. We want to designate the rotary axis C. The tilt axis is physically connected to the 4th axis at the control cabinet. We want to designate the tilt axis A.
1. Find the nameplate on your rotary unit. Record the values in the MODEL NO. (model number) and VER (version) fields. On our example nameplate, we find that the model number is TR160, and the version is P4.
F6.14: Example rotary nameplate. [1] Model Number, [2] Version
1
2
1
2
TR160 P4
170
Options Programming
2. On the Rotary Selection page, use the [CURSOR] keys or the jog handle to browse the list of rotary models to find your model.
Dual-axis rotary units have two entries in the list: one for the rotary axis (ROT), and one for the tilt axis (TLT). Be sure to select the rotary model that matches both the model number and version on the nameplate. In the example below, the cursor highlights the rotary axis of the model that matches our example nameplate (TR160-P4-ROT).
F6.15: Rotary Selection Example. [1] Model Column, [2] Name Column, [3] Fifth Axis Column, [4] Fourth Axis Column, [5] Current Selection (Highlighted).
3. Press [ENTER]. The Select Table Orientation window appears.
F6.16: The Select Table Orientation Window. [1] Orientation Example Image, [2] Axis Configuration (Letter Assignment), [3] Physical Connection, [4] The Rotary Configuration Must Match the Picture to use TCPC/DWO.
4. Press [A], [B], or [C] to change the axis letter.
4 3
2
1
5
1
2
3
4
171
4th and 5th Axis Programming
5. Press [F4] to toggle the physical connection setting between 4th and 5th.
6. Press [ENTER] to save the configuration to the Select New Rotaries table, or press [UNDO] to cancel.
7. Repeat steps 2-6 for the tilt axis, if applicable. In this example, we would now set up the TR160 tilt axis (TR160-P4-TLT).
8. After you complete the axis configuration, press [EMERGENCY STOP], and then press [F3] to apply the rotary parameters.
9. Cycle power.
Custom Rotary Configurations
When you change a tool change offset or grid offset for an installed rotary, the control saves this information as a custom rotary configuration. You give this configuration a name that appears in the Name column of the Current Rotary Selections and Select New Rotaries tables.
The control keeps the default values in the base configuration and makes your custom configuration an option in the list of available rotaries. After you define a custom configuration for an axis, the control saves future changes to the same custom configuration name.
F6.17: Custom Rotary Configurations [1] In the Current Rotary Selections Table, and [2] in the Select New Rotaries Table.
The custom rotary configurations appear as options in the Select New Rotaries table. You can select them in the same way you would select a base rotary configuration. You can also save more than one custom configuration for the same rotary unit:
1. Start again with the base configuration of the installed rotary.
2. Configure the TC offset and grid offsets as needed.
3. Save this configuration with a new name.
1
2
172
Options Programming
You can also transfer custom rotary configurations to other machines. The control saves custom rotary files in the User Data / My Rotary folder in the Device Manager ([LIST PROGRAM]). You can transfer these files to the User Data / My Rotary folder on a different machine to make those configurations available in the Select New Rotaries table on that machine.
F6.18: Custom Rotary Files in the User Data Tab
Rotary Tool Change Offset
After you define a rotary units axes in your machine control, you can set the tool change offset. This defines axis positions that put the rotary platter perpendicular to its defined axis.
1. In Handle Jog mode, jog the axes to make the platter face perpendicular to its defined axis. Use an indicator to verify perpendicularity.
2. Press [SETTING] and select the Rotary tab.
3. Highlight one of the axes in the Current Rotary Selections table.
4. Press [INSERT] to define the current axis position as the tool change offset position.
5. Type a name for your custom configuration, if prompted. You will see a prompt for a configuration name only when you make changes to a base configuration for the first time. Otherwise, the control saves your changes to the current custom configuration.
Rotary Grid Offset
You use the rotary grid offset to set new zero positions for your rotary unit.
1. In Handle Jog mode, jog the axes to the positions you want to use as the offset positions.
2. Press [SETTING] and select the Rotary tab.
3. Highlight one of the axes in the Current Rotary Selections table.
4. Press [ALTER] to define the current axis positions as the grid offset positions.
5. Type a name for your custom configuration, if prompted. You will see a prompt for a configuration name only when you make changes to a base configuration for the first time. Otherwise, the control saves your changes to the current custom configuration.
173
4th and 5th Axis Programming
Disabling and Enabling Rotary Axes
A disabled rotary axis does not move, but it stays configured. Disabling a rotary axis is a good way to temporarily stop using a rotary axis without removing it completely from the machine.
Enabled rotary axes appear with a filled-in checkbox in the Current Rotary Selections table.
F6.19: [1] Enabled Rotary Axis, [2] Disabled Rotary Axis.
1. Highlight the axis you want to disable or enable.
2. Press [EMERGENCY STOP].
3. Press [ENTER].
NOTE: The control must not be in Jog mode when you disable an axis. If you get a Wrong Mode message, press [MEMORY] to change modes, and then press [SETTING] to return to the Rotary page.
The control toggles the enabled state of the rotary axis.
4. Release [EMERGENCY STOP] to continue operation.
6.13.2 TCPC/DWO Activation
You can use Tool Center Point Control (TCPC) and Dynamic Work Offsets (DWO) if your rotary configuration is correct, and you have correctly set Machine Rotary Zero Point (MRZP) settings (255-257). Refer to page 333 for more information about TCPC. Refer to page 333 for more information about DWO.
NOTE: To use Tool Center Point Control (TCPC) and Dynamic Work Offsets (DWO), your axis definitions and rotary installation must match the ANSI standard, where the A, B, and C Axes each rotate about the X, Y, and Z Axes, respectively. When you activate TCPC/DWO, you must confirm that your configuration is correct.
1 2
174
Options Programming
1. On the Rotary page, press [F4].
The Confirm TCPC/DWO Configuration pop-up window appears.
F6.20: Confirm TCPC/DWO Configuration Pop-up Window. [1] A- and C-Axis Configuration, [2] B- and C-Axis Configuration
2. If your rotary configuration matches the diagram, press [ENTER] to confirm so. This activates TCPC/DWO.
If your configuration does not match the diagram, you must adjust it to match; for example, you may need to redefine the axis letters or change the rotary units orientation.
3. After you activate TCPC/DWO, press F3 to save the rotary configuration. If you do not save the configuration, then TCPC/DWO is deactivated when you turn off the machine.
1 2
175
4th and 5th Axis Programming
6.13.3 Machine Rotary Zero Point (MRZP)
The Machine Rotary Zero Point (MRZP) Offsets are control settings that define the centers of rotation for the rotary table relative to the home positions of the linear axes. The control uses the MRZP for Tool Center Point Control (TCPC) and Dynamic Work Offsets (DWO) for 4th- and 5th-axis machining. MRZP uses Settings 255, 256, and 257 to define the zero point.
255 Machine Rotary Zero Point X Offset
256 Machine Rotary Zero Point Y Offset
257 Machine Rotary Zero Point Z Offset
The value stored in each of these settings is the distance from the home position of a linear axis to the center of rotation of a rotary axis. The units are in current machine units (as defined by Setting 9).
NOTE: In machines with built-in 4th and 5th axes, such as the UMC-750, the initial MRZP offsets are set at the factory. You do not have to set initial values for these machines.
You do the MRZP adjustment procedures when:
You install a new rotary unit in a mill, and you want to use TCPC/DWO.
The machine has been crashed.
The machines level has changed.
You want to make sure that the MRZP settings are correct.
MRZP adjustment consists of (2) stages: rough and finish. The rough stage establishes MRZP values that the control uses for the finish stage. Generally, you do the rough stage only at new installations, or when you are not sure if the current MRZP settings are close enough to correct for the finish set procedure.
Both the rough and finish MRZP procedures use the work probe to generate values in macro variables, which you then transfer to the correct settings. You must change the values manually because the setting values cannot be set via macro. This protects them from accidental change in the middle of a program.
NOTE: These instructions assume that the probe system is installed and correctly calibrated.
176
Options Programming
MRZP Rough Set
This procedure establishes basic values for MRZP, which you then refine with the finish set process. Note that you should do this procedure only at new rotary installations, or when you are unsure if your current MRZP values are close enough to do the finish set procedure. To do this procedure, you need to know the diameter of the center bore in your rotary platter.
1. Load or command the work probe into the spindle.
2. Jog the probe tip to approximately 0.4" (10 mm) above the approximate center of the ring gauge or bored hole.
3. Press [EDIT].
4. Select the VPS tab, then use the [RIGHT] cursor arrow key to select Probing, Calibration, MRZP Calibration, and then MRZP Rough Set.
5. Highlight variable C, and then type the diameter of the ring gauge or bored hole. Press [ENTER].
6. Highlight variable H, and then type the approximate distance between the rotary platter surface and the trunnions center of rotation. Press [ENTER].
NOTE: This distance is approximately 2" on a UMC-750; refer to your rotary units layout drawing to find this dimension for other units, or follow the procedure on page 181.
7. Press [CYCLE START] to immediately run the probe program in MDI, or press [F4] to choose to output the probing program to the clipboard or MDI to run later.
8. When the probing program runs, it automatically places values in macro variables #10121, #10122, and #10123. These variables show the machine rotary zero point axis travel distance from the home position in the X, Y, and Z Axes. Record the values.
NOTE: Press [CURRENT COMMANDS] and select the Macro Vars tab to view the variables. When the cursor is in the window, you can type a macro variable number and press the [DOWN] cursor arrow key to jump to that variable.
9. Enter the values from macro variables #10121, #10122, and #10123 into Settings 255, 256, and 257, respectively.
10. Do the Finish MRZP Set procedure.
177
4th and 5th Axis Programming
MRZP Finish Set
Follow this procedure to get final values for the MRZP settings. You can also use this procedure to check your current setting values against new readings, to make sure the current values are correct.
If you want to use this procedure to check your current setting values, make sure that the setting values you start with are close to correct to begin with. Values of zero generate an alarm. If the settings are too far off, the probe will not contact the gauge ball when it rotates positions during the cycle. The MRZP rough set process establishes appropriate starting values, so if you are unsure of the current values, you should do the MRZP rough set process first.
To do this procedure, you need a gauge ball with a magnetic base.
1. Place the gauge ball on the table.
IMPORTANT: So that the gauge ball post does not interfere with the probe, position the ball post at an angle of approximately 45 degrees to the X Axis.
F6.21: Gauge Ball Set at 45 Degrees Relative to X (UMC Shown)
2. Load or command the work probe into the spindle.
3. Position the work probe above the tooling ball.
4. Press [EDIT].
5. Select the VPS tab, then use the [RIGHT] cursor arrow key to select Probing, Calibration, MRZP Calibration, and then MRZP Finish Set.
6. Highlight variable B, and then type the gauge ball diameter. Press [ENTER].
X ~45
178
Options Programming
7. Press [CYCLE START] to immediately run the probe program in MDI, or press [F4] to choose to output the probing program to the clipboard or MDI to run later.
8. When the probing program runs, it automatically places values in macro variables #10121, #10122, and #10123. These variables show the machine rotary zero point axis travel distance from the home position in the X, Y, and Z Axes. Record the values.
NOTE: Press [CURRENT COMMANDS] and select the Macro Vars tab to view the variables. When the cursor is in the variable list, you can type a macro variable number and press the [DOWN] cursor arrow key to jump to that variable.
9. Enter the values from macro variables #10121, #10122, and #10123 into Settings 255, 256, and 257, respectively.
6.13.4 Creating Five-Axis Programs
Offsets
1. Press [OFFSET] and select the WORK tab.
2. Jog the axes to the zero point of the workpiece. Refer to page 104 for jogging information.
3. Highlight the axis and offset number.
4. Press [PART ZERO SET] and the current machine position is automatically stored in that address.
CAUTION: If you use automatically generated tool length offsets, you should leave the Z-Axis work offset values at zero. Nonzero Z-Axis work offset values interfere with automatically generated tool length offsets, and can cause a machine crash.
5. The X and Y work coordinate offsets are always given as negative values from machine zero. Work coordinates are entered into the table as a number only. To enter an X value of X-2.00 into G54, highlight the X Axis column in the G54 row, type -2.0, and press [F1] to set the value.
179
4th and 5th Axis Programming
Five-Axis Programming Notes
Program approach vectors (moving tool paths) to the workpiece at a safe distance above or to the side of the workpiece. This is important when you program the approach vectors with a rapid move (G00), because the axes arrive at the programmed position at different times; the axis with shortest distance from target arrives first, and longest distance last. However, a linear move at a high feed rate forces the axes to arrive at the commanded position at the same time, avoiding the possibility of a crash.
G-codes
G93 inverse time feed mode must be in effect for simultaneous 4- or 5-axis motion; however, if your mill supports Tool Center Point Control (G234), you may use G94 (feed per minute). Refer to G93 on page 298 for more information.
Limit the post processor (CAD/CAM software) to a maximum G93 F value of 45000. This is the maximum allowable feedrate in G93 inverse time feed mode.
M-codes
IMPORTANT: When doing any non 5-axis motion, engage the rotary axes brakes. Cutting with the brakes off causes excessive wear in the gear sets.
M10/M11 engages/disengages the fourth axis brake.
M12/M13 engages/disengages the fifth axis brake.
When in a 4 or 5 axis cut, the machine pauses between blocks. This pause is due to the Rotary Axes brakes releasing. To avoid this dwell and allow for smoother program execution, program an M11 and/or M13 before the G93. The M-codes disengage the brakes, resulting in a smoother and uninterrupted flow of motion. Remember that if the brakes are never re-engaged, they remain off indefinitely.
Settings
Settings used for 4th and 5th axis programing include:
For the 4th axis:
Setting 34 - 4th Axis Diameter
For the 5th axis:
Setting 79 - 5th-Axis Diameter
For the Axis mapped to the 4th or 5th Axis:
Setting 48 - Mirror Image A-Axis
Setting 80 - Mirror Image B-Axis
Setting 250 - Mirror Image C-Axis
180
Options Programming
Setting 85 - Maximum Corner Rounding should be set to 0.0500 for 5-axis cutting. Settings lower than 0.0500 move the machine closer to an exact stop and cause uneven motion.
You can also use G187 Pn Ennnn to set the smoothness level in the program to slow the axes down. G187 temporarily overrides Setting 85. Refer to page 332 for more information.
Jogging the 4th and 5th Axes
Jogging the rotary axes works like jogging the linear axes: you select an axis and a jog rate, and then you use the jog handle or jog keys to move the axis. In Hand Jog mode, press the [+A/C +B] or [-A/C -B] jog key to select the 4th axis. To select the 5th axis, press [SHIFT] and then [+A/C +B] or [-A/C -B].
The control remembers the last rotary axis you selected, and [+A/C +B] or [-A/C -B] continue to select that axis until you select the other axis. For example, after you select the 5th axis as described above, each time you press [+A/C +B] or [-A/C -B] selects the 5th axis for jogging. To select the 4th axis again, press SHIFT and then [+A/C +B] or [-A/C -B]. Now, each subsequent press of [+A/C +B] or [-A/C -B] selects the 4th axis.
6.13.5 Tilt Axis Center-of-Rotation Offset (Tilting Rotary Products)
This procedure determines the distance between the plane of the rotary axis platter and the tilt axis centerline on tilting rotary products. Some CAM software applications require this offset value. You also need this value to rough-set the MRZP offsets. Refer to page 177 for more information.
F6.22: Tilt Axis Center-of-Rotation Offset Diagram (side view): [1] Tilt Axis Center-of-Rotation Offset, [2] Tilt Axis, [3] Plane of the Rotary Axis Platter.
1 2
3
181
4th and 5th Axis Programming
F6.23: Tilt Axis Center-of-Rotation Illustrated Procedure. Numeric labels in this diagram correspond to the step numbers in the procedure.
1. Jog the tilt axis until the rotary platter is vertical. Attach a dial indicator to the machine spindle (or other surface independent of table motion) and indicate the platter face. Set the dial indicator to zero.
NOTE: The rotary units orientation on the table determines which linear axis to jog in these steps. If the tilt axis is parallel to the X Axis, use the Y Axis in these steps. If the tilt axis is parallel to the Y Axis, use the X Axis in these steps.
2. Set the X- or Y-Axis operator position to zero.
3. Jog the tilt Axis 180 degrees.
4. Indicate the platter face from the same direction as the first indication:
a. Hold a 1-2-3 block against the platter face.
b. Indicate the face of the block that rests against the platter face.
c. Jog the X or Y Axis to zero the indicator against the block.
5. Read the new X- or Y-Axis operator position. Divide this value by 2 to determine the tilt axis center-of-rotation offset value.
1 3
4 - 5
182
Options Programming
6.14 Macros (Optional)
6.14.1 Macros Introduction
NOTE: This control feature is optional; call your HFO for information on how to purchase it.
Macros add capabilities and flexibility to the control that are not possible with standard G-code. Some possible uses are: families of parts, custom canned cycles, complex motions, and driving optional devices. The possibilities are almost endless.
A Macro is any routine/subprogram that you can run multiple times. A macro statement can assign a value to a variable, read a value from a variable, evaluate an expression, conditionally or unconditionally branch to another point within a program, or conditionally repeat some section of a program.
Here are a few examples of the applications for Macros. The examples are outlines and not complete macro programs.
Tools For Immediate, On-Table Fixturing - You can semi-automate many setup procedures to assist the machinist. You can reserve tools for immediate situations that you did not anticipate in your application design. For instance, suppose a company uses a standard clamp with a standard bolt hole pattern. If you discovered, after setup, that a fixture needs an additional clamp, and suppose that you programmed macro subprogram 2000 to drill the bolt pattern of the clamp, then you only need this two-step procedure to add the clamp to the fixture:
a) Jog the machine to the X, Y, and Z coordinates and angle where you want to place the clamp. Read the position coordinates from the machine display.
b) Execute this command in MDI mode: G65 P2000 Xnnn Ynnn Znnn Annn ;
where nnn are the coordinates determined in Step a). Here, macro 2000 (P2000) does the work since it was designed to drill the clamp bolt hole pattern at the specified angle of A. Essentially, this is a custom canned cycle.
Simple Patterns That Are Repeated - You can define and store repeated patterns with macros. For example:
a) Bolt hole patterns b) Slotting c) Angular patterns, any number of holes, at any angle, with any spacing d) Specialty milling such as soft jaws e) Matrix Patterns, (e.g. 12 across and 15 down) f) Fly-cutting a surface, (e.g. 12 inches by 5 inches using a 3 inch fly cutter)
183
Macros (Optional)
Automatic Offset Setting Based On The Program - With macros, coordinate offsets can be set in each program so that setup procedures become easier and less error-prone (macro variables #2001-2800).
Probing - Using a probe enhances the capabilities of the machine, some examples are:
a) Profiling of a part to determine unknown dimensions for machining. b) Tool calibration for offset and wear values. c) Inspection prior to machining to determine material allowance on castings. d) Inspection after machining to determine parallelism and flatness values as well
as location.
Useful G and M Codes
M00, M01, M30 - Stop Program
G04 - Dwell
G65 Pxx - Macro subprogram call. Allows passing of variables.
M96 Pxx Qxx - Conditional Local Branch when Discrete Input Signal is 0
M97 Pxx - Local Sub Routine Call
M98 Pxx - Sub Program Call
M99 - Sub Program Return or Loop
G103 - Block Lookahead Limit. No cutter comp allowed.
M109 - Interactive User Input (refer to page 358)
Round Off
The control stores decimal numbers as binary values. As a result, numbers stored in variables can be off by 1 least significant digit. For example, the number 7 stored in macro variable #10000, may later be read as 7.000001, 7.000000, or 6.999999. If your statement was
IF [#10000 EQ 7] ;
it may give a false reading. A safer way of programming this would be
IF [ROUND [#10000] EQ 7] ;
This issue is usually a problem only when you store integers in macro variables where you do not expect to see a fractional part later.
184
Options Programming
Look-ahead
Look-ahead is a very important concept in macro programming. The control attempts to process as many lines as possible ahead of time in order to speed up processing. This includes the interpretation of macro variables. For example,
#12012 = 1 ; G04 P1. ; #12012 = 0 ;
This is intended to turn an output on, wait 1 second, and then turn it off. However, lookahead causes the output to turn on then immediately back off while the control processes the dwell. G103 P1 is used to limit lookahead to 1 block. To make this example work properly, modify it as follows:
G103 P1 (See the G-code section of the manual for a further explanation of G103) ; ; #12012=1 ; G04 P1. ; ; ; ; #12012=0 ;
Block Look-Ahead and Block Delete
The Haas control uses block look-ahead to read and prepare for blocks of code that come after the current block of code. This lets the control transition smoothly from one motion to the next. G103 limits how far ahead the control looks at blocks of code. The Pnn address code in G103 specifies how far ahead the control is allowed to look. For additional information, refer to G103 on page 302.
Block Delete mode lets you selectively skip blocks of code. Use a / character at the beginning of the program blocks that you want to skip. Press [BLOCK DELETE] to enter the Block Delete mode. While Block Delete mode is active, the control does not execute the blocks marked with a / character. For example:
Using a
/M99 (Sub-Program Return) ;
before a block with
M30 (Program End and Rewind) ;
makes the sub-program a main program when [BLOCK DELETE] is on. The program is used as a sub-program when Block Delete is off.
185
Macros (Optional)
6.14.2 Operation Notes
You save or load macro variables through the Net Share or USB port, much like settings, and offsets.
Variable Display Page
The macro variables #10000 - #10999 are displayed and modified through the Current Commands display.
NOTE: Internal to the machine, 10000 is added to 3-digit macro variables. For example: Macro 100 is displayed as 10100.
1. Press [CURRENT COMMANDS] and use navigation keys to get to the Macro Variables page.
As the control interprets a program, the variable changes and results are displayed on the Macro Variables display page.
2. Enter a value (maximum is 999999.000000) and then press [ENTER] to set the macro variable. Press [ORIGIN] to clear macro variables, this displays the ORIGIN Clear entry popup. Make a selection from the choices and press [ENTER].
F6.24: [ORIGIN] Clear Entry Popup. Clear Cell - Clears the highlighted cell to zero. Clear Column - Clears the active cursor column entries to zero. Clear All Global Macros - Clears Global Macro entries (Macro 1-33, 10000-10999) to zero.
186
Options Programming
3. Entering the macro variable number and pressing up or down arrow searches for that variable.
4. The variables displayed represent values of the variables when the program runs. At times, this may be up to 15 blocks ahead of actual machine actions. Debugging programs is easier when a G103 P1 is inserted at the beginning of a program to limit block buffering. A G103 without the P value can be added after the macro variable blocks in the program. For a macro program to operate correctly it is recommended that the G103 P1 be left in the program during loading of variables. For more details about G103 see the G-code section of the manual.
Display User Defined Macros 1 and 2
You can display the values of any two user-defined macros (Macro Label #1, Macro Label #2).
NOTE: To change the names of Macro Label #1 or Macro Label #2, highlight the name, key in a new name, and press [ENTER].
To set which two macro variables display under Macro Label #1 and Macro Label #2 on the TIMERS tab:
1. Press [CURRENT COMMANDS].
2. Use the navigation keys to select the TIMERS page.
3. Use arrow keys to pick the Macro Assign #1 or Macro Assign #2 entry field (to the right of the label).
4. Key in the macro number (without #) and press [ENTER].
On the TIMERS display window, the field to the right of the entered variable number displays the current value.
Macro Arguments
The arguments in a G65 statement are a means to send values to a macro subprogram and set the local variables of a macro subprogram.
The next (2) tables indicate the mapping of the alphabetic address variables to the numeric variables used in a macro subprogram.
187
Macros (Optional)
Alphabetic Addressing
Alternate Alphabetic Addressing
Address Variable Address Variable
A 1 N -
B 2 O -
C 3 P -
D 7 Q 17
E 8 R 18
F 9 S 19
G - T 20
H 11 U 21
I 4 V 22
J 5 W 23
K 6 X 24
L - Y 25
M 13 Z 26
Address Variable Address Variable Address Variable
A 1 K 12 J 23
B 2 I 13 K 24
C 3 J 14 I 25
I 4 K 15 J 26
J 5 I 16 K 27
188
Options Programming
Arguments accept any floating-point value to four decimal places. If the control is in metric, it will assume thousandths (.000). In example below, local variable #1 will receive .0001. If a decimal is not included in an argument value, such as:
G65 P9910 A1 B2 C3 ;
The values are passed to macro subprograms according to this table:
Integer Argument Passing (no decimal point)
K 6 J 17 I 28
I 7 K 18 J 29
J 8 I 19 K 30
K 9 J 20 I 31
I 10 K 21 J 32
J 11 I 22 K 33
Address Variable Address Variable Address Variable
Address Variable Address Variable Address Variable
A .0001 J .0001 S 1.
B .0001 K .0001 T 1.
C .0001 L 1. U .0001
D 1. M 1. V .0001
E 1. N - W .0001
F 1. O - X .0001
G - P - Y .0001
H 1. Q .0001 Z .0001
I .0001 R .0001
189
Macros (Optional)
All 33 local macro variables can be assigned values with arguments by using the alternate addressing method. The following example shows how to send two sets of coordinate locations to a macro subprogram. Local variables #4 through #9 would be set to .0001 through .0006 respectively.
Example:
G65 P2000 I1 J2 K3 I4 J5 K6;
The following letters cannot be used to pass parameters to a macro subprogram: G, L, N, O or P.
Macro Variables
There are (3) categories of macro variables: local, global, and system.
Macro constants are floating-point values placed in a macro expression. They can be combined with addresses A-Z, or they can stand alone when used within an expression. Examples of constants are 0.0001, 5.3 or -10.
Local Variables
Local variables range between #1 and #33. A set of local variables is available at all times. When a call to a subprogram with a G65 command is executed, local variables are saved and a new set is available for use. This is called nesting of local variables. During a G65 call, all new local variables are cleared to undefined values and any local variables that have corresponding address variables in the G65 line are set to G65 line values. Below is a table of the local variables along with the address variable arguments that change them:
Variable: 1 2 3 4 5 6 7 8 9 10 11
Address: A B C I J K D E F H
Alternate: I J K I J
Variable: 12 13 14 15 16 17 18 19 20 21 22
Address: M Q R S T U V
Alternate: K I J K I J K I J K I
Variable: 23 24 25 26 27 28 29 30 31 32 33
Address: W X Y Z
Alternate: J K I J K I J K I J K
190
Options Programming
Variables 10, 12, 14- 16 and 27- 33 do not have corresponding address arguments. They can be set if a sufficient number of I, J and K arguments are used as indicated above in the section about arguments. Once in the macro subprogram, local variables can be read and modified by referencing variable numbers 1- 33.
When the L argument is used to do multiple repetitions of a macro subprogram, the arguments are set only on the first repetition. This means that if local variables 1- 33 are modified in the first repetition, then the next repetition will have access only to the modified values. Local values are retained from repetition to repetition when the L address is greater than 1.
Calling a subprogram via an M97 or M98 does not nest the local variables. Any local variables referenced in a subprogram called by an M98 are the same variables and values that existed prior to the M97 or M98 call.
Global Variables
Global variables are accessible at all times. There is only one copy of each global variable. Global variables occur in four ranges: legacy ranges (100-199, 500-699,800-999), and 10000-10999. The global variables remain in memory when power is turned off.
Sometimes, factory-installed options use global variables. For example, probing, pallet changers, etc.
CAUTION: When you use a global variable, make sure that no other programs on the machine use the same global variable.
System Variables
System variables let you interact with a variety of control conditions. System variable values can change the function of the control. When a program reads a system variable, it can modify its behavior based on the value in the variable. Some system variables have a Read Only status; this means that you cannot modify them. A brief table of system variables and their usage follows. The standard system variables list includes the new generation control expanded variables.
Expanded Standard Usage
#0 Not a number (read only)
#1- #33 Macro call arguments
#10000- #10999 General-purpose variables saved on power off
#10100- #10199 #100- #199 General-purpose variables saved on power off
191
Macros (Optional)
# 10500- #10549 #500-#549 General-purpose variables saved on power off
# 10550- #10599 #550-#599 Probe calibration data (if installed)
# 10581- #10699 #581- #699 General-purpose variables saved on power off
#700- #749 Hidden variables for internal use only
#10800- #10999 #800- #999 General-purpose variables saved on power off
#11000- #11255 256 discrete inputs (read only)
11000- 11063 #1000- #1063 64 discrete inputs (read only)
#1064- #1068 Maximum axis loads for X, Y, Z, A, and B Axes, respectively
#13000- #13063 Raw and Filtered analog to digital inputs (read only)
#1080- #1087 Raw analog to digital inputs (read only)
#1090- #1098 Filtered analog to digital inputs (read only)
#1094 Coolant Level
#1098 Spindle load with Haas vector drive (read only)
#12000- #12255 256 discrete outputs
#12000- #12039 #1100- #1139 40 discrete outputs
#12040- #12055 #1140- #1155 16 extra relay outputs via multiplexed output
#1264- #1268 Maximum axis loads for C, U, V, W, and T-axes respectively
#1601- #1800 Number of Flutes of tools #1 through 200
#1801- #2000 Maximum recorded vibrations of tools 1 through 200
#2001- #2200 Tool length offsets
#2201- #2400 Tool length wear
#2401- #2600 Tool diameter/radius offsets
#2601- #2800 Tool diameter/radius wear
Expanded Standard Usage
192
Options Programming
#3000 Programmable alarm
#3001 Millisecond timer
#3002 Hour Timer
#3003 Single block suppression
#3004 Override control
#3006 Programmable stop with message
#3011 Year, month, day
#3012 Hour, minute, second
#3020 Power on timer (read only)
#3021 Cycle start timer
#3022 Feed timer
#3023 Present part timer
#3024 Last complete part timer
#3025 Previous part timer
#3026 Tool in spindle (read only)
#3027 Spindle RPM (read only)
#3028 Number of pallet loaded on receiver
#3030 Single Block
#3032 Block Delete
#3033 Opt Stop
#3201- #3400 Actual Diameter for tools 1 through 200
#3401- #3600 Programmable coolant positions for tools 1 through 200
#3901 M30 count 1
Expanded Standard Usage
193
Macros (Optional)
#3902 M30 count 2
#4000- #4021 Previous block G-code group codes
#4101- #4126 Previous block address codes
#5001- #5005 Previous block end position
#5021- #5026 Present machine coordinate position
#5041- #5046 Present work coordinate position
#5061- #5069 Present skip signal position - X, Y, Z, A, B, C, U, V, W
#5081- #5085 Present tool offset
#5201- #5206 G52 Work Offsets
#5221- #5226 G54 Work Offsets
#5241- #5246 G55 Work Offsets
#5261- #5266 G56 Work Offsets
#5281- #5286 G57 Work Offsets
#5301- #5306 G58 Work Offsets
#5321- #5326 G59 Work Offsets
#5401- #5500 Tool feed timers (seconds)
#5501- #5600 Total tool timers (seconds)
#5601- #5699 Tool life monitor limit
#5701- #5800 Tool life monitor counter
#5801- #5900 Tool load monitor maximum load sensed so far
#5901- #6000 Tool load monitor limit
Expanded Standard Usage
194
Options Programming
NOTE: Mapping of 4101 to 4126 is the same as the alphabetic addressing of Macro Arguments section; e.g., the statement X1.3 sets variable #4124 to 1.3.
#20000- #20999 #6001- #6277 Settings (read only)
NOTE: The low order bits of large values will not appear in the macro variables for settings.
#30000- #39999 #6501- #6999 Parameters (read only)
NOTE: The low order bits of large values will not appear in the macro variables for parameters.
Standard USAGE
#7001- #7006 (#14001- #14006) G110 (G154 P1) additional work offsets
#7021- #7026 (#14021- #14026) G111 (G154 P2) additional work offsets
#7041- #7046 (#14041- #14046) G112 (G154 P3) additional work offsets
#7061- #7066 (#14061- #14066) G113 (G154 P4) additional work offsets
#7081- #7086 (#14081- #14086) G114 (G154 P5) additional work offsets
#7101- #7106 (#14101- #14106) G115 (G154 P6) additional work offsets
#7121- #7126 (#14121- #14126) G116 (G154 P7) additional work offsets
#7141- #7146 (#14141- #14146) G117 (G154 P8) additional work offsets
#7161- #7166 (#14161- #14166) G118 (G154 P9) additional work offsets
#7181- #7186 (#14181- #14186) G119 (G154 P10) additional work offsets
Expanded Standard Usage
195
Macros (Optional)
#7201- #7206 (#14201- #14206) G120 (G154 P11) additional work offsets
#7221- #7226 (#14221- #14226) G121 (G154 P12) additional work offsets
#7241- #7246 (#14241- #14246) G122 (G154 P13) additional work offsets
#7261- #7266 (#14261- #14266) G123 (G154 P14) additional work offsets
#7281- #7286 (#14281- #14286) G124 (G154 P15) additional work offsets
#7301- #7306 (#14301- #14306) G125 (G154 P16) additional work offsets
#7321- #7326 (#14321- #14326) G126 (G154 P17) additional work offsets
#7341- #7346 (#14341- #14346) G127 (G154 P18) additional work offsets
#7361- #7366 (#14361- #14366) G128 (G154 P19) additional work offsets
#7381- #7386 (#14381- #14386) G129 (G154 P20) additional work offsets
#7501- #7506 Pallet priority
#7601- #7606 Pallet status
#7701- #7706 Part program numbers assigned to pallets
#7801- #7806 Pallet usage count
#8500 Advanced Tool Management (ATM). Group ID
#8501 ATM. Percent of available tool life of all tools in the group.
#8502 ATM. Total available tool usage count in the group.
#8503 ATM. Total available tool hole count in the group.
#8504 ATM. Total available tool feed time (in seconds) in the group.
#8505 ATM. Total available tool total time (in seconds) in the group.
#8510 ATM. Next tool number to be used.
#8511 ATM. Percent of available tool life of the next tool.
Standard USAGE
196
Options Programming
#8512 ATM. Available usage count of the next tool.
#8513 ATM. Available hole count of the next tool.
#8514 ATM. Available feed time of the next tool (in seconds).
#8515 ATM. Available total time of the next tool (in seconds).
#8550 Individual tool ID
#8551 Number of Flutes of tools
#8552 Maximum recorded vibrations
#8553 Tool length offsets
#8554 Tool length wear
#8555 Tool diameter offsets
#8556 Tool diameter wear
#8557 Actual diameter
#8558 Programmable coolant position
#8559 Tool feed timer (seconds)
#8560 Total tool timers (seconds)
#8561 Tool life monitor limit
#8562 Tool life monitor counter
#8563 Tool load monitor maximum load sensed so far
#8564 Tool load monitor limit
#14401- #14406 G154 P21 additional work offsets
#14421- #14426 G154 P22 additional work offsets
#14441- #14446 G154 P23 additional work offsets
#14461- #14466 G154 P24 additional work offsets
Standard USAGE
197
Macros (Optional)
#14481- #14486 G154 P25 additional work offsets
#14501- #14506 G154 P26 additional work offsets
#14521- #14526 G154 P27 additional work offsets
#14541- #14546 G154 P28 additional work offsets
#14561- #14566 G154 P29 additional work offsets
#14581- #14586 G154 P30 additional work offsets
.
#14781 - #14786 G154 P40 additional work offsets
#14981 - #14986 G154 P50 additional work offsets
#15181 - #15186 G154 P60 additional work offsets
#15381 - #15386 G154 P70 additional work offsets
#15581 - #15586 G154 P80 additional work offsets
Standard USAGE
198
Options Programming
6.14.3 System Variables In-Depth
System variables are associated with specific functions. A detailed description of these functions follows.
Variables #550 through #599 and #10550 through #10599
These variables store probe calibration data. If these variables are overwritten, you will need to calibrate the probe again. Some of these higher #5xx variables are used for probe calibration. Example: #592 sets which side of the table the tool probe is positioned.
NOTE: If the machine does not have a probe installed, you can use these variables as general-purpose variables saved on power off.
#15781 - #15786 G154 P90 additional work offsets
#15881 - #15886 G154 P95 additional work offsets
#15901 - #15906 G154 P96 additional work offsets
#15921 - #15926 G154 P97 additional work offsets
#15941 - #15946 G154 P98 additional work offsets
#15961- #15966 G154 P99 additional work offsets
Standard USAGE
199
Macros (Optional)
1-Bit Discrete Inputs
You can connect designated inputs from external devices with these macros:
Specific input values can be read from within a program. The format is #11nnn where nnn is the Input Number. Press [DIAGNOSTIC] and select the I/O tab to see the Input and Output numbers for different devices.
Example:
#10000=#11018
This example records the state of #11018, which refers to Input 18 (M-Fin_Input), to variable #10000.
User Inputs on the I/O PCB
The I/O PCB includes a set of (2) available inputs (100 (#11100) and 101 (#11101)) at TB5.
Variables Legacy Variables Usage
#11000-#11255 #1000-#1063 256 discrete inputs (read only)
#13000-#13063 #1080-#1087 #1090-#1097
Raw and Filtered analog to digital inputs (read only)
TB5
1234 +- +-
200
Options Programming
Devices connected to these inputs must have their own power supply. When a device applies 10-25 V between Pins 1 and 2, the input 100 bit (Macro #11100) changes from 1 to 0. When a device applies 10-25 V between pins 3 and 4, the input 101 (Macro #11101) bit changes from 1 to 0.
1-Bit Discrete Outputs
The Haas control is capable of controlling up to 256 discrete outputs. However, a number of these outputs are reserved for the Haas control to use.
Specific output values can be read, or written to, from within a program. The format is #12nnn where nnn is the Output Number.
Example:
#10000=#12018 ;
This example records the state of #12018, which refers to Input 18 (Coolant Pump Motor), to variable #10000.
1 2 3 4
TB5 1
2
1
2
4
3
4
3
100 #11100
101 #11101
10-25V
Variables Legacy Variables Usage
#12000-#12255 #1100-#1139 256 discrete outputs
201
Macros (Optional)
Maximum Axis Loads
These variables contain the maximum load an axis has achieved since the machine was last powered on, or since that Macro Variable was cleared. The Maximum Axis Load is the greatest load (100.0 = 100%) an axis has seen, not the Axis Load at the time that the control reads the variable.
Tool Offsets
Each tool offset has a length (H) and diameter (D) along with associated wear values.
Programmable Messages
#3000 Alarms can be programmed. A programmable alarm will act like the built-in alarms. An alarm is generated by setting macro variable #3000 to a number between 1 and 999.
#3000= 15 (MESSAGE PLACED INTO ALARM LIST) ;
When this is done, Alarm flashes at the bottom of the display and the text in the next comment is placed into the alarm list. The alarm number (in this example, 15) is added to 1000 and used as an alarm number. If an alarm is generated in this manner all motion stops and the program must be reset to continue. Programmable alarms are always numbered between 1000 and 1999.
#1064 = X Axis #1264 = C axis
#1065 = Y Axis #1265 = U axis
#1066 = Z Axis #1266 = V axis
#1067 = A Axis #1267 = W axis
#1068 = B Axis #1268 = T axis
#2001-#2200 H geometry offsets (1-200) for length.
#2200-#2400 H geometry wear (1-200) for length.
#2401-#2600 D geometry offsets (1-200) for diameter.
#2601-#2800 D geometry wear (1-200) for diameter.
202
Options Programming
Timers
Two timers can be set to a value by assigning a number to the respective variable. A program can then read the variable and determine the time passed since the timer was set. Timers can be used to imitate dwell cycles, determine part-to-part time or wherever time-dependent behavior is desired.
#3001 Millisecond Timer - The millisecond timer represents the system time after power on in number of milliseconds. The whole number returned after accessing #3001 represents the number of milliseconds.
#3002 Hour Timer - The hour timer is similar to the millisecond timer except that the number returned after accessing#3002 is in hours. The hour and millisecond timers are independent of each other and can be set separately.
System Overrides
Variable #3003 overrides the Single Block function in G-code. When #3003 has a value of 1, the control executes each G-code command continuously even though the Single Block function is ON. When #3003 has a value of zero, Single Block operates as normal. You must press [CYCLE START] to execute each line of code in single block mode.
... #3003=1 ; G54 G00 G90 X0 Y0 ; S2000 M03 ; G43 H01 Z.1 ; G81 R.1 Z-0.1 F20. ; #3003=0 ; T02 M06 ; G43 H02 Z.1 ; S1800 M03 ; G83 R.1 Z-1. Q.25 F10. ; X0. Y0. ; %
Variable #3004
Variable #3004 overrides specific control features related to feeds.
The first bit disables [FEED HOLD]. If variable #3004 is set to 1, [FEED HOLD] is disabled for the program blocks that follow. Set #3004 to 0 to enable [FEED HOLD] again. For example:
... (Approach code - FEED HOLD allowed) ; #3004=1 (Disables FEED HOLD) ; (Non-stoppable code - FEED HOLD not allowed) ; #3004=0 (Enables FEED HOLD) ; (Depart code - FEED HOLD allowed) ;
203
Macros (Optional)
...
Variable #3004 resets to 0 at M30.
This is a map of variable #3004 bits and the associated overrides.
E = Enabled D = Disabled
#3006 Programmable Stop
You can add stops to the program that act like an M00 - The control stops and waits until you press [CYCLE START], then the program continues with the block after the #3006. In this example, the control displays the comment on the lower-center of the screen.
#3006=1 (comment here) ;
#4001-#4021 Last Block (Modal) Group Codes
G-code groups let the machine control process the codes more efficiently. G-codes with similar functions are usually in the same group. For example, G90 and G91 are under group 3. Macro variables #4001 through #4021 store the last or default G code for any of 21 groups.
G-Codes Group number is listed next to it's description in the G-Code section.
Example:
G81 Drill Canned Cycle (Group 09)
#3004 Feed Hold Feed Rate Override Exact Stop Check
0 E E E
1 D E E
2 E D E
3 D D E
4 E E D
5 D E D
6 E D D
7 D D D
204
Options Programming
When a macro program reads the group code, the program can change the behavior of the G-code. If #4003 contains 91, then a macro program could determine that all moves should be incremental rather than absolute. There is no associated variable for group zero; group zero G codes are Non-modal.
#4101-#4126 Last Block (Modal) Address Data
Address codes A-Z (excluding G) are maintained as modal values. The information represented by the last line of code interpreted by the lookahead process is contained in variables #4101 through #4126. The numeric mapping of variable numbers to alphabetic addresses corresponds to the mapping under alphabetic addresses. For example, the value of the previously interpreted D address is found in #4107 and the last interpreted I value is #4104. When aliasing a macro to an M-code, you may not pass variables to the macro using variables #1 - #33. Instead, use the values from #4101 - #4126 in the macro.
#5001-#5006 Last Target Position
The final programmed point for the last motion block can be accessed through variables #5001 - #5006, X, Z, Y, A, B, and C respectively. Values are given in the current work coordinate system and can be used while the machine is in motion.
#5021-#5026 Current Machine Coordinate Position
To get the current machine axis positions, call macro variables #5021-#5026 corresponding to axis X, Y, Z, A, B, and C, respectively.
NOTE: Values CANNOT be read while the machine is in motion.
The value of #5023 (Z) has tool length compensation applied to it.
#5041-#5046 Current Work Coordinate Position
To get the current work coordinate positions, call macro variables #5041-#5046 corresponding to axis X, Y, Z, A, B, and C, respectively.
NOTE: The values CANNOT be read while the machine is in motion.
The value of #5043 (Z) has tool length compensation applied to it.
#5021 X Axis #5022 Y Axis #5023 Z Axis
#5024 A Axis #5025 B Axis #5026 C Axis
205
Macros (Optional)
#5061-#5069 Current Skip Signal Position
Macro variables #5061-#5069 corresponding to X, Y, Z, A, B, C, U, V and W respectively, give the axis positions where the last skip signal occurred. Values are given in the current work coordinate system and can be used while the machine is in motion.
The value of #5063 (Z) has tool length compensation applied to it.
#5081-#5086 Tool Length Compensation
Macro variables #5081 - #5086 give the current total tool length compensation in axis X, Y, Z, A, B, or C, respectively. This includes tool length offset referenced by the current value set in H (#4008) plus the wear value.
Work Offsets
Macro expressions can read and set all work offsets. This lets you preset coordinates to exact locations, or set coordinates to values based upon the results of skip signal (probed) locations and calculations. When any of the offsets are read, the interpretation look-ahead queue is stopped until that block is executed.
Expanded Standard Usage
#5201- #5206 G52 X, Y, Z, A, B, C OFFSET VALUES
#5221- #5226 G54 X, Y, Z, A, B, C OFFSET VALUES
#5241- #5246 G55 X, Y, Z, A, B, C OFFSET VALUES
#5261- #5266 G56 X, Y, Z, A, B, C OFFSET VALUES
#5281- #5286 G57 X, Y, Z, A, B, C OFFSET VALUES
#5301- #5306 G58 X, Y, Z, A, B, C OFFSET VALUES
#5321- #5326 G59X, Y, Z, A, B, C OFFSET VALUES
#14001-#14006 #7001- #7006 G110 (G154 P1) additional work offsets
#14021-#14026 #7021-#7026 G111 (G154 P2) additional work offsets
#14041-#14046 #7041-#7046 G112 (G154 P3) additional work offsets
#14061-#14066 #7061-#7066 G113 (G154 P4) additional work offsets
#14081-#14086 #7081-#7086 G114 (G154 P5) additional work offsets
206
Options Programming
#6001-#6250 Settings Access with Macro Variables
Access settings through variables #20000 - #20999 or #6001 - #6250, starting from setting 1 respectively. Refer to page 361 for the detailed descriptions of the settings that are available in the control.
NOTE: The #20000 - 20999 range numbers correspond directly to Setting numbers. You should use #6001 - #6250 for settings access only if you need your program to be compatible with older Haas machines.
#14101-#14106 #7101-#7106 G115 (G154 P6) additional work offsets
#14121-#14126 #7121-#7126 G116 (G154 P7) additional work offsets
#14141-#14146 #7141-#7146 G117 (G154 P8) additional work offsets
#14161-#14166 #7161-#7166 G118 (G154 P9) additional work offsets
#14181-#14186 #7181-#7186 G119 (G154 P10) additional work offsets
#14201-#14206 #7201-#7206 G120 (G154 P11) additional work offsets
#14221-#14226 #7221-#7226 G121 (G154 P12) additional work offsets
#14241-#14246 #7241-#7246 G122 (G154 P13) additional work offsets
#14261-#14266 #7261-#7266 G123 (G154 P14) additional work offsets
#14281-#14286 #7281-#7286 G124 (G154 P15) additional work offsets
#14301-#14306 #7301-#7306 G125 (G154 P16) additional work offsets
#14321-#14326 #7321-#7326 G126 (G154 P17) additional work offsets
#14341-#14346 #7341-#7346 G127 (G154 P18) additional work offsets
#14361-#14366 #7361-#7366 G128 (G154 P19) additional work offsets
#14381-#14386 #7381-#7386 G129 (G154 P20) additional work offsets
Expanded Standard Usage
207
Macros (Optional)
#6198 Next-Generation Control Identifier
The macro variable #6198 has a read-only value of 1000000.
You can test #6198 in a program to detect the control version, and then conditionally run program code for that control version. For example:
% IF[#6198 EQ 1000000] GOTO5 ; (Non-NGC code) ; GOTO6 ; N5 (NGC code) ; N6 M30 ; %
In this program, if the value stored in #6198 is equal to 1000000, go to Next Generation Control compatible code then end the program. If if the value stored in #6198 is not equal to 1000000, run the non-NGC program and then end the program.
#6996-#6999 Parameter Access With Macro Variables
These macro variables can access all parameters and any of the parameter bits, as follows:
#6996: Parameter Number
#6997: Bit Number (optional)
#6998: Contains the value of the parameter number specified in variable #6996
#6999: Contains the bit value (0 or 1) of the parameter bit specified in variable #6997.
NOTE: Variables #6998 and #6999 are read-only.
You can also use macro variables #30000 - #39999, starting from parameter 1, respectively. Contact your HFO for more details regarding parameter numbers.
Usage
To access the value of a parameter, copy the number of that parameter into variable #6996. The value of that parameter is available in macro variable #6998, as shown:
% #6996=601 (Specify parameter 601) ; #10000=#6998 (Copy the value of parameter 601 to variable #10000) ; %
208
Options Programming
To access a specific parameter bit, copy the parameter number into variable 6996 and the bit number to macro variable 6997. The value of that parameter bit is available in macro variable 6999, as shown:
% #6996=57 (Specify parameter 57) ; #6997=0 (Specify bit zero) ; #10000=#6999 (Copy parameter 57 bit 0 to variable #10000) ; %
Pallet Changer Variables
The status of the pallets from the Automatic Pallet Changer is checked with these variables:
#8500-#8515 Advanced Tool Management
These variables give information on Advanced Tool Management (ATM). Set variable #8500 to the tool group number, then access information for the selected tool group with the read-only macros #8501-#8515.
#7501-#7506 Pallet priority
#7601-#7606 Pallet status
#7701-#7706 Part program numbers assigned to pallets
#7801-#7806 Pallet usage count
#3028 Number of pallet loaded on receiver
#8500 Advanced Tool Management (ATM). Group ID
#8501 ATM. Percent of available tool life of all tools in the group.
#8502 ATM. Total available tool usage count in the group.
#8503 ATM. Total available tool hole count in the group.
#8504 ATM. Total available tool feed time (in seconds) in the group.
#8505 ATM. Total available tool total time (in seconds) in the group.
209
Macros (Optional)
#8550-#8567 Advanced Tool Management Tooling
These variables give information on tooling. Set variable #8550 to the tool group number, then access information for the selected tool with the read-only macros #8551-#8567.
NOTE: Macro variables #1601-#2800 give access to the same data for individual tools as #8550-#8567 give for Tool Group tools.
#8510 ATM. Next tool number to be used.
#8511 ATM. Percent of available tool life of the next tool.
#8512 ATM. Available usage count of the next tool.
#8513 ATM. Available hole count of the next tool.
#8514 ATM. Available feed time of the next tool (in seconds).
#8515 ATM. Available total time of the next tool (in seconds).
#8550 Individual tool ID
#8551 Number of Flutes on tool
#8552 Maximum recorded vibration
#8553 Tool length offset
#8554 Tool length wear
#8555 Tool diameter offset
#8556 Tool diameter wear
#8557 Actual diameter
#8558 Programmable coolant position
#8559 Tool feed timer (seconds)
#8560 Total tool timers (seconds)
#8561 Tool life monitor limit
210
Options Programming
6.14.4 Variable Usage
All variables are referenced with a number sign (#) followed by a positive number: #1, #10001, and #10501.
Variables are decimal values that are represented as floating point numbers. If a variable has never been used, it can take on a special undefined value. This indicates that it has not been used. A variable can be set to undefined with the special variable #0. #0 has the value of undefined or 0.0 depending on its context. Indirect references to variables can be accomplished by enclosing the variable number in brackets: #[
The expression is evaluated and the result becomes the variable accessed. For example:
#1=3 ; #[#1]=3.5 + #1 ;
This sets the variable #3 to the value 6.5.
A variable can be used in place of a G-code address where address refers to the letters A-Z.
In the block:
N1 G0 G90 X1.0 Y0 ;
the variables can be set to the following values:
#7=0 ; #11=90 ; #1=1.0 ; #2=0.0 ;
and replaced by:
N1 G#7 G#11 X#1 Y#2 ;
Values in the variables at runtime are used as the address values.
6.14.5 Address Substitution
The usual method of setting control addresses A-Z is the address followed by a number. For example:
G01 X1.5 Y3.7 F20.;
#8562 Tool life monitor counter
#8563 Tool load monitor maximum load sensed so far
#8564 Tool load monitor limit
211
Macros (Optional)
sets addresses G, X, Y and F to 1, 1.5, 3.7 and 20.0 respectively and thus instructs the control to move linearly, G01, to position X=1.5 Y=3.7 at a feed rate of 20 (in/mm). Macro syntax allows the address values to be replaced with any variable or expression.
The previous statement can be replaced by this code:
#1=1 ; #2=1.5 ; #3=3.7 ; #4=20 ; G#1 X[#1+#2] Y#3 F#4 ;
The permissible syntax on addresses A-Z (exclude N or O) is as follows:
If the variable value does not agree with the address range, the control generates an alarm. For example, this code causes a range error alarm because the tool diameter numbers range from 0 to 200.
#1=250 ; D#1 ;
When a variable or expression is used in place of an address value, the value is rounded to the least significant digit. If #1=.123456, then G01 X#1 would move the machine tool to .1235 on the X Axis. If the control is in the metric mode, the machine would be moved to .123 on the X axis.
When an undefined variable is used to replace an address value, that address reference is ignored. For example, if #1 is undefined, then the block
G00 X1.0 Y#1 ;
becomes
G00 X1.0 ;
and no Y movement takes place.
212
Options Programming
Macro Statements
Macro statements are lines of code that allow the programmer to manipulate the control with features similar to any standard programming language. Included are functions, operators, conditional and arithmetic expressions, assignment statements, and control statements.
Functions and operators are used in expressions to modify variables or values. The operators are essential to expressions while functions make the programmers job easier.
Functions
Functions are built-in routines that the programmer has available to use. All functions have the form
Function Argument Returns Notes
SIN[ ] Degrees Decimal Sine
COS[ ] Degrees Decimal Cosine
TAN[ ] Degrees Decimal Tangent
ATAN[ ] Decimal Degrees Arctangent Same as FANUC ATAN[ ]/[1]
SQRT[ ] Decimal Decimal Square root
ABS[ ] Decimal Decimal Absolute value
ROUND[ ] Decimal Decimal Round off a decimal
FIX[ ] Decimal Integer Truncate fraction
ACOS[ ] Decimal Degrees Arc cosine
ASIN[ ] Decimal Degrees Arcsine
#[ ] Integer Integer Indirect reference Refer to page 211
213
Macros (Optional)
Notes on Functions
The function ROUND works differently depending on the context that it is used. When used in arithmetic expressions, any number with a fractional part greater than or equal to .5 is rounded up to the next whole integer; otherwise, the fractional part is truncated from the number.
% #1=1.714 ; #2=ROUND[#1] (#2 is set to 2.0) ; #1=3.1416 ; #2=ROUND[#1] (#2 is set to 3.0) ; %
When ROUND is used in an address expression, metric and angle dimensions are rounded to three-place precision. For inch dimensions, four-place precision is the default.
% #1= 1.00333 ; G00 X[ #1 + #1 ] ; (Table X Axis moves to 2.0067) ; G00 X[ ROUND[ #1 ] + ROUND[ #1 ] ] ; (Table X Axis moves to 2.0067) ; G00 A[ #1 + #1 ] ; (Axis rotates to 2.007) ; G00 A[ ROUND[ #1 ] + ROUND[ #1 ] ] ; (Axis rotates to 2.007) ; D[1.67] (Diameter rounded up to 2) ; %
Fix vs. Round
% #1=3.54 ; #2=ROUND[#1] ; #3=FIX[#1]. %
#2 will be set to 4. #3 will be set to 3.
Operators
Operators have (3) categories: Boolean, Arithmetic, and Logical.
214
Options Programming
Boolean Operators
Boolean operators always evaluate to 1.0 (TRUE) or 0.0 (FALSE). There are six Boolean operators. These operators are not restricted to conditional expressions, but they most often are used in conditional expressions. They are:
EQ - Equal To
NE - Not Equal To
GT - Greater Than
LT - Less Than
GE - Greater Than or Equal To
LE - Less Than or Equal To
Here are four examples of how Boolean and Logical operators can be used:
Arithmetic Operators
Arithmetic operators consist of unary and binary operators. They are:
Example Explanation
IF [#10001 EQ 0.0] GOTO100 ; Jump to block 100 if value in variable #10001 equals 0.0.
WHILE [#10101 LT 10] DO1 ; While variable #10101 is less than 10 repeat loop DO1..END1.
#10001=[1.0 LT 5.0] ; Variable #10001 is set to 1.0 (TRUE).
IF [#10001 AND #10002 EQ #10003] GOTO1 ;
If variable #10001 AND variable #10002 are equal to the value in #10003 then control jumps to block 1.
+ - Unary plus +1.23
- - Unary minus -[COS[30]]
+ - Binary addition #10001=#10001+5
- - Binary subtraction #10001=#10001-1
* - Multiplication #10001=#10002*#10003
215
Macros (Optional)
Logical Operators
Logical operators are operators that work on binary bit values. Macro variables are floating point numbers. When logical operators are used on macro variables, only the integer portion of the floating point number is used. The logical operators are:
OR - logically OR two values together
XOR - Exclusively OR two values together
AND - Logically AND two values together
Examples:
% #10001=1.0 ; #10002=2.0 ; #10003=#10001 OR #10002 ; %
Here the variable #10003 will contain 3.0 after the OR operation.
% #10001=5.0 ; #10002=3.0 ; IF [[#10001 GT 3.0] AND [#10002 LT 10]] GOTO1 ; %
Here control transfers to block 1 because #10001 GT 3.0 evaluates to 1.0 and #10002 LT 10 evaluates to 1.0, thus 1.0 AND 1.0 is 1.0 (TRUE) and the GOTO occurs.
NOTE: To achieve your desired results, be very careful when you use logical operators.
Expressions
Expressions are defined as any sequence of variables and operators surrounded by the square brackets [ and ]. There are two uses for expressions: conditional expressions or arithmetic expressions. Conditional expressions return FALSE (0.0) or TRUE (any non zero) values. Arithmetic expressions use arithmetic operators along with functions to determine a value.
/ - Division #10001=#10002/4
MOD - Remainder #10001=27 MOD 20 (#10001 contains 7)
216
Options Programming
Arithmetic Expressions
An arithmetic expression is any expression using variables, operators, or functions. An arithmetic expression returns a value. Arithmetic expressions are usually used in assignment statements, but are not restricted to them.
Examples of Arithmetic expressions:
% #10001=#10045*#10030 ; #10001=#10001+1 ; X[#10005+COS[#10001]] ; #[#10200+#10013]=0 ; %
Conditional Expressions
In the Haas control, all expressions set a conditional value. The value is either 0.0 (FALSE) or the value is nonzero (TRUE). The context in which the expression is used determines if the expression is a conditional expression. Conditional expressions are used in the IF and WHILE statements and in the M99 command. Conditional expressions can make use of Boolean operators to help evaluate a TRUE or FALSE condition.
The M99 conditional construct is unique to the Haas control. Without macros, M99 in the Haas control has the ability to branch unconditionally to any line in the current subprogram by placing a P code on the same line. For example:
N50 M99 P10 ;
branches to line N10. It does not return control to the calling subprogram. With macros enabled, M99 can be used with a conditional expression to branch conditionally. To branch when variable #10000 is less than 10 we could code the above line as follows:
N50 [#10000 LT 10] M99 P10 ;
In this case, the branch occurs only when #10000 is less than 10, otherwise processing continues with the next program line in sequence. In the above, the conditional M99 can be replaced with
N50 IF [#10000 LT 10] GOTO10 ;
Assignment Statements
Assignment statements let you modify variables. The format of the assignment statement is:
The expression on the left of the equal sign must always refer to a macro variable, whether directly or indirectly. This macro initializes a sequence of variables to any value. This example uses both direct and indirect assignments.
217
Macros (Optional)
% O50001 (INITIALIZE A SEQUENCE OF VARIABLES) ; N1 IF [#2 NE #0] GOTO2 (B=base variable) ; #3000=1 (Base variable not given) ; N2 IF [#19 NE #0] GOTO3 (S=size of array) ; #3000=2 (Size of array not given) ; N3 WHILE [#19 GT 0] DO1 ; #19=#19-1 (Decrement count) ; #[#2+#19]=#22 (V=value to set array to) ; END1 ; M99 ; %
You could use the above macro to initialize three sets of variables as follows:
% G65 P300 B101. S20 (INIT 101..120 TO #0) ; G65 P300 B501. S5 V1. (INIT 501..505 TO 1.0) ; G65 P300 B550. S5 V0 (INIT 550..554 TO 0.0) ; %
The decimal point in B101., etc. would be required.
Control Statements
Control statements allow the programmer to branch, both conditionally and unconditionally. They also provide the ability to iterate a section of code based on a condition.
Unconditional Branch (GOTOnnn and M99 Pnnnn)
In the Haas control, there are two methods of branching unconditionally. An unconditional branch will always branch to a specified block. M99 P15 will branch unconditionally to block number 15. The M99 can be used whether or not macros is installed and is the traditional method for branching unconditionally in the Haas control. GOTO15 does the same as M99 P15. In the Haas control, a GOTO command can be used on the same line as other G-codes. The GOTO is executed after any other commands like M codes.
Computed Branch (GOTO#n and GOTO [expression])
Computed branching allows the program to transfer control to another line of code in the same subprogram. The control can compute the block while the program runs, using the GOTO [expression] form, or it can pass the block in through a local variable, as in the GOTO#n form.
The GOTO rounds the variable or expression result that is associated with the Computed branch. For instance, if variable #1 contains 4.49 and the program contains a GOTO#1 command, the control attempts to transfer to a block that contains N4. If #1 contains 4.5, then the control transfers to a block that contains N5.
218
Options Programming
Example: You could develop this code skeleton into a program that adds serial numbers to parts:
% O50002 (COMPUTED BRANCHING) ; (D=Decimal digit to engrave) ; ; IF [[#7 NE #0] AND [#7 GE 0] AND [#7 LE 9]] GOTO99 ; #3000=1 (Invalid digit) ; ; N99; #7=FIX[#7] (Truncate any fractional part) ; ; GOTO#7 (Now engrave the digit) ; ; N0 (Do digit zero) ; M99 ; ; N1 (Do digit one) ; ; M99 ; %
With the above subprogram, you would use this call to engrave the fifth digit:
G65 P9200 D5 ;
Computed GOTOs using expression could be used to branch processing based on the results of reading hardware inputs. For example:
% GOTO [[#1030*2]+#1031] ; N0(1030=0, 1031=0) ; ...M99 ; N1(1030=0, 1031=1) ; ...M99 ; N2(1030=1, 1031=0) ; ...M99 ; N3(1030=1, 1031=1) ; ...M99 ; %
#1030 and #1031.
219
Macros (Optional)
Conditional Branch (IF and M99 Pnnnn)
Conditional branching allows the program to transfer control to another section of code within the same subprogram. Conditional branching can only be used when macros are enabled. The Haas control allows two similar methods for accomplishing conditional branching:
IF [
As discussed,
IF [#1 NE 0.0] GOTO5 ;
could also be:
IF [#1] GOTO5 ;
In this statement, if the variable #1 contains anything but 0.0, or the undefined value #0, then branching to block 5 occurs; otherwise, the next block is executed.
In the Haas control, a
G00 X0 Y0 [#1EQ#2] M99 P5;
Here, the conditional is for the M99 portion of the statement only. The machine tool is instructed to go to X0, Y0 whether or not the expression evaluates to True or False. Only the branch, M99, is executed based on the value of the expression. It is recommended that the IF GOTO version be used if portability is desired.
Conditional Execution (IF THEN)
Execution of control statements can also be achieved by using the IF THEN construct. The format is:
IF [
NOTE: To preserve compatibility with FANUC syntax THEN may not be used with GOTOn.
This format is traditionally used for conditional assignment statements such as:
IF [#590 GT 100] THEN #590=0.0 ;
Variable #590 is set to zero when the value of #590 exceeds 100.0. In the Haas control, if a conditional evaluates to FALSE (0.0), then the remainder of the IF block is ignored. This means that control statements can also be conditioned so that we could write something like:
220
Options Programming
IF [#1 NE #0] THEN G01 X#24 Y#26 F#9 ;
This executes a linear motion only if variable #1 has been assigned a value. Another example is:
IF [#1 GE 180] THEN #101=0.0 M99 ;
This says that if variable #1 (address A) is greater than or equal to 180, then set variable #101 to zero and return from the subprogram.
Here is an example of an IF statement that branches if a variable has been initialized to contain any value. Otherwise, processing continues and an alarm is generated. Remember, when an alarm is generated, program execution is halted.
% N1 IF [#9NE#0] GOTO3 (TEST FOR VALUE IN F) ; N2 #3000=11(NO FEED RATE) ; N3 (CONTINUE) ; %
Iteration/Looping (WHILE DO END)
Essential to all programming languages is the ability to execute a sequence of statements a given number of times or to loop through a sequence of statements until a condition is met. Traditional G coding allows this with the use of the L address. A subprogram can be executed any number of times by using the L address.
M98 P2000 L5 ;
This is limited since you cannot terminate execution of the subprogram on condition. Macros allow flexibility with the WHILE-DO-END construct. For example:
% WHILE [
This executes the statements between DOn and ENDn as long as the conditional expression evaluates to True. The brackets in the expression are necessary. If the expression evaluates to False, then the block after ENDn is executed next. WHILE can be abbreviated to WH. The DOn-ENDn portion of the statement is a matched pair. The value of n is 1-3. This means that there can be no more than three nested loops per subprogram. A nest is a loop within a loop.
Although nesting of WHILE statements can only be up to three levels, there really is no limit since each subprogram can have up to three levels of nesting. If there is a need to nest to a level greater than 3, then the segment containing the three lowest levels of nesting can be made into a subprogram thus overcoming the limitation.
221
Macros (Optional)
If two separate WHILE loops are in a subprogram, they can use the same nesting index. For example:
% #3001=0 (WAIT 500 MILLISECONDS) ; WH [#3001 LT 500] DO1 ; END1 ;
You can use GOTO to jump out of a region encompassed by a DO-END, but you cannot use a GOTO to jump into it. Jumping around inside a DO-END region using a GOTO is allowed.
An infinite loop can be executed by eliminating the WHILE and expression. Thus,
% DO1 ;
executes until the RESET key is pressed.
CAUTION: The following code can be confusing:
% WH [#1] D01 ; END1 ; %
In this example, an alarm results indicating no Then was found; Then refers to the D01. Change D01 (zero) to DO1 (letter O).
6.14.6 Communication With External Devices - DPRNT[ ]
Macros allow additional capabilities to communicate with peripheral devices. With user provided devices you can digitize parts, provide runtime inspection reports, or synchronize controls.
Formatted Output
The DPRNT statement lets programs send formatted text to the serial port. DPRNT can print any text and any variable to the serial port. The form of the DPRNT statement is as follows:
DPRNT [
222
Options Programming
DPRNT must be the only command in the block. In the previous example,
A decimal point is printed out between the whole part and the fractional part. The fractional part is rounded to the least significant place. When zero places are reserved for the fractional part, then no decimal point is printed out. Trailing zeros are printed if there is a fractional part. At least one place is reserved for the whole part, even when a zero is used. If the value of the whole part has fewer digits than have been reserved, then leading spaces are output. If the value of the whole part has more digits than has been reserved, then the field is expanded so that these numbers are printed.
The control sends a carriage return after every DPRNT block.
DPRNT[ ] Example:
DPRNT[ ] Settings
Setting 261 determines the destination for DPRNT statements. You can choose to output them to a file, or to a TCP port. Settings 262 and 263 specify the destination for DPRNT output. Refer to the Settings section of this manual for more information.
Code Output
#1= 1.5436 ;
DPRNT[X#1[44]*Z#1[03]*T#1[40]] ; X1.5436 Z 1.544 T 1
DPRNT[***MEASURED*INSIDE*DIAMETER** *] ;
MEASURED INSIDE DIAMETER
DPRNT[] ; (no text, only a carriage return)
#1=123.456789 ;
DPRNT[X-#1[35]] ; X-123.45679 ;
223
Macros (Optional)
Execution
DPRNT statements are executed at look-ahead time. This means that you must be careful about where the DPRNT statements appear in the program, particularly if the intent is to print out.
G103 is useful for limiting lookahead. If you wanted to limit look-ahead interpretation to one block, you would include this command at the start of your program: This causes the control to look ahead (2) blocks.
G103 P1 ;
To cancel the lookahead limit, change the command to G103 P0. G103 cannot be used when cutter compensation is active.
Editing
Improperly structured or improperly placed macro statements will generate an alarm. Be careful when editing expressions; brackets must be balanced.
The DPRNT[ ] function can be edited much like a comment. It can be deleted, moved as a whole item, or individual items within the bracket can be edited. Variable references and format expressions must be altered as a whole entity. If you wanted to change [24] to [44], place the cursor so that [24] is highlighted, enter [44] and press [ENTER]. Remember, you can use the jog handle to maneuver through long DPRNT[ ] expressions.
Addresses with expressions can be somewhat confusing. In this case, the alphabetic address stands alone. For instance, this block contains an address expression in X:
G01 G90 X [COS [90]] Y3.0 (CORRECT) ;
Here, the X and brackets stand-alone and are individually editable items. It is possible, through editing, to delete the entire expression and replace it with a floating-point constant.
G01 G90 X 0 Y3.0 (WRONG) ;
The above block will result in an alarm at runtime. The correct form looks as follows:
G01 G90 X0 Y3.0 (CORRECT) ;
NOTE: There is no space between the X and the Zero (0). REMEMBER when you see an alpha character standing alone it is an address expression.
6.14.7 G65 Macro Subprogram Call Option (Group 00)
G65 is the command that calls a subprogram with the ability to pass arguments to it. The format follows:
G65 Pnnnnn [Lnnnn] [arguments] ;
224
Options Programming
Arguments italicized in square brackets are optional. See the Programming section for more details on macro arguments.
The G65 command requires a P address corresponding to a program number currently located in the controls drive. When the L address is used the macro call is repeated the specified number of times.
When a subprogram is called, the control looks for the subprogram on the active drive. If the subprogram cannot be located on the active drive, the control looks in the drive designated by Setting 251. Refer to the Setting Up Search Locations section for more information on subprogram searching. An alarm occurs if the control does not find the subprogram.
In Example 1, subprogram 1000 is called once without conditions passed to the subprogram. G65 calls are similar to, but not the same as, M98 calls. G65 calls can be nested up to 9 times, which means, program 1 can call program 2, program 2 can call program 3 and program 3 can call program 4.
Example 1:
% G65 P1000 (Call subprogram O01000 as a macro) ; M30 (Program stop) ; O01000 (Macro Subprogram) ; ... M99 (Return from Macro Subprogram) ; %
In Example 2, subprogram 9010 is designed to drill a sequence of holes along a line whose slope is determined by the X and Y arguments that are passed to it in the G65 command line. The Z drill depth is passed as Z, the feed rate is passed as F, and the number of holes to be drilled is passed as T. The line of holes is drilled starting from the current tool position when the macro subprogram is called.
Example 2:
NOTE: The subprogram program O09010 should reside on the active drive or on a drive designated by Setting 252.
% G00 G90 X1.0 Y1.0 Z.05 S1000 M03 (Position tool) ; G65 P9010 X.5 Y.25 Z.05 F10. T10 (Call O09010) ; M30 ; O09010 (Diagonal hole pattern) ; F#9 (F=Feedrate) ; WHILE [#20 GT 0] DO1 (Repeat T times) ; G91 G81 Z#26 (Drill To Z depth) ;
225
Macros (Optional)
#20=#20-1 (Decrement counter) ; IF [#20 EQ 0] GOTO5 (All holes drilled) ; G00 X#24 Y#25 (Move along slope) ; N5 END1 ; M99 (Return to caller) ; %
Aliasing
Aliased codes are user defined G and M-codes that reference a macro program. There are 10 G alias codes and 10 M alias codes available to users. Program numbers 9010 through 9019 are reserved for G-code aliasing and 9000 through 9009 are reserved for M-code aliasing.
Aliasing is a means of assigning a G-code or M-code to a G65 P##### sequence. For instance, in the previous Example 2, it would be easier to write:
G06 X.5 Y.25 Z.05 F10. T10 ;
When aliasing, variables can be passed with a G-code; variables cannot be passed with an M-code.
Here, an unused G-code has been substituted, G06 for G65 P9010. In order for the previous block to work, the value associated with subprogram 9010 must be set to 06. Refer to the Setting Aliases section for how to setup aliases.
NOTE: G00, G65, G66, and G67 cannot be aliased. All other codes between 1 and 255 can be used for aliasing.
If a macro call subprogram is set to a G-code and the subprogram is not in memory, then an alarm is given. Refer to the G65 Macro Subprogram Call section on page 224 on how to locate the subprogram. An alarm occurs if the sub-program is not found.
Setting Aliases
The G-code or M-code alias setup is done on the Alias Codes window. To setup an alias:
1. Press [SETTING] and navigate to the Alias Codes tab.
2. Press [EMERGENCY STOP] on the control.
3. Using the cursor keys select the M or G Macro Call to be used.
4. Enter the number of the G-code or M-code you want to alias. For example, if you want to alias G06 type 06.
5. Press [ENTER].
6. Repeat steps 3 - 5 for other aliased G or M-codes.
7. Release the [EMERGENCY STOP] on the control.
226
Options Programming
Setting an alias value to 0 disables aliasing for the associated subprogram.
F6.25: Alias Codes Window
227
More Information Online
6.15 More Information Online You can find programming information for other optional equipment in the online Haas Resource Center, including:
Programmable Coolant Spigot (P-Cool)
300- and 1000-psi Through-Spindle Coolant (TSC)
Intuitive Programming System (IPS)
Wireless Intuitive Probing System (WIPS)
To access the site, go to www.HaasCNC.com and select the Haas Resource Center.
You can also scan this QR code with your mobile device to go directly to the options programming section of the Resource Center.
228
G-codes
Chapter 7: G-codes
7.1 Introduction This chapter gives detailed descriptions of the G-codes that you use to program your machine.
7.1.1 List of G-codes
CAUTION: The sample programs in this manual have been tested for accuracy, but they are for illustrative purposes only. The programs do not define tools, offsets, or materials. They do not describe workholding or other fixturing. If you choose to run a sample program on your machine, do so in Graphics mode. Always follow safe machining practices when you run an unfamiliar program.
NOTE: The sample programs in this manual represent a very conservative programming style. The samples are intended to demonstrate safe and reliable programs, and they are not necessarily the fastest or most efficient way to operate a machine. The sample programs use G-codes that you might choose not to use in more efficient programs.
Code Description Group Page
G00 Rapid Motion Positioning 01 240
G01 Linear Interpolation Motion 01 241
G02 Circular Interpolation Motion CW 01 243
G03 Circular Interpolation Motion CCW 01 243
G04 Dwell 00 250
G09 Exact Stop 00 250
G10 Set Offsets 00 251
G12 Circular Pocket Milling CW 00 252
229
Introduction
G13 Circular Pocket Milling CCW 00 252
G17 XY Plane Selection 02 254
G18 XZ Plane Selection 02 254
G19 YZ Plane Selection 02 254
G20 Select Inches 06 255
G21 Select Metric 06 255
G28 Return To Machine Zero Point 00 255
G29 Return From Reference Point 00 255
G31 Feed Until Skip 00 256
G35 Automatic Tool Diameter Measurement 00 257
G36 Automatic Work Offset Measurement 00 259
G37 Automatic Tool Offset Measurement 00 261
G40 Cutter Compensation Cancel 07 262
G41 2D Cutter Compensation Left 07 262
G42 2D Cutter Compensation Right 07 262
G43 Tool Length Compensation + (Add) 08 262
G44 Tool Length Compensation - (Subtract) 08 262
G47 Text Engraving 00 263
G49 G43/G44/G143 Cancel 08 268
G50 Cancel Scaling 11 268
G51 Scaling 11 268
G52 Set Work Coordinate System 00 or 12 273
G53 Non-Modal Machine Coordinate Selection 00 273
Code Description Group Page
230
G-codes
G54 Select Work Coordinate System #1 12 274
G55 Select Work Coordinate System #2 12 274
G56 Select Work Coordinate System #3 12 274
G57 Select Work Coordinate System #4 12 274
G58 Select Work Coordinate System #5 12 274
G59 Select Work Coordinate System #6 12 274
G60 Uni-Directional Positioning 00 274
G61 Exact Stop Mode 15 274
G64 G61 Cancel 15 274
G65 Macro Subprogram Call Option 00 274
G68 Rotation 16 274
G69 Cancel G68 Rotation 16 279
G70 Bolt Hole Circle 00 279
G71 Bolt Hole Arc 00 280
G72 Bolt Holes Along an Angle 00 280
G73 High-Speed Peck Drilling Canned Cycle 09 281
G74 Reverse Tap Canned Cycle 09 282
G76 Fine Boring Canned Cycle 09 283
G77 Back Bore Canned Cycle 09 284
G80 Canned Cycle Cancel 09 286
G81 Drill Canned Cycle 09 286
G82 Spot Drill Canned Cycle 09 288
G83 Normal Peck Drilling Canned Cycle 09 289
Code Description Group Page
231
Introduction
G84 Tapping Canned Cycle 09 291
G85 Boring Canned Cycle 09 295
G86 Bore and Stop Canned Cycle 09 295
G89 Bore In, Dwell, Bore Out Canned Cycle 09 296
G90 Absolute Position Command 03 297
G91 Incremental Position Command 03 297
G92 Set Work Coordinate Systems Shift Value 00 297
G93 Inverse Time Feed Mode 05 298
G94 Feed Per Minute Mode 05 298
G95 Feed per Revolution 05 299
G98 Canned Cycle Initial Point Return 10 295
G99 Canned Cycle R Plane Return 10 300
G100 Cancel Mirror Image 00 301
G101 Enable Mirror Image 00 301
G103 Limit Block Buffering 00 302
G107 Cylindrical Mapping 00 303
G110 #7 Coordinate System 12 305
G111 #8 Coordinate System 12 305
G112 #9 Coordinate System 12 305
G113 #10 Coordinate System 12 305
G114 #11 Coordinate System 12 305
G115 #12 Coordinate System 12 305
G116 #13 Coordinate System 12 305
Code Description Group Page
232
G-codes
G117 #14 Coordinate System 12 305
G118 #15 Coordinate System 12 305
G119 #16 Coordinate System 12 305
G120 #17 Coordinate System 12 305
G121 #18 Coordinate System 12 305
G122 #19 Coordinate System 12 305
G123 #20 Coordinate System 12 305
G124 #21 Coordinate System 12 305
G125 #22 Coordinate System 12 305
G126 #23 Coordinate System 12 305
G127 #24 Coordinate System 12 305
G128 #25 Coordinate System 12 305
G129 #26 Coordinate System 12 305
G136 Automatic Work Offset Center Measurement 00 305
G141 3D+ Cutter Compensation 07 307
G143 5-Axis Tool Length Compensation + 08 310
G150 General Purpose Pocket Milling 00 312
G153 5-Axis High Speed Peck Drilling Canned Cycle 09 320
G154 Select Work Coordinates P1-P99 12 321
G155 5-Axis Reverse Tap Canned Cycle 09 323
G161 5-Axis Drill Canned Cycle 09 324
G162 5-Axis Spot Drill Canned Cycle 09 325
G163 5-Axis Normal Peck Drilling Canned Cycle 09 326
Code Description Group Page
233
Introduction
About G-codes
G-codes tell the machine tool what type of action to do, such as:
Rapid moves
Move in a straight line or arc
Set tool information
Use letter addressing
Define axis and beginning and ending positions
Pre-set series of moves that bore a hole, cut a specific dimension, or a contour (canned cycles)
G-code commands are either modal or non-modal. A modal G-code stays in effect until the end of the program or until you command another G-code from the same group. A non-modal G-code affects only the line it is in; it does not affect the next program line. Group 00 codes are non-modal; the other groups are modal.
For a description of basic programming, refer to the basic programming section of the Programming chapter, starting on page 119.
G164 5-Axis Tapping Canned Cycle 09 328
G165 5-Axis Boring Canned Cycle 09 329
G166 5-Axis Bore and Stop Canned Cycle 09 330
G169 5-Axis Bore and Dwell Canned Cycle 09 331
G174 CCW Non-Vertical Rigid Tap 00 332
G184 CW Non-Vertical Rigid Tap 00 332
G187 Setting the Smoothness Level 00 332
G188 Get Program From PST 00 333
G234 Tool Center Point Control (TCPC) (UMC) 08 333
G254 Dynamic Work Offset (DWO) (UMC) 23 333
G255 Cancel Dynamic Work Offset (DWO) (UMC) 23 340
Code Description Group Page
234
G-codes
NOTE: The Visual Programming System (VPS) is an optional programming mode that lets you program part features without manually writing G-code.
NOTE: A program block can contain more than one G-code, but you cannot put two G-codes from the same group in the same program block.
Canned Cycles
Canned cycles are G-codes that do repetitive operations such as drilling, tapping, and boring. You define a canned cycle with alphabetic address codes. While the canned cycle is active, the machine does the defined operation every time you command a new position, unless you specify not to.
Using Canned Cycles
You can program canned cycle X and Y positions in either absolute (G90) or incremental (G91).
Example:
% G81 G99 Z-0.5 R0.1 F6.5 (This drills one hole); (at the present location) ; G91 X-0.5625 L9 (This drills 9 more holes 0.5625); (equally spaced in the X-negative direction) ; %
There are (3) possible ways for a canned cycle to behave in the block in which you command it:
If you command an X/Y position in the same block as the canned cycle G-code, the canned cycle executes. If Setting 28 is OFF, the canned cycle executes in the same block only if you command an X/Y position in that block.
If Setting 28 is ON, and you command a canned cycle G-code with or without an X/Y position in the same block, the canned cycle executes in that blockeither at the position where you commanded the canned cycle, or at the new X/Y position.
If you include a loop count of zero (L0) in the same block as the canned cycle G-code, the canned cycle does not execute in that block. The canned cycle does not execute regardless of Setting 28 and whether or not the block also contains an X/Y position.
235
Introduction
NOTE: Unless otherwise noted, the program examples given here assume that Setting 28 is ON.
When a canned cycle is active, it repeats at every new X/Y position in the program. In the example above, with each incremental move of -0.5625 in the X axis, the canned cycle (G81) drills a 0.5" deep hole. The L address code in the incremental position command (G91) repeats this operation (9) times.
Canned cycles operate differently depending on whether incremental (G91) or absolute (G90) positioning is active. Incremental motion in a canned cycle is often useful, because it lets you use a loop (L) count to repeat the operation with an incremental X or Y move between cycles.
Example:
% X1.25 Y-0.75 (center location of bolt hole pattern) ; G81 G99 Z-0.5 R0.1 F6.5 L0; (L0 on the G81 line will not drill a hole) ; G70 I0.75 J10. L6 (6-hole bolt hole circle) ; %
The R plane value and the Z depth value are important canned cycle address codes. If you specify these addresses in a block with XY commands, the control does the XY move, and it does all of the subsequent canned cycles with the new R or Z value.
The X and Y positioning in a canned cycle is done with rapid moves.
G98 and G99 change the way the canned cycles operate. When G98 is active, the Z-Axis will return to the initial start plane at the completion of each hole in the canned cycle. This allows for positioning up and around areas of the part and/or clamps and fixtures.
When G99 is active, the Z-Axis returns to the R (rapid) plane after each hole in the canned cycle for clearance to the next XY location. Changes to the G98/G99 selection can also be made after the canned cycle is commanded, which will affect all later canned cycles.
A P address is an optional command for some canned cycles. This is a programmed pause at the bottom of the hole to help break chips, provide a smoother finish, and relieve any tool pressure to hold closer tolerance.
NOTE: A P address used for one canned cycle is used in others unless canceled (G00, G01, G80 or the [RESET] button).
You must define an S (spindle speed) command in or before the canned cycle G-code block.
236
G-codes
Tapping in a canned cycle needs a feed rate calculated. The feed formula is:
Spindle speed divided by threads per inch of the tap = feedrate in inches per minute
The metric version of the feed formula is:
RPM times metric pitch = feedrate in mm per minute
Canned cycles also benefit from the use of Setting 57. If this setting is ON, the machine stops after the X/Y rapids before it moves the Z Axis. This is useful to avoid nicking the part when the tool exits the hole, especially if the R plane is close to the part surface.
NOTE: The Z, R, and F addresses are required data for all canned cycles.
Canceling a Canned Cycle
G80 cancels all canned cycles. G00 or G01 code also cancel a canned cycle. A canned cycle stays active until G80, G00, or G01 cancels it.
Looping Canned Cycles
This is an example of a program that uses an incrementally looped drilling canned cycle.
NOTE: The sequence of drilling used here is designed to save time and to follow the shortest path from hole to hole.
237
Introduction
F7.1: G81 Drilling Canned Cycle: [R] R Plane, [Z] Z Plane, [1] Rapid, [2] Feed.
% O60810 (Drilling grid plate 3x3 holes) ; (G54 X0 Y0 is at the top-left of part) ; (Z0 is at the top of the part) ; (T1 is a drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X1.0 Y-1.0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 Z-1.5 F15. R.1 (Begin G81 & drill 1st hole) ; G91 X1.0 L2 (Drill 1st row of holes) ; G90 Y-2.0 (1st hole of 2nd row) ; G91 X-1.0 L2 (2nd row of holes) ; G90 Y-3.0 (1st hole of 3rd row) ; G91 X1.0 L2 (3rd row of holes) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
0
0 1.000
2.000
3.000
1 .0
0 0
2 .0
0 0
3 .0
0 0
X0. Y0.
R
Z
1
2
238
G-codes
X/Y Plane Obstacle Avoidance in a Canned Cycle
If you put an L0 on a canned cycle line, you can make an X, Y move without the Z-Axis canned operation. This is a good way to avoid obstacles in the X/Y plane.
Consider a 6" square aluminum block, with a 1" by 1" deep flange on each side. The print calls for two holes centered on each side of the flange. You use a G81 canned cycle to make the holes. If you simply command the hole positions in the drill canned cycle, the control takes the shortest path to the next hole position, which puts the tool through the corner of the workpiece. To prevent this, command a position past the corner, so the move to the next hole position does not go through the corner. The drill canned cycle is active, but you do not want a drill cycle at that position, so use L0 in this block.
F7.2: Canned Cycle Obstacle Avoidance. The program drills holes [1] and [2], then moves to X5.5. Because of the L0 address in this block, there is no drill cycle in this position. Line [A] shows the path that the canned cycle would follow without the obstacle avoidance line. The next move is in the Y Axis only to the position of the third hole, where the machine does another drill cycle.
% O60811 (X Y OBSTACLE AVOIDANCE) ; (G54 X0 Y0 is at the top-left of part); (Z0 is at the top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y-0.5(Rapid to first position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 M08 (Activate tool offset 1) ; (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 Z-2. R-0.9 F15. (Begin G81 & Drill 1st hole) ; X4. (Drill 2nd hole) ; X5.5 L0 (Corner avoidance) ; Y-2. (3rd hole) ; Y-4. (4th hole) ;
X5.5 L0
A
1 2
X
Y
Y-2.
239
Introduction
Y-5.5 L0 (Corner avoidance) ; X4. (5th hole) ; X2. (6th hole) ; X0.5 L0 (Corner avoidance) ; Y-4. (7th hole) ; Y-2. (8th hole) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G00 Rapid Motion Positioning (Group 01)
*X - Optional X-Axis motion command *Y - Optional Y-Axis motion command *Z - Optional Z-Axis motion command *A - Optional A-Axis motion command *B - Optional B-Axis motion command *C - Optional C-axis motion command
*indicates optional
G00 is used to move the machine axes at the maximum speed. It is primarily used to quickly position the machine to a given point before each feed (cutting) command. This G code is modal, so a block with G00 causes all following blocks to be rapid motion until another Group 01 code is specified.
A rapid move also cancels an active canned cycle, just like G80 does.
NOTE: Generally, rapid motion will not be in a single straight line. Each axis specified is moved at the same speed, but all axes will not necessarily complete their motions at the same time. The machine will wait until all motions are complete before starting the next command.
240
G-codes
F7.3: G00 Multi-linear Rapid Motion
Setting 57 (Exact Stop Canned X-Y) can change how closely the machine waits for a precise stop before and after a rapid move.
G01 Linear Interpolation Motion (Group 01)
F - Feedrate * X - X-Axis motion command * Y - Y-Axis motion command * Z - Z-Axis motion command * A - A-Axis motion command * B - B-Axis motion command * C - C-axis motion command * ,R - Radius of the arc * ,C - Chamfer distance
*indicates optional
G01 moves the axes at a commanded feed rate. It is primarily used to cut the workpiece. A G01 feed can be a single axis move or a combination of the axes. The rate of axes movement is controlled by feedrate ( F) value. This F value can be in units (inch or metric) per minute ( G94) or per spindle revolution ( G95), or time to complete the motion ( G93). The feedrate value ( F) can be on the current program line, or a previous line. The control will always use the most recent F value until another F value is commanded. If in G93, an F value is used on each line. Refer also to G93.
G01 is a modal command, which means that it will stay in effect until canceled by a rapid command such as G00 or a circular motion command like G02 or G03.
Once a G01 is started all programmed axes move and reach the destination at the same time. If an axis is not capable of the programmed feedrate the control will not proceed with the G01 command and an alarm (max feedrate exceeded) will be generated.
X +
Y +
G00 G01
241
Introduction
Corner Rounding and Chamfering Example
F7.4: Corner Rounding and Chamfering Example #1
% O60011 (G01 CORNER ROUNDING & CHAMFER) ; (G54 X0 Y0 is at the top-right of part) ; (Z0 is on top of the part) ; (T1 is an end mill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.5 F20. (Feed to cutting depth) ; Y-5. ,C1. (Chamfer) ; X-5. ,R1. (Corner-round) ; Y0 (Feed to Y0.) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
A chamfer block or a corner-rounding block can be automatically inserted between two linear interpolation blocks by specifying ,C (chamfering) or ,R (corner rounding). There must be a terminating linear interpolation block after the beginning block (a G04 pause may intervene).
5 .0
0 0
R 1.
00 0
X 0
.
Y0.
1.000 x 45
5.000
242
G-codes
These two linear interpolation blocks specify a corner of intersection. If the beginning block specifies a ,C, the value after the ,C is the distance from the intersection to where the chamfer begins, and also the distance from the intersection to where the chamfer ends. If the beginning block specifies an ,R, the value after the ,R is the radius of a circle tangent to the corner at two points: the beginning of the corner-rounding arc and the endpoint of that arc. There can be consecutive blocks with chamfering or corner rounding specified. There must be movement on the two axes specified by the selected plane, whether the active plane is XY ( G17), XZ ( G18) or YZ ( G19).
G02 CW / G03 CCW Circular Interpolation Motion (Group 01)
F - Feedrate *I - Distance along X Axis to center of circle *J - Distance along Y Axis to center of circle *K - Distance along Z Axis to center of circle *R - Radius of circle *X - X-Axis motion command *Y - Y-Axis motion command *Z - Z-Axis motion command *A - A-Axis motion command
*indicates optional
NOTE: I,J and K is the preferred method to program a radius. R is suitable for general radii.
These G codes are used to specify circular motion. Two axes are necessary to complete circular motion and the correct plane, G17-G19, must be used. There are two methods of commanding a G02 or G03, the first is using the I, J, K addresses and the second is using the R address.
Using I, J, K addresses
I, J and K address are used to locate the arc center in relation to the start point. In other words, the I, J, K addresses are the distances from the starting point to the center of the circle. Only the I, J, or K specific to the selected plane are allowed (G17 uses IJ, G18 uses IK and G19 uses JK). The X, Y, and Z commands specify the end point of the arc. If the X, Y, and Z location for the selected plane is not specified, the endpoint of the arc is the same as the starting point for that axis.
To cut a full circle the I, J, K addresses must be used; using an R address will not work. To cut a full circle, do not specify an ending point (X, Y, and Z ); program I, J, or K to define the center of the circle. For example:
G02 I3.0 J4.0 (Assumes G17; XY plane) ;
243
Introduction
Using the R address
The R-value defines the distance from the starting point to the center of the circle. Use a positive R-value for radii of 180 or less, and a negative R-value for radii more than 180.
Programming Example
F7.5: Positive R Address Programming Example
% O60021 (G02 POSITIVE R ADDRESS) ; (G54 X0 Y0 is at the bottom-left of part) ; (Z0 is on top of the part) ; (T1 is a .5 in dia endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X-0.25 Y-0.25 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.5 F20. (Feed to cutting depth) ; G01 Y1.5 F12. (Feed to Y1.5) ; G02 X1.884 Y2.384 R1.25 (CW circular motion) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
1.5
135 O
R 1.00
.5
244
G-codes
F7.6: Negative R Address Programming Example
% O60022 (G02 NEGATIVE R ADDRESS) ; (G54 X0 Y0 is at the bottom-left of part) ; (Z0 is on top of the part) ; (T1 is a .5 in dia endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X-0.25 Y-0.25 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.5 F20. (Feed to cutting depth) ; G01 Y1.5 F12. (Feed to Y1.5) ; G02 X1.884 Y0.616 R-1.25 (CW circular motion) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
Thread Milling
Thread milling uses a standard G02 or G03 move to create the circular move in X-Y, then adds a Z move on the same block to create the thread pitch. This generates one turn of the thread; the multiple teeth of the cutter generate the rest. Typical block of code:
N100 G02 I-1.0 Z-.05 F5. (generates 1-inch radius for 20-pitch thread) ;
Thread milling notes:
Internal holes smaller than 3/8 inch may not be possible or practical. Always climb cut the cutter.
225 O
.5
1.5
R 1.00
245
Introduction
Use a G03 to cut I.D. threads or a G02 to cut O.D. threads. An I.D. right hand thread will move up in the Z-Axis by the amount of one thread pitch. An O.D. right hand thread will move down in the Z-Axis by the amount of one thread pitch. PITCH = 1/Threads per inch (Example - 1.0 divided by 8 TPI = .125)
This program I.D. thread mills a 1.5 diameter x 8 TPI hole with a 0.750" diameter x 1.0" thread hob.
1. To start, take the hole diameter (1.500). Subtract the cutter diameter .750 and then divide by 2. (1.500 - .75) / 2 = .375 The result (.375) is the distance the cutter starts from the I.D. of the part.
2. After the initial positioning, the next step of the program is to turn on cutter compensation and move to the I.D. of the circle.
3. The next step is to program a complete circle (G02 or G03) with a Z-Axis command of the amount of one full pitch of the thread (this is called Helical Interpolation).
4. The last step is to move away from the I.D. of the circle and turn off cutter compensation.
You cannot turn cutter compensation off or on during an arc movement. You must program a linear move, either in the X or Y Axis, to move the tool to and from the diameter to cut. This move will be the maximum compensation amount that you can adjust.
Thread Milling Example
F7.7: Thread Milling Example, 1.5 Diameter X 8 TPI: [1]Tool Path, [2] Turn on and off cutter compensation.
I.D. Thread Milling Ex ercise
N5, N9, N10N12
N11
N8
1 2
246
G-codes
NOTE: Many thread mill manufacturers offer free online software to help you create your threading programs.
% O60023 (G03 THREAD MILL 1.5-8 UNC) ; (G54 X0 Y0 is at the center of the bore) ; (Z0 is on top of the part) ; (T1 is a .5 in dia thread mill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.5156 F50. (Feed to starting depth) ; (Z-0.5 minus 1/8th of the pitch = Z-0.5156) ; G41 X0.25 Y-0.25 F10. D01 (cutter comp on) ; G03 X0.5 Y0 I0 J0.25 Z-0.5 (Arc into thread) ; (Ramps up by 1/8th of the pitch) ; I-0.5 J0 Z-0.375 F20. (Cuts full thread) ; (Z moving up by the pitch value to Z-0.375) ; X0.25 Y0.25 I-0.25 J0 Z-0.3594 (Arc out of thread) ; (Ramp up by 1/8th of the pitch) ; G40 G01 X0 Y1 (cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
N5 = XY at the center of the hole
N7 = Thread depth, minus 1/8 pitch
N8 = Enable Cutter Compensation
N9 = Arcs into thread, ramps up by 1/8 pitch
N10 = Cuts full thread, Z moving up by the pitch value
N11 = Arcs out of thread, ramps up 1/8 pitch
N12 = Cancel Cutter Compensation
247
Introduction
NOTE: Maximum cutter compensation adjustability is 0.175.
Outside Diameter (O.D.) Thread Milling
F7.8: O.D. Thread Milling Example, 2.0 diameter post x 16 TPI: [1] Tool Path [2] Rapid Positioning, Turn on and off cutter compensation, [3] Start Position, [4] Arc with Z.
% O60024 (G02 G03 THREAD MILL 2.0-16 UNC) ; (G54 X0 Y0 is at the center of the post) ; (Z0 is on top of the opost) ; (T1 is a .5 in dia thread mill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y2.4 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G00 Z-1. (Rapids to Z-1.) ; G01 G41 D01 X-0.5 Y1.4 F20. (Linear move) ; (Cutter comp on) ; G03 X0 Y0.962 R0.5 F25. (Arc into thread) ; G02 J-0.962 Z-1.0625 (Cut threads while lowering Z) ; G03 X0.5 Y1.4 R0.5 (Arc out of thread) ; G01 G40 X0 Y2.4 F20. (Linear move) ; (Cutter comp off) ;
XO, YO
1 2
3
4
248
G-codes
(BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
NOTE: A cutter compensation move can consist of any X or Y move from any position as long as the move is greater than the amount being compensated.
Single-Point Thread Milling
This program is for a 1.0" diameter hole with a cutter diameter of 0.500" and a thread pitch of 0.125 (8TPI). This program positions itself in Absolute G90 and then switches to G91 Incremental mode on line N7.
The use of an Lxx value on line N10 allows us to repeat the thread milling arc multiple times, with a Single-Point Thread Mill.
% O60025 (G03 SNGL PNT THREAD MILL 1.5-8 UNC) ; (G54 X0 Y0 is at the center of the bore) ; (Z0 is on top of the part) ; (T1 is a .5 in dia thread mill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G91 G01 Z-0.5156 F50. (Feed to starting depth) ; (Z-0.5 minus 1/8th of the pitch = Z-0.5156) ; G41 X0.25 Y-0.25 F20. D01 (Cutter comp on) ; G03 X0.25 Y0.25 I0 J0.25 Z0.0156 (Arc into thread) ; (Ramps up by 1/8th of the pitch) ; I-0.5 J0 Z0.125 L5 (Thread cut, repeat 5 times) ; X-0.25 Y0.25 I-0.25 J0 Z0.0156 (Arc out of thread) ; (Ramps up by 1/8th of the pitch) ; G40 G01 X-0.25 Y-0.25 (Cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ;
249
Introduction
M30 (End program) ; %
Specific line description:
N5 = XY at the center of the hole
N7 = Thread depth, minus 1/8 pitch. Switches to G91
N8 = Enable Cutter Compensation
N9 = Arcs into thread, ramps up by 1/8 pitch
N10 = Cuts full thread, Z moving up by the pitch value
N11 = Arcs out of thread, ramps up 1/8 pitch
N12 = Cancel Cutter Compensation
N13 = Switches back to G90 Absolute positioning
Helical Motion
Helical (spiral) motion is possible with G02 or G03 by programming the linear axis that is not in the selected plane. This third axis will be moved along the specified axis in a linear manner, while the other two axes will be moved in the circular motion. The speed of each axis will be controlled so that the helical rate matches the programmed feedrate.
G04 Dwell (Group 00)
P - The dwell time in seconds or milliseconds
G04 specifies a delay or dwell in the program. The block with G04 delay for the time specified by the P address code. For example:
G04 P10.0. ;
Delays the program for 10 seconds.
NOTE: G04 P10. is a dwell of 10 seconds; G04 P10 is a dwell of 10 milliseconds. Make sure you use decimal points correctly so that you specify the correct dwell time.
G09 Exact Stop (Group 00)
G09 code is used to specify a controlled axes stop. It affects only the block in which it is commanded. It is non-modal and does not affect the blocks that come after the block where it is commanded. Machine moves decelerate to the programmed point before the control processes the next command.
250
G-codes
G10 Set Offsets (Group 00)
G10 lets you set offsets within the program. G10 replaces manual offset entry (i.e. Tool length and diameter, and work coordinate offsets).
L Selects offset category. L2 Work coordinate origin for G52 and G54-G59 L10 Length offset amount (for H code) L1 or L11 Tool wear offset amount (for H code) L12 Diameter offset amount (for D code) L13 Diameter wear offset amount (for D code) L20 Auxiliary work coordinate origin for G110-G129 P Selects a specific offset. P1-P200 Used to reference D or H code offsets (L10-L13) P0 G52 references work coordinate (L2) P1-P6 G54-G59 references work coordinates (L2) P1-P20 G110-G129 references auxiliary coordinates (L20) P1-P99 G154 reference auxiliary coordinate (L20) *R Offset value or increment for length and diameter. *X X-Axis zero location. *Y Y-Axis zero location. *Z Z-Axis zero location. *A A-Axis zero location. *B B-Axis zero location. *C C-Axis zero location.
*indicates optional
% O60100 (G10 SET OFFSETS) ; G10 L2 P1 G91 X6.0 ; (Move coordinate G54 6.0 to the right) ; ; G10 L20 P2 G90 X10. Y8. ; (Set work coordinate G111 to X10.0 Y8.0) ; ; G10 L10 G90 P5 R2.5 ; (Set offset for Tool #5 to 2.5) ; ; G10 L12 G90 P5 R.375 ; (Set diameter for Tool #5 to .375) ; ; G10 L20 P50 G90 X10. Y20. ; (Set work coordinate G154 P50 to X10. Y20.) ; %
251
Introduction
G12 Circular Pocket Milling CW / G13 Circular Pocket Milling CCW (Group 00)
These G-codes mill circular shapes. They are different only in that G12 uses a clockwise direction and G13 uses a counterclockwise direction. Both G-codes use the default XY circular plane (G17) and imply the use of G42 (cutter compensation) for G12 and G41 for G13. G12 and G13 are non-modal.
*D - Tool radius or diameter selection** F - Feedrate I - Radius of first circle (or finish if no K). I value must be greater than Tool Radius, but less
than K value. *K - Radius of finished circle (if specified) *L - Loop count for repeating deeper cuts *Q - Radius increment, or stepover (must be used with K) Z - Depth of cut or increment
*indicates optional
**To get the programmed circle diameter, the control uses the selected D code tool size. To program tool centerline select D0.
NOTE: Specify D00 if you do not want to use cutter compensation. If you do not specify a D value in the G12/G13 block, the control uses the last commanded D value, even if it was previously canceled with a G40.
Rapid-position the tool to the center of the circle. To remove all the material inside the circle, use I and Q values less than the tool diameter and a K value equal to the circle radius. To cut a circle radius only, use an I value set to the radius and no K or Q value.
% O60121(SAMPLE G12 AND G13) ; (G54 X0 Y0 is center of first pocket) ; (Z0 is on top of the part) ; (T1 is a .25 in. dia endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G12 I0.75 F10. Z-1.2 D01 (Finish pocket CW) ; G00 Z0.1 (Retract) ; X5.(Move to center of next pocket) ;
252
G-codes
G12 I0.3 K1.5 Q1. F10. Z-1.2 D01 ; (Rough & finish CW) ; G00 Z0.1 (Retract) ; X10.(Move to center of next pocket) ; G13 I1.5 F10. Z-1.2 D01 (Finish CCW) ; G00 Z0.1 (Retract) ; X15. (Move to center of the last pocket) ; G13 I0.3 K1.5 Q0.3 F10. Z-1.2 D01 ; (Rough & finish CCW) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
F7.9: Circular Pocket Milling, G12 Clockwise shown: [1] I only, [2] I, K and Q only.
These G codes assume cutter compensation, so you do not need to program G41 or G42 in the program block. However, you must include a D offset number, for cutter radius or diameter, to adjust the circle diameter.
These program examples show the G12 and G13 format, and the different ways that you can write these programs.
Single Pass: Use I only.
Applications: One-pass counter boring; rough and finish pocketing of smaller holes, ID cutting of O-ring grooves.
Multiple Pass: Use I, K, and Q.
Applications: Multiple-pass counter boring; rough and finish pocketing of large holes with cutter overlap.
Multiple Z-Depth Pass: Using I only, or I, K, and Q (G91 and L may also be used).
Applications: Deep rough and finish pocketing.
The previous figures show the tool path during the pocket milling G-codes.
K
II Q
1 2
253
Introduction
Example G13 multiple-pass using I, K, Q, L, and G91:
This program uses G91 and an L count of 4, so this cycle will execute a total of four times. The Z depth increment is 0.500. This is multiplied by the L count, making the total depth of this hole 2.000.
The G91 and L count can also be used in a G13 I only line.
% O60131 (G13 G91 CCW EXAMPLE) ; (G54 X0 Y0 is center of 1st pocket) ; (Z0 is on top of the part) ; (T1 is a 0.5 in. dia endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G13 G91 Z-.5 I.400 K2.0 Q.400 L4 D01 F20. ; (Rough & finish CCW) ; (BEGIN COMPLETION BLOCKS) ; G00 G90 Z0.1 M09 (Rapid retract, coolant off) ; G53 G49 Z0 M05 (Z home, spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G17 XY / G18 XZ / G19 YZ Plane Selection (Group 02)
The face of the workpiece to have a circular milling operation (G02, G03, G12, G13) done to it must have two of the three main axes (X, Y and Z) selected. One of three G codes is used to select the plane, G17 for XY, G18 for XZ, and G19 for YZ. Each is modal and applies to all subsequent circular motions. The default plane selection is G17, which means that a circular motion in the XY plane can be programmed without selecting G17. Plane selection also applies to G12 and G13, circular pocket milling, (always in the XY plane).
If cutter radius compensation is selected (G41 or G42), only use the XY plane (G17) for circular motion.
G17 Defined - Circular motion with the operator looking down on the XY table from above. This defines the motion of the tool relative to the table.
G18 Defined - Circular motion is defined as the motion for the operator looking from the rear of the machine toward the front control panel.
G19 Defined - Circular motion is defined as the motion for the operator looking across the table from the side of the machine where the control panel is mounted.
254
G-codes
F7.10: G17, G18, and G19 Circular Motion Diagrams: [1] Top view, [2] Front view, [3] Right view.
G20 Select Inches / G21 Select Metric (Group 06)
Use G20 (inch) and G21 (mm) codes are to make sure that the inch/metric selection is set correctly for the program. Use Setting 9 to select between inch and metric programming. G20 in a program causes an alarm if Setting 9 is not set to inch.
G28 Return to Machine Zero Point (Group 00)
The G28 code returns all axes (X, Y, Z, A and B) simultaneously to the machine zero position when no axis is specified on the G28 line.
Alternatively, when one or more axes locations are specified on the G28 line, G28 will move to the specified locations and then to machine zero. This is called the G29 reference point; it is saved automatically for optional use in G29.
G28 also cancels tool length offsets.
Setting 108 affects the way that rotary axes return when you command a G28. Refer to page 382 for more information.
% G28 G90 X0 Y0 Z0 (moves to X0 Y0 Z0) ; G28 G90 X1. Y1. Z1. (moves to X1. Y1. Z1.) ; G28 G91 X0 Y0 Z0 (moves directly to machine zero) ; G28 G91 X-1. Y-1. Z-1 (moves incrementally -1.) ; %
G29 Return From Reference Point (Group 00)
G29 moves the axes to a specific position. The axes selected in this block are moved to the G29 reference point saved in G28, and then moved to the location specified in the G29 command.
G18 G19
X X Y Y
Z Z
G17
G03
G03 G02
G02 G02
G03
G03
G02
G02
G03 G02
G03
1 2 3
255
Introduction
G31 Feed Until Skip (Group 00)
(This G-code is optional and requires a probe)
This G-code is used to record a probed location to a macro variable.
F - Feedrate *X - X-Axis absolute motion command *Y - Y-Axis absolute motion command *Z - Z-Axis absolute motion command *A - A-Axis absolute motion command *B - B-Axis absolute motion command *C - C-axis absolute motion command (UMC)
*indicates optional
This G-code moves the programmed axes while looking for a signal from the probe (skip signal). The specified move is started and continues until the position is reached or the probe receives a skip signal. If the probe receives a skip signal during the G31 move, axis motion stops, the control beeps and records the skip signal position to macro variables. The program will then execute the next line of code. If the probe does not receive a skip signal during the G31 move, the control will not beep and the skip signal position will be recorded at the end of the programmed move. The program will continue. This G-code requires at least one Axis specified and a feedrate. If the command contains neither, an alarm is generated.
Macro variables #5061 through #5066 are designated to store skip signal positions for each axis. For more information about these skip signal variables see the macro section of this manual.
Notes:
This code is non-modal and only applies to the block of code in which G31 is specified.
Do not use Cutter Compensation (G41, G42) with a G31.
The G31 line must have a Feed command. To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
Turn on the probe before using G31.
If your mill has the standard Renishaw probing system, use the following commands to turn on the probe.
Use the following code to turn on the spindle probe.
M59 P1134 ;
Use the following code to turn on the tool-setting probe.
% M59 P1133 ;
256
G-codes
G04 P1.0 ; M59 P1134 ; %
Use the following code to turn off either probe.
M69 P1134 ;
Also see M75, M78 and M79 ;
Sample program:
This sample program measures the top surface of a part with the spindle probe traveling in the Z negative direction. To use this program, the G54 part location must be set at, or close to the surface to be measured.
% O60311 (G31 SPINDLE PROBE) ; (G54 X0. Y0. is at the center of the part) ; (Z0. is at, or close to the surface) ; (T1 is a Spindle probe) ; (PREPARATION) ; T1 M06 (Select Tool 1) ; G00 G90 G54 X0 Y0 (Rapid to X0. Y0.) ; M59 P1134 (Spindle probe on) ; G43 H1 Z1. (Activate tool offset 1) ; (PROBING) ; G31 Z-0.25 F50. (Measure top surface) ; Z1. (Retract to Z1.) ; M69 P1134 (Spindle probe off) ; (COMPLETION) ; G00 G53 Z0. (Rapid retract to Z home) ; M30 (End program) ; %
G35 Automatic Tool Diameter Measurement (Group 00)
(This G-code is optional and requires a probe)
This G-code is used to set a tool diameter offset.
F - Feedrate *D - Tool diameter offset number *X - X-Axis command *Y - Y-Axis command
*indicates optional
257
Introduction
Automatic Tool Diameter Offset Measurement function (G35) is used to set the tool diameter (or radius) using two touches of the probe; one on each side of the tool. The first point is set with a G31 block using an M75, and the second point is set with the G35 block. The distance between these two points is set into the selected (non-zero) Dnnn offset.
Setting 63 Tool Probe Width is used to reduce the measurement of the tool by the width of the tool probe. See the settings section of this manual for more information about Setting 63.
This G-code moves the axes to the programmed position. The specified move is started and continues until the position is reached or the probe sends a signal (skip signal).
NOTES:
This code is non-modal and only applies to the block of code in which G35 is specified.
Do not use Cutter Compensation (G41, G42) with a G35.
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
Turn on the tool-setting probe before using G35.
If your mill has the standard Renishaw probing system, use the following commands to turn on the tool-setting probe.
% M59 P1133 ; G04 P1.0 ; M59 P1134 ; %
Use the following commands to turn off the tool-setting probe.
M69 P1134 ;
Turn on the spindle in reverse (M04), for a right handed cutter.
Also see M75, M78, and M79.
Also see G31.
Sample program:
This sample program measures the diameter of a tool and records the measured value to the tool offset page. To use this program, the G59 Work Offset location must be set to the tool-setting probe location.
% O60351 (G35 MEASURE AND RECORD TOOL DIA OFFSET) ; (G59 X0 Y0 is the tool setting probe location) ; (Z0 is at the surface of tool-setting probe) ; (T1 is a spindle probe) ; (BEGIN PREPARATION BLOCKS) ;
258
G-codes
T1 M06 (Select tool 1) ; G00 G90 G59 X0 Y-1. (Rapid tool next to probe) ; M59 P1133 (Select tool-setting probe) ; G04 P1. (Dwell for 1 second) ; M59 P1134 (Probe on) ; G43 H01 Z1. (Activate tool offset 1) ; S200 M04 (Spindle on CCW) ; (BEGIN PROBING BLOCKS) ; G01 Z-0.25 F50. (Feed tool below surface of probe) ; G31 Y-0.25 F10. M75 (Set reference point) ; G01 Y-1. F25. (Feed away from the probe) ; Z0.5 (Retract above the probe) ; Y1. (Move over the probe in Y-axis) ; Z-0.25 (Move tool below surface of the probe) ; G35 Y0.205 D01 F10. ; (Measure & record tool diameter) ; (Records to tool offset 1); G01 Y1. F25. (Feed away from the probe) ; Z1. (Retract above the probe) ; M69 P1134 (Probe off) ; (BEGIN COMPLETION BLOCKS) ; G00 G53 Z0. (Rapid retract to Z home) ; M30 (End program) ; %
G36 Automatic Work Offset Measurement (Group 00)
(This G-code is optional and requires a probe)
This G-code is used to set work offsets with a probe.
F - Feedrate *I - Offset distance along X-Axis *J - Offset distance along Y-Axis *K - Offset distance along Z-Axis *X - X-Axis motion command *Y - Y-Axis motion command *Z - Z-Axis motion command
*indicates optional
Automatic Work Offset Measurement (G36) is used to command a probe to set work coordinate offsets. A G36 will feed the axes of the machine in an effort to probe the work piece with a spindle mounted probe. The axis (axes) will move until a signal from the probe is received or the end of the programmed move is reached. Tool compensation (G41, G42, G43, or G44) must not be active when this function is performed. The point where the skip signal is received becomes the zero position for the currently active work coordinate system of each axis programmed. This G-code requires at least one Axis specified, if neither are found, an alarm is generated.
259
Introduction
If an I, J, or K is specified, the appropriate axis work offset is shifted by the amount in the I, J, or K command. This allows the work offset to be shifted away from where the probe actually contacts the part.
NOTES:
This code is non-modal and only applies to the block of code in which G36 is specified.
The points probed are offset by the values in Settings 59 through 62. See the settings section of this manual for more information.
Do not use Cutter Compensation (G41, G42) with a G36.
Do not use tool length Compensation (G43, G44) with G36
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
Turn on the spindle probe before using G36.
If your mill has the standard Renishaw probing system, use the following commands to turn on the spindle probe.
M59 P1134 ;
Use the following commands to turn off the spindle probe.
M69 P1134 ;
Also see M78, and M79.
% O60361 (G36 AUTO WORK OFFSET MEASUREMENT) ; (G54 X0 Y0 is at the top-center of the part) ; (Z0 is at the surface of part) ; (T1 is a Spindle probe) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 20) ; G00 G90 G54 X0 Y1. (Rapid to 1st position) ; (BEGIN PROBING BLOCKS) ; M59 P1134 (Spindle probe on) ; Z-.5 (Move the probe below surface of part) ; G01 G91 Y-0.5 F50. (Feed towards the part) ; G36 Y-0.7 F10. (Measure and record Y offset) ; G91 Y0.25 F50. (Move incrementally away from part) ; G00 Z1. (Rapid retract above part) ; M69 P1134 (Spindle probe off) ; (BEGIN COMPLETION BLOCKS) ; G00 G90 G53 Z0. (Rapid retract to Z home) ; M30 (End program) ; %
260
G-codes
G37 Automatic Tool Offset Measurement (Group 00)
(This G-code is optional and requires a probe)
This G-code is used to set tool length offsets.
F - Feedrate H - Tool offset number Z - Required Z-Axis offset
Automatic Tool Length Offset Measurement (G37) is used to command a probe to set tool length offsets. A G37 will feed the Z-Axis in an effort to probe a tool with a tool-setting probe. The Z-Axis will move until a signal from the probe is received or the travel limit is reached. A non-zero H code and either G43 or G44 must be active. When the signal from the probe is received (skip signal) the Z position is used to set the specified tool offset (Hnnn). The resulting tool offset is the distance between the current work coordinate zero point and the point where the probe is touched. If a non-zero Z value is on the G37 line of code the resulting tool offset will be shifted by the non-zero amount. Specify Z0 for no offset shift.
The work coordinate system (G54, G55, etc.) and the tool length offsets
(H01-H200) may be selected in this block or the previous block.
NOTES:
This code is non-modal and only applies to the block of code in which G37 is specified.
A non-zero H code and either G43 or G44 must be active.
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
Turn on the tool-setting probe before using G37.
If your mill has the standard Renishaw probing system, use the following commands to turn on the tool-setting probe.
% M59 P1133 ; G04 P1. ; M59 P1134 ; %
Use the following command to turn off the tool-setting probe.
M69 P1134 ;
Also see M78 and M79.
Sample program:
This sample program measures the length of a tool and records the measured value on the tool offset page. To use this program, the G59 work offset location must be set to the tool-setting probe location.
261
Introduction
% O60371 (G37 AUTO TOOL OFFSET MEASUREMENT) ; (G59 X0 Y0 is center of tool-setting probe) ; (Z0 is at the surface of tool-setting probe) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G59 X0 Y0 (Rapid to center of the probe) ; G00 G43 H01 Z5. (Activate tool offset 1) ; (BEGIN PROBING BLOCKS) ; M59 P1133 (Select tool-setting probe) ; G04 P1. (Dwell for 1 second) ; M59 P1134 (Probe on) ; G37 H01 Z0 F30. (Measure & record tool offset) ; M69 P1134 (Probe off) ; (BEGIN COMPLETION BLOCKS) ; G00 G53 Z0. (Rapid retract to Z home) ; M30 (End program) ; %
G40 Cutter Comp Cancel (Group 07)
G40 cancels G41 or G42 cutter compensation.
G41 2D Cutter Compensation Left / G42 2D Cutter Comp. Right (Group 07)
G41 will select cutter compensation left; that is, the tool is moved to the left of the programmed path to compensate for the size of the tool. A D address must be programmed to select the correct tool radius or diameter offset. If the value in the selected offset is negative, cutter compensation will operate as though G42 (Cutter Comp Right.) was specified.
The right or left side of the programmed path is determined by looking at the tool as it moves away. If the tool needs to be on the left of the programmed path as it moves away, use G41. If it needs to be on the right of the programmed path as it moves away, use G42. For more information, refer to the Cutter Compensation section.
G43 Tool Length Compensation + (Add) / G44 Tool Length Comp - (Subtract) (Group 08)
A G43 code selects tool length compensation in the positive direction; the tool length in the offsets page is added to the commanded axis position. A G44 code selects tool length compensation in the negative direction; the tool length in the offsets page is subtracted from the commanded axis position. A non-zero H address must be entered to select the correct entry from the offsets page.
262
G-codes
G47 Text Engraving (Group 00)
G47 lets you engrave a line of text, or sequential serial numbers, with a single G-code. To use G47, Settings 29 (G91 Non-Modal) and 73 (G68 Incremental Angle) must be OFF.
NOTE: Engraving along an arc is not supported.
*E - Plunge feed rate (units/min) F - Engraving feedrate (units/min) *I - Angle of rotation (-360. to +360.); default is 0 *J - Height of text in in/mm (minimum = 0.001 inch); default is 1.0 inch P - 0 for literal text engraving - 1 for sequential serial number engraving - 32-126 for ASCII characters *R - Return plane *X - X start of engraving *Y - Y start of engraving *Z - Depth of cut
*indicates optional
Literal Text Engraving
This method is used to engrave text on a part. The text should be in the form of a comment on the same line as the G47 command. For example, G47 P0 (TEXT TO ENGRAVE), will engrave TEXT TO ENGRAVE on the part.
NOTE: Corner rounding can cause engraved characters to appear rounded and make them harder to read. To improve the sharpness and readability of engraved text, consider lowering the corner-rounding values with a G187 E.xxx value before the G47 command. Suggested starting E values are E0.002 (inch) or E0.05 (metric). Command a G187 alone after the engraving cycle to restore the default corner-rounding level. Refer to the example below:
G187 E.002 (PREFACE ENGRAVING WITH A G187 E.xxx) G47 P0 X.15 Y0. I0. J.15 R.1 Z-.004 F80. E40. (Engraving Text) G00 G80 Z0.1 G187 (RESTORE NORMAL CORNER ROUNDING FOR SMOOTHNESS)
The characters available for engraving are:
A-Z, a-z 0-9, and ` ~ ! @ # $ % ^ & * - _ = + [ ] { } \ | ; : , . / < > ?
263
Introduction
Not all of these characters can be entered from the control. When programming from the mill keypad, or engraving parenthesis (), refer to the following Engraving Special Characters section.
This example creates the figure shown.
% O60471 (G47 TEXT ENGRAVING) ; (G54 X0 Y0 is at the bottom-left of part) ; (Z0 is on top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y2. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G47 P0 (TEXT TO ENGRAVE) X2. Y2. I45. J0.5 R0.05 Z-0.005 F15. E10. ; (Starts at X2. Y2., engraves text at 45 deg) ; (BEGIN COMPLETION BLOCKS) ; G00 G80 Z0.1 (Cancel canned cycle) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
F7.11: Engraving Program Example
TEXT TO
EN G R AVE
3 4 5 6
3
4
5
6
2
2
1
1 0.
5"
45 o
-45 o
0 o
180 o
270 o
90 o
264
G-codes
In this example, G47 P0 selects literal string engraving. X2.0 Y2.0 sets the starting point for the text at the bottom left corner of first letter. I45. places the text at a positive 45 angle. J.5 sets the text height to 0.5 units-in/mm. R.05 retracts cutter to 0.05 units above part after engraving. Z-0.005 sets an engraving depth of -0.005 units. F15.0 sets an engraving, XY move, feedrate of 15 units per minute. E10.0 sets a plunge, -Z move, feedrate of 10 units per minute.
Special Characters
Engraving Special Characters involves using G47 with specific P values (G47 P32-126).
P- values to engrave specific characters
T7.1: G47 P Values for Special Characters
32 space 59 ; semicolon
33 ! exclamation mark 60 < less than
34 " double quotation mark 61 = equals
35 # number sign 62 > greater than
36 $ dollar sign 63 ? question mark
37 % percent sign 64 @ at sign
38 & ampersand 65-90 A-Z capitol letters
39 closed single quote 91 [ open square bracket
40 ( open parenthesis 92 \ backslash
41 ) close parenthesis 93 ] closed square bracket
42 * asterisk 94 ^ caret
43 + plus sign 95 _ underscore
44 , comma 96 open single quote
45 - minus sign 97-122 a-z lowercase letters
46 . period 123 { open curly bracket
47 / slash 124 | vertical bar
265
Introduction
Example:
To engrave $2.00, you need (2) blocks of code. The first block uses a P36 to engrave the dollar sign ($), and the second block uses P0 (2.00).
NOTE: Shift the X/Y start location between the first and second line of code to make a space between the dollar sign and the 2.
This is the only method to engrave parenthesis ().
Engraving Sequential Serial Numbers
This method is used to engrave numbers on a series of parts with the number being increased by one each time. The # symbol is used to set the number of digits in the serial number. For example, G47 P1 (####), limits the number to four digits while (##) would limit the serial number to two digits.
This program engraves a four digit serial number.
% O00037 (SERIAL NUMBER ENGRAVING) ; T1 M06 ; G00 G90 G98 G54 X0. Y0. ; S7500 M03 ; G43 H01 Z0.1 ; G47 P1 (####) X2. Y2. I0. J0.5 R0.05 Z-0.005 F15. E10. ; G00 G80 Z0.1 ; M05 ; G28 G91 Z0 ; M30 ; %
Initial Serial Number
There are two ways to set the initial serial number to be engraved. The first requires replacing the # symbols within the parenthesis with the first number to be engraved. With this method, nothing is engraved when the G47 line is executed (it is only setting the initial serial number). Execute this once and then change the value within the parenthesis back to # symbols to engrave normally.
The following example will set the initial serial number to be engraved to 0001. Run this code once and then change (0001) to (####).
48-57 0-9 numbers 125 } closed curly bracket
58 : colon 126 ~ tilde
266
G-codes
G47 P1 (0001) ;
The second method for setting the initial serial number to be engraved is to change the Macro Variable where this value is stored (Macro Variable 599). The Macros option does not need to be enabled.
Press [CURRENT COMMANDS] then press [PAGE UP] or [PAGE DOWN] as needed to display the MACRO VARIABLES page. From that screen, enter 599 and press Down cursor.
Once 599 is highlighted on the screen, type in the initial serial number to engrave, [1] for example, then press [ENTER].
The same serial number can be engraved multiple times on the same part with the use of a macro statement. The macros option is required. A macro statement as shown below could be inserted between two G47 engraving cycles to keep the serial number from incrementing to the next number. For more details, see the Macros section of this manual.
Macro Statement: #599=[#599-1]
Engraving Around the Outside of a Rotary Part (G47, G107)
You can combine a G47 Engraving cycle with a G107 Cylindrical Mapping cycle to engrave text (or a serial number) along the outside diameter of a rotary part.
This code engraves a four digit serial number along the outer diameter of a rotary part.
% O60472 (G47 SERIAL NUMBER ENGRAVING) ; (G54 X0 Y0 is at the bottom left of the part) ; (Z0 is on top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y2. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G47 P1 (####) X2. Y2. J0.5 R0.05 Z-0.005 F15. E10. ; (Engraves serial number) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
For more details on this cycle, refer to the G107 section.
267
Introduction
G49 G43/G44/G143 Cancel (Group 08)
This G code cancels tool length compensation.
NOTE: An H0, G28, M30, and [RESET] will also cancel tool length compensation.
G50 Cancel Scaling (Group 11)
G50 cancels the optional scaling feature. Any axis scaled by a previous G51 command is no longer in effect.
G51 Scaling (Group 11)
NOTE: You must purchase the Rotation and Scaling option to use this G-code. A 200-hour option tryout is also available; refer to page 154 for instructions.
*X - Center of scaling for the X Axis *Y - Center of scaling for the Y Axis *Z - Center of scaling for the Z Axis *P - Scaling factor for all axes; three-place decimal from 0.001 to 999.999
*indicates optional
G51 [X...] [Y...] [Z...] [P...] ;
The control always uses a scaling center to determine the scaled position. If you do not specify a scaling center in the G51 command block, then the control uses the last commanded position as the scaling center. The control does NOT move to the scaling center.
With a scaling (G51) command, the control multiplies by a scaling factor (P) all X, Y, Z, A, B, and C end points for rapids, linear feeds, and circular feeds. G51 also scales I, J, K, and R for G02 and G03. The control offsets all of these positions relative to a scaling center.
There are (3) ways to specify the scaling factor:
A P address code in the G51 block applies the specified scaling factor to all axes.
Setting 71 applies its value as a scaling factor to all axes if it has a nonzero value and you do not use a P address code.
Settings 188, 189, and 190 apply their values as scaling factors to the X, Y, and Z axes independently if you do not specify a P value and Setting 71 has a value of zero. These settings must have equal values to use them with G02 or G03 commands.
268
G-codes
G51 affects all appropriate positioning values in the blocks after the G51 command.
These example programs show how different scaling centers affect the scaling command.
F7.12: G51 No Scaling Gothic Window: [1] Work coordinate origin.
% O60511 (G51 SCALING SUBPROGRAM) ; (G54 X0 Y0 is at the bottom left of window) ; (Z0 is on top of the part) ; (Run with a main program) ; (BEGIN CUTTING BLOCKS) ; G01 X2. ; Y2. ; G03 X1. R0.5 ; G01 Y1. ; M99 ; %
1
269
Introduction
The first example illustrates how the control uses the current work coordinate location as a scaling center. Here, it is X0 Y0 Z0.
F7.13: G51 Scaling Current Work Coordinates: The Origin [1] is the work origin and the center of scaling.
% o60512 (G51 SCALING FROM ORIGIN) ; (G54 X0 Y0 is at the bottom left of part) ; (Z0 is on top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 M08 (Activate tool offset 1) ; (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.1 F25. (Feed to cutting depth) ; M98 P60511 (Cuts shape without scaling) ; G00 Z0.1 (Rapid Retract) ; G00 X2. Y2. (Rapid to new scale position) ; G01 Z-.1 F25. (Feed to cutting depth) ; G51 X0 Y0 P2. (2x scale from origin) ; M98 P60511 (run subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09(Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
1
270
G-codes
The next example specifies the center of the window as the scaling center.
F7.14: G51 Scaling Center of Window: [1] Work coordinate origin, [2] Center of scaling.
% o60513 (G51 SCALING FROM CENTER OF WINDOW) ; (G54 X0 Y0 is at the bottom left of part) ; (Z0 is on top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 M08 (Activate tool offset 1) ; (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.1 F25. (Feed to cutting depth) ; M98 P60511 (Cuts shape without scaling) ; G00 Z0.1 (Rapid Retract) ; G00 X0.5 Y0.5 (Rapid to new scale position) ; G01 Z-.1 F25. (Feed to cutting depth) ; G51 X1.5 Y1.5 P2. (2x scale from center of window) ; M98 P60511 (run subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09(Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
1
2
271
Introduction
The last example illustrates how scaling can be placed at the edge of tool paths as if the part was being set against locating pins.
F7.15: G51 Scaling Edge of Tool Path: [1] Work coordinate origin, [2] Center of scaling.
% O60514 (G51 SCALING FROM EDGE OF TOOLPATH) ; (G54 X0 Y0 is at the bottom left of part) ; (Z0 is on top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 M08 (Activate tool offset 1) ; (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.1 F25. (Feed to cutting depth) ; M98 P60511 (Cuts shape without scaling) ; G00 Z0.1 (Rapid Retract) ; G00 X1. Y1. (Rapid to new scale position) ; G01 Z-.1 F25. (Feed to cutting depth) ; G51 X1. Y1. P2. (2x scale from edge of toolpath) ; M98 P60511 (run subprogram) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09(Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
Tool offsets and cutter compensation values are not affected by scaling.
For canned cycles, G51 scales the initial point, depth, and return plane relative to the center of scaling.
1
2
272
G-codes
To retain the functionality of canned cycles, G51 does not scale these:
In G73 and G83:
Peck depth (Q) Depth of first peck (I) Amount to reduce peck depth per pass (J) Minimum peck depth (K)
In G76 and G77:
The shift value (Q)
The control rounds the final results of scaling to the lowest fractional value of the variable being scaled.
G52 Set Work Coordinate System (Group 00 or 12)
G52 works differently depending on the value of Setting 33. Setting 33 selects the Fanuc, Haas, or Yasnac style of coordinates.
If YASNAC is selected, G52 is a group 12 G-code. G52 works the same as G54, G55, etc. All of the G52 values will not be set to zero (0) when powered on, reset is pressed, at the end of the program, or by an M30. When using a G92 (Set Work Coordinate Systems Shift Value), in Yasnac format, the X, Y, Z, A, and B values are subtracted from the current work position, and automatically entered into the G52 work offset.
If FANUC is selected, G52 is a group 00 G-code. This is a global work coordinate shift. The values entered into the G52 line of the work offset page are added to all work offsets. All of the G52 values in the work offset page will be set to zero (0) when powered on, reset is pressed, changing modes, at the end of the program, by an M30, G92 or a G52 X0 Y0 Z0 A0 B0. When using a G92 (Set Work Coordinate Systems Shift Value), in Fanuc format, the current position in the current work coordinate system is shifted by the values of G92 (X, Y, Z, A, and B). The values of the G92 work offset are the difference between the current work offset and the shifted amount commanded by G92.
If HAAS is selected, G52 is a group 00 G-code. This is a global work coordinate shift. The values entered into the G52 line of the work offset page are added to all work offsets. All of the G52 values will be set to zero (0) by a G92. When using a G92 (Set Work Coordinate Systems Shift Value), in Haas format, the current position in the current work coordinate system is shifted by the values of G92 (X, Y, Z, A, and B). The values of the G92 work offset are the difference between the current work offset and the shifted amount commanded by G92 (Set Work Coordinate Systems Shift Value).
G53 Non-Modal Machine Coordinate Selection (Group 00)
This code temporarily cancels work coordinate offsets and uses the machine coordinate system. In the machine coordinate system, the zero point for each axis is the position where the machine goes when a Zero Return is performed. G53 will revert to this system for the block in which it is commanded.
273
Introduction
G54-59 Select Work Coordinate System #1 - #6 (Group 12)
These codes select one of more than six user coordinate systems. All future references to axes positions will be interpreted using the new (G54 G59) coordinate system. See also321 for additional work offsets.
G60 Uni-Directional Positioning (Group 00)
This G code is used to provide positioning only from the positive direction. It is provided only for compatibility with older systems. It is non-modal, so does not affect the blocks that follow it. Also refer to Setting 35.
G61 Exact Stop Mode (Group 15)
The G61 code is used to specify an exact stop. It is modal; therefore, it affects the blocks that follow it. The machine axes will come to an exact stop at the end of each commanded move.
G64 G61 Cancel (Group 15)
G64 code cancels exact stop (G61).
G65 Macro Subprogram Call Option (Group 00)
G65 is described in the Macros programming section.
G68 Rotation (Group 16)
NOTE: You must purchase the Rotation and Scaling option to use this G-code. A 200-hour option tryout is also available; refer to page 154 for instructions.
*G17, G18, G19 - Plane of rotation, default is current *X/Y, X/Z, Y/Z - Center of rotation coordinates on the selected plane** *R - Angle of rotation, in degrees. Three-place decimal, -360.000 to 360.000.
*indicates optional
**The axis designation you use for these address codes corresponds to the axes of the current plane. For example, in the G17 (XY plane), you would use X and Y to specify the center of rotation.
When you command a G68, the control rotates all X, Y, Z, I, J, and K values about a center of rotation to a specified angle (R),.
You can designate a plane with G17, G18, or G19 before G68 to establish the axis plane to rotate. For example:
G17 G68 Xnnn Ynnn Rnnn ;
274
G-codes
If you do not designate a plane in the G68 block, the control uses the currently active plane.
The control always uses a center of rotation to determine the positional values after rotation. If you do not specify a center of rotation, the control uses the current location. The control does NOT move to the center of rotation specified in G68.
G68 affects all appropriate positional values in the blocks after the G68 command. Values in the line that contains the G68 command are not rotated. Only the values in the plane of rotation are rotated; therefore, if G17 is the current plane of rotation, the command affects only the X and Y values.
A positive number (angle) in the R address rotates the feature counterclockwise.
If you do not specify the angle of rotation (R), then the control uses the value in Setting 72.
In G91 mode (incremental) with Setting 73 ON, the rotation angle changes by the value in R. In other words, each G68 command changes the rotation angle by the value specified in R.
The rotational angle is set to zero at the beginning of the program, or you can set it to a specific angle with G68 in G90 mode.
These examples illustrate rotation with G68. The first program defines a Gothic window shape to cut. The rest of the programs use this program as a subprogram.
F7.16: G68 Start Gothic Window, No rotation: [1] Work coordinate origin.
% O60681 (GOTHIC WINDOW SUBPROGRAM) ; F20 S500 (SET FEED AND SPINDLE SPEED) ; G00 X1. Y1. (RAPID TO LOWER-LEFT WINDOW CORNER) ; G01 X2. (BOTTOM OF WINDOW) ; Y2. (RIGHT SIDE OF WINDOW); G03 X1. R0.5 (TOP OF WINDOW) ; G01 Y1. (FINISH WINDOW) ; M99; &
Z
X
Y
1
275
Introduction
The first example illustrates how the control uses the current work coordinate location as a rotation center (X0 Y0 Z0).
F7.17: G68 Rotation Current Work Coordinate: [1] Work coordinate origin and center of rotation.
O60682 (ROTATE ABOUT WORK COORDINATE) ; G59 (OFFSET) ; G00 G90 X0 Y0 Z-0.1 (WORK COORDINATE ORIGIN) ; M98 P60681 (CALL SUBPROGRAM) ; G90 G00 X0 Y0 (LAST COMMANDED POSITION) ; G68 R60. (ROTATE 60 DEGREES) ; M98 P60681 (CALL SUBPROGRAM) ; G69 G90 X0 Y0 (CANCEL G68) ; M30 %
Z
X
Y
1
276
G-codes
The next example specifies the center of the window as the rotation center.
F7.18: G68 Rotation Center of Window: [1] Work coordinate origin, [2] Center of rotation.
% O60683 (ROTATE ABOUT CENTER OF WINDOW) ; G59 (OFFSET) ; G00 G90 X0 Y0 Z-0.1 (WORK COORDINATE ORIGIN) ; G68 X1.5 Y1.5 R60. ; (ROTATE SHAPE 60 DEGREES ABOUT CENTER) ; M98 P60681 (CALL SUBPROGRAM) ; G69 G90 G00 X0 Y0 ; (CANCEL G68, LAST COMMANDED POSITION) ; M30 ; %
Z
X
Y
1 2
277
Introduction
This next example shows how the G91 mode can be used to rotate patterns about a center. This is often useful for making parts that are symmetric about a given point.
F7.19: G68 Rotate Patterns About Center: [1] Work coordinate origin and center of rotation.
% O60684 (ROTATE PATTERN ABOUT CENTER) ; G59 (OFFSET) ; G00 G90 X0 Y0 Z-0.1 (WORK COORDINATE ORIGIN) ; M98 P1000 L6 (CALL SUBPROGRAM, LOOP 6 TIMES) ; M30 (END AFTER SUBPROGRAM LOOP) ; N1000 (BEGIN LOCAL SUBPROGRAM) ; G91 G68 R60. (ROTATE 60 DEGREES) ; G90 M98 P60681 (CALL WINDOW SUBPROGRAM) ; G90 G00 X0 Y0 (LAST COMMANDED POSITION) ; M99; %
Do not change the plane of rotation while G68 is in effect.
Rotation with Scaling:
If you use scaling and rotation at the same time, you should turn on scaling before rotation, and use separate blocks. Use this template:
% G51 ... (SCALING) ; ... ; G68 ... (ROTATION) ; ... program ; G69 ... (ROTATION OFF) ; ... ; G50 ... (SCALING OFF) ; %
Rotation with Cutter Compensation:
Turn on cutter compensation after the rotation command. Turn off cutter compensation before you turn off rotation.
Z
X
Y
1
278
G-codes
G69 Cancel G68 Rotation (Group 16)
(This G-code is optional and requires Rotation and Scaling.)
G69 cancels rotation mode.
G70 Bolt Hole Circle (Group 00)
I - Radius *J - Starting angle (0 to 360.0 degrees CCW from horizontal; or 3 oclock position) L - Number of holes evenly spaced around the circle
*indicates optional
This non-modal G code must be used with one of the canned cycles G73, G74, G76, G77, or G81-G89. A canned cycle must be active so that at each position, a drill or tap function is performed. See also G-code Canned Cycles section.
% O60701 (G70 BOLT HOLE CIRCLE) ; (G54 X0 Y0 is center of the circle ) ; (Z0 is on the top of the part) ; (T1 is a drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 G98 Z-1. R0.1 F15. L0 (Begin G81) ; (L0 skip drilling X0 Y0 position) ; G70 I5. J15. L12 (Begin G70) ; (Drills 12 holes on a 10.0 in. diameter circle) ; G80 (Canned Cycles off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home and Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
279
Introduction
G71 Bolt Hole Arc (Group 00)
I - Radius *J - Starting angle (degrees CCW from horizontal) K - Angular spacing of holes (+ or ) L - Number of holes
*indicates optional
This non-modal G code is similar to G70 except that it is not limited to a complete circle. G71 belongs to Group 00 and thus is non-modal. A canned cycle must be active so that at each position, a drill or tap function is performed.
G72 Bolt Holes Along an Angle (Group 00)
I - Distance between holes *J - Angle of line (degrees CCW from horizontal) L - Number of holes
*indicates optional
This non-modal G code drills L number of holes in a straight line at the specified angle. It operates similarly to G70. For a G72 to work correctly, a canned cycle must be active so that at each position, a drill or tap function is performed.
F7.20: G70, G71, and G72 Bolt Holes: [I] Radius of bolt circle (G70, G71), or distance between holes (G72), [J] Starting angle from the 3 oclock position, [K] Angular spacing between holes, [L] Number of holes.
I
J
I
I J J
K
G70 G71 G72
280
G-codes
G73 High-Speed Peck Drilling Canned Cycle (Group 09)
F - Feedrate *I - First peck depth *J - Amount to reduce pecking depth for pass *K - Minimum peck depth (The control calculates the number of pecks) *L - Number of loops (Number of holes to drill) if G91 (Incremental Mode) is used *P - Pause at the bottom of the hole (in seconds) *Q - Peck Depth (always incremental) *R - Position of the R plane (Distance above part surface) *X - X-Axis location of hole *Y - Y-Axis location of hole *Z - Position of the Z-Axis at the bottom of hole
* indicates optional
F7.21: G73 Peck Drilling. Left: Using I, J, and K Addresses. Right: Using Only the Q Address. [#22] Setting 22.
I, J, K, and Q are always positive numbers.
There are three methods to program a G73: using the I, J, K addresses, using the K and Q addresses, and using only a Q address.
If I, J, and K are specified, The first pass will cut in by the value I, each succeeding cut will be reduced by the value of J, and the minimum cutting depth is K. If P is specified, the tool will pause at the bottom of the hole for that amount of time.
If K and Q are both specified, a different operating mode is selected for this canned cycle. In this mode, the tool is returned to the R plane after the number of passes totals up to the K amount.
If only Q is specified, a different operating mode is selected for this canned cycle. In this mode, the tool is returned to the R plane after all pecks are completed, and all pecks will be equal to the Q value.
R
I = I 1
Q
Q
Q
I = I - J 2
1
I3= K Z
Z
R #22
#22
281
Introduction
F7.22: G73 Peck Drilling Canned Cycles using the K and Q Addresses: [#22] Setting 22.
G74 Reverse Tap Canned Cycle (Group 09)
F - Feedrate. Use the formula described in the canned cycle introduction to calculate feedrate and spindle speed.
* J - Retract Multiple (How fast to retract - see Setting 130) * L - Number of loops (How many holes to tap) if G91 (Incremental Mode) is used * R - Position of the R plane (position above the part) where tapping starts * X - X-Axis location of hole * Y - Y-Axis location of hole Z - Position of the Z-Axis at the bottom of hole
*indicates optional
F7.23: G74 Tapping Canned Cycle
R #22
#22 Q
Q
Q
Z
K
X
Z Y
X
Z Y
G98
G99
R
Z
R
Z
282
G-codes
G76 Fine Boring Canned Cycle (Group 09)
F - Feedrate *I - Shift value along the X-Axis before retracting, if Q is not specified *J - Shift value along the Y-Axis before retracting, if Q is not specified *L - Number of holes to bore if G91 (Incremental Mode) is used *P - The dwell time at the bottom of the hole *Q - The shift value, always incremental *R - Position of the R plane (position above the part) *X - X-Axis location of hole *Y - Y-Axis location of hole *Z - Position of the Z-Axis at the bottom of hole
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
F7.24: G76 Fine Boring Canned Cycles
In addition to boring the hole, this cycle will shift the X and/or Y Axis prior to retracting in order to clear the tool while exiting the part. If Q is used Setting 27 determines the shift direction. If Q is not specified, the optional I and J values are used to determine the shift direction and distance.
X
Z Y
X
ZY
G98
G99
R
I , J / Q I , J / QZ
R
Z
283
Introduction
G77 Back Bore Canned Cycle (Group 09)
F - Feedrate *I - Shift value along the X Axis before retracting, if Q is not specified *J - Shift value along the Y Axis before retracting, if Q is not specified *L - Number of holes to bore if G91 (Incremental Mode) is used *Q - The shift value, always incremental *R - Position of the R plane *X - X-Axis location of hole *Y - Y-Axis location of hole *Z - Z-Axis position to cut to
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
In addition to boring the hole, this cycle shifts the X and Y Axis before and after the cut, to clear the tool while it enters and exits the workpiece (refer to G76 for an example of a shift move). Setting 27 defines the shift direction. If you do not specify a Q value, the control uses the optional I and J values to determine the shift direction and distance.
F7.25: G77 Back Boring Canned Cycle Example
X
ZY
R I, J / Q
284
G-codes
Program Example
% O60077 (G77 CYCLE-WORKPIECE IS 1.0" THICK) ; T5 M06 (BACK COUNTERBORE TOOL) ; G90 G54 G00 X0 Y0 (INITIAL POSITION) ; S1200 M03 (SPINDLE START) ; G43 H05 Z.1 (TOOL LENGTH COMPENSATION) ; G77 Z-1. R-1.6 Q0.1 F10. (1ST HOLE) ; X-2. (2ND HOLE) ; G80 G00 Z.1 M09 (CANCEL CANNED CYCLE) ; G28 G91 Z0. M05 ; M30 ; %
F7.26: G77 Approximate Toolpath Example. This example shows the entrance motion only. Dimensions are not to scale.
NOTE: For this example, the top of the workpiece is the surface defined as Z0. in the current work offset. The bottom of the workpiece is the opposite surface.
In this example, when the tool reaches the R depth, it then moves 0.1" in X (the Q value and Setting 27 define this movement; in this example, Setting 27 is X+). The tool then feeds to the Z value at the given feedrate. When the cut is finished, the tool shifts back toward the center of the hole and retracts out of it. The cycle repeats at the next commanded position until the G80 command.
R (-1.6")
Z (-0.5")
1.0"
0.5"
F10.
G54 Z0.
285
Introduction
NOTE: The R value is negative, and it must go past the bottom of the part for clearance.
NOTE: The Z value is commanded from the active Z work offset.
NOTE: You do not need to command an initial point return (G98) after a G77 cycle; the control assumes this automatically.
G80 Canned Cycle Cancel (Group 09)
G80 cancels all active canned cycles.
NOTE: G00 or G01 also cancel canned cycles.
G81 Drill Canned Cycle (Group 09)
*E - Chip-clean RPM (Spindle reverses to remove chips after each cycle) F - Feedrate *L - Number of holes to drill if G91 (Incremental Mode) is used *R - Position of the R plane (position above the part) *X - X-Axis motion command *Y - Y-Axis motion command *Z - Position of the Z Axis at the bottom of hole
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
286
G-codes
F7.27: G81 Drill Canned Cycle
This is a program to drill through an aluminum plate:
% O60811 (G81 DRILLING CANNED CYCLE) ; (G54 X0 Y0 is at the top-left of part) ; (Z0 is on top of the part) ; (T1 is a .5 in drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y-2. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 Z-0.720 R0.1 F15.(Begin G81) ; (Drill 1st hole at current X Y location) ; X2. Y-4. (2nd hole) ; X4. Y-4. (3rd hole) ; X4. Y-2. (4th hole) ; (BEGIN COMPLETION BLOCKS) ; G00 G90 Z1. M09 (Rapid retract,coolant off) ; G53 G49 Z0 M05 (Z home, spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G99
X
Z Y
X
Z Y
G98
R
Z
R
Z
287
Introduction
G82 Spot Drill Canned Cycle (Group 09)
*E - Chip-clean RPM (Spindle reverses to remove chips after each cycle) F - Feedrate *L - Number of holes if G91 (Incremental Mode) is used. *P - The dwell time at the bottom of the hole *R - Position of the R plane (position above the part) *X - X-Axis location of hole *Y - Y-Axis location of hole *Z - Position of bottom of hole
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
NOTE: G82 is similar to G81 except that there is the option to program a dwell (P).
% O60821 (G82 SPOT DRILLING CANNED CYCLE) ; (G54 X0 Y0 is at the top-left of part) ; (Z0 is on top of the part) ; (T1 is a 0.5 in 90 degree spot drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y-2. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G82 Z-0.720 P0.3 R0.1 F15.(Begin G82) ; (Drill 1st hole at current X Y location) ; X2. Y-4. (2nd hole) ; X4. Y-4. (3rd hole) ; X4. Y-2. (4th hole) ;
288
G-codes
(BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
F7.28: G82 Spot Drilling Example
G83 Normal Peck Drilling Canned Cycle (Group 09)
*E - Chip-clean RPM (Spindle reverses to remove chips after each cycle) F - Feedrate *I - Size of first peck depth *J - Amount to reduce peck depth each pass *K - Minimum depth of peck *L - Number of holes if G91 (Incremental Mode) is used, also G81 through G89. *P - Pause at end of last peck, in seconds (Dwell) *Q - Peck depth, always incremental *R - Position of the R plane (position above the part) *X - X-Axis location of hole *Y - Y-Axis location of hole *Z - Position of the Z-Axis at the bottom of hole
* indicates optional
If I, J, and K are specified, the first pass will cut in by the amount of I, each succeeding cut will be reduced by amount J, and the minimum cutting depth is K. Do not use a Q value when programming with I, J, and K.
If P is specified, the tool will pause at the bottom of the hole for that amount of time. The following example will peck several times and dwell for 1.5 seconds:
G83 Z-0.62 F15. R0.1 Q0.175 P1.5 ;
The same dwell time will apply to all subsequent blocks that do not specify a dwell time.
G99
X
Z Y
X
Z Y
G98
R
Z
R
Z
289
Introduction
F7.29: G83 Peck Drilling with I, J, K and Normal Peck Drilling: [#22] Setting 22.
Setting 52 changes the way G83 works when it returns to the R plane. Usually the R plane is set well above the cut to ensure that the peck motion allows the chips to get out of the hole. This wastes time as the drill starts by drilling empty space. If Setting 52 is set to the distance required to clear chips, you can set the R plane much closer to the part. When the chip-clearing move to R occurs, Setting 52 determines the Z-Axis distance above R.
F7.30: G83 peck Drilling Canned Cycle with Setting 52 [#52]
% O60831 (G83 PECK DRILLING CANNED CYCLE) ; (G54 X0 Y0 is at the top-left of part) ; (Z0 is on top of the part) ; (T1 is a 0.3125 in. stub drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y-2. (Rapid to 1st position) ;
R
#22
#22
I = I 1
Q
Q
I = I - J 2
1
I = I - J 3
2
Z
R
Z
Q
G98
#22
#22 Q
Q
Q
#52
R
Z
290
G-codes
S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G83 Z-0.720 Q0.175 R0.1 F15.(Begin G83) ; (Drill 1st hole at current X Y location) ; X2. Y-4. (2nd hole) ; X4. Y-4. (3rd hole) ; X4. Y-2. (4th hole) ; (BEGIN COMPLETION BLOCKS) ; G00 Z1. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G84 Tapping Canned Cycle (Group 09)
* E - Chip-clean RPM (Spindle reverses to remove chips after each cycle) F - Feedrate * J - Retract Multiple (Example: J2 retracts twice as fast as the cutting speed, also refer to
Setting 130) * L - Number of holes if G91 (Incremental Mode) is used * R - Position of the R plane (Position above the part) * X - X-Axis location of hole * Y - Y-Axis location of hole Z - Position of the Z Axis at the bottom of hole * S - Spindle speed
* indicates optional
NOTE: G84 creates right-hand threads. For left-hand threads, refer to G74. For vector tapping (angled heads), refer to G184.
NOTE: You do not need to command a spindle start (M03 / M04) before G84. The canned cycle starts and stops the spindle as needed.
The tapping feedrate ( F) is based on the tap RPM ( S). F and S work together to time the Z-Axis feed with the spindle position to create precise threads. Refer to the tap manufacturers recommendations for spindle speeds to use.
Rigid tapping must be enabled to tap without a floating tap holder. If you use a floating tap holder, contact the manufacturer for feedrate calculations.
291
Introduction
Typically, you program tapping in G94, feed per minute. G94 is the machines default mode. You can also tap in G95 mode, but remember to return the control to G94 before milling.
Calculating Feedrates
You can tap inch and metric threads in both inch and metric modes (Setting 9). Use the formulas below to calculate the feedrate:
T7.2: Feedrate Formulas for Setting 9 = Inch
T7.3: Feedrate Formulas for Setting 9 = mm
Pitch is the distance from one thread to the next. This value is in millimeters for metric taps. For example, in a M6 x 1. thread, the pitch is 1.0.
TPI is the threads per inch on Inch (unified) taps. For example a 1/4-20 tap makes 20 threads per inch.
In inch mode, round feedrates to (4) decimal places. In mm mode, round feedrates to (3) decimal places.
Inch Tap Metric Tap (pitch in mm)
G94 F RPM / TPI G94 F Pitch * RPM / 25.4
G95 F 1 / TPI G95 F Pitch / 25.4
Inch Tap Metric Tap (pitch in mm)
G94 F RPM / TPI*25.4 G94 F Pitch * RPM
G95 F 1 / TPI * 25.4 G95 F Pitch
292
G-codes
F7.31: G84 Tapping Canned Cycle Program Examples
Inch Mode: Setting 9 = Inch Metric Mode: Setting 9 = MM
% O60841 (IN MM TAPPING) ; G20 INCH MODE CHECK) ; G94 (INCHES PER MINUTE) ; M06 T2 (1/2-13 TAP) ; M08 ; S500 ; (F = RPM/TPI = 500/13) ; G54 G00 G90 X0.Y0. ; G43 H02 Z0.1 ; G84 Z-0.7 R0.1 F38.4615 ; G80 G00 Z2. ; M06 T4 (M12 x 1.75 TAP) ; S500 ; (F = P*RPM/25.4 = 1.75*500/25.4) ; G54 G00 G90 X1. Y0. ; G43 H04 Z0.1 ; G84 Z-0.7 R0.1 F34.4488 ; G80 G00 Z2. ; M30 ; %
% O60842 (IN MM TAPPING) ; G20 MM MODE CHECK) ; G94 (MM PER MINUTE) ; M06 T2 (1/2-13 TAP) ; M08 ; S500 ; (F = RPM/TPI*25.4 = 500/13*25.4) ; G54 G00 G90 X0.Y0. ; G43 H02 Z3. ; G84 Z-20. R3 F976.923 ; G80 G00 Z50. ; M06 T4 (M12 x 1.75 TAP) ; S500 ; (F = P*RPM = 1.75*500) ; G54 G00 G90 X25. Y0. ; G43 H04 Z3. ; G84 Z-20. R3. F875.000 ; G80 G00 Z50. ; M30 ; %
X
Z Y
X
ZY
G98
G99
RR
ZZ
293
Introduction
Peck Tapping
If Setting 133 REPT RIGID TAP is ON, you can tap the same hole more than one time, and peck tap. Setting 133 causes the spindle to orient before each tapped hole. This adds a small amount of cycle time to each hole. When you are not peck tapping, you can disable Setting 133 to save time.
This program example taps (2) holes to a depth of Z-1.75 in 0.250" pecks. We command the same XY location multiple times with a different Z-depth on each line to peck tap the hole.
% O60843 (PECK TAP); (SETTING 133 = ON) ; G20 G94 (INCH PER MIN) ; (PECK TAPS 2 HOLES) ; M06 T2 (3/4-10 TAP) ; S200 ; G54 X0 Y0 G00 G90 ; G43 H02 Z0.25 ; G84 X0 Y0 Z-0.25 F20. R0.1 ; X0 Z-0.5 ; X0 Z-0.75 ; X0 Z-1. ; X0 Z-1.25 ; X0 Z-1.5 ; X0 Z-1.75 ; (HOLE 2) ; X1. Z-0.25 ; X1. Z-0.5 ; X1. Z-.75 ; X1. Z-1. ; X1. Z-1.25 ; X1. Z-1.5 ; X1. Z-1.75 ; G80 G00 Z2. ; M30 ; %
294
G-codes
G85 Bore In, Bore Out Canned Cycle (Group 09)
F - Feedrate *L - Number of holes if G91 (Incremental Mode) is used *R - Position of the R plane (position above the part) *X - X-Axis location of holes *Y - Y-Axis location of holes *Z - Position of the Z Axis at the bottom of hole
* indicates optional
F7.32: G85 Boring Canned Cycle
G86 Bore and Stop Canned Cycle (Group 09)
F - Feedrate *L - Number of holes if G91 (Incremental Mode) is used *R - Position of the R plane (position above the part) *X - X-Axis location of hole *Y - Y-Axis location of hole *Z - Position of the Z Axis at the bottom of hole
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
X
Z Y
X
Z Y
G98
R
Z
R
Z
G99
295
Introduction
This G code will stop the spindle once the tool reaches the bottom of the hole. The tool is retracted once the spindle has stopped.
F7.33: G86 Bore and Stop Canned Cycles
G89 Bore In, Dwell, Bore Out Canned Cycle (Group 09)
F - Feedrate L - Number of holes if G91 (Incremental Mode) is used P - The dwell time at the bottom of the hole *R - Position of the R plane (position above the part) X - X-Axis location of holes Y - Y-Axis location of holes Z - Position of the Z Axis at the bottom of hole
* indicates optional
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
X
Z Y
X
Z Y
G98
G99
R
Z
R
Z
296
G-codes
F7.34: G89 Bore and Dwell and Canned Cycle
G90 Absolute - G91 Incremental Position Commands (Group 03)
These G codes change the way the axis commands are interpreted. Axes commands following a G90 will move the axes to the machine coordinate. Axes commands following a G91 will move the axis that distance from the current point. G91 is not compatible with G143 (5-Axis Tool Length Compensation).
The Basic Programming section of this manual, beginning on page 122, includes a discussion of absolute versus incremental programming.
G92 Set Work Coordinate Systems Shift Value (Group 00)
This G-code does not move any of the axes; it only changes the values stored as user work offsets. G92 works differently depending on Setting 33, which selects a FANUC, HAAS, or YASNAC coordinate system.
FANUC or HAAS
If Setting 33 is set to FANUC or HAAS, a G92 command shifts all work coordinate systems (G54-G59, G110-G129) so that the commanded position becomes the current position in the active work system. G92 is non-modal.
A G92 command cancels any G52 in effect for the commanded axes. Example: G92 X1.4 cancels the G52 for the X-Axis. The other axes are not affected.
The G92 shift value is displayed at the bottom of the Work Offsets page and may be cleared there if necessary. It is also cleared automatically after power-up, and any time [ZERO RETURN] and [ALL] or [ZERO RETURN] and [SINGLE] are used.
G92 Clear Shift Value From Within a Program
G92 shifts may be canceled by programming another G92 shift to change the current work offset back to the original value.
X
Z Y
X
Z Y
G98
G99
e
R
Z
R
Z
297
Introduction
% O60921 (G92 SHIFT WORK OFFSETS) ; (G54 X0 Y0 Z0 is at the center of mill travel) ; G00 G90 G54 X0 Y0 (Rapid to G54 origin) ; G92 X2. Y2. (Shifts current G54) ; G00 G90 G54 X0 Y0 (Rapid to G54 origin) ; G92 X-2. Y-2. (Shifts current G54 back to original) ; G00 G90 G54 X0 Y0 (Rapid to G54 origin) ; M30 (End program) ; %
YASNAC
If Setting 33 is set to YASNAC, a G92 command sets the G52 work coordinate system so that the commanded position becomes the current position in the active work system. The G52 work system then automatically becomes active until another work system is selected.
G93 Inverse Time Feed Mode (Group 05)
F - Feed Rate (strokes per minute)
This G code specifies that all F (feedrate) values are interpreted as strokes per minute. In other words the time (in seconds) to complete the programmed motion using G93 is, 60 (seconds) divided by the F value.
G93 is generally used in 4 and 5-axis work when the program is generated using a CAM system. G93 is a way of translating the linear (inches/min) feedrate into a value that takes rotary motion into account. When G93 is used, the F value will tell you how many times per minute the stroke (tool move) can be repeated.
When G93 is used, feedrate (F) is mandatory for all interpolated motion blocks. Therefore each non-rapid motion block must have its own feedrate (F) specification.
NOTE: Pressing [RESET] will set the machine to G94 (Feed per Minute) mode. Settings 34 and 79 (4th & 5th axis diameter) are not necessary when using G93.
G94 Feed Per Minute Mode (Group 05)
This code deactivates G93 (Inverse Time Feed Mode) and returns the control to Feed Per Minute mode.
298
G-codes
G95 Feed per Revolution (Group 05)
When G95 is active, a spindle revolution will result in a travel distance specified by the Feed value. If Setting 9 is set to INCH, then the feed value F will be taken as inches/rev (set to MM, then the feed will be taken as mm/rev). Feed Override and Spindle Override will affect the behavior of the machine while G95 is active. When a Spindle Override is selected, any change in the spindle speed will result in a corresponding change in feed in order to keep the chip load uniform. However, if a Feed Override is selected, then any change in the Feed Override will only affect the feed rate and not the spindle.
G98 Canned Cycle Initial Point Return (Group 10)
Using G98, the Z-Axis returns to its initial starting point (the Z position in the block before the canned cycle) between each X/Y position. This lets you program up and around areas of the part, clamps, and fixtures.
F7.35: G98 Initial Point Return. After the second hole, the Z Axis returns to the starting position [G98] to move over the toe clamp to the next hole position.
% O69899 (G98/G99 INITIAL POINT & R PLANE RETURN) ; (G54 X0 Y0 is top right corner of part) ; (Z0 is on top of the part) ; (T1 is a drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G17 G40 G49 G54 (Safe startup) ; G00 G54 X1. Y-0.5 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z2. (Tool offset 1 on) ;
G98
G99
299
Introduction
M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 G99 X1. Z-0.5 F10. R0.1 (Begin G81 using G99) ; G98 X2. (2nd hole and then clear clamp with G98) ; X4. (Drill 3rd hole) ; (BEGIN COMPLETION BLOCKS) ; G00 Z2. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G99 Canned Cycle R Plane Return (Group 10)
Using G99, the Z-Axis will stay at the R plane between each X and/or Y location. When obstructions are not in the path of the tool G99 saves machining time.
F7.36: G99R Plane Return. After the first hole, the Z Axis returns to the R plane position [G99] and moves to the second hole position. This is a safe move in this case because there are no obstacles.
% O69899 (G98/G99 INITIAL POINT & R PLANE RETURN) ; (G54 X0 Y0 is top right corner of part) ; (Z0 is on top of the part) ; (T1 is a drill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G17 G40 G49 G54 (Safe startup) ; G00 G54 X1. Y-0.5 (Rapid to 1st position) ;
G98
G99
300
G-codes
S1000 M03 (Spindle on CW) ; G43 H01 Z2. (Tool offset 1 on) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G81 G99 X1. Z-0.5 F10. R0.1 (Begin G81 using G99) ; G98 X2. (2nd hole and then clear clamp with G98) ; X4. (Drill 3rd hole) ; (BEGIN COMPLETION BLOCKS) ; G00 Z2. M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G100/G101 Disable/Enable Mirror Image (Group 00)
*X - X-Axis command *Y - Y-Axis command *Z - Z-Axis command *A - A-Axis command *B - B-Axis command *C - C-Axis command
* indicates optional
Programmable mirror imaging is used to turn on or off any of the axes. When one is ON, axis motion may be mirrored (or reversed) around the work zero point. These G codes should be used in a command block without any other G codes. They do not cause any Axis motion. The bottom of the screen indicates when an axis is mirrored. Also see Settings 45, 46, 47, 48, 80, and 250 for mirror imaging.
The format for turning Mirror Image on and off is:
G101 X0. (turns on mirror imaging for the X-Axis) ; G100 X0. (turns off mirror imaging for the X-Axis) ;
301
Introduction
F7.37: X-Y Mirror Image
G103 Limit Block Look-Ahead (Group 00)
G103 specifies the maximum number of blocks the control looks ahead (Range 0-15), for example:
G103 [P..] ;
During machine motions, the control prepares future blocks (lines of code) ahead of time. This is commonly called Block Look-ahead. While the control executes the current block, it has already interpreted and prepared the next block for continuous motion.
A program command of G103 P0, or simply G103, disables block limiting. A program command of G103 Pn limits look-ahead to n blocks.
G103 is useful for debugging macro programs. The control interprets Macro expressions during look-ahead time. If you insert a G103 P1 into the program, the control interprets macro expressions (1) block ahead of the currently executing block.
It is best to add several empty lines after a G103 P1 is called. This ensures that no lines of code after the G103 P1 are interpreted until they are reached.
G103 affects cutter compensation and High Speed Machining.
x- x+
Y+
Y-
1 2
4 3
302
G-codes
G107 Cylindrical Mapping (Group 00)
*X - X-Axis command *Y - Y-Axis command *Z - Z-Axis command *A - A-Axis command *B - B-Axis command C - C-Axis command *Q - Diameter of the cylindrical surface *R - Radius of the rotary axis
* indicates optional
This G code translates all programmed motion occurring in a specified linear axis into the equivalent motion along the surface of a cylinder (as attached to a rotary axis) as shown in the following figure. It is a Group 0 G code, but its default operation is subject to Setting 56 (M30 Restores Default G). The G107 command is used to either activate or deactivate cylindrical mapping.
Any linear-axis program can be cylindrically mapped to any rotary axis (one at a time). However, the depth axis cannot be the same as the mapped axis.
You can cylindrically map an existing linear-axis G-code program mapped with a G107 command at the beginning of the program.
The radius (or diameter) of the cylindrical surface can be redefined, allowing cylindrical mapping to occur along surfaces of different diameters without having to change the program.
The radius (or diameter) of the cylindrical surface can either be synchronized with or be independent of the rotary axis diameter(s) specified in the Settings 34 and 79.
G107 can also be used to set the default diameter of a cylindrical surface, independently of any cylindrical mapping that may be in effect.
G107 Description
Three address codes can follow a G107: X, Y, or Z; A, B, or C; and Q or R.
X, Y, or Z: An X, Y, or Z address specifies the linear axis that will be mapped to the specified rotary axis (A or B). When one of these linear axes is specified, a rotary axis must also be specified.
A or B: An A or B address identifies which rotary axis holds the cylindrical surface.
Q or R: Q defines the diameter of the cylindrical surface, while R defines the radius. When Q or R is used, a rotary axis must also be specified. If neither Q nor R is used, then the last G107 diameter is used. If no G107 command has been issued since power-up, or if the last value specified was zero, then the diameter will be the value in Setting 34 and/or 79 for this rotary axis. When Q or R is specified, that value will become the new G107 value for the specified rotary axis.
303
Introduction
Cylindrical mapping will also be turned off automatically whenever the G-code program ends, but only if Setting 56 is ON. Pressing [RESET] turns off any cylindrical mapping that is currently in effect, regardless of the status of Setting 56.
F7.38: Cylindrical Mapping Example
While R is suitable for defining the radius, use I, J and K for more complex G02 and G03 programming.
% O61071 (G107 CYLINDRICAL MAPPING) ; (G54 X0 Y0 is in center of rectangular slot) ; (Z0 is on highest point of cylindrical surface) ; (T1 is a .625 in. dia endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G28 G91 A0 (Home A axis) ; G00 G90 G54 X1.5 Y0 (Rapid to 1st position) ; S5000 M03 (Spindle on CW) ; G107 A0 Y0 R2. (Cylindrical mapping on) ; (Move to A0 Y0, Part has radius of 2 inches) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z-0.25 F25. (Feed to depth of cut) ; G41 D01 X2. Y0.5 (Cutter comp on) ; G03 X1.5 Y1. R0.5 (CCW cutting move) ; G01 X-1.5 (Linear cutting move) ; G03 X-2. Y0.5 R0.5 (CCW cutting move) ; G01 Y-0.5 (Linear cutting move) ; G03 X-1.5 Y-1. R0.5 (CCW cutting move) ; G01 X1.5 (Linear cutting move) ; G03 X2. Y-0.5 R0.5 (CCW cutting move) ; G01 Y0. (Linear cutting move) ; G40 X1.5 (Cutter comp off) ;
X Z
Y
2.00
4.00
R .50" 4X
304
G-codes
(BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G91 G28 A0. (Home A axis) ; G107 (Cylindrical mapping off) ; G90 G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G110-G129 Coordinate System #7-26 (Group 12)
These codes select one of the additional work coordinate systems. All subsequent references to axis positions will be interpreted in the new coordinate system. Operation of G110 to G129 is the same as G54 to G59.
G136 Automatic Work Offset Center Measurement (Group 00)
This G-code is optional and requires a probe. Use it to set work offsets to the center of a work piece with a work probe.
F - Feedrate *I - Optional offset distance along X-Axis *J - Optional offset distance along Y-Axis *K - Optional offset distance along Z-Axis *X - Optional X-Axis motion command *Y - Optional Y-Axis motion command *Z - Optional Z-Axis motion command
* indicates optional
Automatic Work Offset Center Measurement (G136) is used to command a spindle probe to set work offsets. A G136 will feed the axes of the machine in an effort to probe the work piece with a spindle mounted probe. The axis (axes) will move until a signal (skip signal) from the probe is received or the end of the programmed move is reached. Tool compensation (G41, G42, G43, or G44) must not be active when this function is performed. The currently active work coordinate system is set for each axis programmed. Use a G31 cycle with an M75 to set the first point. A G136 will set the work coordinates to a point at the center of a line between the probed point and the point set with an M75. This allows the center of the part to be found using two separate probed points.
If an I, J, or K is specified, the appropriate axis work offset is shifted by the amount in the I, J, or K command. This allows the work offset to be shifted away from the measured center of the two probed points.
305
Introduction
Notes:
This code is non-modal and only applies to the block of code in which G136 is specified.
The points probed are offset by the values in Settings 59 through 62. See the Settings section of this manual for more information.
Do not use Cutter Compensation (G41, G42) with a G136.
Do not use tool length Compensation (G43, G44) with G136
To avoid damaging the probe, use a feed rate below F100. (inch) or F2500. (metric).
Turn on the spindle probe before using G136.
If your mill has the standard Renishaw probing system, use the following commands to turn on the spindle probe:
M59 P1134 ;
Use the following commands to turn off the spindle probe:
M69 P1134 ;
Also see M75, M78, and M79.
Also see G31.
This sample program measures the center of a part in the Y Axis and records the measured value to the G58 Y Axis work offset. To use this program, the G58 work offset location must be set at or close to the center of the part to be measured.
% O61361 (G136 AUTO WORK OFFSET - CENTER OF PART) ; (G58 X0 Y0 is at the center of part) ; (Z0 is on top of the part) ; (T1 is a spindle probe) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G58 X0. Y1. (Rapid to 1st position) ; (BEGIN PROBING BLOCKS) ; M59 P1134 (Spindle probe on) ; Z-10. (Rapid spindle down to position) ; G91 G01 Z-1. F20. (Incremental feed by Z-1.) ; G31 Y-1. F10. M75 (Measure & record Y reference) ; G01 Y0.25 F20. (Feed away from surface) ; G00 Z2. (Rapid retract) ; Y-2. (Move to opposite side of part) ; G01 Z-2. F20. (Feed by Z-2.) ; G136 Y1. F10. ; (Measure and record center in the Y axis) ;
306
G-codes
G01 Y-0.25 (Feed away from surface) ; G00 Z1. (Rapid retract) ; M69 P1134 (Spindle probe off) ; (BEGIN COMPLETION BLOCKS) ; G00 G90 G53 Z0. (Rapid retract to Z home) ; M30 (End program) ; %
G141 3D+ Cutter Compensation (Group 07)
X - X-Axis command Y - Y-Axis command Z - Z-Axis command *A - A-Axis command (optional) *B - B-Axis command (optional) *D - Cutter Size Selection (modal) I - X-Axis cutter compensation direction from program path J - Y-Axis cutter compensation direction from program path K - Z-Axis cutter compensation direction from program path F - Feedrate
* indicates optional
This feature performs three-dimensional cutter compensation.
The form is:
G141 Xnnn Ynnn Znnn Innn Jnnn Knnn Fnnn Dnnn
Subsequent lines can be:
G01 Xnnn Ynnn Znnn Innn Jnnn Knnn Fnnn ;
Or
G00 Xnnn Ynnn Znnn Innn Jnnn Knnn ;
Some CAM systems are able to output the X, Y, and Z with values for I, J, K. The I, J, and K values tell the control the direction in which to apply the compensation at the machine. Similar to other uses of I, J, and K, these are incremental distances from the X, Y, and Z point called.
The I, J, and K specify the normal direction, relative to the center of the tool, to the contact point of the tool in the CAM system. The I, J, and K vectors are required by the control to be able to shift the toolpath in the correct direction. The value of the compensation can be in a positive or negative direction.
307
Introduction
The offset amount entered in radius or diameter (Setting 40) for the tool will compensate the path by this amount, even if the tool motions are 2 or 3 axes. Only G00 and G01 can use G141. A Dnn will have to be programmed; the D-code selects which tool wear diameter offset to use. A feedrate must be programmed on each line if in G93 Inverse Time Feed mode.
With a unit vector, the length of the vector line must always equal 1. In the same way that a unit circle in mathematics is a circle with a radius of 1, a unit vector is a line that indicates a direction with a length of 1. Remember, the vector line does not tell the control how far to move the tool when a wear value is entered, just the direction in which to go.
Only the endpoint of the commanded block is compensated in the direction of I, J, and K. For this reason, this compensation is recommended only for surface toolpaths having a tight tolerance (small motion between blocks of code). G141 compensation does not prohibit the toolpath from crossing over itself when excessive cutter compensation is entered. The tool will be offset, in the direction of the vector line, by the combined values of the tool offset geometry plus the tool offset wear. If compensation values are in diameter mode (Setting 40), the move will be half the amount entered in these fields.
For best results, program from the tool center using a ball nose endmill.
% O61411 (G141 3D CUTTER COMPENSATION) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a ball nose endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 Z0 A0 B0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G141 D01 X0. Y0. Z0. ; (Rapid to position with 3D+ cutter comp) ; G01 G93 X.01 Y.01 Z.01 I.1 J.2 K.9747 F300. ; (Inverse time feed on, 1st linear motion) ; N1 X.02 Y.03 Z.04 I.15 J.25 K.9566 F300. (2nd motion) ; X.02 Y.055 Z.064 I.2 J.3 K.9327 F300. (3rd motion) ; X2.345 Y.1234 Z-1.234 I.25 J.35 K.9028 F200. ; (Last motion) ; (BEGIN COMPLETION BLOCKS) ; G94 F50. (Inverse time feed off) ; G00 G90 G40 Z0.1 M09 (Cutter comp off) ; (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ;
308
G-codes
M30 (End program) ; %
In the above example, we can see where the I, J, and K were derived by plugging the points into the following formula:
AB = [(x2-x1)2 + (y2-y1)2 + (z2-z1)2], a 3D version of the distance formula. Looking at line N1, we use 0.15 for x2, 0.25 for y2, and 0.9566 for Z2. Because I, J, and K are incremental, we will use 0 for x1, y1, and z1.
F7.39: Unit Vector Example: The commanded line endpoint [1] is compensated in the direction of the vector line [2](I,J,K), by the amount of the Tool Offset Wear.
% AB=[(.15)2 + (.25)2 + (.9566)2] AB=[.0225 + .0625 + .9150] AB=1 %
A simplified example is listed below:
% O61412 (G141 SIMPLE 3D CUTTER COMPENSATION) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a ball nose endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z0.1 (Activate tool offset 1) ;
1
2
309
Introduction
M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G141 D01 X0. Y0. Z0. ; (Rapid to position with 3D+ cutter compensation) ; N1 G01 G93 X5. Y0. I0. J-1. K0. F300. ; (Inverse time feed on & linear motion) ; (BEGIN COMPLETION BLOCKS) ; G94 F50. (Inverse time feed off) ; G00 G90 G40 Z0.1 M09 (Cutter compensation off) ; (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
In this case, the wear value (DIA) for T01 is set to -.02. Line N1 moves the tool from (X0., Y0., Z0.) to (X5., Y0., Z0.). The J value tells the control to compensate the endpoint of the programmed line only in the Y Axis.
Line N1 could have been written using only the J-1. (not using I0. or K0.), but a Y value must be entered if a compensation is to be made in this axis (J value used).
G143 5-Axis Tool Length Compensation + (Group 08)
(This G-code is optional; it only applies to machines on which all rotary motion is movement of the cutting tool, such as VR-series mills)
This G code allows the user to correct for variations in the length of cutting tools without the need for a CAD/CAM processor. An H code is required to select the tool length from the existing length compensation tables. A G49 or H00 command will cancel 5-axis compensation. For G143 to work correctly there must be two rotary axes, A and B. G90, absolute positioning mode must be active (G91 cannot be used). Work position 0,0 for the A and B axes must be so the tool is parallel with Z-Axis motion.
The intention behind G143 is to compensate for the difference in tool length between the originally posted tool and a substitute tool. Using G143 allows the program to run without having to repost a new tool length.
G143 tool length compensation works only with rapid (G00) and linear feed (G01) motions; no other feed functions (G02 or G03) or canned cycles (drilling, tapping, etc.) can be used. For a positive tool length, the Z-Axis would move upward (in the + direction). If one of X, Y or Z is not programmed, there will be no motion of that axis, even if the motion of A or B produces a new tool length vector. Thus a typical program would use all 5 axes on one block of data. G143 may effect commanded motion of all axes in order to compensate for the A and B axes.
310
G-codes
Inverse feed mode (G93) is recommended, when using G143.
% O61431 (G143 5-AXIS TOOL LENGTH) ; (G54 X0 Y0 is at the top-right) ; (Z0 is on top of the part) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 Z0 A0 B0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G143 H01 X0. Y0. Z0. A-20. B-20. ; (Rapid to position w/ 5 Axis tool length comp) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 G93 X.01 Y.01 Z.01 A-19.9 B-19.9 F300. ; (Inverse time feed on , 1st linear motion) ; X0.02 Y0.03 Z0.04 A-19.7 B-19.7 F300. ( 2nd motion) ; X0.02 Y0.055 Z0.064 A-19.5 B-19.6 F300. (3rd motion) ; X2.345 Y.1234 Z-1.234 A-4.127 B-12.32 F200. ; (Last motion) ; (BEGIN COMPLETION BLOCKS) ; G94 F50. (Inverse time feed off) ; G00 G90 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Tool length comp off) ; (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
311
Introduction
G150 General Purpose Pocket Milling (Group 00)
D - Tool radius/diameter offset selection F - Feedrate I - X-Axis cut increment (positive value) J - Y-Axis cut increment (positive value) K - Finishing pass amount (positive value) P - Subprogram number that defines pocket geometry Q - Incremental Z-Axis cut depth per pass (positive value) *R - Position of the rapid R-plane location *S - Spindle speed X - X start position Y - Y start position Z - Final depth of pocket
* indicates optional
The G150 starts by positioning the cutter to a start point inside the pocket, followed by the outline, and completes with a finish cut. The end mill will plunge in the Z-Axis. A subprogram P### is called, which defines the pocket geometry of a closed area using G01, G02, and G03 motions in the X and Y axes on the pocket. The G150 command will search for an internal subprogram with a N-number specified by the P-code. If that is not found the control will search for an external subprogram. If neither are found, alarm 314 Subprogram Not In Memory will be generated.
NOTE: When defining the G150 pocket geometry in the subprogram, do not move back to the starting hole after the pocket shape is closed.
NOTE: The pocket geometry subprogram cannot use macro variables.
An I or J value defines the roughing pass amount the cutter moves over for each cut increment. If I is used, the pocket is roughed out from a series of increment cuts in the X-Axis. If J is used, the increment cuts are in the Y-Axis.
The K command defines a finish pass amount on the pocket. If a K value is specified, a finish pass is performed by K amount, around the inside of pocket geometry for the last pass and is done at the final Z depth. There is no finishing pass command for the Z depth.
The R value needs to be specified, even if it is zero ( R0), or the last R value that was specified will be used.
Multiple passes in the pocket area are done, starting from the R plane, with each Q (Z-Axis depth) pass to the final depth. The G150 command will first make a pass around pocket geometry, leaving stock with K, then doing passes of I or J roughing out inside of pocket after feeding down by the value in Q until the Z depth is reached.
312
G-codes
The Q command must be in the G150 line, even if only one pass to the Z depth is desired. The Q command starts from the R plane.
Notes: The subprogram (P) must not consist of more than 40 pocket geometry moves.
It may be necessary to drill a starting point, for the G150 cutter, to the final depth (Z). Then position the end mill to the start location in the XY axes within the pocket for the G150 command.
F7.40: G150 General Pocket Milling: [1] Start Point, [Z] Final depth.
% O61501 (G150 GENERAL POCKET MILLING) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a .5" endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X3.25 Y4.5 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z1.0 (Activate tool offset 1) ; M08 (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G150 X3.25 Y4.5 Z-1.5 G41 J0.35 K.01 Q0.25 R.1 P61502 D01 F15. ; (Pocket mill sequence, call pocket subprogram) ; (Cutter comp on) ; (0.01 finish pass (K) on sides) ; G40 X3.25 Y4.5 (Cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
Z X
Y
I
J
Q
1 1
Z
313
Introduction
% O61502 (G150 GENERAL POCKET MILL SUBPROGRAM) ; (Subprogram for pocket in O61501) ; (Must have a feedrate in G150) ; G01 Y7. (First linear move onto pocket geometry) ; X1.5 (Linear move) ; G03 Y5.25 R0.875 (CCW arc) ; G01 Y2.25 (Linear move) ; G03 Y0.5 R0.875 (CCW arc) ; G01 X5. (Linear move) ; G03 Y2.25 R0.875 (CCW arc) ; G01 Y5.25 (Linear move) ; G03 Y7. R0.875 (CCW arc) ; G01 X3.25 (Close pocket geometry) ; M99 (Exit to Main Program) ; %
Square Pocket
F7.41: G150 General Purpose Pocket Milling: 0.500 diameter endmill.
5.0 x 5.0 x 0.500 DP. Square Pocket
Main Program
% O61503 (G150 SQUARE POCKET MILLING) ; (G54 X0 Y0 is at the center of the part) ; (Z0 is on top of the part) ; (T1 is a .5" endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y1.5 (Rapid to 1st position) ;
X0, Y0
1, 62
3 4
5
5
5
X0, Y1.5
314
G-codes
S1000 M03 (Spindle on CW) ; G43 H01 Z1.0 (Activate tool offset 1) ; M08(Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z0.1 F10. (Feed right above the surface) ; G150 P61504 Z-0.5 Q0.25 R0.01 J0.3 K0.01 G41 D01 F10. ; (Pocket mill sequence, call pocket subprogram) ; (Cutter comp on) ; (0.01 finish pass (K) on sides) ; G40 G01 X0. Y1.5 (Cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract,Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
Subprogram
% O61505 (G150 INCREMENTAL SQUARE POCKET MILLING SUBPROGRAM) ; (Subprogram for pocket in O61503) ; (Must have a feedrate in G150) ; G91 G01 Y0.5 (Linear move to position 1) ; X-2.5 (Linear move to position 2) ; Y-5. (Linear move to position 3) ; X5. (Linear move to position 4) ; Y5. (Linear move to position 5) ; X-2.5 (Linear move to position 6, Close Pocket Loop) ; G90 (Turn off incremental mode, Turn on absolute) ; M99 (Exit to Main Program) ; %
315
Introduction
Absolute and Incremental examples of a subprogram called up by the P#### command in the G150 line:
Absolute Subprogram
% O61504 (G150 ABSOLUTE SQUARE POCKET MILLING SUBPROGRAM) ; (Subprogram for pocket in O61503) ; (Must have a feedrate in G150) ; G90 G01 Y2.5 (Linear move to position 1) ; X-2.5 (Linear move to position 2) ; Y-2.5 (Linear move to position 3) ; X2.5 (Linear move to position 4) ; Y2.5 (Linear move to position 5) ; X0. (Linear move to position 6, Close Pocket Loop) ; M99 (Exit to Main Program) ; %
Incremental Subprogram
% O61505 (G150 INCREMENTAL SQUARE POCKET MILLING SUBPROGRAM) ; (Subprogram for pocket in O61503) ; (Must have a feedrate in G150) ; G91 G01 Y0.5 (Linear move to position 1) ; X-2.5 (Linear move to position 2) ; Y-5. (Linear move to position 3) ; X5. (Linear move to position 4) ; Y5. (Linear move to position 5) ; X-2.5 (Linear move to position 6, Close Pocket Loop) ; G90 (Turn off incremental mode, Turn on absolute) ; M99 (Exit to Main Program) ; %
316
G-codes
Square Island
F7.42: G150 Pocket Milling Square Island: 0.500 diameter endmill.
5.0 x 5.0 x 0.500 DP. Square Pocket with Square Island
Main Program
% O61506 (G150 SQUARE ISLAND POCKET MILLING) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a .5" endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y2. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z1.0(Activate tool offset 1) ; M08(Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z0.01 F30. (Feed right above the surface) ; G150 P61507 X2. Y2. Z-0.5 Q0.5 R0.01 I0.3 K0.01 G41 D01 F10. ; (Pocket mill sequence, call pocket subprogram) ; (Cutter comp off) ; (0.01 finish pass (K) on sides) ; G40 G01 X2.Y2. (Cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle) ; G53 Y0 (Y home) ; M30 (End program) ; %
5 6
1, 14 2
7 8
10
X0, Y0
9
4 3
5
5
13
1112
317
Introduction
Subprogram
% O61507 (G150 SQUARE ISLAND POCKET MILLING SUBPROGRAM) ; (Subprogram for pocket in O61503) ; (Must have a feedrate in G150) ; G01 Y1. (Linear move to position 1) ; X6. (Linear move to position 2) ; Y6. (Linear move to position 3) ; X1. (Linear move to position 4) ; Y3.2 (Linear move to position 5) ; X2.75 (Linear move to position 6) ; Y4.25 (Linear move to position 7) ; X4.25 (Linear move to position 8) ; Y2.75 (Linear move to position 9) ; X2.75 (Linear move to position 10) ; Y3.8 (Linear move to position 11) ; X1. (Linear move to position 12) ; Y1. (Linear move to position 13) ; X2. (Linear move to position 14, Close Pocket Loop) ; M99 (Exit to Main Program) ; %
Round Island
F7.43: G150 Pocket Milling Round Island: 0.500 diameter endmill.
5.0 x 5.0 x 0.500 DP. Square Pocket with Round Island
5
8
1, 12 2
X0, Y0
4, 10 3
5
5
11
9
6, 7
318
G-codes
Main Program
% O61508 (G150 SQ POCKET W/ ROUND ISLAND MILLING) ; (G54 X0 Y0 is at the bottom-left) ; (Z0 is on top of the part) ; (T1 is a .5" endmill) ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X2. Y2. (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ; G43 H01 Z1.0 M08 (Activate tool offset 1) ; (Coolant on) ; (BEGIN CUTTING BLOCKS) ; G01 Z0.01 F30. (Feed right above the surface) ; G150 P61509 X2. Y2. Z-0.5 Q0.5 R0.01 J0.3 K0.01 G41 D01 F10. ; (Pocket mill sequence, call pocket subprogram) ; (Cutter comp on) ; (0.01 finish pass (K) on sides) ; G40 G01 X2.Y2. (Cutter comp off) ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home, Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
Subprogram
% O61509 (G150 SQ POCKET W/ ROUND ISLAND MILLING SUBPROGRAM) ; (Subprogram for pocket in O61503) ; (Must have a feedrate in G150) ; G01 Y1. (Linear move to position 1) ; X6. (Linear move to position 2) ; Y6. (Linear move to position 3) ; X1. (Linear move to position 4) ; Y3.5 (Linear move to position 5) ; X2.5 (Linear move to position 6) ; G02 I1. (CW circle along X axis at position 7) ; G02 X3.5 Y4.5 R1. (CW arc to position 8) ; G01 Y6. (Linear move to position 9) ; X1. (Linear move to position 10) ; Y1. (Linear move to position 11) ; X2. (Linear move to position 12, Close Pocket Loop) ; M99 (Exit to Main Program) ; %
319
Introduction
G153 5-Axis High Speed Peck Drilling Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate I - Size of first cutting depth (must be a positive value) J - Amount to reduce cutting depth each pass (must be a positive value) K - Minimum depth of cut (must be a positive value) L - Number of repeats P - Pause at end of last peck, in seconds Q - The cut-in value (must be a positive value) A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
F7.44: G153 5-Axis High Speed Peck Drilling: [#22] Setting 22.
This is a high-speed peck cycle where the retract distance is set by Setting 22.
If I, J, and K are specified, a different operating mode is selected. The first pass will cut in by amount I, each succeeding cut will be reduced by amount J, and the minimum cutting depth is K. If P is used, the tool will pause at the bottom of the hole for that amount of time.
NOTE: The same dwell time applies to all subsequent blocks that do not specify a dwell time.
E E
I1=I
I2=I1-J
I3=I2-J Q
Q
Q
#22 #22
320
G-codes
G154 Select Work Coordinates P1-P99 (Group 12)
This feature provides 99 additional work offsets. G154 with a P value from 1 to 99 activates additional work offsets. For example G154 P10 selects work offset 10 from the list of additional work offsets.
NOTE: G110 to G129 refer to the same work offsets as G154 P1 through P20; they can be selected by using either method.
When a G154 work offset is active, the heading in the upper right work offset will show the G154 P value.
G154 work offsets format
#14001-#14006 G154 P1 (also #7001-#7006 and G110)
#14021-#14026 G154 P2 (also #7021-#7026 and G111)
#14041-#14046 G154 P3 (also #7041-#7046 and G112)
#14061-#14066 G154 P4 (also #7061-#7066 and G113)
#14081-#14086 G154 P5 (also #7081-#7086 and G114)
#14101-#14106 G154 P6 (also #7101-#7106 and G115)
#14121-#14126 G154 P7 (also #7121-#7126 and G116)
#14141-#14146 G154 P8 (also #7141-#7146 and G117)
#14161-#14166 G154 P9 (also #7161-#7166 and G118)
#14181-#14186 G154 P10 (also #7181-#7186 and G119)
#14201-#14206 G154 P11 (also #7201-#7206 and G120)
#14221-#14221 G154 P12 (also #7221-#7226 and G121)
#14241-#14246 G154 P13 (also #7241-#7246 and G122)
#14261-#14266 G154 P14 (also #7261-#7266 and G123)
#14281-#14286 G154 P15 (also #7281-#7286 and G124)
#14301-#14306 G154 P16 (also #7301-#7306 and G125)
#14321-#14326 G154 P17 (also #7321-#7326 and G126)
#14341-#14346 G154 P18 (also #7341-#7346 and G127)
#14361-#14366 G154 P19 (also #7361-#7366 and G128)
321
Introduction
#14381-#14386 G154 P20 (also #7381-#7386 and G129)
#14401-#14406 G154 P21
#14421-#14426 G154 P22
#14441-#14446 G154 P23
#14461-#14466 G154 P24
#14481-#14486 G154 P25
#14501-#14506 G154 P26
#14521-#14526 G154 P27
#14541-#14546 G154 P28
#14561-#14566 G154 P29
#14581-#14586 G154 P30
#14781-#14786 G154 P40
#14981-#14986 G154 P50
#15181-#15186 G154 P60
#15381-#15386 G154 P70
#15581-#15586 G154 P80
#15781-#15786 G154 P90
#15881-#15886 G154 P95
#15901-#15906 G154 P96
#15921-#15926 G154 P97
#15941-#15946 G154 P98
#15961-#15966 G154 P99
322
G-codes
G155 5-Axis Reverse Tap Canned Cycle (Group 09)
G155 performs only floating taps. G174 is available for 5-axis reverse rigid tapping.
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate L - Number of repeats A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position S - Spindle Speed
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded. This position is used as the Initial Start position. The control automatically starts the spindle counterclockwise before this canned cycle.
F7.45: G155 5-Axis Reverse Tap Canned Cycle
E
323
Introduction
G161 5-Axis Drill Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
F7.46: G161 5-Axis Drill Canned Cycle
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded.
% (G54 X0 Y0 is) ; (Z0 is on the top of the part) ; (T1 - n/a ) ; ; (BEGIN PREPARATION BLOCKS) ; T1 M06 (Select tool 1) ; G00 G90 G40 G49 G54 (Safe startup) ; G00 G54 X0 Y0 (Rapid to 1st position) ; S1000 M03 (Spindle on CW) ;
E
324
G-codes
G43 H01 Z0.1 M08 (Activate tool offset 1, Coolant on) ; ; (BEGIN CUTTING BLOCKS) ; (DRILL RIGHT, FRONT) ; G01 G54 G90 X8. Y-8. B23. A22. F360. (Clearance Position) ; G143 H01 Z15. M8 ; G01 X7. Y-7. Z11. F360. (Initial Start position) ; G161 E.52 F7. (Begin G161) ; G80 ; X8. Y-8. B23. A22. Z15. (Clearance Position) ; ; (BEGIN COMPLETION BLOCKS) ; G00 Z0.1 M09 (Rapid retract, Coolant off) ; G53 G49 Z0 M05 (Z home and Spindle off) ; G53 Y0 (Y home) ; M30 (End program) ; %
G162 5-Axis Spot Drill Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate P - The dwell time at the bottom of the hole A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded.
% (COUNTER DRILL RIGHT, FRONT) ; T2 M6 ; G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360. (Clearance Position) ;
325
Introduction
G143 H2 Z14.6228 M8 ; G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ; G162 E.52 P2.0 F7. (Canned Cycle) ; G80 ; X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ; M5 ; G1 G28 G91 Z0. ; G91 G28 B0. A0. ; M01 ; %
F7.47: G162 Spot Drill Canned Cycle
G163 5-Axis Normal Peck Drilling Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate I - Optional size of first cutting depth J - Optional amount to reduce cutting depth each pass K - Optional minimum depth of cut P - Optional pause at end of last peck, in seconds Q - The cut-in value, always incremental A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded.
If I, J, and K are specified the first pass will cut in by amount I, each succeeding cut will be reduced by amount J, and the minimum cutting depth is K.
A P value is used the tool will pause at the bottom of the hole after the last peck for that amount of time. The following example will peck several times and dwell for one and a half seconds at the end:
E
326
G-codes
G163 E0.62 F15. Q0.175 P1.5.
NOTE: The same dwell time applies to all subsequent blocks that do not specify a dwell time.
F7.48: G163 5-Axis Normal Peck Drilling Canned Cycle: [#22] Setting 22, [#52] Setting 52.
Setting 52 also changes the way G163 works when it returns to the start position. Usually the R plane is set well above the cut to ensure that the peck motion allows the chips to get out of the hole. This wastes time as the drill starts by drilling empty space. If Setting 52 is set to the distance required to clear chips, the start position can be put much closer to the part being drilled. When the chip-clearing move to the start position occurs, the Z axis moves above the start position by the amount given in this setting.
% (PECK DRILL RIGHT, FRONT) ; T5 M6 ; G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360. (Clearance Position) ; G143 H5 Z14.6228 M8 ; G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ; G163 E1.0 Q.15 F12. (Canned Cycle) ; G80 ; X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ; M5 ; G1 G28 G91 Z0. ; G91 G28 B0. A0. ; M01 ; %
E
Q
Q
Q
#22
#52
E
I1=I
I2=I1-J
I3=I2-J
#22
327
Introduction
G164 5-Axis Tapping Canned Cycle (Group 09)
G164 performs only floating taps. G174/G184 is available for 5-axis rigid tapping.
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position S - Spindle Speed
F7.49: G164 5-Axis Tapping Canned Cycle
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded. The control automatically starts the spindle CW before this canned cycle.
% (1/2-13 TAP) ; T5 M6 ; G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S500M3 F360. (Clearance Position) ; G143 H5 Z14.6228 M8 ; G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ; G164 E1.0 F38.46 (Canned Cycle) ; G80 ; X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ; M5 ; G1 G28 G91 Z0. ; G91 G28 B0. A0. ; M01 ; %
E
328
G-codes
G165 5-Axis Boring Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
F7.50: G165 5-Axis Boring Canned Cycle
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded.
% (Boring Cycle) ; T5 M6 ; G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360. (Clearance Position) ; G143 H5 Z14.6228 M8 ; G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ; G165 E1.0 F12. (Canned Cycle) ; G80 ; X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ; M5 ; G00 G28 G91 Z0. ; G91 G28 B0. A0. ; M01 ; %
E
329
Introduction
G166 5-Axis Bore and Stop Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
F7.51: G166 5-Axis Bore and Stop Canned Cycle
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded.
% (Bore and Stop Cycle) ; T5 M6 ; G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360. (Clearance Position) ; G143 H5 Z14.6228 M8 ; G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ; G166 E1.0 F12. (Canned Cycle) ;
E
330
G-codes
G80 ; X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ; M5 ; G00 G28 G91 Z0. ; G91 G28 B0. A0. ; M01 ; %
G169 5-Axis Bore and Dwell Canned Cycle (Group 09)
E - Specifies the distance from the start position to the bottom of the hole F - Feedrate P - The dwell time at the bottom of the hole A - A-Axis tool starting position B - B-Axis tool starting position X - X-Axis tool starting position Y - Y-Axis tool starting position Z - Z-Axis tool starting position
CAUTION: Unless you specify otherwise, this canned cycle uses the most recently commanded spindle direction (M03, M04, or M05). If the program did not specify a spindle direction before it commands this canned cycle, the default is M03 (clockwise). If you command M05, the canned cycle will run as a no-spin cycle. This lets you run applications with self-driven tools, but it can also cause a crash. Be sure of the spindle direction command when you use this canned cycle.
F7.52: G169 5-Axis Bore and dwell Canned Cycle
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded.
%
E
331
Introduction
(Bore and Dwell Cycle) ; T5 M6 ; G01 G54 G90 X8.4221 Y-8.4221 B23. A21.342 S2200 M3 F360. (Clearance Position) ; G143 H5 Z14.6228 M8 ; G1 X6.6934 Y-6.6934 Z10.5503 F360. (Initial Start position) ; G169 E1.0 P0.5 F12. (Canned Cycle) ; G80 ; X8.4221 Y-8.4221 B23. A21.342 Z14.6228 (Clearance Position) ; M5 ; G00 G28 G91 Z0. ; G91 G28 B0. A0. ; M01 ; %
G174 CCW - G184 CW Non-Vertical Rigid Tap (Group 00)
F - Feedrate X - X position at bottom of hole Y - Y position at bottom of hole Z - Z position at bottom of hole *S - Spindle Speed
* indicates optional
A specific X, Y, Z, A, B position must be programmed before the canned cycle is commanded. This position is used as the Start position.
This G code is used to perform rigid tapping for non-vertical holes. It may be used with a right-angle head to perform rigid tapping in the X or Y Axis on a three-axis mill, or to perform rigid tapping along an arbitrary angle with a five-axis mill. The ratio between the feedrate and spindle speed must be precisely the thread pitch being cut.
It is not necessary to start the spindle before this canned cycle; the control does this automatically.
G187 Setting the Smoothness Level (Group 00)
G187 is an accuracy command that can set and control both the smoothness and max corner rounding value when cutting a part. The format for using G187 is G187 Pn Ennnn.
P - Controls the smoothness level, P1(rough), P2(medium), or P3(finish). Temporarily overrides Setting 191.
E - Sets the max corner rounding value. Temporarily overrides Setting 85.
Setting 191 sets the default smoothness to the user specified ROUGH, MEDIUM, or FINISH when G187 is not active. The Medium setting is the factory default setting.
332
G-codes
NOTE: Changing Setting 85 to a low value may make the machine operate as if it is in exact stop mode.
NOTE: Changing setting 191 to FINISH will take longer to machine a part. Use this setting only when needed for the best finish.
G187 Pm Ennnn sets both the smoothness and max corner rounding value. G187 Pm sets the smoothness but leaves max corner rounding value at its current value. G187 Ennnn sets the max corner rounding but leaves smoothness at its current value. G187 by itself cancels the E value and sets smoothness to the default smoothness specified by Setting 191. G187 will be canceled whenever [RESET] is pressed, M30 or M02 is executed, the end of program is reached, or [EMERGENCY STOP] is pressed.
G188 Get Program From PST (Group 00)
Calls the parts program for the loaded pallet based on the Pallet Schedule Table entry for the pallet.
G234 - Tool Center Point Control (TCPC) (Group 08)
G234 Tool Center Point Control (TCPC) is a software feature in the Haas CNC control that allows a machine to correctly run a contouring 4- or 5-axis program when the workpiece is not located in the exact location specified by a CAM-generated program. This eliminates the need to repost a program from the CAM system when the programmed and the actual workpiece locations are different.
The Haas CNC control combines the known centers of rotation for the rotary table (MRZP) and the location of the workpiece (e.g., active work offset G54) into a coordinate system. TCPC makes sure that this coordinate system remains fixed relative to the table; when the rotary axes rotate, the linear coordinate system rotates with them. Like any other work setup, the workpiece must have a work offset applied to it. This tells the Haas CNC control where the workpiece is located on the machine table.
The conceptual example and illustrations in this section represent a line segment from a full 4- or 5-axis program.
NOTE: For clarity, the illustrations in this section do not depict workholding. Also, as conceptual, representative drawings, they are not to scale and may not depict the exact axis motion described in the text.
333
Introduction
The straight line edge highlighted in Figure F7.53 is defined by point (X0, Y0, Z0) and point (X0, Y-1., Z0). Movement along the Y Axis is all that is required for the machine to create this edge. The location of the workpiece is defined by work offset G54.
F7.53: Location of Workpiece Defined by G54
In Figure F7.54, the B and C Axes have been rotated 15 degrees each. To create the same edge, the machine needs to make an interpolated move with the X, Y, and Z Axes. Without TCPC, you would need to repost the CAM program for the machine to correctly create this edge.
F7.54: G234 (TCPC) Off and the B and C Axes Rotated
X0, Y0, Z0 (G54)
X0, Y-1., Z0
X
Y
Z
334
G-codes
TCPC is invoked in Figure F7.55. The Haas CNC control knows the centers of rotation for the rotary table (MRZP), and the location of the workpiece (active work offset G54). This data is used to produce the desired machine motion from the original CAM-generated program. The machine follows an interpolated X-Y-Z path to create this edge, even though the program simply commands a single-axis move along the Y Axis.
F7.55: G234 (TCPC) On and the B and C Axes Rotated
G234 Program Example
% O00003 (TCPC SAMPLE) G20 G00 G17 G40 G80 G90 G94 G98 G53 Z0. T1 M06 G00 G90 G54 B47.137 C116.354 (POSITION ROTARY AXES) G00 G90 X-0.9762 Y1.9704 S10000 M03 (POSITION LINEAR AXES) G234 H01 Z1.0907 (TCPC ON WITH LENGTH OFFSET 1, APPROACH IN Z-AXIS) G01 X-0.5688 Y1.1481 Z0.2391 F40. X-0.4386 Y0.8854 Z-0.033 X-0.3085 Y0.6227 Z-0.3051 X-0.307 Y0.6189 Z-0.3009 B46.784 C116.382 X-0.3055 Y0.6152 Z-0.2966 B46.43 C116.411 X-0.304 Y0.6114 Z-0.2924 B46.076 C116.44 X-0.6202 Y0.5827 Z-0.5321 B63.846 C136.786 X-0.6194 Y0.5798 Z-0.5271 B63.504 C136.891 X-0.8807 Y0.8245 Z-0.3486 X-1.1421 Y1.0691 Z-0.1701 X-1.9601 Y1.8348 Z0.3884 G49 (TCPC OFF) G00 G53 Z0.
X0, Y-1., Z0
X0, Y0, Z0
335
Introduction
G53 B0. C0. G53 Y0. M30 %
G234 Programmers Notes
These key presses and program codes cancel G234:
[EMERGENCY STOP]
[RESET]
[HANDLE JOG]
[LIST PROGRAM]
M02 Program End
M30 Program End and Reset
G43 Tool Length Compensation +
G44 Tool Length Compensation -
G49 G43 / G44 / G143 Cancel
These codes will NOT cancel G234:
M00 Program Stop
M01 Optional Stop
These key presses and program codes impact G234:
G234 invokes TCPC and cancels G43.
When using tool length compensation, either G43 or G234 must be active. G43 and G234 cannot be active at the same time.
G234 cancels the previous H-code. An H-code must therefore be placed on the same block as G234.
G234 cannot be used at the same time as G254 (DWO).
These codes ignore 234:
G28 Return to Machine Zero Through Optional Reference Point
G29 Move to Location Thru G29 Reference Point
G53 Non-Modal Machine Coordinate Selection
M06 Tool Change
Invoking G234 (TCPC) rotates the work envelope. If the position is close to the travel limits, the rotation can put the current work position outside of travel limits and cause an over travel alarm. To solve this, command the machine to the center of the work offset (or near the center of the table on a UMC), and then invoke G234 (TCPC).
G234 (TCPC) is intended for simultaneous 4- and 5-axis contouring programs. An active work offset (G54, G55, etc.) is required to use G234.
336
G-codes
G254 - Dynamic Work Offset (DWO) (Group 23)
G254 Dynamic Work Offset (DWO) is similar to TCPC, except that it is designed for use with 3+1 or 3+2 positioning, not for simultaneous 4- or 5-axis machining. If the program does not make use of the tilt and rotary Axes, there is no need to use DWO.
CAUTION: The B-Axis value of the work offset you use with G254 MUST be zero.
With DWO, you no longer need to set the workpiece in the exact position as programmed in the CAM system. DWO applies the appropriate offsets to account for the differences between the programmed workpiece location and the actual workpiece location. This eliminates the need to repost a program from the CAM system when the programmed and actual workpiece locations are different.
The control knows the centers of rotation for the rotary table (MRZP) and the location of the workpiece (active work offset). This data is used to produce the desired machine motion from the original CAM-generated program. Therefore, it is recommended that G254 be invoked after the desired work offset is commanded, and after any rotational command to position the 4th and 5th axes.
After G254 is invoked, you must specify an X, Y, and Z Axis position before a cutting command, even if it recalls the current position. The program should specify the X and Y Axis position in one block and the Z Axis in a separate block.
CAUTION: Before rotary motion, use a G53 Non-Modal Machine Coordinate motion command to safely retract the tool from the workpiece and allow clearance for the rotary motion. After the rotary motion finishes, specify an X-, Y-, and Z-Axis position before a cutting command, even if it recalls the current position. The program should specify the X- and Y-Axis position in one block and the Z-Axis position in a separate block.
CAUTION: Be sure to cancel G254 with G255 when your program does simultaneous 4- or 5-axis machining.
NOTE: For clarity, the illustrations in this section do not depict workholding.
The block in the figure below was programmed in the CAM system with the top center hole located at the center of the pallet and defined as X0, Y0, Z0.
337
Introduction
F7.56: Original Programmed Position
In the figure below, the actual workpiece is not located in this programmed position. The center of the workpiece is actually located at X1, Y-1, Z0, and is defined as G54.
F7.57: Center at G54, DWO Off
DWO is invoked in the figure below. The control knows the centers of rotation for the rotary table (MRZP), and the location of the workpiece (active work offset G54). The control uses this data to apply the appropriate offset adjustments to make sure that the proper toolpath is applied to the workpiece, as intended by the CAM-generated program. This eliminates the need to repost a program from the CAM system when the programmed and actual workpiece locations are different.
X0, Y0, Z0
X1, Y-1, Z0
338
G-codes
F7.58: Center with DWO On
G254 Program Example
% O00004 (DWO SAMPLE) ; G20 ; G00 G17 G40 G80 G90 G94 G98 ; G53 Z0. ; T1 M06 ; G00 G90 G54 X0. Y0. B0. C0. (G54 is the active work offset for) ; (the actual workpiece location) ; S1000 M03 ; G43 H01 Z1. (Start position 1.0 above face of part Z0.) ; G01 Z-1.0 F20. (Feed into part 1.0) ; G00 G53 Z0. (Retract Z with G53) ; B90. C0. (ROTARY POSITIONING) ; G254 (INVOKE DWO) ; X1. Y0. (X and Y position command) ; Z2. (Start position 1.0 above face of part Z1.0) ; G01 Z0. F20. (Feed into part 1.0 ) ; G00 G53 Z0. (Retract Z with G53) ; B90. C-90. (ROTARY POSITIONING) ; X1. Y0. (X and Y position command) ; Z2. (Start position 1.0 above face of part Z1.0) ; G01 Z0. F20. (Feed into part 1.0 ) ; G255 (CANCEL DWO) ; B0. C0. ; M30 ; %
X0, Y0, Z0
339
Introduction
G254 Programmers Notes
These key presses and program codes will cancel G254:
[EMERGENCY STOP]
[RESET]
[HANDLE JOG]
[LIST PROGRAM]
G255 Cancel DWO
M02 Program End
M30 Program End and Reset
These codes will NOT cancel G254:
M00 Program Stop
M01 Optional Stop
Some codes ignore G254. These codes will not apply rotational deltas:
*G28 Return to Machine Zero Through Optional Reference Point
*G29 Move to Location Through G29 Reference Point
G53 Non-Modal Machine Coordinate Selection
M06 Tool Change
*It is strongly recommended that you not use G28 or G29 while G254 is active, nor when the B and C Axes are not at zero.
1. G254 (DWO) is intended for 3+1 and 3+2 machining, where the B and C Axes are used to position only.
2. An active work offset (G54, G55, etc.) must be applied before G254 is commanded.
3. All rotary motion must be complete before G254 is commanded.
4. After G254 is invoked, you must specify an X-, Y-, and Z-Axis position prior to any cutting command, even if it recalls the current position. It is recommended to specify the X and Y Axes in one block, and the Z Axis in a separate block.
5. Cancel G254 with G255 immediately after use and before ANY rotary motion.
6. Cancel G254 with G255 any time simultaneous 4- or 5-axis machining is performed.
7. Cancel G254 with G255 and retract the cutting tool to a safe location before the workpiece is repositioned.
G255 Cancel Dynamic Work Offset (DWO) (Group 23)
G255 cancels G254 Dynamic Work Offset (DWO).
340
G-codes
7.2 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
341
More Information Online
342
M-codes
Chapter 8: M-codes
8.1 Introduction This chapter gives detailed descriptions of the M-codes that you use to program your machine.
8.1.1 List of M-codes
This chapter gives detailed descriptions of the M-codes that you use to program your machine.
CAUTION: The sample programs in this manual have been tested for accuracy, but they are for illustrative purposes only. The programs do not define tools, offsets, or materials. They do not describe workholding or other fixturing. If you choose to run a sample program on your machine, do so in Graphics mode. Always follow safe machining practices when you run an unfamiliar program.
NOTE: The sample programs in this manual represent a very conservative programming style. The samples are intended to demonstrate safe and reliable programs, and they are not necessarily the fastest or most efficient way to operate a machine. The sample programs use G-codes that you might choose not to use in more efficient programs.
M-codes are miscellaneous machine commands that do not command axis motion. The format for an M-code is the letter M followed by two to three digits; for example M03.
Only one M-code is allowed per line of code. All M-codes take effect at the end of the block.
Code Description Page
M00 Stop Program 346
M01 Optional Program Stop 346
M02 Program End 346
M03 Spindle Commands 346
343
Introduction
M04 Spindle Commands 346
M05 Spindle Commands 346
M06 Tool Change 346
M07 Shower Coolant On 347
M08 Coolant On 347
M09 Coolant Off 347
M10 Engage 4th Axis Brake 348
M11 Release 4th Axis Brake 348
M12 Engage 5th Axis Brake 348
M13 Release 5th Axis Brake 348
M16 Tool Change 348
M19 Orient Spindle 348
M21-M25 Optional User M Function with M-Fin 348
M29 Set Output Relay with M-Fin 350
M30 Program End and Reset 350
M31 Chip Conveyor Forward 350
M33 Chip Conveyor Stop 350
M34 Coolant Increment 351
M35 Coolant Decrement 351
M36 Pallet Part Ready 351
M39 Rotate Tool Turret 352
M41 Low Gear Override 352
M42 High Gear Override 352
Code Description Page
344
M-codes
M51-M55 Set Optional User M-codes 352
M59 Set Output Relay 352
M61-M65 Clear Optional User M-codes 353
M69 Clear Output Relay 353
M73 Tool Air Blast (TAB) On 353
M74 Tool Air Blast (TAB) Off 353
M75 Set G35 or G136 Reference Point 353
M78 Alarm if Skip Signal Found 353
M79 Alarm if Skip Signal Not Found 353
M80 Auto Door Open 354
M81 Auto Door Close 354
M82 Tool Unclamp 354
M83 Auto Air Gun On 354
M84 Auto Air Gun Off 354
M86 Tool Clamp 354
M88 Through-Spindle Coolant On 354
M89 Through-Spindle Coolant Off 354
M95 Sleep Mode 355
M96 Jump If No Input 355
M97 Local Sub-Program Call 356
M98 Sub-Program Call 357
M99 Sub-Program Return or Loop 358
M109 Interactive User Input 358
Code Description Page
345
Introduction
M00 Stop Program
The M00 code stops a program. It stops the axes, spindle, and turns off the coolant (including auxiliary coolant). The next block after the M00 is highlighted when viewed in the program editor. Press [CYCLE START] to continue program operation from the highlighted block.
M01 Optional Program Stop
M01 works the same as M00, except the optional stop feature must be on. Press [OPTION STOP] to toggle the feature on and off.
M02 Program End
M02 ends a program.
NOTE: The most common way of ending a program is with an M30.
M03 / M04 / M05 Spindle CW / CCW / Stop
M03 turns the spindle on in the clockwise (CW) direction.
M04 turns the spindle on in the counter-clockwise (CCW) direction.
M05 stops the spindle, and waits for it to stop.
Spindle speed is controlled with an S address code; for example, S5000 commands a spindle speed of 5000 RPM.
If your machine has a gearbox, the spindle speed you program determines the gear that the machine uses, unless you use M41 or M42 to override gear selection. Refer to page 352 for more information on the gear select override M-codes.
M06 Tool Change
T - Tool number
The M06 code is used to change tools. For example, M06 T12 puts tool 12 into the spindle. If the spindle is running, the spindle and coolant (including TSC) is stopped by the M06 command.
NOTE: The M06 command automatically stops the spindle, stops coolant, moves the Z Axis to the tool change position, and orients the spindle for the tool change. You do not need to include these commands for a tool change in your program.
346
M-codes
NOTE: M00, M01, any work offset G-code (G54, etc.), and block delete slashes before a tool change stop look-ahead, and the control does not pre-call the next tool to the change position (for a side-mount tool changer only). This can cause significant delays to program execution, because the control must wait for the tool to arrive at the change position before it can execute the tool change. You can command the carousel to the tool position with a T code after a tool change; for example:
M06 T1 (FIRST TOOL CHANGE) ; T2 (PRE-CALL THE NEXT TOOL) ;
Refer to page 100 for more information on side-mount tool changer programming.
M07 Shower Coolant On
M07 starts the optional shower coolant. M09 stops the shower coolant and also stops the standard coolant. The optional shower coolant stops automatically before a tool change or a pallet change. It automatically starts again after a tool change if it was ON before a tool change command.
NOTE: Some machines use optional relays and optional M-codes to command shower coolant, such as M51 on and M61 off. Check your machine configuration for the correct M-code programming.
M08 Coolant On / M09 Coolant Off
M08 starts the optional coolant supply and M09 stops it. Use M34/M35 to start and stop the optional Programmable Coolant (P-Cool). Use M88/M89 to start and stop the optional Through-Spindle Coolant.
NOTE: The control checks the coolant level only at the start of a program, so a low coolant condition will not stop a running program.
CAUTION: Do not use straight or neat mineral cutting oils. They cause damage to rubber components in the machine.
347
Introduction
M10 Engage 4th Axis Brake / M11 Release 4th Axis Brake
M10 applies the brake to the optional 4th axis and M11 releases the brake. The optional 4th axis brake is normally engaged, so the M10 command is only required when an M11 has released the brake.
M12 Engage 5th Axis Brake / M13 Release 5th Axis Brake
M12 applies the brake to the optional 5th axis and M13 releases the brake. The optional 5th axis brake is normally engaged, so the M12 command is only required when an M13 has released the brake.
M16 Tool Change
T - Tool number
This M16 behaves the same as M06. However M06 is the preferred method for commanding tool changes.
M19 Orient Spindle (Optional P and R Values)
P - Number of degrees (0 - 360) R - Number of degrees with two decimal places (0.00 - 360.00).
M19 adjusts the spindle to a fixed position. The spindle only orients to the zero position without the optional M19 orient spindle feature. The orient spindle function allows P and R address codes. For example:
M19 P270. (orients the spindle to 270 degrees) ;
The R-value allows the programmer to specify up to two decimal places; for example:
M19 R123.45 (orients the spindle to 123.45 degrees) ;
M21-M25 Optional User M Function with M-Fin
M21 through M25 are for user-defined relays. Each M-code closes one of the optional relays and waits for an external M-Fin signal. [RESET] stops any operation waiting for a relay-activated accessory to finish. Also, refer to M51 - M55 and M61 - M65.
Only one relay is switched at a time. A typical operation is to command a rotary product. The sequence is:
1. Run the machining portion of a CNC part program.
2. Stop CNC motion and command a relay.
3. Wait for a finish (M-Fin) signal from the equipment.
4. Continue the CNC part program.
The M-Fin connector is at P8 on the I/O PCB. Refer to the description below for a diagram and pinouts.
348
M-codes
M-code Relays
The M-code relays are in the lower-left corner of the I/O PCB.
These relays can activate probes, auxiliary pumps, clamping devices, etc. Connect these auxiliary devices to the terminal strip for the individual relay. The terminal strip has positions for, Normally Open (NO), Normally Closed (NC), and Common (COM).
F8.1: Main I/O PCB M-code Relays.
F8.2: M-Fin Circuit at P8 on the Main I/O PCB. Pin 3 is the M-Fin input and interacts with input number 18 in the control. Pin 1 is the M-Fin output and interacts with output number 4 on the control.
M21
M22
M23
M24
M25
NO
COM
NC
M-Fin
1 P8
7 6
3
8
1
5
2
4
1
2 2
3 3
4 4
12V Return
12V Return
+3.3V
+12V
+12V
349
Introduction
Optional 8M-code Relays
You can purchase additional M-code relays in banks of 8.
Only the outputs on the I/O PCB are addressable with M21-M25, M51-M55, and M61-M65. If you use an 8M relay bank, you must use M29, M59, and M69 with P codes to activate the relays on the bank. The P codes for the first 8M bank are P90-P97.
M29 Set Output Relay with M-Fin
P - Discrete output relay from 0 to 255.
M29 turns on a relay, pauses the program, and waits for an external M-Fin signal. When the control receives the M-Fin signal, the relay turns off and the program continues. [RESET] stops any operation waiting for a relay-activated accessory to finish.
M30 Program End and Reset
M30 stops a program. It also stops the spindle, turns off the coolant (including TSC), and returns the program cursor to the start of the program.
NOTE: M30 cancels tool length offsets.
M31 Chip Conveyor Forward / M33 Chip Conveyor Stop
M31 starts the optional chip removal system (auger, multi-auger, or belt-style conveyor) in the forward direction; the direction that moves the chips out of the machine. You should run the chip conveyor intermittently, as this allows piles of larger chips to collect smaller chips and carry them out of the machine. You can set the chip conveyor duty cycle and run time with Settings 114 and 115.
The optional conveyor coolant washdown runs while the chip conveyor is on.
M33 stops conveyor motion.
350
M-codes
M34 Coolant Increment / M35 Coolant Decrement
F8.3: P-Cool Spigot
M34 moves the optional P-Cool spigot one position away from the current position (farther from home).
M35 moves the coolant spigot one position towards the home position.
CAUTION: Do not rotate the coolant spigot by hand. Serious motor damage will occur.
M36 Pallet Part Ready
Used on machines with pallet changers. M36 delays the pallet change until [PART READY] is pushed. A pallet change occurs after [PART READY] is pushed and the doors are closed. For example:
% Onnnnn (program number) ; M36 (Flash Part Ready light, wait until the button is pressed) ; M01 ; M50 (Perform pallet change after [PART READY] is pushed) ; (Part Program) ; M30 ; %
M35
M34
1
351
Introduction
M39 Rotate Tool Turret
M39 is used to rotate the side mount tool changer without a tool change. Program the tool pocket number (Tn) before M39.
M06 is the command to change tools. M39 is normally useful for diagnostic purposes, or to recover from a tool changer crash.
M41 / M42 Low / High Gear Override
On machines with a transmission, M41 holds the machine in low gear and M42 holds the machine in high gear. Normally, the spindle speed (Snnnn) determines which gear the transmission should be in.
Command M41 or M42 with the spindle speed before the spindle start command, M03. For example:
% S1200 M41 ; M03 ; %
The gear state reverts to default at the next spindle speed (Snnnn) command. The spindle does not have to stop.
M51-M55 Set Optional User M-codes
M51 through M55 are optional for user interfaces. They turn on one of the optional M-code relays on relay board 1. M61 through M65 turns the relay off. [RESET] turns off all of these relays.
Refer to M21 through M26 on page 348 for details on the M-code relays.
M59 Set Output Relay
P - Discrete output relay from 0 to 255 or macro number 12000 to 12255.
M59 turns on a discrete output relay. An example of its usage is M59 Pnnn, where nnn is the relay number being turned on. M59 can also be used with the corresponding macro number in the range from 12000 to 12255. When using Macros, M59 P12003 does the same thing as using the optional macro command #12003=1, except that it is processed at the end of the line of code.
NOTE: For the 8 spare M functions on relay board 1 use relays 90-97 or macro addresses #12090 - #12097
352
M-codes
M61-M65 Clear Optional User M-codes
M61 through M65 are optional and turn off one of the relays. The M number corresponds to M51 through M55 that turned on the relay. [RESET] turns off all of these relays. Refer to M21-M25 on page 348 for details on the M-code relays.
M69 Clear Output Relay
M69 turns off a relay. An example of its usage is M69 P12nnn, where nnn is the number of the relay being turned off. An M69 command can turn off any of the output relays in the range from 12000 to 12255. When using Macros, M69 P12003 does the same thing as using the optional macro command #12003=0, except that it is processed in the same order as axis motion.
M73 Tool Air Blast (TAB) On / M74 TAB Off
These M-codes control the Tool Air Blast (TAB) option. M73 turns on TAB, and M74 turns it off.
M75 Set G35 or G136 Reference Point
This code is used to set the reference point for G35 and G136 commands. It must be used after a probing function.
M78 Alarm if Skip Signal Found
M78 is used with a probe. An M78 generates an alarm if a programmed skip function (G31, G36 or G37) receives a signal from the probe. This is used when a skip signal is not expected, and may indicate a probe crash. This code can be placed on the same line as the skip G-code or in any block after.
M79 Alarm if Skip Signal Not Found
M79 is used with a probe. An M79 generates an alarm if a programmed skip function (G31, G36, or G37) did not receive a signal from the probe. This is used when the lack of the skip signal means a probe positioning error. This code can be placed on the same line as the skip G-code or in any block after.
F8.4: Probe Positioning Error: [1] Signal Found. [2] Signal not Found.
1 2
353
Introduction
M80 Auto Door Open / M81 Auto Door Close
M80 opens the Auto Door and M81 closes it. The control pendant beeps while the door is in motion.
M82 Tool Unclamp
M82 is used to release the tool from the spindle. It is used as a maintenance/test function only. Tool changes should be done using an M06.
M83 Auto Air Gun / MQL On / M84 Auto Air Gun / MQL Off
M83 turns the Auto Air Gun (AAG) or Minimum Quantity Lubrication (MQL) option on, and M84 turns it off. M83 with a Pnnn argument (where nnn is in milliseconds) turns the AAG or MQL on for the specified time, then turns it off. You can also press [SHIFT] and then [COOLANT] to turn on the AAG or MQL manually.
M86 Tool Clamp
M86 clamps a tool into the spindle. It is used as a maintenance/test function only. Tool changes should be done using an M06.
M88 Through-Spindle Coolant On / M89 Through-Spindle Coolant Off
M88 turns on through-spindle coolant (TSC), and M89 turns off TSC.
The control automatically stops the spindle before it executes M88 or M89. The control does not automatically start the spindle again after M89. If your program continues with the same tool after an M89 command, be sure to add a spindle speed command before further motion.
CAUTION: You must use proper tooling, with a through-hole, when you use the TSC system. Failure to use proper tooling can flood the spindle head with coolant and void the warranty.
Sample Program
NOTE: The M88 command should be before the spindle speed command. If you command M88 after the spindle speed command, the spindle starts, then stops, turns on TSC, and then starts again.
354
M-codes
% T1 M6 (TSC Coolant Through Drill) ; G90 G54 G00 X0 Y0 ; G43 H01 Z.5 ; M88 (Turn TSC on) ; S4400 M3 ; G81 Z-2.25 F44. R.1 ; M89 G80 (Turn TSC off) ; G91 G28 Z0 ; G90 ; M30 ; %
M95 Sleep Mode
Sleep mode is a long dwell. The format of the M95 command is: M95 (hh:mm).
The comment immediately following M95 must contain the duration, in hours and minutes, that you want the machine to sleep. For example, if the current time were 6 p.m. and you want the machine to sleep until 6:30 a.m. the next day, command M95 (12:30). The line(s) after M95 should be axis moves and spindle warm-up commands.
M96 Jump If No Input
P - Program block to go to when conditional test is met Q - Discrete input variable to test (0 to 255)
M96 is used to test a discrete input for 0 (off) status. This is useful for checking the status of automatic work holding or other accessories that generate a signal for the control. The Q value must be in the range 0 to 255, which corresponds to the inputs found on the diagnostic display I/O tab. When this program block is executed and the input signal specified by Q has a value of 0, the program block Pnnnn is performed (the Nnnnn that matches the Pnnnn line must be in the same program). The M96 sample program uses input #18 M-FIN INPUT
Example:
% O00096(SAMPLE PROGRAM FOR M96 JUMP IF NO INPUT) ; (IF M-FIN INPUT #18 IS EQUAL TO 1 THE PROGRAM WILL JUMP TO N100) ; (AFTER JUMPING TO N100 THE CONTROL ALARMS OUT WITH A MESSAGE) ; (M-FIN INPUT=1) ; (IF M-FIN INPUT #18 IS EQUAL TO 0 THE PROGRAM JUMPS TO N10) ; (AFTER JUMPING TO N10 THE CONTROL DWELLS FOR 1 SECOND THEN JUMPS TO N5) ; (THE PROGRAM CONTINUES THIS LOOP UNTIL INPUT #18 IS EQUAL TO 1) ;
355
Introduction
G103 P1 ; ... ; ... ; N5 M96 P10 Q18(JUMP TO N10 IF M-FIN INPUT #18 = 0) ; ... ; M99 P100(JUMP TO N100) ; N10 ; G04 P1. (DWELL FOR 1 SECOND) ; M99 P5 (JUMP TO N5) ; ... ; N100 ; #3000= 10(M-FIN INPUT=1) ; M30 ; ... ; %
M97 Local Subprogram Call
P - Program line number to go to when conditional test is met L - Repeats subprogram call (1-99) times.
M97 is used to call a subprogram referenced by a line number (N) within the same program. A code is required and must match a line number within the same program. This is useful for simple subprograms within a program; does not require a separate program. The subprogram must end with an M99. Lnn code in the M97 block repeats the subprogram call nn times.
NOTE: The subprogram is within the body of the main program, placed after the M30.
M97 Example:
% O00001 ; M97 P100 L4 (CALLS N100 SUBPROGRAM) ; M30 ; N100 (SUBPROGRAM) ; ; M00 ; M99 (RETURNS TO MAIN PROGRAM) ; %
356
M-codes
M98 Subprogram Call
P - The subprogram number to run L - Repeats the subprogram call (1-99) times. (
M98 calls a subprogram in the format M98 Pnnnn, where Pnnnn is the number of the program to call, or M98 (
The subprogram must contain an M99 to return to the main program. You can add an Lnn count to the M98 block M98 to call the subprogram nn times before continuing to the next block.
When your program calls an M98 subprogram, the control looks for the subprogram in the main programs directory. If the control cannot find the subprogram, it then looks in the location specified in Setting 251. Refer to page 151 for more information. An alarm occurs if the control cannot find the subprogram.
M98 Example:
The subprogram is a separate program (O00100) from the main program (O00002).
% O00002 (PROGRAM NUMBER CALL); M98 P100 L4 (CALLS O00100 SUB 4 TIMES) ; M30 ; % % O00100 (SUBPROGRAM); M00 ; M99 (RETURN TO MAIN PROGRAM) ; % % O00002 (PATH CALL); M98 (USB0/O00001.nc) L4 (CALLS O00100 SUB 4 TIMES) ; M30 ; % % O00100 (SUBPROGRAM); M00 ; M99 (RETURN TO MAIN PROGRAM) ; %
357
Introduction
M99 Subprogram Return or Loop
P - Program line number to go to when conditional test is met
M99 has three main uses:
M99 is used at the end of a subprogram, local subprogram, or macro to return back to the main program.
An M99 Pnn jumps the program to the corresponding Nnn in the program.
An M99 in the main program causes the program to loop back to the beginning and execute until [RESET] is pressed.
M99 jumps to a specific block with or with out the macro option.
M109 Interactive User Input
P - A number in the range (500-549 or 10500-10549) representing the macro variable of the same name.
M109 lets a G-code program place a short prompt (message) on the screen. You must use a P code to specify macro variable in the range 500-549 or 10500 through 10549. The program can check for any character that can be entered from the keyboard by comparing with the decimal equivalent of the ASCII character (G47, Text Engraving, has a list of ASCII characters).
Haas
calling program: O0001 ;
...
N50 M98 P2 ;
N51 M99 P100 ;
...
N100 (continue here) ;
...
M30 ;
subprogram: O0002 ;
M99 ;
358
M-codes
NOTE: Macro Variables 540-599 and 10549-10599 are reserved for the WIPS (probe) option. If your machine is equipped with WIPS only use P500-539 or P10500-10599.
The following sample program asks the user a Yes or No question, then waits for either a Y or an N to be entered. All other characters are ignored.
% O61091 (M109 INTERACTIVE USER INPUT) ; (This program has no axis movement) ; N1 #10501= 0. (Clear the variable) ; N5 M109 P10501 (Sleep 1 min?) ; IF [ #10501 EQ 0. ] GOTO5 (Wait for a key) ; IF [ #10501 EQ 89. ] GOTO10 (Y) ; IF [ #10501 EQ 78. ] GOTO20 (N) ; GOTO1 (Keep checking) ; N10 (A Y was entered) ; M95 (00:01) ; GOTO30 ; N20 (An N was entered) ; G04 P1. (Do nothing for 1 second) ; N30 (Stop) ; M30 ; %
The following sample program asks the user to select a number, then wait for a 1, 2, 3, 4 or a 5 to be entered; all other characters are ignored.
% O00065 (M109 INTERACTIVE USER INPUT 2) ; (This program has no axis movement) ; N1 #10501= 0 (Clear Variable #10501) ; (Variable #10501 will be checked) ; (Operator enters one of the following selections) N5 M109 P501 (1,2,3,4,5) ; IF [ #10501 EQ 0 ] GOTO5 ; (Wait for keyboard entry loop until entry) ; (Decimal equivalent from 49-53 represent 1-5) ; IF [ #10501 EQ 49 ] GOTO10 (1 was entered go to N10) ; IF [ #10501 EQ 50 ] GOTO20 (2 was entered go to N20) ; IF [ #10501 EQ 51 ] GOTO30 (3 was entered go to N30) ; IF [ #10501 EQ 52 ] GOTO40 (4 was entered go to N40) ; IF [ #10501 EQ 53 ] GOTO50 (5 was entered go to N50) ; GOTO1 (Keep checking for user input loop until found) ; N10 ; (If 1 was entered run this sub-routine) ;
359
More Information Online
(Go to sleep for 10 minutes) ; #3006= 25 (Cycle start sleeps for 10 minutes) ; M95 (00:10) ; GOTO100 ; N20 ; (If 2 was entered run this sub routine) ; (Programmed message) ; #3006= 25 (Programmed message cycle start) ; GOTO100 ; N30 ; (If 3 was entered run this sub routine) ; (Run sub program 20) ; #3006= 25 (Cycle start program 20 will run) ; G65 P20 (Call sub-program 20) ; GOTO100 ; N40 ; (If 4 was entered run this sub routine) ; (Run sub program 22) ; #3006= 25 (Cycle start program 22 will be run) ; M98 P22 (Call sub program 22) ; GOTO100 ; N50 ; (If 5 was entered run this sub-routine) ; (Programmed message) ; #3006= 25 (Reset or cycle start will turn power off) ; #12006= 1 ; N100 ; M30 (End Program); %
8.2 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
360
Settings
Chapter 9: Settings
9.1 Introduction This chapter gives detailed descriptions of the settings that control the way that your machine works.
9.1.1 List of Settings
Inside the SETTINGS tab, the settings are organized into groups. Use the [UP] and [DOWN] cursor arrow keys to highlight a setting group. Press the [RIGHT] cursor arrow key to see the settings in a group. Press the [LEFT] cursor arrow key to return to the setting group list.
To quickly access a single setting, make sure the SETTINGS tab is active, type the setting number, and then press [F1] or, if a setting is highlighted, press the [DOWN] cursor.
Some settings have numerical values that fit in a given range. To change the value of these settings, type the new value and press [ENTER]. Other settings have specific available values that you select from a list. For these settings, use the [RIGHT] cursor to display the choices. Press [UP] and [DOWN] to scroll through the options. Press [ENTER] to select the option.
Settings for Mill
1 - Auto Power Off Timer
2 - Power Off at M30
4 - Graphics Rapid Path
5 - Graphics Drill Point
6 - Front Panel Lock
8 - Prog Memory Lock
9 - Dimensioning
10 - Limit Rapid at 50%
15 - H and T Code Agreement
17 - Opt Stop Lock Out
361
Introduction
18 - Block Delete Lock Out
19 - Feedrate Override Lock
20 - Spindle Override Lock
21 - Rapid Override Lock
22 - Can Cycle Delta Z
23 - 9xxx Progs Edit Lock
27 - G76/G77 Shift Dir.
28 - Can Cycle Act w/o X/Y
29 - G91 Non-modal
31 - Reset Program Pointer
32 - Coolant Override
33 - Coordinate System
34 - 4th Axis Diameter
35 - G60 Offset
36 - Program Restart
39 - Beep @ M00, M01, M02, M30
40 - Tool Offset Measure
42 - M00 After Tool Change
43 - Cutter Comp Type
44 - Min F in Radius CC %
45 - Mirror Image X Axis
46 - Mirror Image Y Axis
47 - Mirror Image Z Axis
Settings for Mill
362
Settings
48 - Mirror Image A Axis
49 - Skip Same Tool Change
52 - G83 Retract Above R
53 - Jog w/o Zero Return
56 - M30 Restore Default G
57 - Exact Stop Canned X-Y
58 - Cutter Compensation
59 - Probe Offset X+
60 - Probe Offset X-
61 - Probe Offset Z+
62 - Probe Offset Z-
63 - Tool Probe Width
64 - Tool Offset Measure Uses
71 - Default G51 Scaling
72 - Default G68 Rotation
73 - G68 Incremental Angle
74 - 9xxx Progs Trace
75 - 9xxxx Progs Single BLK
76 - Tool Release Lock Out
77 - Scale Integer F
79 - 5th-axis Diameter
80 - Mirror Image B-Axis
81 - Tool At Power Up
Settings for Mill
363
Introduction
82 - Language
83 - M30/Resets Overrides
84 - Tool Overload Action
85 - Maximum Corner Rounding
86 - M39 Lockout
87 - M06 Resets Override
88 - Reset Resets Overrides
90 - Max Tools To Display
101 - Feed Overide- > Rapid
103 - CYC START/FH Same Key
104 - Jog Handle to SNGL BLK
108 - Quick Rotary G28
109 - Warm-Up Time in MIN.
110 - Warmup X Distance
111 - Warmup Y Distance
112 - Warmup Z Distance
114 - Conveyor Cycle Time (minutes)
115 - Conveyor On-Time (minutes)
117 - G143 Global Offset
118 - M99 Bumps M30 CNTRS
119 - Offset Lock
120 - Macro Var Lock
130 - Tap Retract Speed
Settings for Mill
364
Settings
131 - Auto Door
133 - REPT Rigid Tap
142 - Offset Chng Tolerance
143 - Machine Data Collection Port
144 - Feed Override->Spindles
155 - Load Pocket Tables
156 - Save Offset with Program
158 - X Screw Thermal COMP%
159 - Y Screw Thermal COMP%
160 - Z Screw Thermal COMP%
162 - Default To Float
163 - Disable .1 Jog Rate
164 - Rotary Increment
188 - G51 X SCALE
189 - G51 Y SCALE
190 - G51 Z SCALE
191 - Default Smoothness
196 - Conveyor Shutoff
197 - Coolant Shutoff
199 - Display Off Timer (Minutes)
216 - Servo and Hydraulic Shutoff
238 - High Intensity Light Timer (minutes)
239 - Worklight Off Timer (minutes)
Settings for Mill
365
Introduction
240 - Tool Life Warning
242 - Air Water Purge Interval (minutes)
243 - Air Water Purge On-Time (seconds)
245 - Hazardous Vibration Sensitivity
247 - Simultaneous XYZ Motion in Tool Change
250 - Mirror Image C Axis
251 - Sub-Program Search Location
252 - Custom Sub-Program Search Location
253 - Default Graphics Tool Width
254 - 5 Axis Rotary Center Distance
255 - MRZP X Offset
256 - MRZP Y Offset
257 - MRZP Z Offset
261 - DPRNT Store Location
262 - DPRNT Destination Path/Port
263 - DPRNT TCP Port
264 - Autofeed Step Up
265 - Autofeed Step Down
266 - Autofeed Minimum Override
267 Exit Jog Mode after Idle Time
268 - Second Home X Offset
269 - Second Home Y Offset
270 - Second Home Z Offset
Settings for Mill
366
Settings
1 - Auto Power Off Timer
This setting is used to automatically power-down the machine after a period of idle time. The value entered in this setting is the number of minutes the machine remains idle until it is powered down. The machine does not power down while a program is running, and the time (number of minutes) starts back at zero anytime a button is pressed or the [HANDLE JOG] control is used. The auto-off sequence gives the operator a 15-second warning before power down, at which time pressing any button stops the power down.
2 - Power Off at M30
If this setting is set to ON, the machine powers down at the end of a program (M30). The machine gives the operator a 15-second warning once an M30 is reached. Press any key to interrupt the power-off sequence.
4 - Graphics Rapid Path
This setting changes the way a program is viewed in the Graphics mode. When it is OFF, rapid, non-cutting tool motions do not leave a path. When it is ON, rapid tool motions leave a dashed line on the screen.
F9.1: Setting 4 -Graphics Rapid Path:[1] All Rapid Tool Motions Shown with a Dashed Line When ON. [2] Only Cut Lines Shown When OFF.
5 - Graphics Drill Point
This setting changes the way a program is viewed in Graphics mode. When it is ON, canned cycle drill locations leave a circle mark on the screen. When it is OFF, no additional marks are shown on the graphics display.
271 - Second Home A Offset
272 - Second Home B Offset
273 - Second Home C Offset
277 - Lubrication Cycle Interval
Settings for Mill
1 2
367
Introduction
6 - Front Panel Lock
When set to ON, this setting disables the Spindle [FWD] / [REV] keys and [ATC FWD] / [ATC REV] keys.
8 - Prog Memory Lock
This setting locks out the memory editing functions ([ALTER], [INSERT], etc.) when it is set to ON. This also locks out MDI. Editing functions are not restricted by this setting.
9 - Dimensioning
This setting selects between inch and metric mode. When it is set to INCH, the programmed units for X, Y, and Z are inches, to 0.0001". When it is set to MM, programmed units are millimeters, to 0.001 mm. All offset values are converted when this setting is changed from inches to metric, or vice versa. However, changing this setting does not automatically translate a program stored in memory; the programmed axis values must be changed for the new units.
When set to INCH, the default G-code is G20, when set to MM, the default G-code is G21.
Inch Metric
Feed in/min mm/min
Max Travel Varies by axis and model
Minimum programmable dimension
.0001 .001
Axis jog key Inch Metric
.0001 .0001 in/jog click .001 mm/jog click
.001 .001 in/jog click .01 mm/jog click
.01 .01 in/jog click .1 mm/jog click
.1 .1 in/jog click 1 mm/jog click
368
Settings
10 - Limit Rapid at 50%
Turning this setting ON limits the machine to 50% of its fastest non-cutting axis motion (rapids). This means, if the machine can position the axes at 700 inches per minute (ipm), it is limited to 350 ipm when this setting is ON. The control displays a 50% rapid override message, when this setting is ON. When it is OFF, the highest rapid speed of 100% is available.
15 - H and T Code Agreement
Turning this setting ON has the machine check to ensure that the H offset code matches the tool in the spindle. This check can help to prevent crashes.
NOTE: This setting does not generate an alarm with an H00. H00 is used to cancel the tool length offset.
17 - Opt Stop Lock Out
The Optional Stop feature is not available when this setting is ON.
18 - Block Delete Lock Out
The Block Delete feature is not available when this setting is ON.
19 - Feedrate Override Lock
The feedrate override buttons are disabled when this setting is turned ON.
20 - Spindle Override Lock
The spindle speed override keys are disabled when this setting is turned ON.
21 - Rapid Override Lock
The axis rapid override keys are disabled when this setting is turned ON.
22 - Can Cycle Delta Z
This setting specifies the distance to retract the Z Axis to clear chips during a G73 canned cycle. The range is 0.0000 to 29.9999 inches (0-760 mm).
369
Introduction
23 - 9xxx Progs Edit Lock
When this setting is ON, the control does not let you view or alter the files in the 09000 directory in Memory/. This protects macro programs, probing cycles, and any other files in the 09000 folder.
If you attempt to access the 09000 folder while Setting 23 is ON, you get the message Setting 23 restricts access to folder.
27 - G76 / G77 Shift Dir.
This setting controls the direction the tool is shifted (moved) to clear a boring tool during a G76 or G77 canned cycle. Selections are X+, X-, Y+, or Y-. For more information on how this setting works see the G76 and G77 cycle in the G-code section page 283.
F9.2: Setting 27, Direction the Tool is Shifted to Clear Boring Tool: [1] Part, [2] Bored hole.
28 - Can Cycle Act w/o X/Y
This is an ON/OFF setting. The preferred setting is ON.
When it is OFF, the initial canned cycle definition block requires an X or Y code for the canned cycle to be executed.
When it is ON, the initial canned cycle definition block causes one cycle to be executed even when there is no X or Y code in the block.
NOTE: When an L0 is in that block, it will not execute the canned cycle on the definition line. This setting has no effect on G72 cycles.
X+X
Y
Y 1
2
370
Settings
29 - G91 Non-modal
Turning this setting ON uses the G91 command only in the program block it is in (non-modal). When it is OFF, and a G91 is commanded, the machine uses incremental moves for all axis positions.
NOTE: This setting must be OFF for G47 engraving cycles.
31 - Reset Program Pointer
When this setting is OFF, [RESET] does not change the position of the program pointer. When it is ON, pressing [RESET] moves the program pointer to the beginning of the program.
32 - Coolant Override
This setting controls how the coolant pump operates. When Setting 32 NORMAL, you can press [COOLANT], or you can use M-codes in a program, to turn the coolant pump on and off.
When Setting 32 is OFF, the control gives the message FUNCTION LOCKED when you press [COOLANT]. The control gives an alarm when a program commands the coolant pump on or off.
When Setting 32 is IGNORE, the control ignores all programmed coolant commands, but you can press [COOLANT] to turn the coolant pump on or off.
33 - Coordinate System
This setting changes the way the Haas control recognizes the work offset system when a G52 or G92 is programmed. It can be set to FANUC, HAAS, or YASNAC.
Set to YASNAC
G52 becomes another work offset; like G55.
Set to FANUC with G52:
Any values in the G52 register are added to all work offsets (global coordinate shift). This G52 value can be entered either manually or through a program. When FANUC is selected, pressing [RESET], commanding an M30, or machine power down clears out the value in G52.
Set to HAAS with G52:
Any values in the G52 register are added to all work offsets. This G52 value can be entered either manually or through a program. The G52 coordinate shift value is set to zero (zeroed) by manually entering zero, or by programming it with G52 X0, Y0, and/or Z0.
371
Introduction
Set to YASNAC with G92:
Selecting YASNAC and programming a G92 X0 Y0, the control enters the current machine location as a new zero point (Work Zero Offset), and that location is entered into and viewed in the G52 list.
Set to FANUC or HAAS with G92:
Selecting FANUC or HAAS with a G92, works like the YASNAC setting, except that the new Work Zero location value is loaded as a new G92. This new value in the G92 list is used, in addition to, the presently recognized work offset to define the new work zero location.
34 - 4th Axis Diameter
This is used to set the diameter of the A Axis (0.0000 to 50.0000 inches), which the control uses to determine the angular feedrate. The feedrate in a program is always inches or millimeters per minute ( G94); therefore, the control must know the diameter of the part being machined in the A Axis in order to compute angular feedrate. Refer to Setting 79 on page 378 for information on the 5th axis diameter setting.
35 - G60 Offset
This is a numeric entry in the range 0.0000 to 0.9999 inches. It is used to specify the distance an axis travels past the target point prior to reversing. Also see G60.
36 - Program Restart
When this setting is ON, restarting a program from a point other than the beginning directs the control to scan the entire program to make sure that the tools, offsets, G- and M-codes, and axis positions are set correctly before the program starts at the block where the cursor is positioned.
NOTE: The machine first goes to the position and changes to the tool specified in the block before the cursor position. For example, if the cursor is on a tool change block in the program, the machine changes to the tool loaded before that block, then it changes to the tool specified in the block at the cursor location.
The control processes these M-codes when Setting 36 is enabled:
M08 Coolant On
M09 Coolant Off
M41 Low Gear
M42 High Gear
372
Settings
M51-M58 Set User M
M61-M68 Clear User M
When Setting 36 is OFF, the control starts the program, but it does not check the conditions of the machine. Having this setting OFF may save time when running a proven program.
39 - Beep @ M00, M01, M02, M30
Turning this setting ON causes the keyboard beeper to sound when an M00, M01 (with Optional Stop active), M02, or an M30 is found. The beeper continues until a button is pressed.
40 - Tool Offset Measure
This setting selects how tool size is specified for cutter compensation. Set to either RADIUS or DIAMETER. The selection also effects the Tool Diameter geometry and wear values displayed on the TOOL OFFSETS table. If setting 40 is changed from RADIUS to DIAMETER, the displayed value is twice the value entered before.
42 - M00 After Tool Change
Turning this setting ON stops the program after a tool change and a message is displayed stating this. [CYCLE START] must be pressed to continue the program.
43 - Cutter Comp Type
This controls how the first stroke of a compensated cut begins and the way the tool is cleared from the part. The selections can be A or B; see the Cutter Compensation section on page 131.
44 - Min F in Radius CC %
Minimum feedrate in radius cutter compensation percent setting affects the feed rate when cutter compensation moves the tool towards the inside of a circular cut. This type of cut slows down to maintain a constant surface feed rate. This setting specifies the slowest feed rate as a percentage of the programmed feed rate (range 1-100).
373
Introduction
45, 46, 47 - Mirror Image X, Y, Z Axis
When one or more of these settings is ON, axis motion is mirrored (reversed) around the work zero point. See also G101, Enable Mirror Image.
F9.3: No Mirror Image [1], Setting 45 ON - X Mirror [2], Setting 46 ON - Y Mirror [4], Setting 45 and Setting 46 ON - XY Mirror [3]
48 - Mirror Image A Axis
This is an ON/OFF setting. When it is OFF, axis motions occur normally. When it is ON, A-Axis motion may be mirrored (or reversed) around the work zero point. Also, see G101 and Settings 45, 46, 47, 80, and 250.
49 - Skip Same Tool Change
In a program, the same tool may be called in the next section of a program or a subprogram. The control does two tool changes and finishes with the same tool in the spindle. Turning this setting ON skips same-tool changes; a tool change only occurs if a different tool is placed in the spindle.
NOTE: This setting only affects machines with carousel (umbrella) tool changers.
x- x+
Y+
Y-
1 2
4 3
374
Settings
52 - G83 Retract Above R
Range is 0.0000 to 30.0000 inches (0-761mm). This setting changes the way G83 (peck drilling cycle) behaves. Most programmers set the reference (R) plane well above the cut to ensure that the chip clearing motion actually allows the chips to get out of the hole. However this wastes time as the machine drills through this empty distance. If Setting 52 is set to the distance required to clear chips, the R plane can be set much closer to the part being drilled.
F9.4: Setting 52, Drill Retract Distance: [1] Setting 52, [2] Start Position, [3] Retract Distance Set by Setting 52, [4] R Plane
53 - Jog w/o Zero Return
Turning this setting ON allows the axes to be jogged without zero returning the machine (finding machine home). This is a dangerous condition as the axis can be run into the mechanical stops and possibly damage the machine. When the control is powered up, this setting automatically returns to OFF.
56 - M30 Restore Default G
When this setting is ON, ending a program with M30 or pressing [RESET] returns all modal G-codes to their defaults.
57 - Exact Stop Canned X-Y
When this setting is OFF, the axes may not get to the programmed X, Y position before the Z-Axis starts moving. This may cause problems with fixtures, fine part details or workpiece edges.
Turning this setting ON makes the mill reach the programmed X,Y position before the Z-Axis moves.
58 - Cutter Compensation
This setting selects the type of cutter compensation used (FANUC or YASNAC). See the Cutter Compensation section on page 131.
1 2
3
4
375
Introduction
59, 60, 61, 62 - Probe Offset X+, X-, Y+, Y-
These settings are used to define the displacement and size of the spindle probe. They specify the travel distance and direction from where the probe is triggered to where the actual sensed surface is located. These settings are used by G31, G36, G136, and M75 codes. The values entered for each setting can be either positive or negative numbers, equal to the radius of the probe stylus tip.
You can use macros to access these settings; for more information, refer to the Macro section of this manual (starting on page 183).
NOTE: These settings are not used with the Renishaw WIPS option.
63 - Tool Probe Width
This setting is used to specify the width of the probe used to test tool diameter. This setting only applies to the probing option; it is used by G35. This value is equal to the diameter of the tool probe stylus.
64 - T. Ofs Meas Uses Work
The (Tool Offset Measure Uses Work) setting changes the way the [TOOL OFFSET MEASURE] key works. When this is ON, the entered tool offset is the measured tool offset plus the work coordinate offset (Z-Axis). When it is OFF, the tool offset equals the Z machine position.
71 - Default G51 Scaling
This specifies the scaling for a G51 (See G-code Section, G51) command when the P address is not used. The default is 1.000 (Range 0.001 to 8380.000).
72 - Default G68 Rotation
This specifies the rotation, in degrees, for a G68 command when the R address is not used. It must be in the range 0.0000 to 360.0000.
376
Settings
73 - G68 Incremental Angle
This setting allows the G68 rotation angle to be changed for each commanded G68. When this switch is ON and a G68 command is executed in the Incremental mode (G91), the value specified in the R address is added to the previous rotation angle. For example, an R value of 10 causes the feature rotation to be 10 degrees the first time commanded, 20 degrees the next time, etc.
NOTE: This setting must be OFF when you command an engraving cycle (G47).
74 - 9xxx Progs Trace
This setting, along with Setting 75, is useful for debugging CNC programs. When Setting 74 is ON, the control displays the code in the macro programs (O9xxxx). When the setting is OFF, the control does not display the 9000 series code.
75 - 9xxxx Progs Single BLK
When Setting 75 is ON and the control is operating in Single Block mode, then the control stops at each block of code in a macro program (O9xxxx) and waits for the operator to press [CYCLE START]. When Setting 75 is OFF the macro program is run continuously, the control does not pause at each block, even if Single Block is ON. The default setting is ON.
When Setting 74 and Setting 75 are both ON, the control acts normally. That is, all blocks executed are highlighted and displayed, and when in Single-Block mode there is a pause before each block is executed.
When Setting 74 and Setting 75 are both OFF, the control executes 9000 series programs without displaying the program code. If the control is in Single-Block mode, no single-block pause occurs during the running of the 9000 series program.
When Setting 75 is ON and Setting 74 is OFF, 9000 series programs are displayed as they are executed.
76 - Tool Release Lock Out
When this setting is ON, the [TOOL RELEASE] key on the keyboard is disabled.
377
Introduction
77 - Scale Integer F
This setting allows the operator to select how the control interprets an F value (feedrate) that does not contain a decimal point. (It is recommended that you always use a decimal point.) This setting helps operators run programs developed on a control other than Haas. For example F12 becomes:
0.0012 units/minute with Setting 77 OFF 12.0 units/minute with Setting 77 ON
There are 5 feedrate settings. This chart shows the effect of each setting on a given F10 address.
79 - 5th-Axis Diameter
This is used to set the diameter of the 5th axis (0.0 to 50 inches), that the control uses to determine the angular feedrate. The feedrate in a program is always inches or millimeters per minute; therefore, the control must know the diameter of the part being machined in the 5th-axis in order to compute angular feedrate. Refer to Setting 34 on page 372 for more information on the 4th axis diameter setting.
80 - Mirror Image B Axis
This is an ON/OFF setting. When it is OFF, axis motions occur normally. When it is ON, B-Axis motion may be mirrored (or reversed) around the work zero point. Also, see G101 and Settings 45, 46, 47, 48, and 250.
81 - Tool At Power Up
When [POWER UP] is pressed, the control changes to the tool specified in this setting. If zero (0) is specified, no tool change occurs at power up. The default setting is 1.
Setting 81, causes one of these actions to occur after you press [POWER UP]:
INCH MILLIMETER
DEFAULT (.0001) DEFAULT (.001)
INTEGER F1 = F1 INTEGER F1 = F1
.1 F10 = F1. .1 F10 = F1.
.01 F10 = F.1 .01 F10 = F.1
.001 F10 = F.01 .001 F10 = F.01
.0001 F10 = F.001 .0001 F10 = F.001
378
Settings
If Setting 81 is set to zero, the carousel rotates to pocket #1. No tool change is performed.
If Setting 81 contains the tool #1, and the tool currently in the spindle is tool #1, and [ZERO RETURN] then [ALL] are pressed, the carousel remains at the same pocket and no tool change is performed.
If Setting 81 contains the tool number of a tool not currently in the spindle, the carousel rotates to pocket #1 and then to the pocket containing the tool specified by Setting 81. A tool change is performed to change the specified tool into the spindle.
82 - Language
Languages other than English are available in the Haas control. To change to another language, choose a language with the [LEFT] and [RIGHT] cursor arrows, then press [ENTER].
83 - M30/Resets Overrides
When this setting is ON, an M30 restores any overrides (feedrate, spindle, rapid) to their default values (100%).
84 - Tool Overload Action
When a tool becomes overloaded, Setting 84 designates the control response. These settings cause specified actions (refer to the Advanced Tool Management Introduction
on page 89):
ALARM causes the machine to stop.
FEEDHOLD displays the message Tool Overload and the machine stops in a feedhold situation. Press any key to clear the message.
BEEP causes an audible noise (beep) from the control.
AUTOFEED causes the control to automatically limit the feedrate based on the tool load.
NOTE: When tapping (rigid or floating), the feed and spindle overrides are locked out, so the AUTOFEED setting is ineffective (the control appears to respond to the override buttons, by displaying the override messages).
CAUTION: Do not use the AUTOFEED setting when thread milling or auto reversing tapping heads, as it can cause unpredictable results or even a crash.
379
Introduction
The last commanded feedrate is restored at the end of program execution, or when the operator presses [RESET] or turns OFF the AUTOFEED setting. The operator can use [FEEDRATE OVERRIDE] while the AUTOFEED setting is selected. These keys are recognized by the AUTOFEED setting as the new commanded feedrate as long as the tool load limit is not exceeded. However, if the tool load limit has already been exceeded, the control ignores [FEEDRATE OVERRIDE].
85 - Maximum Corner Rounding
This setting defines the machining accuracy tolerance around corners. The initial default value is 0.0250". This means that the control keeps the radii of corners no bigger than 0.0250".
Setting 85 causes the control to adjust feeds around corners in all 3 axes to meet the tolerance value. The lower the value of Setting 85, the slower the control feeds around corners to meet the tolerance. The higher the value of Setting 85, the faster the control feeds around corners, up to the commanded feedrate, but it could round the corner off to a radius up to the tolerance value.
NOTE: The angle of the corner also affects the change to the feedrate. The control can cut shallow corners within tolerance at a higher feedrate than it can with tighter corners.
F9.5: The control can cut corner [1] within tolerance at a higher feedrate than it can cut corner [2].
If Setting 85 has a value of zero, the control acts as if exact stop is active in each motion block.
Refer also to Setting 191 on page 387 and G187 on page 332.
1
2
380
Settings
F9.6: Assume that the commanded feedrate is too high to achieve corner [1]. If Setting 85 has a value of 0.025, then the control slows the feedrate enough to achieve corner [2] (with a radius of 0.025"). If Setting 85 has a value of 0.05, then the control slows the feedrate enough to achieve corner [3]. The feedrate to achieve corner [3] is faster than the feedrate to achieve corner [2].
86 - M39 (Rotate Tool Turret) Lockout
When this setting is ON, the control ignores M39 commands.
87 - M06 Resets Override
This is an ON/OFF setting. When this setting is ON and an M06 is commanded, any overrides are canceled and set to their programmed values or defaults.
88 - Reset Resets Overrides
This is an ON/OFF setting. When it is ON and [RESET] is pressed, any overrides are canceled and set to their programmed values or defaults (100%).
90 - Max Tools To Display
This setting limits the number of tools displayed on the Tool Offsets screen. The range of this setting is 6 to 200.
101 - Feed Override -> Rapid
Pressing [HANDLE FEED], with this setting ON, will cause the jog handle to affect both the feedrate and the rapid rate overrides. Setting 10 affects the maximum rapid rate. The rapid rate cannot exceed 100%. Also, [+10% FEEDRATE], [- 10% FEEDRATE], and [100% FEEDRATE] change the rapid and feed rate together.
1
2 (R0.025")
3 (R0.05")
381
Introduction
103 - CYC START/FH Same Key
The [CYCLE START] button must be pressed and held to run a program when this setting is ON. When [CYCLE START] is released, a feed hold is generated.
This setting cannot be turned on while Setting 104 is ON. When one of them is set to ON, the other automatically turns off.
104 - Jog Handle to SNGL BLK
The [HANDLE JOG] control can single-step through a program when this setting is ON. Reversing the [HANDLE JOG] control direction generates a feed hold.
This setting cannot be turned on while Setting 103 is ON. When one of them is set to ON, the other automatically turns off.
108 - Quick Rotary G28
If this setting is ON, the control returns the rotary axes to zero in +/-359.99 degrees or less.
For example, if the rotary unit is at +/-950.000 degrees and a zero return is commanded, the rotary table rotates +/-230.000 degrees to the home position if this setting is ON.
NOTE: The rotary axis returns to the machine home position, not the active work coordinate position.
109 - Warm-Up Time in MIN.
This is the number of minutes (up to 300 minutes from power-up) during which the control applies the compensations specified in Settings 110-112.
Overview When the machine is powered on, if Setting 109, and at least one of Settings 110, 111, or 112, are set to a nonzero value, the control gives this warning:
CAUTION! Warm up Compensation is specified!
Do you wish to activate
Warm up Compensation (Y/N)?
If you answer Y to the prompt, the control immediately applies the total compensation (Setting 110, 111, 112), and the compensation begins to decrease as the time elapses. For instance, after 50% of the time in Setting 109 has elapsed, the compensation distance is 50%.
To restart the time period, power the machine off and on, and then answer YES to the compensation query at start-up.
382
Settings
CAUTION: Changing Setting 110, 111, or 112 while compensation is in progress can cause a sudden movement of up to 0.0044 inch.
110, 111, 112 - Warmup X, Y, Z Distance
Settings 110, 111, and 112 specify the amount of compensation (max = +/- 0.0020" or +/- 0.051 mm) applied to the axes. Setting 109 must have a value entered for settings 110-112 to have an effect.
114 - Conveyor Cycle (minutes)
Setting 114 Conveyor Cycle Time is the interval that the conveyor turns on automatically. For example, if setting 114 is set to 30, the chip conveyor turns on every half an hour.
On-time should be set no greater than 80% of cycle time. Refer to Setting 115 on page 377.
NOTE: The [CHIP FWD] button (or M31) starts the conveyor in the forward direction and starts the cycle.
The [CHIP STOP] button (or M33) stops the conveyor and cancels the cycle.
115 - Conveyor On-time (minutes)
Setting 115 Conveyor On-Time is the amount of time the conveyor runs. For example, if setting 115 is set to 2, the chip conveyor runs for 2 minutes, then turns off.
On-time should be set no greater than 80% of cycle time. Refer to Setting 114 Cycle Time on page 383.
NOTE: The [CHIP FWD] button (or M31) starts the conveyor in the forward direction and starts the cycle.
The [CHIP STOP] button (or M33) stops the conveyor and cancels the cycle.
117 - G143 Global Offset (VR Models Only)
This setting is provided for customers who have several 5-axis Haas mills and want to transfer the programs and tools from one to another. The pivot-length difference is entered into this setting, and it is applied to the G143 tool length compensation.
383
Introduction
118 - M99 Bumps M30 CNTRS
When this setting is ON, an M99 adds one to the M30 counters (these are visible after pressing [CURRENT COMMANDS]).
NOTE: M99 only increases the counters as it occurs in a main program, not in a sub-program.
119 - Offset Lock
Turning the setting ON does not allow the values in the Offset display to be altered. However, programs that alter offsets with macros or G10 are permitted to do so.
120 - Macro Var Lock
Turning this setting ON does not allow the macro variables to be altered. However, programs that alter macro variables can do so.
130 - Tap Retract Speed
This setting affects the retract speed during a tapping cycle (The mill must have the Rigid Tapping option). Entering a value, such as 2, commands the mill to retract the tap twice as fast as it went in. If the value is 3, it retracts three times as fast. A value of 0 or 1 has no effect on the retract speed (Range 0-9, but the recommended range is 0-4).
Entering a value of 2 is the equivalent of using a J address code value of 2 for G84 (tapping canned cycle). However, specifying a J code for a rigid tap overrides Setting 130.
131 - Auto Door
This setting supports the Auto Door option. Set it ON for machines with an autodoor. Refer to M80 / M81 (Auto Door Open / close M-codes) on page 354.
NOTE: The M-codes work only while the machine receives a cell-safe signal from a robot. For more information, contact a robot integrator.
The door closes when [CYCLE START] is pressed and opens when the program reaches an M00, M01 (with Optional Stop turned ON), or M30 and the spindle has stopped turning.
384
Settings
133 - REPT Rigid Tap
This setting (Repeat Rigid Tap) ensures that the spindle is oriented during tapping so that the threads line up when a second tapping pass is programmed in the same hole.
NOTE: This setting must be ON when a program commands peck tapping.
142 - Offset Chng Tolerance
This setting is intended to prevent operator errors. It generates a warning message if an offset is changed by more than the settings value (0 to 99.9999). If you change an offset by more than the entered amount (either positive or negative), the control prompts: XX changes the offset by more than Setting 142! Accept (Y/N)?
Press [Y] to continue and update the offset. Press [N] to reject the change.
143 - Machine Data Collection Port
When this setting has a non-zero value, it defines the network port that the control uses to send machine data collection information. If this setting has a value of zero, the control does not send machine data collection information.
144 - Feed Override->Spindle
This setting is intended to keep the chip load constant when an override is applied. When this setting is ON, any feedrate override is also applied to the spindle speed, and the spindle overrides are disabled.
155 - Load Pocket Tables
This setting is used when a software upgrade is performed and/or memory has been cleared and/or the control is re-initialized. In order to replace the contents of the side-mount tool changer pocket tool table with the data from the file, the setting must be ON.
If this setting is OFF when loading an Offset file from a hardware device, the contents of the Pocket Tool table is unaltered. Setting 155 automatically defaults to OFF when the machine is turned on.
156 - Save Offsets with Program
When this setting is ON, the control includes the offsets in the program file when you save it. The offsets appear in the file before the final % sign, under the heading O999999.
When you load the program back into memory, the control prompts Load Offsets (Y/N?). Press Y if you want to load the saved offsets. Press N if you do not want to load them.
385
Introduction
158,159,160 - X, Y, Z Screw Thermal COMP%
These settings can be set from -30 to +30 and adjust the existing screw thermal compensation by -30% to +30% accordingly.
162 - Default To Float
When this setting is ON, the control adds a decimal point to values entered without a decimal point for certain address codes. When the setting is OFF, values given after address codes that do not include decimal points are taken as machinist's notation; for example, thousandths or ten-thousandths. The feature applies to these address codes: X, Y, Z, A, B, C, E, F, I, J, K, U, and W.
NOTE: This setting affects the interpretation of all programs entered either manually or from a hardware device. It does not alter the effect of setting 77 Scale Integer F.
163 - Disable .1 Jog Rate
This setting disables the highest jog rate. If the highest jog rate is selected, the next lower rate is automatically selected instead.
164 - Rotary Increment
This setting applies to the [PALLET ROTATE] button on the EC-300 and EC-1600. It specifies the rotation for the rotary table in the load station. It should be set to a value from 0 to 360. The default value is 90. For example, entering 90 rotates the pallet 90 degrees each time the rotary index button is pressed. If it is set to zero, the rotary table does not rotate.
188, 189, 190 - G51 X, Y, Z SCALE
You can scale the axes individually with these settings (the value must be a positive number).
Setting 188 = G51 X SCALE
Setting 189 = G51 Y SCALE
Value entered With Setting Off With Setting On
In Inch mode X-2 X-.0002 X-2.
In MM mode X-2 X-.002 X-2.
386
Settings
Setting 190 = G51 Z SCALE
If setting 71 has a value, then the control ignores Settings 188 - 190, and it uses the value in setting 71 for scaling. If the value for setting 71 is zero, then the control uses Settings 188 - 190.
NOTE: When settings 188-190 are in effect, only linear interpolation, G01, is allowed. If G02 or G03 is used, alarm 467 is generated.
191 - Default Smoothness
This settings value of ROUGH, MEDIUM, or FINISH sets the default smoothness and a maximum corner rounding factor. The control uses this default value unless a G187 command overrides the default.
196 - Conveyor Shutoff
This specifies the amount of time to wait without activity prior to turning off the chip conveyor (and washdown coolant, if installed). Units are minutes.
197 - Coolant Shutoff
This setting is the amount of time to wait without activity before Coolant flow stops. Units are minutes.
199 - Backlight Timer
This setting is the time in minutes after which the machine display backlight turns off when there is no input at the control (except in JOG, GRAPHICS, or SLEEP mode or when an alarm is present). Press any key to restore the screen ([CANCEL] is preferred).
216 - Servo and Hydraulic Shutoff
This setting turns off the servomotors and hydraulic pump, if equipped, after the specified number of seconds has elapsed without activity, such as running a program, jogging, button presses, etc.
238 - High Intensity Light Timer (minutes)
Specifies the duration in minutes that the High Intensity Light option (HIL) remains turned on when activated. The light turns on when the door is opened and the work light switch is on. If this value is zero, then the light will remain turned on while the doors are open.
387
Introduction
239 - Worklight Off Timer (minutes)
Specifies the amount of time in minutes after which the work light will turn off automatically if there are no key presses or [HANDLE JOG] changes. If a program is running when the light turns off, the program will continue running.
240 - Tool Life Warning
This value is a percentage of tool life. When tool wear reaches this threshold percentage, the control displays a Tool Wear Warning icon.
242 - Air Water Purge Interval (minutes)
This setting specifies the interval, in minutes, between condensate purges from the system air reservoir.
243 - Air Water Purge On-Time (seconds)
This setting specifies the duration, in seconds, of condensate purges from the system air reservoir.
245 - Hazardous Vibration Sensitivity
This setting has (3) levels of sensitivity for the hazardous vibration accelerometer in the machines control cabinet: Normal, Low, or Off. The value defaults to Normal at each machine power-up.
You can see the current g force reading on the Gauges page in Diagnostics.
Depending on the machine, vibration is considered hazardous when it exceeds 600 - 1,400 g. At or above the limit, the machine gives an alarm.
If your application tends to cause vibration, you can change Setting 245 to a lower sensitivity to prevent nuisance alarms.
247 - Simultaneous XYZ Motion in Tool Change
Setting 247 defines how the axes move during a tool change. If Setting 247 is OFF, the Z Axis retracts first, followed by X- and Y-Axis motion. This feature can be useful in avoiding tool collisions for some fixture configurations. If Setting 247 is ON, the axes move simultaneously. This may cause collisions between the tool and the workpiece, due to B- and C-Axis rotations. It is strongly recommended that this setting remain OFF on the UMC-750, due to the high potential for collisions.
250 - Mirror Image C Axis
This is an ON/OFF setting. When it is OFF, axis motions occur normally. When it is ON, C-Axis motion may be mirrored (or reversed) around the work zero point. Also, see G101 and Settings 45, 46, 47, 48, and 80.
388
Settings
251 - Subprogram Search Location
This setting specifies the directory to search for external subprograms when the subprogram is not in the same directory as the main program. Also, if the control cannot find an M98 subprogram, the control looks here. Setting 251 has (3) options:
Memory USB Device Setting 252
For the Memory and USB Device options, the subprogram must be in the root directory of the device. For the Setting 252 selection, Setting 252 must specify a search location to use.
252 - Custom Subprogram Search Location
This setting specifies the subprogram search locations when Setting 251 is set to Setting 252. To make changes to this setting, highlight Setting 252 and press the [RIGHT] cursor. The Setting 252 popup explains how to delete and add search paths and lists existing search paths.
To delete a search path:
1. Highlight the path listed in the Setting 252 popup.
2. Press [DELETE].
If there is more than one path to delete, repeat steps 1 and 2.
To set a new path:
1. Press [LIST PROGRAM].
2. Highlight the directory to add.
3. Press [F3].
4. Select Setting 252 add and press [ENTER].
To add another path, repeat steps 1 through 4.
389
Introduction
253 - Default Graphics Tool Width
If this setting is ON, Graphics mode uses default tool width (a line) [1]. If this setting is OFF, Graphics mode uses the Tool Offset Diameter Geometry specified in the Tool Offsets table as the graphics tool width [2].
F9.7: Graphics Display with Setting 253 On [1] and Off [2].
1 2
390
Settings
254 - 5-Axis Rotary Center Distance
Setting 254 defines the distance, in inches or millimeters, between the rotary centers of rotation. The default value is 0. The maximum allowed compensation is +/- 0.005 in (+/- 0.1 mm).
When this setting is 0, the control does not use 5-axis rotary center distance compensation.
When this setting has a non-zero value, the control applies 5-axis rotary center distance compensation to the appropriate axes during all rotary motion. This aligns the tool tip with the programmed position when the program invokes G234, Tool Center Point Control (TCPC).
F9.8: Setting 254. [1] Tilt Axis Center of Rotation, [2] Rotary Axis Center of Rotation. This illustration is not to scale. Distances are exaggerated for clarity.
254 1
2
391
Introduction
255 - MRZP X Offset
Setting 255 defines the distance, in inches or millimeters, between the
B tilt axis centerline and the X-Axis home position for a B/C axis UMC, or
C rotary axis centerline and the X-Axis home position for an A/C axis trunnion.
Use macro value #20255 to read the value of Setting 255.
F9.9: [B] Tilt Axis, [C] Rotary Axis. On a UMC-750 (shown), these axes intersect approximately 2" above the table. [255] Setting 255 is the distance along the X Axis between machine zero and the [B] tilt axis centerline. For [A] Tilt Axis, [C] Rotary Axis on a Trunnion, [255] Setting 255 is the distance along the X Axis between machine zero and the [C] axis centerline. This illustration is not to scale.
X
Y
Z
B
C
256
257
255
A
392
Settings
256 - MRZP Y Offset
Setting 256 defines the distance, in inches or millimeters, between the
C rotary axis centerline and the Y-Axis home position for a B/C axis UMC, or.
A tilt axis center line and the Y-Axis home position for an A/C axis trunnion.
Use macro value #20256 to read the value of Setting 256.
F9.10: [B] Tilt Axis, [C] Rotary Axis. [256] Setting 256 is the distance along the Y Axis between machine zero and the [C] rotary axis centerline. For [A] Tilt Axis, [C] Rotary Axis on a Trunnion, [256] Setting 256 is the distance along the Y Axis between machine zero and the [A] Tilt Axis centerline. This illustration is not to scale.
X
Y
Z
B
C
256
257
255
A
393
Introduction
257 - MRZP Z Offset
Setting 257 defines the distance, in inches or millimeters, between the
B tilt axis and the Z-Axis home position for a B/C axis UMC, or
A tilt axis and the Z-Axis home position for an A/C axis trunnion
Use macro value #20257 to read the value of Setting 257.
F9.11: [B] Tilt Axis, [C] Rotary Axis. On a UMC-750 (shown), these axes intersect approximately 2" above the table. [257] Setting 257 is the distance along the Z Axis between machine zero and the [B] tilt axis. For [A] Tilt Axis, [C] Rotary Axis on a Trunnion, [257] Setting 257 is the distance along the Z Axis between machine zero and the [A] tilt axis. This illustration is not to scale.
X
Y
Z
B
C
256
257
255
A
394
Settings
261 - DPRNT Store Location
DPRNT is a macro function that lets the machine control communicate with external devices. The Next-Generation Control (NGC) lets you output DPRNT statements over a TCP network, or to a file.
Setting 261 lets you specify where the DPRNT statement output goes:
Disabled - The control does not process DPRNT statements.
File - The control outputs DPRNT statements to the file location specified in setting 262.
TCP Port - The control outputs DPRNT statements to the TCP port number specified in setting 263.
262 - DPRNT Destination File Path
DPRNT is a macro function that lets the machine control communicate with external devices. The Next-Generation Control (NGC) lets you output DPRNT statements to a file, or over a TCP network.
If setting 261 is set to File, setting 262 lets you specify the file location where the control sends DPRNT statements.
263 - DPRNT TCP Port
DPRNT is a macro function that lets the machine control communicate with external devices. The Next-Generation Control (NGC) lets you output DPRNT statements over a TCP network.
If setting 261 is set to TCP Port, setting 263 lets you specify the TCP port where the control sends DPRNT statements. On the PC, you can use any terminal program that supports TCP.
Use the port value along with the machines IP address in the terminal program to connect to the machines DPRNT stream. For example, if you use the terminal program PUTTY:
1. In the basic options section, type the machines IP address and the port number in Setting 263.
2. Select the Raw or Telnet connection type.
3. Click Open to start the connection.
395
Introduction
PUTTY can save these options for subsequent connections. To keep the connection open, select "Enable TCP keepalives" in the "Connection" options.
To check the connection, type ping in the PUTTY terminal window and press enter. The machine sends a pingret message if the connection is active. You can establish up to (5) simultaneous connections at a time.
264 - Autofeed Step Up
While autofeed is active, this setting defines the percentage amount by which the feedrate increments after tool overload stops.
265 - Autofeed Step Down
When autofeed is active, this setting defines the percentage amount by which the feedrate decrements during a tool overload.
266 - Autofeed Minimum Override
This setting defines the minimum percentage to which autofeed can reduce the feedrate.
267 - Exit Jog Mode after Idle Time
This setting defines the maximum duration, in minutes, that the control remains in jog mode with no axis motion or keyboard activity. After this duration, the control automatically changes to MDI mode. A value of zero disables this automatic change to MDI mode from jog mode.
268 - Second Home X Offset
This setting defines the X-Axis position for second home, in inches or millimeters. The value is limited by the travel limits for the specific axis.
396
Settings
269 - Second Home Y Offset
This setting defines the Y-Axis position for second home, in inches or millimeters. The value is limited by the travel limits for the specific axis.
270 - Second Home Z Offset
This setting defines the Z-Axis position for second home, in inches or millimeters. The value is limited by the travel limits for the specific axis.
271 - Second Home A Offset
This setting defines the A-Axis position for second home, in degrees. The value is limited by the travel limits for the specific axis.
272 - Second Home B Offset
This setting defines the B-Axis position for second home, in degrees. The value is limited by the travel limits for the specific axis.
273 - Second Home C Offset
This setting defines the C-Axis position for second home, in degrees. The value is limited by the travel limits for the specific axis.
277 - Lubrication Cycle Interval
This setting defines the interval, in hours, between cycles for the axis lubrication system. The minimum value is 1 hour. The maximum value is between 12 and 24 hours, depending on the machine model.
9.1.2 More Information Online
For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
397
Introduction
398
Other Equipment
Chapter 10: Other Equipment
10.1 Introduction Some Haas machines have unique characteristics which are beyond the scope of this manual to describe. These machines come with a printed manual addendum, but you can also download them at www.haascnc.com.
10.2 Mini Mills Mini Mills are versatile and compact vertical mills.
10.3 VF-Trunnion Series These vertical mills come standard with a TR-series rotary unit pre-installed for five-axis applications.
10.4 Gantry Routers Gantry Routers are large-capacity open-frame vertical mills, suitable for milling and routing applications.
10.5 Office Mill The Office Mill series are compact small-scale vertical mills that can fit through a standard door frame and run on single-phase power.
10.6 EC-400 Pallet Pool The EC-400 Pallet Pool increases productivity with a multi-station pallet pool and innovative scheduling software.
10.7 UMC-750 The UMC-750 is a versatile five-axis mill that features an integrated dual-axis trunnion table.
399
More Information Online
10.8 More Information Online For updated and supplemental information, including tips, tricks, maintenance procedures, and more, visit the Haas Resource Center at diy.HaasCNC.com. You can also scan the code below with your mobile device to go directly to the Resource Center:
400
Index
# 3D cutter compensation (G141)................ 307
A absolute positioning (G90)
versus incremental ........................... 122 active codes........................................... 40 active codes display
current commands ............................. 38 active program........................................ 80 active tool display.................................... 40 advanced editor .................................... 114
EDIT menu..................................... 115 FILE menu ..................................... 115 MODIFY menu ................................ 117 pull-down menu ............................... 115 SEARCH menu ............................... 116
Advanced Tool Management (ATM) ............ 89 macros and ...................................... 93 tool group usage................................ 92
auto door (option) override ........................................... 23
axis motion absolute versus incremental............... 122 circular .......................................... 129 linear............................................. 129
B background edit .................................... 113 beacon light
status .............................................. 24 block selection...................................... 111 BT tooling .............................................. 88
C canned cycles
boring and reaming .......................... 141 drilling ........................................... 140 general information .......................... 235 r plane and..................................... 141 tapping .......................................... 140
check box selection ................................. 80 circular interpolation .............................. 129 control display
active codes ..................................... 40 active tool ........................................ 40 basic layout ...................................... 36 offsets ............................................. 38
control pendant.................................. 22, 23 USB port.......................................... 23
coolant operator override ............................... 35 setting 32 and ................................. 371
coolant gauge ........................................ 41 counters
reset ............................................... 39 CT tooling.............................................. 88 current commands .................................. 38 cutter compensation
circular interpolation and ................... 137 entry and exit .................................. 134 feed adjustments ............................. 135 general description........................... 131 improper application example............. 135 Setting 58 and ................................ 132
401
D device manager
create new program ........................... 79 edit ................................................. 81 file display........................................ 78 operation ......................................... 77
device manager (List Program) .................. 76 directory
create new ....................................... 82 display
axis positions.................................... 44 settings ........................................... 39
distance to go position ............................. 44 drilling canned cycles............................. 140 dynamic work offset (G254)..................... 337
E edit keys ............................................. 110 editing
advanced editor .............................. 114 highlight code ................................. 110
F Fanuc................................................. 132 feature list ........................................... 153
200-hour tryout ............................... 154 feed adjustments
in cutter compensation...................... 135 feed hold
as override ....................................... 35 file
deletion ........................................... 82 file display columns ................................. 78 file selection
multiple ........................................... 80
G G-codes.............................................. 229
canned cycles.......................... 140, 235 cutting ........................................... 129
graphics mode ..................................... 107
H HaasConnect ......................................... 76 help function .......................................... 50
high-speed SMTC heavy tools and ................................ 97
I incremental positioning (G91)
versus absolute ............................... 122 input
special symbols ................................ 82 input bar ............................................... 45 interpolation motion
circular........................................... 129 linear ............................................. 129
J jog mode ............................................. 103
K keyboard
alpha keys ....................................... 32 cursor keys ...................................... 26 display keys ..................................... 27 function keys.................................... 26 jog keys .......................................... 33 key groups....................................... 25 mode keys....................................... 28 numeric keys.................................... 31 override keys.................................... 34
L line numbers
remove all....................................... 117 linear interpolation ................................. 129 LIST PROGRAM display .......................... 77 local subprograms (M97)......................... 147
M M30 counters......................................... 42 machine data
back up and recover .......................... 83 machine position .................................... 44 machine power-up .................................. 67 machine restore
full data........................................... 86 selected data.................................... 87
machine rotary zero point (MRZP)............. 176
402
macro variables axis position ................................... 205 current commands display................... 38
macros 1-bit discrete outputs ........................ 201 g- and m-codes ............................... 184 look ahead ..................................... 185 M30 counters and.............................. 42 round off ........................................ 184 variables........................................ 190
main spindle display ................................ 48 manual data input (MDI) ......................... 112
save as numbered program ............... 113 material
fire risk .............................................. 3 M-code relays
with M-fin ....................................... 348 M-codes.............................................. 343
coolant commands........................... 129 program stop .................................. 128 spindle commands........................... 128
memory lock .......................................... 23 mode display ......................................... 37
N new program.......................................... 79
O offset
tool ............................................... 126 work ............................................. 126
offsets display ............................................ 38
operating modes..................................... 37 operation
unattended......................................... 3 operator position..................................... 44 optional stop ........................................ 346 overrides............................................... 35
disabling .......................................... 35
P part setup ............................................ 102
offsets ........................................... 103 tool offset ....................................... 105 work offset ...................................... 104
position display ...................................... 44 positioning
absolute vs. incremental .................... 122 positions
distance to go................................... 44 machine .......................................... 44 operator .......................................... 44 work (G54) ...................................... 44
probe troubleshooting................................ 163
probing................................................ 159 program
active ............................................. 80 basic search .................................... 88 duplication ....................................... 82 rename ........................................... 82
programming background edit ............................... 113 basic example ................................. 119 safe startup line ............................... 120 subprograms................................... 143
R r plane................................................. 141 remote jog handle (RJH) ......................... 164 rotary
axis disable / enable ......................... 174 configuring new ............................... 169 custom configuration......................... 172 grid offset ....................................... 173 tool change offset............................. 173
rotary offset tilt center ........................................ 181
run-stop-jog-continue ............................. 106
S safe startup line..................................... 120
403
safety decals ............................................... 7 during operation .................................. 2 electrical ............................................ 2 introduction ........................................ 1 keyswitch operation ............................. 4 maintenance....................................... 3 part loading/unloading .......................... 2 robot cells .......................................... 5
safety decals standard layout ................................... 7 symbol reference................................. 8
search find / replace................................... 116
second home ......................................... 23 selection
multiple blocks ................................ 111 Setting 28............................................ 235 setup mode ............................................. 3
keyswitch......................................... 23 side-mount tool changer (SMTC)
door panel...................................... 101 extra-large tools ................................ 99 moving tools ..................................... 98 recovery ........................................ 101 zero pocket designation ...................... 98
special G-codes engraving....................................... 142 mirror image................................... 143 pocket milling.................................. 142 rotation and scaling.......................... 142
special symbols ...................................... 82 spindle load meter................................... 48 spindle orientation (M19) ........................ 158 spindle warm-up ..................................... 76 subprograms........................................ 143
external ......................................... 144 local.............................................. 147
T tabbed menus
basic navigation ................................ 49 tapping canned cycles ........................... 140
text find / replace ................................... 116 selection ........................................ 111
Through-Spindle Coolant .......................... 34 drilling cycle and .............................. 140 M-code .......................................... 354
tilt axis center of rotation offset...................... 181
timer and counters display reset............................................... 39
timers and counters display ....................... 42 tool center point control........................... 333
G54 and......................................... 334 rotary setup and............................... 174
tool change offset rotary............................................. 173
tool changer ........................................... 94 safety ............................................ 102
tool loading large / heavy tools ............................. 95
tool management tables save and restore ............................... 94
tool offset...................................... 105, 126 remote jog handle and ...................... 165
tooling pull studs......................................... 89 Tnn code........................................ 127 tool holder care................................. 88 tool holders...................................... 88
U umbrella tool changer
loading............................................ 99 recovery......................................... 100
unattended operation ................................ 3
W work (G54) position.................................. 44 work offset .................................... 104, 126
macros and..................................... 206 remote jog handle and ...................... 168
workholding.......................................... 102 safety and ....
Related manuals for Haas Mill NGC Operation Manual







Manualsnet FAQs
If you want to find out how the NGC Haas works, you can view and download the Haas Mill NGC Operation Manual on the Manualsnet website.
Yes, we have the Operation Manual for Haas NGC as well as other Haas manuals. All you need to do is to use our search bar and find the user manual that you are looking for.
The Operation Manual should include all the details that are needed to use a Haas NGC. Full manuals and user guide PDFs can be downloaded from Manualsnet.com.
The best way to navigate the Haas Mill NGC Operation Manual is by checking the Table of Contents at the top of the page where available. This allows you to navigate a manual by jumping to the section you are looking for.
This Haas Mill NGC Operation Manual consists of sections like Table of Contents, to name a few. For easier navigation, use the Table of Contents in the upper left corner.
You can download Haas Mill NGC Operation Manual free of charge simply by clicking the “download” button in the upper right corner of any manuals page. This feature allows you to download any manual in a couple of seconds and is generally in PDF format. You can also save a manual for later by adding it to your saved documents in the user profile.
To be able to print Haas Mill NGC Operation Manual, simply download the document to your computer. Once downloaded, open the PDF file and print the Haas Mill NGC Operation Manual as you would any other document. This can usually be achieved by clicking on “File” and then “Print” from the menu bar.