You are on page 1of 394

CNC

625

PROGRAMMING MANUAL

BNP-B2280C(ENG)

MELDAS is a registered trademark of Mitsubishi Electric Corporation. Other brands and product names throughout this manual are trademarks or registered trademarks of their respective holders.

Introduction
This manual is a guide for using the MELDAS625. Programming is described in this manual, so read this manual thoroughly before starting programming. Thoroughly study the "Precautions for Safety" on the following page to ensure safe use of the this NC unit.

Details described in this manual

CAUTION
For items described in "Restrictions" or "Usable State", the instruction manual issued by the machine maker takes precedence over this manual. An effort has been made to note as many special handling methods in this user's manual. Items not described in this manual must be interpreted as "not possible". This manual has been written on the assumption that all option functions are added. Refer to the specifications issued by the machine maker before starting use. Refer to the Instruction Manual issued by each machine maker for details on each machine tool. Some screens and functions may differ depending on the NC system or its version, and some functions may not be possible. Please confirm the specifications before use.

General precautions (1) Refer to the following documents for details on handling MELDAS625 Operation Manual .................................. BNP-B2278 MELDAS625 Operation Manual (for NC monitor) ........ BNP-B2288

Precautions for Safety


Always read the specifications issued by the machine maker, this manual, related manuals and attached documents before installation, operation, programming, maintenance or inspection to ensure correct use. Understand this numerical controller, safety items and cautions before using the unit. This manual ranks the safety precautions into "DANGER", "WARNING" and "CAUTION". DANGER When the user may be subject to imminent fatalities or major injuries if handling is mistaken. When the user may be subject to fatalities or major injuries if handling is mistaken. When the user may be subject to injuries or when physical damage may occur if handling is mistaken.

WARNING CAUTION

Note that even items ranked as " CAUTION", may lead to major results depending on the situation. In any case, important information that must always be observed is described.

DANGER
Not applicable in this manual.

WARNING
Not applicable in this manual.

CAUTION
1. Items related to product and manual For items described as "Restrictions" or "Usable State" in this manual, the instruction manual issued by the machine maker takes precedence over this manual. An effort has been made to describe special handling of this machine, but items that are not described must be interpreted as "not possible". This manual is written on the assumption that all option functions are added. Refer to the specifications issued by the machine maker before starting use. Refer to the Instruction Manual issued by each machine maker for details on each machine tool. Some screens and functions may differ depending on the NC system or its version, and some functions may not be possible. Please confirm the specifications before use. 2. Items related to operation Before starting actual machining, always carry out dry operation to confirm the machining program, tool offset amount and workpiece offset amount, etc. If the workpiece coordinate system offset amount is changed during single block stop, the new setting will be valid from the next block. (Continued on next page)

CAUTION
Turn the mirror image ON and OFF at the mirror image center. If the tool offset amount is changed during automatic operation (including during single block stop), it will be validated from the next block or blocks onwards. 3. Items related to programming The commands without Nos. following "G" become a "G00" operation during running. " ; " "EOB" and " %" "EOR" are explanatory notations. The actual codes are "Line feed" and "%" for ISO, and "End of block" and "End of Record" for EIA. When creating the machining program, select the appropriate machining conditions, and make sure that the performance, capacity and limits of the machine and NC are not exceeded. The examples do not consider the machining conditions.

Contents
Page 1. Control Axes ......................................................................................................................... 1 1.1 Coordinate word and control axis .................................................................................. 1 1.2 Coordinate systems and coordinate zero point symbols .............................................. 2 2. Input Command Units .......................................................................................................... 3 2.1 Input command units ..................................................................................................... 3 2.2 Input setting units ........................................................................................................... 3 3. Data Formats ........................................................................................................................ 4 3.1 Tape codes .................................................................................................................... 4 3.2 Program formats ............................................................................................................ 7 3.3 Program address check function ................................................................................... 9 3.4 Tape memory format ..................................................................................................... 10 3.5 Optional block skip ("/") ................................................................................................. 10 3.5.1 Optional block skip ................................................................................................. 10 3.5.2 Precautions for using optional block skip .............................................................. 10 3.6 Program/sequence/block numbers (O, N) .................................................................... 11 3.7 Parity H/V ....................................................................................................................... 12 3.8 G code lists .................................................................................................................... 13 3.9 Precautions before starting machining............................................................................ 17 4. Buffer Register ..................................................................................................................... 18 4.1 Input buffer ..................................................................................................................... 18 4.2 Pre-read buffers ............................................................................................................. 19 5. Position Commands ............................................................................................................ 5.1 Position command methods; G90, G91 ........................................................................ 5.2 Inch/metric command change; G20, G21 ..................................................................... 5.3 Decimal point input ........................................................................................................ 20 20 22 23

6. Interpolation Functions ....................................................................................................... 27 6.1 Positioning (Rapid traverse); G00 ................................................................................. 27 6.2 Linear interpolation; G01 ............................................................................................... 33 6.3 Plane selection; G17, G18, G19 .................................................................................... 35 6.3.1 Parameter entry ..................................................................................................... 35 6.3.2 Plane selection system .......................................................................................... 36 6.4 Circular interpolation; G02, G03 .................................................................................... 37 6.5 R-specified circular interpolation; G02, G03 ................................................................. 40 6.6 Helical interpolation; G17 to G19, G02, G03 ................................................................. 42 6.6.1 Normal speed designation ..................................................................................... 43 6.6.2 Arc plane element speed designation ................................................................... 46 6.7 Thread cutting; G33 ....................................................................................................... 47 6.7.1 Constant lead thread cutting .................................................................................. 47 6.7.2 Inch thread cutting ................................................................................................. 50 6.8 Uni-directional positioning; G60 .................................................................................... 51
I

6.9 Cylindrical interpolation; G07.1 ..................................................................................... 52 6.10 Pole coordinate interpolation; G12.1, G13.1 ................................................................. 59 7. Feed Functions ..................................................................................................................... 65 7.1 Rapid traverse rate ........................................................................................................ 65 7.2 Cutting feed rate ............................................................................................................ 65 7.3 Synchronous feed; G94, G95 ........................................................................................ 66 7.4 Feedrate designation and effects on control axes ........................................................ 68 7.5 Exact stop check; G09 ................................................................................................... 71 7.6 Exact stop check mode; G61 ........................................................................................ 73 7.7 Deceleration check.......................................................................................................... 73 7.7.1 G1G0 deceleration check .................................................................................. 75 7.7.2 G1G1 deceleration check .................................................................................. 80 7.8 Automatic corner override; G62 .................................................................................... 81 7.8.1 Description of function ........................................................................................... 81 7.8.2 Application examples ............................................................................................. 83 7.8.3 Relations with other functions ................................................................................ 84 7.8.4 Precautions ............................................................................................................ 85 7.9 Tapping mode; G63 ....................................................................................................... 86 7.10 Cutting mode; G64 ........................................................................................................ 86 8. Dwell ................................................................................................................................. 87 8.1 Per-second dwell; G04 .................................................................................................. 87 9. Miscellaneous Functions .................................................................................................... 89 9.1 Miscellaneous functions (M8-digits BCD) ..................................................................... 89 9.2 Secondary miscellaneous functions (B8-digits, A8 or C8-digits) .................................. 91 10. Spindle Functions ................................................................................................................ 92 10.1 Spindle functions (S2-digits BCD) ................................................................................. 92 10.2 Spindle functions (S6-digits Analog) ............................................................................. 92 10.3 Spindle functions (S8-digits) .......................................................................................... 92 10.4 Constant surface speed control; G96, G97 ................................................................... 93 10.4.1 Constant surface speed control ............................................................................. 93 10.4.2 Spindle clamp speed setting; G92 ......................................................................... 93 10.5 Spindle / C axis control .................................................................................................. 95 11. Tool Functions ..................................................................................................................... 97 11.1 Tool functions (T8-digits BCD) ...................................................................................... 97 12. Tool Offset Functions .......................................................................................................... 98 12.1 Tool offset ...................................................................................................................... 98 12.1.1 Outline .................................................................................................................... 98 12.1.2 Tool offset amount designation method ................................................................ 99 12.1.3 Tool offset memory .................................................................................................. 100 12.1.4 Tool offset No. (H/D) .............................................................................................. 102 12.2 Tool length offset/cancel; G43, G44/G49 ...................................................................... 103 12.3 Tool radius compensation ............................................................................................. 106 12.3.1 Outline .................................................................................................................... 106 12.3.2 Tool radius compensation operation ..................................................................... 107
II

12.3.3 Other operations during tool radius compensation ............................................... 115 12.3.4 G41/G42 commands and I, J, K designation ........................................................ 123 12.3.5 Interrupts during tool radius compensation ........................................................... 129 12.3.6 General checkpoints for tool radius compensation ............................................... 131 12.3.7 Changing of offset No. during compensation mode .............................................. 132 12.3.8 Start of tool radius compensation and Z axis cut in operation .............................. 134 12.3.9 Interference check ................................................................................................. 136 12.4 Programmed tool offset input; G10 ............................................................................... 142 12.4.1 Function and objective ........................................................................................... 142 12.5 Tool position offset; G45-G48 ....................................................................................... 146 12.6 Inputting the tool life management data ........................................................................ 153 13. Program Support Functions ............................................................................................... 156 13.1 Canned cycles ............................................................................................................... 156 13.1.1 Standard canned cycles ; G80~G89, G73, G74, G76 ........................................... 156 13.1.2 Initial point and R point level return; G98, G99 ..................................................... 179 13.1.3 Setting of workpiece coordinates in canned cycle mode ...................................... 181 13.2 Special canned cycle; G34, G35, G36, G37.1 .............................................................. 182 13.3 Subprogram control; M98, M99, M198 .......................................................................... 186 13.3.1 Calling subprogram with M98 and M99 commands .............................................. 186 13.3.2 Calling subprogram with M198 commands ........................................................... 191 13.4 Variable commands .......................................................................................................192 13.5 User macro specifications ............................................................................................. 194 13.5.1 User macro commands .......................................................................................... 194 13.5.2 Macro call instruction ............................................................................................. 195 13.5.3 Variables ................................................................................................................ 202 13.5.4 Types of variables .................................................................................................. 204 13.5.5 Arithmetic commands ............................................................................................ 229 13.5.6 Control commands ................................................................................................. 234 13.5.7 External output commands .................................................................................... 237 13.5.8 Checkpoints ........................................................................................................... 239 13.5.9 Actual examples of using user macros .................................................................. 241 13.6 G command mirror image; G50.1, G51.1 ...................................................................... 245 13.7 Corner chamfering, corner rounding ............................................................................. 248 13.7.1 Corner chamfering (,C_) ........................................................................................ 248 13.7.2 Corner rounding (,R_) ............................................................................................ 250 13.8 Linear angle command .................................................................................................. 251 13.9 Circle cutting; G12, G13 ................................................................................................ 252 13.10 Program parameter input; G10, G11 ........................................................................... 254 13.11 Macro interrupt ............................................................................................................. 255 13.11.1 Outline .................................................................................................................. 255 13.11.2 Operation .............................................................................................................. 255 13.12 Tool position return ...................................................................................................... 262 13.12.1 Outline .................................................................................................................. 262 13.12.2 Command format ................................................................................................. 262 13.12.3 Operation .............................................................................................................. 263 13.13 Normal line control; G40.1/G41.1/G42.1....................................................................... 265 13.14 High-accuracy control.................................................................................................... 270 13.15 High-speed high-accuracy control................................................................................. 281 13.16 Fine spline....................................................................................................................... 285
III

13.17 Programmed coordinate rotation................................................................................. 291 13.18 Scaling(G50,G51)......................................................................................................... 294 13.18.1 Command format.................................................................................................. 294 13.18.2 Detailed description ............................................................................................ 294 13.18.3 Programming examples ....................................................................................... 296 14. Coordinates System Setting Functions .............................................................................. 305 14.1 Coordinate words and control axes ............................................................................... 305 14.2 Basic machine, work and local coordinate systems ..................................................... 306 14.3 Machine zero point and 2nd, 3rd, 4th reference points (Zero point) ............................. 307 14.4 Basic machine coordinate system ................................................................................. 308 14.5 Coordinate system setting (G92) ................................................................................... 309 14.6 Automatic coordinate system setting ............................................................................ 310 14.7 Reference (zero) point return; G28, G29 ...................................................................... 311 14.8 2nd, 3rd, and 4th reference (zero) point return; G30 .................................................... 314 14.9 Simple zero point return ................................................................................................ 316 14.10 Reference point check; G27 ........................................................................................ 320 14.11 Work coordinate system setting and offset ................................................................. 321 14.12 Local coordinate system setting; G52 ......................................................................... 332 15. Measurement Support Functions ...................................................................................... 336 15.1 Automatic tool length measurement; G37 ..................................................................... 336 15.2 Skip function; G31 ......................................................................................................... 339 15.2.1 Function ................................................................................................................. 339 15.2.2 Readout of skip coordinates .................................................................................. 340 15.2.3 G31 coasting .......................................................................................................... 340 15.2.4 Skip coordinate readout error (mm) ....................................................................... 341 15.3 Multi-stage skip function; G31.n, G04 ........................................................................... 343 15.3.1 Function ................................................................................................................. 343 15.3.2 Operation ............................................................................................................... 344 15.4 Multi-skip function 2 ....................................................................................................... 345 15.4.1 Function ................................................................................................................. 345 15.4.2 Operation ............................................................................................................... 346 16. Machining mode ................................................................................................................... 348 16.1 High-speed machining mode ......................................................................................... 348 Appendix 1. Program Parameter Input N No. Correspondence Table .............................. 351 Appendix 2. Program Error ...................................................................................................... 362 Appendix 3. Order of G Function Command Priority .......................................................... 375

IV

1. Control Axes

1. Control Axes
1.1 Coordinate word and control axis
In the standard specifications, there are 3 control axes, but, by adding an additional axis, up to 4 axes can be controlled. The designation of the processing direction responds to those axes and uses a coordinate word made up of alphabet characters that have been decided beforehand. X-Y Table

Program coordinates Workpiece X-Y table Direction of table Bed movement Direction of table movement

X-Y and revolving table


Workpiece Direction of table movement

Direction of table revolution

Program coordinates

-1-

1. Control Axes

1.2 Coordinate systems and coordinate zero point symbols

: Reference point : Machine coordinate zero point : Work coordinate zero points (G54 - G59)

Basic machine coordinate system

Machine zero point

1st reference point Work coordinate system 3 (G56) Work coordinate system 2 (G55) Work coordinate system 1 (G54)

Local coordinate system (G52) Work coordinate system 4 (G57)

Work coordinate system 6 (G59)

Work coordinate system 5 (G58)

-2-

2. Input Command Units

2. Input Command Units


2.1 Input command units
These are the units used for the movement amounts in the program as commanded by the MDI input and command tape. They are expressed in millimeters, inches or degrees ().

2.2 Input setting units


These are the units of setting data which are used, as with the compensation amounts, in common for all axes. The input setting units and input command units can be selected from the following types for each axis with the parameters. (For further details on settings, refer to the Operation Manual.) Input unit parameters #1015 cunit = 10000 Input command unit = 1000 = 100 = 10 Input setting unit #1003 iunit = A =B Linear axis Millimeter 1.0 0.1 0.01 0.001 0.01 0.001 Inch 0.1 0.01 0.001 0.0001 0.001 0.0001 Rotary axis () 1.0 0.1 0.01 0.001 0.01 0.001

Note 1) Inch/metric conversion is performed in either of 2 ways: conversion from the parameter screen ("#1041 I_inch: valid only when the power is switched on) and conversion using the G command (G20 or G21). However, when a G command is used for the conversion, the conversion applies only to the input command units and not to the input setting units. Consequently, the tool offset amounts and other compensation amounts as well as the variable data should be preset to correspond to inches or millimeters. Note 2) The millimeter and inch systems cannot be used together. Note 3) During circular interpolation on an axis where the input command units are different, the center command (I, J, K) and the radius command (R) can be designated by the input setting units. (Use a decimal point to avoid confusion.)

-3-

3. Data Formats

3. Data Formats
3.1 Tape codes
The tape command codes used for this controller are combinations of alphabet letters (A, B, C, ... Z), numbers (0, 1, 2 ... 9) and signs (+, , / ...). These alphabet letters, numbers and signs are referred to as characters. Each character is represented by a combination of 8 holes which may, or may not, be present. These combinations make up what is called codes. This controller uses, the ISO code (R-840). Note 1) If a code not given in the tape code table in Fig. 1 is assigned during operation, an illegal address error (P32) will result. Note 2) For the sake of convenience, a semicolon ( ; ) has been used in the CNC display to indicate the end of a block (EOB/IF) which separates one block from another. Do not use the semicolon key, however, in actual programming but use the keys in the following table instead.

CAUTION
" ; " "EOB" and " %" "EOR" are explanatory notations. The actual codes are "Line feed" and "%" for ISO, and "End of block" and "End of Record" for EIA.

EOB/EOR keys and displays Code used Key used End of block End of record ISO LF or NL % Screen display ; %

(1) Significant data section (label skip function) All data up to the first EOB ( ; ), after the power has been turned on or after operation has been reset, are ignored during automatic operation based on tape, memory loading operation or during a search operation. In other words, the significant data section of a tape extends from the character or number code after the initial EOB ( ; ) code after resetting to the point where the reset command is issued.

-4-

3. Data Formats

(2) Control out, control in When the ISO code is used, all data between control out "(" and control in ")" (or ; ) are ignored, although these data appear on the setting and display unit. Consequently, the command tape name, number and other such data not directly related to control can be inserted in this section. This information (except (B) in Fig. 1 of the tape codes) will also be loaded, however, during tape loading. The system is set to the "control in" mode when the power is witched on.
Example of ISO code

Operator information print-out example Information in this section is ignored and nothing is executed.

(3) EOR (%) code Generally, the end-or-record code is punched at both ends of the tape. It has the following functions: 1) Rewind stop when rewinding tape (with tape handler) 2) Rewind start during tape search (with tape handler) 3) Completion of loading during tape loading into memory (4) Tape preparation for tape operation (with tape handler)

Initial block

Last block

If a tape handler is not used, there is no need for the 2-meter dummy at both ends of the tape and for the head EOR (%) code.

-5-

3. Data Formats

ISO code (R-840)


Feed holes Channel No.

or

Under the ISO code, IF or NL is EOB and % is EOR. Under the ISO code, CR is meaningless, and EOB will not occur.

Code (A) are stored on tape but an error results (except when they are used in the comment section) during operation. The (B) codes are non-working codes and are always ignored. Parity V check is not executed. Fig. 1 Table of tape codes -6-

3. Data Formats

3.2 Program formats


The prescribed arrangement used when assigning control information to the controller is known as the program format, and the format used with this controller is called the "word address format". (1) Word and address A word is a collection of characters arranged in a specific sequence. This entity is used as the unit for processing data and for causing the machine to execute specific operations. Each word used for this controller consists of an alphabet letter and a number of several digits (sometimes with a "+" or "" sign placed at the head of the number.). Word

----Numerals Alphabet (address)

Word configuration

The alphabet letter at the head of the word is the address. It defines the meaning of the numerical information which follows it. For details of the types of words and the number of significant digits of words used for this controller, refer to Table 1 containing the format details. (2) Blocks A block is a collection of words. It includes the information which is required for the machine to execute specific operations. One block unit constitutes a complete command. The end of each block is marked with an EOB (end-of-block) code. (Example 1:) G0X - 1000 ; G1X - 2000F500 ; (Example 2:) (G0X - 1000 ; ) G1X - 2000F500 ; (3) Programs A program is a collection of several blocks. Since the semicolon in the parentheses will not result in an EOB, it is 1 block. 2 blocks

-7-

3. Data Formats

Table 1 Format details Item Program number Sequence number Preparatory function Input Movement setting unit axis Input setting unit Input Additional setting unit axis Input setting unit Input setting unit Dwell Input setting unit Feed function Input setting unit Input setting unit Input setting unit Input setting unit Metric command O8 N6 G2/G21 0.01, mm 0.001, mm/ 0.0001 inch 0.01, mm 0.001, mm/ 0.0001 inch 0.01(rev), mm 0.001(rev), mm/ 0.0001 inch 0.01, mm 0.001, mm/ 0.0001 inch 0.01, mm 0.001, mm/ 0.0001 inch X+52 Y+52 Z+52 +52 X+53 Y+53 Z+53 +53 I+52 J+52 K+52 I+53 J+53 K+53 X53 P8 X53 P8 F53 F53 R+52 Q52 P8 L4 R+53 Q53 P8 L4 R+44 Q+44 P8 L4 H3/D3 M8 S6/S8 T8 A8/B8/C8 P8H5L4 #5 F44 X53 P8 I+44 J+44 K+44 X+44 Y+44 Z+44 +44 Inch command

Fixed cycle

Tool offset Miscellaneous function Spindle function Tool function 2nd miscellaneous function Subprogram Variable number Note 1) Note 2) Note 3) Note 4)

represents one of the additional axes U, V, W, A, B, or C. The basic format is the same for any of the numerals input from the tape, memory, or MDI. Numerals can be used without the leading zeros. If there is no number following the alphabetic character, the value following the alphabetic character will be interpreted as 0. Example) G28XYZ ; G28X0Y0Z0 ; Note 5) The program number is commanded with single block. It's necessary to command the program number in the head block of each program. Note 6) The meanings of the details are as follows : Example 1 : O8 : 8-digit program number Example 2 : G21 : Dimension G is 2 digits to the left of the decimal point, and 1 digit to the right. Example 3 : X+53 : Dimension X uses + or signs and represents 5 digits from the left and 3 digits from the right of the decimal point. For example, the case for when the X-axis is positioned (G00) to the 45.123mm position in the absolute value (G90) is as follows. G00 x 45123 ;
3 digits below the decimal point 5 digits above the decimal point, so it's 00045, but the leading zeros, and the mark (+) have been omitted G0 is possible

-8-

3. Data Formats

3.3 Program address check function


(1) Outline The program can be checked in word units when operating machining programs. Availability of this function is selected by the parameter. (2) Detailed explanation This function enables simple checking of program addresses in word units. If the alphabetic characters are continuous, the error "P32 ADDRESS ERROR" will occur. Note that an error will not occur for the following: 1) Reserved words 2) Comment statements (3) Program examples (Example 1) When there are no numbers following an alphabetic character. G28X; G28X0; (Example 2) When a character string is illegal. TEST; Review the program. Change to "(TEST);", etc.

-9-

3. Data Formats

3.4 Tape memory format


(1) Storage tape and significant sections (automatic ISO/EIA identification) The others are about from the current tape position to the EOB. Accordingly, under normal conditions, operate the tape memory after resetting. The significant codes listed in the tape code table, Fig. 1 in Section 3.1, in the above significant section are actually stored into the memory. All other codes are ignored and are not stored. The data between control out "(" and control in ")" are stored into the memory.

3.5 Optional block skip ("/")


This function selectively ignores specific blocks in a machining program which starts with the "/" (slash) code.

3.5.1 Optional block skip


Provided that the optional block skip switch is ON, blocks starting with the "/" code are ignored. They are executed if the switch is OFF. Parity check is valid regardless of whether the optional block skip switch is ON or OFF. When, for instance, all blocks are to be executed for one workpiece but specific block are not to be executed for another workpiece, the same command tape can be used to machine different parts by inserting the "/" code at the head of those specific blocks.

3.5.2 Precautions for using optional block skip


(1) Put the "/" code for optional block skip at the beginning of a block. If it is placed inside the block, it is assumed as a user macro, a division instruction. Example : N20 G1 X25./Y25. ;.... NG (User macro, a division instruction; a program error results.) /N20 G1 X25. Y25. ;... OK (2) Parity checks (H and V) are conducted regardless of the optional block skip switch position. (3) The optional block skip is processed immediately before the pre-read buffer. Consequently, it is not possible to skip up to the block which has been read into the pre-read buffer. (4) This function is valid even during a sequence number search. (5) All blocks with the "/" code are also input and output during tape storing and tape output, regardless of the position of the optional block skip switch.

- 10 -

3. Data Formats

3.6 Program/sequence/block numbers (O, N)


These numbers are used for monitoring the execution of the machining programs and for calling both machining programs and specific stages in machining programs. Program numbers are classified by workpiece correspondence or by subprogram units, and they are designated by the address "0" followed by a number with up to 8 digits. Sequence numbers are attached where appropriate to command blocks which configure machining programs, and they are designated by the address "N" followed by a number with up to 6 digits. Block numbers are automatically provided internally. They are preset to zero every time a program number or sequence number is read, and they are counted up one at a time unless program numbers or sequence numbers are commanded in blocks which are subsequently read. Consequently, all the blocks of the machining programs given in the table below can be determined without further consideration by combinations of program numbers, sequence numbers and block numbers. Machining program O12345678 (DEMO, PROG) ; G92X0Y0 ; G90G51X-150. P0.75 ; N100G00X-50. Y-25. ; N110G01X250. F300 ; Y-225. ; X-50. ; Y-25.; N120G51Y-125. P0.5 ; N130G00X-100. Y-75. ; N140G01X-200. ; Y-175. ; X-100. ; Y-75. ; N150G00G50X0Y0 ; N160M02 ; % Monitor display Program No. 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 12345678 Sequence No. 0 0 0 100 110 110 110 110 120 130 140 140 140 140 150 160 Block No. 0 1 2 0 0 1 2 3 0 0 0 1 2 3 0 0

- 11 -

3. Data Formats

3.7 Parity H/V


Parity check provides a mean of checking whether the tape has been correctly perforated or not. This involves checking for perforated code errors or, in other words, for perforation errors. There are two types of parity check: Parity H and Parity V. (1) Parity H Parity H checks the number of holes configuring a character and it is done during tape operation, tape input and sequence number search. A parity H error is caused in the following cases. 1) ISO code When a code with an odd number of holes in a significant data section has been detected. Parity H error example

This character causes a parity H error.

When a parity H error occurs, the tape stops following the alarm code. (2) Parity V A parity V check is done during tape operation, tape input and sequence number search when the I/O PARA #9n15 (n is the unit No.1 to 5) parity V check function is set to "1". It is not done during memory operation. A parity V error occurs in the following case: when the number of codes from the first significant code to the EOB (;) in the significant data section in the vertical direction of the tape is an odd number, that is, when the number of characters in one block is odd. When a parity V error is detected, the tape stops at the code following the EOB (;). Note 1) Among the tape codes, there are codes which are counted as characters for parity and codes which are not counted as such. For details, refer to the tape code table, Fig. 1 in Section 3.1. Note 2) Any space codes which may appear within the section from the initial EOB code to the address code or "/" code are counted for parity V check.

- 12 -

3. Data Formats

3.8 G code lists


G code 00 01 02 03 04 05.1 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 30.1 30.2 30.3 30.4 30.5 30.6 31 31.1 31.2 31.3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Reference point check Reference point return Start point return 2nd to 4th reference point return Tool position return 1 Tool position return 2 Tool position return 3 Tool position return 4 Tool position return 5 Tool position return 6 Skip Multi-skip function 1 Multi-skip function 2 Multi-skip function 3 02 02 02 06 06 Plane selection X-Y Plane selection Z-X Plane selection Y-Z Inch command Metric command 00 00 00 00 00 Exact stop check Program parameter input/compensation input Program parameter input cancel Circular cut CW (clockwise) Circular cut CCW (counterclockwise) Group 01 01 01 01 00 00 Positioning Linear interpolation Circular interpolation CW (clockwise) Circular interpolation CCW (counterclockwise) Dwell High-speed high-accuracy control I Function

- 13 -

3. Data Formats

G code 32 33 34 35 36 37 37.1 38 39 * 40 41 42 40.1 41.1 42.1 43 44 43.1 44.1 45 46 47 48 47.1 * 49 * 50.1 51.1 52 53 * 54 55 56 57 58 59 60 61 61.1 62 63 63.1 63.2

Group 01 00 00 00 00 00 00 00 07 07 07 21 21 21 08 08 20 20 00 00 00 00 20 08 19 19 00 00 12 12 12 12 12 12 00 13 13 13 13 13 13 Thread cutting

Function

Special fixed cycle (bolt hole circle) Special fixed cycle (line at angle) Special fixed cycle (arc) Automatic tool length measurement Special fixed cycle (grid) Tool radius compensation vector designation Tool radius compensation corner arc Tool radius compensation cancel Tool radius compensation left Tool radius compensation right Normal line control cancel Normal line control left ON Normal line control right ON Tool length offset (+) Tool length offset (-) 1st spindle control ON 2nd spindle control ON Tool position offset (expansion) Tool position offset (reduction) Tool position offset (doubled) Tool position offset (halved) Two-spindles simultaneous control ON Tool length offset cancel G command mirror image cancel G command mirror image ON Local coordinate system setting Machine coordinate system selection Work coordinate system 1 selection Work coordinate system 2 selection Work coordinate system 3 selection Work coordinate system 4 selection Work coordinate system 5 selection Work coordinate system 6 selection Uni-directional positioning Exact stop check mode High-accuracy control Automatic corner override Tapping mode Synchronous tapping mode (normal tapping) Synchronous tapping mode (reverse tapping)

- 14 -

3. Data Formats

G code * 64 65 66 66.1 * 67 68 69 70 71 72 73 74 75 76 77 78 79 * 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 * 98 99 100 ~ 255

Group 13 00 14 14 14 16 16 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 03 03 00 05 05 17 17 10 10 00 Cutting mode User macro call User macro modal call A User macro modal call B

Function

User macro modal call cancel Coordinate conversion mode ON Coordinate conversion mode OFF User fixed cycle User fixed cycle User fixed cycle Fixed cycle (step) Fixed cycle (reverse tap) User fixed cycle Fixed cycle (fine boring) User fixed cycle User fixed cycle User fixed cycle Fixed cycle cancel Fixed cycle (drill/spot drill) Fixed cycle (drill/counter boring) Fixed cycle (deep drilling) Fixed cycle (tapping) Fixed cycle (boring) Fixed cycle (boring) Fixed cycle (back boring) Fixed cycle (boring) Fixed cycle (boring) Absolute value command Incremental command value Machine coordinate system setting Asynchronous feed (per-minute feed) Synchronous feed (per-revolution feed) Constant surface speed control ON Constant surface speed control OFF Fixed cycle Initial level return Fixed cycle R point level return User macro (G code call) Max. 10

- 15 -

3. Data Formats

CAUTION
The commands without Nos. following "G" become a "G00" operation during running. Note 1) Codes marked with * are codes that must be or are selected in the initial state. The codes marked with are codes that should be or are selected in the initial state by the parameters. Note 2) If two or more G codes from the same code are commanded, the latter G code will be valid. Note 3) This G code list is a list of conventional G codes. Depending on the machine, movements that differ from the conventional G commands may be included when called by the G code macro. Refer to the Instruction Manual issued by the machine maker.

- 16 -

3. Data Formats

3.9 Precautions before starting machining

CAUTION
When creating the machining program, select the appropriate machining conditions so that the machine, NC performance, capacity and limits are not exceeded. The examples do not allow for the machining conditions. Carry out dry operation before actually machining, and confirm the machining program, tool offset and workpiece offset amount.

- 17 -

4. Buffer Register

4. Buffer Register
4.1 Input buffer
(1) When the pre-read buffer is empty during a tape operation or Rs-232C operation, the contents of the input buffer are immediately transferred to the pre-read buffers and, provided that the data stored in the input buffer do not exceed 248 4 characters, the following data (Max. 248 characters) are read and loaded into the input buffer. This buffer is designed to eliminate the operational delay originating in the readout time of the tape reader and to smooth out the block joints. The pre-reading effects are lost, however, when the block execution time is shorter than the tape readout time of the following block.
Analysis processing (Buffer size : 248 5 characters) Max. 5 execution blocks Tape Input buffer Pre-read buffer 5 Buffer 4 Memory Mode switching Keyboard MDI data Note : Data equivalent to 1 block are stored in 1 pre-read buffer. Buffer 3 Buffer 2 Buffer 1 Arithmetic processing

(2) The input buffer has a memory capacity of 248 5 characters (including the EOB code). The contents of the input buffer register are updated in 248-character units. Only the significant codes in the significant data section are read into the input buffer. When codes (including "(" and ")") are sandwiched in the control in or control out mode and the optional block skip function is ON, the data extending from the "/" (slash) code up to the EOB code are read into the input buffer. The input buffer contents are cleared with resetting.

- 18 -

4. Buffer Register

4.2 Pre-read buffers


(1) During automatic processing, the contents of 1 block are normally pre-read so that program analysis processing is conducted smoothly. However, during tool radius compensation, a maximum of 5 blocks are pre-read for the intersection point calculation including interference check. (2) The specifications of the data in 1 block are as follows: The data of 1 block are stored in this buffer. Only the significant codes in the significant data section are read into the pre-read buffer. When codes are sandwiched in the control in and control out, and the optional block skip function is ON, the data extending from the "/" (slash) code up to the EOB code are not read into the pre-read buffer. The pre-read buffer contents are cleared with resetting. When the single block function is ON during continuous operation, the pre-read buffer stores the following block data and then stops operation. (3) Other precautions Depending on whether the program is executed continuously or by single blocks, the timing of the valid/invalid for the external control signals for the block skip and others will differ. If the external control signal such as optional block skip is turned ON/OFF with the M command, the external control operation will not be effective on the program pre-read with the buffer register. According to the M command that operates the external controls, it prohibits pre-reading, and the recalculation is as follows: The M command that commands the external controls is distinguished at the PLC, and the "recalculation request" for PLC NC interface table is turned ON. (When the "recalculation request" is ON, the program that has been pre-read is reprocessed.)

- 19 -

5. Position Commands

5. Position Commands
5.1 Position command methods ; G90, G91
(1) Function and Purpose By using the G90 and G91 commands, it is possible to execute the next coordinate commands using absolute values or incremental values. The R-designated circle radius and the center of the circle determined by I, J, K are always incremental value commands. (2) Command formats G9D Xx1 Yy1 Zz1 1; ( is an additional axis) Here, G90 is an absolute value command G91 is an incremental command (3) Detailed explanation: 1) Regardless of the current position, in the absolute value mode, it is possible to move to the position of the workpiece coordinate system that was designated in the program. N 1 G90G00X0 Y0 ; In the incremental value mode, the current position is the start point (0), and the movement is made only the value determined by the program, and is expressed as an incremental value. N 2 G90G01X200. Y50. F100; N 2 G91G01X200. Y50. F100; Using the command from the 0 point in the workpiece coordinate system, it becomes the same coordinate command value in either the absolute value mode or the incremental value mode. 2) For the next block, the last G90/G91 command that was given becomes the modal. (G90) N 3 X100. Y100.; The axis moves to the workpiece coordinate system X = 100mm and Y = 100mm position. (G91) N 3 X100. Y50.; The X axis moves to -100.mm and the Y axis to +50.0mm as an incremental value, and as a result X moves to 100.mm and Y to 100.mm.

Tool

- 20 -

5. Position Commands

3)

Since multiple commands can be issued in the same block, it is possible to command specific addresses as either absolute values or incremental values. N 4 G90X300. G91Y100.; The X axis is treated in the absolute value mode, and with G90 is moved to the workpiece coordinate system 300.mm position. The Y axis is moved +100.mm with G91. As a result, Y moves to the 200.mm position. In terms of the next block, G91 remains as the modal and becomes the incremental value mode.

4) 5)

When the power is turned ON, it is possible to select whether you want absolute value commands or incremental value commands with the #1073 I_Absm parameter. Even when commanding with the manual data input (MDI), it will be treated as a modal from that block.

- 21 -

5. Position Commands

5.2 Inch/metric command change; G20, G21


(1) Function and objective These G commands are used to change between the inch and millimeter (metric) systems. (2) Command format G20 : Inch command G21 : Metric command (3) Detailed description G20 and G21 selection is meaningful only for linear axes and it is meaningless for rotary axes. The input unit for G20 and G21 will not change just by changing the command unit. In other words, if the machining program command unit changes to an inch unit at G20 when the initial inch is OFF, the setting unit of the tool offset amount will remain metric. Thus, take note to the setting value. (Example 1) Relationship between input command units and G20/G21 commands (with decimal point input type 1)
Axis X Y Z B Input command unit type (cunit) 10 10 100 1000 Command example X100; Y100; Z100; B100; Metric output (#1016 iout=0) G21 0.100mm 0.100mm 1.00mm 10.0 G20 0.254mm 0.254mm 2.54mm 10.0 Inch output (#1016 iout=1) G21 0.0039inch 0.0039inch 0.039inch 10.0 G20 0.0100inch 0.0100inch 0.100inch 10.0

Note 1) When changing between G20 and G21 with program commands, it is necessary in advance, to convert the parameters, variables, and the offsets for the tool diameter, tool position, tool length, to the units in the input settings of the input setting unit system (for each axis) that have inch or metric commands, and make the settings using the parameter tape. Example 2) Input setting unit #1015 cunit=10, #1041 I_inch=0 Position command unit ..... 0.001mm Compensation amount setting unit ..... When the compensation amount is 0.05mm for 0.001mm In the above example, when changing from G21 to G20, the compensation amount . must be set to 0.002 (0.05 25.4 =. 0.002). Note 2) Since the data before the change will be executed at the command unit after the change, command the F speed command for the change so that it is the correct speed command for the command unit system applied after the change.

- 22 -

5. Position Commands

5.3 Decimal point input


(1) Function and objective This function enables the decimal point command to be input. It assigns the decimal point in millimeter or inch units for the machining program input information that defines the tool paths, distances and speeds. A parameter #1078 Decpt2 selects whether type I (minimum input command unit) or type II (zero point) is to apply for the least significant digit of data without a decimal point. (2) Command format . . (3) Detailed description 1) 2) The decimal point command is valid for the distances, angles, times, speeds and scaling rate, in machining programs. (Note, only after G51) In decimal point input type 1 and type 2, the values of the data commands without the decimal points are shown in the table below. Command Command unit system cunit = 10000 X1 ; cunit = 1000 cunit = cunit = 3) 100 10 100 10 1 Type 1 1000 (m, 104 inch, 103 ) 1 1 1 Type 2 1 (mm, inch, ) Metric system Inch system

The valid addresses for the decimal points are X, Y, Z, U, V, W, A, B, C, I, J, K, E, F, P, Q, and R. However, P is valid only during scaling. For details, refer to the list. See below for the number of significant digits in decimal point commands. (Input command unit cunit = 10)
Movement command (linear) Integer Decimal part Movement command (rotary) Integer Decimal part Feed rate Integer Decimal part .00~.99 .000~.999 Dwell Integer Decimal part

4)

MM .000~ (milli-m 0.~99999. .999 eter) INCH (inch) 0.~9999. .0000~ .9999

0.~99999. .000~.999 0.~60000. 99999. (359.) .0~.999 0.~2362.

0.~99999. .000~.999 .0~.99 .000~.999

5) 6)

The decimal point command is valid even for commands defining the variable data used in subprograms. While the smallest decimal point command is validated, the smallest unit for a command without a decimal point designation is the smallest command input unit set in the specifications (1m, 10m, etc.) or mm can be selected. This selection can be made with parameter #1078 Decpt2. Decimal point commands for decimal point invalid addresses are processed as integer data only and everything below the decimal point is ignored. Addresses which are invalid for the decimal point are D, H, L, M, N, O, S and T. All variable commands, however, are treated as data with decimal points.

7)

- 23 -

5. Position Commands

(4) Example of program 1) Example of program for decimal point valid address Specification division Decimal point command 1 When 1 = 10m X123.450mm Decimal point command 2 1 = 1mm X123.450mm

When 1 = 1m Program example G0X123.45 (decimal points are all mm X123.450mm points) X12.345mm G0X12345 (last digit is 1m unit) #111 = 123, #112 = 5.55 X123.000mm, X#111 Y#112 Y5,5550mm #113 = #111+#112 #113 = 128.550 (addition) #114 = #111#112 #114 = 117.450 (subtraction) #115 = #111#112 #115 = 682.650 (multiplication) #116 = #111/#112 #116 = 22.162 #117 = #112/#111 #117 = 0.045 (division)

X123.450mm X123.000mm, Y5.550mm #113 = 128.550 #114 = 117.450 #115 = 682.650 #116 = 22.162 #117 = 0.045

X12345.000mm X123.000mm, Y5.550mm #113 = 128.550 #114 = 117.450 #115 = 682.650 #116 = 22.162 #117 = 0.045

(5) Decimal point input I/II and decimal point command valid/invalid If a command does not use a decimal point at an address where a decimal point command is valid in the table on the following page, it is handled differently between decimal point input I and II modes as explained below. A command using a decimal point is handled the same way in either the decimal point input I or II mode. 1) Decimal point input I The least significant digit place of command data corresponds to the command unit. Example : Command "X1" in the 1m system is equivalent to command "X0.001". 2) Decimal point input II The least significant digit place of command data corresponds to the decimal point. Example : Command "X1" in the 1m system is equivalent to command "X1.". Note) When a four rules operator is contained, the data will be handled as that with a decimal point. Example) When the min. input command unit is 1m : G0 x 123 + 0 ; ... X axis 123mm command. It will not be 123m.

- 24 -

5. Position Commands

Addresses used and valid/invalid decimal point commands Address A Decimal point command Valid Invalid Valid Invalid B C Valid Invalid Valid Invalid Valid D Invalid Valid Invalid E F G H Valid Valid Valid Valid Invalid Invalid Invalid Invalid I Valid Valid Valid Valid J Valid Valid Valid K Valid Valid Invalid L Invalid Invalid Invalid Invalid M Invalid Application Coordinate position data Revolving table, miscellaneous function code Angle data Data settings, axis numbers (G10) Coordinate position data Revolving table, miscellaneous function code Coordinate position data Revolving table, miscellaneous function code Corner chamfering amount Offset numbers (tool position, tool radius) Automatic tool length measurement, deceleration range d Data settings byte type data Inch thread, number of ridges Precision thread lead Feed rate Thread lead Preparatory function code Tool length offset number Sequence numbers in subprograms Program parameter input, bit type data Linear-arc intersection selection (Geometric) Arc center coordinates Tool radius compensation vector components Hole pitch in the special fixed cycle Circle radius of cut circle (increase amount) Arc center coordinates Tool radius compensation vector components Special fixed cycle's hole pitch or angle Arc center coordinates Tool radius compensation vector components Number of holes of the special fixed cycle Number of fixed cycle and subprogram repetitions Program tool compensation input type selection Program parameter input selection Program parameter input, 2-word type data Miscellaneous function codes L2, L12, L10, L13, L11 L50 4 bytes ,c Remarks

Note 1) All decimal points are valid for the user macro arguments.

- 25 -

5. Position Commands

Address N O P

Decimal point command Invalid Invalid Invalid Invalid/Valid Invalid Invalid Invalid Invalid Invalid Invalid Invalid Invalid Invalid Sequence numbers

Application

Remarks

Program parameter input, data numbers Program numbers Dwell time Subprogram program call No. Number of holes of the special fixed cycle Amount of helical pitch Offset number (G10) Constant surface speed control axis number Program parameter input, broad classification number Skip signal command Subprogram return destination sequence No. 2nd, 3rd, 4th reference point return number Cut amount of deep hole drill cycle Shift amount of back boring Shift amount of fine boring Minimum spindle clamp speed Starting shift angle for screw cutting R-point in the fixed cycle R-specified arc radius Corner rounding arc radius Offset amount (G10) Synchronous tap/asynchronous tap changeover Automatic tool length measurement, deceleration range r Spindle function codes Maximum spindle clamp speed Constant surface speed control, surface speed Program parameter input, word type data Tool function codes Coordinate position data Coordinate position data Coordinate position data Coordinate position data Dwell time Coordinate position data Coordinate position data 2 bytes ,R Parameter

Valid Valid Valid Invalid Valid

Valid Valid Valid Valid Invalid Valid

Invalid Invalid Invalid Invalid

T U V W X Y Z

Invalid Valid Valid Valid Valid Valid Valid Valid

Note 1) All decimal points are valid for the user macro arguments.

- 26 -

6. Interpolation Functions

6. Interpolation Functions
6.1 Positioning (Rapid traverse); G00
(1) Function and objective This command is accompanied by coordinate words. It positions the tool along a linear or non-linear path from the present point as the start point to the end point which is specified by the coordinate words. (2) Command format G00 Xx Yy Zz ; ( represents additional axis) x, y, z, and represent coordinates, and could be either absolute values or incremental values, depending on the setting of G90/G91. (3) Detailed description 1) Once this command has been issued, the G00 mode is retained until it is changed by another G function or until the G01, G02, G03 or G33 command in the 01 group is issued. If the next command is G00, all that is required is simply that the coordinate words be specified. In the G00 mode, the tool is always accelerated at the start point of the block and decelerated at the end point. Execution proceeds to the next block after the in-position state has been checked. The in-position width is set by parameter. Any G command (G72 ~ G89) in the 09 group is cancelled (G80) by the G00 command. Whether the tool moves along a linear or non-linear path is determined by parameter, but the positioning time does not change. : This is the same as linear interpolation (G01), and the speed is limited by the rapid traverse rate of each axis. b. Non-linear path : The tool is positioned at the rapid traverse rate independently for each axis. a. Linear path

2)

3) 4)

CAUTION
The commands without Nos. following "G" become a "G00" operation during running.

- 27 -

6. Interpolation Functions

(4) Example of program (Example 1) G91 G00 X270000 Y300000 Z150000 ; (For input setting unit: 0.001mm)
Z

Tool

End point

Start point Unit : mm

Note 1) When parameter #1086 G0Intp is set to "0", the path along which the tool is positioned is the shortest path connecting the start and end points. The positioning speed is automatically calculated so that the shortest distribution time is obtained in order that the commanded speeds for each axis do not exceed the rapid traverse rate. When for instance, the Y-axis and Z-axis rapid traverse rates are both 9600mm/min, the tool will follow the path in the figure below if the following is programmed: G91 G00 X-300000 Y200000 ; (With an input setting unit of 0.001mm)

End point

Actual Y axis rate : 6400mm/min

Start point (Unit : mm)

Actual X axis rate : 9600mm/min

- 28 -

6. Interpolation Functions

Note 2) When parameter #1086 G0Intp is set to 1, the tool will move along the path from the start point to the end point at the rapid traverse rate of each axis. When, for instance, the Y-axis and Z-axis rapid traverse rates are both 9600mm/min, the tool will follow the path in the figure below if the following is programmed: G91 G00 X-300000 Y200000 ; (With an input setting unit of 0.001mm)

End point

Actual Y axis rate : 9600mm/min

Start point (Unit : mm)

Actual X axis rate : 9600mm/min

Note 3) The rapid traverse rate for each axis with the G00 command differs according to the individual machine and so reference should be made to the machine specifications. Note 4) Rapid traverse (G00) deceleration check Upon completion of the rapid traverse (G00), execute the next block after confirming that the remaining distances for each axis are below the fixed amounts. The deceleration check time (Td) is as follows, depending on the acceleration/deceleration type. The confirmation of the remaining distance should be done with the imposition width, LR L R is the setting value for the servo parameter #2224 sv024. The setting for the parameter #2224 sv024 can be made in increments of 0.0005mm or 0.00005 inch.

Previous block

Next block

Fig. 1

G0 deceleration pattern

- 29 -

6. Interpolation Functions

Where in Fig. 1, TR : Rapid traverse acceleration/deceleration time constant LR : In-position width As shown in Fig. 1, the in-position width LR is the remaining distance of the previous block from the starting time of the next block. (The portion of the slanting line in Fig. 1.) The purpose of checking the rapid feedrate is to minimize the time it takes for positioning. The bigger the setting value for the servo parameter #2224 sv024, the longer the reduced time is, but the remaining distance of the previous block at the starting time of the next block also becomes larger, and this could become an obstacle in the actual processing work. The check for the remaining distance is done at set intervals. Accordingly, it may not be possible to get the actual amount of time reduction for positioning with the setting value sv024. (5) Programmable in-position width command for positioning This command commands the in-position width for the positioning command from the machining program. G00 X__ Y__ Z__ , I__ ; In-position width Positioning coordinate value of each axis (6) Operation during in-position check Execution of the next block starts after confirming that the position error amount of the positioning (rapid traverse: G00) command block and the block that carries out deceleration check with the linear interpolation (G01) command is less than the in-position width issued in this command. The in-position width in this command is valid only in the command block, so the deceleration check method set in parameter (base specification parameter #1193 inpos) is used for blocks that do not have the in-position width command. When there are several movement axes, the system confirms that the position error amount of each movement axis in each system is less than the in-position width issued in this command before executing the next block. The differences of when the in-position check is validated with the parameter (base specification parameter #1193 inpos set to 1; refer to section (7) for in-position width) and when validated with this command are shown in Fig. 2.

- 30 -

6. Interpolation Functions

Fig. 2 In-position check with this command After starting deceleration of the command system, the position error amount and commanded in-position width are compared.
Servo Command In-position width (Error amount of command end point and machine position) Block being executed Block being executed

In-position check with parameter After starting deceleration of the command system, the servo system's position error amount and the parameter setting value (in-position width) are compared.
Servo Command In-position width (Servo system position error amount)

Ts Td
Start of in-position check with this command

Ts Td
Start of in-position check with parameter

Ts : Acceleration/deceleration time constant Td : Deceleration check time Td = Ts + (0 to 14ms)

(7) G0/G1 in-position width setting When the setting value of SV024 of the servo parameter #24 is smaller than the setting value of the G0 in-position width and the G1 in-position width, the in-position check is carried out with the G0 in-position width and the G1 in-position width. In-position check using the G0inps value Command to motor

Outline of motor movement G0 in-position sv024

A stop is judged here.

- 31 -

6. Interpolation Functions

In-position check using the G1inps value Command to motor

Outline of motor movement G1 in-position sv024

A stop is judged here. When the SV024 value is larger, the in-position check is completed when the motor position becomes within the specified with SV024. The in-position check method depends on the method set in the deceleration check parameter. Note 1) If an in-position width is set in the program, the in-position width check is carried out with the larger of the G0/G1 in-position width and the in-position width set in the program. Note 2) When the SV024 setting value is larger than the G0 in-position width/G1 in-position width, the in-position check is carried out with the SV024 value. Note 3) When the error detect is ON, the in-position check is forcibly carried out.

- 32 -

6. Interpolation Functions

6.2 Linear interpolation; G01


(1) Function and objective This command is accompanied by coordinate words and a feedrate command. It makes the tool move (interpolate) linearly from its present position to the end point specified by the coordinate words at the speed specified by address F. In this case, the feedrate specified by address F always acts as a linear speed in the tool nose center advance direction. (2) Command format G01 Xx Yy Zz Ff ; ( represents additional axis) x, y, z and a are coordinate values and may be an absolute position or incremental position depending on the G90/G91 state. f is a value that indicates the speed data. (3) Detailed description Once this command is issued, the mode is maintained until another G function (G00, G02, G03, G33) in the 01 group which changes the G01 mode is issued. Therefore, if the next command is also G01 and if the feedrate is the same, all that is required to be done is to specify the coordinate words. If no F command is given in the first G01 command block, program error "P62" results. The feedrate for a rotary axis is commanded by /min (decimal point position unit). (F300 = 300/min) The G functions (G70 - G89) in the 09 group are cancelled (G80) by the G01 command. (4) Example of programs (Example 1) Cutting in the sequence of P1 P2 P3 P4 P1 at 300 mm/min feedrate P0 P1 is for tool positioning

Unit: mm Input setting unit: 0.001mm

G90

G00 G01

X20000 X20000 X30000 ; X-20000 X-30000 ;

Y20000 ; Y30000 F300 Y-30000 ;

P0 P1 P1 P2 P2 P3 P3 P4 P4 P1

- 33 -

6. Interpolation Functions

(5) Programmable in-position width command for linear interpolation This command commands the in-position width for the linear interpolation command from the machining program. The commanded in-position width is valid in the linear interpolation command only when carrying out deceleration check. 1) When the error detect switch is ON. 2) When G09 (exact stop check) is commanded in the same block. 3) When G61 (exact stop check mode) is selected. G01 X__ Y__ Z__ F__ , I__ ; In-position width Feedrate Linear interpolation coordinate value of each axis (Note 1) Refer to section "6.1 Positioning (rapid traverse); G00" (6) for details on the in-position check operation.

- 34 -

6. Interpolation Functions

6.3 Plane selection; G17, G18, G19


The plane to which the movement of the tool during the circle interpolation (including helical cutting) and tool diameter compensation command belongs is selected. By registering the basic three axes and the corresponding parallel axis as parameters, a plane can be selected by two axes that are not the parallel axis. If the rotary axis is registered as a parallel axis, a plane that contains the rotary axis can be selected. For the standard plane selection, the relation of the basic three axes X, Y and Z and the corresponding parallel axes U, V and W is fixed, so a plane containing the rotary axis (axis name A, B, C) cannot be selected. The plane selection is as follows: Plane that executes circular interpolation (including helical cutting) Plane that executes tool diameter compensation Plane that executes fixed cycle positioning. The command format is as follows: G17 ; (XY plane selection) G18 ; (ZX plane selection) G19 ; (YZ plane selection) X, Y and Z indicate each coordinate axis or the parallel axis.

6.3.1 Parameter entry


#1026 ~ 1028 base_I,J,K I J K X Y Z V #1029 ~ 1039 aux_I,J,K U

Fig. 1 Example of plane selection parameter entry As shown in the example in Fig. 1, the basic axis and parallel axis can be registered. The basic axis can be an axis other than X, Y and Z. Axes that are not registered are irrelevant to the plane selection.

- 35 -

6. Interpolation Functions

6.3.2 Plane selection system


In Fig. 1, I is the horizontal axis for the G17 plane or the vertical axis for the G18 plane J is the vertical axis for the G17 plane or the horizontal axis for the G19 plane K is the horizontal axis for the G18 plane or the vertical axis for the G19 plane In other words, G17 ..... IJ plane G18 ..... KI plane G19 ..... JK plane The axis address commanded in the same block as the plane selection (G17, G18, G19) determines which basic axis or parallel axis is used for the plane selection. For the parameter registration example in Fig. 1. G17X__Y__ ; XY plane G18X__V__ ; VX plane G18U__V__ ; VU plane G19Y__Z__ ; YZ plane G19Y__V__ ; YV plane The plane will not changeover at a block where a plane selection G code (G17, G18, G19) is not commanded. G17X__Y__ ; XY plane Y__Z__ ; XY plane (plane does not change) If the axis address is omitted in the block where the plane selection G code (G17, G18, G19) is commanded, it will be viewed as though the basic three axes address has been omitted. For the parameter registration example in Fig. 1. G17 ; XY plane G17U__ ; UY plane G18U__ ; ZU plane G18V__ ; VX plane G19Y__ ; YZ plane G19V__ ; YV plane The axis command that does not exist in the plane determined by the plane selection G code (G17, G18, G19) is irrelevant to the plane selection. For the parameter registration example in Fig. 1. G17U__Z__ ; If the above is commanded, the UY plane will be selected, and Z will move regardless of the plane. If the basic axis and parallel axis are commanded in duplicate in the same block as the plane selection G code (G17, G18, G19), the plane will be determined in the priority order of basic axis and parallel axis. For the parameter registration example in Fig. 1. G17U__Y__W__-; If the above is commanded, the UY plane will be selected, and W will move regardless of the plane. Note 1) The plane set with parameter #1025 I_plane will be selected when the power is turned ON or reset.

- 36 -

6. Interpolation Functions

6.4 Circular interpolation; G02, G03


(1) Function and objective These commands serve to move the tool along an arc. (2) Command format G02 (G03) X x Y y
End point coordinates

I i J j
Arc center coordinates

Ff
Feedrate

Counterclockwise (CCW) Clockwise (CW)

For the arc command, the arc end point coordinates are assigned with addresses X, Y (or Z, or parallel axis X, Y, Z), and the arc center coordinate value is assigned with addresses I, J (or K). Either an absolute value or incremental value can be used for the arc end point coordinate value command, but the arc center coordinate value must always be commanded with an incremental value from the start point. The arc center coordinate value is commanded with an input setting unit. Caution is required for the arc command of an axis for which the input command value differs. Command with a decimal point to avoid confusion. (3) Detailed description G02 (or G03) is retained until another G command (G00, G01 or G33) in the 01 group that changes its mode is issued. The arc rotation direction is distinguished by G02 and G03. G02 : Clockwise (CW) G03 : Counterclockwise (CCW)

G17 (X-Y) plane

G18 (Z-X) plane

G19 (Y-Z) plane

- 37 -

6. Interpolation Functions

An arc which extends for more than one quadrant can be executed with a single block command. The following information is needed for circular interpolation. a. b. c. d. e. Plane selection : Is there an arc parallel to one of the XY, ZX or YZ planes? Rotation direction : Clockwise (G02) or counterclockwise (G03)? Arc end point coordinates : Given by addresses X, Y, Z Arc center coordinates : Given by addresses I, J, K (incremental commands) Feedrate : Given by address F

(4) Example of program (Example 1) G02 J50000 F500 ; ..... Circle command

Y axis

Feedrate F = 500mm/min

Circle center J = 50mm

X axis Start point/end point

(Example 2) G91 G02 X50000 Y50000 J50000 F500 ; ..... 3/4 command

Y axis

Feedrate F = 500mm/min

Arc center J = 50mm

End point X50 Y50mm

X axis Start point

- 38 -

6. Interpolation Functions

(5) Plane selection The planes in which the arc exists are the following three planes (refer to the detailed drawings in (3)), and are selected with the following method. XY plane G17; Command with a (plane selection G code) ZX plane G18; Command with a (plane selection G code) YZ plane G19; Command with a (plane selection G code) (6) Checkpoints for circular interpolation Note 1) The terms "clockwise" (G02) and "counterclockwise" (G03) used for arc operations are defined as a case where in a right-hand coordinate system, the negative direction is viewed from the position direction of the coordinate axis which is at right angles to the plane in question. Note 2) When all the end point coordinates are omitted or when the end point is the same position as the start point, a 360 arc (full circle) is commanded when the center is commanded using I, J and K. Note 3) The following occurs when the start and end point radius do not match in an arc command : 1) Program error "P70" results at the arc start point when error R is greater than parameter #1084 RadErr. (G91) G02 X9.899 I5. ;
#1084 RadErr parameter value 0.100 Start point radius = 5.000 End point radius = 4.899 Error R = 0.101 Alarm stop

Start point

Center Start point radius

End point

End point radius

2)

Spiral interpolation in the direction of the commanded end point results when error R is less than the parameter value. (G91) G02 X9.9 I5. ;
Spiral interpolation #1084 RadErr parameter value 0.100 Start point radius = 5.000 End point radius = 4.900 Error R = 0.100 Center Start point radius End point End point radius

Start point

The parameter setting range is from 0.001mm to 1.000mm.

- 39 -

6. Interpolation Functions

6.5 R-specified circular interpolation; G02, G03


(1) Function and objective Along with the conventional circular interpolation commands based on the arc center coordinate (I, J, K) designation, these commands can also be issued by directly designating the arc radius R. (2) Command format G02 (G03) Xx Yy Rr Ff : x y r f : : : : X-axis end point coordinate Y-axis end point coordinate Arc radius Feedrate

The arc radius is commanded with an input setting unit. Caution is required for the arc command of an axis for which the input command value differs. Command with a decimal point to avoid confusion. (3) Detailed description The arc center is on the bisector line which is perpendicular to the line connecting the start and end points of the arc. The point, where the arc with the specified radius whose start point is the center intersects the perpendicular bisector line, serves as the center coordinates of the arc command. If the R sign of the commanded program is plus, the arc is smaller than a semisphere; if it is minus, the arc is larger than a semiphere.

Arc path when R sign is minus End point Center point Arc path when R sign is plus Center point Start point

The following condition must be met with an R-specified arc interpolation command: L/(2xr) 1 An error will occur when L/2 - r > (parameter : #1084 RadErr)

Where L is the line from the start point to end point. When the R specification and I, J, K specification are contained in the same block, the R specification has priority in processing. When the R specification and I, J, K specification are contained in the same block, the R specification has priority in processing. The plane selection is the same as for the I, J, K-specified arc command.

- 40 -

6. Interpolation Functions

(4) Example of programs (Example 1) G02 Xx1 Yy1 Rr1 Ff1 ; ......................... XY plane R-specified arc (Example 2) G03 Zz1 Xx1 Rr1 Ff1 ; ......................... ZX plane R-specified arc (Example 3) G02 Xx1 Yy1 Ii1 Jj1 Rr1 Ff1 ; .............. XY plane R-specified arc (When the R specification and I, J, (K) specification are contained in the same block, the R specification has priority in processing.) (Example 4) G17 G02 Ii1 Jj1 Rr1 Ff1 ; .................... XY plane This is an R-specified arc, but as this is a circle command, it is already completed.

- 41 -

6. Interpolation Functions

6.6 Helical interpolation ; G17 to G19, G02, G03


(1) Function and objective While circular interpolating with G02/G03 within the plane selected with the plane selection G code (G17, G18, G19), the 3rd axis can be linearly interpolated. Normally, the helical interpolation speed is designated with the tangent speed F' including the 3rd axis interpolation element as shown in the lower drawing of Fig. 1. However, when designating the arc plane element speed, the tangent speed F on the arc plane is commanded as shown in the upper drawing of Fig. 1. The NC automatically calculates the helical interpolation tangent speed F' so that the tangent speed on the arc plane is F.

Start point

End point

F Z Y X
Fig. 1 Designation of helical interpolation speed (2) Command format G17 G02 (G03) Xx1 Yy1
Arc end point coordinate

End point

Start point

Zz1
Linear axis end point coordinate

Ii1 Jj1
Arc center coordinate

Pp1
Pitch No.

Ff1 ;
Feedrate

Or G17 G02 (G03) Xx2 Yy2


Arc end point coordinate

Zz2
Linear axis end point coordinate

Rr2
Arc radius

Ff2 ;
Feedrate

The arc center coordinate value and arc radius value are commanded with an input setting input. Caution is required for the helical interpolation command of an axis for which the input command value differs. Command with a decimal point to avoid confusion.

- 42 -

6. Interpolation Functions

The arc plane element speed designation and normal speed designation are changed with the parameter. Parameter #1235 set07/bit0 1 0 Meaning Arc plane element speed designation is selected. Normal speed designation is selected.

6.6.1 Normal speed designation


Z axis P1 time End point Y axis l X axis
Second time First time

Start point

1) For this command, command a linear axis (multiple axes can be commanded) that does not contain a circular axis in the circular interpolation command. 2) For feedrate F, command the X, Y Z axis composite element directions speed. 3) Pitch l is obtained with the following expression. l =
Z1 (2 P1 + ) / 2 ye ys tan1 xe xs

= e s = tan1

(0 < 2)

Where xs, ys are the start point coordinates from the arc center xe, ye are the end point coordinates from the arc center 4) If pitch No. is 0, address P can be omitted. Note) The pitch No. P command range is 0 to 99. The pitch No. designation (P command) cannot be made with the R-specified arc.

5) Plane selection The helical interpolation arc plane selection is determined with the plane selection mode and axis address as for the circular interpolation. For the helical interpolation command, the plane where circular interpolation is executed is commanded with the plane selection G code (G17, G18, G19), and the 2 circular interpolation axes and linear interpolation axis (axis that intersects with circular plane) 3 axis addresses are commanded. XY plane circular, Z axis linear Command the X, Y and Z axis addresses in the G02 (G03) and G17 (plane selection G code) mode. ZX plane circular, Y axis linear Command the X, Y and Z axis addresses in the G02 (G03) and G18 (plane selection G code) mode. YZ plane circular, X axis linear Command the X, Y and Z axis addresses in the G02 (G03) and G19 (plane selection G code) mode.

- 43 -

6. Interpolation Functions

The plane for an additional axis can be selected as with circular interpolation. UY plane circular, Z axis linear Command the U, Y and Z axis addresses in the G02 (G03) and G19 (plane selection G code) mode. In addition to the basic command methods above, the command methods following the program example can be used. Refer to the section 6.4 plane selection for the arc planes selected with these command methods. (1) Example of program (Example 1)
Z axis Y axis

X axis

G17 ; ...................................................................... XY plane G03 Xx1 Yy1 Zz1 Ii1 Jj1 P0 Ff1 ; .................... XY plane arc, Z axis linear Note) If pitch No. is 0, address P can be omitted.
Z axis Y axis

X axis

(Example 2) G17 ; ...................................................................... XY plane G02 Xx1 Yy1 Zz1 Rr1 Ff1 ; ................................. XY plane arc, Z axis linear

- 44 -

6. Interpolation Functions

(Example 3)
Z axis Y axis

U axis

G17G03 Uu1 Yy1 Zz1 Ii1 Jj1 P2 Ff1 ................... UY plane arc, Z axis linear (Example 4)

Z axis Y axis

Z axis

G18G03 Xx1 Uu1 Zz1 Ii1 Kk1 Ff1 ;.................... ZX plane arc, U axis linear Note) If the same system is used, the standard axis will perform circular interpolation and the additional axis will perform linear interpolation. (Example 5) G18G02 Xx1 Uu1 Yy1 Zz1 Ii1 Jj1 Kk1 Ff1 ......... ZX plane arc, U axis, Y axis linear (The J command is ignored) Note) Two or more axes can be designated for the linear interpolation axis.

- 45 -

6. Interpolation Functions

6.6.2 Arc plane element speed designation


If arc plane element speed designation is selected, the F command will be handled as modal data in the same manner as the normal F command. This will also apply to the following G01, G02 and G03 commands. For example, the program will be as follows. Example:
G17 G91 G02 X10. Y10. Z-4. I10, F100 ; Helical interpolation at speed at which arc plane element is F100 G01 X20. ; Linear interpolation at F100 G02 X10. Y-10. Z4. J10. ; Helical interpolation at speed at which arc plane element is F100 G01 Y-40. F120 ; Linear interpolation at F120 G02 X-10. Y-10. Z-4. I10. ; Helical interpolation at speed at which arc plane element is F120 G01 X-20. ; Linear interpolation at F120

When the arc plane element speed designation is selected, only the helical interpolation speed command is converted to the speed commanded with the arc plane element. The other linear and arc commands operate as normal speed commands. 1) The actual feedrate display (Fc) indicates the tangent element of the helical interpolation. 2) The modal value speed display (FA) indicates the command speed. 3) The speed data acquired with DDB or API functions follows the Fc and FA display. 4) During the high-speed mode, the normal helical interpolation speed command is issued. 5) This function is valid only when feed per minute (asynchronous feed: G94) is selected. If feed per revolution (synchronous feed: G95) is selected, the arc plane element speed will not be designated. 6) The helical interpolation option is required to use this function.

- 46 -

6. Interpolation Functions

6.7 Thread cutting; G33


6.7.1 Constant lead thread cutting
(1) Outline The G33 command exercises feed control over the tool which is synchronized with the spindle rotation and so this makes it possible to conduct constant-lead straight thread-cutting and tapered thread-cutting. Multiple thread screws, etc., can also be machined by designating the thread cutting angle. (2) Command format G33ZzFfQq ; (Normal lead thread cutting commands) Zz = Thread cutting direction axis address (X, Y, Z, ) and thread length Ff = Lead of long axis (axis which moves most) direction. Qq = Thread cutting start shift angle, (0 to 360) G33ZzEeQq ; (Precision lead thread cutting commands) Zz = Thread cutting direction axis address (X, Y, Z, ) and thread length Ee = Lead of long axis (axis which moves most) direction Qq = Thread cutting start shift angle, (0 to 360) (3) Detailed description 1) 2) The E command is also used for the number of ridges in inch thread cutting, and whether the ridge number or precision lead is to be designated can be selected by parameter setting. (Precision lead is designated by setting bit 1 of the parameter #1229 set 01 to 1.) The lead in the long axis direction is commanded for the taper thread lead.

Tapered thread section

When a < 45 lead is LX. When a > 45 lead is LX. When a = 45 lead can be in either LX or LZ.
Input unit system Command address Minimum command unit Command range B (0.001mm) F (mm/rev)
1 (= 1.000), (1.=1.000) 0.001 to 999.999

C (0.0001mm) F (mm/rev)
1(= 1.0000), (1.=1.0000) 0.0001 to 99.9999

E (mm/rev) E (threads/ inch)


1(=1.00000), (1.=1.00000) 0.00001 to 999.99999 1 (= 1.00), (1.=1.00) 0.03 to 999.99

E (mm/rev) E (threads/ inch)


1(=1.00000), (1.=1.00000) 0.000001 to 99.999999 1 (= 1.000), (1.=1.000) 0.255 to 9999.999

- 47 -

6. Interpolation Functions

Input unit system Command address Minimum command unit Command range

B (0.0001inch) F (inch/rev)
1(=1.0000), (1.=1.0000) 0.0001 to 39.3700

C (0.00001inch) F (inch/rev)
1(=1.00000), (1.=1.00000) 0.00001 to 3.93700

E (inch/rev) E (threads/ inch)


1(=1.000000), 1 (= 1.0000), (1.=1.0000000) (1.=1.0000) 0.000001 to 39.370078 0.0255 to 9999.9999

E (inch/rev) E (threads/ inch)


1(=1.000000), (1.=1.000000) 0.000001 to 3.937007 1(=1.0000), (1.=1.0000) 0.25401 to 999.9999

(Note 1) It is not possible to assign a lead where the feedrate as converted into per-minute feed exceeds the maximum cutting feedrate. 3) 4) 5) The thread cutting will start by the one rotation synchronous signal from the encoder installed on the spindle. The spindle speed should be kept constant throughout from the rough cutting until the finishing. If the feed hold function is employed during thread cutting to stop the feed, the thread ridges will lose their shape. For this reason, feed hold does not function during thread cutting. If the feed hold switch is pressed during thread cutting, block stop will result at the end point of the block following the block in which thread cutting is completed (no longer G33 mode). The converted cutting feedrate is compared with the cutting feed clamp rate when thread cutting starts, and if it is found to exceed the clamp rate, an operation error will result. In order to protect the lead during thread cutting, a cutting feed rate which has been converted may sometimes exceed the cutting feed clamp rate. An illegal lead is normally produced at the start of the thread and at the end of the cutting because of servo system delay and other such factors. Therefore, it is necessary to command a thread length which is determined by adding the illegal lead lengths to the required thread length. The spindle speed is subject to the following restriction :
Maximum feedrate Thread lead Where R Permissible speed of encoder (r/min) R = Spindle speed (r/min) Thread lead = mm or inches

6) 7) 8)

9)

1R

Maximum feedrate = mm/min or inch/mm (this is subject to the restrictions imposed by the machine specifications). 10) The thread cutting start angle is designated with an integer or 0 to 360.

- 48 -

6. Interpolation Functions

(4) Example of program N110G90G0X-200. Y-200. S50M3 ; N111Z110. ; N112G33Z40. F6.0 ; N113M19 ; N114G0X-210. ; N115Z110.M0 ; N116X-200. ; M3 ; N117G04X5.0 ; N118G33Z40. ;

Operation example N110,N111 N112 N113 N114 N115 N116 N117 N118 The spindle center is positioned to the workpiece center, and the spindle rotates in the forward direction. The first thread cutting is executed. Thread lead = 6.0mm Spindle orientation is executed with the M19 command. The tool is evaded in the X axis direction. The tool rises to the top of the workpiece, and the program stops with M00. Adjust the tool if required. Preparation for second thread cutting is done. Command dwell to stabilize the spindle rotation if necessary. The second thread cutting is executed.

- 49 -

6. Interpolation Functions

6.7.2 Inch thread cutting


(1) Outline If the number of ridges per inch in the long axis direction is assigned in the G33 command, the feed of the tool synchronized with the spindle rotation will be controlled, which means that constant-lead straight thread-cutting and tapered thread-cutting can be performed. (2) Command format G33 Zz Ee Qq; Zz = Thread cutting direction axis address (X, Y, Z, ) and thread length Ee = Number of ridges per inch in direction of long axis (axis which moves most) (decimal point command can also be assigned) Qq = Thread cutting start shift angle, 0 to 360. (3) Detailed description 1) 2) The number of ridges in the long axis direction is assigned as the number of ridges per inch. The E code is also used to assign the precision lead length, and whether the ridge number of precision lead length is to be designated can be selected by parameter setting. (The number of ridges is designated by setting bit 1 of the parameter #1229 set 01 to 1.) The E command value should be set within the lead value range when the lead is converted.

3)

(4) Example of program Thread lead ..... 3 threads/inch (= 8.46666 ...) When programmed with 1= 10mm, 2 = 10mm using metric input N210G90G0X-200. Y-200. S50M3; N21Z110.; N212G91G33Z-70.E3.0; (First thread cutting) N213M19; N214G90G0X-210.; N215Z110.M0; N216X-200.; M3; N217G04X2.0; N218G91G33Z-70.; (Second thread cutting)

- 50 -

6. Interpolation Functions

6.8 Uni-directional positioning; G60


(1) Function and objective The G60 command can position the tool at a high degree of precision without backlash error by locating the final tool position from a single determined direction. (2) Command format G60 Xx Yy Zz ; ( is optional axis) (3) Detailed description 1) 2) The creep distance for the final positioning as well as the final positioning direction is set by parameter. After the tool has moved at the rapid traverse rate to the position separated from the final position by an amount equivalent to the creep distance, it move to the final position in accordance with the rapid traverse setting where its positioning is completed.

3) 4) 5) 6)

7) 8) 9) 10) 11) 12)

The above positioning operation is performed even when Z-axis commands have been assigned for Z-axis cancel and machine lock. (Display only) When the mirror image function is ON, the tool will move in the opposite direction as far as the intermediate position due to the mirror image function but the operation within the creep distance during its final advance will not be affected by mirror image. The tool moves to the end point at the dry run speed during dry run when the G0 dry run function is valid. Feed during creep distance movement with final positioning can be stopped by resetting, emergency stop, interlock, feed hold and rapid traverse override zero. The tool moves over the creep distance at the rapid traverse setting. Rapid traverse override is valid. Uni-directional positioning is not performed for the drilling axis during drilling fixed cycles. Uni-directional positioning is not performed for shift amount movements during the fine boring or back boring fixed cycle. Normal positioning is performed for axes whose creep distance has not been set by parameter. Uni-directional positioning is always a non-interpolation type of positioning. When the same position (movement amount of zero) has been commanded, the tool moves back and forth over the creep distance and is positioned at its original position from the final advance direction. Program error P61 results when the G60 command is assigned with an NC system which has not been provided with this particular specification.

- 51 -

6. Interpolation Functions

6.9 Cylindrical interpolation; G07.1


(1) Function and purpose This function develops a shape with a cylindrical side (shape in cylindrical coordinate system) into a plane. When the developed shape is programmed as the plane coordinates, that is converted into the linear axis and rotary axis movement in the cylindrical coordinates and the contour is controlled during machining.

Y X r Z

B
As programming can be carried out with a shape with which the side on the cylinder is developed, this is effective for machining cylindrical cams, etc. When programmed with the rotary axis and its orthogonal axis, slits, etc., can be machined on the cylinder side.
0

Development

2r

360

- 52 -

6. Interpolation Functions

(2) Command format G07.1 Cc ; Cc (Cylindrical interpolation mode start/cancel) Cylinder radius value Radius value 0: Cylindrical interpolation mode start Radius value = 0: Cylindrical interpolation mode cancel

(Note) The above format applies when the name of the rotary axis is "C". If the name is not "C", command the name of the rotary axis being used instead of "C". (a) The coordinates commanded during the cylindrical interpolation mode will be the cylindrical coordinate system. G07.1 Cc (c0); : : : G07.1 C0 ; Cylindrical interpolation mode start (Cylindrical interpolation will start) (The coordinate commands in this interval will be the cylindrical coordinate system) Cylindrical interpolation mode cancel (Cylindrical interpolation will end.)

(b) G107 can be used instead of G07.1. (c) Command G07.1 in an independent block. Do not command it in the same block as another G code. (d) Program the rotary axis with an angle. (e) Linear interpolation or circular interpolation can be commanded during the cylindrical interpolation mode. Note that the plane selection command must be issued just before the G07.1 block. (f) The coordinates can be commanded with either an absolute command or incremental command.

(g) Tool radius compensation can be applied on the program command. Cylindrical interpolation will be executed on the path after tool radius compensation. (h) Command the segment feedrate with F in the cylinder development. The F unit is mm/min or inch/min. (3) Cylindrical interpolation accuracy In the cylindrical interpolation mode, the movement amount of the rotary axis commanded with an angle is converted into the circle periphery, and after operating the linear and circulation interpolation between the other axes, the amount is converted into an angle again. Thus, the actual movement amount may differ from the commanded value when the cylinder radius is small. Note that the error generated at this time is not cumulated.

- 53 -

6. Interpolation Functions

(4) Plane selection The axis used for cylindrical interpolation must be set with the plane selection command. The correspondence of the rotary axis to an axis' parallel axis is set with the parameters (#1029, #1030, #1031). The circular interpolation and tool radius compensation, etc., can be designated on that plane. The plane selection command is set immediately before or after the G07.1 command. If not set and a movement command issued, a program error (P485) will occur. Example)
G19 Z0. C0. ; G07.1 C100. ; : G07.1 C0 ; Y X Z

Basic coordinate system X, Y, Z Y Cylindrical coordinate system C, Y, Z (Rotary axis is X axis' parallel axis) #1029 C Cylindrical coordinate system X, C, Z (Rotary axis is Y axis' parallel axis) #1030

G17 X C

G18 Z

G19 Y

G17 C

G18 Z

G17 X X C

G19 C

Cylindrical coordinate system X, Y, C (Rotary axis is Z axis' parallel axis) #1031

G18 C

G19 Y

- 54 -

6. Interpolation Functions

(5) Relation to other functions (a) Circular interpolation Circular interpolation between the rotary axis and linear axis is possible during the cylindrical interpolation mode. An R designated command can be issued with circular interpolation. (I, J and K cannot be designated.) (b) Tool radius compensation The tool radius can be compensated during the cylindrical interpolation mode. Command the plane selection in the same manner as circular interpolation. When using tool radius compensation, start up and cancel the compensation during the cylindrical interpolation mode. A program error (P485) will occur if G07.1 is commanded during tool radius compensation. (c) Cutting asynchronous feed The asynchronous mode is forcibly set when the cylindrical interpolation mode is started. When the cylindrical interpolation mode is canceled, the synchronization mode will return to the state before the cylindrical interpolation mode was started. A program error (P485) will occur if G07.1 is commanded in the constant surface speed control mode (G96). (d) Miscellaneous functions The M command and B command can be issued even in the cylindrical interpolation mode. As for the S command in the cylindrical interpolation mode, issue the rotary tool's rotation speed instead of the spindle rotation speed. Issue the T command before cylindrical interpolation is started. A program error (P485) will occur if the T command is issued in the cylindrical interpolation mode. : : T12 ; G0 X100. Z0. ; G19 Z C ; G07.1 C100. ; : T11 ; : G07.1 C0 ;

... T command before cylindrical interpolation Valid

... T command in cylindrical interpolation mode Program error

- 55 -

6. Interpolation Functions

(e) F command during cylindrical interpolation As for the F command in the cylindrical interpolation mode, whether the previous F command is used or not depends on that the mode just before G07.1 is the feed per minute command (G94) or feed per rotation command (G95). When G94 is commanded just before G07.1 If there is no F command in the cylindrical interpolation, the previous F command feedrate will be used. The last F command feedrate, which was issued when the cylindrical interpolation mode was started or during the mode, will remain as the feedrate after the cylindrical interpolation mode cancel. When G95 is commanded just before G07.1 The previous F command feedrate cannot be used during cylindrical interpolation. A program error (P62) will occur. The feedrate after the cylindrical interpolation mode is canceled will return to that applied before the cylindrical interpolation mode was started. When there is no F command in G07.1 mode. Mode before G07.1 G94 G95 During G07.1 mode Previous F is used (Program error) Feedrate After G07.1 is canceled Previous F is used F just before G07.1 is used

When F is commanded in G07.1 mode Mode before G07.1 G94 G95 Feedrate During G07.1 mode After G07.1 is canceled Feedrate during G07.1 Commanded F is used Commanded F is used *1 F just before G07.1 is used *1) Moves with the feed per minute command during G07.1.

- 56 -

6. Interpolation Functions

(6) Restrictions and precautions (a) The following G code commands can be used during the cylindrical interpolation mode. G code G00 G01 G02 G03 G04 G09 G22/23 G40-42 G61 G64 G65 G66 G66.1 G67 G80-89 G90/91 G94 G98 G99 Details Positioning Linear interpolation Circular interpolation (CW) Circular interpolation (CCW) Dwell Exact stop check Chuck barrier ON/OFF Tool radius compensation Exact stop mode Cutting mode User macro (simple call) User macro (modal call) User macro (block call per macro) User macro cancel (modal call cancel) Hole drilling fixed cycle Absolute/incremental Asynchronous feed Fixed cycle/initial point return Fixed cycle/R point return

A program error (P481) may occur if a G code other than those listed above is commanded during cylindrical interpolation. (b) The cylindrical interpolation mode is canceled when the power is turned ON or reset. (c) A program error (P484) will occur if any axis commanded for cylindrical interpolation has not completed zero point return. (d) Tool radius compensation must be canceled before the cylindrical interpolation mode is canceled. (e) When the cylindrical interpolation mode is canceled, the mode will change to the cutting mode, and the plane will return to that selected before cylindrical interpolation.

- 57 -

6. Interpolation Functions

(7) Program example


<Program> N01 G28XZC; N02 T02; N03 G97S100M23; N04 G00X50.Z0.; N05 G94G01X40.F100.; N06 G19C0Z0; N07 G07.1C20.; N08 G41; N09 G01Z-10.C80.F150; N10 Z-25.C90.; N11 Z-80.C225; N12 G03Z-75.C270.R55.; N13 G01Z-25; N14 G02Z-20.C280.R80.; N15 G01C360. N16 G40; N17 G07.1C0; N18 G01X50.; N19 G0X100.Z100.; N20 M25; N21 M30; <Parameters> #1029 aux_I #1030 aux_J #1031 aux_K

Commands of plane selection and two axes for cylindrical interpolation Cylindrical interpolation start

Cylindrical interpolation cancel

-80

-60

-40

-20

Unit: mm

Z 50 N10 N09 100 150 N11 N13 N12 N14 200 250 300 350 N15

- 58 -

6. Interpolation Functions

6.10 Pole coordinate interpolation; G12.1, G13.1


(1) Function and purpose This function converts the commands programmed with the orthogonal coordinate axis into linear axis movement (tool movement) and rotary axis movement (workpiece rotation), and controls the contour. The plane that uses the linear axis as the plane's 1st orthogonal axis, and the intersecting hypothetical axis as the plane's 2nd axis (hereinafter "pole coordinate interpolation plane") is selected. Pole coordinate interpolation is carried out on this plane. The workpiece coordinate system zero point is used as the coordinate system zero point during pole coordinate interpolation.
Linear axis X axis

C axis

Z axis

Rotary axis (hypothetical axis) Pole coordinate interpolation plane (G17 plane)

This is effective for cutting a notch section on a linear section at the workpiece diameter, and for cutting cam shafts, etc.

- 59 -

6. Interpolation Functions

(2) Command format G12.1 ; Pole coordinate interpolation mode start G13.1 ; Pole coordinate interpolation mode cancel (a) The coordinates commanded in the interval from the start to cancellation of the pole coordinate interpolation mode will be the pole coordinate interpolation. G12.1 ; : : : G13.1 ; Pole coordinate interpolation mode start (Pole coordinate interpolation will start) (The coordinate commands in this interval will be the pole coordinate interpolation) Pole coordinate interpolation mode cancel (Pole coordinate interpolation will end.)

(b) G112 and G113 can be used instead of G12.1 and G13.1. (c) Command G12.1 and G13.1 in an independent block. Do not command it in the same block as another G code. (d) Linear interpolation or circular interpolation can be commanded during the pole coordinate interpolation mode. (e) The coordinates can be commanded with either an absolute command or incremental command. (f) Tool radius compensation can be applied on the program command. Pole coordinate interpolation will be executed on the path after tool radius compensation.

(g) Command the segment feedrate in the pole coordinate interpolation plane (orthogonal coordinate system) with F. The F unit is mm/min or inch/min. (3) Plane selection The linear axis and rotary axis used for pole coordinate interpolation must be set beforehand with the parameters. (a) Determine the deemed plane for carrying out pole coordinate interpolation with the parameter (#1533) for the linear axis used for pole coordinate interpolation. #1533 setting value X Y Z Blank (no setting) Deemed plane G17 (XY plane) G19 (YZ plane) G18 (ZX plane) G17 (XY plane)

(b) A program error (P485) will occur if the plane selection command (G16 to G19) is issued during the pole coordinate interpolation mode.

- 60 -

6. Interpolation Functions

(4) Relation to other functions (a) Program commands during pole coordinate interpolation The program commands in the pole coordinate interpolation mode are commanded with the orthogonal coordinate value of the linear axis and rotary axis (hypothetical axis) on the pole coordinate interpolation plane. The axis address of the rotary axis (C) is commanded as the axis address for the plane's 2nd axis (hypothetical axis) command. The command unit is not degree (), and instead is the same unit (mm or inch) as the command issued with the axis address for the plane's 1st axis (linear axis). The hypothetical axis coordinate value will be set to "0" when G12.1 is commanded. In other words, the position where G12.1 is commanded will be interpreted as angle = 0, and the pole coordinate interpolation will start. (b) Circular interpolation on pole coordinate plane The arc radius address for carrying out circular interpolation during the pole coordinate interpolation mode is determined with the linear axis parameter (#1533). #1533 setting value X Y Z Blank (no setting) Center designation command I, J (Pole coordinate plane is interpreted as XY plane.) J, K (Pole coordinate plane is interpreted as YZ plane.) K, I (Pole coordinate plane is interpreted as ZX plane.) I, J (Pole coordinate plane is interpreted as XY plane.)

The arc radius can also be designated with the R command. (c) Tool radius compensation The tool radius can be compensated during the pole coordinate interpolation mode. Command the plane selection in the same manner as pole coordinate interpolation. When using tool radius compensation, start up and cancel the compensation during the pole interpolation mode. A program error (P485) will occur if pole coordinate interpolation is executed during tool radius compensation. (d) Cutting asynchronous feed The asynchronous mode is forcibly set when the pole coordinate interpolation mode is started. When the pole coordinate interpolation mode is canceled, the synchronization mode will return to the state before the pole coordinate interpolation mode was started. A program error (P485) will occur if G12.1 is commanded in the constant surface speed control mode (G96).

- 61 -

6. Interpolation Functions

(e) Miscellaneous functions The M command and B command can be issued even in the pole coordinate interpolation mode. As for the S command in the pole coordinate interpolation mode, issue the rotary tool's rotation speed instead of the spindle rotation speed. Issue the T command before pole coordinate interpolation is started. A program error (P485) will occur if the T command is issued in the pole coordinate interpolation mode. : : T12 ; G0 X100. Z0. ; G12.1 ; : T11 ; : G13.1 ; (f)

... T command before pole coordinate interpolation Valid

... T command in pole coordinate interpolation mode Program error

F command during pole coordinate interpolation As for the F command in the pole coordinate interpolation mode, whether the previous F command is used or not depends on that the mode just before G12.1 is the feed per minute command (G94) or feed per rotation command (G95). When G94 is commanded just before G12.1 If there is no F command in the pole coordinate interpolation, the previous F command feedrate will be used. The F command feedrate issued last will remain as the feedrate after the pole coordinate interpolation mode is canceled when the pole interpolation mode was start or during pole coordinate interpolation. When G95 is commanded just before G12.1 The previous F command feedrate cannot be used during pole coordinate interpolation. A program error (P62) will occur. The feedrate after the pole coordinate interpolation mode is canceled will return to that applied before the pole coordinate interpolation mode was started. When there is no F command in G12.1 mode. Mode before G12.1 G94 G95 Feedrate During G12.1 mode Previous F is used (Program error) After G13.1 Previous F is used F just before G12.1 is used

When F is commanded in G12.1 mode. Mode before G12.1 G94 G95 Feedrate During G12.1 mode After G13.1 Commanded F is used Commanded F is used Commanded F is used *1 F just before G12.1 is used *1) Moves with the feed per minute command during G12.1.

- 62 -

6. Interpolation Functions

(5) Restrictions and precautions (a) The following G code commands can be used during the pole coordinate interpolation mode. G code G00 G01 G02 G03 G04 G09 G22/23 G40-42 G61 G64 G65 G66 G66.1 G67 G80-89 G90/91 G94 G98 G99 Details Positioning Linear interpolation Circular interpolation (CW) Circular interpolation (CCW) Dwell Exact stop check Chuck barrier ON/OFF Tool radius compensation Exact stop mode Cutting mode User macro (simple call) User macro (modal call) User macro (block call per macro) User macro cancel (modal call cancel) Drilling fixed cycle Absolute/incremental Asynchronous feed Fixed cycle/initial point return Fixed cycle/R point return

A program error (P481) may occur if a G code other than those listed above is commanded during pole coordinate interpolation. (b) The program cannot be restarted for a block in pole coordinate interpolation. (c) Before commanding pole coordinate interpolation, set the workpiece coordinate system so that the center of the rotary axis is at the coordinate system zero point. Do not change the coordinate system during the pole coordinate interpolation mode. (G50, G52, G53, relative coordinate reset, G54 to G59, etc.) (d) The feedrate during pole coordinate interpolation will be the interpolation speed on the pole coordinate interpolation plane (orthogonal coordinate system). (The relative speed with the tool will be converted with pole coordinate conversion.) When passing near the center of the rotary axis on the pole coordinate interpolation plane (orthogonal coordinate system), the rotary axis side feedrate after pole coordinate interpolation will be very high. (e) The axis movement command outside of the plane during pole coordinate interpolation will move unrelated to the pole coordinate interpolation. (f) The current position displays during pole coordinate interpolation will indicate all the actual coordinate value. However, only the "remaining movement amount" will indicate the movement amount on the pole coordinate input plane.

(g) The pole coordinate interpolation mode will be canceled when the power is turned ON or reset. (h) A program error (P484) will occur if any axis commanded for pole coordinate interpolation has not completed zero point return. (i) (j) Tool radius compensation must be canceled before the pole coordinate interpolation mode is canceled. When the pole coordinate interpolation mode is canceled, the mode will change to the cutting mode, and the plane will return to that selected before pole coordinate interpolation.

- 63 -

6. Interpolation Functions

(6) Program example


Hypothetical C axis

X axis C axis Z axis Hypothetical C axis C axis

N06

N05

Tool

N04 N01 N10 N07 N11 X axis

N08

N09

Path after tool radius compensation Programmed path

<Program> : : N00 T01; : : N01 G17 G90 G0 X40.0 C0 Z0; N02 G12.1; N03 G1 G42 X20.0 F2000; N04 C10.0; N05 G3 X10.0 C20.0 R10.0; N06 G1 X-20.0; N07 C-10.0; N08 G3 X-10.0 C-20.0 I10.0 J0; N09 G1 X20.0; N10 C0; N11 G40 X40.0; N12 G13.1; : : : M30 ;

Setting of start position Pole coordinate interpolation mode: Start Actual machining start Shape program (Follows orthogonal coordinate values on X-C hypothetical axis plane.)

Pole coordinate interpolation mode: Cancel

- 64 -

7. Feed Functions

7. Feed Functions
7.1 Rapid traverse rate
The rapid traverse rate can be set independently for each axis. The available speed ranges are from 1 mm/min to 1,000,000 mm/min for input setting units of 1m or 10m. The upper limit is subject to the restrictions imposed by the machine specifications. Refer to the specifications manual of the machine for the rapid traverse rate settings. The feedrate is valid for the G00, G27, G28, G29, G30 and G60 commands. Two paths are available for positioning: the interpolation type where the area from the start point to the end point is linearly interpolated or the non-interpolation type where movement proceeds at the maximum speed of each axis. The type is selected with parameter #1086 G0Intp. The positioning time is the same for each type.

7.2 Cutting feed rate


The cutting feedrate is assigned with address F and 8 digits (F8-digit direct designation). The F8 digits are assigned with a decimal point for a 5-digit integer and a 3-digit fraction. The cutting feedrate is valid for the G01, G02, G03 and G33 commands. Examples G1 X100. Y100. F200 ; G1 X100. Y100. F123.4 ; G1 X100. Y100. F56.789 ; Feedrate 200.0mm/min F200. or F200.000 gives the same rate. 123.4mm/min 56.789mm/min

Speed range that can be commanded (when input setting unit is 1m or 10m) F command range mm/min inch/min /min 0.001 ~ 1000000.000 0.0001 ~ 39370.0787 0.001 ~ 1000000.000 Feed rate command range 0.001 ~ 1000000.000 mm/min 0.0001 ~ 39370.0787inch/min 0.001 ~ 1000000.000/min Remarks

Note 1) A program error ("P62") results when there is no F command in the first cutting command (G01, G02, G03) after the power has been switched on. Note 2) Depending on the model, the speed range may be 0.001 to 240000.000mm/min, 0.0001 to 9448.8188inch/min or 0.001 to 240000.000/min.

- 65 -

7. Feed Functions

7.3 Synchronous feed; G94, G95


(1) Function and objective Using the G95 command, it is possible to assign the feed amount per rotation with an F code. When this command is used, the rotary encoder must be attached to the spindle. When the G94 command is issued the per-minute feed rate will return to the designated per-minute feed (asynchronous feed) mode. (2) Command format G94 : Per-minute feed (mm/min) (asynchronous feed) (F1 = 1mm/min) G95 : Per-revolution feed (mm/rev) (synchronous feed) (F1 = 0.01mm/rev) The G95 command is a modal command and so it is valid until the G94 command (per-minute feed) is next assigned. 1) The F code command range is as follows. The movement amount per spindle revolution with synchronous feed (per-revolution feed) is assigned by the F code and the command range is as shown in the table below.
Input unit system Command mode Command address Minimum command unit Command range Input unit system Command mode Command address Minimum command unit Command range B (0.001mm) Feed per minute F (mm/min) 1 (= 1.00), (1. = 1.00) 0.01 to 1000000.00 Feed per rotation E (mm/rev) 1 (= 0.01), (1. = 1.00) 0.001 to 999.999 C (0.0001mm) Feed per minute F (mm/min) 1 (= 1.000), (1. = 1.000) 0.001 to 100000.000 Feed per rotation E (mm/rev) 1 (= 0.01), (1. = 1.00) 0.0001 to 99.9999

B (0.0001inch) Feed per minute F (inch/min) 1 (= 1.000), (1. = 1.000) 0.001 to 100000.0000 Feed per rotation E (inch/rev) 1 (= 0.001), (1. = 1.000) 0.0001 to 999.9999

C (0.00001inch) Feed per minute F (inch/min) 1 (= 1.0000), (1. = 1.0000) 0.0001 to 10000.00000 Feed per rotation E (inch/rev) 1 (= 0.001), (1. = 1.000) 0.00001 to 99.99999

2)

The effective speed (actual movement speed of machine) under per-revolution feed conditions is given in the following formula (Formula 1). FC = F N OVR ..... (Formula 1) Where FC F N OVR = = = = Effective rate (mm/min, inch/min) Commanded feedrate (mm/rev, inch/rev) Spindle speed (r/min) Cutting feed override

When a multiple number of axes have been commanded at the same time, the effective rate FC in formula 1 applies in the vector direction of the command.

- 66 -

7. Feed Functions

Note 1) The effective rate (mm/min or inch/min), which is produced by converting the commanded speed, the spindle speed and the cutting feed override into the per-minute speed, appears as the FC on the monitor 1. Screen of the setting and display unit. Note 2) When the above effective rate exceeds the cutting feed clamp rate, it is clamped at that clamp rate. Note 3) If the spindle speed is zero when synchronous feed is executed, operation alarm "105" results. Note 4) During machine lock high-speed processing, the rate will be 60,000mm/min (or 2,362 inch/min, 60,000 /min) regardless of the commanded speed and spindle speed. When high-speed processing is not undertaken, the rate will be the same as for non-machine lock conditions. Note 5) Under dry run conditions, asynchronous speed applies and movement results at the externally set rate (mm/min, inch/min, /min). Note 6) The fixed cycle G84 (tapping cycle) and G74 (reverse tapping cycle) are executed to the feed mode that is already designated. Note 7) Whether asynchronous feed (G94) or synchronous feed (G95) is to be established when the power is switched on or when M02 or M30 is executed is set with parameter #1074 I_Sync.

- 67 -

7. Feed Functions

7.4 Feedrate designation and effects on control axes


It has already been mentioned that a machine has a number of control axes. These control axes can be divided into linear axes which control linear movement and rotary axes which control rotary movement. The feedrate is designed to assign the displacement speed of these axes, and the effect exerted on the tool movement speed which poses problems during cutting differs according to when control is exercised over the linear axes or when it is exercised over the rotary axes. The displacement amount for each axis is assigned separately for each axis by a value corresponding to the respective axis. The feedrate is not assigned for each axis but assigned as a single value. Therefore, when two or more axes are to be controlled simultaneously, it is necessary to understand how this will work for each of the axes involved. The assignment of the feedrate is described with the following related items. (1) When controlling linear axes Even when only one machine axis is to be controlled or there are two or more axes to be controlled simultaneously, the feed rate which is assigned by the F code functions as a linear speed in the tool advance direction. (Example) When the feedrate is designated as "f" and linear axes (X and Y) are to be controlled.

(Tool end point) Speed in this direction is "f"

(Tool start point)

When only linear axes are to be controlled, it is sufficient to designate the cutting feed in the program. The feedrate for each axis is such that the designated rate is broken down into the components corresponding to the movement amounts. In the above example : Feedrate for X axis = f x Feedrate for Y axis = f x (2) When controlling rotary axes When rotary axes are to be controlled, the designated feedrate functions as the rotary speed of the rotary axes or, in other words, as an angular speed. Consequently, the cutting feed in the tool advance direction, or in other words the linear speed, varies according to the distance between the center of rotation and the tool. This distance must be borne in mind when designating the feedrate in the program.
x 2 x +y y 2 2 x +y
2

- 68 -

7. Feed Functions

(Example)

When the feedrate is designated as "f" and rotary axis (CA) is to be controlled ("f" units = /min)
(tool end point) Angular speed is "f"

Linear speed is : r f
180

Rotation center

(tool start point)

In this case, in order to make the cutting feed (linear feed) in the tool advance direction "fc" : r fc = f 180 Therefore, the feedrate to be designated in the program must be : f = fc
180 r

Note) When the circular interpolation function is used and the tool is moved along the circumference of an arc by the linear control axis, the rate in the tool advance direction, or in other words the tangential direction, will be the feedrate designated in the program.

Linear speed is "f"

(Example)

When the feedrate is designated as "f" and the linear axes (X and Y) are to be controlled using the circular interpolation function. In this case, the feed rate of the X and Z axes will change along with the tool movement. However, the combined speed will always be maintained at the constant value "f".

(3) When linear and rotary axes are to be controlled at the same time The controller proceeds in exactly the same way whether linear or rotary axes are to be controlled. When a rotary axis is to be controlled, the numerical value assigned by the coordinate word (A, B, C) is the angle and the numerical values assigned by the feedrate (F) are all handled as linear speeds. In other words, 1 of the rotary axis is treated as being equivalent to 1mm of the linear axis. Consequently, when both linear and rotary axes are to be controlled simultaneously, the components for each axis of the numerical values assigned by F will be the same as for section (1) above (applying when linear axes are to be controlled). However, although in this case both the size and direction of the speed components based on linear axis control do not vary, the direction of the speed components based on rotary axis control will change along with the tool movement (their size will not change). This means, as a result, that the combined tool advance direction feedrate will vary along with the tool movement.

- 69 -

7. Feed Functions

(Example)

When the feed rate is designated as "f" and Linear (X) and rotary axes are to be controlled simultaneously. In the X-axis incremental command value is "x" and the C-axis incremental command values is "c":
Size and direction are fixed for fx. Size is fixed for fc but direction varies. Both size and direction vary for ft.

Rotation center

X-axis feedrate (linear speed) "fx" and C-axis feedrate (angular speed) "" are expressed as: fx = f =f
x 2 2 x +c c 2 2 x +c

...................................................................................................... (1) ...................................................................................................... (2)

Linear speed "fc" based on C-axis control is expressed as: fc =


r .............................................................................................................. (3) 180

If the speed in the tool advance direction at start point P1 is "ft" and the component speeds in the X-axis and Y-axis directions are "ftx" and "fty", respectively, then these can be expressed as: ftx = rsin ( fty = rcos (
) + fx ......................................................................... (4) 180 180 ) ................................................................................ (5) 180 180

Where r is the distance between center of rotation and tool (in mm units), and is the angle between the P1 point and the X axis at the center of rotation (in units ). ft =
ftx + fty
2 2 2

x x c rsin (

=f

) 180 x +c
2

+( 90
2

rc 2 ) 180

.................................... (6)

Consequently, feedrate "f" designated by the program must be as follows:


x +c 2 ) x x c rsin ( +( 180 90
2 2

f = ft

r c 2 ................................... (7) ) 180

"ft" in formula (6) is the speed at the P1 point and the value of changes as the C axis rotates, which means that the value of "ft" will also change. Consequently, in order to keep the cutting feed "ft" as constant as possible the angle of rotation which is designated in one block must be reduced to as low as possible and the extent of the change in the value must be minimized. - 70 -

7. Feed Functions

7.5 Exact stop check; G09


(1) Function and objective In order to prevent roundness during corner cutting and machine shock when the tool feedrate changes suddenly, there are times when it is desirable to start the commands in the following block once the in-position state after the machine has decelerated and stopped or the elapsing of the deceleration check time has been checked. The exact stop check function is designed to accomplish this purpose. Either the deceleration check time or in-position state is selected with parameter #1193 inpos. In-position check is valid when "inpos" is set to 1. The in-position width is set with parameter #2224 sv024 on the servo parameter screen by the machine manufacturer. (2) Command format G09 ; The exact stop check command G09 has an effect only with the cutting command (G01 - G03) in its particular block. (3) Example of program N001 G09 G01 X100.000 F150 ; .... The following block is started once the deceleration check time or in-position state has been checked after the machine has decelerated and stopped. N002 Y100.000 ;
Tool f (Commanded speed) X axis With G09

Without G09 Time Y axis

Solid line indicates speed pattern with G09 command. Broken line indicates speed pattern without G09 command.

Fig. 1

Exact stop check result

- 71 -

7. Feed Functions

(4) Detailed operation

Previous block

Next block

Fig. 2

Continuous cutting feed command

Previous block

Next block

Fig. 3

Block joint with cutting feed in-position check

In Figs. 2 and 3 : Tc = Cutting feed acceleration/deceleration time constant Lc = In-position width As shown in Fig. 3, the in-position width "Lc" can be set in the #2224 sv024 servo parameter as the remaining distance (shaded area in Fig. 2) of the previous block when the next block is started. The setting unit for the #2224 sv024 servo parameter is 0.0005mm or 0.00005 inch integer. The in-position width is designed to reduce the roundness at the workpiece corners to below the constant value.
Next block Previous block

If the fixed cycle's cutting block is to be decelerated checked, insert G09 in the fixed cycle subprogram. To eliminate corner roundness, et the #2224 sv024 servo parameter to zero and perform a deceleration check or assign the dwell command (G04) between blocks.

- 72 -

7. Feed Functions

7.6 Exact stop check mode ; G61


(1) Function and objective Whereas the G09 exact stop check command checks the in-position status only for the block in which the command has been assigned, the G61 command functions as a modal. This means that deceleration will apply at the end points of each block to all the cutting commands (G01 to G03) subsequent to G61 and that the in-position status will be checked. G61 is released by automatic corner override (G62), tapping mode (G63), or cutting mode (G64). (2) Command format G61 ; In-position check is executed in the G61 block, and thereafter, the in-position check is executed at the end of the cutting command block is executed until the check mode is canceled.

7.7 Deceleration check


(1) Function and objective The deceleration check is a function that determines the method of the check at the completion of the axis movement block's movement. The deceleration check includes the in-position check and commanded speed check method. The G0 and G1 deceleration check method combination can be selected. (Refer to section "(3) Deceleration check combination".) With this function, the deceleration check in the reverse direction of G1 G0 or G1 G1 can be changed by changing the parameter setting. (2) Types of deceleration check Commanded speed check With the commanded speed check, the completion of deceleration is judged when the command to the motor is completed. In-position check With the in-position check, the completion of deceleration is judged when the motor moves to the in-position width designated with the parameter.

Command to motor movement of motor

(1)Commanded speed check

Judges the stop here

G0/G1 in-position width

(2)In-position check

Judges the stop here

- 73 -

7. Feed Functions

(3) Deceleration check combination The following deceleration check combinations can be selected with the parameters. Parameter G0 G1 Inpos AUX07/BIT-1 G0 G1+G9 XX G1 G0 G1 G1 Commanded Commanded Commanded No deceleration 0 0 speed check speed check speed check check Commanded Commanded No deceleration 0 1 In-position check speed check speed check check No deceleration 1 0 In-position check In-position check In-position check check No deceleration 1 1 In-position check In-position check In-position check check When the in-position check is valid, set the servo in-position width (#2224 SV024) in the servo parameters.

- 74 -

7. Feed Functions

7.7.1 G1 G0 deceleration check


(1) In G1 G0 continuous blocks, the parameter G0Ipfg can be changed to change the deceleration check in the reverse direction. Same direction Reverse direction

G0Ipfg: 0 G1 G0

G1

G0

G1 G0Ipfg: 1 G1 G0

G0

Command deceleration (2) Example of program When there is a deceleration check in the movement of several axes: 1) G91 G1 X100. Y100. F4000 ; G0 X-100. Y120. ; A deceleration check is carried out, because the X axis moves in the reverse direction in the program above. 2) G91 G1 X100. Y-100. F4000 ; G0 X80. Y100. ; A deceleration check is carried out, because the Y axis moves in the reverse direction in the program above. 3) G90 G1 X100. Y100. F4000 ; (When the program start position is X0 Y0) G0 X80. Y120. ; A deceleration check is carried out, because the X axis moves in the reverse direction in the program above. 4) G91 G1 X100. Y100. F4000 ; G0 X100. Y100. ; A deceleration check is not carried out, because both the X axis and the Y axis move in the same direction in the program above. 5) G91 G1 X100. Y80. F4000 ; G0 X80. ; A deceleration check is not carried out, because the X axis moves in the same direction, and there is no Y axis movement command in the program above.

- 75 -

7. Feed Functions

(3) Operation in G1 G28, G1 G29, G1 G30 continuous blocks When + direction G1 command is issued just before G28/G29/G30
G28 improve- G91/G90 ment Invalid G90 Intermediate point command (movement direction) Yes (+) Return move-me nt direction +,
1

Deceleration check operation (at block changeover) Remarks G0Ipfg: 1 None*Intermediate point
1

G0Ipfg: 0 None*Intermediate point

movement (+) Return movement (+) G1 (+)

movement (+) Return movement (+) G1 (+)

Return movement ()

Return movement ()

Yes (no movement amount)

None*

None*
Return movement (+)

G1 (+)

G1 (+)

Return movement (+)

The current position is designated as the intermediate point.

*2
G1 (+)

None*

G1 (+)

The current position is designated as the intermediate point.

Return movement ()

Return movement ()

Yes ()

+,

Yes*

G1 (+)

Return movement (+)

None*

G1 (+)

Return movement (+)

Return Return movement () movement () Intermediate point movement () Intermediate point movement ()

None

None*

None*
Return movement (+)

G1 (+)

Return G1 (+) movement (+)

The zero point is designated as the intermediate point.

Yes*

None*

G1 (+)

G1 (+)

The zero point is designated as the intermediate point.

Return movement ()

Return movement ()

- 76 -

7. Feed Functions

G28 improve- G91/G90 ment Invalid G91

Intermediate point command (movement direction) Yes (+)

Return move-me nt direction +,


1

Deceleration check operation (at block changeover) Remarks G0Ipfg: 1 None* Intermediate point
1

G0Ipfg: 0 None* Intermediate point

movement (+) Return movement (+) G1 (+)

movement (+) Return movement (+) G1 (+)

Return movement ()

Return movement ()

Yes ()

+,

Yes*

G1 (+)

Return movement (+)

None*

G1 (+)

Return movement (+)

Return Return movement () movement () Intermediate point movement () Intermediate point movement ()

None

None*

None*
Return movement (+)

G1 (+)

G1 (+)

Return movement (+)

0, 0, 0 is designated as the intermediate point.

*2
G1 (+)

None*

G1 (+)

The current position is designated as the intermediate point.

Return movement ()

Return movement ()

Valid

G90

Yes (+)

+,

None*Intermediate point

None*Intermediate point

movement (+) Return movement (+) G1 (+)

movement (+) Return movement (+) G1 (+)

Return movement ()

Return movement ()

Yes (no movement amount)

None*

None*
Return movement (+)

G1 (+)

G1 (+)

Return movement (+)

The current position is designated as the intermediate point.

Yes*

None*

G1 (+)

G1 (+)

Return movement ()

Return movement ()

- 77 -

7. Feed Functions

G28 improve- G91/G90 ment Valid G90

Intermediate point command (movement direction) Yes (-)

Return move-me nt direction +, Yes*


1

Deceleration check operation (at block changeover) Remarks G0Ipfg: 1


Return movement (+)

G0Ipfg: 0 None*
1

G1 (+)

G1 (+)

Return movement (+)

Return Return movement () movement () Intermediate point movement () Intermediate point movement ()

None

None*

None*
Return movement (+)

G1 (+)

G1 (+)

Return movement (+)

The zero point is designated as the intermediate point.

Yes*

None*

G1 (+)

G1 (+)

The zero point is designated as the intermediate point.

Return movement ()

Return movement ()

G91

Yes (+)

+,

None*1
Intermediate point movement (+) Return movement (+) G1 (+)

None*1

Intermediate point movement (+) Return movement (+) G1 (+)

Return movement ()

Return movement ()

Yes ()

+,

Yes*

G1 (+)

Return movement (+)

None*

G1 (+)

Return movement (+)

Return Return movement () movement () Intermediate point movement () Intermediate point movement ()

None

None*

None*
Return movement (+)

G1 (+)

G1 (+)

Return movement (+)

0, 0, 0 is designated as the intermediate point.

Yes*

None*

G1 (+)

G1 (+)

0, 0, 0 is designated as the intermediate point.

Return movement ()

Return movement ()

- 78 -

7. Feed Functions

*1: The intermediate point movement is movement with G0, so the same operation as the G0 command takes place. (Only when the movement direction differs, the deceleration check is carried out.) *2: The intermediate point block has no movement, so the movement direction of the intermediate point block is not checked. The validity of the deceleration check is determined by the movement direction during the return movement. In this case (G28 improvement function invalid), the deceleration check does not function from the completion of the G1 movement to the start of the return movement. (It takes approx. several 10ms for the process before the return movement starts.)

G1 Return movement

*3: Described in *2, there is no movement in the intermediate point block, so the movement direction of the intermediate block is not checked. The validity of the deceleration check is determined by the movement direction during the return movement. In this case (G28 improvement function valid), by validating the G28 improvement function, the return operation starts immediately after the G1 operation is completed.

G1 Return movement

- 79 -

7. Feed Functions

7.7.2 G1 G1 deceleration check


(1) In G1 G1 continuous blocks, the parameter G1Ipfg can be changed to change the deceleration check of the reverse direction. Same direction Reverse direction

G1Ipfg: 0 G1 G1 G1 G1

G1Ipfg: 1 G1 G1

G1

G1

Command deceleration (2) Example of program When there is a deceleration check in the movement of several axes: 1) G91 G1 X100. Y100. F4000 ; G1 X-100. Y120. ; A deceleration check is carried out, because the X axis moves in the reverse direction in the program above. 2) G91 G1 X100. Y-100. F4000 ; G1 X80. Y100. ; A deceleration check is carried out, because the Y axis moves in the reverse direction in the program above. 3) G90 G1 X100. Y100. F4000 ; (When the program start position is X0 Y0) G1 X80. Y120. ; A deceleration check is carried out, because the X axis moves in the reverse direction in the program above. 4) G91 G1 X100. Y100. F4000 ; G1 X100. Y100. ; A deceleration check is not carried out, because both the X axis and the Y axis move in the same direction in the program above. 5) G91 G1 X100. Y80. F4000 ; G1 X80. ; A deceleration check is not carried out, because the X axis moves in the same direction, and there is no Y axis movement command in the program above.

- 80 -

7. Feed Functions

7.8 Automatic corner override ; G62


With tool radius compensation, this function reduces the load during inside cutting of automatic corner R, or during inside corner cutting, by automatically applying override to the feed rate. Automatic corner override is valid until the tool radius compensation cancel (G40), exact stop mode (G61), tapping mode (G63), cutting mode (G64), or high-accuracy control mode (G61.1) command is issued. Command format G62 ;

7.8.1 Description of function


(1) Machining inside corners When cutting an inside corner as in Fig. 1, the machining allowance amount increases and a greater load is applied to the tool. To remedy this, override is applied automatically within the corner set range, the feedrate is reduced, the increase in the load is reduced and cutting is performed effectively. However, this function is valid only when finished shapes are programmed.

workpiece Machining allowance

Programmed path (finished shape)

Workpiece surface shape

Tool nose center path Machining allowance Deceleration range Tool

: Ci :

Max. angle at inside corner Deceleration range (IN)

Fig. 1

- 81 -

7. Feed Functions

1)

Operation a. When automatic corner override is not to be applied : When the tool moves in the order of (1) (2) (3) in Fig. 1, the machining allowance at (3) increases by an amount equivalent to the area of shaded section S and so the tool load increases. b. When automatic corner override is to be applied : When the inside corner angle in Fig. 1 is less than the angle set in the parameter, the override set into the parameter is automatically applied in the deceleration range Ci.

2)

Parameter setting The following parameters are set into the machining parameters : a. #8007 OVERRIDE b. #8008 MAX ANGLE c. #8009 DSC ZONE : 0 to 100% : 0 to 180 : 0 to 99999.999mm or 0 to 3937.000 inches

Refer to the Operation Manual for details on the setting method. (2) Automatic corner R
Programmed path Work surface shape Tool nose center path

Workpiece

Machining allowance

Corner R center

Corner R section

Machining allowance

1)

Operation The override set in the parameter is automatically applied at the deceleration range Ci and corner R section for inside offset with automatic corner R. (There is no angle check.)

- 82 -

7. Feed Functions

7.8.2 Application examples


(1) Line line corner
Program Tool center

Tool

The override set in the parameter is applied at Ci. (2) Line arc (outside) corner
Program Tool center

Tool

The override set in the parameter is applied at Ci. (3) Arc (inside offset) line corner

Program

Tool center Tool Tool

The override set in the parameter is applied at Ci. Note) The deceleration range Ci where the override is applied is the length of the arc with an arc command. (4) Arc (inside offset) arc (outside offset) corner

Program

Tool center

The override set in the parameter is applied at Ci.

- 83 -

7. Feed Functions

7.8.3 Relations with other functions


Function Cutting feed override Override cancel Speed clamp Dry run Synchronous feed Thread cutting G31 skip Machine lock Machine lock high speed G00 G01 G02, G03 Override at corner Automatic corner override is applied after cutting feed override has been applied. Automatic corner override is not canceled by override cancel. Valid after automatic corner override Automatic corner override is invalid. Automatic corner override is applied to the synchronous feedrate. Automatic corner override is invalid. Program error results with G31 command during tool radius compensation. Valid Automatic corner override is invalid. Invalid Valid Valid

- 84 -

7. Feed Functions

7.8.4 Precautions
(1) Automatic corner override is valid only in the G01, G02, and G03 modes; it is not effective in the G00 mode. When switching from the G00 mode to the G01 (or G02 or G03) mode at a corner (or vice versa), automatic corner override will not be applied at that corner in the G00 block. (2) Even if the automatic corner override mode is entered, the automatic corner override will not be applied until the tool diameter compensation mode is entered. (3) Automatic corner override will not be applied on a corner where the tool diameter compensation is started or canceled.
Program Tool center Cancel block

Start-up block

Automatic corner override will not be applied

(4) Automatic corner override will not be applied on a corner where the tool diameter compensation I, J (K) vector command is issued.
Program

Tool center Block containing I, J vector command Automatic corner override will not be applied

(5) Automatic corner override will not be applied when intersection calculation cannot be executed. Intersection calculation cannot be executed in the following case. 1) When the movement command block does not continue for four or more times.

(6) The deceleration range with an arc command is the length of the arc. (7) The inside corner angle, as set by parameter, is the angle on the programmed path. (8) Automatic corner override will not be applied when the maximum angle in the parameter is set to 0 or 180. (9) Automatic corner override will not be applied when the override in the parameter is set to 0 or 100.

- 85 -

7. Feed Functions

7.9 Tapping mode ; G63


(1) Function and objective The G63 command allows the control mode best suited for tapping to be entered, as indicated below : 1) 2) 3) 4) 5) Cutting override is fixed at 100%. Deceleration commands at joints between blocks are invalid. Feed hold is invalid. Single block is invalid. In-tapping mode signal is output.

G63 is released by the exact stop mode (G61), automatic corner override (G62), or cutting mode (G64), or high-accuracy control mode (G61.1) command. (2) Command format G63 ;

7.10 Cutting mode ; G64


(1) Function and objective The G64 command allows the cutting mode in which smooth cutting surfaces are obtained to be established. Unlike the exact stop check mode (G61), the next block is executed continuously with the machine not decelerating and stopping between cutting feed blocks in this mode. G64 is released by the exact stop mode (G61), automatic corner override (G62), or tapping mode (G63), or high-accuracy control mode (G61.1) command. This cutting mode is established in the initialized status. (2) Command format G64 ;

- 86 -

8. Dwell

8. Dwell
The G04 command can delay the start of the next block. The dwell remaining time can be canceled by adding the multistep skip function.

8.1 Per-second dwell ; G04


(1) Function and objective The execution of the next block will be waited for the designated time. (2) Command format G04 X__; or G04 P__; Command unit : 0.001 s Decimal point commands are invalid for address P and if such commands are assigned, everything following the decimal point will be ignored. (3) Detailed description 1) The table below lists the dwell time. Input setting unit 0.01/0.001mm 0.0001inch 2) Command range based on address X 0.001 ~ 99999.999 (s) 0.001 ~ 99999.999 (s) Command range based on address P 1 ~ 99999999 (s) (0.001 s) 1 ~ 99999999 (s) (0.001 s)

When a cutting command is in the previous block, the dwell command starts calculating the dwell time after the machine has decelerated and stopped. When it is commanded in the same block as an M, S, T or B command, the calculation starts simultaneously. The dwell function is valid during interlock. Dwell is valid even for machine lock.

3) 4)

Previous block cutting command Next block

Dwell command Dwell time (5 sec.) )

- 87 -

8. Dwell

(4) Examples of programs 1) When input setting unit is 0.01mm, 0.001mm or 0.0001inch (Example 1) G04 X 500 ; ........... 0.5 s dwell time (Example 2) G04 X 5000 ; ......... 5 s dwell time (Example 3) G04 X 5. ;............... 5 s dwell time (Example 4) G04 P 5000 ;.......... 5 s dwell time (Example 5) G04 P 12.345 ;....... 0.012 s dwell time 12.345 s when [G04P decimal point valid] When the time designation has been inserted prior to G04 with an input setting unit of 0.001 inch : (Example 6) X5. G04 ;................ 50 s dwell time (this is equivalent to X50000G04)

2)

- 88 -

9. Miscellaneous Functions

9. Miscellaneous Functions
9.1 Miscellaneous functions (M8-digits BCD)
The miscellaneous (M) functions are also known as auxiliary functions, and they include such numerically controlled machine functions as spindle forward and reverse rotation, operation stop and coolant ON/OFF. These functions are designated by an 8-digit number (0 to 99999999) following the address M with this controller, and up to 4 groups can be commanded in a single block. (Example) G00 Xx Mm1 Mm2 Mm3 Mm4 ; When five or more commands are issued, only the last four will be valid. The output signal is an 8-digit BCD code and start signal. The six commands of M00, M01, M02, M30 M98 and M99 are used as auxiliary commands for specific objectives and so they cannot be used as general auxiliary commands. This therefore leaves 94 miscellaneous functions which are usable as such commands. Reference should be made to the instructions issued by the machine manufacturer for the actual correspondence between the functions and numerical values. When the M00, M01, M02, and M30 functions are used, the next block is not read into the pre-read buffer due to pre-read inhibiting. An M function can be specified together with other commands in the same block, and when such a function is specified together with a movement command in the same block, there are two possible sequences in which the commands are executed : (a) The M function is executed after the movement command. (b) The M function is executed at the same time as the movement command. Which of these sequences actually applies depends on the machine specifications. Processing and completion sequences are required in each case for all M commands except M98 and M99. The 6M functions used for specific purposes will now be described. (1) Program stop : M00 When the tape reader has read this function, it stops reading the next block. As far as the NC system's functions are concerned, only the tape reading is stopped. Whether such machine functions as the spindle rotation and coolant supply are stopped or not differs according to the machine in question. Re-start is enabled by pressing the automatic start button on the machine operation board. Whether resetting can be initiated by M00 depends on the machine specifications. (2) Optional stop : M01 If the tape reader reads the M01 command when the optional stop switch on the machine operation board is ON, it will stop and the same effect as with the M00 function will apply. If the optional stop switch is OFF, the M01 command is ignored. (Example)

N10 G00 X1000 ; N11 M01 ; N12 G01 X2000 Z3000 F600 ;

Optional stop switch status and operation Stops at N11 when switch is ON Next command (N12) is executed without stopping at N11 when switch is OFF

- 89 -

9. Miscellaneous Functions

(3) Program end : M02 or M30 This command is normally used in the final block for completing the machining, and so it is primarily used for tape rewinding. Whether the tape is actually rewound or not depends on the machine specifications. Depending on the machine specifications, the system is reset by the M02 or M30 command upon completion of tape rewinding and any other commands issued in the same block. (Although the contents of the command position display counter are not cleared by this reset action, the modal commands and compensation amounts are canceled.) The next operation stops when the rewinding operation is completed (the in-automatic operation lamp goes off). To restart the unit, the automatic start button must be pressed or similar steps must be taken. When the program is restarted after M02 and M30 are completed, if the first movement command is designated only with a coordinate word, the interpolation mode will function when the program ends. It is recommended that a G function always be designated for the movement command designated first. Note 1) Independent signals are also output respectively for the M00, M01, M02 and M30 commands and these outputs are each reset by pressing the reset key. Note 2) M02 or M30 can be assigned by manual data input (MDI). At this time, commands can be issued simultaneously with other commands just as with the tape. (4) Subprogram call/completion : M98, M99 These commands are used as the return instructions from branch destination subprograms and branches to subprograms. M98 and M99 are processed internally and so M code signals and strobe signals are not output. (5) Internal processing with M00/M01/M02/M30 commands Internal processing suspends pre-reading when the M00, M01, M02 or M30 command has been read. Other tape rewinding operations and the initialization of modals by resetting differ according the machine specifications.

- 90 -

9. Miscellaneous Functions

9.2 Secondary miscellaneous functions (B8-digits, A8 or C8-digits)


These serve to assign the indexing table positioning and other such functions. In this controller, they are assigned by an 8-digit number from 0 to 99999999 following address A, B or C. The machine maker determines which codes correspond to which positions. The output signals are a BCD signal(8-digit) for the commanded value and a start signal. The A, B and C functions can be assigned simultaneously with any other commands but when they are in the same block as movement commands, there are 2 sequences in which the commands are executed, as below : a. The A, B or C function is executed after the movement command. b. The A, B or C function is executed simultaneously with the movement command. The machine specifications determine which sequence applies. Processing and completion sequences are required for all secondary miscellaneous functions. The table below given the various address combinations. It is not possible to use an address which is the same for the axis name of an additional axis and secondary miscellaneous function. Additional axis name Secondary miscellaneous function A B C Note) A

When A has been assigned as the secondary miscellaneous function address, the following commands cannot be used. 1) Linear angle commands 2) Geometric commands

- 91 -

10. Spindle Functions

10. Spindle Functions


10.1 Spindle functions (S2-digits BCD) ..... During standard PLC specifications
The spindle functions are also known simply as S functions and they assign the spindle speed. In this controller, they are assigned with a 2-digit number following the address S ranging from 0 to 99, and 100 commands can be specified. In actual fact, however, it depends on the machine specifications as to how many of these 100 functions are used and which numbers correspond to which functions, and thus reference should be made to the instruction issued by the machine manufacturer. When a number exceeding 2 digits is assigned, the last 2 digits will be valid. The S functions can be assigned simultaneously with any other commands but when they are in the same block as movement commands, there are 2 sequences in which the commands are executed, as below : a. The S function is executed after the movement command. b. The S function is executed simultaneously with the movement command. The machine specifications determine which sequence applies. Processing and completion sequences are required for all S commands from S00 through S99.

10.2 Spindle functions (S6-digits Analog)


When the S6-digit functions are added, these functions can be assigned from S0 through S999999, and the other functions are based on the S2-digit codes. By assigning a 6-digit number following the S code, these functions enable the appropriate gear signals, voltages corresponding tot he commanded spindle speed (r/min) and start signals to be output. If the gear step is changed manually other than when the S command is being executed, the voltage will be obtained from the set speed at that gear step and the previously commanded speed, and then will be output. The analog signal specifications are given below. (1) Output voltage......................... 0 to 10V (2) Resolution ............................... 1/4096 (212) (3) Load conditions ....................... 10k (4) Output impedance................... 220 If the parameters for up to 4 gear stages are set in advance, the gear stage corresponding to the S command will be selected and the gear signal will be output. The analog voltage is calculated in accordance with the input gear signal. (1) Parameters corresponding to individual gears ................ Limit speed, maximum speed, gear shift speed, orientation speed and maximum speed during tapping. (2) Parameters corresponding to all gears............................ Minimum speed

10.3 Spindle functions (S8-digits)


These functions are assigned with an 8-digit (0 ~ 99999999) number following the address S, and one group can be assigned in one block. The output signal is a 32-bit binary data with sign and start signal. Processing and completion sequences are required for all S commands.

- 92 -

10. Spindle Functions

10.4 Constant surface speed control; G96, G97


10.4.1 Constant surface speed control
These commands automatically control the spindle speed in line with the changes in the radius coordinate values as cutting proceeds in the diametrical direction, and they serve to keep the cutting point speed constant during the cutting. G96Ss Pp ; Constant surface speed ON Assignment of constant surface speed control axis Peripheral speed G97 ; Constant surface speed cancel

Detailed description 1) The constant surface speed control axis is set by parameter (#1181 G96_ax). 0 : Fixed at 1st axis (P command invalid) 1 : 1st axis 2 : 2nd axis 3 : 3rd axis When the above-mentioned parameter is not zero, the constant surface speed control axis can be assigned by address P. Example : With G96_ax (1) Program G96 S100 ; G96 S100 P3 ; 3) Example of selection program and operation G90G96G01X50. Z100. S200 ; G97G01X50. Z100. F300S500 ; The spindle speed is controlled to 500r/min. The modal returns to the initial setting. M02 ; The spindle speed is controlled so that the peripheral speed is 200m/min. Constant surface speed control axis 1st axis 3rd axis

2)

10.4.2 Spindle clamp speed setting; G92


The maximum clamp speed of the spindle can be assigned by address S following G92 and the minimum clamp speed by address Q. G92Ss Qq ; Minimum clamp speed Maximum clamp speed Besides this command, parameters can be used to set the rotational speed range up to 4 stages in 1 r/min units to accommodate gear selection between the spindle and spindle motor. The lowest upper limit and highest lower limit are valid among the rotational speed ranges based on the parameters and based on G92 Ss Qq ; - 93 -

~ ~

10. Spindle Functions

Set in the parameter whether to carry out rotation speed clamp only in the constant surface speed mode or even when the constant surface speed is canceled. (Note) G92S command and speed clamp operation
Sclamp = 0 aux11/bit5 = 0 In G96 Command In G97 In G96 Operation In G97 NO SPEED CLAMP SPINDLE SPEED COMMAND SPEED CLAMP EXECUTION aux11/bit5 = 1 SPEED CLAMP COMMAND SPEED CLAMP COMMAND SPEED CLAMP COMMAND SPEED CLAMP EXECUTION SPEED CLAMP EXECUTION Sclamp = 1 aux11/bit5 = 0 aux11/bit5 = 1 SPEED CLAMP COMMAND SPEED CLAMP COMMAND SPEED CLAMP EXECUTION NO SPEED CLAMP

- 94 -

10. Spindle Functions

10.5 Spindle/C axis control


(1) Outline This function enables one spindle (MDS-A/B-SP and later) to also be used as a C axis (rotation axis) by an external signal. (2) Detailed description 1) Spindle/C axis changeover Changeover between the spindle and C axis is done by the C axis SERVO ON signal.
Spindle Servo ON At servo OFF ---------- Spindle (C axis control not possible) The C axis is in a reference point return incomplete state. At servo ON ----------- C axis (spindle control not possible) The C axis is in a reference point return incomplete state. A reference point return (orientation) is carried out at the rising edge of the SERVO ON signal by the parameter setting. C axis Spindle

2)

Changeover timing chart example


Spindle forward run

Orientation

Motor speed

C axis movement

Orientation

Reference point return complete

Spindle reverse run

Reference point return complete

Servo ON Servo READY Spindle forward run/ reverse run start C axis command (automatic operation) Reference point return complete status Blocks being executed Recalculation request Blocks being calculated Servo ON C axis command 1 Forward run Reverse run

Spindle forward run

Servo ON

Servo OFF C axis command

Spindle reverse run

Servo ON

2
C axis command

Servo OFF C axis command recalculation


Reference point return complete at recalculation

Program error because the reference point return is incomplete at this calculation.

Servo ON Spindle reverse run

2 Program error (P430 AXIS NOT RET.)

(Note)

For axis commands, the reference point return complete is checked at calculation. Thus, when the C axis servo ON command and C axis command are continuous, the program error "P430 AXIS NOT RET." will occur as shown above in 2. In response to this kind of situation, the following two processes must be carried out on user PC, as shown above in 1. 1) Input the recalculation request signal with a servo ON command. 2) Wait for the completion of the servo ON command until the C axis enters a servo READY state.

- 95 -

10. Spindle Functions

3) C axis gain The C axis gain is changed over (the optimum gain is selected) by the C axis cutting condition. During C axis cutting feed, cutting gain is applied. During other axis' cutting feed (C axis face turning), non-cutting stop gain is applied. Non-cutting gain is applied in all other cases.
Non-cutting gain

Selected gain C axis command X axis command (C axis system) Z axis command (other system)

Non-cutting gain

Cutting gain

Cutting stop gain

Non-cutting gain

G0 G0 G1

G1 G1 G0

G0

G1

(Note 1) The cutting feed of other systems does not affect the C axis gain selection. (Note 2) There are 1st to 3rd cutting gains, which are selected with the ladder. (3) Precautions and Restrictions 1) A reference point return cannot be executed by the orientation when there is no Z phase in the detector (PLG, ENC, other). Replace the detector with one having a Z phase, or if using the detector as it is, set the position control changeover to "After deceleration stop" in the parameters (Spindle parameters, SP129 bitE: 1), and set the axis to "Axis without zero point" (Zero point return parameters, noref: 1). 2) The program error "P430 AXIS NOT RET." will occur if a C axis command is issued during servo OFF or during orientation. 3) Do not execute a servo OFF during a C axis command. The remaining C axis commands will be cleared at servo ON. (If servo OFF is executed during C axis control, the feed will stop and spindle control will occur.) 4) If servo ON is executed during spindle rotation, the rotation will stop and C axis control will occur. 5) Dog-type reference point return are not possible for the C axis. Set the reference point return to the orientation method in the parameters (Spindle parameters, SP129 bitE: 0), or set the axis to "Axis without zero point" (Zero point return parameters, noref: 1).

- 96 -

11. Tool Functions

11. Tool Functions


11.1 Tool functions (T8-digit BCD)
The tool functions are also known simply as T functions and they assign the tool numbers and tool offset number. They are designated with a 8-digit number following the address T, and one set can be commanded in one block. the output signal is an 8-digit BCD signal and start signal. The T functions can be assigned simultaneously with any other commands but when they are in the same block as movement commands, there are 2 sequences in which the commands are executed, as below : a. The T function is executed after the movement command. b. The T function is executed simultaneously with the movement command. the machine specifications determine which sequence applies. Processing and completion sequences are required for all T commands.

- 97 -

12. Tool Offset Functions

12. Tool Offset Functions


12.1 Tool offset
12.1.1 Outline
The basic tool offset function includes the tool length offset and tool diameter compensation. Each offset amount is designated with the tool offset No. Each offset amount is input from the setting and display unit or the program.

Reference point Tool length

Tool length offset

(Side view)

Tool diameter compensation

Right compensation (Plane view) Left compensation

- 98 -

12. Tool Offset Functions

12.1.2 Tool offset amount designation method


The offset amount is preset into the offset memory by the setting and display unit to correspond to the offset No. Type 1 is selected when parameter #1037 cmdtyp is set to "1", and type 2 is selected when set to "2". Type 1 The same offset amount is applied for the same No. is used for the H command and D command. (Dn) = an (Hn) = an
Reference point

Type 2 The H command selects the total of the shape offset amount and wear offset amount for the tool length, and the D command selects the total of the shape offset amount and wear offset amount for the tool diameter. (Hn) = bn + cn (Dn) = dn + en
Reference point

CCAUTION
If the tool offset amount is changed during automatic operation (including during single block stop), it will be validated from the next block or blocks onwards.

- 99 -

12. Tool Offset Functions

12.1.3 Tool offset memory


There are two types of tool offset memories for setting and selecting the tool offset amount. (The type used is determined by the machine maker specifications.) The offset amount or offset amount settings are preset with the setting and display unit. Type of tool offset memory Type 1 Type 2 Classification of length offset, diameter compensation Not applied Applied
Reference point Reference tool Shape Tool length offset

Classification of shape offset, wear compensation Not applied Applied

Wear amount

Shape
Tool diameter compensation

Wear amount

- 100 -

12. Tool Offset Functions

Type 1 One offset amount corresponds to one offset No. as shown on the right. Thus, these can be used commonly regardless of the tool length offset amount, tool diameter offset amount, shape offset amount and wear offset amount. (D1) = a1 , (H1) = a1 (D2) = a2 , (H2) = a2 : : (Dn) = an , (Hn) = an Type 2 The shape offset amount related to the tool length, wear offset amount, shape offset related to the tool diameter and the wear offset amount can be set independently for one offset No. as shown below. The tool length offset amount is set with H, and the tool diameter offset amount with D. (H1) = b1 + c1, (D1) = d1 + e1 (H2) = b2 + c2, (D2) = d2 + e2 : : (Hn) = bn + cn, (Dn) = dn + en Offset No. 1 2 3 n Tool length (H) Shape offset amount b1 b2 b3 bn Wear offset amount c1 c2 c3 cn Tool diameter(D)/ (Position offset) Shape offset Wear offset amount amount d1 e1 d2 d3 dn e2 e3 en Offset No. 1 2 3 n Offset amount a1 a2 a3 an

- 101 -

12. Tool Offset Functions

12.1.4 Tool offset No. (H/D)


This address designates the tool offset No. 1) H is used for the tool length offset, and D is used for the tool position offset and tool diameter offset. 2) The tool offset No. that is designated once does not change until a new H or D is designated. 3) The offset No. can be commanded once in each block. (If two or more Nos. are commanded, the latter one will be valid.) 4) The No. of offset sets that can be used will differ according to the machine. For 40 sets: Designate with the H01 to H40 (D01 to D40) numbers. 5) If a value larger than this is set, the program error "P170" will occur. 6) The setting value ranges are as follows for each No. The offset amount for each offset No. is preset with the setting and display unit. Input setting unit #1015 cunit=100 #1015 cunit=10 Shape offset amount Metric system 99999.99mm 9999.999mm Inch system 9999.999 inch 999.9999 inch Wear offset amount Metric system 9999.99 mm 999.999 mm Inch system 999.999 inch 99.9999 inch

- 102 -

12. Tool Offset Functions

12.2 Tool length offset/cancel; G43, G44/G49


(1) Function and objective The end position of the movement command can be offset by the preset amount when this command is used. A continuity can be applied to the program by setting the actual deviation from the tool length value decided during programming as the offset amount using this function. (2) Command format When tool length offset is + G43ZzHh ; Tool length offset + start : G49Zz ; Tool length offset cancel When tool length offset is G44 ZzHh ; Tool length offset start : G49 Zz ;

(3) Detailed description (3.1) Tool length offset movement amount The movement amount is calculated with the following expressions when the G43 or G44 tool length offset command or G49 tool length offset cancel command is issued. G43 Zz Hn1 ; G44 Zz Hh1 ; G49 Zz ; Z axis movement amount z + (l h1) Offset in + direction by tool offset amount z (l h1) Offset in direction by tool offset amount z (+) (l h1) Offset amount cancel. l h1 : Offset amount for offset No. h1

Regardless of the absolute value command or incremental value command, the actual end point will be the point offset by the offset amount designated for the programmed movement command end point coordinate value. The G49 (tool length offset cancel) mode is entered when the power is turned ON or when M02 has been executed. (Example 1) For absolute value command H01 = 100000 N1 N2 N3 N4 G28 G90 G43 G01 Z0 T01 M06 ; G92 Z0 ; Z5000 H01 ; Z-50000 F500 ;

Tool length offset

(Example 2) For incremental value command H01 = 100000 N1 N2 N3 N4 G28 G91 G43 G01 Z0 T01 M06 ; G92 Z0 ; Z5000 H01 ; Z-55000 F500 ;
Workpiece

- 103 -

12. Tool Offset Functions

(3.2) Offset No. 1) The offset amount differs according to the compensation type. Type 1 G43 Hh1 ; When the above is commanded, the offset amount l h1 commanded with offset No. h1 will be applied commonly regardless of the tool length offset amount, tool diameter offset amount, shape offset amount or wear offset amount.

l h1
Workpiece Table

Type 2 G43 Hh1 ; When the above is commanded, the offset amount l h1 commanded with offset No. h1 will be as follows. l h1: Shape offset (Note) + wear offset amount

Wear compensation amount

l h1

Shape offset Workpiece Table

2) The valid range of the offset No. will differ according to the specifications (No. of offset sets). 3) If the commanded offset No. exceeds the specification range, the program error "P170" will occur. 4) Tool length cancel will be applied when H0 is designated. 5) The offset No. commanded in the same block as G43 or G44 will be valid for the following modals. (Example 3) G43 Zz1 : G45 Xx1 : G49 Zz2 : G43 Zz2

Hh1 ;.............. Tool length offset is executed with h1. Yy1 Hh6 ; ; ..................... The tool length offset is canceled. ; ..................... Tool length offset is executed again with h1.

6) If G43 is commanded in the G43 modal, an offset of the difference between the offset No. data will be executed. (Example 4) G43 Zz1 Hh1 ; .............. Becomes the z1 + (l h1) movement. : G43 Zz2 Hh2 ; .............. Becomes the z2 + (l h2 - lh1) movement. : The same applies for the G44 command in the G44 modal.

- 104 -

12. Tool Offset Functions

(3.3) Axis valid for tool length offset 1) When parameter #1080 Dril_Z is set to "1", the tool length offset is always applied on the Z axis. 2) When parameter #1080 Dril_Z is set to "0", the axis will depend on the axis address commanded in the same block as G43. The order of priority is shown below. Zp > Yp > Xp (Example 5) G43 Xx1 Hh1 ; .............. : G49 Xx2 ; G44 Yy1 Hh2 ; .............. : G49 Yy2 ; G43 1 Hh3 ; .............. : G49 1 ; G43 Xx3 Yy3 Zz3 ;....... : G49 ; + offset to X axis offset to Y axis + offset to additional offset Offset is applied on Z axis

The handling of the additional axis will follow the parameters #1029 to 1031 aux_I, J and K settings. If the tool length offset is commanded for the rotary axis, set the rotary axis name for one of the parallel axes. 3) If H (offset No.) is not designated in the same block as G43, the Z axis will be valid. (Example 6) G43 Hh1 ;....................... Offset and cancel to X axis : G49 ; (3.4) Movement during other commands in tool length offset modal 1) If reference point return is executed with G28 and manual operation, the tool length offset will be canceled when the reference point return is completed. (Example 7) G43 Zz1 : G28 Zz2 : G43 Zz2 : G49 G28

Hh1 ; ; ..................... Canceled when reference point is reached. Hh2 ; (Same as G49)

Zz2 ; ............. After the Z axis is canceled, reference point return is executed.

2) The movement is commanded to the G53 machine coordinate system, the axis will move to the machine position when the tool offset amount is canceled. When the G54 to G49 workpiece coordinate system is returned to, the position returned to will be the coordinates shifted by the tool offset amount.

- 105 -

12. Tool Offset Functions

12.3 Tool radius compensation


12.3.1 Outline
(1) Function and objective This function compensates the radius of the tool. The compensation can be done in the random vector direction by the radius amount of the tool selected with the G command (G38 to G42) and the D command. (2) Command format Command format G40X___Y___ ; G41X___Y___ ; G42X___Y___ ; G38I___J___ ; G39X___Y___ ; Function Tool radius compensation cancel Tool radius compensation (left) Tool radius compensation (right) Change or hold of compensation vector Corner changeover Can be commanded only during the radius compensation mode. Remarks

(3) Detailed description The No. of compensation sets will differ according to the machine model. (The No. of sets is the total of the tool length offset, tool position offset and tool radius compensation sets.) The H command is ignored during the tool radius compensation, and only the D command is valid. The compensation will be executed within the plane designated with the plane selection G code or axis address 2 axis, and axes other than those included in the designated plane and the axes parallel to the designated plane will not be affected. Refer to the section on plane selection for details on selecting the plane with the G code.

- 106 -

12. Tool Offset Functions

12.3.2 Tool radius compensation operation


(1) Tool radius compensation cancel mode The tool radius compensation cancel mode is established by any of the following conditions. 1) 2) 3) 4) After the power has been switched on After the reset button on the setting and display unit has been pressed After the M02 or M30 command with reset function has been executed After the tool radius compensation cancel command (G40) has been executed

The offset vectors are zero in the compensation cancel mode, and the tool nose point path coincides with the programmed path. Programs including tool radius compensation must be terminated in the compensation cancel mode. (2) Tool radius compensation start (start-up) Tool radius compensation starts when all the following conditions are met in the compensation cancel mode. 1) The G41or G42 command has been issued. 2) The tool radius compensation offset No. is 0 < D max. offset No. 3) The movement command is any command except a circular command. At the start of compensation, the operation is executed after at least three movement command blocks (if three movement command blocks are not available, after five movement command blocks) have been read regardless of the continuous operation or single block operation. During compensation, 5 blocks are pre-read and the compensation is arithmetically processed.
Control mode transition diagram

Machining program
Start of pre-reading 5 blocks

Pre-read buffer

Execution block

There are two ways of starting the compensation operation: type A and type B. The type can be selected with bit 2 of parameter #1229 set 01. This type is used in common with the compensation cancel type. In the following explanatory figure, "S" denotes the single block stop point.

- 107 -

12. Tool Offset Functions

(3) Start of movement for tool radius compensation 1) For inner side of corner Linear linear Linear circular

Programmed path

r = Compensation amount
Tool center path

Programmed path

Tool center path Start point Start point Center of arc

2)

For outer side of corner (obtuse angle) [900<180] Linear linear (type A)
Tool center path r = Compensation amount Programmed path

Linear circular (type A)


Tool center path

Start point Start point Center of arc

Programmed path

Linear linear (type B)

Linear circular (type B)


Point of intersection

Point of intersection Tool center path

Tool center path

Programmed path

Start point Start point

Center of arc

Programmed path

- 108 -

12. Tool Offset Functions

3)

For outer side of corner (obtuse angle) [0<90] Linear linear (type A)
Center of arc Tool center path Tool center path Programmed path

Linear circular (type A)

Programmed path

Start point

Start point

Linear linear (type B)

Linear circular (type B)


Center of arc Tool center path

Tool center path

Programmed path

Programmed path

Start point

Start point

- 109 -

12. Tool Offset Functions

(4) Operation in compensation mode Compensation is valid both for positioning and for interpolation commands such as circular and linear interpolation. Even if the same compensation command (G41, G42) is issued in the compensation mode, the command will be ignored. When 4 or more blocks not accompanying movement are commanded continuously in the compensation mode, overcutting or undercutting will result. 1) Machining an outer wall Linear linear (90<180) Linear linear (0<<90)

Tool center path

Programmed path Programmed path

Point of intersection

Tool center path

Linear circular (90180)

Linear circular (0<<90)


Tool center path

Programmed path

Programmed path

Tool center path Center of arc Center of arc

Circular linear (90<180)


Center of arc

Circular linear (0<<90)

Programmed path Programmed path

Tool center path Point of intersection

Tool center path

Center of arc

- 110 -

12. Tool Offset Functions

Circular circular (90<180)


Center of arc Programmed path

Circular circular (0<<90)

Programmed path

Point of intersection Center of arc

Tool center path Center of arc

Tool center path

Center of arc

2)

Machining an inner wall Linear linear (obtuse angle) Linear linear (obtuse angle)

Programmed path Programmed path Tool center path Point of intersection Tool center path

Linear circular (obtuse angle)

Linear circular (obtuse angle)

Programmed path Programmed path Tool center path


Point of intersection

Center of arc

Tool center path

Point of intersection

Center of arc

Circular linear (obtuse angle)

Circular linear (obtuse angle)

Programmed path

Center of arc Programmed path

Point of intersection

Tool center path

Point of intersection

Tool center path

Center of arc

- 111 -

12. Tool Offset Functions

Circular linear (obtuse angle)

Circular linear (acute angle)


Center of arc

Point of intersection

Tool center path Center of arc Tool center path

Point of intersection

Programmed path Center of arc

Center of arc Programmed path

3)

When the arc end point is not on the arc For spiral arc ................................ A spiral arc will be interpolated from the start to end point of the arc. For normal arc command............. If the error after compensation is within parameter #1084 RadErr, the area from the arc start point to the end point is interpolated as a spiral arc.

Hypothetical circle Tool center path Programmed path End point of arc

Center of arc

4)

When the inner intersection point does not exist In an instance such as that shown in the figure below, the intersection point of arcs A and B may cease to exist due to the offset amount. In such cases, program error "P152" appears and the tool stops at the end point of the previous block.
Tool center path Program error stop Center of arc A

Programmed path

Line intersecting arcs A, B

- 112 -

12. Tool Offset Functions

(5) Tool radius compensation cancel If either of the following conditions is met in the tool radius compensation mode, the compensation will be canceled. However, the movement command must be a command which is not a circular command. If the compensation is canceled by a circular command, program error "P151" results. 1) The G40 command has been executed. 2) The D00 tool number has been executed. The cancel mode is established once the compensation cancel command has been read, 5-block pre-reading is suspended an 1-block pre-reading is made operational. (6) Tool radius compensation cancel operation 1) For inner side of corner Linear linear
Programmed path r = Compensation amount Tool center path Programmed path

Circular linear

End point End point

Tool center path Center of arc

2)

For outer side of corner (obtuse angle) Linear linear (type A)


Tool center path r = Compensation amount Programmed path

Circular linear (type A)


Tool center path

End point End point

Center of arc

Programmed path

Linear linear (type B)


Point of intersection Tool center path

Circular linear (type B)


Point of intersection Tool center path

Programmed path

Programmed path End point End point Center of arc

- 113 -

12. Tool Offset Functions

3)

For outer side of corner (acute angle) Linear linear (type A) Circular linear (type A)
Center of arc Tool center path Tool center path Programmed path Programmed path Center of arc

End point End point

Linear linear (type B)

Circular linear (type B)


Center of arc

Tool center path Tool center path

Programmed path

Programmed path

End point

End point

- 114 -

12. Tool Offset Functions

12.3.3 Other operations during tool radius compensation


(1) Insertion of corner arc An arc that uses the compensation amount as the radius is inserted without calculating the point of intersection at the workpiece corner when G39 (corner arc) is commanded.
Point of intersection

Inserted arc

Tool center path r = Compensation amount Programmed path

Inserted arc

Programmed path
r = Compensation amount

Tool center path


Point of intersection

(With G39 command)

(No G39 command)

(With G39 command)

(No G39 command)

For outer side compensation

For inner side compensation

Tool center path Programmed path

N1 G28X0Y0 ; N2 G91G01G42X20.Y20.D1F100 ; N3 G39X40. ; N4 G39Y40. ; N5 G39X-40. ; N6 Y-40. ; N7 G40X-20.Y-20. ; N8 M02 ;

(2) Changing and holding of compensation vector The compensation vector can be changed or held during tool diameter compensation by using the G38 command. 1) Holding of vector: When G38 is commanded in a block having a movement command, the point of intersection will not be calculated at the program end point, and instead the vector of the previous block will be held. G38 Xx Yy ; This can be used for pick feed, etc. 2) Changing of vector: A new compensation vector direction can be commanded with I, J and K, and a new offset amount with D. (These can be commanded in the same block as the movement command.) G38 Ii Jj Dd ; (I, J and K will differ according to the selected plane.) - 115 -

12. Tool Offset Functions

Tool center path

Programmed path

Vector hold

Vector change

(3) Changing the compensation direction during tool diameter compensation The compensation direction is determined by the tool diameter compensation commands (G41, G42) and compensation amount sign.
Compensation amount sign

G code G41 G42

+ Left-hand compensation Right-hand compensation

Right-hand compensation Left-hand compensation

The compensation direction can be changed by changing the compensation command in the compensation mode without the compensation having to be first canceled. However, no change is possible in the compensation start block and the following block. Refer to section 12.3.6 "Precautions for tool diameter compensation" for the movement when the symbol is changed. Linear linear
Tool center path Point of intersection

Programmed path

If there is no point of intersection when the compensation direction is changed.

- 116 -

12. Tool Offset Functions

Linear circular

Programmed path

Tool center path

Linear return
Tool center path

Programmed path

Arc exceeding 360 due to compensation

Programmed path Tool center path

In the case below, it is possible that the arc may exceed 360 a. with offset direction selection based on G41/G42 b. I, J, K was commanded in G40. In cases like this the tool center path will pass through a section where the arc is doubled due to the compensation and a section will be left uncut.

Uncut section

- 117 -

12. Tool Offset Functions

(4) Command for eliminating offset vectors temporarily When the following command is issued in the compensation mode, the offset vectors are temporarily eliminated and a return is then made automatically to the compensation mode. In this case, the compensation is not canceled, and the tool goes directly from the intersection point vector to the point without vectors or, in other words, to the programmed command point. When a return is made to the compensation mode, it goes directly to the intersection point. 1) Reference point return command

Intermediate point

(G41) N5 G91 G01 X60. N6 G28 X50. N7 X30. N8 X70.

Y30. Y 40. Y 60. Y40.

; ; ; ;

Temporarily no compensation vectors at intermediate point. (Reference point when there is no intermediate point)

2)

G33 thread cutting command Tool nose radius compensation does not apply to the G33 block.

Point of intersection Tool center path

Programmed path

3)

The compensation vector will be eliminated temporarily with the G53 command (basic machine coordinate system selection).

Note 1) The offset vectors do not change with the coordinate system setting (G92) command.

- 118 -

12. Tool Offset Functions

(5) Blocks without movement and pre-read inhibit M command The following blocks are known as blocks without movement. a. b. c. d. e. f. g. h. i. j. M03 ; .................................. S12 ; ................................... T45 ; ................................... G04X500 ; .......................... G22X200. Y150. Z100 ; ..... G10L10P01R50 ; ............... G92X600. Y400. Z500. ; .... (G17) Z40. ; ....................... G90 ; .................................. G91X0 ; .............................. M command S command T command Dwell No movement Machining inhibit region setting Offset amount setting Coordinate system setting Movement but not on offset plane G code only Zero movement amount ..... Movement amount is zero

M00, M01, M02 and M30 are handled as pre-read inhibit M codes. 1) When command is assigned at start of the compensation Perpendicular compensation will be applied on the next movement block.

N1 N2 N3 N4

X30. Y60. ; Block without G41 D10 ; movement X20. Y 50. ; X50. Y 20. ;

If four or more blocks containing no move command continue or if there is a pre-read inhibit M code, no compensation vector is generated. N1 N2 N3 N4 N5 N6 N7 N8 X30. Y60. ; G41 D10 ; G4 X1000 ; Block without F100 ; movement S500 ; M3 ; X20. Y 50. ; X50. Y 20. ;

- 119 -

12. Tool Offset Functions

N1 N2 N3 N4 N5 N6 N7

G41 X30. Y60. D10 ; G4 X1000 ; F100 ; Block without movement S500 ; M3 ; X20. Y 50. ; X50. Y 20. ;

Point of intersection

2)

When command is assigned in the compensation mode When 4 or more blocks without movement follow in succession in the compensation mode or when there is no pre-read inhibit M code, the intersection point vectors will be created as usual.

N6 G91X100. Y200. ; N7 G04X P1000 ; N8 X200. ;

Block without movement

When 4 or more blocks without movement follow in succession or if there is a pre-read inhibit M code, the offset vectors are created perpendicularly at the end point of the previous block.

N6 X100. Y200. ; N7 G4 X1000 ; N8 F100 ; Block without N9 S500 ; movement N10 M4 ; N11 W100. ; In this case, a cut results.

- 120 -

12. Tool Offset Functions

3)

When commanded together with compensation cancel

N6 X100. Y200. ; N7 G40 M5 ; N8 X100. Y50. ;

(6) When I, J, K are commanded in G40 1) If the final movement command block in the four blocks before the G40 block is the G41 or G42 mode, it will be assumed that the movement is commanded in the vector I, J or K direction from the end point of the final movement command. After interpolating between the hypothetical tool center path and point of intersection, it will be canceled. The compensation direction will not change.
Hypothetical tool center path

N1 (G41) G1 X__ ;
Tool center path

N2 G40XaYbIiJj ;

Programmed path

In this case, the point of intersection will always be obtained, regardless of the compensation direction, even when the commanded vector is incorrect as shown below.

Tool center path

Programmed path

When the I and j symbols in the above program example are incorrect

Hypothetical tool center path

- 121 -

12. Tool Offset Functions

If the compensation vector obtained with point of intersection calculation is extremely large, a perpendicular vector will be created in the block before G40.

Tool center path Programmed path

Hypothetical tool center path

2)

If the arc is 360 or more due to the details of I, J and K at G40 after the arc command, an uncut section will occur.
Uncut section

N1 (G42, G91) G01X200. ; N2 G02 J150. ;


Programmed path Tool center path

N3 G40 G1X150. Y-150. I-100. J100. ;

(7) Corner movement When a multiple number of offset vectors are created at the joints between movement command blocks, the tool will move in a straight line between those vectors. This action is called corner movement. When the vectors do not coincide, the tool moves in order to machine the corner although this movement is part and parcel of the joint block. Consequently, operation in the single block mode will execute the previous block + corner movement as a single block and the remaining joining movement + following block will be executed as a single block in the following operation.

Programmed path

Tool center path Center of arc This movement and feedrate fall under block N2.

Stop point with single block

- 122 -

12. Tool Offset Functions

12.3.4 G41/G42 commands and I, J, K designation


The compensation direction can be intentionally changed by issuing the G41/G42 command and I, J, K in the same block. (1) Command format G17 (XY plane) G41/G42 X__ Y__ I__ J__ ; G18 (ZX plane) G41/G42 X__ Z__ I__ K__ ; G19 (YZ plane) G41/G42 Y__ Z__ J__ K__ ; Assign an linear command (G00, G01) in a movement mode. (2) I, J type vectors (G17 XY plane selection) The new I, J type vector (G17 plane) created by this command is now described. (Similar descriptions apply to vector I, K for the G18 plane and to J, K for the G19 plane.) As shown in the figures, the vectors with a size equivalent to the offset amount are made to serve as the I, J type compensation vector perpendicularly to the direction designated by I, J without the intersection point of the programmed path being calculated. the I, J vector can be commanded even in the mode (G41/G42 mode in the block before) and even at the compensation start (G40 mode in the block before). 1) When I, J is commanded at compensation start (G40) N100 N110 N120 N130 N140 N150 G91 G41 X100. Y100. I150. D1 ; G04 X1000 ; G01 F1000 ; S500 ; M03 ; X150. ;

Tool center path

When there are no movement commands at the compensation start.

N1 G41 I150. D1 ; N2 G91 X100. Y100. ; N3 X150. ;

- 123 -

~
(G40)

Programmed path

12. Tool Offset Functions

2)

When I, J has been commanded in the G41/G42 mode (G17 plane)

(G17 G41 G91) N100 G41 G00X150. J50. ; N110 G02 I150. ; N120 G00 X150. ;

Programmed path Tool center path Tool path after interrupt

I, J type vector Intersection point calculation type vector

(Reference) G18 plane

(G18 N100 G41 N110 G02 N120 G00

G41 G91) G00 Z150. I50. ; K50. ; Z150. ;

G19 plane

(G19 N100 G41 N110 G02 N120 G00

G41 G91) G00Y150. K50. ; J50. ; Y150. ;

- 124 -

12. Tool Offset Functions

When I, J has been commanded in a block without movement

N1 N2 N3 N4 N5

G41 D1 G01 F1000 ; G91 X100. Y100. ; G41 I50. ; X150. ; G40 ;

(3) Direction of offset vectors 1) In G41 mode Direction produced by rotating the direction commanded by I, J through 90 to the left from the forward direction of the Z axis (axis 3) as seen from the zero point (Example 1) With I100. Offset vector direction (Example 2) With I-100. (100, 0 IJ direction)

(100, 0 IJ direction) 2) In G42 mode

Offset vector direction

Direction produced by rotating the direction commanded by I, J through 90 to the right from the forward direction of the Z axis (axis 3) as seen from the zero point (Example 1) With I100. (0, 100 IJ direction) (Example 2) With I-100. Offset vector direction

Offset vector direction

(100, 0 IJ direction)

- 125 -

12. Tool Offset Functions

(4) Selection of offset modal The G41 or G42 modal can be selected at any time.

N1 N2 N3 N4 N5 N6 N7 %

G28 X0Y0 ; G41 D1 F1000 ; G01 G91 X100. Y100. ; G42 X100. I100. J100. D2 ; X100. Y100. ; G40 ; M02 ;

(5) Offset amount for offset vectors The offset amounts are determined by the offset number (modal) in the block with the I, J designation. < Example 1> (G41 D1 G91) N100 G41 X150. I50. ; N110 X100. Y100. ; Y100.

Vector (A) is the offset amount entered in offset number modal D1 in the N200 block. < Example 2> (G41 D1 G91) N200 G41 X150. I50. D2 ; N210 X100. Y100. ;

Vector (B) is the offset amount entered in offset number modal D2 in the N200 block.

- 126 -

12. Tool Offset Functions

(6) Checkpoints 1) Issue the I, J type vector in a linear mode (G0, G1). If it is issued in an arc mode at the start of compensation, program error "P151" (G2, 3 CMP. ERR) will result. An IJ designation in an arc mode functions as an arc center designation in the offset mode. When the I, J type vector has been designated, it is not deleted (avoidance of interference) even if there is interference. Consequently, overcutting may arise in such a case.

2)

Cut section

N1 N2 N3 N4 N5 N6 N7

G28 X0Y0 ; G42 D1 F1000 ; G91 X100. ; G42 X100. Y100. I10. ; X100. Y100. ; G40 ; M02 ;

- 127 -

12. Tool Offset Functions

(7) Supplementary notes 1) The vectors differ for the G38 I _J_ (K_) command and the G41/G42 I_J_(K_) command. G38 G41/G42 (G41) G41 G91 X100. I50. J50. ; Example

(G41)

(Offset amount)

(Offset amount)

Vector in IJ direction having an offset amount Vector perpendicular in IJ direction and size having an offset amount size 2) Refer to the following table for the offset methods based on the presence and/or absence of the G41 and G42 commands and I, J, (K) command. G41/G42 No No Yes Yes I, J (K) No Yes No Yes Offset method Intersection point calculation type vector Intersection point calculation type vector Intersection point calculation type vector I, J, type vector No insertion block

N1 N2 N3 N4 N5

G91 G01 G41 X200. D1 F1000 ; X150. Y150. ; G41 X300. I50. ; X150. Y150. ; G40 X200. ;

During the I, J type vector compensation, the A insertion block will not exist.

- 128 -

G38 G91 X100. I50. J50. ;

12. Tool Offset Functions

12.3.5 Interrupts during tool radius compensation


(1) MDI interrupt Tool radius compensation is valid in any automatic operation mode-whether tape, memory or MDI operation. An interrupt based on MDI will give the result as in the figure below after block stop during tape or memory operation. 1) Interrupt without movement (tool path does not change)
(Stopping position for single block)
MDI interrupt

N1 G41D1 ; N2 X20. Y50. ;

N3 G3 X40. Y40. R70. ; S 1000 M3 ;

2)

Interrupt with movement The offset vectors are automatically re-calculated at the movement block after interrupt.

With linear interrupt N1 G41D1 ; N2 X20. Y50. ;


MDI interrupt

N3 G3 X40. Y40. R70. ; X 50. Y30. ; X 30. Y50. ;

With circular interrupt N1 G41D1 ; N2 X20. Y50. ;


MDI interrupt

N3 G3 X40. Y40. R70. ;G2 X40. Y40. R70. ; G1 X4. ;

- 129 -

12. Tool Offset Functions

(2) Manual interrupt 1) Interrupt with manual absolute OFF. The tool path is shifted by an amount equivalent to the interrupt amount.
Interrupt Tool path after interrupt

Tool path after compensation Programmed path

2)

Interrupt with manual absolute ON. In the incremental value mode, the same operation results as with manual absolute OFF. In the absolute value mode, however, the tool returns to its original path at the end point of the block following the interrupted block, as shown in the figure.

Interrupt

Interrupt

- 130 -

12. Tool Offset Functions

12.3.6 General checkpoints for tool radius compensation


(1) Designating the offset amounts The offset amounts can be designated with the D code by designating an offset amount No. Once designated, the D code is valid until another D code is commanded. If an H code is designated, the program error "P170" No COMP No will occur. Besides being used to designate the offset amounts for tool radius compensation, the D codes are also used to designate the offset amounts for tool position offset. (2) Changing the offset amounts Offset amounts are normally changed when a different tool has been selected in the compensation cancel mode. However, when an amount is changed in the compensation mode, the vectors at the end point of the block are calculated using the offset amount designated in that block. (3) Offset amount symbols and tool center path If the offset amount is negative (), the figure will be the same as if G41 and G42 are interchanged. Thus, the axis that was rotating around the outer side of the workpiece will rotate around the inner side, and vice versa. An example is shown below. Normally, the offset amount is programmed as positive (+). However, if the tool path center is programmed as shown in (a) and the offset amount is set to be negative (), the movement will be as shown in (b). On the other hand, if the program is created as shown in (b) and the offset amount is set to be negative (), the movement will be as shown in (a). Thus, only one program is required to execute machining of both male and female shapes. The tolerance for each shape can be randomly determined by adequately selecting the offset amount. (Note that a circle will be divided with type A when compensation is started or canceled.)
Workpiece

Workpiece

Tool center path Tool center path

G41 offset amount (+) or G42 offset amount () (a)

G41 offset amount () or G42 offset amount (+) (b)

- 131 -

12. Tool Offset Functions

12.3.7 Changing of offset No. during compensation mode


As a principle, the offset No. must not be changed during the compensation mode. If changed, the movement will be as shown below. When offset No. (offset amount) is changed: G41 G01 ............................. Dr1 ; N101 N102 N103 1) G0 G0 Xx1 Xx2 Xx3 Yy1 Yy2 Yy3 = 0, 1, 2, 3 ; Dr2 ; ................................... Offset No. changed ;

During linear linear


The offset amount designated with N101 will be applied. The offset amount designated with N102 will be applied.

Tool center path

Programmed path

Tool center path

Programmed path

- 132 -

12. Tool Offset Functions

2)

Linear circular

Tool center path Programmed path

Tool center path Programmed path

Center of arc

Center of arc

3)

Circular circular

Tool center path Programmed path

Center of arc

Center of arc

Tool center path Programmed path Center of arc Center of arc

- 133 -

12. Tool Offset Functions

12.3.8 Start of tool radius compensation and Z axis cut in operation


Often when starting cutting, a method of applying a radius compensation (normally the XY plane) beforehand at a position separated for the workpiece, and then cutting in with the Z axis is often used. When using this method, create the program so that the Z axis movement is divided into the two steps of rapid traverse and cutting feed after nearing the workpiece. When the following type of program is created:
Tool center path

N1 N2 N3 N4 N6

G91 G00 G41 X 500. Y 500. D1 ; S1000 ; M3 ; G01 Z300. F1 ; Y 100. F2 ;

N4: Z axis lowers (1 block)

With this program, at the start of the N1 compensation the program will be read to the N6 block. The relation of N1 and N6 can be judged, and correct compensation can be executed as shown above. If the above program's N4 block is divided into two

N1 N2 N3 N4 N5 N6

G91 G00 G41 X 500. Y 500. D1 ; S1000 ; M3 ; Z250. ; G01 Z50. F1 ; Y 100. F2 ;
Cut in

In this case, the four blocks N2 to N5 do not have a command in the XY plane, so when the N1 compensation is started, the program cannot be read to the N6 block. As a result, the compensation is done based only on the information in the N1 block, and the compensation vector is not created at the start of compensation. Thus, an excessive cut in occurs as shown above.

- 134 -

12. Tool Offset Functions

In this case, consider the calculation of the inner side, and before the Z axis cutting, issue a command in the same direction as the direction that the Z axis advances in after lowering, to prevent excessive cutting. N1 N2 N3 N4 N5 N6 G91 G00 G41 X 500. Y 400. D1 ; Y100. S1000 ; M3 ; Z250. ; G01 Z50. F1 ; Y 100. F2 ;

The movement is correctly compensated as the same direction as the N6 advance direction is commanded in N2.

- 135 -

12. Tool Offset Functions

12.3.9 Interference check


(1) Outline A tool, whose radius has been compensated with the tool radius compensation function by the usual 2-block pre-read, may sometimes cut into the workpiece. This is known as interference, and interference check is the function which prevents this from occurring. There are three types of interference check, as indicated below, and each can be selected for use by parameter. Function Interference check alarm function Interference check avoidance function Interference check invalid function Note) Parameter #8102 : OFF #8103 : OFF #8102 : ON #8103 : OFF #8103 : ON Operation A program error results before the execution of the block in which the cut arises, and operation stops. The tool path is changed so that workpiece is not cut into. Cutting proceeds unchanged even when it occurs. Use this for microscopic segment programs.

#8102 COLL. ALM OFF (interference check avoidance) #8103 COLL. CHK OFF (interference check invalid)

(Example)
Avoidance path Outer diameter of tool

(G41) N1 G90 G1 X50. Y100. ; N2 X70. Y100. ; N3 X120. Y0 ;

Cutting with N2

Cutting with N2

1)

With alarm function The alarm occurs before N1 is executed and so, using the edit function, N1 can be changed as below and machining can be continued : N1 G90 G1 X20. Y40. ;

2)

With avoidance function The intersection point of N1 and N3 is calculated and the interference avoidance vectors are created.

- 136 -

12. Tool Offset Functions

3)

With interference check invalid function The tool passes while cutting the N1 and N3 line.

Operation during interference avoidance

Example of interference check Vectors (1) (4)' check No interference Vectors (2) (3)' check No interference Vectors (3) (2)' check Interference

Erase vectors (3) (2)' Erase vectors (4) (1)'

With the above process, the vectors (1), (2), (3)' and (4)' will remain as the valid vectors, and the path that connects these vectors will be executed as the interference avoidance path. (2) Detailed description Conditions viewed as interference If there is a movement command in three of the five pre-read blocks, and if the compensation calculation vectors created at the contacts of each movement command intersect, it will be viewed as an interference.
Tool center path Programmed path

Vectors intersect

- 137 -

12. Tool Offset Functions

When interference check cannot be executed 1) 2) When three of the movement command blocks cannot be pre-read (When there are three or more blocks in the five pre-read blocks that do not have movement) When there is an interference following the fourth movement block
Tool center path Programmed path

Interference check is not possible

Operation during interference avoidance The movement will be as shown below when the interference avoidance check is used.
Tool center path Programmed path

- 138 -

12. Tool Offset Functions

When interference check cannot be executed (continued)


Tool center path when interference is avoided Tool center path without interference check Programmed path Solid line vector : Valid Dotted line vector : Invalid

Tool center path when interference is avoided Linear movement Tool center path without interference check

Programmed path

Center of arc

Avoidance vector

Tool center path Avoidance vector

Programmed path If all of the line vectors for the interference avoidance are deleted, create a new avoidance vector as shown on the right to avoid the interference.

Tool center path 2

Avoidance vector 1 Avoidance vector 2

Tool center path 1 Programmed path

In the case of the figure below, the groove will be left uncut.
Interference avoidance path Tool center path

Programmed path

- 139 -

12. Tool Offset Functions

(3) Interference check alarm The interference check alarm occurs under the following conditions. When the interference check alarm function has been selected 1) When all the vectors at the end block of its own block have been deleted. When, as shown in the figure, vectors 1 through 4 at the end point of the N1 block have all been deleted, program error "P153" results prior to N1 execution.

When the interference check avoidance function has been selected 2) When there are valid vectors at the end point of the following block even when all the vectors at the end point of its own block have been deleted. a. When, in the figure, the N2 interference check is conducted, the N2 end point vectors are all deleted but the N3 end point vectors are regarded as valid. Program error "P153" now occurs at the N1 end point.

Alarm stop

b. In a case such as that shown in the figure, the tool will move in the reverse direction at N2. Program error "P153" occurs after N1 execution.

- 140 -

12. Tool Offset Functions

3)

When avoidance vectors cannot be created Even when, as in the figure, the conditions for creating the avoidance vectors are met, it may still be impossible to create these vectors or the interference vectors may interfere with N3. Program error "P153" will occur at the N1 end point when the vector intersecting angle is more than 90.

Alarm stop Alarm stop

Angle of intersection

4)

When the program advance direction and the advance direction after compensation are reversed In the following case, interference is still regarded as occurring even when there is actually no interference. When grooves which are narrower than the tool radius or which have parallel or widening walls are programmed
Programmed Tool center path path Stop

- 141 -

12. Tool Offset Functions

12.4 Programmed tool offset input; G10


12.4.1 Function and objective
(1) Function and objective The tool offset and workpiece offset can be set or changed on the tape using the G10 command. During the absolute value (G90) mode, the commanded offset amount will become the new offset amount, and during the incremental value (G91) mode, the commanded offset amount will be added to the currently set offset amount to create the new offset amount. (2) Command format 1) Workpiece offset input Format G90 G10 L2 P__Xp__Yp__Zp__; G91 Note) The offset amount in the G91 will be an incremental value and will be cumulated each time the program is executed. Command G90 or G91 before the G10 as a cautionary means to prevent this type of error. P:0 1 2 3 4 5 6 External workpiece G54 G55 G56 G57 G58 G59

If a value other than the above is set or if the P command is omitted, the currently selected workpiece offset will be handled as the input.

2)

Tool offset input For tool offset memory I Format G10 L10 P__R__ ; For tool offset memory II Format G10 L10 P__R__ ; G10 L11 P__R__ ; G10 L12 P__R__ ; G10 L13 P__R__ ;

P: Offset No. R: Offset amount

Long compensation shape offset Long compensation wear compensation Diameter shape offset Diameter wear compensation

(3) Detailed description 1) 2) 3) 4) 5) 6) 7) 8) Program error P171 will occur if this command is input when the specifications are not available. G10 is an unmodal command and is valid only in the commanded block. The G10 command does not contain movement, but must not be used with G commands other than G21, G22, G54 To G59, G90 or G91. If an illegal L No. or offset No. is commanded, the program errors P172 and P170 will occur respectively. If the offset amount exceeds the maximum command value, the program error P35 will occur. Decimal point inputs can be used for the offset amount. The offset amounts for the external workpiece coordinate system and the workpiece coordinate system are commanded as distances from the basic machine coordinate system zero point. The workpiece coordinate system updated by inputting the workpiece coordinate system will follow the previous modal (G54 to G59) or the modal (G54 to G59) in the same block. L2 can be omitted when the workpiece offset is input.

- 142 -

12. Tool Offset Functions

(4) Program example 1) Input the offset amount from the tape. ; G10L10P10R12345 ; G10L10P05R98765 ; G10L10P30R2468 ;

H10=12345 H05=98765 H30=2468 2) Updating of offset amount (Example 1) Assume that H10 = -1000 is already set. N1 N2 N3 N4 G01G90G43Z 100000 H10 ; ..... (Z = 101000) G28Z0 ; G91G10L10P10R 500 ; ............. (The mode is the G91 mode, so 500 is added.) G01G90G43Z 100000H10 ; ....... (Z = 101500)

(Example 2) Assume that H10 = 1000 is already set. Main program N1 G00X100000 ; ............................... a N2 #1 = 1000 ; N3 M98P1111L4 ; ............................... b1, b2, b3, b4 Subprogram O1111 N1 G01G91G43Z0H10F100 ; ............ c1, c2, c3, c4 G01X1000 ; ........................................... d1, d2, d3, d4 #1 = #1 1000 ; G90G10L10P10R#1 ; M99;

Note) Final offset amount will be H10= 5000.

- 143 -

12. Tool Offset Functions

(Example 3) The program for Example 2 can also be written as follows. Main program N1 G00X100000 ; N2 M98P1111L4 ; Subprogram O1111N1 G01G91G43Z0H10F100 ; N2 G01X1000 ; N3 G10L10P10R1000 ; N4 M99 ; 3) When updating the workpiece coordinate system offset amount Assume that the previous workpiece coordinate system offset amount is as follows. X = 10.000 Y = 10.000 N100 G00 G90 G54 X0 Y0 ; N101 G90 G10 L2 P1 X15.000 Y15.000 ; N102 X0 Y0 ; M02 ;

Basic machine coordinate system zero point

G54 coordinate before change

G54 coordinate after change

Note 1) Changes of workpiece position display at N101 At N101, the G54 workpiece position display data will change before and after the workpiece coordinate system is changed with G10. X=0 Y=0 X = +5.000 Y = +5.000

- 144 -

12. Tool Offset Functions

When workpiece coordinate system offset amount is set in G54 to G59 G90G10L2P1X10.000 G90G10L2P2X20.000 G90G10L2P3X30.000 G90G10L2P4X40.000 G90G10L2P5X50.000 G90G10L2P6X60.000 4) Y10.000 ; Y20.000 ; Y30.000 ; Y40.000 ; Y50.000 ; Y60.000 ;

When using one workpiece coordinate system as multiple workpiece coordinate systems : #1 = 50. #2 = 10. ; M98 P200 L5 ; M02 ; % N1 N2 N3 N4 N5 N6 N7 % G90 G54 G10 L2 P1 X#1 Y#1 ; G00 X0 Y0 ; X5. F100 ; X0 Y5. ; Y0 ; #1 = #1 + #2 M99 ;

Main program

Subprogram O200

Basic machine coordinate system zero point

5th time

4th time

3rd time

2nd time

1st time

(5) Precautions 1) Even if this command is displayed on the screen, the offset No. and variable details will not be updated until actually executed. N1 N2 N3 N4 G90G10L10P10R100 ; G43Z10000H10 ; G0X10000Y10000 ; G90G10L10P10R200 ; ....... The H10 offset amount is updated when the N4 block is executed.

- 145 -

12. Tool Offset Functions

12.5 Tool position offset; G45 G48


(1) Function and objective Using the G45G46 commands, the movement distance of the axes specified in the same block can be extended or reduced by a preset offset length. Furthermore, the offset amount can be similarly doubled ( 2 expansion) or halved ( 2 reduction) with commands G47 and G48. The number of sets for the offset differ according to machine specification. Refer to Specifications Manual. D01 Dn (The numbers given are the total number of sets for tool length offset, tool position offset and cutter compensation.) G45 command Expansion by offset amount only
Internal arithmetic processing

G46 command Reduction by offset amount only


Internal arithmetic processing

G47 command 2 expansion by offset amount


Internal arithmetic processing

G48 command 2 reduction by offset amount


Internal arithmetic processing Movement amount

Movement amount

Movement amount

Movement amount

Start point

End point

Start point

End point

Start point

End point

Start point End point

(Program command value)

= (Movement amount after offset)

(Offset amount)

(2) Command format Command format G45 Xx Dd ; G46 Xx Dd ; G47 Xx Dd ; G48 Xx Dd ; Function Expansion of movement amount by offset amount set in offset memory Reduction of movement amount by offset amount set in offset memory Expansion of movement amount by double the offset amount set in offset memory Reduction of movement amount by double the offset amount set in offset memory

- 146 -

12. Tool Offset Functions

(3) Detailed description Details for incremental values are given below. Command G45Xx Dd G45Xx Dd G46Xx Dd G46Xx Dd G47Xx Dd G47Xx Dd G48Xx Dd G48Xx Dd Movement amount of equivalent command (assigned offset amount = l) X(x+l) X(x+l) X(xl) X(xl) X(x+2l) X(x+2l) X(x2l) X(x2l) Example (when X = 1000) l = 10 X = 1010 l = 10 X = 990 l = 10 X = 1010 l = 10 X = 990 l = 10 X = 990 l = 10 X = 1010 l = 10 X = 990 l = 10 X = 1010 l = 10 X = 1020 l = 10 X = 980 l = 10 X = 1020 l = 10 X = 980 l = 10 X = 980 l = 10 X = 1020 l = 10 X = 980 l = 10 X = 1020

- 147 -

12. Tool Offset Functions

Checkpoints for G45 G48 use 1) 2) These commands should be used when operation is not in a canned cycle mode. (They are ignored even if they are assigned during a canned cycle.) As a result of the internal arithmetic processing based on the expansion or reduction, the tool will proceed to move in the opposite direction when the command direction is reversed.

G48X20.000D01; Programmed command Offset amount = +15.000 Offset Tool movement Actual movement = X 10.000 When a zero movement amount has been specified in the incremental value command (G91) mode, the result is as follows. Offset number: D01 Offset amount corresponding to D01: 1234 NC command Equivalent command G45X0 D01; X1234; G45X 0 D01; X 1234; G46X0 D01; X 1234; G46X 0 D01; X1234;

When a zero movement amount has been specified with an absolute value command, the operation is completed immediately and the tool does not move for the offset amount. In the case of circular interpolation, cutter compensation is possible using the G45 G48 commands only for one quadrant, two quadrants (semisphere) or three quadrants when the start and end points are on the axis. The commands are assigned as follows depending on whether the compensation is applied for outside or inside the arc programmed path. However, in this case, offset must already be provided in the desired direction at the arc start point. (If an offset command is assigned for the arc independently, the arc start point and end point radii will shift by an amount equivalent to the offset amount.)

G45 for compensation outside the circle G46 for compensation inside the circle

G47 for compensation outside the circle G48 for compensation inside the circle

- 148 -

12. Tool Offset Functions

G45 for compensation outside the circle G46 for compensation inside the circle

(4) Example of program It is assumed that offset has already been provided in the + X direction by D01 = 200. G91 G45 G03 X1000 Y1000 I1000 F1000 D01; (Example 1)

Even if the offset numbers are not assigned in the same block as the G45 G48 commands, offset is provided with the tool position offset number previously stored in the memory. Program error P170 results when the specified offset number has exceeded the specification range. These G codes are unmodal and are effective only in the command block. Even with an absolute value command, the amount of the movement is extended or reduced for each axis with respect to the direction of movement from the end point of the preceding block to the position assigned by the G45 G48 block. In other words, even for an absolute value command, offset can be applied to movement amounts (incremental values) in the same block.

- 149 -

12. Tool Offset Functions

When a command for n number of simultaneous axes is given, the same offset will be applied to all axes. It is valid even for the additional axes (but it must be within the range of the number of axes which can be controlled simultaneously.)

Note 1) If offset is applied to two axes, over-cutting or under-cutting will result, as shown in the figures below. In cases like this, use the cutter compensation commands (G40 G42).

- 150 -

12. Tool Offset Functions

(Example 2)

(Example 3) When the G45 G48 command is assigned, the offset amount for each pass is the amount assigned by the offset number, and the tool does not move for the difference from the previous offset as it would do with the tool length offset command (G43).

- 151 -

12. Tool Offset Functions

Offset amount D01 = 10.000mm (Offset amount of tool radius) N100 G91 G46 G00 X40.0 Y40.0 D01 ; N101 G45 G01 X100.0 F200 ; N102 G45 G03 X10.0 Y10.0 J10.0 ; N103 G45 G01 Y40.0 ; N104 G46 X0 ; N105 G46 G02 X20.0 Y20.0 J20.0 ; N106 G45 G01 Y0 ; N107 G47 X30.0 ; N108 N110 Y30.0 ; Y 30.0 ; N109 G48 X30.0 ; N111 G45 X30.0 ; N112 G45 G03 X10.0 Y10.0 J10.0 ; N113 G45 G01 Y20.0 ; N114 N115 X10.0 ; Y40.0 ;

N116 G46 X40.0 Y40.0 ; N117 M02 ; %

- 152 -

12. Tool Offset Functions

12.6 Inputting the tool life management data


(1) Function and objective Using the G10 command, the tool life management data can be registered, changed and added to, and preregistered groups can be deleted. (2) Command format (a) Registering data G10 L3 ; ............................. PPn LLn QQn ; ...................... TTn HHn DDn ; ..................... TTn HHn DDn ; : : PPn LLn QQn ; ...................... TTn HHn DDn ; : : G11 ; ................................... M02 ; .................................. Start of life management data registration Pn is the group No., Ln is the life, Qn is the control method Tn is the tool No., Hn is the length compensation No., Dn is the radius compensation No. The spare tools are selected in the order of the tool numbers registered here. Registration of next group No.

End of life management data registration End of program

(b) Changing and adding groups G10 L3 P1 ; ........................ PPn LLn QQn ; ...................... TTn HHn DDn ; ..................... TTn HHn DDn ; : PPn LLn QQn ; ...................... TTn HHn DDn ; : : G11 ; ................................... M02 ; .................................. (c) Deleting a group G10 L3 P2 ; ........................ PPn ; ................................... PPn ; ................................... : G11 ; ................................... M02 ; .................................. Start of life management data deletion Pn is the group No. Delete next group No. End life management data deletion End of program Start of life management data change or addition Pn is the group No., Ln is the life, Qn is the control method Tn is the tool No., Hn is the length compensation No., Dn is the radius compensation No. Change or addition of next group No.

End of life management data change or addition End of program

- 153 -

12. Tool Offset Functions

(3) Example of operation Program example G10 L3 ; P10 L10 Q1 ; T10 H10 D10 ; G11 ; M02 ; G10 L3 P1 ; P10 L10 Q1 ; T10 H10 D10 ; G11 ; M02 ; Operation 1. After deleting all group data, the registration starts. 2. Group No. 10 is registered. 3. Tool No. 10 is registered in group No. 10. 4. The registration ends. 5. The program ends. 1. Changing and addition of the group and tool starts. 2. The change and addition operation takes place in the following manner. (1) When group No. 10 has not been registered. 1) Group No. 10 is additionally registered. 2) Tool No. 10 is registered in group No. 10. (2) When group No. 10 has been registered, but tool No. 10 has not been registered. 1) Tool No. 10 is additionally registered in group No. 10. (3) When group No. 10 and tool No. 10 have been both registered. 1) The tool No. 10 data is changed. 3. The group and tool change and addition ends. 4. The program ends. 1. The group deletion starts. 2. The group No. 10 data is deleted. 3. The group deletion ends. 4. The program ends.

Data registration

Group change, addition

Group deletion

G10 L3 P2 ; P10 ; G11 ; M02 ;

(4) Command range Item Group No. Life Control method (Pn) (Ln) (Qn) 1 to 99999999 0 to 9999 times (No. of times control method) 0 to 4000 minutes (time control method) 1 to 3 1: Number of mounts control 2: Time control 3: Number of cutting times control 1 to 99999999 0 to 200 0 to 200 Command range

Tool No. Length compensation No. Radius compensation No.

(Tn) (Hn) (Dn)

- 154 -

12. Tool Offset Functions

(5) Precautions (a) The tool life data is registered, changed, added to or deleted by executing the program in the memory or MDI mode. (b) The group No. and tool No. cannot be commanded in duplicate. (c) When two or more addresses are commanded in one block, the latter address will be valid. (d) If the life data (LLn) is omitted, the life data for that group will be "0". (e) If the control method (QQn) is omitted, the control method for that group will follow the base specification parameter "#1106 Tcount". Note that when carrying out the No. of cutting times control method, command the method from the program. (f) If the length compensation No. (HHn) is omitted, the length compensation No. for that group will be "0". (g) If the radius compensation No. (DDn) is omitted, the radius compensation No. for that group will be "0". (h) Programming with a sequence No. is not possible between G10 L3 and G11. (i) If the usage data count valid signal (Y2CA) is ON, G10 L3 cannot be commanded. (j) The registered data is held even if the power is turned OFF. (k) When G10 L3 is commanded, the commanded group and tool will be registered after all of the registered data is erased. (l) The change and addition conditions in the G10L3P1 command are as follows. 1) Change conditions a) Both the commanded group No. and tool No. are registered. Change the commanded tool No. data. 2) Additional conditions a) Neither the commanded group No. nor tool No. is registered. Additionally register the commanded group No. and tool No. data. b) The commanded group No. is registered, but the commanded tool No. is not registered. Additionally register the commanded tool No. data to the commanded group No.

- 155 -

13. Program Support Functions

13. Program Support Functions


13.1 Canned cycles
13.1.1 Standard canned cycles; G80~G89, G73, G74, G76
(1) Function and objective These canned cycles are used for predetermined sequences of machining operations such as normal positioning, hole machining, drilling and tapping which are specified in a block. The various sequences available using these functions are listed in the table below. G code G80 G81 G82 G83 G84 G85 G86 G87 G88 G89 G73 G74 G76 Hole machining start (Z direction) Cutting feed Cutting feed Intermittent feed Cutting feed Cutting feed Cutting feed Cutting feed Rapid traverse Cutting feed Cutting feed Intermittent feed Cutting feed Operation at hole bottom Dwell Yes Yes Yes Yes Yes Yes Yes Spindle Reverse rotation Stop Forward rotation Stop Forward rotation Return operation (+Z direction) Rapid feed Rapid feed Rapid feed Cancel Drill, spot drilling cycle Drill, counter boring cycle Deep hole drilling cycle Application

Cutting feed Tapping cycle Cutting feed Boring cycle Rapid feed Boring cycle

Cutting feed Back boring cycle Rapid feed Boring cycle

Cutting feed Boring cycle Rapid feed Stepping cycle

Cutting feed Reverse tapping cycle Fine boring cycle

Oriented spindle stop Rapid feed

A canned cycle mode is canceled when the G80 or any G command in (G00, G01, G02, G03) is issued. The various data will also be cleared simultaneously to zero. (2) Command format
G8 (7) X__ Y__ Z__ R__ Q__ P__ F__ L__ S__ ,R__(,S__) ,I__ ,J__;
Hole positioning data Number of repetitions

Hole machining mode

Hole machining data

Spindle rotation speed Spindle rotation speed at synchronization changeover or during return

Positioning axis in-position width Drilling axis in-position width

As shown above, the format is divided into the hole machining mode, hole positioning data, hole machining data, No. of repetitions, spindle rotation speed, spindle rotation speed at synchronization changeover (or during return), positioning axis in-position width and drilling axis in-position width.

- 156 -

13. Program Support Functions

(3) Detailed description 1) The hole machining mode refers to the canned cycle modes such as drilling, counter boring, tapping and boring. The hole position data is the data used to position the X and Y axes. The hole machining data is the machining data actually used for machining. The synchronization changeover is the command for selecting synchronous/asynchronous tapping during G84/G74 tapping. The hole position data and No. of repetitions are unmodals and the hole position data and spindle rotation speed at synchronization changeover (or during return) are modals. If M00 or M01 is commanded in the same block as the canned cycle or during the canned cycle mode, the canned cycle will be ignored. Instead, M00 and M01 will be output after positioning. The canned cycle will be executed if X, Y, Z or R is commanded. There are 7 actual operations which are each described in turn below. Operation 1 : This indicates the X and Y axes positioning, and executes positioning with G00. Operation 2 : This is an operation done after positioning is completed (at the initial hole), and when G87 is commanded, the M10 command is output from the control unit to the machine. When this M command is executed and the finish signal (FIN) is received by the control unit, the next operation will start. If the single block stop switch is ON, the block will stop after positioning.

2)

3)

Operation 1

Operation 2

Initial point Operation 7

Operation 3 R point

Operation 4

Operation 6

Operation 5

Operation 3 : The tool is positioned to the R point by rapid traverse. Operation 4 : Hole machining is conducted by cutting feed. Operation 5 : This operation takes place at the hole bottom position and it differs according to the canned cycle mode. Possible actions include spindle stop (M05) spindle reverse rotation (M04), spindle forward rotation (M03), dwell and tool shift. Operation 6 : The tool is retracted to the R point. Operation 7 : The tool is returned to the initial pint at the rapid traverse rate. Whether the canned cycle is to be completed at operation 6 or 7 can be selected by the following G commands. G98 ............ Initial level return G99 ............ R point level return These are modal commands, and for example, if G98 is commanded once, the G98 mode will be entered until G99 is designated. The initial state when the NC is ready is the G98 mode. The hole machining data will be ignored if X, Y, Z or R is not commanded. This function is mainly used with the special canned cycled.

- 157 -

13. Program Support Functions

4)

Canned cycle addresses and meanings Address G X Y Z P Q R F L Significance Selection of hole machining cycle sequence (G80 to G89, G73, G74, G76) Designation of hole drilling position (absolute value or incremental value) Designation of hole drilling position (absolute value or incremental value) Designation of hole bottom position (absolute value or incremental value) Designation of dwell time at hole bottom position (decimal points will be ignored) Designation of cut amount for each cutting pass with G73 or G83, or designation of the shift amount at G76 or G87 (incremental value) Designation of R point position (absolute value or incremental value) Designation of feed rate for cutting feed Designation of number of repetitions. 0 to 9999

5)

Difference between absolute value command and incremental value command


For absolute value For incremental value

R point

R point

Workpiece

Workpiece

6)

Feed rate for tapping cycle and tapping return The feed rates for the tapping cycle and tapping return are as shown below. a) Selection of synchronous tapping cycle/asynchronous tapping cycle Program G84, Rxx , R00 , Rxx No designation , R01 is irrelevant to the setting b) Selection of asynchronous tapping cycle feed rate G94/G95 G94 G95 Control parameter F1-digit value OFF ON F command value F designation Other than F0 to F8 F0 to F8 (no decimal point) F designation Feed designation Per-minute feed F1-digit feed Per-revolution feed Control parameter Synchronous tapping OFF ON Synchronous/ asynchronous Asynchronous Synchronous

is irrelevant to the setting

- 158 -

13. Program Support Functions

c) Spindle rotation speed during return of synchronous tapping cycle Address ,S Meaning of address Spindle rotation speed during return Command range (unit) 0 to 99999 (r/min) Remarks The data is held as modal information. If the value is smaller than the speed rotation speed, the speed rotation speed value will be valid even during return. If the spindle rotation speed is not 0 during return, the tap return override value will be invalid.

(4) Positioning plane and hole drilling axis The canned cycle has basic control elements for the positioning plane and hole drilling axis. The positioning plane is determined by the G17, G18 and G19 plane selection command, and the hole drilling axis is the axis perpendicular (X, Y, Z or parallel axis) to the above plane. Plane selection G17 (X Y) G18 (Z X) G19 (Y Z) Positioning plane Xp Yp Zp Xp Yp Zp Hole drilling axis Zp Yp Xp

Xp, Yp and Zp indicate the basic axes X, Y and Z or an axis parallel to the basic axis. A random axis other than the hole drilling axis can be commanded for positioning. The hole drilling axis is determined by the axis address of the hole drilling axis commanded in the same block as G81 to G89, G73, G74 or G76. The basic axis will be the hole drilling axis if there is no designation. (Example 1) When G17 (XY plane) is selected, and the axis parallel to the Z axis is set as the W axis. G81 ... Z__ ; The Z axis is used as the hole drilling axis. G81 ... W__ ; The W axis is used as the hole drilling axis. G81 ... ; (No Z or W) The Z axis is used as the hole drilling axis. Note 1) The hole drilling axis can be fixed to the Z axis with parameter #1080 Dril_Z. Note 2) Change over the hole drilling axis in the canned cycle canceled state. In the following explanations on the movement in each canned cycle mode, the XY plane is used for the positioning plane and the Z axis for the hole drilling axis. Note that all command values will be incremental values, the positioning plane will be the XY plane and the hole drilling axis will be the Z axis. (5) Programmable in-position width command in fixed cycle This command commands the in-position width for the fixed cycle from the machining program. The commanded in-position width is valid only in the G81 (drill, spot drill), G82 (drill, counter boring), G83 (deep drill cycle), G84 (tap cycle), G85 (boring), G89 (boring), G73 (step cycle) and G74 (reverse tap cycle) fixed cycles. The ", I" address is commanded in respect to the positioning axis, and the ",J" address is commanded in respect to the drilling axis. Address ,I Meaning of address In-position width (position error amount) In-position width for drilling axis in fixed cycle (position error amount) 1 to 999.999 (mm) 1m unit Command range (unit) Remarks When a value exceeding the command range is issued, a program error will occur. (P35 CMD-VALUE OVER)

,J

- 159 -

13. Program Support Functions

(6) In-position check in fixed cycle When the number of repetitions L is designated as two or more times in the fixed cycle, the commanded in-position width will be valid in the repetition block (operation 5 to operation 8). : G81 X50. Z50. R50. L2 F2000, I0.2, J0.3 ; :
Operation pattern ,I Valid Valid ,J Invalid Invalid Valid Invalid Invalid Valid Operation 1
Operation 1

-50.

Operation 5

-50.
Operation 6

Operation 2 Operation 3 Operation 4 Operation 5 Operation 6 Operation 7

Operation 2

Operation 3 Operation 4

Operation 7 Operation 8

Operation 8

Fig. 1 Operation when number of repetitions L is designated In the following machining program, the commanded in-position width is valid for the Fig. 2 block. In the (B) block, the in-position width (, I) commanded for positioning in the previous block (A) is invalid (operation 5). However, when returning from the hole bottom, the in-position width (, J) commanded in the previous block (A) is valid (operation 8). To validate the in-position width for positioning, command again as shown in block (C) (Operation 9). : G81 X50. Z50. R50. F2000, I0.2, J0.3 ; .......... (A) X10. ; ......................................................................... (B) X10., I0.2 ; ................................................................ (C) :
Operation 5 Operation 1 Operation 9

-50.

-10.
Operation 6

-10.
Operation 10

Operation 2

Operation 3

Operation 7 Operation 4

Operation 11 Operation 8 Operation 12

Operation pattern Operation 1 Operation 2 Operation 3 Operation 4 Operation 5 Operation 6 Operation 7 Operation 8 Operation 9 Operation 10 Operation 11 Operation 12

,I Valid Invalid Valid

,J Invalid Invalid Valid Invalid Invalid Valid Invalid Invalid Valid

Fig. 2 Operation in fixed cycle modal

- 160 -

13. Program Support Functions

(7) Setting values of synchronous tap in-position check parameters and tap axis movement 1) Synchronous tap in-position check settings
I point Hole R Synchro-n bottom R point ous tap point in-positi in-positi improveon in-positi on ment check on check check 0 1 "P" designation of G84/G74 command No "P" designation Example: G84 F1. Z-5. S1000 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. "P" designation Example: G84 F1. Z-5. S1000 P0 R-5. In-position check during synchronous tap

Carry out in-position check at I point R point/R point/hole bottom. Hole bottom: Do not carry out in-position check. R point: Do not carry out in-position check. I point R point: Do not carry out in-position check. Hole bottom: Carry out in-position check by tap in-position width. R point: Carry out in-position check. I point R point: Carry out in-position check. Hole bottom: Carry out in-position check by tap in-position width. R point: Do not carry out in-position check. I point R point: Carry out in-position check. Hole bottom: Do not carry out in-position check. R point: Carry out in-position check. I point R point: Carry out in-position check. Hole bottom: Do not carry out in-position check. R point: Do not carry out in-position check. I point R point: Carry out in-position check. Hole bottom: Carry out in-position check by tap in-position width. R point: Carry out in-position check. I point R point: Do not carry out in-position check. Hole bottom: Carry out in-position check by tap in-position width. R point: Do not carry out in-position check. I point R point: Do not carry out in-position check. Hole bottom: Do not carry out in-position check. R point: Carry out in-position check. I point R point: Do not carry out in-position check. Hole bottom: Do not carry out in-position check. R point: Do not carry out in-position check. I point R point: Do not carry out in-position check.

Valid

Valid

Valid

Valid

Invalid

Valid

Invalid

Valid

Valid

Invalid

Invalid

Valid

Valid

Valid

Invalid

Valid

Invalid

Invalid

Invalid

Valid

Invalid

Invalid

Invalid

Invalid

2) Relation between the in-position width and tap axis movement for a synchronous tap in-position check
FIN Hole bottom R point (1) Section in which the inposition check is carried out by the sv024 value. (2) Section in which the inposition check is carried out by the TapInp value. (3) Section in which the inposition check is carried out by the G1inps value. (4) Section in which the inposition check is carried out by the G0inps value.

Speed Time T In-position completion of the G0 feed from the R point (4) Start of G0 feed to the R point

G1 deceleration start at tap cut-in

G1 deceleration start at tap return (2)

(3)

(1)

R point : In-position check by the G1inps value. I point : In-position check by the G0inps value. Hole bottom: In-position check by the Tapinps value.

- 161 -

13. Program Support Functions

3) Relation between the parameter setting values and tap axis movement for a synchronous tap in-position check
Synchro-n In-positio In-positio In-positio ous tap n check at n check at n check at Hole bottom improvehole I point wait time R point ment bottom R point 0 Time designated by "P". Processing time is several 10ms when no "P". 1 Not executed Not executed Executed Larger value of "P" and TapDwl (#1313) is valid. No dwell executed if both values are 0. Larger value of "P" and TapDwl (#1313) is valid. No dwell executed if both values are 0. Larger value of "P" and TapDwl (#1313) is valid. No dwell executed if both values are 0. Larger value of "P" and TapDwl (#1313) is valid. Processing time is several 10ms if both values are 0. Larger value of P and TapDwl (#1313) is valid. No dwell executed if both values are 0. Larger value of P and TapDwl (#1313) is valid. No dwell executed if both values are 0. Larger value of P and TapDwl (#1313) is valid. No dwell executed if both values are 0. Larger value of "P" and TapDwl (#1313) is valid. Processing time is several 10ms if both values are 0. Operation at hole bottom Operation determined by setting of inpos (#1193) and aux 07 (#1223): bit 1 parameters. Wait until time in left column has elapsed. Operation at R point Operation determined by setting of inpos (#1193) and aux 07 (#1223): bit 1 parameters. Operation at I point R point Operation determined by setting of inpos (#1193) and aux 07 (#1223): bit 1 parameters. Wait until completion of in-position check by G0inps value. Wait until completion of in-position check by G0inps value. Wait until completion of in-position check by G0inps value. Wait until completion of in-position check by G1inps value. Wait until completion of in-position check by G0inps value.

Not executed

Executed

Executed

Wait until time in left column has elapsed.

Wait until completion of in-position check by G1inps value.

Executed

Not executed

Executed

Executed

Executed

Executed

Wait until dwell time in left column has elapsed after completion of in-position check. Wait until dwell time in left column has elapsed after completion of in-position check. Wait until time in left column has elapsed.

Not executed

Not executed

Not executed

Not executed

Executed

Not executed

Wait until time in left column has elapsed.

Wait until completion of in-position check by G1inps value.

Executed

Not executed

Not executed

Executed

Executed

Not executed

Wait until dwell time in left column has elapsed after completion of in-position check. Wait until dwell time in left column has elapsed after completion of in-position check.

Wait until completion of in-position check by G1inps value.

Remarks: The processing time is several 10ms when an in-position check is not carried out at the hole bottom. The processing time is between 0 to 14.2ms when an in-position check is not carried out at the R point. The processing time is the spindle gain changeover time when an in-position check is not carried out at I point R point.

- 162 -

13. Program Support Functions

a) G81 (Drilling, spot drilling) Program G81 Xx1 Yy1 Zz1 Rr1 Ff1 ,Ii1 ,Jj1;

(1) (2) (3) (4)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G98 mode G0Z (z1+r1) G99 mode G0Z z1

G98 G99 mode mode

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4)

i1 Valid

j1 Invalid Invalid Valid

The operation stops at after the (1), (2) and (4) commands during single block operation.

- 163 -

13. Program Support Functions

b) G82 (Drilling, counter boring) Program G82 Xx1 Yy1 Zz1 Rf1 Ff1 Pp1 ,Ii1 ,Jj1; P : Dwell designation

(1) (2) (3) (4) (5)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G4 Pp1 (Dwell) G98 mode G0Z (z1+r1) G99 mode G0Z z1

G98 G99 mode mode

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5)

i1 Valid

j1 Invalid Invalid Valid

The operation stops at after the (1), (2) and (5) commands during single block operation. c) G83 (Deep hole drilling cycle) Program G83 Xx1 Yy1 Zz1 Rr1 Qq1 Ff1 ,Ii1 ,Jj1; Q : This designates the cutting amount per pass, and is always designated with an incremental value.

(1) G0 Xx1 Yy1 (2) G0 Zr1 (3) G1 Zq1 Ff1 (4) G0 Z q1 (5) G0 Z (q1 m) (6) G1 Z (q1 + m) Ff1 (7) G0 Z 2 q1 (8) G0 Z (2 q1 m) (9) G1 Z (q1 + m) Ff1 (10) G0 Z 3 q1 : : (n) G98 mode G0Z (z1+r1) G99 mode G0Z z1

n-1 G98 G99 mode mode

- 164 -

13. Program Support Functions

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5) Operation (6) Operation (7) Operation (8) Operation (9) Operation (10)

i1 Valid : :

j1 Invalid Invalid Invalid Invalid Invalid Invalid Invalid Invalid Invalid

Operation (n-1) Operation (n)

Invalid Valid

When executing a second and following cutting in the G93 as shown above, the movement will change from rapid traverse to cutting feed several mm before the position machined last. When the hole bottom is reached, the axis will return according to the G98 or G99 mode. m will differ according to the parameter #8013 G83 return. Program so that q1>m. The operation stops at after the (1), (2) and (n) commands during single block operation.

- 165 -

13. Program Support Functions

d)

G84 (Tapping cycle) Program G84 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 Rr2 (or S1, S2) ,Ii1 ,Jj1; P : Dwell designation

(1) (2) (3) (4) (5) (6) (7) (8) (9)


G98 mode G99 mode

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G4 Pp1 M4 (Spindle reverse rotation) G1 Z z1 Ff1 G4Pp1 M3 (Spindle forward rotation) G98 mode G0Z r1 G99 mode No movement

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5) Operation (6) Operation (7) Operation (8) Operation (9)

i1 Valid

j1 Invalid Invalid Invalid Valid

When r2 = 1, the synchronous tapping mode will be entered, and when r2 = 0, the asynchronous tapping mode will be entered. When G84 is executed, the override will be canceled and the override will automatically be set to 100%. Dry run is valid when the control parameter "G00 DRY RUN" is on and is valid for the positioning command. If the feed hold button is pressed during G84 execution, and the sequence is at (3) to (6), the movement will not stop immediately, and instead will stop after (6). During the rapid traverse in sequence (1), (2) and (9), the movement will stop immediately. The operation stops at after the (1), (2) and (9) commands during single block operation. During the G84 modal, the "Tapping" NC output signal will be output. During the G84 synchronous tapping modal, the M3, M4, M5 and S code will not be output. This function allows spindle acceleration/deceleration pattern to be approached to the speed loop acceleration/deceleration pattern by dividing the spindle and drilling axis acceleration/deceleration pattern into up to three stages during synchronous tapping. The acceleration/deceleration pattern can be set up to three stages for each gear. When returning from the hole bottom, rapid return is possible depending on the spindle rotation speed during return. The spindle rotation speed during return is held as modal information.

- 166 -

13. Program Support Functions

When tap rotation speed < spindle rotation speed during return synchronous tap changeover spindle rotation speed 2

Smax S2 S(S1)

T2 T1 T1

T1

T1

S1 S' S2 Smax

T2

: Command spindle rotation speed : Spindle rotation speed during return : Tap rotation speed (spindle base specification parameters #3013 to #3016) : Synchronous tap changeover spindle rotation speed 2 (spindle base specification parameters #3037 to #3040) Smax : Maximum rotation speed (spindle base specification parameters #3005 to #3008) T1 : Tap time constant (spindle base specification parameters #3017 to #3020) T2 : Synchronous tap changeover time constant 2 (spindle base specification parameters #3041 to #3044)

S S' S1 S2

- 167 -

13. Program Support Functions

When synchronous tap changeover spindle rotation speed 2 < spindle rotation speed during return

Smax S2 S(S1) T3 T1 T2 T1

T1

T1

S1 S2 S'(Smax) T2 T3

S S' S1 S2 Smax T1 T2 T3

: Command spindle rotation speed : Spindle rotation speed during return : Tap rotation speed (spindle base specification parameters #3013 to #3016) : Synchronous tap changeover spindle rotation speed 2 (spindle base specification parameters #3037 to #3040) : Maximum rotation speed (spindle base specification parameters #3005 to #3008) : Tap time constant (spindle base specification parameters #3017 to #3020) : Synchronous tap changeover time constant 2 (spindle base specification parameters #3041 to #3044) : Synchronous tap changeover time constant 3 (spindle base specification parameters #3045 to #3048)

- 168 -

13. Program Support Functions

e)

G85 (Boring) Program G85 Xx1 Yy1 Zz1 Rr1 Ff1 ,Ii1 ,Jj1;

(1) (2) (3) (4) (5)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G1 Z z1 Ff1 G98 mode G0Z r1 G99 mode No movement

G98 mode

G99 mode

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5)

i1 Valid

j1 Invalid Invalid Invalid Valid

The operation stops at after the (1), (2), and (4) or (5) commands during single block operation.

- 169 -

13. Program Support Functions

f)

G86 (Boring) Program G86 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 ;

(1) (2) (3) (4) (5) (6)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G4 Pp1 M5 (Spindle stop) G98 mode G0Z (z1+r1) G99 mode G0Z z1 (7) M3 (Spindle forward rotation)

G98 mode

G99 mode

The operation stops at after the (1), (2) and (7) commands during single block operation. g) G87 (Back boring) Program G87 Xx1 Yy1 Zz1 Rr1 Iq1 Jq2 Ff1 ; Note) Take care to the z1 and r1 designations. (The z1 and r1 symbols are reversed). There is no R point return. (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) G0 Xx1 Yy1 M19 (Spindle orient) G0 Xq1 (Yq2) (Shift) G0 Zr1 G1 Xq1 (Yq2) Ff1 (Shift) M3 (Spindle forward rotation) G1 Zz1 Ff1 M19 (Spindle orient) G0 Xq1 (Yq2) (Shift) G98 mode G0Z (z1+r1) G99 mode G0Z (r1+z1) (11) G0 Xq1 (Yq2) (Shift) (12) M3 (Spindle forward rotation)

The operation stops at after the (1), (4), (6) and (11) commands during single block operation. When this command is used, high precision drilling machining that does not scratch the machining surface can be done. (Positioning to the hole bottom and the escape (return) after cutting is executed in the state shifted to the direction opposite of the cutter.) The shift amount is designated as shown below with addresses I, J and K.

- 170 -

13. Program Support Functions

Tool during cutting Tool after cutting Cutter Spindle orient position Shift Machining hole Shift amount

For G17 : I, J
Cancel

For G18 : K, I For G19 : J, K

The shift amount is executed with linear interpolation, and the feed rate follows the F command. Command I, J, and K with incremental values in the same block as the hole position data. I, J and K will be handled as modals during the canned cycle. Note) If the parameter (#1080 Dril_Z) which fixes the hole drilling axis to the Z axis is set, the shift amount can be designated with address Q instead of I and j. In this case, whether to shift or not and the shift direction are set with parameter #8207 G76/87 No shift and #8208 G76/87 Shift (). The symbol for the Q value is ignored and the value is handled as a positive value. The Q value is a modal during the canned cycle, and will also be used as the G83, G73 and G76 cutting amount. h) G88 (Boring) Program G88 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 ;

(1) (2) (3) (4) (5) (6)

G98 mode

G99 mode

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G4 Pp1 M5 (Spindle stop) Stop when single block stop switch is ON. (7) Automatic start switch ON (8) G98 mode G0Z (z1+r1) G99 mode G0Z z1 (9) M3 (Spindle forward rotation)

The operation stops at after the (1), (2), (6) and (9) commands during single block operation.

- 171 -

13. Program Support Functions

i)

G89 (Boring) Program G89 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1, Ii1, Jj1;

(1) (2) (3) (4) (5) (6)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G4 Pp1 G1 Z z1 Ff1 G98 mode G0Z r1 G99 mode No movement

G98 mode

G99 mode

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5) Operation (6)

i1 Valid

j1 Invalid Invalid Invalid Valid

The operation stops at after the (1), (2) and (5) or (6) commands during single block operation.

- 172 -

13. Program Support Functions

j)

G73 (Step cycle) Program G73 Xx1 Yy1 Zz1 Qq1 Rr1 Ff1 Pp1 ,Ii1 ,Jj1; P : Dwell designation

(1) (2) (3) (4) (5) (6) : (n)

G0 G0 G1 G4 G0 G1

Xx1 Yy1 Zr1 Zq1 Ff1 Pp1 Zm Z (q1 + m)

n-1

Ff1

G98 mode

G99 mode

G98 mode G0Z (z1+r1) G99 mode G0Z z1


i1 Valid : : j1 Invalid Invalid Invalid Invalid

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5) Operation (6)

Operation (n-1) Operation (n)

Invalid Valid

When executing a second and following cutting in the G73 as shown above, the movement will return several m mm with rapid traverse and then will change to cutting feed. The return amount m will differ according to the parameter #8012 G73 return. The operation stops at after the (1), (2) and (n) commands during single block operation.

- 173 -

13. Program Support Functions

k)

G74 (Reverse tapping cycle) Program G74 Xx1 Yy1 Zz1 Rr1 Pp1 Rr2(or S1,S2) ,Ii1 ,Jj1; P : Dwell designation

(1) (2) (3) (4) (5) (6) (7) (8)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 G4 Pp1 M3 (Spindle forward rotation) G1 Z z1 Ff1 G4 Pp1 M4 (Spindle reverse rotation) G98 mode G0Z r1 G99 mode No movement

G98 mode

G99 mode

Operation pattern Operation (1) Operation (2) Operation (3) Operation (4) Operation (5) Operation (6) Operation (7) Operation (8) Operation (9)

i1 Valid

j1 Invalid Invalid Invalid Valid

When r2 = 1, the synchronous tapping mode will be entered, and when r2 = 0, the asynchronous tapping mode will be entered. When G74 is executed, the override will be canceled and the override will automatically be set to 100%. Dry run is valid when the control parameter #1085 G00Drn is set to "1" and is valid for the positioning command. If the feed hold button is pressed during G74 execution, and the sequence is at (3) to (6), the movement will not stop immediately, and instead will stop after (6). During the rapid traverse in sequence (1), (2) and (9), the movement will stop immediately. The operation stops at after the (1), (2) and (9) commands during single block operation. During the G74 modal, the "Tapping" NC output signal will be output. During the G74 synchronous tapping modal, the M3, M4, M5 and S code will not be output. This function allows spindle acceleration/deceleration pattern to be approached to the speed loop acceleration/deceleration pattern by dividing the spindle and drilling axis acceleration/deceleration pattern into up to three stages during synchronous tap. Refer to the item "d) G84 (Tapping cycle)" for details of multi-stages of the spindle acceleration/deceleration pattern.

- 174 -

13. Program Support Functions

l)

G76 (Fine boring) Program G76 Xx1 Yy1 Zz1 Rr1 Iq1 Jq2 Ff1 ;

(1) (2) (3) (4) (5) (6)

G0 Xx1 Yy1 G0 Zr1 G1 Zz1 Ff1 M19 (Spindle orient) G1 Xq1 (Yq2) Ff1 (Shift) G98 mode G0Z (z1+r1) G99 mode G0Z z1 (7) G0 X q1 (Y q2) Ff1 (Shift) (8) M3 (Spindle forward rotation)

G98 G99 mode mode

The operation stops at after the (1), (2) and (7) commands during single block operation. When this command is used, high precision drilling machining that does not scratch the machining surface can be done. (Positioning to the hole bottom and the escape (return) after cutting is executed in the state shifted to the direction opposite of the cutter.)
Tool during cutting Tool after cutting Cutter Cancel Spindle orient position Shift Machining hole Shift amount

The shift amount is designated as shown below with addresses I, J and K. For G17 : I, J For G18 : K, I For G19 : J, K The shift amount is executed with linear interpolation, and the feed rate follows the F command.

Command I, J, and K with incremental values in the same block as the hole position data. I, J and K will be handled as modals during the canned cycle. Note) If the parameter (#1080 Dril_z) which fixes the hole drilling axis to the Z axis is set, the shift amount can be designated with address Q instead of I and J. In this case, whether to shift or not and the shift direction are set with parameter "#8207 G76/87 IGNR" and "#8208 G76/87 ()". The symbol for the Q value is ignored and the value is handled as a positive value. The Q value is a modal during the canned cycle, and will also be used as the G83, G87 and G73 cutting amount.

- 175 -

13. Program Support Functions

Precautions for using canned cycle 1. Before the canned cycle is commanded, the spindle must be rotating in a specific direction with an M command (M3 ; or M4 ;). Note that for the G87 (back boring) command, the spindle rotation command is included in the canned cycle so only the rotation speed command needs to be commanded beforehand. 2. If there is a basic axis, additional axis or R data in the block during the canned cycle mode, the hole drilling operation will be executed. If there is not data, the hole will not be drilled. Note that in the X axis data, if the data is a dwell (G04) time command, the hole will not be drilled. 3. Command the hole machining data (Q, P, I, J, K) in a block where hole drilling is executed. (Block containing a basic axis, additional axis or R data.) 4. The canned cycle can be canceled by the G00 to G03 or G33 command besides the G80 command. If these are designated in the same block as the canned cycle, the following will occur. (Where, 00 to 03 and 33 are m, and the canned cycle code is n) Gm Gn X___Y___Z___R___Q___P___L___F___;
Execute Ignore Execute Ignore Ignore Record Record

Gm
Ignore

Gn

X___Y___Z___R___Q___P___L___F___;
Execute

Note that for the G02 and G03 commands, R will be handled as the arc radius. 5. If an M function is commanded in the same block as the canned cycle command, the M code and MF will be output during the initial positioning. The next operation will be moved to with FIN (finish signal). If there is a No. of times designated, the above control will be executed only on the first time. 6. If another control axis (ex., rotary axis, additional axis) is commanded in the same block as the canned cycle control axis, the canned cycle will be executed after the other control axis is moved first. 7. If the No. of repetitions L is not designated, L1 will be set. If L0 is designated in the same block as the canned cycle G code command, the hole machining data will be recorded, but the hole machining will not be executed. (Example) G73X___Y___Z___R___Q___P___F___L0___;
Execute Record only code having an address

8. When the canned cycle is executed, only the modal command commanded in the canned cycle program will be valid in the canned cycle subprogram. The modal of the program that called out the canned cycle will not be affected. 9. Other subprograms cannot be called from the canned cycle subprogram. 10.Decimal points in the movement command will be ignored during the canned cycle subprogram. 11.If the No. of repetitions L is 2 or more during the incremental value mode, the positioning will also be incremented each time. (Example) G91G81X10. Z50.R20.F100.L3 ;

- 176 -

13. Program Support Functions

12. If the spindle rotation speed value during return is smaller than the spindle speed, the spindle rotation speed value is valid even during return. 13. If the 2nd and 3rd acceleration/deceleration stage inclinations following the spindle rotation speed and time constants set in the parameters are each steeper than the previous stage's inclination, the previous stage's inclination will be valid. 14. If the values set in the spindle base specification parameter "stap1-4" (tap rotation speed) and "taps21-24" (synchronous tap changeover spindle rotation speed 2) exceed the maximum rotation speed, the spindle rotation speed will be clamped at the maximum rotation speed. 15. If the spindle rotation speed during return is not 0, the tap return override value will be invalid. 16. In a block where the movement direction of any axis reverses as shown below, the servo system load will greatly increase so do not command the in-position width in the machining program. G0 X100., I10.0 ; X200. ; 17. If the in-position width commanded with the programmable in-position width command is increased, the positioning time and linear interpolation time can be reduced. However, the position error amount of the previous block will also increase before the next block starts, so the actual machining could be obstructed. 18. The in-position width and the position error amount are compared at a set time, so the position error amount at the point to be judged as in-position will be smaller than the commanded in-position width. 19. If the in-position width commanded with the programmable in-position command is small, the commanded deceleration check or in-position check following the parameters may be carried out first. 20. Synchronous and asynchronous tap can be selected with the M function. [Base specifications parameters] # 1272 ext08 (PR) Items bit1 Details M-function synchronous tap cycle valid. Setting range 0:Invalid 1:Valid

Synchronous tap cannot be selected with the M function when this parameter is OFF. [Base specifications parameters] # 1513 stapM Items Details Setting range

M code for Select the synchronous tap mode using the 0 to synchronous miscella-neous function code of the value set in this 99999999 tap selection parameter. The M function command can be issued immediately before the tap command or in the same block. This function is valid only when 1 is set in #1272 ext08 bit1 (Enable/disable M-function synchronous tap cycle). Note: Do not use M00, 01, 02, 30, 98, and 99. Related parameter: #1272 ext08 bit1 (Enable/disable M-function synchronous tap cycle).

The synchronous tap mode is selected with the miscellaneous function code set with this parameter. The M function can be commanded in the same block before the tap command.

- 177 -

13. Program Support Functions

The synchronous and asynchronous tap will follow the combination shown below.
Combination Program command (,R0/1) #1229 (bit4) M function code (M**) Synchronous/ asynchronous selection 0 0 A 0 0 A 0 1 A 0 1 A 1 0 S 1 0 S 1 1 S 1 1 S 0 A No command 0 S 1 S 1 S

: Does not command : Commands

A : Asynchronous tap S : Synchronous tap

Note 1) Do not use M00, 01, 02, 30, 98 or 99. Note 2) Depending on the model, selection with the M function may not be possible.

- 178 -

13. Program Support Functions

13.1.2 Initial point and R point level return; G98, G99


(1) Function and objective Whether to use R point or initial level for the return level in the final sequence of the canned cycle can be selected. (2) Command format G98 ; Initial level return G99 ; R point level return (3) Detailed description The relation of the G98/G99 mode and No. of repetition designation is as shown below. No. of hole drilling Program example G81X100. Y100. Z50. R25. F1000; Only one execution G98 At power ON, at cancel with M02, M30, and reset button
Initial point R point

G99

Initial point R point

Initial level return is executed.

R point level return is executed.

G81X100. Y100. Z50. R25. L5F1000; Second and following executions

First time

Second time

Final time

First time

Second time

Final time

Initial level return is executed for all times.

(4) Program example (Example 1) G82 Zz1 Rr1 Pp1 Ff1 L0 ................. Record only the hold machining data (Do not execute) Xx1 Yy1 ; ................................... Execute hole drilling operation with G82 mode The No. of canned cycle repetitions is designated with L. If L1 is designated or L not designated, the canned cycle will be executed once. The setting range is 1 to 9999. If L0 is commanded, only the hole machining data will be recorded. G8 (7) Xx1 Yy1 Zz1 Rr1 Pp1 Qq1 Ff1 Ll1 ;

- 179 -

13. Program Support Functions

The ideology of the data differs between the absolute value mode (G90) and incremental value mode (G91) as shown below.

R point

Z axis absolute value zero point

R point

Absolute value mode (G90)

Incremental value mode (G91)

Designate a command value with a symbol for X, Y and Z. R indicates the coordinate value from the zero point in the absolute value mode, so a symbol must always be added. However, in the incremental value the symbol will be ignored and will be viewed as the same symbol as for Z. Note that the symbols will be viewed in reverse for G87. The hole machining data is held as shown below in the canned cycle. The hole machining data is canceled when the G80 command or G commands (G00, G01, G02, G03, G2.1, G3.1, G33) in the 01 group are reached. (Example 2) N001 G81 Xx1 Yy1 Zz1 Rr1 Ff1 ; N002 G81 ; ..................................... Only selection of canned cycle sequence N003 Xx2 Yy2 ; ............................... Change of positioning point, and execution of canned cycle N004 M22 ; ..................................... Execution of only M22 N005 G04 Xx3 ; ............................. Execution of only dwell N006 G92 Xx4 Yy4 ; ...................... Execution of only coordinate system setting N007 G28 (G30) Z0 ; .................... Execution of only reference point (zero point) return N008 ; ............................................. No work N009 G99 Zz2 Rr2 Ff2 L0 ; ........... Execution of only hole machining data recording N010 Xx5 Yy5 Ll5 ; ......................... Change of positioning point, and execution of R point return canned cycle for I5 times N011 G98 Xx6 Yy6 Zz6 Rr6 ; ....... Change of positioning point, and execution of canned cycle N012 Ww1 ; .................................... Execute W axis according to 01 group modal before N001, and then execute canned cycle

- 180 -

13. Program Support Functions

13.1.3 Setting of workpiece coordinates in canned cycle mode


The designated axis moves with the workpiece coordinate system set for the axis. The Z axis is valid after the R point positioning after positioning or from Z axis movement. Note) When the workpiece coordinates are changed over for address Z and R, re-program even if the values are the same. (Example) G54 Xx1 Yy1 Zz1 ; G81 Xx2 Yy2 Zz2 Rr2 ; G55 Xx3 Yy3 Zz2 Rr2 ; ........ Re-command even if Z and R are the same as the previous value. Xx4 Yy4 ; Xx5 Yy5 ;

- 181 -

13. Program Support Functions

13.2 Special canned cycle; G34, G35, G36, G37.1


The special canned cycle is used with the standard canned cycle. Before using the special canned cycle, program the canned cycle sequence selection G code and hole machining data to record the hole machining data. (If there is no positioning data, the canned cycle will not be executed, and only the data will be recorded.) Even after the special canned cycle is executed, the recorded standard canned cycled will be held until canceled. If the special canned cycle is designated when not in the canned cycle mode, only positioning will be executed, and the hole drilling operation will not be done. (1) Bolt hole circle (G34) G34 X x1 Y y1 I r J K n ; X, Y.......... Positioning of bolt hole cycle center. This will be affected by G90/G91. I .............. Radius r of the circle. The unit follows the input setting unit, and is given with a positive number. J .............. Angle of the point to be drilled first. The CCW direction is positive. (The decimal point position will be the degree class. If there is no decimal point, the unit will be 0.001 .) K ............. No. of holes n to be drilled. 1 to 9999 can be designated, but 0 cannot be designated. When the value is positive, positioning will take place in the CCW direction, and when negative, will take place in the CW direction. If 0 is designated, the alarm P221 Special Canned Holes Zero will occur. Drilling of n obtained by dividing the circumference by n will start at point created by the Z axis and angle . The circumference is that of the radius R centering on the coordinates designated with XX and Y. The hole drilling operation at each hole will hold the drilling data for the standard canned cycle such as G81. The movement between hole positions will all be done in the G00 mode. G34 will not hold the data even when the command is completed. (Example) When input setting unit is 0.01mm N001 N002 N003 N004 N005 G91 ; G81 Z 10000 R5000 L0 F200 ; G90 G34 X200000 Y100000 I100000 J20000 K6 ; G90 ; ............... (Cancel of G81) G90 G0 X500000 Y100000 ;
n = 6 holes

Position before G34 is executed

N005 G0 command

As shown in the example, the tool position after the G34 command is completed is over the final hole. When moving to the next position, the coordinate value must be calculated to issue the command with an incremental value. Thus, use of the absolute value mode is handy.

- 182 -

13. Program Support Functions

(2) Line at angle (G35) G35 X x1 Y y1 I d J K n ; X, Y.......... Designation of start point coordinates. This will be affected by G90/G91. I .............. Interval d. The unit follows the input setting unit. If d is negative, the drilling will take place in the direction symmetrical to the point that is the center of the start point. J .............. Angle . The CCW direction is positive. (The decimal point position will be the degree class. If there is no decimal point, the unit will be 0.001 .) K ............. No. of holes n to be drilled. 1 to 9999 can be designated, and the start point is included. Using the position designated by X and Y as the start point, the Zn holes will be drilled with interval d in the direction created by X axis and angle . The hole drilling operation at each hole position will be determined by the standard canned cycle, so the hole drilling data (hole machining mode and hole machining data) must be held beforehand. The movement between hole positions will all be done in the G00 mode. G35 will not hold the data even when the command is completed. (Example) When input setting unit is 0.01mm G91 ; G81 Z 10000 R5000 L0 F100 ; G35 X200000 Y100000 I100000 J30000 K5 ;

n = 5 holes

Position before G35 is executed

Note 1) If the K command is K0 or if there is no K command, the program error "P221" will occur. Note 2) If the K value is more than four digits, the last four digits will be valid. Note 3) If a group 0 G command is issued in the same block as the G35 command, the command issued later is the priority. Example) G35 G28 Xx1 Yy1 Ii1 Jj1 Kk1 ; G35 is ignored G 28 is executed as Xx1 Yy1 Note 4) If there is a G72 to G89 command in the same block as the G35 command, the canned cycle will be ignored, and the G35 command will be executed.

- 183 -

13. Program Support Functions

(3) Arc (G36) G36 X x1 Y y1 I r J P K n ; X, Y.......... Center coordinates of arc. This will be affected by G90/G91. I .............. Radius r of arc. The unit follows the input setting unit, and is given with a positive No. J .............. Angle of the point to be drilled first. The CCW direction is positive. (The decimal point position will be the degree class. If there is no decimal point, the unit will be 0.001 .) P ............. Angle interval . When the value is positive, the drilling will take place in the CCW direction, and in the CW direction when negative. (The decimal point position will be the degree class. If there is no decimal point, the unit will be 0.001 .) K ............. No. of holes n to be drilled. 1 to 9999 can be designated. The n holes aligned at the angle interval _0 will be drilled starting at point created by the X axis and angle 0. The circumference is that of the radius R centering on the coordinates designated with XX and Y. As with the bolt hole circle, the hole drilling operation at each hole will depend on the standard canned cycle. The movement between hole positions will all be done in the G00 mode. G36 will not hold the data even when the command is completed. (Example) When input setting unit is 0.01mm N001 G91 ; N002 G81 Z 10000 R5000 F100 ; N003 G36 X300000 Y100000 I300000 J10000 P15000 K6 ;

n = 6 holes

Position before G36 is executed

- 184 -

13. Program Support Functions

(4) Grid (G37.1) G37.1 X x1 Y y1 I x P nx J y K ny ; X, Y.......... Designation of start point coordinates. This will be affected by G90/G91. I .............. Interval x of the X axis. The unit will follow the input setting unit. If x is positive, the interval will be in the forward direction looking from the start point, and when negative, will be in the reverse direction looking from the start point. P ............. No. of holes nx in the X axis direction. The setting range is 1 to 9999. J .............. Interval y of the Y axis. The unit will follow the input setting unit. If y is positive, the interval will be in the forward direction looking from the start point, and when negative, will be in the reverse direction looking from the start point. K ............. No. of holes ny in the Y axis direction. The setting range is 1 to 9999. The nx points on a grid are drilled with an interval x parallel to the X axis, starting at the position designated with X, Y. The drilling operation at each hole position will depend on the standard canned cycle, so the hole drilling data (hole machining mode and hole machining data) must be held beforehand. The movement between hole positions will all be done in the G00 mode. G37.1 will not hold the data even when the command is completed. (Example) When input setting unit is 0.01mm G91 ; G81 Z 10000 R5000 F20 ; G37.1 X300000 Y100000 I50000 P10 J100000 K8 ;

Position before G37 is executed

ny = 8 holes

nx = 10 holes

Note 1) If the P and K commands are P0 or K0, or if there is no P or K command, the program error "P221" will occur. If the P or K value is more than four digits, the last four digits will be valid. Note 2) If an address other than G, L, N, X, Y, I, P, J, K, F, M, S or B is programmed in the same block as the G37.1 command, that address will be ignored. Example) G37.1 Xx1 Yy1 Ii1 Pp1 Jj1 Kk1 Qq1 ;
Ignore

Note 3) If a group 0 G command is issued in the same block as the G37.1 command, the command issued later is the priority. Note 4) If there is a G72 to G89 command in the same block as the G37.1 command, the canned cycle will be ignored, and the G37.1 command will be executed.

- 185 -

13. Program Support Functions

13.3 Subprogram control; M98, M99, M198


13.3.1 Calling subprogram with M98 and M99 commands
(1) Function and objective Fixed sequences or repeatedly used patterns can be stored in the memory as subprograms which can then be called from the main program when required. M98 serves to call subprograms and M99 serves to return operation from the subprogram to the main program. Furthermore, it is possible to call other subprograms from particular subprograms and the nesting depth can include as many as 4 levels. Main program O0010 ; Subprogram O1000 ; Subprogram O1200 ; N20 ; M98 P1000 ; M98 P1200 H20 ; M99 ; (Level 1) M98 P2000 ; N60 ; M02 ; M99 ; M99 P60 ; M99 ; (Level 4) M98 P2500 ; Subprogram O2000 ; Subprogram O5000 ;

(Level 2) (Level 3) Nesting depth

The table below shows the functions which can be executed by adding and combining the tape storing and editing functions, subprogram control functions and canned cycle functions. Case 1 1. Tape storing and editing 2. Subprogram control 3. Canned cycles Function 1. Memory operation 2. Tape editing (main memory) 3. Subprogram call 4. Subprogram variable designation (Note 2) 5. Subprogram nesting level call (Note 3) 6. Canned cycles 7. Canned cycle subprogram editing

Case 2 Yes Yes No

Case 3 Yes Yes Yes

Case 4 No No Yes

Yes No No

Note 1) " " denotes function which can be used and " " a function which cannot be used. Note 2) Variables cannot be transferred with the M98 command but variable commands in subprograms can be used provided that the variable command specifications are available. Note 3) A maximum of 4 nesting levels can be possible.

- 186 -

13. Program Support Functions

(2) Command format Subprogram call M98 P__ H__ L__ ; Number of subprogram repetitions (L1 if omitted) Sequence number in subprogram to be called (head block if omitted) Program number of subprogram to be called (own program if omitted) P can only be omitted during memory operation and MDI operation. Return to main program from subprogram M99 P__ ; Sequence number of return destination (returned to block following block to be called if omitted)

(3) Creating and entering subprograms Subprograms have the same format as machining programs for normal memory operation except that the subprogram completion instruction M99 (P__) is entered as an independent block at the last block. O ................................ ................................ : : ................................ M99 ; % (EOR) ; ; ; ; ; Subprogram return command Entry completion code Program number as subprogram Main body of subprogram

The above program is entered by editing operations at the setting and display unit. For further details, refer to the section on program editing in the Control Instructions. Only those subprogram numbers ranging from 1 through 99999999 designated by the optional specifications can be used. When there are no program numbers on the tape, they are entered as the setting number for "program input." Up to 4 nesting levels can be used for calling subprograms, and program error "P230" results if this number is exceeded. No distinction between main programs and subprograms is made since they are entered in the sequence in which they were read. This means that main programs and subprograms should not be given the same numbers. (If they are, error "E11" appears during entry.)

- 187 -

13. Program Support Functions

Registration example ; O ................................ : M99 % O ; ................................ : M99 % O**** ................................ : M99 % ; ; ; ;

Subprogram A

; ; ; ; ; ; ;

Subprogram B

Subprogram C

Note 1) Main programs can be entered during memory, tape, MDI or BTR operation but subprograms must be entered in the memory. Note 2) Besides the M98 command, subprogram nesting is subject to the following commands: G65 : Macro call G66 : Modal call G66.1 : Modal call G code call Miscellaneous function call (M, S, T, etc.) Macro interrupt MDI interrupt Automatic tool length measurement Multi-stage skip function

Note 3) Subprogram nesting is not subject to the following commands which can be called even beyond the 4th nesting level. Canned cycles

- 188 -

13. Program Support Functions

(4) Subprogram execution M98 : Subprogram call command M99 : Subprogram return command Command format M98 P p1 H h1
Sequence number

l1
No. of repetitions

Subprogram number

Where

P = Subprogram number to be called by the numerical value of p1 with up to 8 digits H = Any sequence number within the subprogram to be called by the numerical value of h1 with up to 5 digits L = Number of repetitions from 1 to 9999 with numerical value of l1 up to 4 digits; if L is omitted, the function is executed once; with L0, there is no execution.

For instance M98 P1 L3 ; is equivalent to the following: M98 P1 ; M98 P1 ; M98 P1 ; (Example 1) When there are 3 subprogram calls (known as 3 nesting levels)
Main program Main program 1 Main program 2 Main program 3

Sequence of execution : (1) (2) (3) (3)' (2)' (1)' For nesting, the M98 and M99 commands should always be paired off on a 1:1 basis, (1)' for (1), (2)' for (2), etc. Modal information can be rewritten according to the execution sequence without distinction between main programs and subprograms. This means that after calling a subprogram, attention must be paid to the modal data status when programming.

- 189 -

13. Program Support Functions

(Example 2) The M98H__; M99P__; commands designate the sequence numbers in a program with a call instruction.
For M98H__ ; For M99P__ ;

(Example 3) Main program M98 P2 ; O1 ; : M99 ; % O2 ; N200 ; : M99 ; % O3 ; N200 : : M99 ; % Subprogram 1

Subprogram 2

Subprogram 3

Note 1) When the 02 N200 block is searched with the memory search function, the modal data from 02 through N200 are updated. Note 2) The same sequence number can be used with different subprograms. Note 3) When the subprogram is to be repeatedly used, it will be repeatedly executed for l1 times provided that M98 Pp1 Ll1 ; is programmed. (5) Other cautions 1) 2) Program error "P232" results when the designated program number (P) is not located. Single block stop does not occur with the M98P__; M99; block. If any address except O, N, P, L or H is used, single block stop can be executed. (With X100. M98 P100;, operation branches to O100 after X100. Is executed.) When M99 is commanded by the main program, operation returns to the head. (This is same for MDI.) Operation can branch from tape or BTR operation to a subprogram by M98P__ but the sequence number of the return destination cannot be designated with M99P__;, (P__ is ignored.) Bear in mind that the search operation will take time when the sequence number is designated by M99P__; .

3) 4)

5)

- 190 -

Search

13. Program Support Functions

13.3.2 Calling subprogram with M198 commands


Programs saved in the IC card can be called as subprograms. To call a program in the IC card as a subprogram, command in the main program as shown below. M198 P____ L____ ; P : Number of program in IC card to be called as subprogram. (Max. 8 digits) L : Number of subprogram repetitions. (Max. 4 digits) This can be omitted. (In this case, the subprogram will be called once.) When "L0" is designated, the subprogram call will not be executed. * A sequence No. (M198 H) cannot be called. The subprograms that can be called from the main program are shown below. The subprogram can be called with the M198 command once in the subprogram nest. Operation mode Memory and MDI mode Tape mode Sub Main Memory IC card Tape Memory IC card Tape

- 191 -

13. Program Support Functions

13.4 Variable commands


(1) Function and objective Programming can be endowed with flexibility and general-purpose capabilities by designating variables, instead of giving direct numerical values to particular addresses in a program, and by assigning the values of those variables as required when executing a program. (2) Command format # = (3) Detailed description a. Variable expressions 1) #m............ m = value consisting of 0 to 9 2) #[f]............ f = one of the following in the formula Numerical value m Variable Formula operator formula (minus) formula [Formula] function [formula] Note 1) Note 2) Note 3) Note 4) Example #100 # [#120] 123 #543 #110 + #119 #120 [#119] SIN [#110] or # = [formula]

The 4 standard operators are +, , and /. Functions cannot be used unless the user macro specifications are available. Error "P241" results when a variable number is negative. Examples of incorrect variable expressions are given below. Incorrect Correct #6/2 #[6/2] # 5 #[ [5]] # [#1] #[#1]

b. Type of variables The following table gives the types of variables. Type of variable Common variables System 1 Number Common variables 2 100 to 149 100 to 199 100 to 199 100 to 199 100 to 199 100 to 149 *2 100 to 199 *2 100 to 199 *2 100 to 199 *2 Function Can be used in common throughout main, sub and macro programs. Common variables 1 500 to 549 100 sets 200 sets 500 to 599 300 sets 500 to 699 600 sets 500 to 999 System 2 700 sets 400 to 999 50 + 50 sets 500 to 549 100 + 100 sets 500 to 599 400 + 100 sets 500 to 899 500 + 100 sets 500 to 999

- 192 -

13. Program Support Functions

Type of variable Local variables System variables Canned cycle variables

Number 1 to 33 1000 to 1 to 32

Function Can be used for local variables in macro programs. Application is fixed by system. Local variables in canned cycle programs.

Note 1) All common variables are retained even when the power is switched off. Note 2) When the power is turned off or reset, the common variables can be set to <null> by setting the parameter (#1128 RstVC1, #1129 PwrVC1). Note 3) The common variables are divided into the following two types. Common variables 1 : Used in common through all systems Common variables 2 : Used in common in the programs of the system c. Variable quotations Variables can be used for all addresses except O, N and / (slash). 1) When the variable value is used directly: X#1.................................... Value of #1 is used as the X value. 2) When the complement of the variable value is used: X #2................................ Value with the #2 sign changed is used as the X value. 3) When defining variables: #3 = #5 .............................. Variable #3 uses the equivalent value of variable #5. #1 = 1000 ......................... Variable #1 uses the equivalent value 1000 (which is treated as 1000.) 4) When defining the variable arithmetic formula: #1 = #3 + #2 100............ The value of the arithmetic result of #3 + #2 100. Is used as the #1 value. X[#1 + #3 + 1000] ............. The value of the arithmetic result of #1 + #3 + 1000. Is used as the X value. Note 1) A variable cannot be defined in the same block as an address. It must be defined in a separate block. Incorrect Correct X#1 = #3 + 100; #1 = #3 + 100 ; X#1 ; Note 2) Up to five sets of square parentheses [ ] may be used. #543 = [[[[[#120]/2+15.]3 #100]/#520 + #125 + #128] #130 + #132] Note 3) There are no restrictions on the number of characters and number of variables for variable definition. Note 4) The variable values should be within a range form 0 to 99999999. If this range is exceeded, the arithmetic operations may not be conducted properly. Note 5) The variable definitions are valid from the moment that the variables are actually defined. #1 = 100 ;......................... #1 = 100 Valid from the next command #1 = 200 #2 = #1 + 200 ; #1 = 200, #2 = 400 Valid from the next command #3 = #1 + 300 ; ................ #3 = 500 Valid from the next command Note 6) Variable quotations are always regarded as having a decimal point at the end. When #100 = 10, then X#100 ; is treated as X10. - 193 -

13. Program Support Functions

13.5 User macro specifications


13.5.1 User macro commands
By combining the user macros with variable commands, it is possible to use macro program call, arithmetic operation, data input/output with PLC, control, decision, branch and many other instructions for measurement and other such applications. O Main program ....... ; O Macro program ....... ;

Macro call instruction

M30 ;

M99 ;

Macro programs use variables, arithmetic instructions and control instructions to create subprograms which function to provide special-purpose control. These special-purpose control functions (macro programs) are called by the macro call instructions exactly when required from the main program. The following G codes are available for the macro call commands. G code G65 G66 G66.1 G67 Function User macro Simple call User macro Modal call A (Movement command call) User macro Modal call B (Per-block call) User macro Modal call cancel

Detailed description 1) When the G66 (or 66.1) command is entered, the specified user macro subprogram will be called after each block has been executed (or after the movement command in the block) with the movement commands has been executed until the G67 (cancel) command is entered. 2) The G66 (or G66.1) and G67 commands must be paired in the same program.

- 194 -

13. Program Support Functions

13.5.2 Macro call instruction


Included among the macro call commands are the simple calls which apply only to the instructed block and also modal calls (types A and B) which apply to each block in the call modal. (1) Simple macro calls Main program G65Pp1Ll1 <argument>; M99
To main program

To subprogram

Subprogram (Oo1) Oo1

M99 is used to conclude the user macro subprogram. Format ; G65 P___ L___ <argument> ; No. of repetitions Program No.

When the <argument> must be transferred as a local variable to a user macro subprogram, the actual value should be designated after the address. Regardless of the address, a sign and decimal point can be used in the argument. There are 2 ways in which arguments are designated.

- 195 -

13. Program Support Functions

a.

Argument designation I Format : A__ B__ C__ X__ Y__ Z__ Detailed description 1) Arguments can be designated using any address except G, L, N, O and P. 2) Except for I, J and K, there is no need for designation in alphabetical order. 3) I, J and K must be designated in alphabetical order. I__ J__ K__ ............. Correct J__ I__ K__ ............. Incorrect 4) Address which do not need to be designated can be omitted. 5) The following table shows the correspondence between the addresses which can be designated by argument designation I and the variable numbers in the user macro main body. Address and variable number correspondence Variable in Argument designation I macro address A #1 B #2 C #3 D #7 E #8 F #9 G #10 H #11 I #4 J #5 K #6 L #12 M #13 N #14 O P Q R S T U V W X Y Z #15 #16 #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 Call instructions and usable address G65, G66 G66.1

: Can be used. : Cannot be used. : Can be used while G66.1 command is modal.

- 196 -

13. Program Support Functions

b.

Argument designation II Format : A__ B__ C__ I__ J__ K__ I__ J__ K__ Detailed description 1) In addition to address A, B and C, up to 10 groups of arguments with I, J, K serving as 1 group can be designated. 2) When the same address is duplicated, designate the addresses in the specified order. 3) Addresses which do not need to be designated can be omitted. 4) The following table shows the correspondence between the addresses which can be designated by argument designation II and the variable numbers in the user macro main body. Argument designation II address B C I1 J1 K1 I2 J2 K2 I3 J3 K3 I4 J4 K4 I5 Variable within macro #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 Argument designation II address J5 K5 I6 J6 K6 I7 J7 K7 I8 J8 K8 I9 J9 K9 I10 J10 K10 Variable within macro #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31 #32 #33

Note 1) The numbers 1 through 10 accompanying I, J and K denote the sequence of the commanded groups and they are not required for the actual instructions. c. Using arguments designations I and II together If addresses corresponding to the same variable are commanded when both types I and II are used to designate arguments, the latter address is valid. (Example 1) Call instruction Variable #1 : 1.1 #2 : 2.2 #4 : 4.4 #5 : #6 : #7 : 3.3 G65 A1.1 B-2.2 D3.3 I4.4 I7.7 ;

7.7

In the above example, the last I7.7 argument is valid when both arguments D3.3 and I7.7 are commanded for the #7 variable.

- 197 -

13. Program Support Functions

(2) Modal call A (movement command call) Main program G65Pp1Ll1 <argument>; M99 G67
To subprogram To main program To subprogram

Subprogram Oo1

When the block with a movement command is commanded between G66 and G67, the movement command is first executed and then the designated user macro subprogram is executed. The number of times the subprogram is executed is l1 times with each call. The <argument> is the same as for a simple call. Format ; G66 P___ L___ <argument> ; No. of repetitions Program No. Detailed description 1) When the G66 command is entered, the specified user macro subprogram will be called after the movement command in the block with the movement commands has been executed until the G67 (cancel) command is entered. 2) The G66 and G67 commands must be paired in the same program. A program error will result when G67 is issued without the G66 command. (Example) Drill cycle

Note 1) After the axis command is executed in the main program, the subprogram is executed. Note 2) The subprogram is not executed in the blocks following G67. - 198 -

13. Program Support Functions

(3) Modal call B (for each block) The specified user macro subprogram is called unconditionally for each command block which is assigned between G66.1 and G67 and the subprogram is executed l1 times. Format ; G66.1 P___ L___ <argument> ; No. of repetitions Program No.

Detailed description 1) In the G66.1 mode, everything except the O, N and G codes in the various command blocks which are read are handled as the argument without being executed. Any G code designated last or any N code commanded after anything except O and N will function as the argument. 2) The same applies as when G65P__ is assigned at the head of a block for all significant blocks in the G66.1 mode. (Example 1) N100 G01 G90 X100. Y200. F400 R1000; in the G66.1 P1000; mode is the same as: N100 G65 P1000 G01 G90 X100. Y200. F400 R1000; Note 1) The Call is performed even in the G66.1 command block in the G66.1 mode and the correspondence between the argument address and the variable number is the same as for G65 (simple call). 3) The range of the G and N command values which can be used anew as variables in the G66.1 mode is subject to the restrictions applying to values as normal NC command values. 4) O, sequence numbers N and modal G codes are updated as modal information. (4) G code macro call User macro subprogram with prescribed program numbers can be called merely by issuing the G code command.

Format ; G <argument> ; G code for macro call Detailed description 1) The above instruction functions in the same way as the instructions below, and parameters are set for each G code to determine the correspondence with the instructions. a. M98P ; b. G65P <argument> ; c. G66P <argument> ; d. G66.1P <argument> ; When the parameters corresponding to c and d above are set, issue the cancel command (G67) either in the user macro or after the call code has been commanded so as to cancel the modal call.

- 199 -

13. Program Support Functions

2) The correspondence between the "XX" which conducts the macro call and the program number P of the macro to be called is set by parameter. 3) Up to 10 G codes from G100 to G255 can be used with this instruction. (G01 to 99 can also be used with parameter #1081 Gmac_P). Note 1) G101 to G110 and G200 to G202 are user macro I codes, but if the parameters are set as the G code call codes, the G code call will be the priority, and these codes cannot be used for user macro I. 4) These commands cannot be issued during a user macro subprogram which has been called by a G code. Program example Program example G16X100. Y100. Z100. F500 ; O9016

M99 ;

(5) Miscellaneous command macro call (for M, S, T, B code macro call) The user macro subprogram of the specified program number can be called merely by issuing an M (or S, T, B) code. (Only entered codes apply for M but all S, T and B codes apply.) Format ; Mm ; (or Ss ;, Tt ;, Bb ;) M code for macro call (or S, T, B code)

Detailed description 1) The above instruction functions in the same way as the instructions below, and parameters are set for each M code to determine the correspondence with the instructions. (Same for S, T and B codes) a. M98P ; b. G65P Mm ; c. G66P Mm ; d. G66.1P Mm ; When the parameters corresponding to c and d above are set, issue the cancel command (G67) either in the user macro or after the call code has been commanded so as to cancel the modal call. 2) The correspondence between the "Mm" which conducts the macro call and the program number P of the macro to be called is set by parameter. Up to 10 M codes from M00 to M95 can be entered. Note that the codes to be registered are the codes basically required for the machine, and codes excluding M0, M1, M2, M30 and M96 to M99. 3) As with M98, it is displayed on the screen of the setting and display unit but the M codes and MF are not output. M98, Mm are not output

- 200 -

13. Program Support Functions

4) Even if the miscellaneous command entered above is issued during a user macro subprogram called by the M code, macro call will not result and it will be handled as an ordinary miscellaneous command. 5) All S, T and B codes call the subprograms in the prescribed program numbers of the corresponding S, T and B functions. 6) A maximum of 10 M codes can be set. However when not setting all 10. Set the parameters as shown below. [ MACRO ] <Code> <Type> <Program No.> M [01] 20 0 8000 M [02] 21 0 8001 M [03] 9999 0 199999999 M [04] 9999 0 199999999 M [05] 9999 0 199999999 : : : : : : M [10] 9999 0 199999999 Setting to call O8000 with type 0 (M98 type) during M20 command Setting to call O8001 with type 0 (M98 type) during M21 command Set parameters not being used as shown on left.

(6) Differences between M98 and G65 commands 1) 2) 3) The argument can be designated for G65 but not for M98. The sequence number can be designated for M98 but no for G65, G66 and G66.1. M98 executes a subprogram after all the commands except M, P, H and L in the M98 block have been executed, but G65 branches to the subprogram without any further operation. 4) When any address except O, N, P, H or L is included in the M98 block, single block stop results. This is not the case with G65. 5) The level of the M98 local variables is fixed but it can be varied in accordance with the nesting depth for G65. (#1, for instance, has the same significance either before or after M98 but a different significance in each case with G65.) 6) The M98 nesting depth extends up to 8 levels in combination with G65, G66 and G66.1. The G65 nesting depth extends up to only 4 levels in combination with G66 and G66.1. (7) Macro call command nesting depth Up to 4 nesting levels are available for macro subprogram calls based on simple call or modal call. The argument with a macro call instruction is valid only on the called macro level. Since the nesting depth for macro calls extends up to 4 levels, the argument can be used as a local variable for the program with each respective macro call. Note 1) When a G65, G66, G66.1 G code macro call or miscellaneous command macro call is conducted, this is regarded as nesting level 1 and the level of the local variables is also incremented by one. Note 2) The designated user macro subprogram is called every time the movement command is executed with modal call A. However, when the G66 command has been duplicated, the next user macro subprogram is called every time an axis is moved even with movement commands in the macro. User macro subprograms are called in sequence from the subprogram commanded last. (8) Precautions during PC-direct operation 1) 2) To call subprogram stored in a directory different from the one with main program, file search path must be set. During MDI operation, subprograms stored in PC side can not be called. - 201 -

13. Program Support Functions

(Example 1)
Main program
(p1 call) Macro p1 User macro operation

After Z1 execution Macro p1 (p2 call) After Z2 execution (p2 cancel) Macro After Z3 execution (p1 cancel) Macro p1 Macro p2 Macro p2

13.5.3 Variables
Both the variable specifications and user macro specifications are required for the variables which are used with the user macros. The offset amounts of the local, common and system variables among the variables for this MELDAS NC system except #33 are retained even when the unit's power is switched off. (Common variables can also be cleared by parameter #1129 PwrVC1.) (1) Use of multiple variables When the user macro specifications applied, variable numbers can be turned into variables (multiple use of variables) or replaced by <formula>. Only one of the four basic arithmetic rule (+, , , ) operations can be conducted with <formula>. (Example 1) Multiple use of variables #1 = 10 #10 = 20 #20 = 30 ; #5 = #[#[#1]] ; #1 = 20 #10 = 20 #20 = 30 #5 = 1000 ; #[#[#1]] = #5 ; #[#[#1]] = #[#10] from #1 = 10. #[#10] = #20 from #10 = 20. Therefore, #5 = #20 or #5 = 30. #[#[#1]] = #[#10] from #1 = 10. #[#10] = #20 from #10 = 20. Therefore, #20 = #5 or #20 = 1000.

(Example 2) Example of multiple designation of variables #10 = 5 <Formula> In which case ##10 = 100 ; #5 = 100 ##10 = 100; is handled in the same manner as # [#10] = 100.

(Example 3) Replacing variable numbers with <formula> #10 = 5 ; #[#10 + 1] = 1000 ; #[#10 1] = 1000 ; #[#103] = 100 ; #[#10/2] = 100 ; In which case, #6 = 1000. In which case, #4 = 1000. In which case, #15 = 100. In which case, #2 = 100.

- 202 -

13. Program Support Functions

(2) Undefined variables Variables applying with the user macro specifications such as variables which have not been used even once after the power was switched on or local variables not quoted by the G65, G66 or G66.1 commands can be used as <vacant>. Also, variables can forcibly be set to <vacant>. Variable #0 is always used as the <vacant> variable and cannot be defined in the left-side member. 1) Arithmetic expressions #1 = #0 ; ............................ #2 = #0 + 1 ;...................... #3 = 1 + #0 ;...................... #4 = #010 ; ...................... #5 = #0 + #0 ;.................... #1 = <vacant> #2 = 1 #3 = 1 #4 = 0 #5 = 0

It should be borne in mind that <vacant> in an arithmetic expression is handled in the same way as 0. <Vacant> + <Vacant> = 0 <Vacant> + <Constant> = Constant <Constant> + <Vacant> = Constant 2) Variable quotations When undefined variables only are quoted, they are ignored up to the address. When #1 = <Vacant> G0 X#1 Y1000 ; ................ Equivalent to G0 Y1000 ; G0 X#1 + 10 Y1000 ; ........ Equivalent to G0 X10 Y1000 ; 3) Conditional expressions <Vacant> and 0 are not equivalent for EQ and NE only. (#0 means <vacant>.) When #101 = <Vacant> #101 EQ #0 <Vacant> = <Vacant> established #101 NE 0 <Vacant> 0 established #101 GE #0 <Vacant> <Vacant> established #101 GT 0 <Vacant> > 0 not established #101 LE #0 <Vacant> <Vacant> established #101 LT 0 <Vacant> < 0 not established When #101 = 0 #101 EQ #0 0 = <Vacant> not established #101 NE 0 0 0 not established #101 GE #0 0 <Vacant> established #101 GT 0 0 > 0 not established #101 LE #0 0 <Vacant> established #101 LT 0 0 < 0 not established

Note 1) EQ and NE should be used only for integers. For comparison of numeric values with decimals, GE, GT, LE, and LT should be used.

- 203 -

13. Program Support Functions

13.5.4 Types of variables


(1) Common variables Common variables can be used commonly from any position. Number of the common variables sets depends on the specifications. Refer to "13.4 Variable commands" for details. (2) Local variables (#1 to #32) These can be defined as an <argument> when a macro subprogram is called or used locally within main programs and subprograms. They can be duplicated regardless of the relationship existing between macros (up to 4 levels). G65 Pp1 Ll1 <argument> ; Where p1 = Program number l1 = Number of repetitions The <argument> is assumed to be Aa1 Bb1 Cc1 .............. Zz1. The following table shows the correspondences between the addresses designated by <argument> and the local variable numbers used in the user macro main bodies. [Argument specification I] Call command Argument address G65 G66.1 G66 A B C D E F G H I J K

Local variable number #1 #2 #3 #7 #8 #9 #10 #11 #4 #5 #6 #12 #13 #14 #15 #16

Call command Argument address G65 G66.1 G66 Q R S T U V W X Y Z

Local variable number #17 #18 #19 #20 #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31 #32 #33

L M N O P

" " in the above table denotes an argument address which cannot be used. However, provided that the G66.1 mode has been established, an argument address denoted by the asterisk can be added for use. "" denotes that a corresponding address is not available.

- 204 -

13. Program Support Functions

[Argument specification II] Argument specification II address A B C I1 J1 K1 I2 J2 K2 I3 J3 K3 I4 J4 K4 I5 J5 K5 Variable in macro #1 #2 #3 #4 #5 #6 #7 #8 #9 #10 #11 #12 #13 #14 #15 #16 #17 #18 Argument specification II address I6 J6 K6 I7 J7 K7 I8 J8 K8 I9 J9 K9 I10 J10 K10 Variable in macro #19 #20 #21 #22 #23 #24 #25 #26 #27 #28 #29 #30 #31 #32 #33

Subscripts 1 to 10 for I, J, and K indicate the order of the specified command sets. They are not required to specify instructions. 1) Local variables in subprograms can be defined by means of the <argument> designation during macro call.
Subprogram (9900)

Main program

To subprogram

Refer to the local variables and control the movement, etc. Local variables set by argument

Local variable data table

- 205 -

13. Program Support Functions

2)

The local variables can be used freely in that subprogram.


Subprogram (1)

Main program

To subprogram

Example of front surface milling

Local variables set by argument Local variable data table

The local variables can be changed in the subprogram.

In the front surface milling example, argument J is programmed as the milling pitch 10.mm. However, this is changed to 8.333mm to create an equal interval pitch. The results of the No. of reciprocation data calculation is set in local variable #30.

- 206 -

13. Program Support Functions

3)

Local variables can be used independently on each of the macro call levels (4 levels). Local variables are also provided independently for the main program (macro level 0). Arguments cannot be used for the level 0 local variables.
O1 (macro level 1) O10 (macro level 2) O100 (macro level 3)

Main (level 0)

Local variables (0)

Local variables (1)

Local variables (2)

Local variables (3)

The status of the local variables appear on the setting and display unit. Refer to the Operation Manual for details.

- 207 -

13. Program Support Functions

(3) Macro interface inputs (#1000 to #1035, #1200 to #1295) The status of the interface input signals can be ascertained by reading out the values of variable numbers 1000 through 1035. A variable value which has been read out can be only one of 2 values: 1 or 0 (1: contact closed, 0: contact open). All the input signals from #1000 through #1031 can be read at once by reading out the value of variable number 1032. Variable numbers #1000 through #1035 are for readout only, and cannot be placed in the left side member of their arithmetic formula. Input here refers to input to the control unit. System variable #1000 #1001 #1002 #1003 #1004 #1005 #1006 #1007 #1008 #1009 #1010 #1011 #1012 #1013 #1014 #1015 System variable #1032 #1033 #1034 #1035 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No. of points 32 32 32 32 Interface input signal Register R72 bit 0 Register R72 bit 1 Register R72 bit 2 Register R72 bit 3 Register R72 bit 4 Register R72 bit 5 Register R72 bit 6 Register R72 bit 7 Register R72 bit 8 Register R72 bit 9 Register R72 bit 10 Register R72 bit 11 Register R72 bit 12 Register R72 bit 13 Register R72 bit 14 Register R72 bit 15 Interface input signal Register R72, R73 Register R74, R75 Register R76, R77 Register R78, R79 System variable #1016 #1017 #1018 #1019 #1020 #1021 #1022 #1023 #1024 #1025 #1026 #1027 #1028 #1029 #1030 #1031 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Interface input signal Register R73 bit 0 Register R73 bit 1 Register R73 bit 2 Register R73 bit 3 Register R73 bit 4 Register R73 bit 5 Register R73 bit 6 Register R73 bit 7 Register R73 bit 8 Register R73 bit 9 Register R73 bit 10 Register R73 bit 11 Register R73 bit 12 Register R73 bit 13 Register R73 bit 14 Register R73 bit 15

- 208 -

13. Program Support Functions

System variable #1200 #1201 #1202 #1203 #1204 #1205 #1206 #1207 #1208 #1209 #1210 #1211 #1212 #1213 #1214 #1215 System variable #1232 #1233 #1234 #1235 #1236 #1237 #1238 #1239 #1240 #1241 #1242 #1243 #1244 #1245 #1246 #1247

No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R74 bit 0 Register R74 bit 1 Register R74 bit 2 Register R74 bit 3 Register R74 bit 4 Register R74 bit 5 Register R74 bit 6 Register R74 bit 7 Register R74 bit 8 Register R74 bit 9 Register R74 bit 10 Register R74 bit 11 Register R74 bit 12 Register R74 bit 13 Register R74 bit 14 Register R74 bit 15 Interface input signal Register R76 bit 0 Register R76 bit 1 Register R76 bit 2 Register R76 bit 3 Register R76 bit 4 Register R76 bit 5 Register R76 bit 6 Register R76 bit 7 Register R76 bit 8 Register R76 bit 9 Register R76 bit 10 Register R76 bit 11 Register R76 bit 12 Register R76 bit 13 Register R76 bit 14 Register R76 bit 15

System variable #1216 #1217 #1218 #1219 #1220 #1221 #1222 #1223 #1224 #1225 #1226 #1227 #1228 #1229 #1230 #1231 System variable #1248 #1249 #1250 #1251 #1252 #1253 #1254 #1255 #1256 #1257 #1258 #1259 #1260 #1261 #1262 #1263

No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R75 bit 0 Register R75 bit 1 Register R75 bit 2 Register R75 bit 3 Register R75 bit 4 Register R75 bit 5 Register R75 bit 6 Register R75 bit 7 Register R75 bit 8 Register R75 bit 9 Register R75 bit 10 Register R75 bit 11 Register R75 bit 12 Register R75 bit 13 Register R75 bit 14 Register R75 bit 15 Interface input signal Register R77 bit 0 Register R77 bit 1 Register R77 bit 2 Register R77 bit 3 Register R77 bit 4 Register R77 bit 5 Register R77 bit 6 Register R77 bit 7 Register R77 bit 8 Register R77 bit 9 Register R77 bit 10 Register R77 bit 11 Register R77 bit 12 Register R77 bit 13 Register R77 bit 14 Register R77 bit 15

- 209 -

13. Program Support Functions

System variable #1264 #1265 #1266 #1267 #1268 #1269 #1270 #1271 #1272 #1273 #1274 #1275 #1276 #1277 #1278 #1279

No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R78 bit 0 Register R78 bit 1 Register R78 bit 2 Register R78 bit 3 Register R78 bit 4 Register R78 bit 5 Register R78 bit 6 Register R78 bit 7 Register R78 bit 8 Register R78 bit 9 Register R78 bit 10 Register R78 bit 11 Register R78 bit 12 Register R78 bit 13 Register R78 bit 14 Register R78 bit 15

System variable #1280 #1281 #1282 #1283 #1284 #1285 #1286 #1287 #1288 #1289 #1290 #1291 #1292 #1293 #1294 #1295

No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R79 bit 0 Register R79 bit 1 Register R79 bit 2 Register R79 bit 3 Register R79 bit 4 Register R79 bit 5 Register R79 bit 6 Register R79 bit 7 Register R79 bit 8 Register R79 bit 9 Register R79 bit 10 Register R79 bit 11 Register R79 bit 12 Register R79 bit 13 Register R79 bit 14 Register R79 bit 15

(4) Macro interface outputs (#1100 to #1135, #1300 to #1395) The interface output signals can be sent by substituting values in variable numbers 1100 through 1135. An output signal can be only 0 or 1. All the output signals from #1100 through #1131 can be sent at once by substituting a value in variable number 1132. (20 to 231) The status of the writing and output signals can be read in order to offset the #1100 through #1135 output signals. Output here refers to the output from the NC. System variable #1100 #1101 #1102 #1103 #1104 #1105 #1106 #1107 #1108 #1109 #1110 #1111 #1112 #1113 #1114 #1115 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Interface input signal Register R172 bit 0 Register R172 bit 1 Register R172 bit 2 Register R172 bit 3 Register R172 bit 4 Register R172 bit 5 Register R172 bit 6 Register R172 bit 7 Register R172 bit 8 Register R172 bit 9 Register R172 bit 10 Register R172 bit 11 Register R172 bit 12 Register R172 bit 13 Register R172 bit 14 Register R172 bit 15 System variable #1116 #1117 #1118 #1119 #1120 #1121 #1122 #1123 #1124 #1125 #1126 #1127 #1128 #1129 #1130 #1131 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Interface input signal Register R173 bit 0 Register R173 bit 1 Register R173 bit 2 Register R173 bit 3 Register R173 bit 4 Register R173 bit 5 Register R173 bit 6 Register R173 bit 7 Register R173 bit 8 Register R173 bit 9 Register R173 bit 10 Register R173 bit 11 Register R173 bit 12 Register R173 bit 13 Register R173 bit 14 Register R173 bit 15

- 210 -

13. Program Support Functions

System variable #1132 #1133 #1134 #1135 System variable #1300 #1301 #1302 #1303 #1304 #1305 #1306 #1307 #1308 #1309 #1310 #1311 #1312 #1313 #1314 #1315 System variable #1332 #1333 #1334 #1335 #1336 #1337 #1338 #1339 #1340 #1341 #1342 #1343 #1344 #1345 #1346 #1347

No. of points 32 32 32 32 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R172, R173 Register R174, R175 Register R176, R177 Register R178, R179 Interface input signal Register R174 bit 0 Register R174 bit 1 Register R174 bit 2 Register R174 bit 3 Register R174 bit 4 Register R174 bit 5 Register R174 bit 6 Register R174 bit 7 Register R174 bit 8 Register R174 bit 9 Register R174 bit 10 Register R174 bit 11 Register R174 bit 12 Register R174 bit 13 Register R174 bit 14 Register R174 bit 15 Interface input signal Register R176 bit 0 Register R176 bit 1 Register R176 bit 2 Register R176 bit 3 Register R176 bit 4 Register R176 bit 5 Register R176 bit 6 Register R176 bit 7 Register R176 bit 8 Register R176 bit 9 Register R176 bit 10 Register R176 bit 11 Register R176 bit 12 Register R176 bit 13 Register R176 bit 14 Register R176 bit 15 System variable #1316 #1317 #1318 #1319 #1320 #1321 #1322 #1323 #1324 #1325 #1326 #1327 #1328 #1329 #1330 #1331 System variable #1348 #1349 #1350 #1351 #1352 #1353 #1354 #1355 #1356 #1357 #1358 #1359 #1360 #1361 #1362 #1363 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Interface input signal Register R175 bit 0 Register R175 bit 1 Register R175 bit 2 Register R175 bit 3 Register R175 bit 4 Register R175 bit 5 Register R175 bit 6 Register R175 bit 7 Register R175 bit 8 Register R175 bit 9 Register R175 bit 10 Register R175 bit 11 Register R175 bit 12 Register R175 bit 13 Register R175 bit 14 Register R175 bit 15 Interface input signal Register R177 bit 0 Register R177 bit 1 Register R177 bit 2 Register R177 bit 3 Register R177 bit 4 Register R177 bit 5 Register R177 bit 6 Register R177 bit 7 Register R177 bit 8 Register R177 bit 9 Register R177 bit 10 Register R177 bit 11 Register R177 bit 12 Register R177 bit 13 Register R177 bit 14 Register R177 bit 15

- 211 -

13. Program Support Functions

System variable #1364 #1365 #1366 #1367 #1368 #1369 #1370 #1371 #1372 #1373 #1374 #1375 #1376 #1377 #1378 #1379

No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R178 bit 0 Register R178 bit 1 Register R178 bit 2 Register R178 bit 3 Register R178 bit 4 Register R178 bit 5 Register R178 bit 6 Register R178 bit 7 Register R178 bit 8 Register R178 bit 9 Register R178 bit 10 Register R178 bit 11 Register R178 bit 12 Register R178 bit 13 Register R178 bit 14 Register R178 bit 15

System variable #1380 #1381 #1382 #1383 #1384 #1385 #1386 #1387 #1388 #1389 #1390 #1391 #1392 #1393 #1394 #1395

No. of points 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Interface input signal Register R179 bit 0 Register R179 bit 1 Register R179 bit 2 Register R179 bit 3 Register R179 bit 4 Register R179 bit 5 Register R179 bit 6 Register R179 bit 7 Register R179 bit 8 Register R179 bit 9 Register R179 bit 10 Register R179 bit 11 Register R179 bit 12 Register R179 bit 13 Register R179 bit 14 Register R179 bit 15

Note 1) The last values of the system variables #1100 through #1135 sent are retained as 1 or 0. (They are not cleared even with resetting.) Note 2) The following applies when any number except 1 or 0 is substituted into #1100 through #1131. <Vacant> is treated as 0. Any number except 0 and <vacant> is treated as 1. Any value less than 0.00000001 is indefinite.

- 212 -

13. Program Support Functions

Input signal

Output signal

Read only

Read/write

- 213 -

Macro instructions

13. Program Support Functions

(5) Tool offset Variable number range #10001 to #10000 + n #11001 to #11000 + n #16001 to #16000 + n #17001 to #17000 + n #2001 to #2000 + n #2201 to #2200 + n #2401 to #2400 + n #2601 to #2600 + n

Type 1

Type 2 (Length dimension) (Length wear) (Radius dimension) (Radius wear)

Tool data can be read and values substituted using the variable numbers. Either the numbers in the #10000 order or #2000 order can be used. The last 3 digits of the variable numbers correspond to the tool offset number. n corresponds to the No. of tool offset sets. If there are 4000 tool offset sets and type 2 is being used, avoid variable Nos. in the #2000 order, and instead use the #10000 order. The tool offset data are configured as data with a decimal point in the same way as for other variables. Consequently, this decimal point must be commanded when data below the decimal point is to be entered. Programming example Common variables Tool offset data

After execution

(Example 1) Calculation and tool offset data setting


Zero point return Tool change (spindle T01) Start point memory Rapid traverse to safety position Skip measurement Measured distance calculation and tool offset data setting

Sensor

Note)

In this example, no consideration is given to the delay in the skip sensor signal. #5003 is the Z-axis start point position and #5063 is the Z-axis skip coordinates, and indicated is the position at which the skip signal is input while G31 is being executed.

- 214 -

13. Program Support Functions

(6) Work coordinate system offset By using variable numbers 5201 through 5324, it is possible to read out the work coordinate system offset data or to substitute values. Note) The number of axes which can be controlled differs according to the specifications. Axis No. Axis name External work offset G54 G55 G56 G57 G58 G59
(Example 1)

Axis 1 #5201 #5221 #5241 #5261 #5281 #5301 #5321

Axis 2 #5202 #5222 #5242 #5262 #5282 #5302 #5322

Axis 3 #5203 #5223 #5243 #5263 #5283 #5303 #5323

Axis 4 #5204 #5224 #5244 #5264 #5284 #5304 #5324

Remarks External workpiece offset specifications are required.

G54 work coordinate system defined by N10

G54 work coordinate system defined by N2

(Example 2)

Base machine coordinate system External workpiece offset

Coordinate system before change

Base machine coordinate system

Coordinate system after change

This is an example where the external workpiece offset values are added to the work coordinate (G54, G55) system offset values without changing the position of the work coordinate systems.

- 215 -

13. Program Support Functions

(7) Alarm (#3000) The NC system can be forcibly set to the alarm state by using variable number 3000. Command format #3000 = 70 (CALL#PROGRAMMER#TEL#530) : Alarm message Alarm number Any alarm number from 1 to 9999 can be specified. The alarm message must be less than 31 characters long. The "P277" user macro alarm message appears in the <alarm> column on diagnosis screen 1 while the alarm number and alarm message CALL #PROGRAMMER #TEL#530 is indicated in the <operator message>.
Example of program (alarm when #1 = 0) <Alarm> P277 : Macro alarm message Stops with NC alarm <Operator message>

Note 1) Alarm number 0 is not displayed and any number exceeding 9999 cannot be indicated. Note 2) The characters following the first alphabet letter in the right member is treated as the alarm message. Therefore, a number cannot be designated as the first character of an alarm message. It is recommended that the alarm messages be enclosed in round parentheses.

- 216 -

13. Program Support Functions

(8) Integrating (run-out) time (#3001, #3002) The integrating (run-out) time can be read during automatic operation or automatic start or values can be substituted by using variable numbers 3001 and 3002. Variable number 3001 1ms 3002 Contents when power is switched on Same as when power is switched off Initialization of contents

Type Integrating (run-out) time 1 Integrating (run-out) time 2

Unit

Count condition

At all times while Value substituted power is ON for variable In-automatic start

The integrating run time returns to zero in about 2.44 1011 ms (approximately 7.7 years).

(allowable time)

ms

To subprogram

Entered in local variable #20

Local variable

Allowable time portion : DO1-END is repeated and when allowable time is reached, operations jumps to M99.

(9) Suppression of single block stop and miscellaneous function finish signal waiting By substituting the values below in variable number 3003, it is possible to suppress single block stop in the subsequent blocks or to advance to the next block without waiting for the miscellaneous function (M, S, T, B) finish (FIN) signal. #3003 0 1 2 3 Single block stop Not suppressed Suppressed Not suppressed Suppressed Miscellaneous function finish signal Awaited Awaited Not awaited Not awaited

Note 1) #3003 is cleared to zero by NC reset.

- 217 -

13. Program Support Functions

(10) Feed hold, feedrate override, G09 valid/invalid By substituting the values below in variable number 3004, it is possible to make the feed hold, feedrate override and G09 functions either valid or invalid in the subsequent blocks. #3004 Contents (value) 0 1 2 3 4 5 6 7 Bit 0 Feed hold Valid Invalid Valid Invalid Valid Invalid Valid Invalid Bit 1 Feedrate override Valid Valid Invalid Invalid Valid Valid Invalid Invalid Bit 2 G09 check Valid Valid Valid Valid Invalid Invalid Invalid Invalid

Note 1) Variable number #3004 is set to zero by NC reset. Note 2) The functions are valid when the above bits are 0 and invalid when they are 1. (11) Message display and stop By using variable number 3006, the execution is stopped after the previous block has been executed and, if message display data have been commanded, then the corresponding message will be indicated. Command format #3006 = 1 ( TAKE FIVE ) : Message

The message should not be longer than 31 characters and it should be enclosed within round ( ) parentheses. (12) Mirror image By reading variable number 3007, it is possible to ascertain the status of mirror image at a particular point in time for each axis. The axes correspond to the bits of #3007. When the bits are 0, it means that the mirror image function is not valid; when they are 1, it means that it is valid. #3007 Bit nth axis 15 14 13 12 11 10 9 8 7 6 5 6 4 5 3 4 2 3 1 2 0 1

- 218 -

13. Program Support Functions

(13) G command modals Using variable numbers 4001 through 4021, it is possible to read the G modal commands which have been issued up to the block immediately before. Similarly, it is possible to read the modals in the block being executed with variable numbers #4201 through #4221. Variable number Pre-read block #4001 #4002 #4003 #4004 #4005 #4006 #4007 #4008 #4009 #4010 #4011 #4012 #4013 #4014 #4015 #4016 #4017 #4018 #4019 #4020 #4021 (Example) G28 X0 Y0 Z0 ; G90 G1 X100. F1000; G91 G65 P300 X100. Y100.; M02; O300; #1 = #4003; Group 3G modal (pre-read) #1 = 91.0 #2 = #4203; Group 3G modal (now being executed) #2 = 90.0 G#1X#24Y#25; M99; % Execution block #4201 #4202 #4203 #4204 #4205 #4206 #4207 #4208 #4209 #4210 #4211 #4212 #4213 #4214 #4215 #4216 #4217 #4218 #4219 #4220 #4221 Normal line control : G40.1:40.1, G41.1:41.1, G42.1:42.1 Constant surface speed control : G96:96, G97:97 No variable No. Mirror image : G50.1:50.1, G51.1:51.1 Work coordinate system : G54~G59:54~59 Acceleration/deceleration : G61~G64:61~64 Macro modal call : G66:66, G66.1:66.1, G67:67 Interpolation mode Plane selection No variable No. Feed designation Inch/metric Tool length offset Canned cycle Return level : G94:94, G95:95 : G20:20, G21/21 : G43:43, G44:44, G49:49 : G80:80, G73~74, G76:76, G81~G89:81~89 : G98:98, G99:99 Function : G00:0, G01:1, G02:2, G03:3 : G17:17, G18:18, G19:19

Absolute/incremental : G90:90, G91:91

Tool nose R compensation : G40:40, G41:41, G42:42

- 219 -

13. Program Support Functions

(14) Other modals Using variable numbers 4101 through 4120, it is possible to read the model commands assigned up to the block immediately before. Similarly, it is possible to read the modals in the block being executed with variable numbers #4301 through #4320. Variable number Pre-read Execution #4101 #4102 #4103 #4104 #4105 #4106 #4107 #4108 #4109 #4110 #4301 #4302 #4303 #4304 #4305 #4306 #4307 #4308 #4309 #4310 Feedrate F
Tool radius compensation No. D

Modal information

Variable number Pre-read Execution #4111 #4112 #4113 #4114 #4115 #4116 #4117 #4118 #4119 #4120 #4311 #4312 #4313 #4314 #4315 #4316 #4317 #4318 #4319 #4320

Modal information Tool length offset No.H Miscellaneous function M Sequence number N Program number O

Spindle function S Tool function T

(15) Position information Using variable numbers 5001 through 5104, it is possible to read the servo deviation amounts, tool position offset amount, skip coordinates, work coordinates, machine coordinates and end point coordinates in the block immediately before.
Position information Axis No. 1 2 3 4 Remarks (reading during movement) End point coordinate of block immediately before #5001 #5002 #5003 #5004 Yes Tool Machine coordinate #5021 #5022 #5023 #5024 No Work coordinate #5041 #5042 #5043 #5044 No Skip coordinate #5061 #5062 #5063 #5064 Yes position offset amount #5081 #5082 #5083 #5084 No Servo deviation amount #5101 #5102 #5103 #5104 Yes

Note) The number of axes which can be controlled differs according to the specifications.

- 220 -

13. Program Support Functions

1) 2) 3) 4)

The positions of the end point coordinates and skip coordinates are positions in the work coordinate system. The end point coordinates, skip coordinates and servo deviation amounts can be read even during movement. However, it must first be checked that movement has stopped before reading the machine coordinates and the work coordinates. The position where the skip signal is turned ON in the G31 block is indicated for the skip coordinates. The end point position is indicated when the skip signal has not been turned ON. (For further details, refer to the section on tool length measurement.) The tool nose position where the tool offset and other such factors are not considered is indicated as the end point position. The tool reference point position with consideration given to tool offset is indicated for the machine coordinates, work coordinates and skip coordinates.

Basic machine coordinate system Work corodinate system

Read command

Gauge, etc.

Skip coordinates

[End point coordinates]

Read command

Work coordinate system [Work coordinates] [Machine coordinates] Machine coordinate system

Skip signal

F (feedrate) Work coordinate system [Input coordinates of skip signal] [Work coordinates] Machine coordinate system

[Machine coordinates]

For " ", check stop and then proceed to read. For " ", reading is possible during movement.

The position of the skip signal input coordinates is the position in the work coordinate system. The coordinates in variable numbers #5061 through #5064 memorize the moments when the skip input signal during movement was input and so they can be read at any subsequent time. For further details, reference should be made to the section on the skip function.

- 221 -

13. Program Support Functions

(Example 1) Example of workpiece position measurement An example to measure the distance from the measured reference point to the workpiece edge is shown below.
Argument <Local variable>

Main program

To subprogram <Common variable>

Skip input Start point

#101 X axis measurement amount #102 X axis measurement amount #103 Measurement linear segment amount #5001 X axis measurement start point #5002 Y axis measurement start point #5061 X axis skip input point #5062 Y axis skip input point

N1 G90/G91 modal recording N2 X, Y start point recording N3 Z axis entry amount N4 X, Y measurement (Stop at skip input) N5 Return to X, Y start point N6 X, Y measurement incremental value calculation N7 Measurement linear segment calculation N8 Z axis escape N9, N10 G90/G91 modal return N11 Subprogram return

(Example 2) Reading of skip input coordinates

Skip signal

#111 = 75. + #121 = 25. +

#112 = 75. + #122 = 75. +

is the error caused by response delay. (Refer to the section on the skip function for details.) #122 is the N4 skip signal input coordinates as there is no Y command at N7.

- 222 -

13. Program Support Functions

(16) Variable name setting and quotation Any name (variable name) can be given to common variables #500 through #519. It must be composed of not more than 7 alphanumerics and it must begin with a letter. Do not use "#" in variable names. It causes an alarm when the program is executed. Command format SETVN n [ NAME1, NAME2, ] :
#n + 1 name (variable name) #n name (variable name) Head number of variable to be named

Variable names are separated by a comma (,). Detailed description 1) Once variable names have been set, they will not be cleared even when the power is switched off. 2) Variables in programs can be quoted by their variable names. In cases like this, the variables should be enclosed in square parentheses. (Example 1) G01X [#POINT1] ; [#NUMBER] = 25 ; 3) The variable numbers, data and variable names appear on the screen of the setting and display unit. (Example 2) Program ...... SETVN500 [A234567, DIST, TOOL25] ;

[Common variables]

#500 #501 #502

-12345.678 5670.000 -156.500

A234567 DIST TOOL25

#518
Common variable

10.000

NUMBER

#(502) Data (-156.5) Name (TOOL25)

(17) Workpiece coordinate shift amount The workpiece coordinate system shift amount can be read using variables #2501 to #2601. By substituting a value in these variables, the workpiece coordinate system shift amount can be changed.
Axis No. 1 2 Workpiece coordinate system shift amount #2501 #2601

- 223 -

13. Program Support Functions

(18) Number of workpiece machining times The number of workpiece machining times can be read using variables #3901 and #3902. By substituting a value in these variables, the number of workpiece machining times can be changed.
Type Number of workpiece machining times Maximum workpiece value Variable No. #3901 0 to 999999 #3902 Data setting range

(Note) Always substitute a positive value for the number of workpiece machining times.

(19) Tool life management (a) Definition of variable numbers 1) Designation of group No. #60000 The tool life management data group No. to be read with #60004 to #64700 is designated by substituting a value in this variable. If a group No. is not designated, the data of the group registered first is read. This is valid until reset. 2) Tool life management system variable No. (Read) #60001 to #64700

# ? ? ? ? ? + Variable No. or data type Data class 6: Tool life management

3) Details of data classification Data class 00 05 10 15 20 25 30 35 M System For control Group No. Tool No. Tool data flag Tool status Life data Usage data Tool length compensation data Tool radius compensation data Auxiliary data L System For control Group No. Tool No. Method Status Life time/No. of times Usage time/No. of times Remarks Refer to following types Refer to registration No. Refer to registration No. Refer to registration No. Refer to registration No. Refer to registration No. Refer to registration No. Refer to registration No.

40 45

Refer to registration No. Refer to registration No.

The group No., L System method, and life data are common for the group.

- 224 -

13. Program Support Functions

4) Registration No. 1 to 200 5) Data type Type 1 2 3 4 5 6 7 8


Variable No. 60001

M System Number of registered tools Life current value Tool selected No. Number of remaining registered tools Signal being executed Cutting time cumulative value (minute) Life end signal Life prediction signal
Item Number of registered tools Life current value Type

L System Number of registered tools Life current value Tool selected No. Number of remaining registered tools Signal being executed Cutting time cumulative value (minute) Life end signal Life prediction signal
Details

Remarks

Data range 0 to 200

Common Total number of tools registered in each group. to system For each group

60002

Usage time/No. of uses of tool being used. 0 to 4000 Spindle tool usage data or usage data for tool in minutes 0 to 9999 times use (#60003).

60003

0 to 200 Tool selected (Desig-na Registration No. of tool being used. te group Spindle tool registration No. (If spindle tool is not No. No. data of the designated group, ST:1 first tool, or if #60000) ST:1 is not used, the first tool of ST:0. When all tools have reached their lives, the last tool.) Number of remaining registered tools Signal being executed No. of first registered tool that has not reached its 0 to 200 life.

60004

60005

"1" when this group is used in program being executed. "1" when spindle tool data group No. and designated group No. match. Indicates the time that this group is used in the program being executed.

0/1

60006

Cutting time cumulative value (minute) Life end signal

60007

"1" when lives of all tools in this group have been 0/1 reached. "1" when all tools registered in designated group reach lives. "1" when new tool is selected with next command 0/1 in this group. "1" when there is a tool for which ST is "0: Not used" in the designated group, and there are no tools for which ST is "1: Tools in use".

60008

Life prediction signal

- 225 -

13. Program Support Functions

Variable No. 60500 +*** 61000 +***

Item Group No. Tool No.

Type Each group/ registra-ti on No. This group's No. Tool No.

Details

Data range 1 to 99999999 1 to 99999999

61500 +***

(Desig-na te the Tool data flag group No. #60000 and registra-ti on No. *** .) Note the group No., method and life are common for the groups.

Tool No. + compensation No. (When tool No. = 22 and compensation No. = 01, 2201=899H) Usage data count method, length compensation 0 to FF (H) method, radius compensation method, etc., parameters. bit 0, 1 : Tool length compensation data format bit 2, 3 : Tool radius compensation data format 0: Compensation No. method 1: Incremental value compensation amount method 2: Absolute value compensation amount method bit 4, 5 : Tool life management method 0: Usage time 1: No. of mounts 2: No. of usages Tool usage state 0: Not used tool 1: Tool being used 2: Normal life tool 3: Tool error 1 4: Tool error 2 Life time or No. of lives for each tool

62000 +***

Tool status

0 to 4

62500 +*** 63000 +*** 63500 +***

Life data

Usage data

Tool length compen-satio n data

0 to 4000 minutes 0 to 9999 times Usage time or No. of uses for each tool 0 to 4000 minutes 0 to 9999 times Length compensation data set as compensation Compensation No.: No., absolute value compensation amount or increment value compensation amount method. 0 to No. of tool compensation sets Absolute value compensation amount 99999.999 Increment value compensation amount 99999.999

- 226 -

13. Program Support Functions

Variable No. 64000 +***

Item Tool radius compen-satio n data

Type

Details Radius compensation data set as compensation No., absolute value compensation amount or increment value compensation amount method.

Supplement/output format

Data range Compensation No.: 0 to No. of tool compensation sets Absolute value compensation amount 99999.999 Increment value compensation amount 99999.999 0 to 65535

64500 +***

Auxiliary data

Spare data

(b) Program example 1) Normal commands #101 = #60001 ; ......... #102 = #60002 ; ......... #103 = #60003 ; ......... #60000 = 10 ; .............. #104 = #60004 ; ......... #105 = #60005 ; #111 = #61001 ; #112 = #62001 ; #113 = #61002 ; % ......... ......... ......... ......... Reads the number of registered tools. Reads the life current value. Reads the tool selection No. Designates the group No. of the life data to be read. Reads the remaining number of registered tools in group 10. Reads the signal being executed in group 10. Reads the group 10, #1 tool No. Reads the group 10, #1 status. Reads the group 10, #2 status.

Designated program No. is valid until reset.

2) When group No. is not designated. #104 = #60004 ; ......... Reads the remaining number of registered tools in the group registered first. #111 = #61001 ; ......... Reads the #1 tool No. in the group registered first. % 3) When non-registered group No. is designated. (Group 9999 does not exist.) #60000 = 9999 ; ......... Designates the group No. #104 = #60004 ; ......... #104 = 1. 4) When registration No. not used is designated. (Group 10 has 15 tools) #60000 = 10 ; .............. Designates the group No. #111 = #61016 ; ......... #101 = 1. 5) When registration No. out of the specifications is designated. #6000 = 10 ; #111 = #61017 ; ......... "P241 NO VARI NUMBER"

- 227 -

13. Program Support Functions

6) When tool life management data is registered with G10 command after group No. is designated. #60000 = 10 ; .............. Designates the group No. G10 L3 ; ....................... Starts the life management data registration. P10 LLn NNn ; .............. 10 is the group No., Ln is the life per tool, Nn is the method. TTn ; ............................ Tn is the tool No. : G11 ; ........................... Registers the group 10 data with the G10 command. #111 = #61001 ; ......... Reads the group 10, #1 tool No. G10 L3 ; ....................... Starts the life management data registration. P1 LLn NNn ; ................ 1 is the group No., Ln is the life per tool, Nn is the method. TTn ; ............................ Tn is the tool No. : G11 ; ............................ Registers the life data with the G10 command. (The registered data is deleted.) #111 = 61001 ; ............ Group 10 does not exist. #201 = 1. (c) Precautions If the tool life management system variable is commanded without designating a group No., the data of the group registered at the head of the registered data will be read. If a non-registered group No. is designated and the tool life management system variable is commanded, "-1" will be read as the data. If an unused registration No. tool life management system variable is commanded, "-1" will be read as the data. Once commanded, the group No. is valid until NC reset.

The group 10 life data is registered.

The life data other than group 10 is registered.

- 228 -

13. Program Support Functions

13.5.5

Arithmetic commands

A variety of arithmetic operations can be performed between variables. #i = <formula> <Formula> is a combination of constants, variables, functions and operators. Constants can be used instead of #j and #k below. (1) Definition and substitution of variables Addition arithmetic #i = #j Definition, substitution

(2)

#i = #j + #k #i = #j #k #i = #j OR #k #i = #j XOR #k #i = #j #k #i = #j / #k #i = #j MOD #k #i = #j AND #k #i = SIN [#k] #i = COS [#k] #i = TAN [#k] #i = ATAN [#j] #i = ACOS [#j] #i = SQRT [#k] #i = ABS [#k] #i = BIN [#k] #i = BCD [#k] #i = ROUND [#k] #i = FIX [#k] #i = FUP [#k] #i = LN [#k] #i = EXP [#k]

(3)

Multiplication arithmetic

Addition Subtraction Logical sum (at every bit of 32 bits) Exclusive OR (at every bit of 32 bits) Multiplication Division Remainder Logical product (at every bit of 32 bits) Sine Cosine Tangent (sin/cos used for tan) Arctangent (ATAN or ATN may be used) Arc-cosine Square root (SQRT or SQR may be used) Absolute value Conversion from BCD to BIN Conversion from BIN to BCD Rounding off (ROUND or RND may be used) Discard fractions less than 1 Add for fractions less than 1 Natural logarithm Exponent with e (=2.718 .....) as bottom

(4)

Functions

Note 1) A value without a decimal point is basically treated as a value with a decimal point at the end (1 = 1.000). Note 2) Offset amounts from #10001 and work coordinate system offset values from #5201 are handled as data with a decimal point. Consequently, data with a decimal point will be produced even when data without a decimal point have been defined in the variable numbers. (Example)

Note 3) The <formula> after a function must be enclosed in the square parentheses.

- 229 -

13. Program Support Functions

(1) Sequence of arithmetic operations The sequence of the arithmetic operations (1) through (3) is, respectively, the functions followed by the multiplication arithmetic followed in turn by the addition arithmetic. #101 = #111 + #112SIN[#113] (1) (2) (3) Function Multiplication arithmetic Addition arithmetic

(2) Designation of arithmetic operation sequence The part to be given priority in the operation sequence should be enclosed in square parentheses. Up to 5 pairs of such parentheses including those for the functions may be used. #101 = SQRT [ [ [ #111 = #112 ] SIN[#113] + #114] #15] ; First pair of parentheses Second pair of parentheses Third pair of parentheses

(3) Examples of arithmetic commands (1) Main Program and argument designation (2) Definition and substitution (=) G65 P100 A10 B20.; #101 = 100.000 #102 = 200.000 ; #1 = 1000 #2 = 1000. #3 = #101 #4 = #102 #5 = #5041 #1 #2 #101 #102 #1 #2 #3 #4 #5 10.000 20.000 100.000 200.000 1000.000 1000.000 100.000 200.000 10.000

From common variables From offset amount

(3) Addition and #11 = #1 + 1000 subtraction (+,) #12 = #2 50. #13 = #101 + #1 #14 = #5041 3. #15 = #5041 + #102 (4) Logical sum #3 = 100 (OR) #4 = #3OR14 (5) Exclusive OR (XOR) #3 = 100 #4 = #3XOR14

#11 2000.000 #12 950.000 #13 1100.000 #14 13.000 #15 190.000 #3 = 01100100 14 = 00001110 #4 = 01101110 = 110 #3 = 01100100 14 = 00001110 #4 = 01101010 = 106

- 230 -

13. Program Support Functions

(6) Multiplication #21 = 100100 and division (,/) #22 = 100.100 #23 = 100100 #24 = 100.100. #25 = 100/100 #26 = 100./100. #27 = 100/100. #28 = 100./100. #29 = #5041#101 #30 = #5041/#102 Remainder #31 = #19MOD#20 (MOD) (7) Logical product #9 = 100 (AND) #10 = #9AND15 (8) Sin (SIN) #501 = SIN [60] #502 = SIN [60.] #503 = 1000SIN [60] #504 = 1000SIN [60.] #505 = 1000.SIN [60] #506 = 1000.SIN [60.] Note: SIN [60] is equivalent to SIN [60.] #541 = COS [45] #542 = COS [45.] #543 = 1000COS [45] #544 = 1000COS [45.] #545 = 1000.COS [45] #546 = 1000.COS [45.] Note: COS [45] is equivalent to COS [45.] #551 = TAN [60] #552 = TAN [60.] #553 = 1000TAN [60] #554 = 1000TAN [60.] #555 = 1000.TAN [60] #556 = 1000.TAN [60.] Note: TAN [60] is equivalent to TAN [60.] #561 = ATAN [173205/100000] #562 = ATAN [173205/100.] #563 = ATAN [173.205/100000] #564 = ATAN [173.205/100.] #565 = ATAN [1.732] #521 = ACOS [100./141.421] #522 = ACOS [100./141.421] #523 = ACOS [1000./1414.213] #524 = ACOS [10./14.142] #525 = ACOS [0.707]

#21 #22 #23 #24 #25 #26 #27 #28 #29 #30

10000.000 10000.000 10000.000 10000.000 1.000 1.000 1.000 1.000 1000.000 0.050

#19/#20 = 48/9 = 5 with 3 over #9 = 01100100 15 = 00001111 #10 = 00000100 = 4 #501 0.860 #502 0.860 #503 866.025 #504 866.025 #505 866.025 #506 866.025

(9) Cosine (COS)

#541 #542 #543 #544 #545 #546

0.707 0.707 707.107 707.107 707.107 707.107

(10) Tangent (TAN)

#551 #552 #553 #554 #555 #556

1.732 1.732 1732.051 1732.051 1732.051 1732.051

(11) Arctangent (ATAN or ATN)

(12) Arc-cosine (ACOS)

#561 #562 #563 #564 #565 #521 #522 #523 #524 #525

60.000 60.000 60.000 60.000 60.000 45.000 45.000 45.000 44.999 45.009

- 231 -

13. Program Support Functions

(13) Square root (SQR or SQRT)

(14) Absolute value (ABS)

(15) BIN, BCD

(16) Rounding off (ROUND or RND)

(17) Discarding fractions below decimal point (FIX)

(18) Adding fractions less than 1 (FUP)

(19) Natural logarithms (LN) (20) Exponents (EXP)

#571 = SQRT [1000] #572 = SQRT [1000.] #573 = SQRT [10.10.+20.20.] #574 = SQRT[14#14+#15#15] Note: In order to increase the accuracy, proceed with the operation inside parentheses. #576 = 1000 #577 = ABS [#576] #3 = 70.#4 = 50. #580 = ABS [#4 #3] #1 = 100 #11 = BIN [#1] #12 = BCD [#1] #21 = ROUND [14/3] #22 = ROUND [14./3] #23 = ROUND [14/3.] #24 = ROUND [14./3.] #25 = ROUND [14/3] #26 = ROUND [14./3] #27 = ROUND [14/3.] #28 = ROUND [14./3.] #21 = FIX [14/3] #22 = FIX [14./3] #23 = FIX [14/3.] #24 = FIX[14./3.] #25 = FIX [14/3] #26 = FIX [14./3] #27 = FIX [14/3.] #28 = FIX [14./3.] #21 = FUP [14/3] #22 = FUP [14./3] #23 = FUP [14/3.] #24 = FUP [14./3.] #25 = FUP [14/3] #26 = FUP [14./3] #27 = FUP [14/3.] #28 = FUP [14./3.] #101 = LN [5] #102 = LN [0.5] #103 = LN [5] #104 = EXP [2] #105 = EXP [1] #106 = EXP [2]

#571 #572 #573 #574

31.623 31.623 22.361 190.444

#576 #577 #580 #11 #12 #21 #22 #23 #24 #25 #26 #27 #28 #21 #22 #23 #24 #25 #26 #27 #28 #21 #22 #23 #24 #25 #26 #27 #28 #101 #102 Error #104 #105 #106

1000.000 1000.00 120.000 64 256 5 5 5 5 5 5 5 5 4.000 4.000 4.000 4.000 4.000 4.000 4.000 4.000 5.000 5.000 5.000 5.000 5.000 5.000 5.000 5.000 1.609 0.693 "P282" 7.389 2.718 0.135

- 232 -

13. Program Support Functions

(4) Arithmetic accuracy As shown in the following table, errors will be generated when performing arithmetic operations once and these errors will accumulate by repeating the operations. Arithmetic format a=b+c a=bc a = bc a = b/c a= b a = SIN [b] a = COS [b] a = ATAN [b/c] Average error 2.33 1010 1.55 10 4.66 1010 1.24 109 5.0 109 1.8 106
10

Maximum error 5.32 1010 4.66 10 1.86 109 3.73 109 1.0 108 3.6 106
10

Type of error Min. |/b|, |/c| Relative error |/a| Absolute error ||

Note) SIN/COS is calculated for the function TAN. (5) Notes on reduced accuracy 1) Addition and subtraction It should be noted that when absolute values are used subtractively in addition or subtraction, the relative error cannot be kept below 108. For instance, it is assumed that the real values produced as the arithmetic calculation result of #10 and #20 are as follows (these values cannot be substituted directly) : #10 = 2345678988888.888 #20 = 2345678901234.567 Performing #10 #20 will not produced #10 320 = 87654.321. There are 8 significant digits in the variables and so the values of #10 and #20 will be as follows (strictly speaking, the internal values will differ somewhat from the values below because they are binary numbers) : #10 = 2345679000000.000 #20 = 2345678900000.000 Consequently, #10 #20 = 100000.000 will generate a large error. 2) Logical operations EQ, NE, GT, LT, GE and LE are basically the same as addition and subtraction and so care should be taken with errors. For instance, to determine whether or not #10 and #20 are equal in the above example : IF [#10EQ#20] It is not always possible to provide proper evaluation because of the above mentioned error. Therefore, when the error is evaluated as in the following expression : IF [ABS [#10 #20] LT200000] and the difference between #10 and #20 falls within the designated range error, both values should be considered equal. 3) Trigonometric functions Absolute errors are guaranteed with trigonometric functions but since the relative error is not under 108, care should be taken when dividing or multiplying after having used a trigonometric function.

- 233 -

13. Program Support Functions

13.5.6

Control commands

The flow of programs can be controlled by IF-GOTO- and WHILE-DO-. (1) Branching Format : IF [conditional expression] GOTO n; (n = sequence number in the program)

When the condition is satisfied, control branches to "n" and when it is not satisfied, the next block is executed. IF [conditional expression] can be omitted and, when it is, control passes to "n" unconditionally. The following types of [conditional expressions] are available. #i EQ #j #i NE #j #i GT #j #i LT #j #i GE #j #i LE #j = When #i and #j are equal When #i and #j are not equal > When #i is greater than #j < When #i is less than #j When #i is #j or more When #i is #j or less

"n" of GOTO n must always be in the same program. Alarm "P231" will result if it is not. A formula or variable can be used instead of #i, #j and "n". In the block with sequence number "n" which will be executed after a GOTO n command, the sequence number must always be at the head of the block. Otherwise, alarm "P231" will result. If "/" is at the head of the block and Nn follows, control can be branched to the sequence number.

Branching to N100 when content of #2 is 1

Branch search

Branch search

With N10 To head

Note 1) When the sequence number of the branch destination is searched, the search is conducted up to the end of the program (% code) from the block following IF ... ; and if it is not found, it is then conducted from the top of the program to the block before IF ... ;. Therefore, branch searches in the opposite direction to the program flow will take longer to execute compared with branch searches in the forward direction. Note 2) EQ and NE should be used only for integers. For comparison of numeric values with decimals, GE, GT, LE, and LT should be used.

- 234 -

13. Program Support Functions

(2) Iteration Format : WHILE [conditional expression] DOm ; (m = 1, 2, 3 ..... 127) END m ; While the conditional expression is established, the blocks from the following block to ENDm are repeatedly executed; when it is not established, execution moves to the block after ENDm. DOm may come before WHILE, WHILE [conditional expression] DOm and ENDm must be used as a pair. IF WHILE [conditional expression] is omitted, these blocks will be repeatedly ad infinitum. The repeating identification numbers range from 1 through 127 (DO1, DO2, DO3, ....... DO127). Up to 27 nesting levels can be used. (1) Same identifier number can be used any number of times. (2) Any number may be used for the WHILE DOm identifier number.

Possible

Possible

Possible

(3) Up to 27 nesting levels for WHILE DOm. "m" is any number from 1 to 127 for the nesting depth.

(4) The number of WHILE DOm nesting levels cannot exceed 27.

Possible

Note : With nesting, "m" which has been used once cannot be used.

- 235 -

Not possible

13. Program Support Functions

(5) WHILE DOm must be designated first and ENDm last.

(6) WHILE DOm and ENDm must correspond on a 1:1 (pairing) basis in the same program.

Not possible

Not possible

(7) Two WHILE DOm's must not overlap.

(8) Branching externally is possible from the WHILE DOm range.

Not possible Possible

(9) No branching is possible inside WHILE DOm.


Not possible

(10) Subprograms can be called by M98, G65 or G66 between WHILE DOm's.
Main program Subprogram

Not possible

Possible

To subprogram

(11) Calls can be initiated by G65 or G66 between WHILE DOm's and commands can be issued again from 1. Up to 27 nesting levels are possible for the main program and subprograms.
Main program Subprogram

(12) A program error will occur at M99 if WHILE and END are not paired in the subprogram (including macro subprogram).
Main program
To subprogram

Subprogram

Possible

To subprogram

Don ENDn constitutes illegal usage.

Note) As the canned cycles G73 and G83 and the special canned cycle G34 use WHILE, these will be added multiple times.

- 236 -

13. Program Support Functions

13.5.7

External output commands

(1) Outline Besides the standard user macro commands, the following macro instructions are also available as external output commands. They are designed to output the variable values or characters via the RS-232C interface. 1) Types POPEN PCLOS BPRNT DPRNT 2) For preparing the processing of data outputs For terminating the processing of data outputs For character output and variable value binary output For character output and digit-by-digit variable numerical output

Command sequence POPEN Open command

DPRNT

Data output command

PCLOS

Closed command

(2) Open command : Command format :

POPEN POPEN ;

Detailed description 1) The command is issued before the series of data output commands. 2) The DC2 control code and % code are output from the NC system to the external output device. 3) Once POPEN; has been issued, it will remain valid until PCLOS; is issued. (3) Close command : Command format : Detailed description 1) This command is issued when all the data outputs are completed. 2) The DC4 control code and % code are output from the NC unit to the external output device. 3) This command is used together with the open command and it should not be issued unless the open mode has been established. 4) Issue the close command at the end of the program even when operation has been suspended by resetting or some other operation during data output. PCLOS PCLOS ;

- 237 -

13. Program Support Functions

(4) Data output command : Command format

DPRNT

DPRNT [ l 1 # v1 [ d1 c1 ] l 2 # v2 [ d2 c2 ]

] c+d8

Significant digits below decimal point Significant digits above decimal point Variable number Character string Detailed description

1) The character output and decimal output of the variable values are done with ISO codes. 2) The commanded character string is output as is by the ISO code. Alphanumerics (A ~ Z, 0 ~ 9) and special characters (+, , , /) can be used. 3) The required significant digits above and below the decimal point in the variable values are commanded within square parentheses. As a result, the variable values equivalent to the commanded number of digits including the decimal point are output in ISO code in decimal notation from the high-order digits. Trailing zeroes are not omitted. 4) Leading zeroes are suppressed. The leading zeroes can also be replaced by blank if so specified with a parameter. This can justify printed data on the last column. Note) A data output command can be issued even in dual-system mode. In this case, however, note that the output channel is shared for both systems. So, take care not to execute data output in both systems simultaneously.

- 238 -

13. Program Support Functions

13.5.8

Checkpoints

(1) When the user macro commands are employed, it is possible to use the M, S, T and other NC control commands together with the arithmetic, decision, branching and other macro commands for preparing the machining programs. When the former commands are made into executable statements and the latter commands into macro statements, the macro statement processing should be accomplished as quickly as possible in order to minimize the machining time, because such processing is not directly related to machine control. As a result, the parameter #8101 "macro single" can be set and the macro statements can be processed in parallel with the execution of the executable statement. (The parameter can be set OFF during normal machining to process all the macro statements together or set ON during a program check to execute the macro statements block by block. This enables the setting to be made in accordance with the intended objective in mind.)
Example of program

Macro statement

Macro statements are: 1. Arithmetic commands (block including =) 2. Control commands (block including GOTO, DO-END, etc.) 3. Macro call commands (including macro calls based on G codes and cancel command (G65, G66, G66.1, G67)) Executable statements are all those statements which are not macro statements. Flow of processing Macro single OFF

Program analysis Macro statement processing Executable statement processing


Next command block Executing block

Macro single ON

Program analysis Macro statement processing Executable statement processing


Next command block Executing block

- 239 -

13. Program Support Functions

Machining program display Macro single ON N4, N5 and N6 are processed in parallel with the control of the executable statement of N3, N6 is an executable statement and so it is displayed as the next command. If the N4, N5 and N6 analysis is in time during N3 control, the machine movement will be continuously controlled.

[In execution] [Next command]

Macro single OFF


[In execution] [Next command]

N4 is processed in parallel with the control of the NC executable statement of N3, and it is displayed as the next command. N5 and N6 is executed after N3 has finished, and so the machine control is held on standby during the N5 and N6 analysis time.

- 240 -

13. Program Support Functions

13.5.9

Actual examples of using user macros

The following three examples will be described. Example 1. SIN curve Example 2. Bolt hole circle Example 3. Grid Example 1. SIN curve

G65 Pp1 Aa1 Bb1 Cc1 Ff1 ; a1; b1; c1 ; f1 ; Initial value 0 Final value 360 R of %SIN Feedrate

Main program

O9910 (Subprogram)

To subprogram (Note 1)

Local variable set by argument

(Note 1) Commanding with one block is possible when G90G01X#1Y [#3SIN [#1]] F#9 ; is issued.

- 241 -

13. Program Support Functions

Example 2.

Bolt hole circle

After defining the hole data with canned cycle (G72 to G89), the macro command is issued as the hole position command.

Main program a1 b1 r1 x1 Start angle No. of holes Radius X axis center position y1 ; Y axis center position ; ; ; ;

G81Z100.R50.F300L0 G65P9920Aa1Bb1Rr1Xx1Yy1 ;

To subprogram

O9920 (Subprogram) #101=0 ; #102=#4003 ; #103=#5001 ; #104=#5002 ; #111=#1 ; WHILE [#101LT#2] DO1 ; #120=#24+#18COS [#111] ; #121=#25+#18SIN [#111] ; #122=#120 #123=#121 ; IF [#102EQ90] GOTO100 ; #122=#120 #103 ; #123=#121 #104 ; #103=#120 #104=#121
(Note 1)

O9920
0 #101 G90, G91 mode Read in #102 Read previous coordinates X #103 Y #104 Start angle 111 #101 No. of holes Y (Note 1) RadiusCOS [#111] + Center coordinates X#120 RadiusSIN [#111] + Center coordinates Y#121 #120 #122 #121 #123 Y #120 = Hole position X coordinates #121 = Hole position Y coordinates #122 = X axis absolute value #123 = Y axis absolute value N END #101 = No. of hole count #102 = G90 or G91 #103 = X axis current position #104 = Y axis current position #111 = Start angle

#102=90 (Note 1) N #120-#103 #122 #121-#104 #123 #120 #103 #121 #104 N100X#122Y#123 (Note 1) #101+1 #101 360 deg.#101/ No. of holes+#1 #111

Judgment of G90, G91 mode #122 = X axis incremental value 123 = Y axis incremental value X axis current position update Y axis current position update Drilling command No.of holes counter up #111 = Hole position angle

(Note 1)

N100 X#122Y#123 ; #101=#101+1 ; #111=#1+360.#101/#2 ; END1 ; M99 ;

(Note 1) The processing time can be shortened by programming in one block.

- 242 -

13. Program Support Functions

To subprogram To subprogram To subprogram

Example 3.

Grid

After defining the hole data with the canned cycle (G72 to G89), macro call is commanded as a hole position command.

x1 ; X axis hole position y1 ; Y axis hole position i1 ; X axis interval j1 ; Y axis interval a1 ; No. of holes in X direction b1 ; No. of holes in Y direction

Subprogram is on next page

To subprogram

To subprogram

- 243 -

13. Program Support Functions

O9930 (Subprogram)

O9930 Start point X coordinates : x1#101 #101 = X axis start point #102 = Y direction interval #103 = X direction interval #106 = No. of holes in Y direction No. of holes in Y direction

#101=#24 ; #102=#25 ; (Note 1)

Start point Y coordinates : y1#102 X axis interval Y axis interval : i1#103 : j1#104

No. of holes in Y direction : b1#106 #103=#4 ; #104=#5 ; #106 > 0 #106=#2 ; Y Y direction drilling completion check

END

No. of holes in X direction set

WHILE [#106GT0] DO1 ;

#105 > 0

No. of holes in Y direction check

#105=#1 ; X#101 WHILE [#105GT0] DO2 ; #101 + #103 #101 X coordinates update Y#102 Positioning, drilling

G90 X#101 Y#102 ;

#105 1 #105

No. of holes in X direction 1

#101=#101+#103 ; #105=#1051 ;

(Note 1)

END2 ; #101 #103 #101 #102 + #104 #102 #101=#101-#103; #102=#102+#104; (Note 1) #103=#103 ; #106=#1061 ; #106 1 #106 #103 #103 X axis drilling direction reversal No. of holes in Y direction 1 X coordinates revision Y coordinates update

END1 ;

M99 ; (Note 1) The processing time can be shortened by programming in one block.

- 244 -

13. Program Support Functions

13.6

G command mirror image; G50.1, G51.1


When cutting a shape that is symmetrical on the left and right, programming time can be shortened by machining the one side and then using the same program to machine the other side. The mirror image function is effective for this. For example, when using a program as shown below to machine the shape on the left side, a symmetrical shape can be machined on the right side by applying mirror image and executing the program.
Base shape (program)

(1) Outline

Shape when machining program for left side is executed after the mirror command.

Mirror axis

(2) Command format G51.1 Xx1 50.1 Xx2 Yy1 Yy2 Zz1 ........ ; Zz2 ........ ; (Mirror image ON) (Mirror image OFF)

(3) Detailed description 1) The coordinate word for G51.1 is commanded with the mirror image command axis, and the coordinate value commands the mirror image center coordinate with an absolute value or incremental value. 2) The coordinate word in G50.1 expresses the axis for which mirror image is to be turned OFF, and the coordinate value is ignored. 3) If mirror image is applied on only one axis in the designated plane, the rotation direction and compensation direction will be reversed for the arc or tool diameter compensation and coordinate rotation, etc. 4) This function is processed on the local coordinate system, so the center of the mirror image will change when the counter is preset or when the workpiece coordinates are changed.

- 245 -

13. Program Support Functions

5)

Zero point return during mirror image If the zero point return command (G28, G30) is executed during the mirror image, the mirror image will be valid during the movement to the intermediate point, but will not be applied on the movement to the zero point after the intermediate point.

Intermediate point when mirror is applied

Intermediate point

Path on which mirror is applied

Programmed path

Mirror center

6)

Return from zero point during mirror image If the return command (G29) from the zero point is commanded during the mirror image, the mirror will be applied on the intermediate point.

7)

The mirror image will not be applied on the G53 command.

- 246 -

13. Program Support Functions

(4) Precautions

CAUTION
Turn the mirror image ON and OFF at the mirror image center. If mirror image is canceled at a point other than the mirror center, the absolute value and machine position will deviate as shown below. (In this state, execute the absolute value command (positioning with G90 mode), or execute zero point return with G28 or G30 to continue the operation.) The mirror center is set with an absolute value, so if the mirror center is commanded again in this state, the center may be set to an unpredictable position. Cancel the mirror at the mirror center or position with the absolute value command after canceling.
Absolute value (position commanded in program)

Machine position When moved with the incremental command after mirror cancel

Issue mirror cancel command here

Issue mirror axis command here Mirror center

(5) Combination with other functions 1) Combination with diameter compensation The mirror image (G51.1) will be processed after the diameter compensation (G41, G42) is applied, so the following type of cutting will take place.

Programmed path When only diameter compensation is applied Mirror center

When only mirror image is applied When both mirror image and diameter compensation are applied

- 247 -

13. Program Support Functions

13.7

Corner chamfering, corner rounding

Chamfering at any angle or corner rounding is performed automatically by adding ,C_ or ,R_ to the end of the block to be commanded first among those command blocks which shape the corner with lines only.

13.7.1

Corner chamfering ( ,C_ )

(1) Function The corner is chamfered in such a way that the positions produced by subtracting the lengths commanded by ,C_ from the imaginary starting and final corners which would apply if no chamfering were to be performed, are connected. (2) Command format N100 N200 G01 X_ Y_, C_ ; G01 X_ Y_ ; Length up to chamfering starting point or end point from imaginary corner (3) Example of program 1) 2) G91G01X100.,C10. ; X100. Y100. ;
Y axis

Chamfering is performed at the point where N100 and N200 intersect.

Imaginary corner intersection point Chamfering start point Chamfering end point

X axis

- 248 -

13. Program Support Functions

(4) Detailed description 1) 2) 3) 4) 5) 6) 7) 8) 9) The start point of the block following the corner chamfering serves as the imaginary corner intersection point. When the comma in ",C" is not present, it is handled as a C command. When both C_ and R_ are commanded in the same block, the latter command is valid. Tool offset is calculated for the shape which has already been subjected to corner chamfering. When scaling is commanded, scaling will also be applied to the commanded corner chamfer amount. Program error "P381" results when there is an arc command in the block following the corner chamfering block. Program error "P382" results when the block following the corner chamfering block does not have a linear or arc command. Program error "P383" results when the movement amount in the corner chamfering block is less than the chamfering amount. Program error "P384" results when the movement amount in the block following the corner chamfering block is less than the chamfering amount.

- 249 -

13. Program Support Functions

13.7.2

Corner rounding ( ,R_ )

(1) Function The imaginary corner, which would exist if the corner were not to be rounded, is rounded with the arc having the radius which is commanded by ",R_" only when configured of linear lines. (2) Command format N100 N200 G01 X_ Y_, R_ ; Rounding is performed at the point where N100 and N200 intersect. G02 X_ Y_ ; Arc radius of corner rounding

(3) Example of program 1) 2) G91G01 X100., R10. ; X100. Y100. ;

Y axis Corner rounding end point Corner rounding start point

Imaginary corner intersection point

X axis

(4) Detailed description 1) 2) 3) 4) 5) 6) 7) 8) The start point of the block following the corner R serves as the imaginary corner intersection point. When the comma in ",R" is not present, it is handled as an R command. When both C_ and R_ are commanded in the same block, the latter command is valid. Tool offset is calculated for the shape which has already been subjected to corner rounding. Program error "P381" results when there is an arc command in the block following the corner rounding block. Program error "P382" results when the block following the corner rounding block does not have a linear or arc command. Program error "P383" results when the movement amount in the corner rounding block is less than the R value. Program error "P384" results when the movement amount in the block following the corner rounding block is less than the R value.

- 250 -

13. Program Support Functions

13.8

Linear angle command


The end point coordinates are calculated automatically by commanding the linear angle and one of the end point coordinate axes.

(1) Function

(2) Command format G17; N1 G01 Aa1 Xx1 (Yy1) ; N2 G01 Aa2 Xx2 (Yy2) ; The designated plane is selected. (G17~G19) This designates the angle and the X or Y axis coordinates. (The same occurs when Aa2 is set as Aa3 .)

(3) Detailed description 1) 2) 3) 4) 5) 6) 7) 8) The angle is from the + direction of the 1st axis (horizontal axis) on the selected plane. the counter-clockwise (CCW) direction is considered to be + and the clockwise direction (CW) . Either of the axes on the selected plane is commanded for the end point. The angle is ignored when the angle and the coordinates of both axes are commanded. When only the angle has been commanded, this is treated as a geometric command. The angle of either the start point or end point may be used. The function cannot be used when address A is used for the axis name or as the second miscellaneous function. This function is valid only for the G01 command; it is not valid for other interpolation or positioning commands. Angle a ranges from 360.000 to 360.000 inclusive. If a value outside the range is specified, the remainder of the value divided by 360 () is assumed. Example : If 400 is specified, the remainder 40 obtained by dividing 400 by 360 becomes the specified angle.

- 251 -

13. Program Support Functions

13.9

Circle cutting; G12, G13


Circle cutting starts the tool from the center of the circle, and cuts the inner circumference of the circle. The tool continues cutting while drawing a circle and returns to the center position.

(1) Function and objective

(2) Command format G12 (G13) G12 G13 I D Ii1 Dd1 Ff1 ; The circle cutting rotation direction is distinguished as shown below with G12 and G13. : Clockwise (CW) : Counterclockwise (CCW) : Radius of circle (incremental value), the symbol is ignored : Offset No. (The offset No. and offset data are not displayed on the setting and display unit.)

(3) Detailed description 1) 2) 3) 4) If the offset No. "D" is not issued or if the offset No. is illegal, the program error "P170" will occur. If [Radius (I) = offset amount] is 0 or negative, the alarm "P233" Cutting radius error will occur. The symbol + for the offset amount indicates reduction, and indicates enlargement. The circle cutting is executed on the plane G17, G18 or G19 currently selected.

Offset amount symbol + Circle radius Offset amount symbol

d1 offset amount +

For G12 (tool center path) 012345670 For G13 (tool center path) 076543210

d1 offset amount

- 252 -

13. Program Support Functions

(4) Program example (Example 1) G12 I5000 D01 F100 ; (Input setting unit 0.01) When offset amount is +10.00mm

Tool

Offset amount

Radius

- 253 -

13. Program Support Functions

13.10

Program parameter input; G10, G11


The parameters set from the setting and display unit can be changed in the machining programs. The data format used for the data setting is the same as for the parameter tape.

(1) Function

(2) Format G10 L50 ; ....... Data setting command

P major classification number N data number H* bit type data ; P major classification number A axis number N data number D byte type data ; P A N S word type data ; P A N L 2 word type data ; G11 ; ......... Data setting mode cancel (data setting completed)

Parameter settings in data setting mode

There are 8 types of data formats according to the type of parameter (axis-common and axis-independent) and data type, as listed below. With axis-common data Axis-common bit-type parameter ..................... Axis-common byte-type parameter.................... Axis-common word-type parameter................... Axis-common 2-word-type parameter................ With axis-independent data Axis-independent bit-type parameter................. Axis-independent byte-type parameter.............. Axis-independent word-type parameter............. Axis-independent 2-word-type parameter..........

P P P P P P P P

N N N N A A A A

H* D S L N N N N

; ; ; ; H* D S L ; ; ; ;

Note 1) The sequence of addresses in a block must be as shown above. Note 2) Refer to Appendix Table 1 for the P, N number correspondence table. Note 3) As for the bit-type parameter, the data type is H* (* is the number of 07).

- 254 -

13. Program Support Functions

13.11
13.11.1

Macro interrupt
Outline

A user macro interrupt signal (UIT) is input from the machine to interrupt the program being currently executed and instead call another program and execute it. This is called the user macro interrupt function. Use of this function allows the program to operate flexibly enough to meet varying conditions. For setting the parameters of the function, refer to the Operation manual and the machine parameters in Appendix 1.

13.11.2

Operation

(1) Command format M96 P__ H__ ; ....... User macro interrupt enable Interrupt sequence number Interrupt program number M97 ; .......................... User macro interrupt disable The user macro interrupt function is enabled and disabled by the M96 and M97 commands programmed to make the user macro interrupt signal (UIT) valid or invalid. That is, if an interrupt signal (UIT) is input from the machine side in a user macro interrupt enable period from when M96 is issued to when M97 is issued or the NC is reset, a user macro interrupt is caused to execute the program specified by P__ instead of the one being executed currently. Another interrupt signal (UIT) is ignored while one user macro interrupt is being in service. It is also ignored in a user macro interrupt disable state such as after an M97 command is issued or the system is reset. M96 and M97 are processed internally as user macro interrupt control M codes. (2) Interrupt enable conditions A user macro interrupt is enabled only during execution of a program. The requirements for the user macro interrupt are as follows : 1) An automatic operation mode, memory or tape, or MDI has been selected. 2) The system is running in automatic mode. 3) No other macro interrupt is being processed. A macro interrupt is disabled in manual operation mode (JOG, STEP, HANDLE, etc.)

- 255 -

13. Program Support Functions

(3) Outline of operation When a user macro interrupt signal (UIT) is input after an M96Pp1 ; command is issued by the current program, interrupt program Op1 is executed. When an M99; command is issued by the interrupt program, control returns to the main program. If M99Pp2 ; is specified, the blocks from the one next to the interrupted block to the last one are searched for the block with sequence number Np2 ;. Control thus returns to the block with sequence number Np2 that is found first in the above search.
Current program Interrupt program

User macro interrupt signal (UIT)

Interrupt signal (UIT) not acceptable within a user macro program

(If Pp2 is specified)

(4) Interrupt type Interrupt types 1 and 2 can be selected by the parameter #1113 INT_2. [Type 1] When an interrupt signal (UIT) is input, the system immediately stops moving the tool and interrupts dwell, then permits the interrupt program to run. If the interrupt program contains a move or miscellaneous function (MSTB) command, the commands in the interrupted block are lost. After the interrupt program completes, the main program resumes operation from the block next to the interrupted one. If the interrupted program contains no move and miscellaneous (MSTB) commands, it resumes operation, after completion of the interrupt program, from the point in the block where the interrupt was caused. If an interrupt signal (UIT) is input during execution of a miscellaneous function (MSTB) command, the NC system waits for a completion signal (FIN). The system thus executes a move or miscellaneous function command (MSTB) in the interrupt program only after input of FIN. [Type 2] When an interrupt signal (UIT) is input, the program completes the commands in the current block, then transfers control to the interrupt program. If the interrupt program contains no move and miscellaneous function (MSTB) commands, the interrupt program is executed without interrupting execution of the current block. However, if the interrupt program has not ended even after the execution of the original block is completed, the system may stop machining temporarily.

- 256 -

13. Program Support Functions

[Type 1]

Main program

If the interrupt program contains a move or miscellaneous function command, the reset of block (2) is lost.

Interrupt program User macro interrupt signal

If the interrupted program contains no move and miscellaneous commands, it resumes operation from where it left in block (2), that is, all the reset commands.

Interrupt program User macro interrupt signal

Executing

[Type 2]

Main program

Interrupt program User macro interrupt signal If the interrupted program contains no move and miscellaneous commands, the interrupted program is kept executed in parallel to execution of the interrupt program block (3).

Interrupt program User macro interrupt signal The move or miscellaneous command in the interrupt program is executed after completion of the current block.

- 257 -

13. Program Support Functions

(5) Calling method User macro interrupt is classified into the following two types depending on the way an interrupt program is called: a. subprogram type interrupt b. Macro type interrupt These two types of interrupt are selected by bit 0 of parameter #1229 set 01. [Subprogram type interrupt] The user macro interrupt program is called as a subprogram. As with calling by M98, the local variable level remains unchanged before and after an interrupt. [Macro type interrupt] The user macro interrupt program is called as a user macro. As with calling by G65, the local variable level changes before and after an interrupt. No arguments in the main program can be passed to the interrupt program. Both types of interrupt are included in calculation of the nest level. The subprograms and user macros called in the interrupt program are also included in calculation of the nest level. (6) Acceptance of user macro interrupt signal (UIT) A user macro interrupt signal (UIT) is accepted in the following two modes: a. Status trigger mode b. Edge trigger mode These two modes are selected by a parameter #1112 S_TRG. [Status trigger mode] The user macro interrupt signal (UIT) is accepted as valid when it is on. If the interrupt signal (UIT) is ON when the user macro interrupt function is enabled by M96, the interrupt program is activated. By keeping the interrupt signal (UIT) ON, the interrupt program can be executed repeatedly. [Edge trigger mode] The user macro interrupt signal (UIT) is accepted as valid at its rising edge, that is, at the instance it turns on. This mode is useful to execute an interrupt program once. User macro interrupt signal (UIT)

(Status trigger mode)

User macro interrupt (Edge trigger mode)

Accepting user macro interrupt signal (UIT)

- 258 -

13. Program Support Functions

(7) Returning from user macro interrupt M99 (P__) ; An M99 command is issued in the interrupt program to return to the main program. Address P is used to specify the sequence number of the return destination in the main program. The blocks from the one next to the interrupted block to the last one in the main program are first searched for the block with sequence number Np2;. If it is not found, all the blocks before the interrupted one are then searched. Control thus returns to the block with sequence number Np2; that is found first in the above search. (This is equivalent to M99P__ used after M98 calling.) (8) Modal information affected by user macro interrupt If modal information is changed by the interrupt program, it is handled as follows after control returns from the interrupt program to the main program. [Returning with M99;] The change of modal information by the interrupt program is invalidated and the original modal information is not restored. With interrupt type 1, however, if the interrupt program contains a move or miscellaneous function (MSTB) command, the original modal information is not restored. [Returning with M99P__;] The original modal information is updated by the change in the interrupt program even after returning to the main program. This is the same as in returning with M99P__; from a program called by M98.
Main program being executed Interrupt program

User macro interrupt signal (UIT)

(Modal change)

Modal before interrupt is restored.

(With Pp2 specified)

Modal modified by interrupt program remains effective.

Modal information affected by user macro interrupt

- 259 -

13. Program Support Functions

(9) Modal information variables (#4401 to #4520) Modal information when control passes to the user macro interrupt program can be known by reading system variables #4401 to #4520. The unit specified with a command applies. System variable #4401 ~ #4421 #4507 #4509 #4511 #4513 #4514 #4515 #4519 #4520 Modal information G code (group 01 to group 21) D code F code H code M code Sequence number Program number S code T code Some groups are not used.

The above system variables are available only in the user macro interrupt program. If they are used in other programs, program error P241 results. (10) M code for control of user macro interrupt The user macro interrupt is controlled by M96 and M97. However, these commands may have been used for other operation. To be prepared for such case, these command functions can be assigned to other M codes. (This invalidates program compatibility.) User macro interrupt control with alternate M codes is possible by setting the alternate M code in parameters #1110 M96_M and #1111 M97_M and by validating the setting by selecting parameter #1109 subs_M. (M codes 03 to 97 except 30 are available for this purpose.) If the parameter #1109 subs_M used to enable the alternate M codes is not selected, the M96 and M97 codes remain effective for user macro interrupt control. In either case, the M codes for user macro interrupt control are processed internally and not output to the outside. (11) Parameters Refer to the Operation Manual for details on the setting methods. 1) Subprogram call validity #1229 set01 bit 0 1 : Subprogram type user macro interrupt 0 : Macro type user macro interrupt 2) Status trigger mode validity #1112 S_TRG 1 : Status trigger mode 0 : Edge trigger mode 3) Interrupt type 2 validity #1113 INT_2 1 : The executable statements in the interrupt program are executed after completion of execution of the current block. (Type 2) 0 : The executable statements in the interrupt program are executed before completion of execution of the current block. (Type 1)

- 260 -

13. Program Support Functions

4) Validity of alternate M code for user macro interrupt control #1109 subs_M 1 : Valid 0 : Invalid 5) Alternate M codes for user macro interrupt Interrupt enable M code (equivalent to M96) #1110 M96_M Interrupt disable M code (equivalent to M97) #1111 M97_M M codes 03 to 97 except 30 are available.

(12) Checkpoints 1) If the user macro interrupt program uses system variables #5001 and after (position information) to read coordinates, the coordinates pre-read in the buffer are used. 2) If an interrupt is caused during execution of the tool diameter compensation, a sequence number (M99P__;) must be specified with a command to return from the user macro interrupt program. If no sequence number is specified, control cannot return to the main program normally.

- 261 -

13. Program Support Functions

13.12
13.12.1

Tool position return


Outline

By specifying the tool changing position in a parameter (#8206 TOOL CHG. P) and also specifying a tool changing position return command in a machining program, the tool can be changed at the most appropriate position. The axes that are going to return to the tool changing position and the order in which the axes begin to return can be changed by commands.

13.12.2

Command format

(1) The format of tool changing position return commands is as follows. G30. * ; * = 1 to 6 : Specify the axes that return to the tool changing position and the order in which they return. For the commands and return order, see Table 2.1. Table 2.1 Command G30.1 G30.2 G30.3 G30.4 G30.5 G30.6 Commands and return order Return order Z axis X axis Y axis Z axis X axis Y axis Z axis Y axis X axis X axis Y axis Z axis Y axis X axis Z axis X axis Y axis Z axis ( added axis) ( added axis) ( added axis) ( added axis) ( added axis) ( added axis)

Note 1) An arrow ( ) indicates the order of axes that begin to return. An period ( ) indicates that the axes begin to return simultaneously. Example : "Z axis X axis, Y axis" indicate that the Z axis returns to the tool changing position, then the X and Y axes does. (2) The tool changing position return on/off for the added axis can be set with parameter #1092 Tchg_A for the added axis. Note, however, that the added axis always return to the tool changing position only after the standard axes complete returning (see the above table). The added axis alone cannot return to the tool changing position.

- 262 -

13. Program Support Functions

13.12.3

Operation

(1) The figure below shows an example of how the tool operates during the tool position return command.

Tool changing position

1)

G30.1 command: The Z axis returns to the tool changing position, then the X and Y axes simultaneously do the same thing. (If tool changing position return is on for an added axis, the added axis also returns to the tool changing position after the X, Y and Z axes reach the tool changing position.)

2)

G30.2 command: The Z axis returns to the tool changing position, then the X axis does the same thing. After that, the Y axis returns to the tool changing position. (If tool changing position return is on for an added axis, the added axis also returns to the tool changing position after the X, Y and Z axes reach the tool changing position.)

3)

G30.3 command: The Z axis returns to the tool changing position, then the X axis does the same thing. After that, the X axis returns to the tool changing position. (If tool changing position return is on for an added axis, the added axis also returns to the tool changing position after the X and Z axes reach the tool changing position.)

4)

G30.4 command: The X axis returns to the tool changing position, then the Y axis and Z axis simultaneously do the same thing. (If tool changing position return is on for an added axis, the added axis also return to the tool changing position after the X, Y and X axes reach the tool changing position.)

5)

G30.5 command: The Y axis returns to the tool changing position, then the X and Z axes return to the tool changing position simultaneously. (If tool changing position return is on for an added axis, the added axis also returns to the tool changing position after the X, Y and Z axes reach the tool changing position.)

6)

G30.6 command: The X, Y and Z axes return to the tool changing position simultaneously. (If tool changing position return is on for an added axis, the added axis also returns to the tool changing position after the X, Y and Z axes reach the tool changing position.) - 263 -

13. Program Support Functions

(2) After all necessary tool changing position return is completed by a G30. * command, tool changing position return complete signal TCP (X22B) is turned on. When an axis out of those having returned to the tool changing position by a G30. * command leaves the tool changing position, the TCP signal is turned off. With a G30.1 command, for example, the TCP signal is turned on when the Z axis has reached the tool changing position after the X and Y axes did (supposing tool changing position return for added axes is off). The TCP signal is then turned off when the X or Y axis leaves the position. If tool changing position return for added axes is on with parameter #1092 Tchg_A, the TCP signal is turned on when the added axis or axes have reached the tool changing position after the standard axes did. It is then turned off when one of the X, Y, Z, and added axes leaves the position. [TCP signal output timing chart] (G30.3 command with tool changing position return for added axes set on)

Work program Arrival of Z axis to tool changing position Arrival of X, Y axes to tool changing position Arrival of added axis to tool changing position Tool changing position return complete signal (TCP)

(3) When a tool changing position return command is issued, tool offset data such as for tool length offset and tool diameter compensation for the axis that moved is canceled. (4) This command is executed by dividing blocks for every axis. If this command is issued during single-block operation, therefore, a block stop occurs each time one axis returns to the tool changing position. To make the next axis return to the work zero point, therefore, a cycle start needs to be specified.

- 264 -

13. Program Support Functions

13.13

Normal line control; G40.1/G41.1/G42.1

(1) Outline If the C axis is set as the normal line control axis, the C axis (rotation axis) turning will be controlled so that the tool constantly faces the normal line direction control in respect to the XY axis movement command during program operation. At the block seams, the C axis turning is controlled so that the tool faces the normal line direction control at the next block's start point.
C axis center (rotation axis)

Tool end position C axis turning

The normal line control I and II can be used according to the C axis turn direction during normal line control. This is determined by the machine manufacturer specifications. Normal line control type Type I Type II (2) Command format G Xx1 Yy1 Ff1 ; Function Normal line control cancel Normal line control left ON Normal line control right ON Turning direction Direction that is 180 or less (shortcut direction) As a principle, the commanded direction Turning speed Parameter speed Feedrate Application Cutting machining Spring machining

G G40.1 G41.1 G42.1

x1 : X axis end point coordinates y1 : Y axis end point coordinates f1 : Feedrate The axis No. for the normal line control axis is designated with the parameter (C_axis). Normal line control is carried out in respect to the axis movement direction of the selected plane. G17 plane X-Y axes G18 plane Z-X axes G19 plane Y-Z axes

- 265 -

13. Program Support Functions

(3) Detailed description (a) Definition of C axis angle 1) C axis turning operation in respect to movement command a. Start up After the C axis turns to a right angle of the movement direction by the XY axis command, the XY axes are moved. b. During normal line control mode 1. Block seam No tool radius compensation With tool radius compensation After the C axis is turned to be at a right angle of the XY axis movement in the next block, that block is moved. If radius compensation is applied on a linear-linear, linear-arc or arc-arc block that crosses a sharp angle, a linear block can be inserted. At this time, the C axis normal line control inserts a C axis turn movement in respect to the shape after radius compensation.

2. During block movement The C axis angle is kept constant during the linear command, and the C axis does not turn. During the arc command, the C axis turns in synchronization with the XY arc interpolation. c. Cancel The C axis does not turn, and the axis movement by the XY axis command is carried out.

- 266 -

13. Program Support Functions

2) C axis turning speed Turning speed at block seam (select from type 1 or type 2) Item Type 1 Type 2 The tool end position feedrate is Normal The C axis turning speed f is set automatically controlled by CNC line with parameters. internal calculations so that it control However, if the C axis turning matches the F command value. axis speed exceeds the cutting clamp turning speed, the speed is clamped to the The C axis turning speed f is obtained with the following speed at cutting clamp speed. expression. block seam f = F/R 180/ (degree/min.) F: Feedrate (mm/min.) F : Feed command speed R: Parameter value (mm) Length from C axis center to tool end When R = 0 f = F 180/ (degree/min.)
F

f : Normal line control axis turning speed = parameter (C_feed)


f

R R F

Normal line control axis turning speed during circular interpo-lati on

The normal line control axis turning speed is the rotation speed obtained by feedrate F. Normal line control axis turning speed f = F180/(r) (degree/min) F : Feed command speed (mm/min) r : Arc radius (mm) (Note 1)
F: Feed command speed

The feedrate at the tool nose is the F command. The normal line control axis turning speed is the rotation speed that follows this F command. Normal line control axis turning speed f = F180/((R+r)) (degree/min) F : Feed command speed (mm/min) R : Parameter (C rot. R) (mm) Length from normal line control axis center to tool nose r : Arc radius (mm) (Note 1)
F: Feed command speed

r: Arc radius Normal line control axis turning speed f =F*180/(*r)

R: Parameter (C rot. R)

r: Arc radius

Normal line control axis turning speed f =F*180/(*(R+r))

- 267 -

13. Program Support Functions

Note 1) If the normal line control axis turning speed exceeds the cutting feed clamp speed (clamp), the speed will be as follows; Normal line control axis turning speed = Cutting feed clamp speed. Moving speed during arc interpolation = The speed according to the normal line control axis turning speed 3) Definition of C axis turning direction The C axis angle is 0 (degree) when the tool is facing the +X direction. The counterclockwise direction turning is + (plus), and the clockwise direction turning is (minus). (4) Notes (a) During normal line control, the program coordinates are updated following the normal line control axis movement. Thus, program the normal line control with the program coordinate system. (b) The normal line control axis will stop at the turning start position at the single block, cutting block start interlock and block start interlock. (c) The C axis movement command is ignored during normal line control. (d) During C axis normal line control (during the G41.1 and G42.1 modal), the C axis workpiece offset rewrite command (G92C_;) cannot be issued. The program error (P901) will occur if commanded. (e) If mirror image is applied to either the 1-axis or 2-axis, the normal line control direction will be reversed. (f) Designate the rotation axis for the normal line control axis (parameter (C_axis)). Designate so that the axis is not duplicated with the axis on the plane where normal line control is to be carried out. If an illegal axis is designated, the program error (P902) will occur when the program (G40.1, G41.1, G42.1) is commanded. The program error (P902) will also occur if the parameter (C_axis) is "0" when these codes are commanded. (g) Depending on the model, this function cannot be used.

- 268 -

13. Program Support Functions

(5) Relation with other functions Function name Uni-directional positioning Helical cutting Exact stop check Error detect Override Mirror image Linear angle designation Geometric designation Normal line control is not applied. Normal line control is applied normally. The operation will not decelerate and stop for the turning movement of the normal line control axis. Error detect is not applied on the turning movement of the normal line control axis. Override is applied on the turning movement by normal line control axis. Normal line control is applied to the shape after mirror image. Normal line control is applied to the shape after the linear angle command. Normal line control is applied to the shape after geometric command. Notes

Automatic reference Normal line control is not applied. point return Start position return Normal line control is not applied on the movement to the middle point position. If the base specification parameter "G0Intp" is 0, normal line control is applied to the movement from the middle point to a position designated in the program. The normal line control axis operates in the program coordinate system set during normal line control. The normal line control axis operates in the program coordinate system set during normal line control. The feedrate is changed by the dry run signal even in respect to the turning movement of the normal line control axis. The axis cannot be used as the normal line control axis during the chopping command.

Workpiece coordinate system offset Local coordinate system offset Dry run Chopping

- 269 -

13. Program Support Functions

13.14

High-accuracy control
Until now, trouble such as the following occurred when using control: 1)Corner rounding occurred at linear and linear-connected corners because the following command movement started before the previous command finished. (Refer to Fig. 1) 2)When cutting circle commands, an error occurred further inside the commanded path, and the resulting cutting path was smaller than the commanded path. (Refer to Fig. 2) This function controls the operation so the lag is eliminated in control systems and servo systems. With this function, improved machining accuracy can be realized, especially during high-speed machining, and machining time can be reduced. The high-accuracy control function is configured of the following functions. 1) Pre-interpolation acceleration/deceleration (linear acceleration/deceleration) 2) Optimum corner deceleration 3) Vector accuracy interpolation 4) Active feed forward
Commanded path Commanded path

(1) Outline

Actual path

Actual path

Fig. 1

Rounding at linear corners

Fig. 2

Radius reduction error in circle commands

(2) Command format Xx1 Yy1 Zz1 Ff1 ; G61.1 High-accuracy control mode The high-accuracy control mode is validated from the block containing the G61.1 command.
G64 G61.1

The high-accuracy control mode is canceled with one of the following G commands. G61 (exact stop check) G62 (automatic corner override) G63 (tapping mode) G64 (cutting mode)

- 270 -

13. Program Support Functions

(Note)

1. The "high-accuracy control" specifications are required to use this function. If G61.1 is commanded when the specifications are not available, "P123 NO PRE-INTP." will occur. 2. The feedrate command F is clamped by the rapid traverse rate or maximum cutting feedrate set with the parameters. 3. Refer to the section (3)Detailed description for details on the speed clamp during an arc command. 4. Depending on the model, this function cannot be used.

[Program example] G64 is canceled with the G61.1 command, and the high-accuracy control mode is entered.
N01 N02 N03 N04 N05 N06 N07 N08 N09 N10 N11 G28 X0 Y0 ; G90 G00 G54 X0 Y0 ; G91 G01 G61.1 F3000 ; X100. ; X100. Y-100. ; X-100. Y-100. ; X-100. ; X-100. ; X100. Y100. ; G64 ; M02 ;

High-accuracy control mode ON

High-accuracy control mode OFF

[Modal holding information] The modal holding state of the high-accuracy control mode differs according to the conditions of the base specification parameter "#1151 rstint" (reset initial) and "#1148 I_G611 (initial highaccuracy). [High-accuracy control mode holding state]
Parameter Default state Reset Block interrup-tio n Block stop Emergency NC stop alarm OT Emergency stop cancel

External emergency stop

OFF OFF ON ON

OFF ON OFF ON

C H C H

H * H C * H

C * H C * H

C H C H

H H H H

H H H

H H H

H H H

H H H

H H C

* H H H H H H (hold) : Modal hold (G61.1 G61.1) C (cancel) : Modal cancel (G61.1 G64)

(Note) The cases marked with an asterisk (*) in the above table indicate that the modal will shift to the high-accuracy control mode (G61.1) even in modes other than the high-accuracy control mode (modes G61 to G64).

- 271 -

External emergency stop

Emergency stop switch

Emergency stop switch

Initial high accuracy

Mode changeover (automatic/manual)

Reset & rewind

Reset initial

Single block

Servo alarm

Power ON

Feed hold

H/W OT

Reset 1

Reset 2

13. Program Support Functions

(3) Detailed description (a) Pre-interpolation acceleration/deceleration Acceleration/deceleration control is carried out for the movement commands to suppress the impact when the machine starts or stops moving. However, with conventional post-interpolation accelera-tion/deceleration, the corners at the block seams are rounded, and path errors occur regarding the command shape. In the high-accuracy control function mode, acceleration/deceleration is carried out before interpolation to solve the above problems. This pre-interpolation acceleration/deceleration enables machining on a machining path that more closely follows the command. The acceleration/deceleration time can be reduced because constant inclination acceleration/ deceleration is carried out. [Basic patterns of acceleration/deceleration control in linear interpolation commands] Acceleration/deceleration waveform pattern
Speed of each axis clamp

(1) Because of the constant time constant acceleration/deceleration, the rising edge/falling edge of the waveform becomes more gentle as the command speed becomes slower. (2) The acceleration/deceleration time constant can be independently set for each axis. Linear type, exponential function type, or both can be selected. Note that if the time constant of each axis is not set to the same value, an error will occur in the path course.

G1tL

G1tL Time

Normal mode
Speed of each axis

clamp

clamp : G01 clamp speed G1tL : Linear type acceleration/ deceleration time constant G1t1 : Exponential type acceleration/ deceleration time constant

G1t1

G1t1 Time

clamp Combined speed

(1) Because of the constant inclination type linear acceleration/deceleration, the acceleration/deceleration time is reduced as the command speed becomes slower. (2) The acceleration/deceleration time constant becomes one value (common for each axis) in the system. clamp : G01 clamp speed G1bF : Target speed G1btL : Acceleration/deceleration time to target speed

G1bF

High-acc uracy control mode

G1bF/2

G1btL/2

G1btL/2 G1btL Time

G1btL

G1bF and G1btL are values for specifying the inclination of the acceleration/deceleration time; the actual cutting feed maximum speed is clamped by the "clamp" value.

- 272 -

13. Program Support Functions

[Path control in circular interpolation commands] When commanding circular interpolation with the conventional post-interpolation acceleration/ deceleration control method, the path itself that is output from the CNC to the servo runs further inside the commanded path, and the circle radius becomes smaller than that of the commanded circle. This is due to the influence of the smoothing course droop amount for CNC internal acceleration/deceleration. With the pre-interpolation acceleration/deceleration control method, the path error is eliminated and a circular path faithful to the command results, because interpolation is carried out after the accelera-tion/deceleration control. Note that the tracking lag due to the position loop control in the servo system is not the target here. The following shows a comparison of the circle radius reduction error amounts for the conventional post-interpolation acceleration/deceleration control and pre-interpolation acceleration/deceleration control in the high-accuracy control mode.
F F R

R : Commanded radius (mm) (mm) R: Radius error F : Cutting feedrate (mm/min)

The compensation amount of the circle radius reduction error (R) is theoretically calculated as shown in the following table. Post-interpolation acceleration/deceleration Pre-interpolation acceleration/deceleration control (normal mode) control (high-accuracy control mode) Linear acceleration/deceleration Linear acceleration/deceleration
R

1 2R

2 2 2 F 1 Ts + Tp 60 12

1 2R

F {Tp ( 1 Kf )} 60
2 2

Exponential function acceleration/deceleration


R

1 2R

(Ts2 + Tp2 )

2 F 60

1 Because the item Ts can be ignored by using the pre-interpolation acceleration/deceleration control method, the radius reduction error amount can be reduced. 2 Item Tp can be negated by making Kf = 1.

Ts : Acceleration/deceleration time constant in the CNC (s) Tp : Servo system position loop time constant (s) Kf : Feed forward coefficient

- 273 -

13. Program Support Functions

(b) Optimum speed control 1) Optimum corner deceleration By calculating the angle of the seam between blocks, and carrying out acceleration/deceleration control in which the corner is passed at the optimum speed, highly accurate edge machining can be realized. When the corner is entered, that corners optimum speed (optimum corner speed) is calculated from the angle with the next block. The machine decelerates to that speed in advance, and then accelerates back to the command speed after the corner is passed. Corner deceleration is not carried out when blocks are smoothly connected. In this case, the criteria for whether the connection is smooth or not can be designated by the machining parameter "#8020 DCC ANGLE". [When the corner angle is larger than the parameter "DCC ANGLE" for a linearlinear connection, or for a circle, etc.] When the corner is passed at a speed V, the acceleration V occurs due to the change in the direction of progress.
V Speed before entering the corner V Speed change at the corner

V Speed after the corner is passed

The corner angle V is controlled so that this V value becomes less than the pre-interpolation acceleration/ deceleration tolerable value set in the parameters (G1bF, G1btL). In this case the speed pattern is as follows.
Y axis X axis The optimum corner speed is represented by V0. V0 is obtained from the pre-interpolation acceleration/deceleration tolerable value (V') and the corner angle (outside angle) . V = G1bF G1btL

N01 G01X100.Y1.F500 ;

N02 G01X100.Y-1.F500 ;

Combined speed pattern

Speed

Time

V0

V0 =

V0x2 + V0y2

To further reduce the corner speed V0 (to further improve the edge accuracy), the V0 value can be reduced in the machining parameter "#8019 R COMPEN".

X axis speed pattern

Speed

V0 = Time

V0 (100 Ks) 100 Ks: R COMPEN (Accuracy coefficient)

V0x

Y axis speed pattern

Speed

Time

V0y

(Note) In this case, the cycle time may increase due to the increase in the time required for acceleration/ deceleration.

- 274 -

13. Program Support Functions

2) Arc speed clamp During circular interpolation, even when moving at a constant speed, acceleration is generated as the advance direction constantly changes. When the arc radius is large compared to the commanded speed, control is carried out at the commanded speed. However, when the arc radius is relatively small, the speed is clamped so that the generated acceleration does not exceed the tolerable acceleration/deceleration speed before interpolation, calculated with the parameters. This allows arc cutting to be carried out at an optimum speed for the arc radius.
F F F V F R V : Commanded speed (mm/min) : Commanded arc radius (mm) : Angle change per interpolation unit : Speed change per interpolation unit

The tool is fed with the arc clamp speed F' so that V does not exceed the tolerable acceleration/deceleration speed before interpolation V'. F R V 60 1000 (mm/min) V' = G1bF (mm/min) G1btL (ms)

When the above F' expression is substituted in the expression expressing the maximum logical arc radius reduction error amount R explained in the section "a) Pre-interpolation acceleration/deceleration", the commanded radius R is eliminated, and R does not rely on R.

2 2 R 2R {Tp (1 Kf ) }

R :Arc radius reduction error amount

( (

2R {Tp (1 Kf ) }

60 V 1000 60

)2

Tp : Position loop gain time constant of servo system

Kf : Feed forward coefficient F : Cutting feedrate

In other words, with the arc command in the high-accuracy control mode, in logical terms regardless of the commanded speed F or commanded radius R, machining can be carried out with a radius reduction error amount within a constant value. To further lower the arc clamp speed (to further improve the roundness), the arc clamp speed can be lowered with the machining parameter "#8019 R COMPEN". In this case, speed control is carried out to improve the maximum arc radius reduction error amount R by the set percentage.

R (100 Ks) 100

(mm)

R : Maximum arc radius reduction error amount Ks : R COMPEN (Accuracy coefficient) (%)

After setting the "R COMPEN", the above R' will appear on the parameter screen.
R COMPEN (0.078) 50 Accuracy coefficient setting value R

(Note 1) When the "R COMPEN" is set, the arc clamp speed will drop, so in a machining program with many arc commands, the machining time will take longer. (Note 2) The "R COMPEN" is valid only when the arc speed clamp is applied. To reduce the radius reduction error when not using the arc speed clamp, the commanded speed F must be lowered.

- 275 -

13. Program Support Functions

(c) Vector accuracy interpolation When a fine segment is commanded and the angle between the blocks is extremely small (when not using optimum corner deceleration), interpolation can be carried out more smoothly using the vector accuracy interpolation.
Vector accuracy interpolation

Commanded path

(d) Feed forward control With this function, the constant speed error caused by the position loop control of the servo system can be greatly reduced. However, as machine vibration is induced by the feed forward control, there are cases when the coefficient cannot be increased. In this case, use this function together with the smooth high gain (SHG) control function and stably compensate the delay by the servo system's position loop to realize a high accuracy. As the response is smoother during acceleration/deceleration, the position loop gain can be increased.
[Active feed forward control]

Command during acceleration/ deceleration before interpolation

Active feed forward control

Kp : Position loop gain Kv : Speed loop gain M : Motor S : Segment M

Command during acceleration/ deceleration after interpolation

+ +

Kp

Kv

Detector Machine error compensation amount

- 276 -

13. Program Support Functions

[Reduction of arc radius reduction error amount using feed forward control] With the high-accuracy control, the arc radius reduction error amount can be greatly reduced by combining the pre-interpolation acceleration/deceleration control method above-mentioned and the feed forward control/SHG control. The logical radius reduction error amount R in the high-accuracy control mode is obtained with the following expression. Feed forward control SHG control + feed forward control
1 2R {Tp (1 Kf ) }
2 2

F 60

R : Arc radius (mm) F : Cutting feedrate (mm/min) Tp : Position loop time constant (s) Kf : Feed forward coefficient

By setting Kf to the following value, the delay elements caused by the position loop in the servo system can be eliminated, and the logical R can be set to 0. Kf = 1 (Feed forward gain 100%) The equivalent feed forward gain to set Kf to 1 can be obtained with the following expression.
fwd _ g 2 PGN1 for conventional control 2 100 1 1 50 2 PGN1 for SHG control

* The feed forward gain can be set independently for G00 and G01.

R R

Path for pre-interpolation acceleration/deceleration control method (Kf = 1) Path for pre-interpolation acceleration/deceleration control method (Kf = 0) Path for post-interpolation acceleration/deceleration control method

[Restrictions] If the machine vibrates when Kf is set to 1, Kf must be lowered or the servo system must be adjusted.

- 277 -

13. Program Support Functions

(e) Arc entrance/exit speed control There are cases when the speed fluctuates and the machine vibrates at the joint from the straight line to arc or from the arc to straight line. This function decelerates to the deceleration speed before entering the arc and after exiting the arc to reduce the machine vibration. If this is overlapped with corner deceleration, the function with the slower deceleration speed is valid. The validity of this control can be changed with the base specification parameter "#1149 cireft". The deceleration speed is designated with the base specification parameter "#1209 cirdcc". (Example 1) When not using corner deceleration
<Operation> N1

<Program> G61.1 ; N1 G01 X-10. F3000 ; N2 G02 X-5. Y-5. J-2.5 ; N3 G01 Y-10. ; <Deceleration pattern> Speed Commanded speed

N2 N3

N1

N2

N3

Arc clamp speed Arc deceleration speed

Time

(Example 2)

When using corner deceleration


<Operation> N1 N2 N3

<Program> G61.1 ; N1 G01 X-10. F3000 ; N2 G02 X5. Y-5. I2.5 ; N3 G01 X10. ; <Deceleration pattern> Speed Commanded speed Arc clamp speed Arc deceleration speed Corner deceleration speed

N1

N2

N3

Time

- 278 -

13. Program Support Functions

(f) S-pattern filter control This control interpolates while smoothing the changes in the segments distributed to each axis element with vector accuracy interpolation. With this, the fluctuation amplified by feed forward control is reduced and the effect onto the machine is reduced. The S-pattern filter can be set independently for G00 and G01 by setting "1" for the base specification parameter "#1150 Fldc0/bit7". In this case, the G00 S-pattern filter is set with the base specification parameter "#1150 Fldc0", and the G01 S-pattern filter is set with "#1131 Fldcc". When the base specification parameter "#1150 Fldc0/bit7" is set to "0", both G00 and G01 S-pattern filter are set with the base specification parameter "#1131 Fldcc". The S-pattern filter can be set to 3.5, 7.1, 14.2, 28.4 or 56.8 [ms].
<When filter is invalid>
F

<When filter is valid>

Parameter setting value

T Command to amplifier

(g) Each axis arc radius reduction error compensation control When the roundness at the machine end is, compared to the reference circle, expanded at an axis creating an ellipsis state, compensation is carried out for each axis to make a perfect circle. The validity of this control can be changed with control parameter "#8108 R COMP Select". Note that "#8108 R COMP Select" is valid only when "#8107 R COMPENSATION" is set to "1". The compensation coefficient for each axis is designated with the axis specification parameter "#2069 Rcoeff". 1) Compensation in each axis direction of arc
Machine end path

Commanded path

Machine end path

Commanded path

- 279 -

13. Program Support Functions

2) Smooth compensation at entrance and exit The compensation amount is gradually increased from the arc start point to the 90 position, and 100% compensation is reached at the 90 position. The compensation is gradually decreased from 90 before the end point, and 0% compensation is reached at the end point.
Machine end path

Commanded path

- 280 -

13. Program Support Functions

13.15

High-speed High-accuracy control

(1) Outline This function runs a machining program that approximates a freely curved surface with fine segments at high speed and high accuracy. This is effective in increasing the speed of machining dies of a freely curved surface. The fine segment length performance under the condition of 3 axes and 1mm movement is as following tables. High-speed high-accuracy function mode Invalid type I valid type II valid Fine segment length performance (No radius compensation) 8.4m/min 16.8m/min 33.6m/min Program limitations None Limited Limited

The performance mentioned in the above table is the value when there is no radius compensation. * Refer to section "(3) Detailed explanation" for details on the program limitations. (2) Command format G05.1 Q1 ; ........ High-speed high-accuracy control I ON G05.1 Q0 ; ........ High-speed high-accuracy control I OFF

G05 P10000 ; ... High-speed high-accuracy control II ON G05 P0 ; ........... High-speed high-accuracy control II OFF (Note1) High-speed high-accuracy modes I and II can not be used at the same time. (Note2) The command "G05P10000" (High-speed high-accuracy mode II ) is valid when the parameter "#1297 ext03/bit0" is ON.

- 281 -

13. Program Support Functions

(3)

Detailed explanation The modal state must be as shown below when commanding G05.1 Q1 and G05 P10000. "P34 G-CODE ERROR" will occur if the conditions are not satisfied. Function Tool radius compensation mode Tool length compensation Programmable mirror image Mirror image with parameter settings Mirror image with signals Cutting mode Macro modal call mode Programmable coordinate rotation mode Fixed cycle mode Feed per rotation Constant surface speed control mode Interruption type macro mode G code G40 G49 G50.1 Cancel Cancel G64 G67 G69 G80 G94 G97 M97 For only mode I

The following data can be commanded while the high-speed high-accuracy control I/II mode is ON. "P34 G-CODE ERROR" will occur if other data is commanded. Function High-speed high-accuracy mode I Positioning Cutting feed Helical interpolation Plane selection Tool radius compensation Tool length compensation Programmable mirror image Mirror image with parameter settings Mirror image with signals Absolute command Incremental command Workpiece coordinate system setting Workpiece coordinate system selection Machine coordinate system command Subprogram call External subprogram call Programmable parameter input Programmable offset amount input High-accuracy contour control I cancel High-accuracy contour control II cancel - 282 II G00 G01 G02 G17 G40 G43 G50.1 G90 G91 G92 G54 to G59 G53 M98 M198 G10 L50 G10 L10 G05.1 Q0 G05 P0 G02 G03 G18 G41 G44 G51.1 G19 G42 G49 G03 G code

13. Program Support Functions

Function

High-speed high-accuracy mode I II ( / Mxxx I X

G code

Fine spline control F code command Sequence No. command Comment command Optional block skip Miscellaneous function (Note 1) I/J/K/R command for circular interpolation Axis movement command (Note 1) M96 and M97 cannot be used.

G05.1 Q2 G05.1 Q0 Fxxx Nxxx ) Sxxx J Y Txxx K Z Bxxx R etc.

(a) The high-speed high-accuracy control I / II can be used during tape, MDI, HD or memory operation. (b) The override, maximum cutting speed clamp, single block operation, dry run, handle interrupt and graphic trace are valid even during the high-speed high-accuracy control I / II modal. (c) The machining speed may drop depending on the number of characters in one block. (d) The high-accuracy control mode automatically turns ON with this function. (e) Turn the tool radius compensation command ON and OFF during the high-speed high-accuracy control I / II mode. If the high-speed high-accuracy control I / II mode is turned OFF without turning the tool radius compensation OFF, "P34 G-CODE ERROR" will occur. (f) Turn the high-speed high-accuracy control I / II mode OFF before commanding data other than the data listed above. (4) Restrictions (a) This function is an option. If G05.1 Q1 or G05 P10000 is commanded when the option is not provided, the "P39 NO SPEC ERR" error will occur. (b) When machining with high-speed high-accuracy control I / II, the program path may differ from the actual path. (Only for G01 command) Program path Actual path G01

G01

The fine segment will move to the end point of up to 2 blocks(high-speed high-accuracy control I) ahead. (Up to 8 blocks when high-speed high-accuracy control II.)

2 G01

(c) The automatic operation process has the priority during the high-speed high-accuracy control I / II modal, so the display, etc., may lag. (d) In the G05.1 Q1, G05.1 Q0 and G05 P10000, G05 P0 command blocks, the speed will decelerate once, so turn these ON and OFF at a place where the tool is separated from the workpiece. (e) Command G05.1 Q1, G05.1 Q0 and G05 P10000, G05 P0 in independent blocks.

- 283 -

13. Program Support Functions

(f) During high-speed high-accuracy control I / II operation using tape operation, the machining speed may be suppressed depending on the program transmission speed and the number of characters in one block. (g) The G05.1 or G05 command is invalid unless the Q or P command is issued. (i) "P34 G-CODE ERROR" will occur if high-speed high-accuracy control I is commanded during the high-speed high-accuracy control II modal. (j) "P34 G-CODE ERROR" will occur if high-speed high-accuracy control II is commanded during the high-speed high-accuracy control I modal. (k) The variable command and user macro cannot be used during the high-speed high-accuracy control II modal.

- 284 -

13. Program Support Functions

13.16

Fine spline

(1) Outline This function automatically generates a spline curve that passes through a sequence of points commanded by the fine segment machining program, and interpolates the path along this curve. This allows highly accurate machining at a high speed. The fine spline function can be commanded when the machining parameter "#8025 SPLINE ON" is set to 1 in the high-speed high-accuracy control function II mode (between G05P10000 and G05P0). The following explanation is limited to the fine spline function in the high-speed high-accuracy control function II mode. (2) Command format G05.1Q2X0Y0Z0 ; G05.1Q0 ; Fine spline mode ON Fine spline mode OFF

(3) Program example : G91 ; G05 P10000 ;........................... : G05.1 Q2 X0 Y0 Z0 ; ............... G01 X1000 Z-300 F1000 ; X1000 Z-200 ; Y1000 ; X-1000 Z-50 ; X-1000 Z-300 ; G05.1 Q0 ;................................ : G05 P0 ; ................................... :

High-speed high-accuracy control function II mode ON Fine spline mode ON

Fine spline mode OFF High-speed high-accuracy control function II mode OFF

(a) The fine spline function carries out spline interpolation when the following conditions are all satisfied. If the following conditions are not satisfied, the fine spline function is canceled once, and it is judged whether to carry out new fine spline from the next block. When the block length is shorter than the machining parameter "#8030 MINUTE LENGTH". When the movement amount is not 0. When one of the following modes is entered. G01: Linear interpolation, G40: Tool compensation cancel, G64: Cutting mode G80: Fixed cycle cancel, G94: Per minute feed When only an axis commanded with G05.1Q2 is commanded. Graphic check is not being carried out. A single block is not being executed. (b) Command the axis for the fine spline function mode following G05.1Q2. Note that the command and G05.1Q2. must be in the same block. For example, if the X axis and Y axis are to be commanded in the fine spline function mode, command "G05.1Q2X0Y0;". The command block containing an axis not designated with this command (G05.1Q2X0Y0) in the fine spline function mode will carry out linear interpolation instead of spline interpolation. (c) If G05.1Q2 is commanded when not in the high-speed high-accuracy control function II mode (between G05P10000 and G05P0), the error "P34 G-CODE ERROR" will occur. (d) If the machining parameter "#8025 SPLINE ON" is 0 in the high-speed high-accuracy control function II mode (between G05P10000 and G05P0) and G05.1Q2 is commanded, the error "P34 G-CODE ERROR" will occur. (e) Up to three axes set as the basic axes I, J and K can be commanded for the fine spline function. - 285 -

13. Program Support Functions

(4) Detailed explanation (a) Temporary cancellation of spline interpolation Normally, once the fine spline function is activated, one curve is generated by smoothly connecting all points until it is canceled. However, if a corner edge is to be created, or if the segment length is long and spline interpolation is not to be carried out, the function can be canceled temporarily with the parameters. Cancel angle If the angle of two consecutive blocks exceeds the value set in parameter "#8026 CANCEL ANG.", the fine spline function will be temporarily canceled, and optimum corner deceleration will be applied. When this parameter is not set (=0), the spline interpolation will be constantly applied. The parameter of the high-accuracy control function "#8020 DCC ANGLE" is valid during the temporary cancellation, and the optimum corner deceleration will be applied. <Example 1> #8026 CANCEL ANG. = 60 Program command Spline interpolation path
Corner

<Example 2> #8026 CANCEL ANG. = 0 Program command

Spline interpolation path


Curve

Note) (1) If the section to be a corner is smooth when actual machining is carried out, lower the CANCEL ANG.. If a smooth section becomes a corner, increase the CANCEL ANG.. (2) If the CANCEL ANG. DCC. ANGLE, the axis will decelerate at all corners which angle is larger than the CANCEL ANG.. (3) If the CANCEL ANG. < DCC. ANGLE, corner deceleration will not be applied if the corner angle is less than the DCC. ANGLE even if the spline interpolation is canceled. #8026 CANCEL ANG. #8020 DCC ANGLE :Set the angle to cancel the fine spline control temporarily. :Set the angle to start the corner deceleration control.

- 286 -

13. Program Support Functions

Fine segment length If the movement amount in a block is longer than the parameter "#8030 MINUTE LENGTH", the fine spline function will be temporarily canceled, and the linear interpolation will be executed. When this parameter is not set (= 0), the fine segment length will be 1mm. If blocks that satisfies the following condition continue, linear interpolation will be executed. Segment length in a block > fine segment length (#8030 MINUTE LENGTH)
Linear interpolation

If the #8030 is set to "1", the spline interpolation will not be canceled according to the block length. When a block without movement exists If a block without movement exists in the fine spline function, the spline interpolation will be canceled temporarily. Note that blocks containing only ";" will not be viewed as a block without movement.

Block without movement

When a block markedly longer than other blocks exists in fine spline function If the ith block length is Li in the fine spline interpolation mode, and it is given as "Li > Li 1 8" or "Li > Li + 1 8", the block will be interpreted as a linear section, and the fine spline mode will be temporarily canceled. However, if the parameter "#8030 MINUTE LENGTH" is set to "1", the mode will not be canceled. "Li > Li 1 8" or "Li > Li + 1 8"
Li-1 Li+1

- 287 -

13. Program Support Functions

(b) Spline interpolation curve shape revision Normally, once the fine spline function is entered, one curve connecting all points smoothly is generated until the function is canceled. However, if the spline curve shape is to be revised, the spline curve shape can be revised with the parameters. Chord error of block containing inflection point When changing the CAD curve data into fine segments with the CAM, normally, the tolerance (chord error) of the curve is approximated in segments that are approx. 10m. If there is an inflection point in the curve, the length of the block containing the inflection point may lengthen. (Because the tolerance is applied at both ends near the inflection point.) If the block lengths with this block and the previous and subsequent blocks are unbalanced, the spline curve in this block will have a large error in respect to the original curve. At sections where the tolerance (chord error) of the fine segment block and spline curve in a block containing this type of inflection point, if the chord error in the corresponding section is larger than the value set in parameter (#8027 Toler-1), the spline curve shape is automatically revised so that the error is within the designated value. However, if the maximum chord error of the corresponding section is more than five times larger than the parameter "Toler-1" setting value, the fine spline function will be temporarily canceled. The curve is revised only in the corresponding block. The revisions are carried out with the following conditions for each block in the spline interpolation mode. There is an inflection point in the spline curve, and the maximum error of the spline curve and linear block is larger than parameter "Toler-1". (Distance between P3-P4 in Fig. 1) When the above conditions are satisfied, the spline curve will be revised so that the error between P3-P4 in Fig. 2 is within the designated value.
P2
Tolerance (chord error) P1

P3

Spline curve

P0

Inflection point Fine segment

P7

P4 P5

P6

Fig. 1

Spline curve before error revision


Chord error designated in the parameter "Toler-1" Spline curve before revision

Spline curve after revision

P4

Fig. 2

Spline curve after error revison

In parameter "Toler-1", set the tolerance for developing into fine segments with the CAM. Set a smaller value if the expansion (indentation) is apparent due to the relation with the adjacent cutting paths. - 288 -

13. Program Support Functions

Chord error of block not containing inflection point Even in blocks that do not contain an inflection point, if the block lengths are not matched, the tolerance of the spline curve may increase. The curve may also expand due to the effect of relatively short blocks. At sections where the tolerance (chord error) of the fine segment block and spline curve in a block not containing an inflection point, if the chord error in the corresponding section is larger than the value set in parameter (#8028 Toler-2), the spline curve shape is automatically revised so that the error is within the designated value. However, if the maximum chord error of the corresponding section is more than five times larger than the parameter "Toler-2" setting value, the fine spline function will be temporarily canceled. The curve is revised only in the corresponding block. The revisions are carried out with the following conditions for each block in the spline interpolation mode. There is no inflection point in the spline curve, and the maximum error of the spline curve and linear block is larger than parameter "Toler-2". (Distance between P2-P3 in Fig. 3) When the above conditions are satisfied, the spline curve will be revised so that the error between P2-P3 in Fig. 4 is within the designated value.
Spline curve

P2

P3
Tolerance (chord error) Fine segment

P1 P4

P5

Fig. 3

Spline curve before error revision


Chord error designation parameter "Toler-2"

Spline curve before revision

P2

P3

P1
Spline curve after revision

P4

P5

Fig. 4 Spline curve after error revision In parameter "Toler-2", set the tolerance for developing into fine segments with the CAM.

- 289 -

13. Program Support Functions

(c) Curvature speed clamp The commanded speed F for the fine spline function during a segment linear arc will be the speed commanded in the previously set modal. However, if the axis is fed with the same speed, excessive acceleration may occur at the sections where the curvature is large (where curvature radius is small) as shown below. Thus, the speed clamp will be applied.
Curvature small F Acceleration small F F: Commanded speed (mm/min) Acceleration large

Curvature large

Acceleration and curvature With the fine spline function, the high-accuracy control function is always valid. Thus, even if the curvature changes such as in this curve, the speed will be clamped so that the tolerable value of acceleration/deceleration before interpolation, which is calculated with the parameters, is not exceeded. The clamp speed is set for each block, and the smaller of the curvature radius Rs at the curve block start point and the curvature radius Re at the end point of the block will be used as the main curvature radius R. Using this main curvature radius R, the clamp speed F' will be calculated with expression (1). The smaller of this clamp speed F' and the commanded speed F will be incorporated for the actual feedrate. This allows cutting with an adequate feedrate corresponding the curvature radius along the entire curve. Rs : Block start point curvature radius (mm)
Re : Block end point curvature radius (mm) R : Block main curvature radius (mm) (smaller one of Rs and Re) V : Tolerable value of acceleration/deceleration before interpolation F' : Clamp speed (mm/min)

Rs

Re

F' =

100 Ks ................................................. (1) R V 60 1000 100 V = G1bF (mm/min) G1bF : Target acceleration/deceleration before G1btL (ms) interpolation G1btL : Acceleration/deceleration time to reach the target speed Ks : #8019 R COMP (Accuracy coefficient)

(5) Precautions The fine spline function will be canceled during graphic check. This function is valid when the base specifications parameters "#1267 ext03/bit0" is set to "1". If G05.1 Q2 is commanded when "0" is set, the error "P34 G-CODE ERROR" will occur. If the specifications for this function are not provided and G05.1Q2 is commanded, the program error "P39 NO SPEC" will occur. Even if "1" is set for parameter "#8030 MINUTE LENGTH", the fine spline function will be temporarily canceled by the cancel conditions (cancel angle, non-movement block, excessive chord error, etc.) other than the block length. - 290 -

13. Program Support Functions

13.17

Programmed coordinate rotation

(1) Outline Programmed coordinate rotation is a function that rotates the machining shape itself on the workpiece (rotates the local coordinates). (2) Command format Gn G68 __ __ R__ ; When n = Plane selection code : 17,18 or 19

, : Coordinate values of rotation center: these assign the two axes corresponding to the plane selected among X, Y and Z
R : Rotational angle: + for counterclockwise direction. The -360.000 to 360.000 range is assigned in 0.001 units. This data is model and will not change until a new angle command is assigned.

G69 ; (coordinate rotation cancel) : This may be assigned in the same block as other commands even in an independent block. The angle of rotation is set to zero when canceled.

- 291 -

13. Program Support Functions

(3) Detailed description (a) There is no need to assign the plane selection (G17,G18,G19) in the G68 block; it will be valid even if it has been assigned previously. (b) If the coordinate rotation coordinates (, ) and omitted, the position with the G68 command serves as the rotation center. (c) The coordinate rotation coordinates (, ) and rotation angle (R) may be absolute or incremental values, depending on whether the G90 or G91 command is used. (d) Coordinate rotation commands during coordinate rotation are processed as changes in the center coordinates and rotation angle. (e) The programmed coordinate rotation function is a function on the work coordinate system and so the rotated coordinate system is characterized by the relationship shown in the figure below.

- 292 -

13. Program Support Functions

(f) Program error P111 results when a plane selection code is assigned in the coordinate rotation mode. (g) Program error P260 results when coordinate rotation is assigned when the coordinate rotation specifications are not provided.

(4) Relationship with other functions and checkpoints (a) The coordinate rotation function is valid only in the memory and MDI automatic operation modes. It is not valid in the manual inching rapid traverse and handle modes. The reference (zero) point return function is not valid in either the automatic or manual mode. NOTE 1: There is no rotation with creep feed during uni-direction positioning even in automatic operation. NOTE 2: When these modes have interrupted (coordinate rotation axis) an automatic operation mode with the manual absolute switch at the ON position, do not allow subsequent absolute value commands to be issued during automatic operation. NOTE 3: Coordinate rotation applies to the intermediate point in reference point return. (b) If the G69 command and the G02, G03 commands are commanded in the same block, the program error "P70" will occur. (5) Processing sequence in programmed coordinate rotation (a) Offset processing is computed last of all In other words, the programmed coordinate rotation is pressed first, and then cutter compensation, tool length offset or tool position offset is conducted. (b) The coordinate rotation function has precedence over the mirror image function. Therefor, when both functions have been specified, mirror image processing is conducted after coordinate rotation processing. (c) If the reset signal is input during programmed coordinate rotation, the cancel mode will be entered. It is also established when a reset signal has been input. (d) The present position display indicates the movements after coordinate rotation. Therefor, when coordinate rotation is processed for a simultaneous single axis command, the display will indicate a simultaneous 2-axis operation.

- 293 -

13. Program Support Functions

13.18

Scaling(G50,G51)
The shapes assigned by the machining programs can be expended or reduced. The range of this expansion or reduction is from x 0.000001 to x 99.999999. The G51 command is used to assign the scaling axes, scaling center and the scaling magnification. The G51 command cancels scaling.

13.18.1

Command format

G51 Xx Yy Zz Pp ; Scaling ON (this assigns the scaling axes and center (incremental/absolute), and magnification) G50; Scaling cancel

13.18.2

Detailed description

(1) Assigning the scaling axes, scaling center and the magnification The scaling mode is subsequently established once the G51 command is assigned. G51 serves to specify the scaling axes, center and magnification only ; it does not provide movement. The scaling mode is established by the G51 command but the axes actually valid for scaling are only those axes for which the scaling center has been assigned. 1) Scaling center The scaling center is assigned by the axis address of the axes concerned in accordance with the absolute or incremental vale mode (G90 or G91). The commands must be assigned even when the present position is to serve as the center. As already mentioned, the axes valid for scaling are only those axes for which the center has been assigned. 2) Scaling magnification The scaling magnification is assigned by address P. Minimum command unit : x 0.000001 Command range : x 1 - 99999999(x 0.000001 - x 99.999999) Both ranges are valid but the Or x 0.000001 - x99.999999 decimal point commands can be assigned only for the commands after G51.

- 294 -

13. Program Support Functions

When the magnification has not been assigned in the same block as G51, the magnification set by the parameter is used. However, this will not be valid in the scaling mode even if the parameter setting is changed. Only the value set when G51 was assigned is valid. When the magnification has not been assigned for both the program and parameter, it is calculated as x 1. A program error will result in the following cases. P350 when scaling has been assigned even though the scaling specifications are not available P35 when the upper limit of the magnification command range has been exceeded in the same block as G51 (This is calculated as x 1 when it is less than 0.000001.) (2) Scaling cancel The scaling cancel mode is subsequently established when the G50 command is assigned. (3) Checkpoints 1) Scaling does not apply to the cutter compensation, tool length offset, tool position offset and other such offset amounts.(Offset is provided and calculated for shapes after scaling.) 2) Scaling is valid only for movement commands in the automatic operation mode(memory or MDI). It is not valid for manual movements. 3) The position display indicates the coordinates after scaling has been applied. 4) Scaling applies to all movements in the automatic operation mode undertaken by the scaling valid axes (axes for which the center has been assigned by the G51 command). 5) Scaling applies with arc commands for the two axes configuring the arc plane even when only one axis is a scaling valid axis. 6) The cancel mode is established when the M02, M30 or M00 command (only with M0 resetting) is assigned in the scaling mode. It is also canceled by the reset button (including external reset) when reset initial is selected. 7) The decimal points are valid only after the scaling command (G51) for the scaling magnification P data. G51 P0.5 ;................... x0.5 P0.5 G51 ;................... x1 (P is treated as o) P500000 G51 ;........... x0.5 G51 P500000 ;........... x0.5 8) The scaling center also shifts by the difference amount when the coordinate system is shifted (G92, G52 commands) during scaling. 9) When operation is manually interrupted during scaling, the manual ABS switch selection is ignored and the same movement results as when the manual ABS switch is at the OFF position. - 295 -

13. Program Support Functions

13.18.3
N01 N02 N03 N04 N05 N06 N07 N08 N09 N10 N11 N12

Programming examples
G92 G90 G00 G41 G01 G02 G01 G00 G40 M02 ; X0 Y0 Z0 ; X-100000 Z-200000 X-50000 Z-250000 Y-150000 F200 ; X-150000 Y-50000 X-50000 G49 Z0 ; G50 X0 Y0 ; G51 G43

(1) Basic operation [] Y-100000 H02 ; Y-50000 ; F1000 ; J50.0 ; P0.5 ; D01 ;

- 296 -

13. Program Support Functions

(2) Basic operation [] N01 N02 N03 N04 N05 N06 N07 N08 N09 G92 G90 G00 G01 X0 Y0 ; G51 P0.5 ; ................ See (1) through (4) below. X-50000 Y-50000 ; X-150000 F1000 ; Y-150000 ; X-50000 ; Y-50000 : G00 G50 ; M02 ; G90 G51 P0.5 ; N02 G90 G51 N02 G90 G51 N02 G90 G51 X-100000 X-100000 Y-100000 Y-100000 P0.5 ; P0.5 ; P0.5 ;

(1) Without scaling N02 (2) Scaling for X, Y (3) Scaling for X only (4) Scaling for Y only

- 297 -

13. Program Support Functions

(3) Basic operation [] N01 G92 X0 Y0 ; N02 G90 G51 P0.5 ; ................ See (1) through (4) below. N03 G00 X-50000 Y-50000 ; N04 G01 X-150000 F1000 ; N05 G02 X-100000 I-25.0 ; N06 G01 X150000 ; N07 G02 X-200000 I-25.0 ; N08 G01 X-250000 Y-100000 ; N09 Y-50000 ; N10 X-50000 ; N11 G00 G50 N12 M02 (1) Without scaling N02 (2) Scaling for X, Y (3) Scaling for X only (4) Scaling for Y only G90 G51 P0.5 ; N02 G90 G51 N02 G90 G51 N02 G90 G51 X-125000 X-125000 Y-100000 Y-100000 P0.5 ; P0.5 ; P0.5 ;

- 298 -

13. Program Support Functions

(4) G27 reference (zero) point check command during scaling When the G27 command is assigned during scaling, the scaling will be canceled upon completion of the command. N01 N02 N03 N04 N05 N06 G28 G92 G90 G00 G01 G27 X0 Y0 ; X0 Y0 ; G51 X-100000 Y-100000 X-50000 Y-50000 ; X-150000 F1000 ; X0 Y0 ;

P0.5 ;

If the program calls of reference point arrival when scaling is not applied, the tool will arrive at the reference point even if scaling is applied.

- 299 -

13. Program Support Functions

(5) Reference (zero) point return commands(G28 G29 G30) during scaling When the G28 or G30 command for reference point return is assigned during scaling, scaling will be canceled at the intermediate point and reference point return will be performed. Reference point return will still be performed with the point where scaling is canceled serving as the intermediate point even when there is no intermediate point.. When the G29 command is assigned during scaling, scaling is applied to the movements after the intermediate point. N01 N02 N03 N04 N05 N06 N07 G28 G92 G90 G00 G01 G28 G29 X0 Y0 ; X0 Y0 ; G51 X-100000 Y-150000 X-50000 Y-100000 ; X-150000 F1000 ; X-100000 Y-50000 ; X-50000 Y-100000 ;

P500.0 ; 0.5

- 300 -

13. Program Support Functions

(6) G60 (uni-direction positioning) command during scaling When the G60 command is assigned during scaling, scaling applies to the final positioning point but not to creep amount (parameter setting). In other words, the creep amount will be retained regardless of the scaling. N01 N02 N03 N04 G92 G91 G60 G60 X0 Y0 ; G51 X-100000 Y-150000 X-50000 Y-50000 ; X-150000 Y-100000 ; P0.5 ;

- 301 -

13. Program Support Functions

(7) Work coordinate system selection during scaling When a work coordinate system is selected during scaling, the scaling center will shift by an amount equivalent to the difference between the offset amounts of the new and old work coordinate systems. Subprogram N01 N02 N03 N04 N05 G90 G51 G65 G90 G65 G54 G00 X-100000 P100 ; G55 G00 P100 ; X0 Y0 ; Y-100000 X0 Y0 ; P0.5 ; O100 ; G00 G01 X-50000 Y-50000 ; X-150000 F1000 ; Y-150000 ; X-50000 ; Y-50000 ; M99 ; %

- 302 -

13. Program Support Functions

(8) Scaling command during coordinate rotation When the command scaling is assigned during coordinate rotation, the scaling center rotates. Scaling is executed at the rotated scaling center. N01 N02 N03 N04 N05 N06 N07 N08 N09 G92 M00 ; G90 G00 G01 X0 Y0 ; (Coordinate rotation data setting) G51 X-150000 Y-75000 P0.5 ; X-100000 Y-50000 ; X-200000 F1000 ; Y-100000 ; X-100000 ; Y-50000 ; G50 X0 Y0 ;

G00

- 303 -

13. Program Support Functions

(9) G51 command during scaling When the G51 command is assigned in the scaling mode, the axes for which the center has been newly assigned will also serve as the scaling valid axes. Furthermore, the magnification based on the new G51 command will be valid. N01 N02 N03 N04 N05 N06 N07 N08 N09 N10 N11 N12 N13 N14 G92 G90 G00 G01 X0 Y0 ; G51 X150000 P0.75 ; X-50000 Y-25000 ; X-250000 F-1000 ; Y-225000 ; X-50000 ; Y-25000 ; Y-125000 P0.5 ; X-100000 Y-75000 ; X-200000 ; Y-175000 ; X-100000 ; Y-75000 ; G50 X0 Y0 ; Scaling axis X ; P=0.75

G51 G00 G01

Scaling axes X,Y ; P=0.5

G00

Cancel

- 304 -

14. Coordinates System Setting Functions

14. Coordinates System Setting Functions


14.1 Coordinate words and control axes
There are three controlled axis for the basic specifications, but when an additional axis is added, up to four axes can be controlled. Pre-determined alphabetic coordinate words that correspond to the axes are used to designate each machining direction. For XY table

Program coordinate Workpiece XY table Table movement Bed direction Table movement direction

For XY table

For XY and rotary table

Table movement direction

Table rotation Program coordinate direction

- 305 -

14. Coordinates System Setting Functions

14.2 Basic machine, work and local coordinate systems


The basic machine coordinate system is fixed in the machine and it denotes that position which is determined inherently by the machine. The work coordinate systems are used for programming and in these systems the reference point on the workpiece is set as the coordinate zero point. the local coordinate systems are created on the work coordinate systems and they are designed to facilitate the programs for parts machining.

Reference point

W3 (Workpiece 3 coordinate system) Local coordinate system

W4 (Workpiece 4 coordinate system)

W1 (Workpiece 1 coordinate system) (Basic machine coordinate system)

W2 (Workpiece 2 coordinate system)

- 306 -

14. Coordinates System Setting Functions

14.3 Machine zero point and 2nd, 3rd, 4th reference points (Zero point)
The machine zero point serves as the reference for the basic machine coordinate system. It is inherent to the machine and is determined by the reference (zero) point return. 2nd, 3rd and 4th reference (zero points) points (zero points) relate to the position of the coordinates which have been set beforehand by parameter from the zero point of the basic machine coordinate system.
Basic machine coordinate system Machine zero point

2nd reference point

1st reference point 3rd reference point

Local coordinate system

4th reference point

Workpiece coordinate system

- 307 -

14. Coordinates System Setting Functions

14.4 Basic machine coordinate system


(1) Function and objective 1) 2) The basic machine coordinate system is the coordinate system that expresses the position (tool change position, stroke end position, etc.) that is characteristic to the machine. The tool is moved to the position commanded on the basic machine coordinate system with the G53 command and the coordinate command that follows.

(2) Command format Basic machine coordinate system selection (G90) G53 Xx Yy Zz ; (where a is the additional axis) (3) Detailed description 1) When the power is switched on, the basic machine coordinate system is automatically set as referenced to the reference (zero) point return position, which is determined by the automatic or manual reference (zero) point return. The basic machine coordinate system is not changed by the G92 command. The G53 command is valid only in the block in which it has been designated. In the incremental value command mode (G91), the G53 command provides movement with the incremental value in the coordinate system being selected. Even if G53 is commanded, the tool diameter offset amount for the commanded axis will not be canceled. The 1st reference point coordinate value indicates the distance from the basic machine coordinate system 0 point to the reference point (zero point) return position. The movement by G53 command depends on the command modal (cutting feed or rapid traverse). If the G53 command and G28 command (zero point return) are issued in the same block, the command issued last will be valid.

2) 3) 4) 5) 6) 7) 8)

Reference (zero) point return position (#1) Basic machine coordinate system zero point 1st reference point coordinates X = +500 Y = +500

- 308 -

14. Coordinates System Setting Functions

14.5 Coordinate system setting (G92)


(1) Function and objective By commanding G92, the absolute value (workpiece) coordinate system and current position display value can be preset in the command value without moving the machine. (2) Command format G92 Xx1 Yy1 Zz1 1 ; (where a is an additional axis) (3) Details description

(1) After the power is turned on, the first reference point return will be done with dog-type, and when completed, the coordinate system will be set automatically. (Automatic coordinate system setting)

Basic machine coordinate system


Reference point return completed

Power ON position Reference point return

The basic machine coordinate system and workpiece coordinate system are created at the preset position.

Power ON position

[Current value]

[Workpiece] Workpiece coordinate system

(2) By commanding G92, the absolute value (workpiece) coordinate system and current position display value can be preset in the command value without moving the machine.
Coordinate system setting

[Current value]

[Tool position]

[Workpiece]

For example, if G92X 0 Y 0; is commanded, the workpiece coordinate system will be newly created

[Current value]

[Workpiece]

[Tool position]

Note) If the workpiece coordinate system deviated because the axis is moved manually when the manual absolute position switch is OFF, etc., the workpiece coordinate system can be corrected with the following steps. 1) Execute reference point return while the coordinate system is deviated. 2) After that, command G92G53X0Y0Z0;. With this command, the workpiece coordinate value and current value will be displayed, and the workpiece coordinate system will be preset to the offset value.

- 309 -

14. Coordinates System Setting Functions

14.6 Automatic coordinate system setting


This function creates each coordinate system according to the parameter values input beforehand from the setting and display unit when the reference point is reached with the first manual reference point return or dog-type reference point return when the NC power is turned ON.
Machine zero point

Basic machine coordinate system

1st reference point Work coordinate system 3 (G56) Work coordinate system 2 (G55) Work coordinate system 1 (G54)

Work coordinate system 6 (G59)

Work coordinate system 5 (G58)

Work coordinate system 4 (G57)

Detailed description (1) The coordinate systems created by this function are as follow: 1) 2) Basic machine coordinate system Work coordinate systems (G54 ~ G59)

(2) The parameters related to the coordinate system all provide the distance from the zero point of the basic machine coordinate system. Therefore, it is decided at which position in the basic machine coordinate system the first reference point should be set and then the zero point positions of the work coordinate systems are set.

- 310 -

14. Coordinates System Setting Functions

14.7 Reference (zero) point return; G28, G29


(1) Function and objective 1) 2) After the commanded axes have been positioned by G0, they are returned respectively at rapid traverse to the first reference (zero) point when G28 is commanded. By commanding G29, the axes are first positioned independently at high speed to the G28 or G30 intermediate point and then positioned by G0 at the commanded position.
2nd reference point

Machine zero point Reference point

Start point

Intermediate point

4th reference point

3rd reference point

(2) Command format 1) 2) G28 Xx1 Yy1 1 ; (where = additional axis) (Automatic reference point return) G29 Xx2 Yy2 2 ; (where = additional axis) (Start position return)

(3) Detailed description 1) The G28 command is equivalent to the following: G00 Xx1 Yy1 Zz1 1 ; G00 Xx3 Yy3 Zz3 3 ; In this case, x3, y3, z3 and 3 are the reference point coordinates and they are set by a parameter #2037 G53ofs as the distance from the zero point of the basic machine coordinate system. 2) After the power has been switched on, the axes which have not been subject to manual reference (zero) point are returned by the dog type of return just as with the manual type. In this case, the return direction is regarded as the command sign direction. If the return type is straight-type return, the return direction will not be checked. For the second and subsequence returns, the return is made at high speed to the reference (zero) point which was stored at the first time and the direction is not checked. When reference (zero) point return is completed, the zero point arrival output signal is output and also #1 appears at the axis name line on the setting and display unit screen.

3)

- 311 -

14. Coordinates System Setting Functions

4)

The G29 command is equivalent to the following: G00 Xx1 Yy1 1; G00 Xx2 Yy2 2; Rapid traverse (non-interpolation type) applies independently for each axis for the positioning from the reference point to the intermediate point.

5) 6)

In this case, x1, y1, z1 and 1 are the coordinates of the G28 or G30 intermediate point. Program error "P430" results when G29 is executed if automatic reference (zero) point return (G28) is not performed after the power has been switched on. When the Z axis is canceled, the movement of the Z axis to the intermediate point will be ignored, and only the position display for the following positioning will be executed. (The machine itself will not move.) The intermediate point coordinates (x1, y1, z1, 1) of the positioning point are assigned by the position command modal. (G90, G91). G29 is valid for either G28 or G30 but the commanded axes are positioned after a return has been made to the latest intermediate point. The tool offset will be canceled during reference point return unless it is already canceled, and the offset amount will be cleared.

7) 8) 9)

(4) Examples of programs


(Example 1) G28 Xx1 Zz1 ;
Reference (zero) point position (#1) 1st operation after power has been switched on 2nd and subsequent operations Intermediate point

Return start position 1st operation after power has been switched on Rapid traverse rate 2nd and subsequent operations

Near-point dog

Reference (zero) point position (#1)

- 312 -

14. Coordinates System Setting Functions

(Example 2) G29 Xx2 Zz2 ;

Present position

G28, G30 intermediate point (x1, z1)

(Example 3) G28 Xx1 Zz1 ; (From point A to reference (zero) point) G30 Xx2 Zz2 ; (From point B to 2nd reference (zero) point G29 Xx3 Zz3 ; (From point C to point D)
Reference (zero) point position New intermediate point (#1)

Present position

Old intermediate point

2nd reference (zero) point position (#2)

- 313 -

14. Coordinates System Setting Functions

14.8 2nd, 3rd and 4th reference (zero) point return; G30
(1) Function and objective The tool can return to the second, third, or fourth reference (zero) point by specifying G30 P2 (P3 or P4).
Second reference point Reference point

Start point Intermediate point

Fourth reference point

Third reference point

(2) Command format G30 P2 (P3, P4) Xx1 Yy1 Zz1 1; (where a is the additional axis) (3) Detailed description 1) The second, third, or fourth reference (zero) point return is specified by P2, P3, or P4. A command without P or with P0, P1, P5 or a greater P number is ignored, returning the tool to the second reference (zero) point. In the second, third, or fourth reference (zero) point return mode, as in the first reference (zero) point return mode, the tool returns to the second, third, or fourth reference (zero) pint via the intermediate point specified by G30. The second, third, and fourth reference (zero) point coordinates refer to the positions specific to the machine, and these can be checked with the setting and display unit. If G29 is specified after completion of returning to the second, third, and fourth reference (zero) points, the intermediate position used last is used as the intermediate position for returning by G29.

2)

3) 4)

Intermediate point

1st reference (zero) point

3rd reference (zero) piont

- 314 -

14. Coordinates System Setting Functions

5)

With reference (zero) point return on a plane during compensation, the tool moves without tool diameter compensation (zero compensation) from the intermediate point. with a subsequent G29 command, the tool moves with tool diameter compensation until the G29 command from the intermediate point.

Tool nose center path Programmed path

Intermediate point

3rd reference (zero) point

6) 7)

The tool length offset amount for the axis involved is canceled after the second, third and fourth reference (zero) point returns. With second, third and fourth reference (zero) point returns in the machine lock status, control from the intermediate point to the reference (zero) point will be ignored. When the designated axis reaches as far as the intermediate point, the next block will be executed. With second, third and fourth reference (zero) point returns in the mirror image mode, mirror image will be valid from the start point to the intermediate point and the tool will move in the opposite direction to that of the command. However, mirror image is ignored from the intermediate point to the reference (zero) point and the tool moves to the reference (zero) point.

8)

3rd reference (zero) point

X-axis mirror image

No mirror image

- 315 -

14. Coordinates System Setting Functions

14.9 Simple zero point return


(1) Outline By setting the parameters, the G28, G29 and G30 positioning operations can be simplified and the time shortened. The time is shortened by approx. several ten ms. When this function is validated, the positioning accuracy may drop. Do not use this function when using an inclined axis. (2) Methods of shortening time

(a) G90 without intermediate point Fig. 1 The graph shows the commanded speed during movement.
Improvement function invalid
1000 500 0 -500 -1000
Zero point movement G0 movement The time is reduced during this interval

G0 movement

Improvement function invalid

Improvement function valid


1000 500 0 -500 -1000
Zero point movement G0 movement G0 movement Improvement function valid

(b) G90 with intermediate point Fig. 2 The graph shows the commanded speed during movement.
Improvement function invalid
1000 500 0 -500 -1000
G0 movement The time is reduced Intermediate during this interval point move-ment Zero point movement G0 movement Improvement function invalid

Improvement function valid


1000 500 0 -500 -1000
G0 movement Intermediate point move-ment Zero point movement G0 movement

Improvement function valid

- 316 -

14. Coordinates System Setting Functions

(c) G91 without intermediate point Fig. 3


1000 500 0 -500 -1000
G0 movement Zero point movement G0 movement Improvement function invalid

The graph shows the commanded speed during movement.


Improvement function invalid

1000 500 0 -500 -1000


G0 movement

Improvement function valid


Improvement function valid G0 movement Zero point movement

(d) G91 with intermediate point Fig. 4 The graph shows the commanded speed during movement.
Improvement function invalid
11000000 550000 00 --550000 --11000000
G0 movement Intermediate point move-ment The time is reduced during this interval Zero point movement


Improvement function invalid

G0 movement

Improvement function valid


1000 500 0 -500 -1000
Zero point movement G0 movement Intermediate point move-ment G0 movement

Improvement function valid

- 317 -

14. Coordinates System Setting Functions

(3) Accuracy (a) G90 without intermediate point


(Program example) G90; G00 X30.0 Y30.0 Z30.0; G28 XYZ; G00 X-30.0 Y30.0 Z30.0; M30;

The accuracy of the movement before G28 is maintained. The G28 zero point return accuracy will drop. (The accuracy is affected by the positioning speed and movement distance.) [Improvement function invalid]
G0 (-30,30,30) (30,30,30) (-30,30,30)

[Improvement function valid]


G0 (30,30,30)

G0
G28

G0

G28

The accuracy drops.

(b) G90 with intermediate point


(Program example) G90; G00 X30.0 Y30.0 Z30.0; G28 X30.0 Y15.0 Z10.0; G00 X-30.0 Y30.0 Z30.0; M30;

The accuracy of the movement before G28 is maintained. The accuracy of the movement to the intermediate point is maintained. [Improvement function invalid]
G0 (-30,30,30) (30,30,30) (30,15,30) G0 G28 G0 G28 (-30,30,30) G0 (30,30,30) (30,15,30)

[Improvement function valid]

- 318 -

14. Coordinates System Setting Functions

(c) G91 without intermediate point


(Program example) G91; G00 X30.0 Y30.0 Z30.0; G28 XYZ; G00 X-30.0 Y30.0 Z30.0; M30;

The accuracy of the movement before G28 will drop. (The accuracy is affected by the positioning speed and movement distance.) [Improvement function invalid]
G0 (-30,30,30) (30,30,30) (-30,30,30) (30,30,30)

[Improvement function valid]


G0

G0 G28

G0 G28 The accuracy drops.

(d) G91 with intermediate point


(Program example) G91; G00 X30.0 Y30.0 Z30.0; G28 X0.0 Y-15.0 Z0.0; G00 X-30.0 Y30.0 Z30.0; M30;

The accuracy of the movement before G28 is maintained. The accuracy of the movement to the intermediate point will drop. (The accuracy is affected by the positioning speed and movement distance.) [Improvement function invalid]
G0 (-30,30,30) (30,30,30) G28 G0 (30,15,30) G0 G28 (-30,30,30) (30,30,30) (30,15,30)

[Improvement function valid]


G0

The accuracy drops.

(4) Precautions 1) Even when this function's parameter is ON and the improvement function is validated, if an inclined axis is validated, this function's parameter will be forcibly turned OFF, and this function will be invalidated. 2) If this function's parameter is turned ON while an inclined axis is valid, a "setting error" will occur, and this function will be invalidated. 3) If parameters which "validate this function" and "validate the inclined axis" are input, this function's parameter will be forcibly turned OFF, and this function will be invalidated.

- 319 -

14. Coordinates System Setting Functions

4) When the improvement function is valid, the accuracy of the rapid feed command, cutting feed command, and movement command to the intermediate point before G28 may drop. If the rapid feed command and cutting feed command before G28 must be accurate, use one of the following methods. Invalidate this function. Carry out an in-position check in the block before G28/G29/G30, and confirm the accuracy. (G09: Exact stop check, etc.) Input the required dwell command (time) in the block before G28/G29/G30.

14.10 Reference point check; G27


(1) Function This command first positions the tool at the position assigned by the program and then, if that positioning point is the first reference point, it outputs the reference point arrival signal to the machine in the same way as with the G28 command. Therefore, when a machining program is prepared so that the tool will depart from the first reference point and return to the first reference point, it is possible to check whether the tool has returned to the reference point after the program has been run. (2) Command format

Check command Return control axis Check number P1 : 1st reference point check P2 : 2nd reference point check P3 : 3rd reference point check P4 : 4th reference point check

(3) Detailed description 1) 2) If the P command has been omitted, the first reference point will be checked. The number of axes whose reference points can be checked simultaneously depends on the number of axes which can be controlled simultaneously. Note that the display shows one axis at a time from the final axis. An alarm results if the final command point is not the reference point.

3)

- 320 -

14. Coordinates System Setting Functions

14.11 Work coordinate system setting and offset


(1) Function and objective 1) 2) The work coordinate systems are for facilitating the programming of workpiece machining in which the reference point of the workpiece to be machined is to serve as the zero point. These commands enable the tool to move to the positions in the work coordinate system. There are 6 work coordinate systems which are used by the programmer for programming. (G54 ~ G59) In addition to the six sets of workpiece coordinate systems between G54 and G59, there are 48 additional workpiece coordinate system sets. (The 48 sets are options.) Among the work coordinate systems currently selected by these commands, any work coordinate system with coordinates which have been commanded by the present position of the tool is reset. (The "present position of the tool" includes the offset amounts for tool radius, tool length and tool position offset.) An imaginary machine coordinate system with coordinates which have been commanded by the present position of the tool is set by this command. (The "present position of the tool" includes the offset amounts for tool diameter, tool length and tool position offset.) (G54, G92)

3)

4)

(2) Command format 1) 2) 3) 4) Work coordinate system selection (G54 ~ G59) (G90) G54 Xx1 Yy1 Zz1 1; (where is an additional axis) Work coordinate system setting (G54 ~ G59) (G54) G92 Xx1 Yy1 Zz1 1; (where is an additional axis) Work coordinate system selection(P1 ~ P48) G54.1 Pn ; Work coordinate system setting (P1 ~ P48) G54.1 Pn ; G92 Xx Yy Zz ; 5) Work coordinate system offset amount setting (P1 ~ P48) G10 L20 Pn Xx Yy Zz ;

- 321 -

14. Coordinates System Setting Functions

(3) Detailed description 1) With any of the G54 through G59 commands, the tool diameter offset amounts for the commanded axes will not be canceled even if work coordinate system selection is commanded. The G54 work coordinate system is selected when the power is switched on. Commands G54 through G59 are modal commands (group 12). The coordinate system will move with G92 in a work coordinate system. The offset setting in a work coordinate system denotes the distance from the zero point of the basic machine coordinate system.

2) 3) 4) 5)

Reference point (zero point) return position

Basic machine coordinate system zero point G54 reference point (zero point)

G55 reference point (zero point) G54 X = 500 Y = 500 G55 X = 2000 Y = 1000

6)

The offset settings of work coordinate systems can be changed any number of times. (They can also be changed by G10 L2 Pp1 Xx1 Zz1.) Handling when L or P is omitted G10 L2 Pn Xx Yy Zz ; n=0 n=1 to 6 Others G10 L2 Xx Yy Zz ; : Set the offset amount in the external workpiece coordinate system. : Set the offset amount in the designated workpiece coordinate system. : The program error "P35 CMD-VALUE OVER" will occur.

Set the offset amount in the currently selected workpiece coordinate system. When in G54.1 modal, the program error "P33 FORMAT ERROR" will occur.

G10 L20 Pn Xx Yy Zz ; n=1 to 48 Others G10 L20 Xx Yy Zz ;

: Set the offset amount in the designated workpiece coordinate system. : The program error "P35 CMD-VALUE OVER" will occur.

Set the offset amount in the currently selected workpiece coordinate system. When in G54 to G59 modal, the program error "P33 FORMAT ERROR" will occur.

G10 Pn Xx Yy Zz ; G10 Xx Yy Zz ;

L2 (workpiece offset) will be judged if there is no L value.

- 322 -

14. Coordinates System Setting Functions

7)

A new work coordinate system 1 is set by issuing the G92 command in the G54 (work coordinate system 1) mode. At the same time, the other work coordinate systems 2 through 6 (G55 ~ G59) will move in parallel and new work coordinate systems 2 through 6 will be set. An imaginary machine coordinate system is formed at the position which deviates from the new workpiece reference (zero) point by an amount equivalent to the work coordinate system offset amount.
Reference (zero) point return position Basic machine coordinate system zero point Imaginary machine coordinate system coordinate point based on G92 Old work 1 (G54) coordinate system Old work 2 (G55) coordinate system New work 1 (G54) coordinate system New work 2 (G55) coordinate system

8)

After the power has been switched on, the imaginary machine coordinate system is matched with the basic machine coordinate system by the first automatic (G28) or manual reference (zero) point return.

9)

By setting the imaginary basic machine coordinate system, the new work coordinate system will be set at a position which deviates from that imaginary basic machine coordinate system by an amount equivalent to the work coordinate system offset amount.

10) When the first automatic (G28) or manual reference (zero) point return is completed after the power has been switched on, the basic machine coordinate system and work coordinate systems are set automatically in accordance with the parameter setting. 11) If G54X-Y-; is commanded after the reference return (both automatic or manual) executed after the power is turned ON, the program error "P62" will occur. (A speed command is required as the movement will be controlled with the G01 speed.) 12) Do not command a G code for which a P code is used in the same block as G54.1. The P code will be used in the prioritized G command. 13) When number of workpiece offset sets additional specifications is not added, the program error "P39 NO SPEC ERR" will occur when the G54.1 command is executed. 14) When number of workpiece offset sets additional specifications is not added, the program error "P172 G10 L-NO. ERR" will occur when the G10 L20 command is executed. 15) The local coordinate system cannot be used during G54.1 modal. The program error "P438 NOT USE (G52)" will occur when the G52 command is executed during G54.1 modal. 16) A new workpiece coordinate system P1 can be set by commanding G92 in the G54.1 P1 mode. However, the workpiece coordinate system of the other workpiece coordinate systems 1 to 6, and P2 to P48 will move in parallel with it, and a new workpiece coordinate system will be set.

- 323 -

14. Coordinates System Setting Functions

17) The offset amount of the added workpiece coordinate system is assigned to the variable number as shown in Table 1. Table 1 Variable numbers of the added workpiece coordinate offset system P 1 P 2 P 3 P 4 P 5 P 6 P 7 P 8 P 9 P10 P11 P12 P13 P14 P15 P16 P17 P18 P19 P20 P21 P22 P23 P24 1st axis to 6th axis #7001 to #7006 #7021 to #7026 #7041 to #7046 #7061 to #7066 #7081 to #7086 #7101 to #7106 #7121 to #7126 #7141 to #7146 #7161 to #7166 #7181 to #7186 #7201 to #7206 #7221 to #7226 #7241 to #7246 #7261 to #7266 #7281 to #7286 #7301 to #7306 #7321 to #7326 #7341 to #7346 #7361 to #7366 #7381 to #7386 #7401 to #7406 #7421 to #7426 #7441 to #7446 #7461 to #7466 P25 P26 P27 P28 P29 P30 P31 P32 P33 P34 P35 P36 P37 P38 P39 P40 P41 P42 P43 P44 P45 P46 P47 P48 1st axis to 6th axis #7481 to #7486 #7501 to #7506 #7521 to #7526 #7541 to #7546 #7561 to #7566 #7581 to #7586 #7601 to #7606 #7621 to #7626 #7641 to #7646 #7661 to #7666 #7681 to #7686 #7701 to #7706 #7721 to #7726 #7741 to #7746 #7761 to #7766 #7781 to #7786 #7801 to #7806 #7821 to #7826 #7841 to #7846 #7861 to #7866 #7881 to #7886 #7901 to #7906 #7921 to #7926 #7941 to #7946

CAUTION
If the workpiece coordinate system offset amount is changed during single block stop, the new setting will be valid from the next block.

- 324 -

14. Coordinates System Setting Functions

(4) Examples of program


(Example 1) (1) G28 X0Y0 ; (2) G53 X1000 Y500 ; (3) G53 X0Y0 ;
Reference (zero) point return position (#1) Present position

When the first reference point coordinate is zero, the basic machine coordinate system zero point and reference (zero) point return position (#1) will coincide.
(Example 2) (1) G28X0Y0 ; (2) G90G00G53X0Y0 ; (3) G54X-500 Y500 ; (4) G01G91X500F 100 ; (5) Y500 ; (6) X+500 ; (7) Y+500 ; (8) G90G00G55X0Y0 ; (9) G01X500 F200 ; (10) X0Y500 ; (11) G90G28X0Y0 ; Present position

Reference (zero) point return position (#1)

- 325 -

14. Coordinates System Setting Functions

(Example 3) When work coordinate system G54 has shifted (500, 500) in example 2 (It is assumed that 3 through 10 in example 2 have been entered in subprogram 01111.) 1) 2) 3) 4) 5) G28 X0 Y0 ; G90 G53 X0 Y0 ; ............... (This is not required when there is no G53 offset.) G54 X 500Y500 ; ............ Amount by which work coordinate system deviates G92 X0 Y0 ; ........................ New work coordinate system is set. M98 P1111 ;
(#1) Reference (zero) point return position Present position Old G55 coordinate system

Old G54 coordinate system New G54 coordinate sysmtem

New G55 coordinate system

Note) The work coordinate system will shift each time steps 3 through 5 are repeated. The reference point return (G28) command should therefore be issued upon completion of the program.

- 326 -

14. Coordinates System Setting Functions

(Example 4) When six workpieces are placed on the same coordinate system of G54 to G59, and each is to be machined with the same machining. 1) Setting of workpiece offset data Workpiece 1 2 3 4 5 6 2) X = 100.000 X = 100.000 X = 500.000 X = 500.000 X = 900.000 X = 900.000 Y = 100.000 ........ Y = 500.000 ...... Y = 100.000 ...... Y = 500.000 ...... Y = 100.000 ...... Y = 500.000 ...... G54 G55 G56 G57 G58 G59

Machining program (subprogram) O100; N1 G90 G0 G43X-50. Y-50. Z-100. H10; N2 G01 X-200. F50; Y-200. ; X- 50. ; Y- 50. ; N3 G28 X0 Y0 Z0 ; N4 G98G91 X-125. Y-75. Z-150. R-100. F40; X-175. Y-125. ; X-125. Y-175. ; X- 75. Y-125. ; G80; N5 G28 X0 Y0 Z0 ; N6 G98 G84 X-125. Y-75. Z-150. R-100. F40 ; X-175. Y-125. ; X-125. Y-175. ; X- 75. Y-125. ; G80; M99; Positioning

Edge cutting

Drilling 1 2 3 4

Tapping 1 2 3 4

3)

Positioning program (main) G28 X0 Y0 Z0 ; When power is turned ON N1 G90 G54 M98 P100 ; N2 G55 M98 P100 ; N3 G57 M98 P100 ; N4 G56 M98 P100 ; N5 G58 M98 P100 ; N6 G59 M98 P100 ; N7 G28 X0 Y0 Z0 ; N8 M02 ; %

- 327 -

14. Coordinates System Setting Functions

(Workpiece 5)

(Workpiece 3)

(Workpiece 1)

(Workpiece 6)

(Workpiece 4)

(Workpiece 2)

- 328 -

14. Coordinates System Setting Functions

(Example 5) Program example when continuously using 48 sets of added workpiece coordinate system offsets. In this example, the offsets for each workpiece are set beforehand in P1 to P48 when 48 workpieces are fixed on a table, as shown in the drawing below.

P8 P7

P6 P5

P4 P3

P2 P1

P9 P10

P11 P12

P13 P14

P15 P16

P24 P23

P22 P21

P20 P19

P18 P17

P25 P26

P27 P28

P29 P30

P31 P32

P40 P39

P38 P37

P36 P35

P34 P33

P41 P42

P43 P44

P45 P46

P47 P48

O1000 G28 XYZ ; #100=1 ; G90 ; WHILE [#100LE48]DO1 ; G54.1 P#100 ; M98 P1001 ; #100=#100+1 ; END1 ; G28 Z ; G28 XY ; M02 ;

O1001 Zero point return G43 X-10. Y-10. Z-100. H10.; Contour Initialize added workpiece coordinate system P No. G01 X-30. ; Absolute value mode Y-30. ; Repeat P No. to 48 X-10. ; Set workpiece coordinate system Y-10. ; Read sub-program G00 G40 Z10. ; P No. +1 G98 G81 X-20.Y-15.Z-150.R5.F40; Drilling X-25. Y-20. ; Return to zero point X-20. Y-25. ; X-15. Y-20. ; G80 ; M99 ;

- 329 -

14. Coordinates System Setting Functions

(Example 6) Program example when the added workpiece coordinate system offsets are transferred to the standard workpiece coordinate system offsets and used. In this example, the workpiece coordinate system offsets for each workpiece are set beforehand in P1 to P24 when the workpiece is fixed on a rotating table, as shown in the drawing below.

P19

P20 P21 P24 P4 P1 P2 P5

P3 Z P6 X

P22 P23

O20000 (Main) G28 XYZB ; Zero point return G90 ; Absolute value mode G00 B0 ; Position table to face 1 G65 P2001 A1 ; Load workpiece offsets M98 P2002 ; Drilling G00 B90. ; Position table to face 2 G65 P2001 A7 ; M98 P2002 ; G00 B180. ; Position table to face 3 G65 P2001 A13 ; M98 P2002 ; G00 B270. ; Position table to face 4 G65 P2001 A19 ; M98 P2002 ; G28 XYB ; Return to zero point M02 ; % O2001 Transmission of workpiece offsets #2=5221 ; Leading No. of workpiece coordinate system variables #3=(#1-1)20+7001 ; Leading No. of added workpiece coordinate system variables #5=0 ; No. of sets counter clear WHILE [#5 LT 6] DO1 ; Check No. of sets #6=#6+1 ; Set transmission source 1st axis variable No. #7=#7+1 ; Set transmission destination 1st axis variable No. #4=#4+1 ; Clear No. of axes counter WHILE [#4 LT 6] DO2 ; Check No. of axes #[#6]=#[#7] ; Transmit variable data #6=#6+1 ; Set transmission source next axis #7=#7+1 ; Set transmission destination next axis #4=#4+1 ; No. of axes counter +1 END2 ; #2=#2+20 ; Transmission source Set lead of next No. of sets #3=#3+20 ; Transmission destination Set lead of next No. of sets #5=#5+1 ; No. of sets counter +1 END1 ; M99 ; %

- 330 -

14. Coordinates System Setting Functions

O2002 (Drilling) G54 M98 H100 ; Drilling in G54 coordinate system G55 M98 H100 ; In G55 G56 M98 H100 ; In G56 G57 M98 H100 ; In G57 G58 M98 H100 ; In G58 G59 M98 H100 ; In G59 G28 Z0 ; M99 ; N100 G98 G81 X-20. Y-15. Z-150. R5. F40 ; Fixed cycle for Drilling call X-25. Y-20. ; X-20. Y-25. ; X-15. Y-20. ; G80 ; G28 Z ; M99 ; %

- 331 -

14. Coordinates System Setting Functions

14.12 Local coordinate system setting; G52


(1) Function and objective The local coordinate systems can be set independently on the G54 through G59 work coordinate systems using the G52 command so that the commanded position serves as the programmed zero point. The G52 command can also be used instead of the G92 command to change the deviation between the zero point in the machining program and the machining workpiece zero point. (2) Command format G54 (54 ~ G59) G52Xx1 Yy1 Zz1 1 ; (where, is the additional axis) (3) Detailed description 1) The G52 command is valid until a new G52 command is issued, and the tool does not move. This command comes in handy for employing another coordinate system without changing the zero point positions of the work coordinate systems (G54 ~ G59). The local coordinate system offset will be cleared by the dog-type manual reference (zero) point return or reference (zero) point return performed after the power has been switched on. The local coordinate system is canceled by (G54 ~ G59) G52X0 Y0 Z0 0 ;. Coordinate commands in the absolute value mode (G90) cause the tool to move to the local coordinate system position.

2) 3) 4)

Incremental value Absolute value Absolute value Local coordinate systems

Work coordinate system Reference point Work coordinate system offset (CRT setting, G10L2P__X__Y__ ;) External work coordinate system offset (PC input, CRT setting, machine coordinate system)

(Example 1) Local coordinates for absolute value mode (The local coordinate system offset is not cumulated.)
(1) (2) (3) (4) (5) (6) (7) (8) (9) (10) G28X0Y0 ; G00G90X1. Y1. ; G92X0Y0 ; G00X500Y500 ; G52X1. Y1. ; G00X0Y0 ; G01X500F100 ; Y500 ; G52X0Y0 ; G00X0Y0 ;

Local coordinate system created by (5).

New coordinate system created by (3) Matched with local coordinate system by (9).

Current position The local coordinate system is created by (5), canceled (9) and matched with the coordinate system for (3).

- 332 -

14. Coordinates System Setting Functions

Note) If the program is executed repeatedly, the workpiece coordinate system will deviate each time. Thus, when the program is completed, the reference point return operation must be commanded. (Example 2) Local coordinates for incremental value mode (The local coordinate system offset is cumulated.)
(1) (2) (3) (4) (5) (6) (7) (8) (A) (B) (C) (D) (E) (F) G28X0Y0 ; G92X0Y0 ; G91G52X500Y500 ; M98P100 ; G52X1. Y1. ; M98P100 ; G52X-1.5 Y1.5 ; G00G90X0Y0 ; M02 ; O100 ; G90G00X0Y0 ; G01X500 ; Y500 ; G91 ; M99 ;

Local coordinate system created by (5).

Local coordinate system created by (3).

Current position

Matched with local coordinate system by (7).

(Explanation) The local coordinate system X'Y' is created at the XY coordinate system (500,500) position by (3). The local coordinate system X"Y" is created at the X'Y' coordinate system (1000,1000) position by (5). The local coordinate system is created at the X"Y" coordinate system (1500, 1500) position by (7). In other words, the same occurs as when the local coordinate system and XY coordinate system are matched and the local coordinate system is canceled.

- 333 -

14. Coordinates System Setting Functions

(Example 3) When used together with workpiece coordinate system


G54 G55 1000 1000 500 2000

X Y (1) (2) (3) (4) (5) (6) (7) G28X0Y0 ; G00G90G54X0Y0 ; G52X500Y500 ; M98P200 ; G00G90G55X0Y0 ; M98P200 ; G00G90G54X0Y0 ;

Workpiece coordinate system (parameter setting value)

(A) (B) (C) (D) (E)

~
M02 ; O200 ; G00X0Y0 ; G01X500F100 ; Y500 ; M99 ; %

Local coordinate system created by (3)

Current position

(Explanation) The local coordinate system is created at the G54 coordinate system (500,500) position by (3), but the local coordinate system is not created for the G55 coordinate system. During the movement for (7), the axis moves to the G54 local coordinate system's reference point (zero point). The local coordinate system is canceled by G90G54G52X0Y0;.

- 334 -

14. Coordinates System Setting Functions

(Example 4) Combination of workpiece coordinate system G54 and multiple local coordinate systems

(1) (2) (3) (4) (5) (6) (7) (8)

G28X0Y0 ; G00G90G54X0Y0 ; M98P300 ; G52X1. Y1. ; M98P300 ; G52X2. Y2. ; M98P300 ; G52X0Y0 ;

X Y

G54 500 500

Workpiece coordinate offset (parameter setting value)

Local coordinate system created by (6)

M02 ; (A) O300 ; (B) G00X0Y0 ; (C) G01X500F100 ; (D) Y500 ; (E) X0Y0 ; (F) M99 ; %

Local coordinate system created by (4)

Current position

(Explanation) The local coordinate system is created at the G54 coordinate system (1000,1000) position by (7). The local coordinate system is created at the G54 coordinate system (2000,2000) by (6). The G54 coordinate system and local coordinate system are matched by (8).

- 335 -

15. Measurement Support Functions

15. Measurement Support Functions


15.1 Automatic tool length measurement; G37
(1) Outline of function These functions issue the command values from the measuring start position as far as the measurement position, move the tool in the direction of the measurement position, stop the machine once the tool has arrived at the sensor, cause the NC system to calculate automatically the difference between the coordinate values at that time and the coordinate values of the commanded measurement position and provide this difference as the tool offset amount. When offset is already being applied to a tool, it moves the tool toward the measurement position with the offset still applied, and if a further offset amount is generated as a result of the measurement and calculation, it provides further compensation of the present offset amount. If there is one type of offset amount at this time, and the offset amount is distinguished between tool length offset amount and wear offset amount, the wear amount will be automatically compensated. (2) Command format G37Z__R__D__F__ ; Z : Measuring axis address and coordinates of measurement position ..... X, Y, z, (where, is the additional axis) R : This commands the distance between the measurement position and point where the movement is to start at the measuring speed. D : This commands the range within which the tool is to stop. F : This commands the measuring feedrate. When R_, D_ of F_ is omitted, the value set in the parameter is used instead. <Parameter> ("TLM" on machining parameter screen)

#8004 SPEED (measuring feedrate) #8005 ZONE r (deceleration range) #8006 ZONE d (measurement range)

: : :

0 ~ 60000 (mm/min) 0 ~ 99999.999 (mm) 0 ~ 99999.999 (mm)

- 336 -

15. Measurement Support Functions

(3) Example of execution For new measurement

Instrument

T01 ; M06 T02 ; G90 G00 G43 Z0 H01 ; G37 Z400 R200 D150 F1 ; Coordinate value when measurement position is reached = 300 300 (400) = 100 0+100 = 100 Where, H01 = 100

(4) Detailed description 1) Operation with G37 command

Speed

Rapid traverse rate

Measurement allowable range

Distance Measuring position Stop point Sensor output Operation 1 Operation 2 Operation 3

Offset amount Normal completion Alarm stop (P607) Alarm stop (P607)

2) 3) 4)

The sensor signal (measuring position arrival signal) is used in common with the skip signal. The feedrate will be 1mm/min if the F command and parameter measurement speed are 0. An updated offset amount is valid unless it is assigned from the following Z axis (measurement axis) command of the G37 command.

- 337 -

15. Measurement Support Functions

5)

Excluding the corresponding values at the PLC side, the delay and fluctuations in the sensor signal processing range from 0 to 0.2ms. As a result, the measuring error shown below is caused. Maximum measuring error (mm) = Measuring speed (mm/min)
1 60 0.2 (ms) 1000

6)

The machine position coordinates at that point in time are ready by sensor signal detection, and the machine will overtravel and stop at a position equivalent to the servo droop. Maximum overtravel (mm) = Measuring speed (mm/min)
1 1 60 Position loop gain (s1)

The standard position loop gain is 33 (s1). (5) Checkpoints 1) 2) 3) 4) 5) Program error "P600" results if G37 is commanded when the automatic tool length measurement function is not provided. Program error "P604" results when no axis has been commanded in the G37 block or when two or more axes have been commanded. Program error "P605" results when the H code is commanded in the G37 block. Program error "P606" results when G43_H is not commanded prior to the G37 block. Program error "P607" results when the sensor signal was input outside the allowable measuring range or when the sensor signal was not detected even upon arrival at the end point. When a manual interrupt is applied while the tool is moving at the measuring speed, a return must be made to the position prior to the interrupt and then operation must be resumed. The data commanded in G37 or the parameter setting data must meet the following conditions: Measurement point start point > R command or parameter r > D command or parameter d 8) When the D command and parameter d in 7) above are zero, operation will be completed normally only when the commanded measurement point and sensor signal detection point coincide. Otherwise, program error "P607" will results. When the R and D commands as well as parameters r and d in 7) above are all zero, program error "P607" will result regardless of whether the sensor signal is present or not after the tool has been positioned at the commanded measurement point.

6) 7)

9)

10) The automatic tool length measurement command (G37) must be commanded together with the G43H_ command that designates the offset No. G43H__ ; G37Z__R__D__F__ ;

- 338 -

15. Measurement Support Functions

15.2 Skip function; G31


15.2.1 Function
(1) Command format G31 Xx Yy Zz Ff ; (where, a is the additional axis) x, y, z, : Axis coordinates; they are commanded as absolute or incremental values according to the G90/G91 modal when commanded. f : Feedrate (mm/min) Linear interpolation can be executed using this function. If the skip signal is input externally while this command is being executed, the machine will stop, the remaining commands will be canceled and operation will be executed from the next block. (2) Detailed description 1) If Ff is assigned as the feedrate, command feed f will apply; if it not assigned, the value set in the parameter #1174 Skip_F will serve as the feedrate. In either case, the F modal will not be updated. The machine will not automatically accelerate and decelerate with the G31 block. The G31 maximum speed will depend on the machine specifications. Override is invalid with the G31 command and it is fixed at 100%. Dry run is also invalid. The stop conditions (feed hold, interlock, override zero and stroke end) are valid. External deceleration is also valid. The G31 command is unmodal and so it needs to be commanded each time. If the skip command is input during G31 command start, the G31 command will be completed immediately. When a skip signal has not been input until the G31 block completion, the G31 command will also be completed upon completion of the movement commands. 6) 7) 8) When the G31 command is issued during tool diameter compensation, program error "P608" will result. When there is no F command in the G31 command and the parameter speed is also zero, program error "P603" will result. With machine lock or with a command for the Z-axis only with the Z-axis cancel switch ON, the skip signal will be ignored and execution will continue as far as the end of the block.

2) 3)

4) 5)

(3) Execution of G31 G90 G00 G31 G01 G31 X100000 Y0 ; X500000 F100 ; Y100000 ; X0 F100 ; Y200000 ; G31 X500000 F100 ; Y300000 ; X0 ;

- 339 -

15. Measurement Support Functions

15.2.2 Readout of skip coordinates


The coordinate positions for which the skip signal is input are stored in the system variables #5061 (1st axis) to #5064 (4th axis), so these can be used in the user macros.

G90 G00 X100. ; G31 X200. F60 ; #101 = #5061 Skip command Skip signal input coordinate values (workpiece coordinate system) are readout to #101.

15.2.3 G31 coasting


The amount of coasting from when the skip signal is input during the G31 command until the machine stops differs according to the parameter #1174 skip_F or F command in G31. The time to start deceleration to a stop after responding to the skip signal is short, so the machine can be stopped precisely with a small coasting amount
F F F F 0 = 60 Tp + 60 ( t1 t2 ) = 60 ( Tp + t1 ) 60 t2

1 0 : Coasting amount (mm) F : G31 skip speed (mm/min.)

Tp : Position loop time constant (s) = (position loop gain)1 t1 : Response delay time (s) = (time taken from the detection to the arrival of the skip signal at the controller via PC) t2 : Response error time (0.001 s) When G31 is used for calculation, the value calculated from the section indicated by 1 in the above equation can be compensated, however, 2 results in calculation error.
Skip signal input Area inside shaded section denotes coasting amount 0

Time (S)

Stop pattern with skip signal input

- 340 -

15. Measurement Support Functions

The relationship between the coasting amount and speed when Tp is 30ms and t1 is 5ms is shown in the following figure.

Max. value Coasting amount (mm) Average value Min. value

Feedrate F (mm/min)

Relationship between coasting amount and feedrate (example)

15.2.4 Skip coordinate readout error (mm)


(1) Skip signal input coordinate readout The coasting amount based on the position loop time constant Tp and cutting feed time constant Ts is not included in the skip signal input coordinate values. Therefore, the work coordinate values applying when the skip signal is input can be read out across the error range in the following formula as the skip signal input coordinate values. However, coasting based on response delay time t1 results in a measurement error and so compensation must be provided.
F = 60 t2 Readout error (m) : Readout error (mm) F : Feedrate (mm/min) t2 : Response error time 0.001 (s)

Feedrate (mm/min)
Measurement value comes within shaded section.

Readout error of skip input coordinates Readout error of skip input coordinates Readout error with a 60mm/min feedrate is: 60 = 60 0.001 = 0.001 (mm) Measurement value is within readout error range of 1m.

- 341 -

15. Measurement Support Functions

(2) Readout of other coordinates The readout coordinate values include the coasting amount. Therefore, when coordinate values are required with skip signal input, reference should be made to the section on the G31 coasting amount and compensation provided. As in the case of (1), the coasting amount based on the delay error time t2 cannot be calculated, and this generates a measuring error. (3) Examples of compensating for coasting 1) Compensating for skip signal input coordinates #110 = Skip feedrate ; #111 = Response delay time t1 ;

G31 X100. F100 ; G04 ; #101 = #5061 #102 = #110#111/60 ; #105 = #101#102 ;

Skip command Machine stop check Skip signal input coordinate readout Coasting based on response delay time Skip signal input coordinates

2)

Compensating for work coordinates #110 = Skip feedrate ; #111 = Response delay time t1 ; #112 = Position loop time constant Tp ;

G31 X100. F100 ; G04 ; #101 = #5061 #102 = #110#111/60 ; #103 = #110#112/60 ; #105 = #101#102#103 ;

Skip command Machine stop check Skip signal input coordinate readout Coasting based on response delay time Coasting based on position loop time constant Skip signal input coordinates

- 342 -

15. Measurement Support Functions

15.3 Multi-stage skip function; G31.n, G04


15.3.1 Function
The setting of combinations of skip signals to be input enables skipping under various conditions. The actual skip operation is the same as with G31. The G commands which can specify skipping are G31.1, G31.2, G31.3, and G04, and the correspondence between the G commands and skip signals can be set by parameters. (1) Command format G31.1 Xx Yy Zz Ff ; (Same with G31.2 and G31.3 ; Ff is not required with G04) Feedrate (mm/min) Command format axis coordinate word and target coordinates As with the G31 command, this command executes linear interpolation and when the preset skip signal conditions have been met, the machine is stopped, the remaining commands are canceled, and the next block is executed. (2) Detailed description 1) 2) 3) Feedrate G31.1 set with the parameter corresponds to #1176 skip1f, G31.2 corresponds to #1178 skip2f, and G31.3 corresponds to #1180 skip3f. A command is skipped if it meets the specified skip signal condition. The G31.n and G04 commands work the same as the G31 command for other than 2) and 2) above.

(3) Parameter settings 1) 2) The feedrates corresponding to the G31.1, G31.2, and G31.3 commands can be set by parameters. The skip conditions (logical sum of skip signals which have been set) corresponding to the G31.1, G31.2, G31.3 and G04 commands can be set by parameters. Parameter setting 1 2 3 4 5 6 7 Valid skip signal 1 2 3

- 343 -

15. Measurement Support Functions

15.3.2 Operation
(1) The multi-stage skip function enables the following control, thereby improving measurement accuracy and shortening the time required for measurement.
Parameter settings : Skip condition G31.1 : 7 G31.2 : 3 G31.3 : 1

Skip speed 20.0mm/min (f1) 5.0mm/min (f2) 1.0mm/min (f3)

Program example : N10G31.1 x 200.0 ; N20G31.2 x 40.0 ; N30G31.3 x 1.0 ;

Operation

Measurement distance Skip speed

Input of skip signal 3 Input of skip signal 2 Input of skip signal 1

Note 1) If skip signal 1 is input before skip signal 2 in the above operation, N20 is skipped at that point and N30 is also ignored. (2) If a skip signal with the condition set during G04 (dwell) is input, the remaining dwell time is canceled and the following block is executed.

- 344 -

15. Measurement Support Functions

15.4 Multi-skip function 2


15.4.1 Function
During linear interpolation, command operation is skipped if skip signal parameter Pp specified with a skip command (G31), which indicates external skip signals 1 to 7, is met. If multi-skip commands are issued simultaneously in different systems, both systems perform skip operation simultaneously if the input skip signals are the same, or they perform skip operation separately if the input skip signals are different. The skip operation is the same as with a normal skip command (G31 without P parameter).

Skip signal 1 System 1 System 1

Skip signal 1

System 2

Skip signal 1

System 2

Skip signal 2

Fig. 1 Same skip signals input in both systems 1 and 2

Fig. 2 Different skip signals input in systems 1 and 2

If the skip condition specified by the parameter #1173 dwlskp (indicating external skip signals 1 to 7) is met during execution of a dwell command (G04), the remaining dwell time is canceled and the following block is executed. Similarly, if the skip condition is met during revolution dwelling, the remaining revolution is canceled and the following block is executed. Command format G31 Xx Zz Pp Ff ; Feedrate (mm/min) Skip signal parameter Command format axis coordinate word and target coordinates

- 345 -

15. Measurement Support Functions

15.4.2 Operation
1) The skip is specified by command speed f. Note that the F modal is not updated. 2) The skip signal is specified by skip signal parameter p. p can range from 1 to 127. If p is specified outside the range, program error P35 occurs. Table 1 Valid skip signal Skip signal parameter P 1 2 3 4 5 6 7 8 Valid skip signal 7 6 5 4 3 2 1

~ ~
125 126 127

~ ~

~ ~

~ ~

~ ~

~ ~

~ ~

~ ~

~ ~

3) The specified skip signal command is a logical sum of the skip signals. (Example) G31 X100. P5 F100 ; Operation is skipped if skip signal 1 or 3 is input. 4) If skip signal parameter Pp is not specified, the skip condition specified by the G31 parameter works. If speed parameter Ff is not specified, the skip speed specified by the G31 parameter works. Table 2 Relations between skip and multi-skip Skip specifications Condition G31 X100 ; Without P and F G31 X100 P5 ; Without F G31 X100 F100 ; Without P G31 X100 P5 F100 ; x Speed condition Skip 1 Command value Skip 1 Command value o Speed Parameter Parameter Command value Command value

Program error "P601" Program error "P602" Program error "P601" Program error "P602"

Note) "Parameter" in the above table indicates that specified with a skip command (G31).

- 346 -

15. Measurement Support Functions

5) If skip specification is effective and P is specified as an axis address, skip signal parameter P is given priority and axis address P is ignored. (Example) G31 P500. F100 ; This is regarded as a skip signal parameter and program error P35 results. 6) Those items other than 1) to 5) are the same with the ordinary skip function (G31 without P).

- 347 -

16. Machining mode

16. Machining mode


16.1 High-speed machining mode
(1) Outline This function runs a machining program that approximates a freely curved surface with fine segments at high speed. This is effective in increasing the speed of machining dies of a freely curved surface. High-accuracy machining can be realized by combined use of this function with the high-accuracy control function. This function requires the "High-speed machining mode III" specifications. (2) Basic Specifications The performance of simultaneous 4 axis and 1mm-length fine segment is as follows. High-speed machining mode III (3) Command format G05 P3 ; High-speed machining mode III ON G05 P0 ; High-speed machining mode III OFF (4) Program example G28 G91 G01 G05 X0.1 X0.1 X0.1 X0. Y0. Z0. ; G00 X-100. Y-100. ; F3000 ; P3 ; ; Y0.001 ; Y0.002 ; Performance of fine segment length 16.8 m/min

......

High-speed machining mode III ON INC modal, linear cutting Rapid traverse ABS modal, R designation arc Arc

G90 G00 X0 Y0 Z0 ; G02 X_Y_R_F_ ; G03 X_Y_I_J_F_ ; G05 P0 ; M02;

......

High-speed machining mode III OFF

- 348 -

16. Machining mode

(5)

Detailed description

(a) The following G codes can be used in high-speed machining mode III. G00, G01, G02, G03, G90, G91, G17, G18, G19 (b) It is possible to command only axis names, movement amounts (variables and calculating not possible), and F commands I/J/K/R/P in high-speed machining mode III. (Comments can be used.) (c) Tape, MDI, and memory operation are all possible with the high-speed machining mode III. (d) Override, maximum cutting speed clamp, single block operation, dry run, handle interrupt, graphic trace, and high-accuracy control functions are valid even in the high-speed machining mode III modal. (e) Depending on the No. of characters in one block, the machining speed may decrease. (f) When high-speed machining mode III is validated, absolute/incremental, G00 to G03, and F command modal information are carried over. (g) High-speed machining mode III commands are possible in a sub-program. Program example Main program 01 G61.1 ; M98 P1000 L100 ;

Sub-program O1000 G05 P3 ; High-speed machining mode III ON G05 P0 ; High-speed machining mode III OFF M99 ;

M99 commands cannot be used in the high-speed machining mode III modal. (A "P33 FORMAT ERROR" will result.) Always turn OFF the high-speed machining mode III before the M99 command. (6) Restrictions

(a) This function requires the "High-speed machining mode III" specifications. If G05 is commanded when there are no specifications, "P65 NO G05P3 SPEC" will occur. (b) When machining with the high-speed machining mode III, the program path and actual path may differ.
G01 G01 G01 G01 The actual path may move to an end point up to 4 fine segment blocks ahead. Program path Actual path

(c) Cancel tool radius compensation, tool length offset, G command mirror image, and program coordinate rotation before commanding G05 P3. If these functions are not canceled, "P34 ILLEGAL G CODE" will occur. The modal information of the Modal Inform. screen will also change to the modal information during the G05 P3 command. The modal updated during the high-speed machining mode III modal is carried over even after the high-speed machining mode III is canceled.

- 349 -

16. Machining mode

(d) The program error "P33 FORMAT ERROR" will occur if any command other than the following is carried out during high-speed machining mode III modal: Axis names, absolute/incremental movement amounts, F commands, G05 P0, G90/G91, G17/G18/G19, G00/G01/G02/G03, I/J/K/R/P commands, or comments. Change to the standard mode (G05 P0) before issuing commands other than those above. (e) The optional block skip (/) cannot be used during high-speed machining mode III modal. The program error "P33 FORMAT ERROR" will occur. (f) The automatic operation process is prioritized during high-speed machining mode III modal, so the display, etc., may be delayed. (g) The machine decelerates temporarily in the G05 P3 and G05 P0 command blocks, so turn the machine ON/OFF at the places where the tool separates from the workpiece.
[Command] [Speed]

G05 P3 ;; G05 P3

X-577;Y-577;Z-577;G05 P0; X-577;Y-577;Z-577;G05 P0;

(h) During high-speed machining mode operation by tape operation, the machining speed may be suppressed due to the No. of characters in one block. (i) G05 commands are invalid if there are no P commands. (j) Decimal points are invalid in P commands. (k) P35 CMD-VALUE OVER" will occur for commands other than P0/P3. Note that "P39 NO SPEC ERR" will occur for P1/P2 commands. (l) Variable commands and user macro cannot be used during high-speed machining mode III modal.

- 350 -

Appendix 1. Program Parameter Input N No. Correspondence Table

Appendix 1. Program Parameter Input N No. Correspondence Table


Note 1) The units in the table indicate the minimum setting units for the parameter data. Note 2) Parameters for length must be specified in input setup unit. However, the parameters with " " in "etc" column (ZERO-RTN PARAM 2027,2028,2029) must be excluded. Example 1 : To set 30 mm in a parameter when the input setup unit is B (0.001 mm) and metric system. L60000 Example 2 : To set 5 inch in a parameter when the input setup unit is B (0.0001 inch) and Inch system. L100000 Note 3) The binary type parameters must be converted into byte-type data, and commanded with a decimal data after address D. Example 1 : Binary data 01010101B = 55H = 85P .................... Command 85 Example 2 : ASCII code "M" = 01001101B = 4DH = 77D .......... Command 77 (B indicates Binary, H indicates Hexadecimal, and D indicates Decimal.) [BASE SPEC.PARAM] # 1013 1014 1015 1016 1017 1018 1019 subject axname incax cunit iout rot ccw dia P 2 2 2 2 2 2 2 A No. No. No. No. No. No. No. N data type data min/max SETUP PARAM 1. (unit) etc

0D 1D 16 S 20 H1 20 H4 20 H5 53 H5

01 01 01 01

[BASE SPEC.PARAM] # 1026 1027 1028 1029 1030 1031 subject base_I base_J base_K aux_I aux_J aux_K P 11 11 11 11 11 11 A N 1D 4D 7D 2D 5D 8D data type data min/max

SETUP PARAM 1. (unit) etc

[BASE SPEC.PARAM] # 1061 1064 1070 intabs svof axoff subject P 2 2 2 A No. No. No. data N type 21 H6 20 H3 20 H7 data min/max 01 01 01

SETUP PARAM 1. (unit) etc

- 351 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[BASE SPEC.PARAM] # 1172 1173 1174 1181 1183 1184 tapovr dwlskp skip_F G96_ax clmp_M clmp_D subject P 11 11 11 11 11 11 A N 80 S 40 D 336 L 48 D 292 L 296 L data type data min/max 1999 07 1999999 04

SETUP PARAM 1. (unit) (%) (min ) etc

099999999 099999.999 (s)

[BASE SPEC.PARAM] # 1193 1194 1195 1196 1197 1198 1199 1202 1203 1204 1216 subject inpos H_acdc Mmac Smac Tmac M2mac Sselect mirofs TmirS1 TmirS2 extdcc (only L system) (only L system) (only L system) P 11 11 11 11 11 11 11 11 11 11 11 A N 42 D 43 D 44 D 45 D 46 D 47 D 50 D 360 L 464 L 468 L 364 L data type data min/max 01 01 01 01 01 01 01

SETUP PARAM 1. (unit) etc

099999.999 (mm) 0x00xFFFFFFFF 0x00xFFFFFFFF 1999999 (min ) PARAM 1.

[PROCESS PARAMETER] # 8007 8008 8009 8010 8011 8013 8014 8015 8016 8017 subject OVERRIDE MAX ANGLE DSC.ZONE ABS.MAX. INC.MAX. G83 n CDZ-VALUE CDZ-ANGLE G71 MINIMUM DELTA-D (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) P 11 11 11 11 11 11 11 11 11 11 A N 1010 D 756 L 760 L 776 L 780 L 832 L 1012 D 1011 D 788 L 792 L data type data min/max 0100 0180 0 99999.999 099.999 099.999 0 99999.999 0127 089 099.999 099.999

(unit) (%) () (mm) (mm) (mm) (mm) 0.1 lead () (mm) (mm)

etc

- 352 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[PROCESS PARAMETER] # 8051 8052 8053 8054 8055 8056 8057 8058 8059 subject PULL UP G71 THICK G73 U W R G74 RETRACT G76 LAST-D TIMES ANGLE P 11 11 11 11 11 11 11 11 11 A N 784 L 796 L 800 L 804 L 808 L 820 L 824 L 997 D 998 D data type data min/max

PARAM 1. (unit) etc

099 099 PARAM 1.

[AXIS PARAMETER] # 8202 8204 8205 subject OT-CHECK OFF OT-CHECK-N OT-CHECK-P P 2 2 2 A No. No. No. N data type data min/max 01

(unit)

etc

897 H2 916 L 912 L

99999.999 (mm) 99999.999 (mm)

[BARRIER] # 8300 8301 8302 8303 8304 8305 8306 subject (P0) X (P1) X Z (P2) X Z (P3) X Z (P4) X Z (P5) X Z (P6) X Z (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) (only L system) P 11 11 11 11 11 11 11 11 11 11 11 11 11 A No. No. No. No. No. No. No. No. No. No. No. No. N 1128 L 1136 L 1160 L 1140 L 1164 L 1144 L 1168 L 1148 L 1172 L 1152 L 1176 L 1156 L 1180 L data type data min/max 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999 99999.999

PARAM 1. (unit) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) (mm) etc

- 353 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[AXIS SPEC PARAM] # 2001 2002 2003 2004 2005 2006 2007 2008 2009 2011 2012 subject rapid clamp smgst G0tL G0t1 G0t2 G1tL G1t1 G1t2 G0back G1back P 2 2 2 2 2 2 2 2 2 2 2 A No. No. No. No. No. No. No. No. No. No. No. N 256 L 264 L 22 S 24 S 28 S 30 S 26 S 32 S 34 S 46 S 48 S data type data min/max 1999999 1999999 14000 15000 0 14000 15000 0 -99999999 -99999999

SETUP PARAM 2. (unit) (min ) (min ) (ms) (ms) (ms) (ms) (x/2) (x/2) SETUP PARAM 2. P 2 2 2 2 2 A No. No. No. No. No. N 292 L 288 L 300 L 296 L 58 S data type data min/max 99999.999 99999.999 99999.999 99999.999 0.25200.00 (unit) (mm) (mm) (mm) (mm) (rad/s) etc etc

[AXIS SPEC PARAM] # 2013 2014 2015 2016 2017 OTOT+ tlmltlml+ tap_g subject

[ZERO-RTM PARAM] # 2025 2026 2027 2029 2028 2030 2031 2032 subject G28rap G28crp G28sft grspc grmask dir(-) noref nochk P 2 2 2 2 2 2 2 2 A No. No. No. No. No. No. No. No. N data type data min/max 1999999 160000 065535 -32767999 065535 01 01 01

SETUP PARAM 2. (unit) (min ) (min ) (m) (mm) (m) etc

260 L 38 S 44 S 42 S 40 S 20 H2 21 H2 54 H0

[ZERO-RTM PARAM] # 2037 2038 2039 2040 subject G53ofs #2_rfp #3_rfp #4_rfp P 2 2 2 2 A No. No. No. No. N 272 L 276 L 280 L 284 L data type data min/max 99999.999 99999.999 99999.999 99999.999

SETUP PARAM 2. (unit) (mm) (mm) (mm) (mm) etc

- 354 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[SERVO PARAM] # subject 2217 SPEC 2225 MTYP 2236 PTYP 2227 SSF1 2233 SSF2 2201 PC1 2202 PC2 2218 PIT 2219 RNG1(kp/PIT) 2220 RNG2(kp/rev) 2203 PGN (1/s) [SERVO PARAM] # subject 2204 PGN2 (1/s) 2205 VGN (1/s) 2208 VIA (1/s) 2207 VIL (1/s) 2215 FFC (%) 2237 JL (%) 2238 FHz (Hz) 2232 TOF (%) 2216 LMC1 (%) 2241 LMC2 (%) 2231 OVS1 (%) 2242 OVS2 (%) [SERVO PARAM] # subject 2201 SV001(PC1) 2265 SV065

(HEX) (HEX) (HEX) (HEX) (HEX) (mm)

P 2 2 2 2 2 2 2 2 2 2 2

A No. No. No. No. No. No. No. No. No. No. No.

N data type data min/max 128 S 144 S 166 S 148 S 160 S 96 S 98 S 130 S 132 S 134 S 100 S

SETUP PARAM 3. (unit) etc

P 2 2 2 2 2 2 2 2 2 2 2 2

A No. No. No. No. No. No. No. No. No. No. No. No.

N data type data min/max 102 S 104 S 110 S 108 S 124 S 168 S 170 S 158 S 126 S 176 S 156 S 178 S

SETUP PARAM 3. (unit) etc

P 2 2 2

A No. No. No.

N data type data min/max 96+2n S n=0164 S 224 S

SETUP PARAM 3. (unit) etc

- 355 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[MACRO FILE(1)] # 7001 7002 7003 7011 7012 7013 7021 7022 7023 7031 7032 7033 7041 7042 7043 7051 7052 7053 7061 7062 7063 7071 7070 7073 7081 7082 7083 7091 7092 7093 7102 7103 M[01] M[02] M[03] M[04] M[05] M[06] M[07] M[08] M[09] M[10] M2mac subject <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <TYPE> <PROGRAM-No.> P 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 A N 196 S 198 D 192 L 204 S 206 D 200 L 212 S 214 D 208 L 220 S 222 D 216 L 228 S 230 D 224 L 236 S 238 D 232 L 244 S 246 D 240 L 252 S 254 D 248 L 260 S 262 D 256 L 268 S 270 D 264 L 290 D 280 L data type data min/max

SETUP PARAM 7. (unit) etc

- 356 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[MACRO FILE(2)] # 7201 7202 7203 7211 7212 7213 7221 7222 7223 7231 7232 7233 7241 7242 7243 7251 7252 7253 7261 7262 7263 7271 7272 7273 7281 7282 7283 7291 7292 7293 7302 7303 7312 7313 G[01] G[02] G[03] G[04] G[05] G[06] G[07] G[08] G[09] G[10] Smac Tmac subject <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <CODE> <TYPE> <PROGRAM-No.> <TYPE> <PROGRAM-No.> <TYPE> <PROGRAM-No.> P 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 A N 116 S 118 D 112 L 124 S 126 D 120 L 132 S 134 D 128 L 140 S 142 D 136 L 148 S 150 D 144 L 156 S 158 D 152 L 164 S 166 D 160 L 172 S 174 D 168 L 180 S 182 D 176 L 188 S 190 D 184 L 288 D 272 L 289 D 276 L data type data min/max

SETUP PARAM 7. (unit) etc

- 357 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[SPINDLE BASE SPEC.PARAM] # subject 3001 slimit1 3002 slimit2 3003 slimit3 3004 slimit4 3005 smax 1 3006 smax 2 3007 smax 3 3008 smax 4 3009 ssift1 3010 ssift2 3011 ssift3 3012 ssift4 3013 stap 1 3014 stap 2 3015 stap 3 3016 stap 4 3017 stapt1 3018 stapt2 3019 stapt3 3020 stapt4 3021 sori 3022 sgear 3023 smini 3028 sprcmm

P 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

A No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No.

N data type data min/max 784 L 099999 788 L 099999 792 L 099999 796 L 099999 768 L 099999 772 L 099999 776 L 099999 780 L 099999 816 S 032767 818 S 032767 820 S 032767 822 S 032767 800 L 099999 804 L 099999 808 L 099999 812 L 099999 824 S 05000 826 S 05000 828 S 05000 830 S 05000 832 S 852 D 834 S 928 L

SETUP PARAM 4. (unit) etc (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (min ) (ms) (ms) (ms) (ms)

- 358 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[SPINDLE SPEC.PARAMETER] # subject 3233 SFNC1(HEX) 3234 SFNC2(HEX) 3235 SFNC3(HEX) 3236 SFNC4(HEX) 3237 SFNC5(HEX) 3238 SFNC6(HEX) 3239 ATYP (HEX) 3240 MTYP (HEX) 3241 PTYP (HEX) 3217 TSP (rom) 3218 ZSP (rom) 3219 CNS1 (s) 3220 SDTS (%) 3221 TLM1 (%) 3297 SPECO (HEX) 3329 SPECC (HEX) 3377 SPECS (HEX) 3393 SPECT (HEX) 3242 CRNG(pulse) 3243 TRNG(pulse) [SPINDLE SPEC.PARAMETER] # subject 3225 GRA1(teeth) 3226 GRA2(teeth) 3227 GRA3(teeth) 3228 GRA4(teeth) 3229 GRB1(teeth) 3230 GRB2(teeth) 3231 GRB3(teeth) 3232 GRB4(teeth)

P 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

A No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No.

N data type 64 S 66 S 68 S 70 S 72 S 74 S 76 S 78 S 80 S 32 S 34 S 36 S 38 S 40 S 192 S 256 S 352 S 384 S 82 S 84 S

data min/max 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF 132767 1100 032767 132767 1120 0x00xFFFF 0x00xFFFF 0x00xFFFF 0x00xFFFF

SETUP PARAM 4. (unit) etc (hex) (hex) (hex) (hex) (hex) (hex) (hex) (hex) (hex) (min ) (min ) (10ms) (min ) (%) (hex) (hex) (hex) (hex)

P 1 1 1 1 1 1 1 1

A No. No. No. No. No. No. No. No.

N data type 48 S 50 S 52 S 54 S 56 S 58 S 60 S 62 S

data min/max 132767 132767 132767 132767 132767 132767 132767 132767

SETUP PARAM 4. (unit) etc

- 359 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[SPINDLE ADJEST.PARAMETER] # 3222 3223 3256 3201 3202 3298 3299 3300 3205 3206 3207 3204 3203 3334 3335 3336 3349 3350 3351 3352 subject VGNP (rad/s) VGNI (rad/s) PYVR (%) PGM (1/s) PGE (1/s) VGOP (rad/s) VGOI (rad/s) VGOD (rad/s) OSP (min ) CSP (min ) OPST () OINP () PGCO (1/s) VGCPO(rad/s) VGCIO(rad/s) VGCDO(rad/s) CZRN (min ) CPDP (pulse) CPSTL (HEX) CPSTH (HEX) P 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. No. N 42 S 44 S 110 S 0S 2S 194 S 196 S 198 S 8S 10 S 12 S 6S 4S 66 S 68 S 70 S 296 S 298 S 300 S 302 S data type data min/max 01000 01000

SETUP PARAM 4. (unit) (rad/s) (1/10rad/s) etc

(1/10s ) 0360 (1/10s ) 0360 (rad/s) 01000 (1/10rad/s) 01000 (1/10rad/s) 01000 (min ) 032767 11000 04095,-512512 (1/16) 12880

[SPINDLE ADJEST.PARAMETER] # 3353 3360 3210 3378 3379 3380 3209 3394 3395 3396 3414 3415 3416 3417 subject CINP (HEX) CPYX (%) PGS (1/s) VGSP (rad/s) VGSI (rad/s) VGSD (rad/s) PGT (1/s) VGTP (rad/s) VGTI (rad/s) VGTD (rad/s) TZRN (min ) TPDP (pulse) TPST () TINP () P 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A No. No. No. No. No. No. No. No. No. No. No. No. No. No. N 304 S 318 S 18 S 354 S 356 S 358 S 16 S 386 S 388 S 390 S 426 S 428 S 430 S 432 S data type data min/max

SETUP PARAM 4. (unit) etc

1100 01000 01000 01000 1100 01000 01000 01000 1500 110000 0x00xFFFF 0x00xFFFF

(1/s) (rad/s) (1/10rad/s) (1/10rad/s) (1/s) (rad/s) (1/10rad/s) (1/10rad/s) (min ) (hex) (hex) SETUP PARAM 4.

[SPINDLE SPEC.] # 3201 3584 subject SP001(PGM) SP384 P 1 1 1 A N data type data min/max n=0383

(unit)

etc

(HEX)

No. 0+2n S No. S No. 766 S

- 360 -

Appendix 1. Program Parameter Input N No. Correspondence Table

[PLC DATA] # subject P 5 A 1 48 N L data type data min/max 99999999

SETUP PARAM 6. (unit) etc

#6301 PLC DATA #6348 [PLC TIMER] # T0 subject (T0T15)

SETUP PARAM 6. P 6 A 0 N S 15 16 S 95 96 S 103 SETUP PARAM 6. P 7 A 0 23 SETUP PARAM 6. subject P 8 A 1 N data type data min/max (unit) (hex) (dec) etc N L data type data min/max 032767 (unit) etc data type data min/max 032767 (unit) 0.01s etc

10ms TIMER T15 T16 100ms TIMER T95 T96 100ms TIMER (INC.) T103 [PLC COUNTER] # C0 C23 [BIT SELECT] # subject PLC COUNTER

(T16 T95)

032767

0.1s

(T96 T103)

032767

0.1s

#6401 BIT SELECT #6496

D 0x000xFF or 0256 96 H0H7 01

- 361 -

Appendix 2. Program Error

Appendix 2. Program Error


(The message in bold characters appears on the screen.) These alarms occur during automatic operation, and the causes of these alarms are mainly program errors which occur, for instance, when mistakes have been made in the preparation of the machining programs or when programs which conform to the NC specification have not been prepared. Error No. P10 Details EXCS. AXIS No. The number of axis addresses commanded in the same block exceeds the specifications. AXIS ADR. ERROR The axis address commanded by the program and the axis address set by the parameter do not match. DIVISION ERROR An axis command which cannot be divided by the command unit has been issued. PARITY H The number of holes per character on the paper tape is odd. PARITY V The number of characters per block on the paper tape is odd. ADDRESS ERROR An address not listed in the specifications has been used. FORMAT ERROR The command format in the program is not corrrect. G-CODE ERROR A G code not listed in the specifications has been used. CMD-VALUE OVER The setting range for the addresses has been exceeded. PROGRAM END ERR "EOR" has been read during tape and memory operation. PROG. No. ZERO A zero has been designated for a program number or sequence number. Remedy Divide the alarm block command into two. Check the specifications

P11

Revise the axis names in the program.

P20

Check the program.

P30

Check the paper tape. Check the tape puncher and tape reader. Make the number of characters per block on the paper tape even. Set the parameter parity V selection off. Check and revise the program address. Check the specifications. Check the program.

P31

P32

P33

P34

Check and correct the G code address in the program. Check the program.

P35

P36

Enter the M02 and M30 commands at the end of the program. Enter the M99 command at the end of the subprogram. The program numbers are designated across a range from 1 to 99999999. The sequence numbers are designated across a range from 1 to 99999.

P37

- 362 -

Appendix 2. Program Error

Error No. P39

Details NO SPEC ERR There are no specifications for the No. of added workpiece coordinate system offset sets. A G code without any specifications was issued. PREREAD BL. ERR When executing tool radius compensation (cutter compensation), there was an error in the pre-read block, so the interference could not be checked. OVER CMP. LENG. The commanded movement distance is excessive. (Over 231) F-CMD. NOTHING No feedrate command has been issued. There is no F command in the cylindrical interpolation/pole coordinate interpolation mode immediately after the G95 (G99) mode was commanded.

Remedy Check the specifications.

P40

Check the program.

P60

Check the axis address command.

P62

The default movement modal command at power on is G01. This causes the machine to move without a G01 command if a movement command is issued in the program, and an alarm results. Use an F command to specify the feedrate. Specify F with a thread lead command. Check the high-speed mode III specifications. Check the numerical values of the addresses that specify the start and end points as well as the arc center in the program. Check the "+" and "" directions of the address numerical values. Check the numerical values of the addresses in the program. Check the helical specifications. Three axes were commanded in the circular interpolation command. If the command is not a helical command, move the linear axis command to the next block. Check the specifications.

P65 P70

NO G05P3 SPEC ARC ERROR There is an error in the arc start and end points as well as in the arc center.

P71

ARC CENTER The arc center is not sought during R-specified circular interpolation. NO HELICAL SPC A helical command has been issued though it is not included in the specifications.

P72

P90

NO THREAD SPEC A thread cutting command has been issued though it is not included in the specifications. SCREW PITCH ERR The screw pitch has not been set correctly when the thread cutting command is issued. NO CYLIND SPEC The cylindrical interpolation command has been issued though it is not included in the specifications. - 363 -

P93

Issue the thread cutting command and then set the screw pitch command properly.

P100

Reconsider the program.

Appendix 2. Program Error

Error No. P111

Details PLANE CHG (CR) Plane selection commands (G17, G18, and G19) were issued when a coordinate rotation command (G68) was issued. PLANE CHG (CC) A plane selection command (G17, G18, G19) has been issued when the tool radius (cutter) compensation command (G41, G42) or nose radius compensation command (G41, G42, G46) is issued. The plane selection command was issued when nose radius compensation is completed there is no axial movement command after the G40 command and the compensation has not been canceled. ILLEGAL PLANE The arc command axis is not on the selected plane. NO AUTO C-OVR An automatic corner override command (G62) has been issued though it is not included in the specifications. 2nd AUX. ADDR The 2nd miscellaneous function address specified in the program does not match that set by the parameter. NO G96 SPEC (No constant surface speed) The constant surface speed command (G96) was issued despite the fact that such a command does not exist in the specifications. SPINDLE S = 0 No spindle speed command has been specified. G96 P-No. ERR An invalid constant surface speed control axis has been specified. NO C-CMP SPEC A tool radius compensation (G41, G42) and nose radius compensation command (G41, G42, G46) has been issued though there are no tool radius compensation or nose radius compensation specifications. G2, 3 CMP. ERR A compensation command (G40, G41, G42, G43, G44, G46) has been issued in the arc mode (G02, G03).

Remedy Before issuing the plane selection commands, issue G68 and then G69 (coordinate rotation cancel). Issue the plane selection command after the tool radius (cutter) compensation command or nose radius compensation command has been cancelled (issue axial movement command after the G40 cancel command).

P112

P113

Issue arc command on the correctly selected plane. Check the specifications. Delete the G62 command from the program. Check and correct the 2nd miscellaneous function address in the program.

P122

P130

P131

Check the specifications. Change from the constant surface speed command (G96) to the speed command (G97).

P132

Check the program.

P133

Check the parameter specified for the constant surface speed control axis. Check the tool radius compensation and nose radius compensation specifications.

P150

P151

Issue the linear command (G01) or rapid traverse command (G00) in the compensation command block or cancel block. (Set the modal to linear interpolation.)

- 364 -

Appendix 2. Program Error

Error No. P152

Details I.S.P NOTHING In interference block processing during execution of a tool radius compensation (G41 or G42) or nose radius compensation (G41, G42, or G46) command, the intersection point after one block is skipped cannot be determined. I.F ERROR An interference error has arisen while the tool radius compensation command (G41, G42) or nose radius compensation command (G41, G42, G46) was being executed. F-CYC ERR (CC) A canned cycle command has been issued in the tool radius compensation mode. BOUND DIRECT At the start of G46 nose radius compensation, the compensation direction is undefined if this shift vector is used. SIDE REVERSED During G46 nose radius compensation, the compensation direction is inverted.

Remedy Check the program.

P153

Check the program.

P155

The tool radius compensation mode is established when a canned cycle command is executed and so the tool radius compensation cancel command (G40) should be issued. Change the vector to that with which the compensation direction is defined. Exchange with a tool having a different tip point number. Change the G command to that which allows inversion of the compensation direction (G00, G28, G30, G33, or G53). Exchange with a tool having a different tip point number. Turn on the G46 inversion error avoidance parameter. Change the tip point number to a legal one.

P156

P157

P158

ILLEGAL TIP P. During G46 nose radius compensation, the tip point is illegal (other than 1 to 8). NO CORR. No. The compensation number (DOO TOO HOO) command was not given when the tool radius compensation (G41, G42, G43, G46) command was issued. Alternatively, the compensation number is larger than the number of sets in the specifications. G10 L-No. ERR (G10 L-number error) The L address command is not correct when the G10 command is issued. G10 P-No. ERR (G10 compensation error) When the G10 command is issued, a compensation number not within the permitted number of sets in the specifications has been commanded for the compensation number command.

P170

Add the compensation number command to the compensation command block. Check the number of compensation number sets and correct it to a compensation number command within the permitted number of compensation sets. Check the address L-Number of the G10 command and correct the number. First check the number of compensation sets and then set the address P designation to within the permitted number of sets.

P172

P173

- 365 -

Appendix 2. Program Error

Error No. P177

Details LIFE COUNT ACT Registration of tool life management data with G10 was attempted when the used data count valid signal was ON. LIFE DATA OVER The No. of registration groups, total No. of registered tools or the No. of registrations per group exceeded the specifications range.

Remedy The tool life management data cannot be registered when counting the used data. Turn the used data count valid signal OFF. Check the No. of registrations. The maximum No. of registrations is shown below. System No. of groups No. of tools Per group System 1 80 80 16 System 2 40/40 40/40

P178

P179

GROUP NO. ILL. When registering the tool life management data with G10, the group No. was commanded in duplicate. A group No. that was not registered was designated during the T****99 command. An M code command must be issued as a single command but coexists in the same block as that of another M code command. The M code commands set in the same group exist in the same block.

The group No. cannot be commanded in duplicate. When registering the group data, register it in group units. Correct to the correct group No.

P180

NO BORING CYC. A canned cycle command was issued though there are not fixed cycle (G72 G89) specifications. NO S-CMD (TAP) The spindle speed command has not been issued when the tapping canned cycle command is given. SYN TAP ERROR Connection to the main spindle unit was not established. PTC/THD, No. The pitch or thread number command has not been issued in the tap cycle of a boring fixed cycle command. NO PTC/THD CMD The pitch or the number of threads per inch is illegal in the tap cycle of the drilling fixed cycle command NO SYNC TAP SPEC A synchronous tapping command (G84R1) was issued even when there were no synchronous tapping specifications.

Check the specifications. Correct the program.

P181

Issue the spindle speed command (S) when the tapping canned cycle command G84, G74 (G84, G88) is given. Check connection to the main spindle unit. Check that the main spindle encoder exists. Specify the pitch data and the number of threads by F or E command.

P182

P183

P184

Check the pitch or the number of threads per inch.

P185

Check the synchronous tapping specifications.

- 366 -

Appendix 2. Program Error

Error No. P190

Details NO CUTTING CYC A lathe cutting cycle command was input although the lathe cutting cycle was undefined in the specification. TAPER LENG ERR In the lathe cutting cycle, the specified length of taper section is illegal. CHAMFERING ERR Chamfering in the thread cutting cycle is illegal. NO MRC CYC SPC A multiple fixed-cycle I command (G70 to G73) was input although this cycle was undefined in the specification. PROG. ERR (MRC) When called with a multiple fixed-cycle I command, the subprogram contained at least one of the following commands: Reference point return command (G27, G28, G30) Thread cutting (G33) Fixed-cycle skip-function (G31) The first move block of the finish shape program in multiple fixed cycle I contains an arc command. BLOCK OVR (MRC) The number of blocks in the shape program of the multiple fixed-cycle I is over 50. CONF. ERR (MRC) the multiple fixed-cycle I (G70 to G73) shape program could not cut the work normally because it defined an abnormal shape. VALUE ERR A command value of the multiple fixed-cycle (G70 to G76) is illegal. NO PAT CYC SPC A multiple fixed-cycle II (G74 to G76) command was input although it was undefined in the specification. NO SPECIAL CYC No special fixed cycle specifications are available. NO HOLE (S_CYC) A 0 has been specified for the number of holes in special fixed cycle mode.

Remedy Check the specification. Delete the lathe cutting cycle command.

P191

The radius set value in the lathe cycle command must be smaller than the axis shift amount. Set a chamfering amount not exceeding the cycle. Check the specification.

P192

P200

P201

Delete the following G codes from this subprogram that is called with the multiple fixed cycle I commands (G70 to G73): G27, G28, G30, G31, G33, fixed-cycle G-code. Remove G2 and G3 from the first move block of the finish shape program in multiple fixed cycle I.

P202

Specify 50 or a less value. The number of blocks in the shape program called by the multiple fixed cycle I commands (G70 to G73) must be decreased below 50. Check the multiple fixed-cycle I (G70 to G73) shape program.

P203

P204

Check the multiple fixed-cycle (G70 to G76) command value. Check the specification.

P210

P220

Check the specifications.

P221

Check the program.

- 367 -

Appendix 2. Program Error

Error No. P222

Details G36 ANGLE ERR A G36 command specifies 0 for angle intervals. G12 G13 R ERR The radius value specified with a G12 or G13 command is below the compensation amount. NO G12, G13 SPC There are no circular cutting specifications. NESTING OVER A subprogram has been called 4 or more times in succession from the subprogram. The program in the IC card contains the M198 command. The program in the IC card has been called more than once (the program in the IC card can be called only once at a time). NO N-NUMBER At subprogram call time, the sequence number set at return from the subprogram or specified by GOTO, was not set. NO PROGRAM No. The subprogram has not been found when the subprogram is called. NO VARI NUMBER The variable number commanded is higher than the numbers in the specifications. EQL. SYM. MSSG. The "=" sign has not been commanded when a variable is defined. VARIABLE ERR. An invalid variable has been specified in the left or right side of an operation expression. NO MACRO SPEC A macro specification was commanded though there are no such command specifications. NO MACRO INT. A macro interrupt command has been issued though it is not included in the specifications. NC/MACRO ILL. An executable statement and a macro statement exist together in the same block. MACRO OVERCALL The frequency of the macro call has exceeded the limit.

Remedy Check the program.

P223

Check the program.

P224 P230

Check the specifications. Check the number of subprogram calls and correct the program so that it does not exceed 4 times. When using the IC card, the IC card and the number of IC card program calls.

P231

Specify the sequence numbers in the call block of the subprogram.

P232

Enter the subprogram. Check the program number in the IC card. Check the specifications. Check the program variable number. Designate the "=" sign in the variable definition of the program. Correct the program.

P241

P242

P243

P270

Check the specifications.

P271

Check the specifications.

P272

Check the program and place the executable statement and macro statement in separate blocks. Check the program and correct it so that the macro calls do not exceed the limit imposed by the specification.

P273

- 368 -

Appendix 2. Program Error

Error No. P275

Details MACRO ARG. EX. The number of macro call argument type II sets has exceeded the limit. CALL CANCEL A G67 command was issued though it was not during the G66 command modal. MACRO ALM MESG An alarm command has been issued in #3000. EXC. [ , The number of parentheses [ , ] which can be commanded in a single block has exceeded five. [ , ] ILLEGAL The number of " [" and " ] " parentheses commanded in a single block does not match. CALC. IMPOSS. The arithmetic formula is incorrect. DIVIDE BY ZERO The denominator of the division is zero. INTEGER OVER In the process of the calculation the integral number has exceeded 231 (2311). OVERFLOW VALUE The variable data has overflowed. IF SNT. ERROR There is an error in the IF conditional GOTO * statement. WHILE SNT. ERR There is an error in the WHILE conditional DO*~END* statement. SETVN SNT. ERR There is an error in the SETVN* statement when the variable name setting was made. DO-END EXCESS The number of *s for DO-END* in the WHILE conditional DO*-END* statement has exceeded 27. DO-END MMC. The DO's and END's are not paired off properly.

Remedy Check the program.

P276

Check the program. The G67 command is the call cancel command and so the G66 command must be designated first before it is issued. Refer to the operator messages on the DIAG screen. Refer to the instruction manual issued by the machine manufacturer. Check the program and correct it so the number of " [ " or " ] " does not exceed five.

P277

P280

P281

Check the program and correct it so that " [ " and " ] " parentheses are paired up properly. Check the program and correct the formula. Check the program and correct it so that the denominator for division in the formula is not zero. Check the arithmetic formula in the program and correct it so that the value of the integral number after calculation does not exceed 231. Check the variable data in the program. Check the program.

P282 P283

P284

P285 P290

P291

Check the program.

P292

Check the program. The number of characters in the variable name of the SETVN statement must be 7 or less. Check the program and correct it so that the number of the DO-END statement does not exceed 27. Check the program and correct it so that the DO and END are paired off properly.

P293

P294

- 369 -

Appendix 2. Program Error

Error No. P295

Details WHILE/GOTO TPE There is a WHILE or GOTO statement on the tape during tape operation. NO ADR (MACRO) A required address has not been specified in the user macro. ADR-A ERR. The user macro does not use address A as a variable. PTR OP (MACRO) User macro G200, G201, or G202 was specified during tape or MDI operation. VER. NAME ERROR The variable names have not been commanded properly. VAR NAME DUPLI The name of the variable has been duplicated. NO PROG. MIRR. A mirror image (G50.1 or G51.1) command has been issued though the programmable mirror image specifications are not provided. NO CORNER R/C A command was issued for corner rounding or corner chamfering though there are no such specifications. NO ARC R/C SPC Corner rounding or chamfering was specified in the arc interpolation block although corner chamfering/corner rounding II is unsupported. CORNER NO MOVE The block next to corner rounding/ chamfering is not a movement command. CORNER SHORT In the corner rounding or chamfering command, the movement distance was shorter than the value in the corresponding command. CORNER SHORT When the corner rounding or chamfering command was input, the movement distance in the following block was shorter than the length of the corner rounding or chamfering.

Remedy During tape operation, a program which includes a WHILE or GOTO statement cannot be executed and so the memory operation mode is established instead. Check the program.

P296

P297

Check the program.

P298

Check the program.

P300

Check the variable names in the program and correct them. Correct the program so that the name is not duplicated. Check the specifications.

P301

P360

P380

Check the specifications. Remove the corner rounding or chamfering command from the program. Check the specifications.

P381

P382

Replace the block succeeding the corner rounding/chamfering command by movement command block. Make the corner rounding or chamfering less than the movement distance since this distance is shorter than the corner rounding or chamfering. Make the corner rounding or chamfering less than the movement distance since this distance in the following block is shorter than the corner rounding or chamfering.

P383

P384

- 370 -

Appendix 2. Program Error

Error No. P385

Details G0 G33 IN CONR A block with corner rounding/chamfering was given during G0 or G33 modal. NO GEOMETRIC A geometric command was issued though there are no geometric specifications. NO GEOMETRIC 2 There are no geometric IB specification. LES AGL (GEOMT) The angular difference between the geometric line and line is 1 or less. INC ERR (GEOMT) The second geometric block was specified by an incremental value. NO G01 (GEOMT) The second geometric block contains no linear command. NO ADRS (GEOMT) The geometric format is invalid. PL CHG. (GEOMT) A plane switching command was executed during geometric command processing. ARC ERR (GEOMT) In geometric 1B, the circular arc end point does not contact or cross the next block start point. NO GEOMETRIC 1B Although the geometric 1B specifications are not included, a geometric command is given. PRAM. IN ERROR The specified parameter number or set data is illegal. An illegal G command address was input in parameter input mode. A parameter input command was input during fixed-cycle modal or nose R compensation. AXIS NOT RET. A command was issued to move an axis, which has not returned to the reference point, away from that reference point. A command was issued to an axis removal axis.

Remedy Recheck the program.

P390

Check the specifications.

P391 P392

Check the specifications. Correct the geometric angle.

P393

Specify this block by an absolute value.

P394

Specify the G01 command.

P395 P396

Recheck the program. Execute the plane switching command before geometric command processing. Recheck the geometric circular arc command and the preceding and following commands. Check the specifications.

P397

P398

P421

Check the program.

P430

Execute reference point return manually. The command was issued to an axis for which axis removal is validated so invalidate axis removal.

- 371 -

Appendix 2. Program Error

Error No. P431

Details NO 2ndREF. SPC A command for second, third or fourth reference point return was issued though there are no such command specifications. COLLATION ERR One of the axes did not return to the start position when the origin point collate command (G27) was executed. G27/M ERROR An M command was issued simultaneously in the G27 command block. G29/M ERROR An M command was issued simultaneously in the G29 command block. NOT USE (G52) A local coordinate system command was issued during a G54.1 command. NO CHUCK BARR. The chuck barrier on command (G22) was specified although the chuck barrier was undefined in the specification. TAPE I/O ERROR An error has arisen in the tape reader or, alternatively, in the printer during macro printing. FILE I/O ERROR A file of the machining program cannot be read.

Remedy Check the specifications.

P434

Check the program.

P435

An M code command cannot be issued in a G27 command block and so the G27 command and M code command must be placed in separate blocks. An M code command cannot be issued in a G29 command block and so the G29 command and M code command must be placed in separate blocks. Check the program.

P436

P438

P450

Check the specifications.

P460

Check the power and cable of the connected devices. Check the I/O device parameters. In memory mode, the programs stored in memory may have been destroyed. Output all of the programs and tool data once and format them. Ensure that the external device (including a floppy disk drive and IC card) that contains the file is mounted. The L01 DNC ERROR (computer link error) xxx will appear simultaneously, so refer to the error No. and remedy. Reconsider the program.

P461

P462

COMPUTER LINK ERROR A communication error occurred during BTR running. NO MILL SPEC The pole coordinate interpolation command has been issued though it is not included in the specifications. MILL ILL.G An illegal G code was used during cylindrical interpolation/pole coordinate interpolation.

P480

P481

Reconsider the program.

- 372 -

Appendix 2. Program Error

Error No. P482

Details MILL ILL.AXIS Cylindrical interpolation/pole coordinate interpolation was commanded in the following state. During mirror image Tool compensation after T command has not been completed. MILL AXIS RET. One of the axes commanded for cylindrical interpolation/pole coordinate interpolation has not completed reference point return. MILL ILL.MODAL A command not permissible for the cylindrical interpolation/pole coordinate interpolation mode was issued. Cylindrical interpolation/pole coordinate interpolation during constant surface speed mode (G96) T command in cylindrical interpolation/ pole coordinate interpolation mode Movement command when plane selection command is not set immediately before or after G07.1 command. Plane selection command in pole coordinate interpolation mode Cylindrical interpolation/pole coordinate interpolation during tool radius compensation NO AUTO TLM. An automatic tool length measurement command (G37) was executed though there are no such command specifications. NO SKIP SPEC. A skip command (G31) was issued though there are no such command specifications. NO MULTI SKIP A multiple skipping command (G31.1, G31.2 or G31.3) was issued though there are no such command specifications.

Remedy Check the machining program, parameter and PLC I/F signal.

P484

Manually execute reference point return.

P485

Reconsider the program.

P600

Check the specifications.

P601

Check the specifications.

P602

Check the specifications.

- 373 -

Appendix 2. Program Error

Error No. P603 P604

Details SKIP SPEED 0 The skip speed is 0. TLM ILL. AXIS No axis or more than one axis was specified in the automatic tool length measurement block. H-CMD IN BLOCK The H code is in the same block as the automatic tool length measurement block. NO H-CMD BEFOR The H code was not yet specified in automatic tool length measurement. TLM ILL. SIGNL Before the area specified by the D command or decelerating area parameter d, the measurement position arrival signal went on. The signal remains off to the end. SKIP ERROR (CC) A skip command was specified during tool radius compensation processing. NO TAHZ. SPEC The normal line control command (G40.1, G41.1, G42.1) was commanded even though the normal line control specifications are not provided. TAH. AXIS G92 A normal line control axis workpiece offset command (G92) was issued during normal line control. TAH. AXIS ERR * A normal line control axis was set for a linear axis. * The normal line control axis was duplicated with the plane selection axis. PLANE CHG(TAN) The plane selection command (G17, G18, G19) was issued during normal line control. PREPRO S/W ERR combining commands that required pre-reading (nose R offset, corner chamfering corner R, geometric I, geometric IB, and multiple fixed cycle commands) resulted in eight or more pre-read blocks.

Remedy Specify the skip speed. Specify only one axis.

P605

Specify this H code before the automatic tool length measurement block. Specify this H code before the block.

P606

P607

Check the program.

P608

Specify a radius cancel (G40) command, or remove the skip command. Check the specifications.

P900

P901

Check the program.

P902

Check parameter (C_axis), and correctly set the normal line control axis.

P903

Delete the plane selection command (G17, G18, G19) from the normal line control program. Reduce the number of commands that require pre-reading or delete such commands.

P990

- 374 -

Appendix 3. Order of G Function Command Priority

Appendix 3. Order of G Function Command Priority


(Command in a separate block when possible)
Note) Upper level : When commanded in the same block indicates that both commands are executed simultaneously
G code 01 Commanded G code G command commanded last is valid. G00~G03.1 Positioning/ interpolation Group 1 modal is updated Also possible during arc modal G00 ~ G03 02 G17 ~ G19 03 G90, G91 05 G94, G95 06 G20, G21 07 G40 ~ G42 08 G43, G44, G49

Arc and G41, Arc and G43~ G42 cause G49 cause error P151 error P70 Diameter is compen-sate d, and then moves G04 is executed The G49 movement in the arc modal moves with G01 G04 is executed

G04 Dwell

Group 1 modal is updated G04 is executed

G40~G42 are G43~G49 are ignored ignored

G09 Exact stop check G10 is priority G10 is used for axis for axis, so the selected No plan axis will move-ment be the basic I, J, K rotation axis. input G10~G11 are G10~G11 are executed executed G40~G42 are G43~G49 are ignored ignored

G10, G11 Program data setting

G command commanded last is valid. G17 ~ G19 Plane selection Plane axis changeover during diameter compensa-tio n causes error P112

- 375 -

Appendix 3. Order of G Function Command Priority

G code 01 Commanded G code G20, G21 Inch/metric changeover Possible in same block G00 ~ G03 02 G17 ~ G19 03 G90, G91 05 G94, G95 06 G20, G21 07 G40 ~ G42

08 G43, G44, G49

G27 ~ G30

Reference point compare/ return G27~G30 are executed G31 ~ G31.3 Skip G command commanded Thread cutting last is valid. G33 G37 is executed G00~G33 are ignored Arc and G41, G42 cause error P151 G40 ~ G42 Tool diameter compensation G41 and G42 in arc modal cause error P151 Plane axis changeover during diameter compensa-tio n causes error P112

G00~G03.1 modals are updated

G27~G30 are G27~G30 are executed executed G40~G42 are G43~G49 are ignored ignored

Error:P608 Error:P608

G37 Automatic tool length measurement

G37 is executed

G37 is executed

G40~G42 are G43~G49 are ignored ignored G command commanded last is valid.

- 376 -

Appendix 3. Order of G Function Command Priority

G code 09 Commanded G code Group 1 command is executed G00~G03.1 Positioning/ interpolation Group 9 is canceled G66~G67 are executed G00~G03.1 modals are updated G73 ~ G89 10 G98, G99 12 G54 ~ G59 13 G61 ~ G64 14 G66 ~ G67 17 G96, G97

19 G50.1 G51.1

During the arc command, all axis names become mirror center data Movement with mirror shape

G04 is executed G04 Dwell G73~G89 are ignored

G04 is executed Group 12 is changed

G04 is executed G50.1 and G51.1 are ignored

G09 Exact stop check G10~G11 are executed G10, G11 Program data setting G73~G89 are ignored G10 is executed G54~G59 modals are updated G66~G67 are executed G10 is ignored G10~G11 are executed G50.1 and G51.1 are ignored

G17 ~ G19 Plane selection

- 377 -

Appendix 3. Order of G Function Command Priority

G code 09 Commanded G code G20, G21 Inch/metric changeover G73 ~ G89 10 G98, G99 12 G54 ~ G59 13 G61 ~ G64 14 G66 ~ G67 17 G96, G97

19 G50.1 G51.1

G27 ~ G30 Reference point compare/ return

G66~G67 are executed G27~G30 are ignored

G27~G30 are executed G50.1 and G51.1 are ignored

G31 ~ G31.3 Skip Group 1 command is executed G66~G67 are executed G33 modals is updated

G33 Thread cutting Group 9 is canceled

G37 Automatic tool length measurement G40 ~ G42 Tool diameter compensation Error:P155 Error:P155

G66~G67 are executed G37 modals is ignored

G37 is executed G50.1 and G51.1 are ignored

- 378 -

Appendix 3. Order of G Function Command Priority

G code Commanded G code

01 G00~G03.1 G33

02 G17 ~ G19

03 G90, G91

05 G94, G95

06 G20, G21

07 G40 ~ G42

08 G43, G44, G49

Arc and G43, G44 cause G43, G44, G49 error P70 Length compensation Arc and G43, G44 cause error P70

G command commanded last is valid.

G50.1 G51.1 Program mirror image G52 Local coordinate system G53 Machine coordinate system G54 ~ G59 Workpiece coordinate system G61 ~ G64 Mode selection G65 is executed G65 Macro call G00~G03.1 modals are updated G65 is executed G43~G49 modals are updated G52 is executed G52 is executed

G40~G42 are G43~G49 are ignored ignored G53 is executed G53 is executed

G40~G42 are G40~G42 are ignored ignored

- 379 -

Appendix 3. Order of G Function Command Priority

G code Commanded G code

01 G00~G03.1 G33 G66 ~ G67 are executed

02 G17, G19

03 G90, G92

05 G94, G95

06 G20, G21

07 G40 ~ G42

08 G43, G44 G49

G66 ~ G67 Macro call

G00~G03.1 modals are updated

G66~G67 are executed G43~G49 modals are updated Error:P155 Canned cycle during compensa-tio n Error:P155

G73~G89 are canceled G73 ~ G89 G01~G33 Canned cycle modals are updated G90, G91 Absolute value/ incremental value G92 Coordinate system setting G94, G95 Synchronous/ asynchronous G96, G97 Constant surface speed control G98, G99 Initial point/ R point return G command commanded last is valid. Use in same block

- 380 -

Appendix 3. Order of G Function Command Priority

G code 09 Commanded G code G66~G67 are executed G43~G49 modals are updated G66~G67 are executed G50.1 G51.1 is ignored G52 is executed G73~G89 are ignored G73 ~ G89 10 G98 ~ G99 12 G54 ~ G59 13 G61 ~ G65 14 G66 ~ G67 17 G96, G97

19 G50.1 G51.1

G43, G44, G49 Length compensation

G50.1 G51.1 Program mirror image

G command commanded last is valid.

G52 Local coordinate system

G52 is executed G50.1 G51.1 is ignored G53 is executed G50.1 G51.1 is invalid G command commanded last is valid. G66~G67 are executed G54~G59 modals are updated G command commanded last is valid.

G53 Machine coordinate system

G54 ~ G59 Workpiece coordinate system

G61 ~ G64 Mode selection G65 is executed G65 Macro call G73~G89 are ignored

Error

G65 is executed G50.1 G51.1 is ignored

- 381 -

Appendix 3. Order of G Function Command Priority

G code 09 Commanded G code G66~G67 are executed G66 ~ G67 Macro call G73~G89 are ignored G66~G67 are executed G54~G59 modals are updated G command commanded last is valid. G73 ~ G89 10 G98, G99 12 G54 ~ G59 13 G61 ~ G67 14 G66 ~ G67 17 G96, G97

19 G50.1 G51.1 G66~G67 are executed G50.1 G51.1 is ignored

G command commanded last is valid. G command commanded last is valid. G66~G67 are executed G73~G89 are ignored All axes become mirror center

G73 ~ G89 Canned cycle

G90, G91 Absolute value/ incremental value G92 G92 is executed Note that G92 is priority for axis

G73~G89 are Coordinate system setting ignored G94, G95 Synchronous/ asynchronous G96, G97 Constant surface speed control G98, G99 Initial point/R point return G command commanded last is valid. G command commanded last is valid.

- 382 -

Revision history SubNo. * A B Date of revision September, 2000 First edition created. December, 2000 Miswrite is corrected. September, 2001 The details are revised to correspond to the MELDAS 625 Version B0. The following explanations and related descriptions are added. 6.9 Cylindrical interpolation 6.10 Pole coordinate interpolation Miswrite is corrected. Design of the cover and the back cover were changed. MODEL, MODEL CODE, and Manual No. were added on the back cover. C January, 2002 Miswrite is corrected. Revision details

Notice
Every effort has been made to keep up with software and hardware revisions in the contents described in this manual. However, please understand that in some unavoidable cases simultaneous revision is not possible. Please contact your Mitsubishi Electric dealer with any questions or comments regarding the use of this product.

Duplication Prohibited
This instruction manual may not be reproduced in any form, in part or in whole, without written permission from Mitsubishi Electric Corporation.

2000

MITSUBISHI ELECTRIC CORPORATION

ALL RIGHTS RESERVED

HEAD OFFICE : MITSUBISHI DENKI BLDG., 2-2-3, MARUNOUCHI, CHIYODA-KU, TOKYO 100-8310, JAPAN

MITSUBISHI ELECTRIC CORPORATION

MODEL MODEL CODE Manual No.

M625 008-071 BNP-B2280C(ENG)


Specifications subject to change without notice. Printed in Japan on recycled paper.

(0201)MEE

You might also like