0% found this document useful (0 votes)
205 views469 pages

M60 - M60S Series - MELDASMAGIC64 Programming Manual (Machining

This document provides a programming manual for MELDAS 60/60S Series CNC machines. It contains information on: 1. Control axes and coordinate systems used in programming. 2. Input command formats including tape codes, program formats, address checking, and memory formats. 3. Programming functions including position commands, interpolation, threading, and other G-codes. 4. Buffer registers used for pre-reading programs and handling multiple blocks of commands. 5. Programming examples and precautions for creating safe and effective CNC programs.

Uploaded by

myoppok8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
205 views469 pages

M60 - M60S Series - MELDASMAGIC64 Programming Manual (Machining

This document provides a programming manual for MELDAS 60/60S Series CNC machines. It contains information on: 1. Control axes and coordinate systems used in programming. 2. Input command formats including tape codes, program formats, address checking, and memory formats. 3. Programming functions including position commands, interpolation, threading, and other G-codes. 4. Buffer registers used for pre-reading programs and handling multiple blocks of commands. 5. Programming examples and precautions for creating safe and effective CNC programs.

Uploaded by

myoppok8
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 469

CNC

60/60S Series
64

PROGRAMMING MANUAL
(MACHINING CENTER TYPE)

BNP-B2182E(ENG)
MELDAS and MELDASMAGIC are registered trademarks of Mitsubishi Electric Corporation.
Other company and product names that appear in this manual are trademarks or registered
trademarks of the respective company.
Introduction

This manual is a guide for using the MELDAS 60/60S Series, MELDASMAGIC64.
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 this NC unit.

*The "MELDAS60 Series" includes the M64A/M64/M65/M66/M65V.


*The "MELDAS60S Series" includes the M64AS/M64S/M65S/M66S.

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
MELDAS 60/60S Series Operation Manual ........ BNP-B2180
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".

When the user may be subject to imminent fatalities or major injuries if


DANGER
handling is mistaken.

When the user may be subject to fatalities or major injuries if handling is


WARNING mistaken.

When the user may be subject to injuries or when physical damage may
CAUTION occur if handling is mistaken.

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.
Do not change fixed cycle programs without the prior approval of the machine maker.
When programming the multi-system, take special care to the movements of the programs
for other systems.
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.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 ........................................................................... 16

4. Buffer Register ..................................................................................................................... 17


4.1 Input buffer .................................................................................................................... 17
4.2 Pre-read buffers ............................................................................................................ 18

5. Position Commands ............................................................................................................ 19


5.1 Position command methods; G90, G91 ........................................................................ 19
5.2 Inch/metric command change; G20, G21 ..................................................................... 21
5.3 Decimal point input ........................................................................................................ 25

6. Interpolation Functions ....................................................................................................... 29


6.1 Positioning (Rapid traverse); G00 ................................................................................. 29
6.2 Linear interpolation; G01................................................................................................. 36
6.3 Plane selection; G17, G18, G19 ................................................................................... 38
6.4 Circular interpolation; G02, G03 .................................................................................... 40
6.5 R-specified circular interpolation; G02, G03 ................................................................. 44
6.6 Helical interpolation; G17 to G19, G02, G03 ................................................................ 46
6.7 Thread cutting ................................................................................................................. 50
6.7.1 Constant lead thread cutting ; G33 ......................................................................... 50
6.7.2 Inch thread cutting ; G33 ....................................................................................... 53
6.8 Uni-directional positioning; G60 ...................................................................................... 54
6.9 Circular interpolation; G07.1 ........................................................................................... 56
6.10 Pole coordinate interpolation; G12.1 .............................................................................. 64
6.11 Exponential function interpolation; G02.3, G03.3 ........................................................... 71
6.12 Polar coordinate command; G16................................................................................... 77
6.13 Spiral Interpolation; G02.1/G03.1 ................................................................................... 83

I
7. Feed Functions ...................................................................................................................... 85
7.1 Rapid traverse rate ........................................................................................................ 85
7.2 Cutting feed rate ............................................................................................................ 85
7.3 F1-digit feed ................................................................................................................... 86
7.4 Synchronous feed; G94, G95 ....................................................................................... 88
7.5 Feedrate designation and effects on control axes ........................................................ 90
7.6 Exact stop check; G09 .................................................................................................. 93
7.7 Exact stop check mode; G61 ........................................................................................ 96
7.8 Deceleration check.......................................................................................................... 96
7.8.1 G1→G0 deceleration check .................................................................................. 98
7.8.2 G1→G1 deceleration check .................................................................................. 99
7.9 Automatic corner override; G62 .................................................................................... 100
7.10 Tapping mode; G63 ....................................................................................................... 105
7.11 Cutting mode; G64 ........................................................................................................ 105

8. Dwell ..................................................................................................................................... 106


8.1 Per-second dwell; G04 .................................................................................................. 106

9. Miscellaneous Functions .................................................................................................... 108


9.1 Miscellaneous functions (M8-digits BCD) ..................................................................... 108
9.2 Secondary miscellaneous functions (B8-digits, A8 or C8-digits) .................................. 110
9.3 Index table indexing ...................................................................................................... 111

10. Spindle Functions ................................................................................................................ 113


10.1 Spindle functions (S2-digits BCD)...During standard PLC specifications ..................... 113
10.2 Spindle functions (S6-digits Analog) ............................................................................. 113
10.3 Spindle functions (S8-digits) ......................................................................................... 113
10.4 Constant surface speed control; G96, G97 .................................................................. 114
10.4.1 Constant surface speed control ............................................................................. 114
10.5 Spindle Clamp speed setting; G92 ............................................................................... 115
10.6 Spindle/C axis control .................................................................................................... 116
10.7 Spindle synchronization control II ................................................................................... 119
10.8 Multiple spindle control.................................................................................................... 126
10.8.1 Multiple spindle control I (multiple spindle command) ............................................ 127
10.8.2 Multiple spindle control I (Spindle selection command).......................................... 128
10.8.3 Multiple spindle control II......................................................................................... 131

11. Tool Functions ..................................................................................................................... 134


11.1 Tool functions (T8-digits BCD) ...................................................................................... 134

12. Tool Offset Functions ......................................................................................................... 135


12.1 Tool offset ...................................................................................................................... 135
12.2 Tool length offset/cancel; G43, G44/G49 ..................................................................... 139
12.3 Tool radius compensation ............................................................................................. 142
12.3.1 Tool radius compensation operation ..................................................................... 143
12.3.2 Other operations during tool radius compensation ............................................... 153
12.3.3 G41/G42 commands and I, J, K designation ........................................................ 161

II
12.3.4 Interrupts during tool radius compensation ........................................................... 167
12.3.5 General precaution for tool radius compensation ................................................. 169
12.3.6 Changing of offset No. during compensation mode .............................................. 170
12.3.7 Start of tool radius compensation and Z axis cut in operation .............................. 172
12.3.8 Interference check ................................................................................................. 174
12.4 Programmed offset input; G10 ...................................................................................... 181
12.5 Tool position offset; G45 to G48 ................................................................................... 186
12.6 Inputting the tool life management data ........................................................................ 193

13. Program Support Functions ............................................................................................... 196


13.1 Canned cycles ............................................................................................................... 196
13.1.1 Standard canned cycles ; G80 to G89, G73, G74, G76 ...................................... 196
13.1.2 Initial point and R point level return; G98, G99 ..................................................... 220
13.1.3 Setting of workpiece coordinates in canned cycle mode ...................................... 221
13.2 Special canned cycle; G34, G35, G36, G37.1 .............................................................. 222
13.3 Subprogram control; M98, M99, M198 ........................................................................... 227
13.3.1 Calling subprogram with M98 and M99 commands .............................................. 227
13.3.2 Calling subprogram with M198 commands ........................................................... 232
13.4 Variable commands ....................................................................................................... 233
13.5 User macro specifications ............................................................................................. 236
13.5.1 User macro commands; G65,G66,G66.1,G67 ..................................................... 236
13.5.2 Macro call instruction ............................................................................................. 237
13.5.3 Variables ................................................................................................................ 244
13.5.4 Types of variables .................................................................................................. 246
13.5.5 Arithmetic commands ............................................................................................ 282
13.5.6 Control commands ................................................................................................ 287
13.5.7 External output commands .................................................................................... 290
13.5.8 Precautions ............................................................................................................ 292
13.5.9 Actual examples of using user macros ................................................................. 294
13.6 G command mirror image; G50.1, G51.1 ..................................................................... 298
13.7 Corner chamfering, corner rounding ............................................................................. 301
13.7.1 Corner chamfering ",C_" ......................................................................................... 301
13.7.2 Corner rounding ",R_" ............................................................................................. 303
13.8 Linear angle command .................................................................................................. 304
13.9 Circle cutting; G12, G13 ................................................................................................ 306
13.10 Program parameter input; G10, G11 ........................................................................... 308
13.11 Macro interrupt; M96, M97 .......................................................................................... 309
13.12 Tool change position return; G30.1 to G30.6 .............................................................. 318
13.13 Normal line control; G40.1/G41.1/G42.1....................................................................... 321
13.14 High-accuracy control; G61.1........................................................................................ 332
13.15 High-speed high-accuracy control ................................................................................ 345
13.15.1 High-speed high-accuracy control I,II.................................................................... 345
13.15.2 SSS control............................................................................................................ 349
13.16 Spline............................................................................................................................. 355
13.17 Scaling ; G50/G51 ......................................................................................................... 362
13.18 Program coordinate rotation; G68/G69......................................................................... 366

III
14. Coordinates System Setting Functions.............................................................................. 370
14.1 Coordinate words and control axes .............................................................................. 370
14.2 Basic machine, work and local coordinate systems ..................................................... 371
14.3 Machine zero point and 2nd, 3rd, 4th reference points (Zero point) ............................ 372
14.4 Basic machine coordinate system selection; G53.......................................................... 373
14.5 Coordinate system setting; G92 .................................................................................... 374
14.6 Automatic coordinate system setting ............................................................................ 375
14.7 Reference (zero) point return; G28, G29 ...................................................................... 376
14.8 2nd, 3rd, and 4th reference (zero) point return; G30 .................................................... 380
14.9 Simple zero point return ................................................................................................ 383
14.10 Reference point check; G27 ........................................................................................ 388
14.11 Work coordinate system setting and offset ; G54 to G59 (G54.1) .............................. 389
14.12 Local coordinate system setting; G52 ......................................................................... 400
14.13 Workpiece coordinate system preset; G92.1 .............................................................. 404

15. Measurement Support Functions ...................................................................................... 409


15.1 Automatic tool length measurement; G37 .................................................................... 409
15.2 Skip function; G31 ......................................................................................................... 413
15.3 Multi-stage skip function; G31.n, G04 ........................................................................... 418
15.4 Multi-skip function 2 ....................................................................................................... 420
15.5 Speed change skip ....................................................................................................... 423
15.6 Programmable current limitation .................................................................................. 426

16. Machining mode .................................................................................................................. 427


16.1 High-speed machining mode ........................................................................................ 427

Appendix 1. Program Parameter Input N No. Correspondence Table .............................. 430


Appendix 2. Program Error .................................................................................................... 433
Appendix 3. Order of G Function Command Priority .......................................................... 450

IV
1. Control Axes
1.1 Coordinate word and control axis

1. Control Axes
1.1 Coordinate word and control axis
Function and purpose

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
+Z

+Z
+Y
+X
Program coordinates

Workpiece

X-Y table +X
+Y
Direction of Bed Direction of
table movement table movement

X-Y and revolving table

+Z
Workpiece +Y +C
+X
Direction of table +C +X
movement +Y Direction of table Program coordinates
revolution

1
1. Control Axes
1.2 Coordinate systems and coordinate zero point symbols

1.2 Coordinate systems and coordinate zero point symbols

Function and purpose

: Reference point

: Machine coordinate zero point

: Work coordinate zero points (G54 - G59)

-X Machine
Basic machine coordinate system zero point

x1

y1

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

x2
x3
Local
coordinate
y5 x system
(G52)
Work -Y
coordinate
Work coordinate Work coordinate system 4 y
system 6 (G59) system 5 (G58) (G57)
x5

2
2. Input Command Units
2.1 Input command units

2. Input Command Units


2.1 Input command units
Function and purpose

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


Function and purpose

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.)
Linear axis
Input unit parameters Rotary axis (°)
Millimeter Inch
#1015 cunit = 10000 1.0 0.1 1.0
Input command = 1000 0.1 0.01 0.1
unit = 100 0.01 0.001 0.01
= 10 0.001 0.0001 0.001
#1003 iunit = B 0.001 0.0001 0.001
Input setting unit
=C 0.0001 0.00001 0.0001
(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.1 Tape codes

3. Data Formats
3.1 Tape codes
Function and purpose

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, program
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.

Detailed description

EOB/EOR keys and displays


Code used
ISO Screen display
Key used
End of block LF or NL ;
End of record % %

(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
3.1 Tape codes

(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 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
LC S L
G0 0 X - 8 5 0 0 0 Y - 6 4 0 0 0 ( CU T T E R RE T URN )
FR P F

• • •• • • •• •• • • • • ••
•• •• • • • • • •• • •
•• •• •• • • ••• •••• ••• • ••
••••••••••••••••••••••••••••••••••••••••••••••••
•• •••• •• • •••••
••••• ••• ••• •••••• ••••• ••• • • •••
••••• ••• •• •••••• ••••••• • • •
• • • • • •••••• •••••• •
• • •• • • • • • •••••••• • • •
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:
(a) Rewind stop when rewinding tape (with tape handler)
(b) Rewind start during tape search (with tape handler)
(c) Completion of loading during tape loading into memory

(4) Tape preparation for tape operation (with tape handler)

•••••••• •••••• ••••••••••


% 10cm ; ; ; ; 10cm %

(EOR) (EOB) (EOB) (EOB) (EOB) (EOR)


2m Initial block Last block 2m

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
3.1 Tape codes

ISO code (R-840)


Feed holes
8 7 6 5 4 3 2 1
Channel No.

•• ••
••

• •
• 1

•• • ••
2

• •• ••
3

•• •• •
4

•• • ••
5

•• •• • •••
6

•••
7

••• •
8

••
9

• •
0

••••
• •
A

• ••
B

••
C

•• •• •
D

••• • ••
E

• •••
F

• •
G

••
••• •• •• ••••

H
• I
J

••• •• •• •• •
K
L

•••• • •• •• ••
M

•••
N
O

••
••• ••• •• ••••
P
• Q
R

••• •• •• •• •
S
T

• •• •• ••
U

•• •• •• ••••
V

••• ••
W
X

• • ••• •• •••
Y
Z

•• •• •• ••• •
+
-

•• •• •• •• ••••
.
,

• • •• •• • • •
/
%

• ••••••• •• • •
LF(Line Feed) or NL
• ( (Control Out)
) (Control In)

•• •• • •• ••
:


#

••• ••• •• •
*

•• • ••
=

••
•• • • •• •• ••
••
[
• ]
SP(Space)
CR(Carriage Return)
• •• •• • BS(Back Space)

• •• •• •• •
HT(Horizontal Tab)
&

•• •• ••••
!
$

• ••• • ••
’ (Apostrophe)
A
••• ••
;

• ••• • ••
<

•• • •• •••
•••
>
• ?


@

••••• •• •••

DEL(Delete)

••••• •• •••
NULL
DEL(Delete) B
• 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.
Table of tape codes

6
3. Data Formats
3.2 Program formats

3.2 Program formats


Function and purpose

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".

Detailed description

(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 "–" 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 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 ; 2 blocks
G1X - 2000F500 ;
(Example 2:)
(G0X - 1000 ; ) Since the semicolon in the parentheses will not result
G1X - 2000F500 ; in an EOB, it is 1 block.

(3) Programs
A program is a collection of several blocks.

7
3. Data Formats
3.2 Program formats

<Brief summary of format details>


Rotary axis Rotary axis
Metric command Inch command
(Metric command) (Inch command)
Program number 08 ← ← ←
Sequence number N5 ← ← ←
Preparatory function G3/G21 ← ← ←
0.001(°) mm/
X+53 Y+53 Z+53 α+53 X+44 Y+44 Z+44 α+44 X+53 Y+53 Z+53 α+53 X+53 Y+53 Z+53 α+53
Movement 0.0001 inch
axis 0.0001(°) mm/
X+44 Y+44 Z+44 α+44 X+35 Y+35 Z+35 α+35 X+44 Y+44 Z+44 α+44 X+44 Y+44 Z+44 α+44
0.00001 inch
0.001(°) mm/ I+44 J+44 K+44 R+44
Arc and I+53 J+53 K+53 R+53 I+44 J+44 K+44 R+44 I+53 J+53 K+53 R+53
0.0001 inch (Note 5)
cutter
0.0001(°) mm/ I+35 J+35 K+35 R+35
radius I+44 J+44 K+44 R+44 I+35 J+35 K+35 R+35 I+44 J+44 K+44 R+44
0.00001 inch (Note 5)
0.001(°) mm/
X+53/P+8 ← ← ←
0.0001 inch
Dwell
0.0001(°) mm/
X+53/P+8 ← ← ←
0.00001 inch
F44(Feed per minute)
0.001(°) mm/ F63(Feed per minute) F44(Feed per minute) F63(Feed per minute)
F34(Feed per revolution)
0.0001 inch F43(Feed per revolution) F34(Feed per revolution) F43(Feed per revolution)
Feed (Note 6)
function F35(Feed per minute)
0.0001 (°) mm/ F54(Feed per minute) F35(Feed per minute) F54(Feed per minute)
F25(Feed per revolution)
0.00001 inch F34(Feed per revolution) F25(Feed per revolution) F34(Feed per revolution)
(Note 6)
Tool offset H3 D3 ← ← ←
Miscellaneous function (M) M8 ← ← ←
Spindle function (S) S8 ← ← ←
Tool function (T) T8 ← ← ←
2nd miscellaneous function A8/B8/C8 ← ← ←
Subprogram P8 H5 L4 ← ← ←
0.001(°) mm/
R+53 Q53 P8 L4 ← ← ←
Fixed 0.0001 inch
cycle 0.0001(°) mm/
R+44 Q44 P8 L4 ← ← ←
0.00001 inch

(Note 1) α indicates the additional axis address, such as A, B or C.


(Note 2) The No. of digits check for a word is carried out with the maximum number of digits of that address.
(Note 3) Numerals can be used without the leading zeros.
(Note 4) The meanings of the details are as follows:
Example 1 : 08 :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 - sign and represents 5 digits to the left of the decimal
point and 3 digits to the right.
For example, the case for when the X axis is positioned (G00) to the 45.123 mm
position in the absolute value (G90) mode is as follows:

G00 X45.123 ;
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, too.
(Note 5) If an arc is commanded using a rotary axis and linear axis while inch commands are being used, the
degrees will be converted into 0.1 inches for interpolation.
(Note 6) While inch commands are being used, the rotary axis speed will be in increments of 10 degrees.
Example: With the F1. (per-minute-feed) command, this will become the 10 degrees/minute command.
(Note 7) The decimal places below the decimal point are ignored when a command, such as an S command,
with an invalid decimal point has been assigned with a decimal point.
(Note 8) This format is the same for the value input from the memory, MDI or setting and display unit.
(Note 9) Command the program No. in an independent block. Command the program No. in the head block of
the program.

8
3. Data Formats
3.3 Program address check function

3.3 Program address check function


Function and purpose

The program can be checked in word units when operating machining programs.

Detailed description

(1) Address check


This function enables simple checking of program addresses in word units. If the alphabetic
characters are continuous, the program error (P32) will occur. Availability of this function is
selected by the parameter "#1227 aux11/bit4".
Note that an error will not occur for the following:
• Reserved words
• Comment statements

(2) Word range check


When the operation expression is used for the word data, check whether one word data is
enclosed in brackets "[ ]" or not.
If it is not enclosed, the program error (P33) will occur.
Availability of this function is selected by the parameter "#1274 ext10/bit7".

Example of program

(1) Example of program for address check


(Example 1) When there are no numbers following an alphabetic character.
G28 X ; → An error will occur. Change to "G28 X0;", etc.

(Example 2) When a character string is illegal.


TEST ; → An error will occur. Change to "(TEST);", etc.

(2) Example of program for word range check


X-100.-#24 → An error will occur. Change as shown below.
Z+#500*TAN[#1] X-[100.+#24]
Y-SIN[60.] Z+[#500*TAN[#1]]
Y-SIN[60.]
The numbers of brackets that can be used for one word data are maximum five.
If six brackets or more are commanded, the program error (P280) will occur.

9
3. Data Formats
3.4 Tape memory format

3.4 Tape memory format


Function and purpose

(1) Storage tape and significant sections


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 "Table of tape codes" in "3.1 Tape Codes" 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 ; /


Function and purpose

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

Detailed description

(1) 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.

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

3.6 Program/sequence/block numbers ; O, N


Function and purpose

These numbers are used for monitoring the execution of the machining programs and for calling
both machining programs and specific stages in machining programs.
(1) 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.
(2) 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 5 digits.
(3) 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.

Monitor display
Machining program
Program No. Sequence No. Block No.
O12345678 (DEMO, PROG) ; 12345678 0 0
G92 X0 Y0 ; 12345678 0 1
G90 G51 X-150. P0.75 ; 12345678 0 2
N100 G00 X-50. Y-25. ; 12345678 100 0
N110 G01 X250. F300 ; 12345678 110 0
Y-225. ; 12345678 110 1
X-50. ; 12345678 110 2
Y-25.; 12345678 110 3
N120 G51 Y-125. P0.5 ; 12345678 120 0
N130 G00 X-100. Y-75. ; 12345678 130 0
N140 G01 X-200. ; 12345678 140 0
Y-175. ; 12345678 140 1
X-100. ; 12345678 140 2
Y-75. ; 12345678 140 3
N150 G00 G50 X0 Y0 ; 12345678 150 0
N160 M02 ; 12345678 160 0
%

11
3. Data Formats
3.7 Parity H/V

3.7 Parity H/V


Function and purpose

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.

(a) 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 "Table of tape
codes" in "3.1 Tape Codes".
(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

3.8 G code lists


Function and purpose

G code Group Function


∆ 00 01 Positioning
∆ 01 01 Linear interpolation
02 01 Circular interpolation CW (clockwise)
03 01 Circular interpolation CCW (counterclockwise)
02.3 01 Exponential function interpolation positive rotation
03.3 01 Exponential function interpolation negative rotation
04 00 Dwell
05 00 High-speed high-accuracy control II
05.1 00 High-speed high-accuracy control I
07
07.1
21 Cylindrical interpolation
107
08
09 00 Exact stop check
10 00 Program parameter input/compensation input
11 00 Program parameter input cancel
12 00 Circular cut CW (clockwise)
13 00 Circular cut CCW (counterclockwise)
12.1
21 Polar coordinate interpolation ON
112
* 13.1
21 Polar coordinate interpolation cancel
113
14
* 15 18 Polar coordinate command OFF
16 18 Polar coordinate command ON
∆ 17 02 Plane selection X-Y
∆ 18 02 Plane selection Z-X
∆ 19 02 Plane selection Y-Z
∆ 20 06 Inch command
∆ 21 06 Metric command
22
23
24
25
26
27 00 Reference point check
28 00 Reference point return
29 00 Start point return
30 00 2nd to 4th reference point return
30.1 00 Tool change position return 1
30.2 00 Tool change position return 2
30.3 00 Tool change position return 3
30.4 00 Tool change position return 4
30.5 00 Tool change position return 5
30.6 00 Tool change position return 6
31 00 Skip

13
3. Data Formats
3.8 G code lists

G code Group Function


31.1 00 Multi-skip function 1
31.2 00 Multi-skip function 2
31.3 00 Multi-skip function 3
32
33 01 Thread cutting
34 00 Special fixed cycle (bolt hole circle)
35 00 Special fixed cycle (line at angle)
36 00 Special fixed cycle (arc)
37 00 Automatic tool length measurement
37.1 00 Special fixed cycle (grid)
38 00 Tool radius compensation vector designation
39 00 Tool radius compensation corner arc
* 40 07 Tool radius compensation cancel
41 07 Tool radius compensation left
42 07 Tool radius compensation right
* 40.1 15 Normal line control cancel
41.1 15 Normal line control left ON
42.1 15 Normal line control right ON
43 08 Tool length offset (+)
44 08 Tool length offset (-)
43.1 20 1st spindle control ON
44.1 20 2nd spindle control ON
45 00 Tool position offset (expansion)
46 00 Tool position offset (reduction)
47 00 Tool position offset (doubled)
48 00 Tool position offset (halved)
47.1 20 Two-spindles simultaneous control ON
* 49 08 Tool length offset cancel
* 50 11 Scaling cancel
51 11 Scaling ON
* 50.1 19 G command mirror image cancel
51.1 19 G command mirror image ON
52 00 Local coordinate system setting
53 00 Machine coordinate system selection
* 54 12 Work coordinate system 1 selection
55 12 Work coordinate system 2 selection
56 12 Work coordinate system 3 selection
57 12 Work coordinate system 4 selection
58 12 Work coordinate system 5 selection
59 12 Work coordinate system 6 selection
54.1 12 Work coordinate system selection 48 sets expanded
60 00 Uni-directional positioning
61 13 Exact stop check mode
61.1 13 High-accuracy control
62 13 Automatic corner override
63 13 Tapping mode
63.1 13 Synchronous tapping mode (normal tapping)
63.2 13 Synchronous tapping mode (reverse tapping)
* 64 13 Cutting mode
65 00 User macro call
66 14 User macro modal call A
66.1 14 User macro modal call B

14
3. Data Formats
3.8 G code lists

G code Group Function


* 67 14 User macro modal call cancel
68 16 Coordinate conversion mode ON
* 69 16 Coordinate conversion mode OFF
70 09 User fixed cycle
71 09 User fixed cycle
72 09 User fixed cycle
73 09 Fixed cycle (step)
74 09 Fixed cycle (reverse tap)
75 09 User fixed cycle
76 09 Fixed cycle (fine boring)
77 09 User fixed cycle
78 09 User fixed cycle
79 09 User fixed cycle
* 80 09 Fixed cycle cancel
81 09 Fixed cycle (drill/spot drill)
82 09 Fixed cycle (drill/counter boring)
83 09 Fixed cycle (deep drilling)
84 09 Fixed cycle (tapping)
85 09 Fixed cycle (boring)
86 09 Fixed cycle (boring)
87 09 Fixed cycle (back boring)
88 09 Fixed cycle (boring)
89 09 Fixed cycle (boring)
∆ 90 03 Absolute value command
∆ 91 03 Incremental command value
92 00 Machine coordinate system setting
93
∆ 94 05 Asynchronous feed (per-minute feed)
∆ 95 05 Synchronous feed (per-revolution feed)
∆ 96 17 Constant surface speed control ON
∆ 97 17 Constant surface speed control OFF
* 98 10 Fixed cycle Initial level return
99 10 Fixed cycle R point level return
100 to 255 00 User macro (G code call) Max. 10

15
3. Data Formats
3.8 G code lists

(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.
(Note 4) Whether the modal is initialized or not depends on each reset input.
(1) "Reset 1"
The modal is initialized when the reset initial parameter "#1151 rstinit" turns ON.
(2) "Reset 2" and "Reset & rewind"
The modal is initialized when the signal is input.
(3) Resetting when emergency stop is canceled
Follows "Reset 1".
(4) When modal is automatically reset at the start of individual functions such as
reference point return.
Follows "Reset & rewind".

CAUTION
The commands with “no value after G" will be handled as "G00".

3.9 Precautions before starting machining

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.

16
4. Buffer Register
4.1 Input buffer

4. Buffer Register
4.1 Input buffer
Function and purpose

When the pre-read buffer is empty during a tape operation or RS232C 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 250 × 4 characters, the following data (Max. 250
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 : 250 × 5 characters)
Max. 5 execution blocks
Tape Pre-read
Input buffer buffer 5

Buffer 4

Buffer 3
Memory

Buffer 2
Mode
Keyboard switching Arithmetic
Buffer 1 processing

MDI data
Note : Data equivalent to 1 block are stored in 1 pre-read buffer.

The input buffer has a memory capacity of 250 × 5 characters (including the EOB code).

(1) The contents of the input buffer register are updated in 250-character units.
(2) Only the significant codes in the significant data section are read into the input buffer.
(3) 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.
(4) The input buffer contents are cleared with resetting.

(Note 1) The input buffer size (250 characters) differs according to the model.

17
4. Buffer Register
4.2 Pre-read buffers

4.2 Pre-read buffers


Function and purpose

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.
The specifications of the data in 1 block are as follows:

(1) The data of 1 block are stored in this buffer.


(2) Only the significant codes in the significant data section are read into the pre-read buffer.
(3) 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.
(4) The pre-read buffer contents are cleared with resetting.
(5) When the single block function is ON during continuous operation, the pre-read buffer stores
the following block data and then stops operation.

Other precautions

(1) 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.
(2) 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.
(3) 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.)

18
5. Position Commands
5.1 Position command methods

5. Position Commands
5.1 Position command methods ; G90, G91
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.

Command format

G9D Xx1 Yy1 Zz1 αα1


G90 :Absolute value command
G91 :Incremental command
α :Additional axis

Detailed description

(1) Regardless of the current position, in the absolute


value mode, it is possible to move to the position of the Y 200.
workpiece coordinate system that was designated in
the program. Tool

N 1 G90 G00 X0 Y0 ; 100. N1

In the incremental value mode, the current position is


the start point (0), and the movement is made only the N2 X
value determined by the program, and is expressed as W 100. 200. 300.
an incremental value.
N 2 G90 G01 X200. Y50. F100;

N 2 G91 G01 X200. 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
Y 200.
was given becomes the modal.
(G90) N 3 X100. Y100.;

The axis moves to the workpiece 100.


N3
coordinate system X = 100mm and
Y = 100mm position.
W X
100. 200. 300.
(G91) N 3 X–100. 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.

19
5. Position Commands
5.1 Position command methods

(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. Y 200.
N 4 G90 X300. G91 Y100.;
N4
The X axis is treated in the absolute 100.

value mode, and with G90 is


moved to the workpiece coordinate
X
system 300.mm position. The Y axis is
W 100. 200. 300.
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) 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.

(5) Even when commanding with the manual data input (MDI), it will be treated as a modal from
that block.

20
5. Position Commands
5.2 Inch/metric command change

5.2 Inch/metric command change; G20, G21


Function and purpose

These G commands are used to change between the inch and millimeter (metric) systems.

Command format

G20/G21;
G20 : Inch command
G21 : Metric command

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)

Input command Command Metric output (#1016 iout=0) Inch output (#1016 iout=1)
Axis
unit type (cunit) example G21 G20 G21 G20
X 10 X100; 0.100mm 0.254mm 0.0039inch 0.0100inch
Y 10 Y100; 0.100mm 0.254mm 0.0039inch 0.0100inch
Z 100 Z100; 1.00mm 2.54mm 0.039inch 0.100inch
B 1000 B100; 10.0° 10.0° 10.0° 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.

21
5. Position Commands
5.2 Inch/metric command change

Output unit, command unit and setting unit

Select whether to issue the counter or parameter setting and display unit as a command unit
determined by the G20/G21 command modal, or as the internal unit determined by parameter
"#1041 I_inch". If the command unit setting display is selected when initial metric (internal unit
metric) is set with the base specification parameter "#1226 aux10/bit6", the counter and
parameters will be displayed as metric units during the G21 command mode. The internal unit
metric data will be converted into an inch unit and displayed during the G20 command mode. The
command unit for when the power is turned ON and reset can be selected regardless of the
internal unit by setting the base specification parameter "#1152 I_G20".

NC axis
Initial inch OFF (metric internal unit) Initial inch ON (inch internal unit)
#1041 I_inch=0 #1041 I_inch=1
Item #1226 aux10/bit6=0 #1226 aux10/bit6=1 #1226 aux10/bit6=0 #1226 aux10/bit6=1
Follows internal unit Follows command unit Follows internal unit Follows internal unit
G21 G20 G21 G20 G21 G20 G21 G20
Movement/
Metric Inch Metric Inch Metric Inch
speed command
Counter display Metric Metric Metric Inch Inch Inch
Speed display Metric Metric Metric Inch Inch Inch The "#1226 aux10/bit6"
parameter is invalid
User parameter
Metric Metric Metric Inch Inch Inch when initial inch is ON.
setting/display
Even if 1 is set, the
Workpiece/ setting and display will
tool offset Metric Metric Metric Inch Inch Inch follow the internal unit in
setting/display the same manner as
Handle feed when 0 is set.
Metric Metric Metric Inch Inch Inch
command
Setup parameter
Follows "#1040 M_inch"
setting/display

PLC axis
#1042 pcinch=0 #1042 pcinch=1
Item
(metric) (inch)
Movement/
Metric Inch
speed command
Counter display Metric Inch
User parameter
Metric Inch
setting/display
Setup parameter
Follows "#1040 M_inch"
setting/display

When using both the NC axis and PLC axis as rotation axes, three digits below the decimal point
will be displayed for the coordinate data, etc., even for the inch command.

22
5. Position Commands
5.2 Inch/metric command change

Usage examples

The screen display will change in the following manner according to the parameter settings.
Parameter #1041 I_inch 0 Initial metric #1041 I_inch 0 Initial metric
setting #1152 I_G20 0 G21 (metric) mode at #1152 I_G20 0 G21 (metric) mode at
reset reset
Program #1226 Setting and display #1226 Setting and display
command/ unit is internal unit unit is command unit
aux10/bit6 0 aux10/bit6 1
screen operation

[POSITION] [POSITION]
X 0.000 X 0.000
Y 0.000 Y 0.000
Z 0.000 Z 0.000
mm. mm.

[TOOL OFFSET] [TOOL OFFSET]


# #
1 0.100 11 0.000 1 0.100 11 0.000
2 0.200 12 0.000 2 0.200 12 0.000
3 0.300 13 0.000 3 0.300 13 0.000
mm. mm.

Inch command Display unit is also inch following the


G20 G0 X1. Y2. Z3. ; command unit
Internal data Internal data
[POSITION] [POSITION]
X 25.400 25.4(mm) X 1.0000 25.4(mm)
Y 50.800 50.8(mm) Y 2.0000 50.8(mm)
Z 76.200 76.2(mm) Z 3.0000 76.2(mm)
in. in.

Internal data
[TOOL OFFSET] [TOOL OFFSET]
# # #10.1(mm)
1 0.100 11 0.000 1 0.0039 11 0.0000
2 0.200 12 0.000 2 0.0078 12 0.0000
3 0.300 13 0.000 3 0.0118 13 0.0000
in. in.

#(1)( 1) Set with inch unit


Input Internal data Internal data
[TOOL OFFSET] [TOOL OFFSET]
# 1.0(mm) # 25.4(mm)
1 1.000 11 0.000 1 1.0000 11 0.0000
. .
. .
. .
in. in.

23
5. Position Commands
5.2 Inch/metric command change

Parameter #1041 I_inch 0 Initial metric #1041 I_inch 0 Initial metric


setting #1152 I_G20 0 G21 (metric) mode at #1152 I_G20 0 G21 (metric) mode at
reset reset
Program #1226 Setting and display #1226 Setting and display
command/ unit is internal unit unit is command unit
aux10/bit6 0 aux10/bit6 1
screen operation
Reset Display unit is also metric following the
command unit

[POSITION] [POSITION]
X 25.400 X 25.400
Y 50.800 Y 50.800
Z 76.200 Z 76.200
mm. mm.

[TOOL OFFSET] [TOOL OFFSET]


# #
1 1.000 11 0.000 1 25.400 11 0.000
2 0.200 12 0.000 2 0.200 12 0.000
3 0.300 13 0.000 3 0.300 13 0.000
mm. mm.

Precautions

(1) If the tool and workpiece offset data are added with an inch command unit and metric internal
unit, an error may occur.
(2) The internal unit is a unit that follows #1041 I_inch.
Internal unit when #1041 I_inch=0 : mm
Internal unit when #1041 I_inch=1 : inch
(3) The parameters are input and output with an internal unit.
(4) If the tool data input/output unit selection (#1220 aux04/bit4:1) is valid, the tool data will be
input and output with the "#1152 I_G20" setting unit. However, in all other cases, the data will
be input/output with the internal unit.

24
5. Position Commands
5.3 Decimal point input

5.3 Decimal point input


Function and purpose

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.

Command format

. : Metric command
. : Inch command

Detailed description

(1) The decimal point command is valid for the distances, angles, times, speeds and scaling rate,
in machining programs. (Note, only after G51)
(2) 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 Type 1 Type 2
cunit = 10000 1000 (µm, 10–4 inch, 10–3 °) 1 (mm, inch, °)
cunit = 1000 100 1
X1 ;
cunit = 100 10 1
cunit = 10 1 1

(3) 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.

(4) See below for the number of significant digits in decimal point commands. (Input command
unit cunit = 10)
Movement Movement
Feed rate Dwell
command (linear) command (rotary)
Decimal Decimal Decimal Decimal
Integer Integer Integer Integer
part part part part
MM
0. to .000 to 0. to .000 0. to 0. to .000 to
(milli- .00 to .99
99999. .999 99999. to.999 60000. 99999. .999
meter)
INCH .0000 to 99999. .000 to .000 to
0. to 9999. .0 to .999 0. to 2362. .0 to .99
(inch) .9999 (359.) .999 .999

(5) The decimal point command is valid even for commands defining the variable data used in
subprograms.
(6) 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 (1µm, 10µm, etc.) or mm can be selected. This selection can be made with
parameter “#1078 Decpt2”.
(7) 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.

25
5. Position Commands
5.3 Decimal point input

Example of program

(1) Example of program for decimal point valid address


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

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 1µm 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 1µm 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 1µm :
G0 x 123 + 0 ; ... X axis 123mm command. It will not be 123µm.

26
5. Position Commands
5.3 Decimal point input

Addresses used and valid/invalid decimal point commands


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

27
5. Position Commands
5.3 Decimal point input

Decimal point
Address Application Remarks
command
N Invalid Sequence numbers
Invalid Program parameter input, data numbers
O Invalid Program numbers
P Invalid/Valid Dwell time Parameter
Invalid Subprogram program call No.
Invalid/Valid Dwell at tap cycle hole base Parameter
Invalid Number of holes of the special fixed cycle
Invalid Amount of helical pitch
Invalid Offset number (G10)
Invalid Constant surface speed control axis number
Invalid Program parameter input, broad classification number
Invalid Multi-skip function 2 signal command
Invalid Subprogram return destination sequence No.
Invalid 2nd, 3rd, 4th reference point return number
Q Valid Cut amount of deep hole drill cycle
Valid Shift amount of back boring
Valid Shift amount of fine boring
Invalid Minimum spindle clamp speed
Valid Starting shift angle for screw cutting
R Valid R-point in the fixed cycle
Valid R-specified arc radius
Valid Corner rounding arc radius ,R
Valid Offset amount (G10)
Invalid Synchronous tap/asynchronous tap changeover
Valid Automatic tool length measurement, deceleration range r
Valid Rotation angle
S Invalid Spindle function codes
Invalid Maximum spindle clamp speed
Invalid Constant surface speed control, surface speed
Invalid Program parameter input, word type data 2 bytes
T Invalid Tool function codes
U Valid Coordinate position data
V Valid Coordinate position data
W Valid Coordinate position data
X Valid Coordinate position data
Valid Dwell time
Y Valid Coordinate position data
Z Valid Coordinate position data
(Note 1) All decimal points are valid for the user macro arguments.

28
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

6. Interpolation Functions
6.1 Positioning (Rapid traverse); G00
Function and purpose

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.

Command format

G00 Xx Yy Zz αα ; (α represents additional axis)


x, y, z, α : Represent coordinates, and could be either absolute values or
incremental values, depending on the setting of G90/G91.

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.

(2) In the G00 mode, the tool is always accelerated at the start point of the block and decelerated
at the end point. Refer to (Note 4) of “Example program”.

(3) Any G command (G72 to G89) in the 09 group is cancelled (G80) by the G00 command.

(4) The tool path can be selected from linear or non-linear.


The positioning time is the same for the linear and non-linear paths.

(a) Linear path..........: 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.

CAUTION
The commands with “no value after G" will be handled as "G00".

29
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

Example of program

Tool +300
End point
(-120,+200,+300)
+150
Start point -100
(+150,-100,+150)
-120 Unit : mm
+150
+200
X Y

G91 G00 X-270000 Y300000 Z150000 ; (For input setting unit: 0.001mm)

(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

Y
200

fy

X
Start point
300 (Unit : mm)

fx

Actual X axis rate : 9600mm/min

30
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

(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

200
fy

X
Start point
300 (Unit : mm)

fx

Actual X axis rate : 9600mm/min

31
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

(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
There are two methods for the deceleration check at rapid traverse; commanded
deceleration method and in-position check method. Select a method with the parameter
“#1193 inpos”.

■ When “inpos” = “1”


Upon completion of the rapid traverse (G00), the next block will be executed after
confirming that the remaining distances for each axis are below the fixed amounts.
(Refer to following drawing.)
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 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.

■ When “inpos” = “0”


Upon completion of the rapid traverse (G00), the next block will be executed after the
deceleration check time (Td) has elapsed. The deceleration check time (Td) is as follows,
depending on the acceleration/deceleration type.

(1) Linear acceleration/linear deceleration ........................ Td = Ts + α

Previous block Next block

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

(2) Exponential acceleration/linear deceleration ............... Td = 2 × Ts + α

Previous block Next block

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

32
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

(3) Exponential acceleration/exponential deceleration...... Td = 2 × Ts + α

Previous block Next block

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

Where Ts is the acceleration time constant, α = 0 to 14ms


The time required for the deceleration check during rapid traverse is the longest among the
rapid traverse deceleration check times of each axis determined by the rapid traverse
acceleration/deceleration time constants and by the rapid traverse
acceleration/deceleration mode of the axes commanded simultaneously.

33
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

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

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 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 next page for in-position width) and when validated with
this command are shown in the following drawing.

Differences between in-position check with this command and in-position check with parameter
In-position check with ",I" address command In-position check with parameter
After starting deceleration of the command After starting deceleration of the command
system, the position error amount and system, the servo system's position error amount
commanded in-position width are compared. and the parameter setting value (in-position
width) are compared.
Servo Command
Servo Command
In-position width In-position width
(Error amount of command (Servo system position
end point and machine error amount)
Block being Block being
position)
executed executed

Ts Ts
Td Td
Start of in-position
check with parameter
Start of in-position
check with ",I" address command

Ts : Acceleration/deceleration time constant


Td : Deceleration check time
Td = Ts + (0 to 14ms)

34
6. Interpolation Functions
6.1 Positioning (Rapid traverse)

In-position width setting

When the servo parameter "#2224 SV024" setting value is smaller than the setting value of the G0
in-position width "#2077 G0inps" and the G1 in-position width "#2078 G1inps", 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.


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) When the in-position width check is carried out, the in-position width commanded in the
program takes place the in-position width set with the parameters such as SV024,
G0inps, or G1inps.
(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.

35
6. Interpolation Functions
6.2 Linear interpolation

6.2 Linear interpolation; G01


Function and purpose

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.

Command format

G01 Xx Yy Zz αα Ff ,Ii ; (α represents additional axis)


x, y, z, α :Represents the coordinate value. An absolute position or
incremental position is indicated based on the state of G90/G91 at
that time.
f :Feedrate (mm/min or °/min)
i :In-position width. A program error occurs if a decimal point
command is issued. This is valid only in the commanded block. A
block that does not contain this address will follow the parameter
"#1193 inpos" settings.

Detailed description

(1) 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.
(2) The feedrate for a rotary axis is commanded by °/min (decimal point position unit). (F300 =
300°/min)
(3) The G functions (G70 - G89) in the 09 group are cancelled (G80) by the G01 command.

36
6. Interpolation Functions
6.2 Linear interpolation

Example of program

(Example 1) Cutting in the sequence of P1 → P2 → P3 → P4 → P1 at 300 mm/min feedrate


P0 → P1 is for tool positioning
30 Y

P2 P3

30
P1 Unit: mm
P4 Input setting unit: 0.001mm
20 20

20
P0

G90 G00 X20000 Y20000 ; P0 → P1


G01 X20000 Y30000 F300 P1 → P2
X30000 ; P2 → P3
X-20000 Y-30000 ; P3 → P4
X-30000 ; P4 → P1

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.
• When the error detect switch is ON.
• When G09 (exact stop check) is commanded in the same block.
• 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" for details on the in-position
check operation.

37
6. Interpolation Functions
6.3 Plane selection

6.3 Plane selection; G17, G18, G19


Function and purpose

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.
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.

Command format

G17 ; (ZX plane selection)


G18 ; (YZ plane selection)
G19 ; (XY plane selection)
X, Y and Z indicate each coordinate axis or the parallel axis.

Parameter entry

Table 1 Example of plane selection parameter entry


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

As shown in the above example, the basic axis and its 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.

38
6. Interpolation Functions
6.3 Plane selection

Plane selection system

In Table 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

(1) 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 Table 1.
G17X__Y__ ; XY plane
G18X__V__ ; VX plane
G18U__V__ ; VU plane
G19Y__Z__ ; YZ plane
G19Y__V__ ; YV plane

(2) 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)

(3) 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 Table 1.
G17 ; XY plane
G17U__ ; UY plane
G18U__ ; ZU plane
G18V__ ; VX plane
G19Y__ ; YZ plane
G19V__ ; YV plane

(4) 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 Table 1.
G17U__Z__ ;

(5) 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 Table 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.

39
6. Interpolation Functions
6.4 Circular interpolation

6.4 Circular interpolation; G02, G03


Function and purpose

These commands serve to move the tool along an arc.

Command format

G02 (G03) Xx Yy Ii Jj Kk Ff;


G02 : Clockwise (CW)
G03 : Counterclockwise (CCW)
Xx, Yy : End point
Ii, Jj : Arc center
Ff : Feedrate
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.

40
6. Interpolation Functions
6.4 Circular interpolation

Detailed description

(1) 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)

G2 G3
G3

G3
Y
G2
G2

X
Y X Z

G03 G03 G03

G02 G02 G02

X Z Y

G17(X-Y)plane G18(Z-X)plane G19(Y-Z)plane

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

41
6. Interpolation Functions
6.4 Circular interpolation

Example of program

(Example 1)

Y axis +Y

Feedrate Circle center


F = 500mm/min J = 50mm

X axis +X
Start point/end point

G02 J50000 F500 ; Circle command

(Example 2)

Y axis +Y

Feedrate Arc center End point


F = 500mm/min J = 50mm X50 Y50mm

X axis +X
Start point

G91 G02 X50000 Y50000 J50000 F500 ; 3/4 command

42
6. Interpolation Functions
6.4 Circular interpolation

Plane selection

The planes in which the arc exists are the following three planes (refer to the detailed drawings),
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)

Precautions for circular interpolation

(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.
(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.
(3) The following occurs when the start and end point radius do not match in an arc command :
(a) Program error (P70) results at the arc start point when error ∆R is greater than parameter
"#1084 RadErr".
(G91) G02X9.899I 5. ; #1084 RadErr parameter value 0.100
Start point radius = 5.000
End point radius = 4.899
Error ∆R = 0.101

Alarm stop

Center End point


Start point
Start point radius End point radius ∆R

(b) Spiral interpolation in the direction of the commanded end point results when error ∆R is
less than the parameter value.
(G91) G02X9.9I 5. ; Spiral interpolation

#1084 RadErr parameter value 0.100


Start point radius = 5.000
End point radius = 4.900
Error ∆R = 0.100

Center End point


Start point
Start point radius End point radius ∆R

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

43
6. Interpolation Functions
6.5 R-specified circular interpolation

6.5 R-specified circular interpolation; G02, G03


Function and purpose

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.

Command format

G02 (G03) Xx Yy Rr Ff ;
x : X-axis end point coordinate
y : Y-axis end point coordinate
r : Arc radius
f : 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.

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 semisphere.

Arc path when


R sign is minus

02 End point
Center
point
Center point
Arc path when
R sign is plus

Center point
L 01
Start point r

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.

44
6. Interpolation Functions
6.5 R-specified circular interpolation

Example of program

(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.

45
6. Interpolation Functions
6.6 Helical interpolation

6.6 Helical interpolation ; G17 to G19, G02, G03


Function and purpose

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

X End point

F’

Z End point
Start point
Y

X
Fig. 1 Designation of helical interpolation speed

Command format

G17 G02 (G03) Xx1 Yy1 Zz1 Ii1 Jj1 Pp1 Ff1 ;
G17 G02 (G03) Xx2 Yy2 Zz2 Rr2 Ff2 ;
Xx1 Yy1 Xx2 Yy2 : Arc end point coordinate
Zz1 Zz2 : Linear axis end point coordinate
Ii1 Jj1 : Arc center coordinate
Pp1 : Pitch No.
Ff1 Ff2 : Feedrate
Rr2 : Arc radius

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.

46
6. Interpolation Functions
6.6 Helical interpolation

For the MELDASMAGIC64, the arc plane element speed designation and normal speed
designation can be selected with the parameter.
#1235 set07/bit0 Meaning
1 Arc plane element speed designation is selected.
0 Normal speed designation is selected.

Normal speed designation

Y
θ
Z axis
θe
P1 time

End point
Z1
Y axis Second time θs X
First time
l Start point

X axis

(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.
Z1
l=
(2π • P1 + θ) / 2π
–1 ye ys
θ = θE − θs = tan – tan–1 (0 ≤ θ < 2π)
xe xs
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.

47
6. Interpolation Functions
6.6 Helical interpolation

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.

Example of program

(Example 1)

Z axis

Y axis z1

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
z1
r1
X axis

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

(Example 3)
Z axis

Y axis

U axis
z1

G17 G03 Uu1 Yy1 Zz1 Ii1 Jj1 P2 Ff1 ; UY plane arc, Z axis linear

48
6. Interpolation Functions
6.6 Helical interpolation

(Example 4)

u1
U axis X axis

x1

Z axis z1

G18 G03 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)
G18 G02 Xx1 Uu1 Yy1 Zz1 Ii1 Jj1 Kk1 ZX plane arc, U axis, Y axis linear
Ff1 ; (The J command is ignored)
(Note) Two or more axes can be designated for the linear interpolation axis.

Arc plane element speed designation (MELDASMAGIC64 only)

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.

49
6. Interpolation Functions
6.7 Thread cutting

6.7 Thread cutting

6.7.1 Constant lead thread cutting ; G33

Function and purpose

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.

Command format

G32 Zz Ff1 Qq ; (Normal lead thread cutting commands)


Zz : Thread cutting direction axis address (X, Y, Z, a) and thread length
Ff : Lead of long axis (axis which moves most) direction.
Qq : Thread cutting start shift angle, (0 to 360°)

G33 Zz Ee1 Qq ; (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°)

Detailed description

(1) 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 the parameter "#1229 set 01/bit 1" to 1.)
(2) The lead in the long axis direction is commanded for the taper thread lead.
Z

LZ Tapered thread section


a

LX X

When a<45°, the lead is LZ.


When a>45°, the lead is LX.
When a=45°, the lead can be in either LX or LZ.

Thread cutting Metric input


Input unit system B (0.001mm) C (0.0001mm)
E (threads/ E (threads/
Command address F (mm/rev) E (mm/rev) F (mm/rev) E (mm/rev)
inch) inch)
Minimum command 1 (= 1.000), 1 (= 1.00000), 1 (= 1.00), 1 (= 1.0000), 1(=1.00000), 1 (= 1.000),
unit (1.=1.000) (1.=1.00000) (1.=1.00) (1.=1.0000) (1.=1.00000) (1.=1.000)
0.001 to 0.00001 to 0.00001 to 0.000001 to 0.1 to
Command range 0.03 to 999.99
999.999 999.99999 99.9999 99.99999 2559999.999

50
6. Interpolation Functions
6.7 Thread cutting

Thread cutting Inch input


Input unit system B (0.0001inch) C (0.00001inch)
E (threads/ E (threads/
Command address F (inch/rev) E (inch/rev) F (inch/rev) E (inch/rev)
inch) inch)
Minimum command 1(=1.0000), 1(=1.000000), 1 (= 1.0000), 1(=1.00000), 1(=1.000000), 1(=1.0000),
unit (1.=1.0000) (1.=1.000000) (1.=1.0000) (1.=1.00000) (1.=1.000000) (1.=1.0000)
0.0001 to 0.000001 to 0.0255 to 0.00001 to 0.000001 to 0.25401 to
Command range
99.9999 39370078 9999.9999 3937009 3937009 999.9999

(Note 1) It is not possible to assign a lead where the feed rate as converted into per-minute
feed exceeds the maximum cutting feed rate.

(3) The thread cutting will start by the one rotation synchronous signal from the encoder installed
on the spindle.
(4) The spindle speed should be kept constant throughout from the rough cutting until the
finishing.
(5) 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).
(6) 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.
(7) 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.
(8) 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.
(9) The spindle speed is subject to the following restriction :
Maximum feedrate
1≤R≤
Thread lead
Where R ≤ Permissible speed of encoder (r/min)
R : Spindle speed (r/min)
Thread lead : mm or inches
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.

51
6. Interpolation Functions
6.7 Thread cutting

Example of program

10
50
10

X
Y

N110 G90 G0 X-200. Y-200. S50 M3 ; The spindle center is positioned to the workpiece
N111 Z110. ; center, and the spindle rotates in the forward direction.
N112 G33 Z40. F6.0 ; The first thread cutting is executed. Thread lead =
6.0mm
N113 M19 ; Spindle orientation is executed with the M19
command.
N114 G0X-210. ; The tool is evaded in the X axis direction.
N115 Z110. M0 ; The tool rises to the top of the workpiece, and the
program stops with M00.
Adjust the tool if required.
N116 X-200. ; Preparation for second thread cutting is done.
M3 ;
N117 G04 X5.0 ; Command dwell to stabilize the spindle rotation if
necessary.
N11 G33 Z40. ; The second thread cutting is executed.

52
6. Interpolation Functions
6.7 Thread cutting

6.7.2 Inch thread cutting; G33

Function and purpose

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.

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°.

Detailed description

(1) The number of ridges in the long axis direction is assigned as the number of ridges per inch.

(2) 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 the parameter "#1229 set01/bit1" to 0.)

(3) The E command value should be set within the lead value range when the lead is converted.

53
6. Interpolation Functions
6.7 Thread cutting

Example of program

Thread lead ..... 3 threads/inch (= 8.46666 ...)


When programmed with δ1= 10mm,
δ2 = 10mm using metric input

δ1
50.0mm

δ2

X
Y

N210 G90 G0X-200. Y-200. S50M3;


N211 Z110.;
N212 G91 G33 Z-70.E3.0; (First thread cutting)
N213 M19;
N214 G90 G0X-210.;
N215 Z110.M0;
N216 X-200.;
M3;
N217 G04 X2.0;
N218 G91 G33 Z-70.; (Second thread cutting)

6.8 Uni-directional positioning; G60


Function and purpose

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.

54
6. Interpolation Functions
6.8 Uni-directional positioning

Command format

G60 Xx Yy Zz αα ;
α : Optional axis

Detailed description

(1) The creep distance for the final positioning as well as the final positioning direction is set by
parameter.
(2) 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.

G60a Positioning position

[Final advance direction]

- End point Start point +

Start point
Stop once

G60-a
[G60creep distance]

(3) The above positioning operation is performed even when Z-axis commands have been
assigned for Z-axis cancel and machine lock. (Display only)
(4) 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.
(5) The tool moves to the end point at the dry run speed during dry run when the G0 dry run
function is valid.
(6) 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.
(7) Uni-directional positioning is not performed for the drilling axis during drilling fixed cycles.
(8) Uni-directional positioning is not performed for shift amount movements during the fine boring
or back boring fixed cycle.
(9) Normal positioning is performed for axes whose creep distance has not been set by
parameter.
(10) Uni-directional positioning is always a non-interpolation type of positioning.
(11) 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.
(12) Program error (P61) results when the G60 command is assigned with an NC system which
has not been provided with this particular specification.

55
6. Interpolation Functions
6.9 Circular interpolation

6.9 Circular interpolation; G07.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 rotation axis movement in the cylindrical coordinates and the contour is
controlled during machining.

Y
X

Z
r

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 rotation axis and its
orthogonal axis, slits, etc., can be machined on the cylinder side.

Develop-
ment 2πr

360°

56
6. Interpolation Functions
6.9 Circular interpolation

Command format

G07.1 Cc ; (Cylindrical interpolation mode start/cancel)


Cc 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 rotation axis is "C". If the name is not "C",
command the name of the rotation axis being used instead of "C".

(1) The coordinates commanded in the interval from the start to cancellation of the cylindrical
interpolation mode will be the cylindrical coordinate system.
G07.1 C Cylinder radius value; Cylindrical interpolation mode start
: (Cylindrical interpolation will start)
: (The coordinate commands in this interval will be
: the cylindrical coordinate system)
G07.1 C0 ; Cylindrical interpolation mode cancel
(Cylindrical interpolation will be canceled)
(2) G107 can be used instead of G07.1.
(3) Command G07.1 in an independent block. A program error (P33) will occur if this command is
issued in the same block as another G code.
(4) Program the rotation axis with an angle degree.
(5) 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.
(6) The coordinates can be commanded with either an absolute command or incremental
command.
(7) Tool radius compensation can be applied on the program command. Cylindrical interpolation will
be executed on the path after tool radius compensation.
(8) Command the segment feed in the cylinder development with F. The F unit is mm/min or
inch/min.

Detailed description

(1) Cylindrical interpolation accuracy


In the cylindrical interpolation mode, the movement amount of the rotation axis commanded
with an angle is converted on the circle periphery, and after operating the linear and circular
interpolation between the other axes, the amount is converted into an angle again.
Thus, the actual movement amount may differ from the commanded value such as when the
cylinder radius is small.
Note that the error generated at this time is not cumulated.

57
6. Interpolation Functions
6.9 Circular interpolation

(2) Related parameters


Setting
# Item Details
range
1516 mill_ax Milling axis Set the name of the rotation axis for milling interpolation A to Z
name (pole coordinate interpolation, cylindrical interpolation).
Only one of the rotation axes can be set.
8111 Milling Radius Select the diameter and radius of the linear axis for milling 0/1
interpolation (pole coordinate interpolation, cylindrical
interpolation).
0: Radius command for all axes
1: Each axis setting (follows #1019 dia diameter
designation axis)
1267 ext03 G code type The type of high-speed high-accuracy G code is changed. 0/1
(PR) (bit0) 0: G61.1 type
1: G8 type
1270 ext06 Handle C Specify whether the rotary axis coordinate before the 0/1
(PR) (bit7) axis cylindrical interpolation start command is issued is kept
coordinate during the cylindrical interpolation or not.
during 0: Do not keep
cylindrical 1: keep
interpolation

(3) Plane selection


The axis used for cylindrical interpolation must be set with the plane selection command.
(Note)
The correspondence of the rotation 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 is issued, a program error (P485) will occur.

58
6. Interpolation Functions
6.9 Circular interpolation

(Example) G19 Z0. C0. ;

G07.1 C100. ;
:
G07.1 C0 ;

Y X Z

Basic
coordinate G17 G18 G19
system
X, Y, Z X Z Y
Y C

Cylindrical
coordinate system
C, Y, Z
G17 G18
(Rotation axis is X
axis' parallel axis)
#1029 C Z
C Z

Cylindrical
coordinate system
X, C, Z G17 G19
(Rotation axis is Y
axis' parallel axis) X C
#1030
X C
Cylindrical
coordinate system
X, Y, C
(Rotation axis is Z G18 G19
axis' parallel axis)
#1031 C Y

(Note) Depending on the model or version, the Z-C plane (Y-Z cylinder plane) will be automatically
selected with G07.1 and G19.
The circular interpolation and tool radius compensation, etc., can be designated on that
plane.

G17 G18 G19


Y X Z
Basic coordinate
system
X,Y,Z
X Z Y

Cylindrical G19
coordinate system

59
6. Interpolation Functions
6.9 Circular interpolation

Relation with other functions

(1) Circular interpolation


(a) Circular interpolation between the rotation axis and linear axis is possible during the
cylindrical interpolation mode.
(b) An R specification command can be issued with circular interpolation. (I, J and K cannot
be designated.)

(2) Tool radius compensation


The tool radius can be compensated during the cylindrical interpolation mode.
(a) Command the plane selection in the same manner as circular interpolation.
When using tool radius compensation, start up and cancel the compensation within the
cylindrical interpolation mode.
(b) A program error (P485) will occur if G07.1 is commanded during tool radius
compensation.
(c) If the G07.1 command is issued with no movement command given after the tool radius
compensation is canceled, the position of the axis in the G07.1 command block is
interpreted as the position applied after the tool radius compensation is canceled and the
following operations are performed.

(3) Cutting asynchronous feed


(a) The asynchronous mode is forcibly set when the cylindrical interpolation mode is started.
(b) When the cylindrical interpolation mode is canceled, the synchronization mode will return
to the state before the cylindrical interpolation mode was started.
(c) A program error (P485) will occur if G07.1 is commanded in the constant surface speed
control mode (G96).

(4) Miscellaneous functions


(a) The miscellaneous function (M) and 2nd miscellaneous function can be issued even in
the cylindrical interpolation mode.
(b) The S command in the cylindrical interpolation mode issues the rotary tool's rotation
speed instead of the spindle rotation speed.
(c) 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 ; ... T command before cylindrical interpolation → Valid
T0 X100. Z0 ;
G19 Z C ;
G07.1 C100. ;
:
T11 ; ... T command in cylindrical interpolation mode →Program error
:
G07.1 C0 ;
(d) When the tool offset is executed by the axis command after the T command, the tool
offset by the T command may be uncompleted. In this case, execute the tool offset by the
axis command during the cylindrical interpolation mode.
Note that a program error (P482) will occur if the cylindrical interpolation command is
issued with the tool offset cancel uncompleted.

60
6. Interpolation Functions
6.9 Circular interpolation

(5) 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).
(a) 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 feedrate after the cylindrical interpolation mode is canceled will remain the F
command feedrate issued when the cylindrical interpolation mode was started or the final
F command feedrate set during cylindrical interpolation.
(b) When G95 is commanded just before G07.1
The previous F command feedrate cannot be used during cylindrical interpolation, thus a
new F command must be issued.
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
Previous mode No F command After G07.1 is canceled
G94 Previous F is used ←
G95 Program error (P62) F just before G07.1 is used

When F is commanded in G07.1


Previous mode No F command After G07.1 is canceled
G94 Commanded F is used ←
G95 Commanded F is used *1 F just before G07.1 is used
*1) Moves with the feed per minute command during G07.1.

61
6. Interpolation Functions
6.9 Circular interpolation

Restrictions and precautions

(1) The following G code commands can be used during the cylindrical interpolation mode.
G code Details
G00 Positioning
G01 Linear interpolation
G02 Circular interpolation (CW)
G03 Circular interpolation (CWW)
G04 Dwell
G09 Exact stop check
G40-42 Tool nose R compensation
G61 Exact stop check mode
G64 Cutting mode
G65 Macro call (simple call)
G66 Macro modal call A (modal call)
G66.1 Macro modal call B (block call per macro)
G67 Macro modal call cancel (modal call cancel)
G80-89 Hole drilling fixed cycle
G90/91 Absolute/incremental value command
G94 Asynchronous feed
G98 Hole drilling cycle initial return
G99 Hole drilling cycle R point return
A program error (P481) may occur if a G code other than those listed above is commanded
during cylindrical interpolation.
(2) The cylindrical interpolation mode is canceled when the power is turned ON or reset.
(3) A program error (P484) will occur if any axis commanded for cylindrical interpolation has not
completed zero point return.
(4) Tool radius compensation must be canceled before the cylindrical interpolation mode can be
canceled.
(5) 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.
(6) The program of the block during the cylindrical interpolation cannot be restarted (program
restart).
(7) A program error (P486) will occur if the cylindrical interpolation command is issued during the
mirror image.
(8) When the cylindrical interpolation mode is started or canceled, the deceleration check is
performed.
(9) A program error (P486) will occur if the cylindrical interpolation or the pole coordinate
interpolation is commanded during the cylindrical interpolation mode.

62
6. Interpolation Functions
6.9 Circular interpolation

Example of program

<Program>
<Parameter>
N01 G28XZC; #1029 aux_I
N02 T02; #1030 aux_J C
N03 G97S100M23; #1031 aux_K
N04 G00X50.Z0.;
N05 G94G01X40.F100.;
N06 G19C0Z0; Command of plane selection for cylindrical interpolation
and command of two interpolation axes
N07 G07.1C20.;
Cylindrical interpolation start
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;
Cylindrical interpolation cancel
N18 G01X50.;
N19 G0X100.Z100.;
-80 -60 -40 -20 (Unit: mm)
N20 M25;
Z
N21 M30;
50
N10
N09
100

150

200
N11
250
N13
N12 N14
300
350°
N15

63
6. Interpolation Functions
6.10 Pole coordinate interpolation

6.10 Pole coordinate interpolation; G12.1


Function and purpose

This function converts the commands programmed with the orthogonal coordinate axis into linear
axis movement (tool movement) and rotation 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 (hereafter "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

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

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

64
6. Interpolation Functions
6.10 Pole coordinate interpolation

Command format

G12.1 ; Pole coordinate interpolation mode start

G13.1 ; Pole coordinate interpolation mode cancel

(1) 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 ; Pole coordinate interpolation mode start
: (Pole coordinate interpolation will start)
: (The coordinate commands in this interval will be the pole coordinate
: interpolation)
G13.1 ; Pole coordinate interpolation mode cancel
(Pole coordinate interpolation is canceled)
(2) G112 and G113 can be used instead of G12.1 and G13.1.
(3) Command G12.1 and G13.1 in an independent block. A program error (P33) will occur if this
command is issued in the same block as another G code.
(4) Linear interpolation or circular interpolation can be commanded during the pole coordinate
interpolation mode.
(5) The coordinates can be commanded with either an absolute command or incremental
command.
(6) Tool radius compensation can be applied on the program command. Pole coordinate
interpolation will be executed on the path after tool radius compensation.
(7) Command the segment feed in the pole coordinate interpolation plane (orthogonal coordinate
system) with F. The F unit is mm/min or inch/min.
(8) When the G12.1 and G13.1 commands are issued, the deceleration check is executed.

Detailed description

(1) Plane selection


The linear axis and rotation 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 Deemed plane
X G17 (XY plane)
Y G19 (YZ plane)
Z G18 (ZX plane)
Blank (no setting) 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.
(Note) Depending on the model or version, parameter (#1533) may not be provided. In this case,
the operation will be the same as if the parameter (#1533) is blank (no setting).

65
6. Interpolation Functions
6.10 Pole coordinate interpolation

(2) Related parameters


Setting
# Item Details
range
1516 mill_ax Milling axis Set the name of the rotation axis for milling interpolation A to Z
name (pole coordinate interpolation, cylindrical interpolation).
Only one of the rotation axes can be set.
1517 mill_c Milling Select the hypothetical axis command name for milling 0/1
interpolation interpolation (pole coordinate interpolation, cylindrical
hypothetical interpolation).
axis name 0: Y axis command
1: Command rotation axis name
8111 Milling Radius Select the diameter and radius of the linear axis for 0/1
milling interpolation.
0: Radius command for all axes
1: Each axis setting (follows #1019 dia diameter
designation axis)

Relation with other functions

(1) Program commands during pole coordinate interpolation


(a) The program commands in the pole coordinate interpolation mode are commanded with
the orthogonal coordinate value of the linear axis and rotation axis (hypothetical axis) on
the pole coordinate interpolation plane.
The axis address of the rotation axis (C) is commanded as the axis address for the
plane's 2nd axis (hypothetical axis) command.
The command unit is not deg (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).
(b) 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.

(2) 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 Center designation command
X I, J (pole coordinate plane is interpreted as XY plane)
Y J, K (pole coordinate plane is interpreted as YZ plane)
Z K, I (pole coordinate plane is interpreted as ZX plane)
Blank (no setting) I, J (pole coordinate plane is interpreted as XY plane)
The arc radius can also be designated with the R command.
(Note) Depending on the model or version, parameter (#1533) may not be provided. In this case,
the operation will be the same as if the parameter (#1533) is blank (no setting).

(3) Tool radius compensation


The tool radius can be compensated during the pole coordinate interpolation mode.
(a) Command the plane selection in the same manner as pole coordinate interpolation.
When using tool radius compensation, it must be started up and canceled within the pole
coordinate interpolation mode.
(b) A program error (P485) will occur if pole coordinate interpolation is executed during tool
radius compensation.
(c) If the G12.1 and G13.1 commands are issued with no movement command given after
the tool radius compensation is canceled, the position of the axis in the G12.1 and G13.1
commands block is interpreted as the position applied after the tool radius compensation
is canceled and the following operations are performed.

66
6. Interpolation Functions
6.10 Pole coordinate interpolation

(4) Cutting asynchronous feed


(a) The asynchronous mode is forcibly set when the pole coordinate interpolation mode is
started.
(b) When the pole coordinate interpolation mode is canceled, the synchronization mode will
return to the state before the pole coordinate interpolation mode was started.
(c) A program error (P485) will occur if G12.1 is commanded in the constant surface speed
control mode (G96).

(5) Miscellaneous functions


(a) The miscellaneous function (M) and 2nd miscellaneous function can be issued even in
the pole coordinate interpolation mode.
(b) The S command in the pole coordinate interpolation mode issues the rotary tool's rotation
speed instead of the spindle rotation speed.
(c) 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 ; ... T command before pole coordinate interpolation → Valid
G0 X100. Z0 ;
G12.1 ;
:
T11 ; ... T command in pole coordinate interpolation mode → Program error
:
G13.1 ;
(d) When the tool offset is executed by the axis command after the T command, the tool
offset by the T command may be uncompleted. In this case, execute the tool offset by the
axis command during the pole coordinate interpolation mode.
If a command is issued to even one axis of two hypothetical axes, which forms the pole
coordinate plane, by the axis command during the pole coordinate interpolation mode, it
is changed into the command for two actual axes.
Note that a program error (P482) will occur if the pole coordinate interpolation command
is issued with the tool offset cancel uncompleted.

67
6. Interpolation Functions
6.10 Pole coordinate interpolation

(6) 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).
(a) 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 feedrate after the pole coordinate interpolation mode is canceled will remain the F
command feedrate issued when the pole coordinate interpolation mode was started or
the final F command feedrate set during pole coordinate interpolation.
The previous F command feedrate cannot be used during pole coordinate interpolation.
(b) When G95 is commanded just before G12.1
The previous F command feedrate cannot be used during pole coordinate interpolation. A
new F command must be issued.
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


Previous mode No F command After G13.1 is canceled
G94 Previous F is used ←
G95 Program error (P62) F just before G12.1 is used

When F is commanded in G12.1


Previous mode No F command After G07.1 is canceled
G94 Commanded F is used ←
G95 Commanded F is used *1 F just before G12.1 is used
*1) Moves with the feed per minute command during G12.1.

(7) Hole drilling axis in the hole drilling fixed cycle command during the pole coordinate
interpolation
Hole drilling axis in the hole drilling fixed cycle command during the pole coordinate
interpolation is determined with the linear axis parameter (# 1533).
#1533 setting value Hole drilling axis
X Z (pole coordinate plane is interpreted as XY plane)
Y X (pole coordinate plane is interpreted as YZ plane)
Z Y (pole coordinate plane is interpreted as ZX plane)
Blank (no setting) Z (pole coordinate plane is interpreted as XY plane)

(8) Shift amount in the G76 (fine boring) or G87 (back boring) command during the pole
coordinate interpolation
Shift amount in the G76 (fine boring) or G87 (back boring) command during the pole
coordinate interpolation is determined with the linear axis parameter (#1533).
#1533 setting value Center designation command
X I, J (pole coordinate plane is interpreted as XY plane)
Y J, K (pole coordinate plane is interpreted as YZ plane)
Z K, I (pole coordinate plane is interpreted as ZX plane)
Blank (no setting) I, J (pole coordinate plane is interpreted as XY plane)

68
6. Interpolation Functions
6.10 Pole coordinate interpolation

Restrictions and precautions

(1) The following G code commands can be used during the pole coordinate interpolation mode.
G code Details
G00 Positioning
G01 Linear interpolation
G02 Circular interpolation (CW)
G03 Circular interpolation (CWW)
G04 Dwell
G09 Exact stop check
G40-42 Tool nose R compensation
G61 Exact stop check mode
G64 Cutting mode
G65 Macro call (simple call)
G66 Macro modal call A (modal call)
G66.1 Macro modal call B (block call per macro)
G67 Macro modal call cancel (modal call cancel)
G80-89 Hole drilling fixed cycle
G90/91 Absolute/incremental value command
G94 Asynchronous feed
G98 Hole drilling cycle initial return
G99 Hole drilling 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.
(2) The program cannot be restarted (resumed) for a block in pole coordinate interpolation.
(3) Before commanding pole coordinate interpolation, set the workpiece coordinate system so
that the center of the rotation 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.)
(4) 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 rotation axis on the pole coordinate interpolation plane
(orthogonal coordinate system), the rotation axis side feedrate after pole coordinate
interpolation will be very high.
(5) The axis movement command outside of the plane during pole coordinate interpolation will
move unrelated to the pole coordinate interpolation.
(6) The current position displays during pole coordinate interpolation will all indicate the actual
coordinate value. However, the "remaining movement amount" will be the movement amount
on the pole coordinate input plane.
(7) The pole coordinate interpolation mode will be canceled when the power is turned ON or
reset.
(8) A program error (P484) will occur if any axis commanded for pole coordinate interpolation has
not completed zero point return.
(9) Tool radius compensation must be canceled before the pole coordinate interpolation mode
can be canceled.
(10) 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.
(11) A program error (P486) will occur if the pole coordinate interpolation command is issued
during the mirror image.
(12) A program error (P486) will occur if the cylindrical interpolation or the pole coordinate
interpolation is commanded during the pole coordinate interpolation mode.

69
6. Interpolation Functions
6.10 Pole coordinate interpolation

Example of program

Hypothetical C axis

X axis
C axis

Z axis

Hypothetical C axis

C axis

N06 N05 Tool

N04
N01
N03 N02
X axis
N10 N11
N07

N08 N09

Path after tool radius compensation


Program path

<Program>
:
:
N00 T01;
:
:
N01 G17 G90 G0 X40.0 C0 Z0; Setting of start position
N02 G12.1; Pole coordinate interpolation mode: Start
N03 G1 G42 X20.0 F2000; Actual machining start
N04 C10.0;
N05 G3 X10.0 C20.0 R10.0;
N06 G1 X-20.0; Shape program
N07 C-10.0;
N08 G3 X-10.0 C-20.0 I10.0 J0; (Follows orthogonal coordinate values on X-C
N09 G1 X20.0; hypothetical axis plane.)
N10 C0;
N11 G40 X40.0;
N12 G13.1; Pole coordinate interpolation mode: Cancel
:
:
M30 ;

70
6. Interpolation Functions
6.11 Exponential function interpolation

6.11 Exponential function interpolation; G02.3, G03.3


Function and purpose

Exponential function interpolation changes the rotation axis into an exponential function shape in
respect to the linear axis movement.
At this time, the other axes carry out linear interpolation between the linear axis.
This allows a machining of a taper groove with constant torsion angle (helix angle) (uniform helix
machining of taper shape).
This function can be used for slotting or grinding a tool for use in an end mill, etc.

• Uniform helix machining of taper shape

Z axis (G00)

(G01)
(G01)
(G02.3/G03.3)

A axis
(Rotation axis)
J1 J2 J3
X axis

(Linear axis)

Torsion angle: J1=J2=J3

• Relation of linear axis and rotation axis

"Relation of linear axis and rotation axis"

X axis X=B (eCA-1)


(Linear axis) {B, C ... constant}

A axis
(Rotation axis)

71
6. Interpolation Functions
6.11 Exponential function interpolation

Command format

G02.3/G03.3 Xx1 Yy1 Zz1 Ii1 Jj1 Rr1 Ff1 Qq1 ;


G02.3 Forward rotation interpolation
G03.3 Negative rotation interpolation
X X axis end point (Note 1)
Y Y axis end point (Note 1)
Z Z axis end point (Note 1)
I Angle i1 (Note 2)
J Angle j1 (Note 2)
R Constant value r1 (Note 3)
F Initial feedrate (Note 4)
Q Feedrate at end point (Note 5)
(Note 1) Designate the end point of the linear axis designated with parameter “#1514 expLinax” and
the axis that carries out linear interpolation between that axis.
If the end point on of the rotation axis designated with parameter “#1515 expRotax” is
designated, linear interpolation without exponential function interpolation will take place.

(Note 2) The command unit is as follows.


Setting unit #1003=B #1003=C
(Unit = °) 0.001 0.0001
The command range is –89 to +89°.
A program error (P33) will occur if there is no address I or J command.
A program error (P35) will occur if the address I or J command value is 0.

(Note 3) The command unit is as follows.


Setting unit #1003=B #1003=C Unit
Metric system 0.001 0.0001 mm
Inch system 0.0001 0.00001 inch
The command range is a positive value that does not include 0.
A program error (P33) will occur if there is no address R command.
A program error (P35) will occur if the address R command value is 0.

(Note 4) The command unit and command range is the same as the normal F code. (Command
as a per minute feed.)
Command the composite feedrate that includes the rotation axis.
The normal F modal value will not change by the address F command.
A program error (P33) will occur if there is no address F command.
A program error (P35) will occur if the address F command value is 0.

(Note 5) The command unit is as follows.


Setting unit #1003=B #1003=C Unit
Metric system 0.001 0.0001 mm
Inch system 0.0001 0.00001 inch
The command unit and command range is the same as the normal F code.
Command the composite feedrate that includes the rotation axis.
The normal F modal value will not change by the address Q command.
The axis will interpolate between the initial speed (F) and end speed (Q) in the CNC
according to the linear axis.
If there is no address Q command, interpolation will take place with the same value as
the initial feedrate (address F command). (The start point and end point feedrates will be
the same.)
A program error (P35) will occur if the address Q command value is 0.

72
6. Interpolation Functions
6.11 Exponential function interpolation

• Example of uniform helix machining of taper shape

Z axis Z axis

i1

r1 A axis

x0 j1 x1

Linear axis ... X axis, rotation axis ... A axis, linear axis (X axis) start point ... x0

Relational expression of exponential function

The exponential function relational expression of the linear axis (X) and rotation axis (A) in the
G02.3/G03.3 command is defined in the following manner.

X (θ) = r1 ∗ (eθ/D– 1) / tan (i1) (linear axis (X) movement (1))


A (θ) = (–1)ω ∗ 360 ∗ θ / (2π) (rotation axis (A) movement)

D = tan (j1) / tan (i1)


ω = 0 during forward rotation (G02.3), and ω = 1 during reverse rotation (G03.3)
θ is the rotation angle (radian) from the rotation axis' start point
The rotation axis' rotation angle (θ) is as follows according to expression (1).
θ = D ∗ 1n { (X ∗ tan (i1) / r1) + 1 }

73
6. Interpolation Functions
6.11 Exponential function interpolation

Machining example

• Example of uniform helix machining of taper shape

Z axis

i1
z1
z2 p1
z0 A axis
X axis

x0 x2 j1 x1
r2 r1

<Relational expression of exponential function in machining example>


Z (θ) = r1 ∗ (eθ/D–1) ∗ tan (p1) / tan (i1) + z0 ... (1)
X (θ) = r1 ∗ (eθ/D–1) / tan (i1) ... (2)
A (θ) = (–1) ω ∗ 360 ∗ θ / (2π)

D = tan (j1) / tan (i1)


Z ( θ) Absolute value from zero point of Z axis (axis that linearly interpolates between interval
with linear axis (X axis))
X ( θ) Absolute value from X axis (linear axis) start point
A ( θ) Absolute value from A axis (rotation axis) start point
r1 Exponential function interpolation constant value (address R command)
r2 Workpiece left edge radius
x2 X axis (linear axis) position at workpiece left edge
x1 X axis (linear axis) end point (address X command)
x0 X axis (linear axis) start point (Set as "x0 ≤ x1" so that workpiece does not interfere with
tool)
z1 End point of Z axis (axis that linearly interpolates between interval with linear axis (X
axis)) (address Z command)
z0 Start point of Z axis (axis that linearly interpolates between interval with linear axis (X
axis))
i1 Taper gradient angle (address I command)
p1 Slot base gradient angle
j1 Torsion angle (helix angle) (address J command)
ω Torsion direction (0: Forward rotation, 1: reverse direction)
θ Workpiece rotation angle (radian)
f1 Initial feedrate (address F command)
q1 Feedrate at end point (address Q command)
k1 Insignificant data (address K command)

According to expressions (1) and (2):


Z (θ) = X (θ) ∗ tan (p1) + z0 ... (3)
According to expression (3), the slot base gradient angle (p1) is determined from the X axis and Z
axis end point positions (x1, z1).
The Z axis movement amount is determined by the slot base gradient angle (p1) and X axis
position.
In the above diagram, the exponential function interpolation's constant value (r1) is determined
with the following expression using the workpiece left edge radius (r2), X axis start point (x0), X
axis position at workpiece left edge (x2) and taper gradient angle (i1).
r1 = r2 – { (x2 – x0) ∗ tan (i1) }

74
6. Interpolation Functions
6.11 Exponential function interpolation

The taper gradient angle (i1) and torsion angle (j1) are each issued with the command address I
and J.
Note that if the shape is a reverse taper shape, the taper gradient angle (i1) is issued as a negative
value.
The torsion direction (ω) is changed with the G code. (Forward rotation when G02.3 is commanded,
negative rotation when G03.3 is commanded)
The above settings allow uniform helix machining of a taper shape (or reverse taper shape).

Command and operation

G2.3(Equivalent to G3.3 if j1<0)


X movement direction > 0 X movement direction < 0
i1>0 i1<0 i1>0 i1<0
+ + Z
i1 i1 i1 Z i1
Z Z -
-
End Start
Command

point Start End


Start End point
Start point End point
j1 j1 j1 point point j1
point point

r1 r1 X r1 X r1
X X

A A A A
Operation

X X X X

N10 G28XYZC; N10 G28XYZC; N10 G28XYZC; N10 G28XYZC;


program example

N20 G91G0 X100. Z100.; N20 G91G0 X100. Z200.; N20 G91G0 X-100. Z100.; N20 G91G0 X-100. Z200.;
Machining

N30 G2.3 X100. Z100. N30 G2.3 X100. Z-100. N30 G2.3 X-100. Z100. N30 G2.3 X-100. Z-100.
I50. J80. R105. F500.; I-50. J80. R105. F500.; I50. J80. R105. F500.; I-50. J80. R105. F500.;
N40 M30; N40 M30; N40 M30; N40 M30;

G3.3(Equivalent to G2.3 if j1<0)


X movement direction > 0 X movement direction < 0
i1>0 i1<0 i1>0 i1<0
+ + Z
i1 Z i1
Z Z i1
- -
End
End Start Start
Command

point
point point point
Start End Start End
point j1 j1 point j1 point point j1

r1 r1 r1 X r1
X X X

A A A A
Operation

X X X X

N10 G28XYZC; N10 G28XYZC; N10 G28XYZC; N10 G28XYZC;


program example

N20 G91G0 X100. Z100.; N20 G91G0 X100. Z200.; N20 G91G0 X-100. Z100.; N20 G91G0 X-100. Z200.;
Machining

N30 G3.3 X100. Z100. N30 G3.3 X100. Z-100. N30 G3.3 X-100. Z100. N30 G3.3 X-100. Z-100.
I50. J80. R105. F500.; I-50. J80. R105. F500.; I50. J80. R105. F500.; I-50. J80. R105. F500.;
N40 M30; N40 M30; N40 M30; N40 M30;

75
6. Interpolation Functions
6.11 Exponential function interpolation

Precautions for programming

(1) When G02.3/G03.3 is commanded, interpolation takes place with the exponential function
relational expression using the start position of the linear axis and rotation axis as 0.
(2) Linear interpolation will take place in the following cases, even if in the G02.3/G03.3 mode.
The feedrate for linear interpolation will be the F command in that block. (Note that the normal
F modal is not updated.)
• The linear axis designated with the parameter (#1514 expLinax) is not commanded, or the
movement amount for that axis is 0.
• The rotation axis designated with the parameter (#1515 expRotax) is commanded.
(3) Tool length offset and tool radius compensation cannot be used during the G02.3/G03.3 mode.
Note that the tool length offset started before interpolation is started before the G02.3/G03.3
mode will normally continue.
(4) A program error will occur if commands are issued during the pole coordinate interpolation,
cylindrical interpolation or milling interpolation modes.
(5) G02.3/G03.3 will function with asynchronous feed even during the synchronous feed mode.
(6) If the parameter "#1515 expRota" setting is the same axis name as the initial C axis, the axis
selected with the C axis selection signal will interpolate as the rotation axis.

76
6. Interpolation Functions
6.12 Polar coordinate command

6.12 Polar coordinate command; G16


Function and purpose

With this function, the end point coordinate value is commanded with the polar coordinate of the
radius and angle.

Command format

G16 ; Polar coordinate command mode ON

G15 ; Polar coordinate command mode OFF


(1) The polar coordinate command is applied in the interval from turning ON to OFF of the polar
coordinate command mode.
G1x ; Plane selection for polar coordinate command (G17/G18/G19)
G16 ; Polar coordinate command mode ON
G9x G01 Xx1 Yy1 F2000 ; Polar coordinate command
: G9x : Center selection for polar coordinate command (G90/G91)
G90 • • •The workpiece coordinate system zero point is the
polar coordinate center.
G91 • • •The present position is the polar coordinate center.
x1 : 1st axis for the plane • • •The radius commanded
y1 : 2nd axis for the plane • • •The angle commanded
Y

Commanded position
x1
Plus

Minus Present position


y1

X
For G90/G17(X-Y plane)

G15 ; Polar coordinate command mode OFF


(2) The plane selection during the polar coordinate command mode is carried out with G17, G18
and G19.
(3) The polar coordinate command is a modal. The polar coordinate command mode when the
power is turned ON is OFF (G15). Whether to initialize the modal at reset or not can be
selected with the parameter (#1210 RstGmd/bit 11) setting.
(4) During polar coordinate command mode, command the radius with the 1st axis for the
selected plane, and the angle with the 2nd axis. For example, when the X-Y plane is selected,
command the radius with the address "X", and the angle with the address "Y".
(5) For the angle, the counterclockwise direction of the selected plane is positive and the
clockwise direction is negative.
(6) The radius and angle can be commanded with both the absolute value and incremental value
(G90, G91).
(7) When the radius is commanded with the absolute value, command the distance from the zero
point in the workpiece coordinate system (note that the local coordinate system is applied
when the local coordinate system is set).

77
6. Interpolation Functions
6.12 Polar coordinate command

(8) When the radius is commanded with the incremental value command, considering the end
point of the previous block as the polar coordinate center, command the incremental value
from that end point. The angle is commanded with the incremental value of the angle from the
previous block.
(9) When the radius is commanded with the negative value, the same operation as the command
that the radius command value is changed to the absolute value and 180° is added to the
angle command value.

Command position

(1) When the zero point in the workipiece coordinate system is applied to the polar
coordinate center
The zero point in the workipiece coordinate system is applied to the polar coordinate center by
commanding the radius value with the absolute value. Note that the zero point in the local
coordinate system is applied to the polar coordinate center if the local coordinate system
(G52) is used.

Command position Command position


Radius
Radius

Present Present
Angle Angle
position position

When the angle is the absolute When the angle is the incremental
value command value command

Command position when the zero point in the workipiece coordinate system is applied to
the polar coordinate center

(2) When the present position is applied to the polar coordinate center
The present position is applied to the polar coordinate center by commanding the radius value
with the incremental value.

Command position Command position

Radius Angle
Radius

Angle

Present Present
position position

When the angle is the absolute When the angle is the incremental
value command value command

Command position when the present position is applied to the polar coordinate center

78
6. Interpolation Functions
6.12 Polar coordinate command

(3) When the radius value command is omitted


When the radius value command is omitted, the zero point in the workipiece coordinate
system is applied to the polar coordinate center. Note that the zero point in the local
coordinate system is applied to the polar coordinate center if the local coordinate system
(G52) is used.

Command position Command position

Present
Angle Present
position Angle position
Radius Radius

When the angle is the absolute When the angle is the incremental
value command value command

Command position when the radius value command is omitted

(4) When the angle command is omitted


When the angle command is omitted, the angle of the present position in the workpiece
coordinate system is applied to the angle command.
The zero point in the workipiece coordinate system is applied to the polar coordinate center by
commanding the radius value with the absolute value. Note that the zero point in the local
coordinate system is applied to the polar coordinate center if the local coordinate system
(G52) is used.
If the radius value is commanded with the incremental value, the present position is applied to
the polar coordinate center.

Command position Command position

Angle
Angle

Present position Present position

Radius Radius

When the radius is the absolute When the radius is the incremental
value command value command

Command position when the angle command is omitted

79
6. Interpolation Functions
6.12 Polar coordinate command

Axis command not interpreted as the polar coordinate command

The axis command with the following command is not interpreted as the polar coordinate
command during the polar coordinate command mode. The movement command that has no axes
commands for the 1st axis and 2nd axis in the selected plane mode is also not interpreted as polar
coordinate command during the polar coordinate command mode.
Function G code
Dwell G04
Program parameter G10
input/compensation input
Local coordinate system setting G52
Machine coordinate system setting G92
Machine coordinate system selection G53
Coordinate rotation by program G68
Scaling G51
G command mirror image G51.1
Reference point check G27
Reference point return G28
Start point return G29
2nd to 4th reference point return G30
Tool change position return 1 G30.1
Tool change position return 2 G30.2
Tool change position return 3 G30.3
Tool change position return 4 G30.4
Tool change position return 5 G30.5
Tool change position return 6 G30.6
Automatic tool length measurement G37
Skip G31
Multi-skip function 1 G31.1
Multi-skip function 2 G31.2
Multi-skip function 3 G31.2
Linear angle command G01 Aa1

80
6. Interpolation Functions
6.12 Polar coordinate command

Example of program

When the zero point in the workpiece coordinate system is the polar coordinate zero point

Y • The polar coordinate zero point is the


zero point in the workpiece coordinate
system.
• The plane is the X-Y plane.
N3

N2
120°

30°
270° X

200mm

N4

(1) When the radius value and angle are the absolute value command
N1 G17 G90 G16 ; Polar coordinate command, X-Y plane selection
The polar coordinate zero point is the zero point
in the workpiece coordinate system.
N2 G85 X200. Y30. Z-20. F200. ; Radius 200mm, angle 30°
N3 Y120. ; Radius 200mm, angle 120°
N4 Y270. ; Radius 200mm, angle 270°
N5 G15 G80 ; Polar coordinate command cancel

(2) When the radius value is the absolute value command and the angle is the incremental
value command
N1 G17 G90 G16 ; Polar coordinate command, X-Y plane selection
The polar coordinate zero point is the zero point
in the workpiece coordinate system.
N2 G85 X200. Y30. Z-20. F200. ; Radius 200mm, angle 30°
N3 G91 Y90. ; Radius 200mm, angle + 90°
N4 Y150. ; Radius 200mm, angle +150°
N5 G15 G80 ; Polar coordinate command cancel

81
6. Interpolation Functions
6.12 Polar coordinate command

Precautions

(1) If the following commands are carried out during the polar coordinate command mode, or if the
polar coordinate command is carried out during the following command mode, an program
error (P34) will occur.
Function G code
High-speed machining mode 3 G05 P3
High-speed high-accuracy G05.1 Q1
control I
High-speed high-accuracy G05 P10000
control II
Spline G05.1 Q2
(2) When the mirror image (G code/parameter/external signal) is canceled anywhere except at
the mirror image center during the polar coordinate command mode, the absolute value and
machine position will deviate. The mirror center is set with an absolute value and so if another
mirror center is assigned in this state, the center may be set at an unforeseen position.
Cancel the mirror image above the mirror center or, after cancellation, assign a positioning
command using absolute value command that the radius and angle of the polar coordinate
command are designated.

82
6. Interpolation Functions
6.13 Spiral Interpolation

6.13 Spiral Interpolation; G02.1/G03.1


Function and purpose

This function carries out interpolation that smoothly joins the start and end points in a spiral. This
interpolation is carried out for arc commands such as those in which the start point and end point
are not on the same circumference.

Command format

G17 G02.1/G03.1 Xx Yy Ii Jj Pp Ff ;
G17 :Rotation plane
G02.1/G03.1 :Arc rotation direction
Xx Yy :End point coordinates
Ii Jj :Arc center value
Pp :Number of pitches (number of rotations)
Ff :Feedrate (tool path direction speed)

Circular interpolation operations are carried out at the f1 speed by the commands above.
The path is toward the end point, following a spiral arc path centered at the position designated by
distance i (X axis direction) and distance j (Y axis direction) in respect to the start point.

(1) The arc plane is designated by G17, G18 and G19.


G17 · · · · XY plane
G18 · · · · ZX plane
G19 · · · · YZ plane

(2) The arc rotation direction is designated by G02.1 or G03.1.


G02.1 · · · Clockwise (CW)
G03.1 · · · Counterclockwise (CCW)

(3) P designates the number of pitches (number of rotations). p1 = 0 is less than one rotation and
can be omitted. p1 = 1 is more than one rotation and less than two rotations. The command
range is from 0 to 9999.

Detailed description

(1) The arc rotation direction G02.1 is the same as G02, and G03.1 is the same as G03.
(2) There are no R-designated arcs in spiral interpolation.
(3) Conical cutting, tapered thread-cutting and other such machining operations can be
conducted by changing the start point and end point radius and commanding the linear axis
simultaneously.
(4) Normally the spiral interpolation is automatically enabled with the arc commands (G02, G03)
when the difference between the start point radius and the end point radius is less than the
parameter setting value.
(5) The axis combination that can be simultaneously commanded depends on the specifications.
The combination within that range is random.
(6) The feedrate is the constant tangential speed.
(7) Simultaneous control by combining with tool radius compensation (G41, G42) is not possible.

83
6. Interpolation Functions
6.13 Spiral Interpolation

(8) The arc plane always follows G17, G18 and G19. The plane arc control is carried out by G17,
G18 and G19, even if designated by two addresses that do not match the plane.
(9) When an axis designation other than the spiral interpolation plane is simultaneously
designated, other axes are also interpolated in synchronization with the spiral interpolation.

Example of program

(Example 1)
G91 G17 G01 X60. F500 ; Y

Y140. ;
G02.1 X60. Y0 I100. P1 F300 ; End
G01 X−120 ; 140.
point Center
Start
G90 point

G17 G01 X60. F500 ;


Y140. ; X60.
G02.1 X120. Y140. I100. P1 F300 ; I100.
G01 X0 ; 60.
W 120. 160. X

(Example 2)
G91 G17 G01 X60. F500 ;
Y140. ;
G02.1 X60.0 Z100.0 I100. P1 F300 ;→ Because this is the G17 plane, arc control
G01 X−120 ; is not carried out by X-Z.
Arc control is carried out by X-Y.

(Example 3) In this examples, the interpolation is truncated cone interpolation.


G17 G91 G02.1 X100. Z150. I150. P3 F500 ;
Y

XY
plane
X
W

Z Z
XZ
plane
X
X
W

84
7. Feed Functions
7.1 Rapid traverse rate

7. Feed Functions
7.1 Rapid traverse rate
Function and purpose

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 unit of 1µm. 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


Function and purpose

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, G02.1 and G03.1 commands.

(Examples)
Feedrate
G1 X100. Y100. F200 ; 200.0mm/min F200 or F200.000 gives the same rate.
G1 X100. Y100. F123.4 ; 123.4mm/min
G1 X100. Y100. F56.789 ; 56.789mm/min
Speed range that can be commanded (when input setting unit is 1µm or 10µm)
Command mode F command range Feed rate command range Remarks
mm/min 0.001 to 1000000.000 0.01 to 1000000 mm/min
inch/min 0.0001 to 39370.0787 0.001 to 100000 inch/min
°/min 0.001 to 1000000.000 0.01 to 1000000 °/min
(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.

85
7. Feed Functions
7.3 F1-digit feed

7.3 F1-digit feed


Function and purpose

By setting the F1-digit feed parameter, the feedrate which has been set to correspond to the 1-digit
number following the F address serves as the command value.
When F0 is assigned, the rapid traverse rate is established and the speed is the same as for G00.
(G modal does not change.)
When F1 to F5 is assigned, the feedrate set to correspond to the command serves as the
command value.
The command greater than F6 is considered to be the normal cutting feedrate.
The F1-digit command is valid in a G01, G02, G03, G02.1 or G03.1 modal.
The F1-digit command can also be used for fixed cycle.

Detailed description

The override function of the feedrate which is set in accordance to the F1-digit is performed by
using the manual handle.
The amount by which the feedrate can be increased or reduced is determined by the following
formula.

FM
±∆F = × (±number of manual handle pulse generator pulses)
K
Where "+" means increase, and "–" means reduction.
K : Operation constant (This is the number of FM divisions, and is the calculated constant of
the increment/decrement speed per scale of the manual handle pulse generator.)
This is set with the base specification parameter "#1507 F1_K".
FM : This is the clamp speed of F1 to F5
This is set with the base specification parameter "#1506 F1_FM".
Set the corresponding speed of F1 to F5 with the base specification parameters "#1185 spd_F1" to
"#1189 spd_F5" respectively.
The increase/reduction range is from "0" to the set value of the parameter "#1506 F1_FM".
Operation alarm "104" will occur when the feedrate is 0.

(1) Operation method

(a) Make the F1-digit command valid. (Set the base specification parameter "#1079 F1digt" to
1.)
(b) Set FM and K.
Setting range
K : 1 to 32767 (Base specification parameter "#1507 F1_K")
FM : 0 to Fmax (mm/min) (Base specification parameter "#1506 F1_FM")

(c) Set F1 to F5. (Base specification parameter "1185 spd_F1" to "#1189 spd_F5")

86
7. Feed Functions
7.3 F1-digit feed

(2) Special notes

(a) Use of both the F1-digit command and normal cutting feedrate command is possible when
the F1-digit is valid.
(Example 1)
F0 Rapid traverse rate
F1 to F5 F1-digit
F6 or more Normal cutting feedrate command
(b) F1 to F5 are invalid in the G00 mode and the rapid traverse rate is established instead.
(c) If F0 is used in the G02 or G03 mode, a program error (P121) will result.
(d) When F1. to F5. (with decimal point) are assigned, the 1mm/min to 5mm/min direct
commands are established instead of the F1-digit command.
(e) When the commands are used with the millimeter or degree units, the feedrate set to
correspond to F1 to F5 serves as the assigned speed mm (°)/min.
(f) When the commands are used with inch units, one-tenth of the feedrate set correspond to
F1 to F5 serves at the assigned speed inch/min.
(g) The number of manual handle pulses is 1 pulse per scale unit regardless of the scaling
factor.
(h) During a F1-digit command, the F1-digit number and F1-digit command signal are output
as the PLC signals.

(3) F1-digit and G commands

(a) 01 group G command in same block as F1-digit commands


Executed feedrate Modal display rate G modal
G0F0
Rapid traverse rate 0 G0
F0G0
G0F1
Rapid traverse rate 1 G0
F1G0
G1F0
Rapid traverse rate 0 G1
F0G1
G1F1
F1 contents 1 G1
F1G1

(b) F1-digit and unmodal commands may be assigned in the same block. In this case, the
unmodal command is executed and at the same time the F1-digit modal command is
updated.

(4) Example of arithmetic constant K setting


When the handle scale unit is to be made ±10mm/min.
FM is made 15000 mm/min:
15000
∆F = 10 =
K
Therefore, K is 1500.
The feed rate is made F (1 to 5) ±10 (mm/min) by rotating the handle through one scale
unit.

(5) Valid manual handle conditions


The manual handle is valid during cutting feed (F1 to F5), automatic start, F1-digit valid and
manual handle valid switch ON at the machine side as well as in the MDI mode, tape mode or
memory mode provided that the machine lock (machine lock rapid traverse) or dry run status
has not been established.
The function cannot be used when the handle specifications have not been provided.

87
7. Feed Functions
7.4 Synchronous feed

7.4 Synchronous feed; G94, G95


Function and purpose

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.

Command format

G94;
G95;
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.

Metric input
Input unit
B (0.001mm) C (0.0001mm)
system
Command
Feed per minute Feed per rotation Feed per minute Feed per rotation
mode
Command
F (mm/min) E (mm/rev) F (mm/min) E (mm/rev)
address
Minimum 1 (= 1.00), 1 (= 0.01), 1 (= 1.000), 1 (= 0.01),
command unit (1. = 1.00) (1. = 1.00) (1. = 1.000) (1. = 1.00)
Command
0.01 to 1000000.00 0.001 to 999.999 0.001 to 100000.000 0.0001 to 99.9999
range

Inch input
Input unit
B (0.0001inch) C (0.00001inch)
system
Command
Feed per minute Feed per rotation Feed per minute Feed per rotation
mode
Command
F (inch/min) E (inch/rev) F (inch/min) E (inch/rev)
address
Minimum 1 (= 1.000), 1 (= 0.001), 1 (= 1.0000), 1 (= 0.001),
command unit (1. = 1.000) (1. = 1.000) (1. = 1.0000) (1. = 1.000)
Command 0.0001 to
0.001 to 100000.0000 0.0001 to 999.9999 0.00001 to 99.99999
range 10000.00000

(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 = Effective rate (mm/min, inch/min)
F = Commanded feedrate (mm/rev, inch/rev)
N = Spindle speed (r/min)
OVR = 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.

88
7. Feed Functions
7.4 Synchronous feed

(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".

89
7. Feed Functions
7.5 Feedrate designation and effects on control axes

7.5 Feedrate designation and effects on control axes


Function and purpose

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.

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.
Y

x
Feedrate for X axis = f x 2 2
P2 (Tool end point) x +y
y

y
Feedrate for Y axis = f x 2 2
Speed in this x +y
direction is "f"
P (Tool start point) x X

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.

(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.

P2
y
Linear speed is "f"

P1
x i X

90
7. Feed Functions
7.5 Feedrate designation and effects on control axes

(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".

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.

(Example) When the feedrate is designated as "f" and rotary axis (CA) is to be controlled ("f"
units = °/min)

P2(tool end point)


Angular speed is "f"

Linear speed is : π•r•f


c 180
Rotation P1 (tool start point)
center r

In this case, in order to make the cutting feed (linear feed) in the tool advance
direction "fc" :
fc = f × π • r
180

Therefore, the feedrate to be designated in the program must be :


180
f = fc ×
π•r

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 previously
described "When controlling linear axes". 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.

91
7. Feed Functions
7.5 Feedrate designation and effects on control axes

(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":
ft
fc Size and direction are fixed for fx.
Size is fixed for fc but direction varies.
P2 fx Both size and direction vary for ft.
fc
r θ
ft
P1
c fx
x
θ
Rotation center

X-axis feedrate (linear speed) "fx" and C-axis feedrate (angular speed) "ω" are expressed as:

fx = f × x ........................................................................................ (1)
x2 + c2

ω=f× c ......................................................................................... (2)


x2 + c2

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


π×r
fc = ω × .................................................................................................. (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 ( θ)× ω + fx .............................................................. (4)
180 180
π π
fty = −rcos ( θ)× ω ..................................................................... (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 °).
The combined speed "ft" according to (1), (2), (3), (4) and (5) is:

2 2
ft = ftx + fty

2 π π π • r • c )2
x – x • c • rsin ( θ) +(
=f× 180 90 180 ................... (6)
2 2
x +c
Consequently, feedrate "f" designated by the program must be as follows:
2 2
f = ft × x +c .................... (7)
2 π π π•r•c 2
x – x • c • rsin ( θ) +( )
180 90 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.

92
7. Feed Functions
7.6 Exact stop check

7.6 Exact stop check; G09

Function and purpose

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 "#1193 inpos" is set to 1.
The in-position width is set with parameter "#2224 sv024" on the servo parameter screen by the
machine manufacturer.

Command format

G09 ;
The exact stop check command G09 has an effect only with the cutting command (G01 - G03) in its
particular block.

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
With G09
f (Commanded speed)

N001
X axis N001
N002
Without G09
Time
Y axis
N002

Solid line indicates speed pattern with G09 command.


Broken line indicates speed pattern without G09 command.
Fig. 1 Exact stop check result

93
7. Feed Functions
7.6 Exact stop check

Detailed description

(1) With continuous cutting feed

Next block
Previous block

Ts

Fig. 2 Continuous cutting feed command

(2) With cutting feed in-position check

Previous block Next block

Lc (in-position width)

Ts Ts

Fig. 3 Block joint with cutting feed in-position check

In Figs. 2 and 3:
Ts = Cutting feed acceleration/deceleration time constant
Lc = In-position width

As shown in Fig. 3, the in-position width "Lc" can be set into the servo parameter "#2224
SV024" as the remaining distance (shaded area in Fig. 3) of the previous block when the next
block is started.
The setting unit for the servo parameter "#2224 SV024" is 0.0005mm or 0.00005inch.
The in-position width is designed to reduce the roundness at the workpiece corners to below
the constant value.

Lc Next block

Previous block

To eliminate corner roundness, set the servo parameter "#2224 SV024" to zero and perform
an in-position check or assign the dwell command (G04) between blocks.

94
7. Feed Functions
7.6 Exact stop check

(3) With deceleration check


(a) With linear acceleration/deceleration

Previous block Next block

Ts : Acceleration/deceleration time constant


Ts Td : Deceleration check time
Td = Ts + ( 0 ~ 14ms)
Td

(b) With exponential acceleration/deceleration

Previous block Next block

Ts : Acceleration/deceleration time constant


Ts Td : Deceleration check time
Td = 2 × Ts + ( 0 ~ 14ms)
Td

(c) With exponential acceleration/linear deceleration

Previous block Next block

2 x Ts

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

The time required for the deceleration check during cutting feed is the longest among the
cutting feed deceleration check times of each axis determined by the cutting feed
acceleration/deceleration time constants and by the cutting feed acceleration/
deceleration mode of the axes commanded simultaneously.

(Note 1) To execute exact stop check in a fixed cycle cutting block, insert command G09
into the fixed cycle subprogram.

95
7. Feed Functions
7.7 Exact stop check mode

7.7 Exact stop check mode ; G61


Function and purpose

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
high-accuracy control (G61.1), automatic corner override (G62), tapping mode (G63), or cutting
mode (G64).

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.8 Deceleration check

Function and purpose

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 "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.

(1) Types of deceleration check


Commanded speed Command to motor
check
With the commanded movement of motor
speed check, the
completion of
deceleration is judged
when the command to
the motor is completed
Deceleration Judges the stop here
start point
In-position check
With the in-position
check, the completion
of deceleration is G0/G1 in-position width
judged when the motor
moves to the
in-position width
designated with the
parameter.
Deceleration Judges the stop here
start point

96
7. Feed Functions
7.8 Deceleration check

(2) Designating deceleration check


The deceleration check by designating a parameter includes "deceleration check
specification type 1" and "deceleration check specification type 2". The setting is selected
with the parameter "#1306 InpsTyp".
(a) Deceleration check specification type 1 ("#1306 InpsTyp" = 0)
The G0 and G1 deceleration check method can be selected with the base specification
parameter deceleration check method 1 (#1193 inpos) and "deceleration check method 2"
(#1223 aux07/bit1).

Parameter Rapid traverse Parameter Other than rapid traverse command


command (G1 : other than G0 command)
Inpos G0→XX AUX07/BIT-1
G1+G9→XX G0→XX
(#1193) (G0+G9→XX) (#1223/BIT-1)
Command Command
0 deceleration 0 deceleration
No deceleration
check check
check
In-position In-position
1 1
check check
(Note 1) XX expresses all commands.
(Note 2) "#1223 aux07" is the system common parameter.

(b) Deceleration check specification type 2 ("#1306 InpsTyp" = 1)


Rapid traverse and cutting in-position are designated with the "inpos" parameter.

Parameter Command block

#1193 Inpos G0 G1+G9 G1


Command Command No deceleration
0
deceleration check deceleration check check
In-position In-position No deceleration
1
check check check
(Note 1) "#1193 inpos" is the parameter per system.
(Note 2) "G0" means the rapid traverse, and "G1" means the cutting feed.

97
7. Feed Functions
7.8 Deceleration check

7.8.1 G1 → G0 deceleration check

Detailed description

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

G0Ipfg: 0 G1 G0

G1 G0

G1 G0
G0Ipfg: 1
G1 G0

Command deceleration

Example of program

When there is a deceleration check in the movement of several axes:


(1) G91 G1 X100. Y100. F4000 ; A deceleration check is carried out, because the X axis
G0 X-100. Y120. ; moves in the reverse direction in the program above.

(2) G91 G1 X100. Y-100. F4000 ; A deceleration check is carried out, because the Y axis
G0 X80. Y100. ; moves in the reverse direction in the program above.

(3) G90 G1 X100. Y100. F4000 ; A deceleration check is carried out, because the X axis
G0 X80. Y120. ; moves in the reverse direction in the program above.
(When the program start position is X0 Y0)

(4) G91 G1 X100. Y100. F4000 ; A deceleration check is not carried out, because both
G0 X100. Y100. ; the X axis and the Y axis move in the same direction in
the program above.

(5) G91 G1 X100. Y80. F4000 ; A deceleration check is not carried out, because the X
G0 X80. ; axis moves in the same direction, and there is no Y axis
movement command in the program above.

98
7. Feed Functions
7.8 Deceleration check

7.8.2 G1 → G1 deceleration check

Detailed description

(1) In G1 → G1 continuous blocks, the parameter "#1503 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

Example of program

When there is a deceleration check in the movement of several axes:


(1) G91 G1 X100. Y100. F4000 ; A deceleration check is carried out, because the X axis
G1 X-100. Y120. ; moves in the reverse direction in the program above.

(2) G91 G1 X100. Y-100. F4000 ; A deceleration check is carried out, because the Y axis
G1 X80. Y100. ; moves in the reverse direction in the program above.

(3) G90 G1 X100. Y100. F4000 ; A deceleration check is carried out, because the X axis
G1 X80. Y120. ; moves in the reverse direction in the program above.
(When the program start position is X0 Y0)

(4) G91 G1 X100. Y100. F4000 ; A deceleration check is not carried out, because both the
G1 X100. Y100. ; X axis and the Y axis move in the same direction in the
program above.

(5) G91 G1 X100. Y80. F4000 ; A deceleration check is not carried out, because the X
G1 X80. ; axis moves in the same direction, and there is no Y axis
movement command in the program above.

99
7. Feed Functions
7.9 Automatic corner override

7.9 Automatic corner override ; G62


Function and purpose

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), high-accuracy control mode (G61.1), tapping mode (G63), or cutting mode (G64)
command is issued.

Command format

G62 ;

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 Programmed path


θ Machining allowance (finished shape)

S
Workpiece surface shape
(3)

(1) (2)
Tool center path
Machining
allowance

Deceleratio
range
Ci

Tool

θ : Max. angle at inside corner


Ci : Deceleration range (IN)

Fig.1

100
7. Feed Functions
7.9 Automatic corner override

(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 :
# Parameter Setting range
#8007 OVERRIDE 0 to 100%
#8008 MAX ANGLE 0 to 180°
#8009 DSC. ZONE 0 to 99999.999mm or 0 to 3937.000 inches
Refer to the Operation Manual for details on the setting method.

Automatic corner R
Work surface
Programmed

Tool center
shape

path
path
Machining
allowance

Corner R center

Workpiece Corner
R section
Ci

Machining
allowance

(1) 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.)

101
7. Feed Functions
7.9 Automatic corner override

Application example

(1) Line − line corner


Program
θ
Tool center
Ci

Tool

The override set in the parameter is applied at Ci.

(2) Line − arc (outside) corner

Program Tool center

Ci
Tool

The override set in the parameter is applied at Ci.

(3) Arc (inside offset) − line corner

Program θ

Ci
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

N1 θ
N2
Program
Ci

Tool center

The override set in the parameter is applied at Ci.

102
7. Feed Functions
7.9 Automatic corner override

Relation with other functions

Function Override at corner


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

103
7. Feed Functions
7.9 Automatic corner override

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.

Start-up block Program


Cancel
Tool center 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, K vector command is issued.
Program

Tool center

Block containing
I, K vector command Automatic corner override
will not be applied
(G41X_Z_I_K_;)

(5) Automatic corner override will not be applied when intersection calculation cannot be
executed.
Intersection calculation cannot be executed in the following case.
(a) 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.

104
7. Feed Functions
7.10 Tapping mode

7.10 Tapping mode ; G63


Function and purpose

The G63 command allows the control mode best suited for tapping to be entered, as indicated
below :
1) Cutting override is fixed at 100%.
2) Deceleration commands at joints between blocks are invalid.
3) Feed hold is invalid.
4) Single block is invalid.
5) In-tapping mode signal is output.
G63 is released by the exact stop mode (G61), high-accuracy control mode (G61.1), automatic
corner override (G62), or cutting mode (G64).

Command format

G63 ;

7.11 Cutting mode ; G64


Function and purpose

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), high-accuracy control mode (G61.1), automatic
corner override (G62), or tapping mode (G63).
This cutting mode is established in the initialized status.

Command format

G64 ;

105
8. Dwell
8.1 Per-second dwell

8. Dwell
The G04 command can delay the start of the next block.

8.1 Per-second dwell ; G04


Function and purpose

The machine movement is temporarily stopped by the program command to make the waiting time
state. Therefore, the start of the next block can be delayed. The waiting time state can be canceled
by inputting the skip signal.

Command format

G04 X_ ; or G04 P_ ;
X, P ・・・・ Dwell time

The input command unit for the dwell time depends on the parameter.

Detailed description

(1) When designating the dwell time with X, the decimal point command is valid.
(2) When designating the dwell time with P, the availability of the decimal point command can be
selected with the parameter (#8112). When the decimal point command is invalid in the
parameter setting, the command below the decimal point issued with P is ignored.
(3) When the decimal point command is valid or invalid, the dwell time command range is as
follows.
Command range when the decimal point Command range when the decimal point
command is valid command is invalid
0.001 ~ 99999.999 (s) 1 ~ 99999999 (ms)
(4) The dwell time setting unit applied when there is no decimal point can be made 1s by setting 1
in the parameter #1078 Decpt2. This is effect only for X and P for which the decimal command
is valid.
(5) 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.
(6) The dwell is valid during the interlock.
(7) The dwell is valid even for the machine lock.
(8) The dwell can be canceled by setting the parameter #1173 dwlskp beforehand. If the set skip
signal is input during the dwell time, the remaining time is discarded, and the following block
will be executed.

106
8. Dwell
8.1 Per-second dwell

Previous block
cutting command

Next block

Dwell command

Dwell time

Example of program

Dwell time [sec]


#1078 Decpt2 = 0 #1078 Decpt2 = 1
Command
DECIMAL DECIMAL DECIMAL DECIMAL
PNT-N PNT-P PNT-N PNT-P
G04 X500 ; 0.5 500
G04 X5000 ; 5 5000
G04 X5. ; 5 5
G04 X#100 ; 1000 1000
G04 P5000 ; 5 5 5000
G04 P12.345 ; 0.012 12.345 0.012 12.345
G04 P#100 ; 1 1000 1 1000

(Note 1) The above examples are the results under the following conditions.
• Input setting unit 0.001mm or 0.0001inch
• #100 = 1000 ;

(Note 2) "DECIMAL PNT-P" is a control parameter (#8112).

(Note 3) If the input setting unit is 0.0001inch, the X before G04 will be multiplied by 10. For
example for "X5. G04 ;", the dwell time will be 50 sec.

Precautions and restrictions

(1) When using this function, command X after G04 in order to make sure that the dwell is based
on X.

107
9. Miscellaneous Functions
9.1 Miscellaneous functions (M8-digits BCD)

9. Miscellaneous Functions
9.1 Miscellaneous functions (M8-digits BCD)
Function and purpose

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 eight commands of M00, M01, M02, M30, M96, M97, 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.
If the M function is designated in the same block as a movement command, the
commands may be executed in either of the following two orders. Which of these
sequences actually applies depends on the machine specifications.
(1) The M function is executed after the movement command.
(2) The M function is executed at the same time as the movement command.
Processing and completion sequences are required in each case for all M commands
except M96, M97, M98 and M99.
The 8M functions used for specific purposes will now be described.

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.

108
9. Miscellaneous Functions
9.1 Miscellaneous functions (M8-digits BCD)

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)
:
Optional stop switch status and operation
N10 G00 X1000 ;
Stops at N11 when switch is ON
N11 M01 ;
Next command (N12) is executed without
N12 G01 X2000 Z3000 F600 ;
stopping at N11 when switch is OFF
:

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.

Macro interrupt: M96, M97

M96 and M97 are M codes for user macro interrupt control.
The M code for user macro interrupt control is processed internally, and is not output externally.
To use M96 and M97 as an auxiliary code, change the setting to another M code with the
parameter (#1109 subs_M and #1110 M96_M, #1111 M97_M).

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.

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.

109
9. Miscellaneous Functions
9.2 Secondary miscellaneous functions (B8-digits, A8 or C8-digits)

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


Function and purpose

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.
If the A, B or C function is designated in the same block as a movement command, the commands
may be executed in either of the following two orders. The machine specifications determine which
sequence applies.
(1) The A, B or C function is executed after the movement command.
(2) The A, B or C function is executed simultaneously with the movement command.
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
A B C
Secondary miscellaneous function
A
B
C
(Note) When A has been assigned as the secondary miscellaneous function address, the
following commands cannot be used.
(1) Linear angle commands (,A can be used.)
(2) Geometric commands

110
9. Miscellaneous Functions
9.3 Index table indexing

9.3 Index table indexing

Function and purpose

Index table indexing can be carried out by setting the index axis. The indexing command only
issues the indexing angle to the axis set for indexing. It is not necessary to command special M
codes for table clamping and unclamping, thus simplifying the program.

Detailed description

The index table index function carries out operations as follows.


(Example) G00 B90 ;

The axis that was designated as the index axis with parameter "#2076
index x".

(1) Set the "index_x" parameter (#2076) for the axis in which index table indexing will be carried
out to "1".
(2) The movement command (either absolute or incremental) for the selected axis is executed
with the program command.
(3) An unclamp process are carried out before the axis movement.
(4) The commanded axis movement starts after the unclamp process completes.
(5) The clamp process is carried out after the movement is completed.
(6) The next block is processed after the unclamp process completes.
<Operation time chart>

Program command G0 B90. ;

Unclamp
command
Unclamp
completed

B axis movement

T10 FIN WAIT 0800 T10 FIN WAIT 0800

111
9. Miscellaneous Functions
9.3 Index table indexing

Precautions

(1) Several axes can be set as index table indexing axes.


(2) The movement speed of index table indexing axes follows the feedrate of the modal (G0/G1)
at that time.
(3) The unclamp process for the indexing axes is also issued when the index table indexing axes
are commanded in the same block as other axes. Thus, the movement of other axes
commanded in the same block is not carried out until the unclamp process completes.
Note that the movement of other axes commanded in the same block is carried out for
non-interpolation commands.
(4) Index table indexing axes are used as normal rotation axes, but this function performs an
unclamp process even for linear axes.
(5) If some error that makes unclamp command OFF occurs during indexing axis movement in
automatic operation, the unclamp state will be remained, and the indexing axis will execute a
deceleration stop.
Other axes commanded in the same block will also execute a deceleration stop, except for
non-interpolation commands.
(6) If the axis movement is interrupted by an interlock, etc., during indexing axis movement, the
unclamp state will be remained.
(7) The clamp and unclamp process are not executed when the movement commands of the
index table indexing axis are continuous.
Note that the clamp and unclamp process are executed even when the movement commands
are continued during single block operation.
(8) Make sure that the command position is at a position where clamping is possible.

112
10. Spindle Functions
10.1 Spindle functions (S2-digits BCD)

10. Spindle Functions


10.1 Spindle functions (S2-digits BCD) ..... During standard PLC specifications
Function and purpose

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. Note that how many of these 100 types can be used, and
which value corresponds to the actual rotation speed differs for each machine. Refer to the
Instruction Manual issued by the machine maker for more details. When a number exceeding 2
digits is assigned, the last 2 digits will be valid.
If the S function is designated in the same block as a movement command, the commands may be
executed in either of the following two orders. The machine specifications determine which
sequence applies.
(1) The S function is executed after the movement command.
(2) The S function is executed simultaneously with the movement command.
Processing and completion sequences are required for all S commands from S00 through S99.

10.2 Spindle functions (S6-digits Analog)


Function and purpose

When the S6-digits function is added, a 6-digit value (0 to 999999) can be designated after the S
code.
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 (2–12)
(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 rotation speed, maximum rotation
speed, shift rotation speed, tap rotation
speed.
(2) Parameters corresponding to all gears ..................Minimum rotation speed, orientation
rotation speed

10.3 Spindle functions (S8-digits)


Function and purpose

These functions are assigned with an 8-digit (0 to 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.

113
10. Spindle Functions
10.4 Constant surface speed control

10.4 Constant surface speed control; G96, G97

10.4.1 Constant surface speed control

Function and purpose

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.

Command format

G96 Ss Pp; Constant surface speed ON


Ss : Peripheral speed
Pp : Constant surface speed control axis

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

(2) 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 Constant surface speed control axis
G96 S100 ; 1st axis
G96 S100 P3 ; 3rd axis

(3) Example of selection program and operation


The spindle speed is controlled so that the peripheral
G90 G96 G01 X50. Z100. S200 ; speed is 200m/min.
~ ~

G97 G01 X50. Z100. F300 S500 ;


The spindle speed is controlled to 500r/min.

M02 ; The modal returns to the initial setting.

114
10. Spindle Functions
10.5 Spindle clamp speed setting

10.5 Spindle clamp speed setting; G92


Function and purpose

The maximum clamp speed of the spindle can be assigned by address S following G92 and the
minimum clamp speed by address Q.

Command format

G92 Ss Qq;
Ss : Maximum clamp speed
Qq : Minimum clamp speed

Detailed description

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 ;
Set in the parameter “#1146 Sclamp” or “#1227 aux11/bit5” 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 Sclamp = 1
aux11/bit5 = 0 aux11/bit5 = 1 aux11/bit5 = 0 aux11/bit5 = 1
SPEED CLAMP SPEED CLAMP
In G96 SPEED CLAMP COMMAND
COMMAND COMMAND
Command
SPEED CLAMP SPEED CLAMP
In G97 SPINDLE SPEED COMMAND
COMMAND COMMAND
SPEED CLAMP SPEED CLAMP
In G96 SPEED CLAMP EXECUTION
EXECUTION EXECUTION
Operation
SPEED CLAMP NO SPEED
In G97 NO SPEED CLAMP
EXECUTION CLAMP

115
10. Spindle Functions
10.6 Spindle/C axis control

10.6 Spindle/C axis control


Function and purpose

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.

Detailed description

(1) Spindle/C axis changeover


Changeover between the spindle and C axis is done by the C axis SERVO ON signal.

Spindle C axis 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.

(2) Changeover timing chart example

Spindle
forward run Orientation Orientation
C axis
Motor speed movement

Reference point return complete Reference point


Spindle
return complete
reverse run

Servo ON

Servo READY

Spindle forward run/


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

∗1 Servo OFF ∗2
Servo ON Servo ON
C axis command C axis command Program error
recalculation Spindle (P430 AXIS NOT
Program error because the reverse
reference point return is Reference point return run RET.)
incomplete at this calculation. complete at recalculation

(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) 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.
• Input the recalculation request signal with a servo ON command.
• Wait for the completion of the servo ON command until the C axis enters a servo
READY state.

116
10. Spindle Functions
10.6 Spindle/C axis control

(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 Non-cutting gain Cutting gain Cutting stop gain Non-cutting gain

C axis command G0 G1 G0
X axis command
(C axis part system) G0 G1
Z axis command
(other part system) G1 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.

(4) Deceleration check in movement including spindle/C-axis


The deceleration check in a movement command including the spindle/C-axis is as the table
described below when the following condition is fulfilled.
When the different values are set for the position loop gain in non-cutting mode (spindle
parameter #3203 PGCO) and the position loop gain in cutting mode (spindle parameter
#3330 PGC1 to #3333 PGC4).
That is because a vibration and so on occurs in the machine when the gain is changed during
the axis movement.

Parameter Rapid traverse Parameter Other than rapid traverse command


command (G1 : other than G0 command)
Inpos G0→XX AUX07/BIT-1 G1+G9→XX
G1→ G1
(#1193) (G0+G9→XX) (#1223/BIT-1) (G1+G9→XX)
Command
In-position
0 deceleration 0
check No deceleration
check
(Applicable only check
In-position
1 1 to SV024)
check

(Note 1) When G1 command is issued, the in-position check is performed regardless of the
deceleration check parameter.
(Note 2) XX expresses all commands.

117
10. Spindle Functions
10.6 Spindle/C axis control

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) 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).

118
10. Spindle Functions
10.7 Spindle synchronization control II

10.7 Spindle synchronization control II


Function and purpose

In a machine having two or more spindles, this function controls the rotation speed and phase of
one spindle (synchronous spindle) in synchronization with the rotation of the other spindle (basic
spindle).
The function is used if a workpiece grasped by the basic spindle is to be grasped by a synchronous
spindle, or if the spindle rotation speed has to be changed when one workpiece is grasped by both
spindles.
Selection of the synchronized spindle and synchronization start, etc., are all designated from the
PLC.

Basic spindle and synchronous spindle selection

Select the basic spindle and synchronous spindle for synchronization control from the PLC.
Device No. Signal name Abbrev. Explanation
R446 Basic spindle – Select a serially connected spindle to be
selection controlled as the basic spindle.
(0: 1st spindle), 1: 1st spindle, 2: 2nd spindle, 3:
3rd spindle, 4: 4th spindle
(Note 1) Spindle synchronization control will
not take place if a spindle not
connected in serial is selected.
(Note 2) If "0" is designated, the 1st spindle will
be controlled as the basic spindle.
R447 Synchronous – Select a serially connected spindle to be
spindle controlled as the synchronous spindle.
selection (0: 2nd spindle), 1: 1st spindle, 2: 2nd spindle, 3:
3rd spindle, 4: 4th spindle
(Note 3) Spindle synchronization control will
not take place if a spindle not
connected in serial is selected or if the
same spindle as the basic spindle is
selected.
(Note 4) If "0" is designated, the 2nd spindle
will be controlled as the synchronous
spindle.

119
10. Spindle Functions
10.7 Spindle synchronization control II

Starting spindle synchronization

The spindle synchronization control mode is entered by inputting the spindle synchronization
control signal (SPSYC). The synchronous spindle will be controlled in synchronization with the
rotation speed commanded for the basic spindle during the spindle synchronization control mode.
When the difference of the basic spindle and synchronous spindle rotation speeds reaches the
spindle synchronization rotation speed reach level setting value (#3050 sprlv), the spindle rotation
speed synchronization complete signal (FSPRV) will be output.
The synchronous spindle's rotation direction is designated with the spindle synchronization
rotation direction designation as the same as the basic spindle or the reverse direction.

Device No. Signal name Abbrev. Explanation


Y398 Spindle SPSYC The spindle synchronization control mode is
synchronization entered when this signal turns ON.
control signal
X308 In spindle SPSYN1 This notifies that the mode is the spindle
synchronization synchronization control.
control
X309 Spindle rotation FSPRV This turns ON when the difference of the basic
speed spindle and synchronous spindle rotation
synchronization speeds reaches the spindle rotation speed
complete signal reach level setting value during the spindle
synchronization control mode.
This signal turns OFF when the spindle
synchronization control mode is canceled, or
when an error exceeding the spindle rotation
speed reach level setting value occurs during
the spindle synchronization control mode.
Y39A Spindle – Designate the basic spindle and synchronous
synchronization spindle rotation directions for spindle
rotation synchronization control.
direction 0: The synchronous spindle rotates in the
designation same direction as the basic spindle.
1: The synchronous spindle rotates in the
reverse direction of the basic spindle.

120
10. Spindle Functions
10.7 Spindle synchronization control II

Spindle phase alignment

Spindle phase synchronization starts when the spindle phase synchronization control signal
(SPPHS) is input during the spindle synchronization control mode. The spindle phase
synchronization complete signal is output when the spindle synchronization phase reach level
setting value (#3051 spplv) is reached.
The synchronous spindle's phase shift amount can also be designated from the PLC.
Device No. Signal name Abbrev. Explanation
Y399 Spindle phase SPPHS Spindle phase synchronization starts when this
synchronization signal is turned ON during the spindle
control signal synchronization control mode.
(Note 1) If this signal is turned ON in a mode
other than the spindle synchronization
control mode, it will be ignored.
X30A Spindle phase FSPPH This signal is output when the spindle
synchronization synchronization phase reach level is reached
complete signal after starting spindle phase synchronization.
R448 Phase shift – Designate the synchronous spindle's phase shift
amount setting amount.
Unit: 360°/4096

Spindle synchronization
control signal (Y398)

In spindle synchronization
control signal (X308)
(Note 2)
Spindle synchronization
complete signal (X309)

Spindle phase synchronization


control signal (Y399)

Spindle phase synchronization


complete signal (X30A)

Spindle phase
synchronization complete ON
Spindle phase Spindle synchronization
synchronization control ON control OFF
Spindle synchronization
complete ON
Spindle synchronization Spindle synchronization
control ON control OFF

(Note 2) Turns OFF temporarily to change the rotation speed during phase synchronization.

121
10. Spindle Functions
10.7 Spindle synchronization control II
Calculating the spindle synchronization phase shift amount and requesting phase offset

The spindle phase shift amount calculation function obtains and saves the phase difference of the
basic spindle and synchronous spindle by turning the PLC signal ON during spindle
synchronization. When calculating the spindle phase shift, the synchronous spindle can be rotated
with the handle, so the relation of the phases between the spindles can also be adjusted visually.
If the spindle phase synchronization control signal is input while the phase offset request signal
(SSPHF) is ON, the phases will be aligned using the position shifted by the saved phase shift
amount as a reference.
This makes aligning of the phases easier when re-grasping profile materials.
Device No. Signal name Abbrev. Explanation
Y39B Phase shift SSPHM If spindle synchronization is carried out while
calculation this signal is ON, the phase difference of the
request basic spindle and synchronous spindle will be
obtained and saved.
Y39C Phase offset SSPHF If spindle phase synchronization is carried out
request while this signal is ON, the phases will be
aligned using the position shifted by the saved
phase shift amount as a basic position.
R474 Phase – The delay of the synchronous spindle in
difference respect to the basic spindle is output.
output Unit: 360°/4096
(Note 1) If either the basic spindle or
synchronous spindle has not
passed through the Z phase, etc.,
and the phase cannot be
calculated, –1 will be output.
(Note 2) This data is output only while
calculating the phase shift or during
spindle phase synchronization.
R490 Phase offset – The phase difference saved with phase shift
data calculation is output.
Unit: 360°/4096
(Note 3) This data is output only during
spindle synchronization control.

Phase shift calculation


request (Y39B)

Spindle synchronization
control signal (Y398)

In spindle synchronization
control signal (X308)

Spindle synchronization
complete signal (X309)

The phase difference in this interval is


saved.
(The synchronous spindle can be
controlled with the handle.)
Spindle synchronization Spindle synchronization
control ON control OFF
Phase shift calculation Phase shift calculation
request ON request OFF

(Note 4) The phases cannot be aligned while calculating the phase shift.
(Note 5) The synchronous spindle cannot be rotated with the handle when the manual operation
mode is set to the handle mode.

122
10. Spindle Functions
10.7 Spindle synchronization control II

Chuck close signal

The synchronous spindle side carries out droop compensation while the chuck is opened, and
aligns itself with the basic spindle. However, when the chuck is closed, the droop compensation is
added, and the synchronization error with the base increases. Droop compensation is prevented
with the chuck close signal and the position where the chuck is grasped is maintained with position
compensation.
Device No. Signal name Abbrev. Explanation
Y2E9 Chuck close – This turns ON when the chuck is closed.
signal When this signal turns ON, the compensation
between the basic spindle and synchronous
spindle will change from droop compensation
to position compensation.
X30E Chuck close – This turns ON when the chuck close signal is
confirmation received during the spindle synchronization
signal control mode.

Chuck open
Basic spindle chuck Chuck close Chuck close confirmation Chuck open
Chuck close
Synchronous spindle chuck Chuck open confirmation Chuck close Chuck close

Spindle synchronization
control signal (Y398)

In spindle synchronization
control signal (X308)

Spindle synchronization
complete signal (X309)

Chuck close (Y2E9)

Error temporary cancel


(Y39D)
Error canceled

(Note 1) Use the error temporary cancel only when there is still an error between the spindle and
synchronization with the chuck close signal.

Error temporary cancel function

When spindle synchronization is carried out while grasping the workpiece with the basic spindle
and rotating, if the chuck is closed to grasp the workpiece with the synchronous spindle, the speed
will fluctuate due to external factors and an error will occur. If spindle synchronization is continued
without compensating this error, the workpiece will twist.
This torsion can be prevented by temporarily canceling this error.
Device No. Signal name Abbrev. Explanation
Y39D Error temporary SPDRP0 The error is canceled when this signal is ON.
cancel signal

123
10. Spindle Functions
10.7 Spindle synchronization control II

Phase error monitor

The phase error can be monitored during spindle phase synchronization.


Device No. Signal name Abbrev. Explanation
R477 Phase error – The phase error during spindle phase
monitor synchronization control is output as a pulse
unit.
R478 Phase error – The lower limit value of the phase error during
monitor (lower spindle phase synchronization control is
limit value) output as a pulse unit.
R479 Phase error – The upper limit value of the phase error during
monitor (upper spindle phase synchronization control is
limit value) output as a pulse unit.

Multi-speed acceleration/deceleration

Up to eight steps of acceleration/deceleration time constants for spindle synchronization can be


selected according to the spindle rotation speed.

Rotation speed

Sptc3
(1) Time required from stopped state to sptc1 setting rotation
speed
spt ∗ (sptc1/maximum rotation speed)
Sptc2 (2) Time required from sptc1 to sptc2 setting rotation speed
spt ∗ ((sptc2–sptc1)/maximum rotation speed) ∗ spdiv1
(3) Time required from sptc2 to sptc3 setting rotation speed
spt ∗ ((sptc3–sptc2)/maximum rotation speed) ∗ spdiv2

Sptc1

Time

(1) (2) (3)

124
10. Spindle Functions
10.7 Spindle synchronization control II

Precautions and restrictions

(1) When carrying out spindle synchronization, a rotation command must be issued to both the
basic spindle and synchronous spindle. The synchronous spindle's rotation direction will
follow the basic spindle rotation direction and spindle synchronization rotation direction
designation regardless of whether a forward or reverse run command is issued.
(2) The spindle synchronization control mode will be entered even if the spindle synchronization
control signal is turned ON while the spindle rotation speed command is ON. However,
synchronous control will not actually take place. Synchronous control will start after the rotation
command has been issued to the basic spindle, and then the spindle synchronization complete
signal will be output.
(3) The spindle rotating with spindle synchronization control will stop when emergency stop is
applied.
(4) An operation error will occur if the spindle synchronization control signal is turned ON while
the basic spindle and synchronous spindle designations are illegal.
(5) The rotation speed clamp during spindle synchronization control will follow the smaller clamp
value set for the basic spindle or synchronous spindle.
(6) Orientation of the basic spindle and synchronous spindle is not possible during the spindle
synchronization. To carry out orientation, turn the spindle synchronization control signal OFF
first.
(7) The rotation speed command is invalid for the synchronous spindle during the spindle
synchronization. The commanded rotation speed will be validated after spindle
synchronization is canceled.
(8) The constant surface speed control is invalid for the synchronous spindle during the spindle
synchronization.
(9) If the phase offset request signal is turned ON before the phase shift is calculated and then
spindle phase synchronization is executed, the shift amount will not be calculated.
(10) The spindle Z-phase encoder position parameters are invalid when phase offset is carried out.
(11) If spindle phase synchronization is started while the phase shift calculation request signal is
ON, the error "M01 operation error 1106" will occur.
(12) Turn the phase shift calculation request signal ON when the basic spindle and synchronous
spindle are both stopped. If the phase shift calculation request signal is ON while either of the
spindles is rotating, the error "M01 operation error 1106" will occur.
(13) The phase shift amount saved in the NC is held until the next phase shift is calculated. (This
value is saved even when the power is turned OFF.)

125
10. Spindle Functions
10.8 Multiple spindle control

10.8 Multiple spindle control


Function and purpose

Multiple spindle control is a function used to control the sub-spindle in a machine tool that has a
main spindle (1st spindle) and a sub-spindle (2nd spindle to 4th spindle).
The spindle control method differs between multiple spindle control I and multiple spindle control II.
Whether to use multiple spindle control I or multiple spindle control II depends on the parameter
(#1300 ext36/bit0) setting.

Multiple spindle control I: Control following the spindle selection


(ext36/bit0 = 0) command (G43.1, etc.) and spindle control
command ([S∗∗∗∗∗ ;] or [S =∗∗∗∗∗ ;]), etc.
Multiple spindle control II: Control following the external signal (spindle
(ext36/bit0 = 1) command selection signal, spindle selection
signal) and spindle control command
([S∗∗∗∗∗ ;] only), etc.
The spindle selection command [S =∗∗∗∗∗ ;]
cannot be used.

Tool spindle
(3rd spindle)

2nd spindle
1st spindle

Turret
1

126
10. Spindle Functions
10.8 Multiple spindle control

10.8.1 Multiple spindle control I (multiple spindle command)

Function and purpose

In addition to the S∗∗∗∗∗ command, the 1st to 4th spindles can be identified and commanded with
the S =∗∗∗∗∗ command.

Command format

S =∗∗∗∗∗ ;
Designate the spindle number with one numeric character (1: 1st
spindle/2: 2nd spindle/3: 3rd spindle/4: 4th spindle). A variable can be
designated.
∗∗∗∗∗ Rotation speed or constant surface speed command. A variable can be
designated.
(Note 1) A program error (P35) will occur if the value is not 1 to 4.
(Note 2) A program error (P33) will occur if G47.1 is issued in a modal.

Detailed description

(1) Each spindle command is delimited by the details of .


(Example)
S1 = 3500 ; 1st spindle 3500(r/min) command
S2 = 1500 : 2nd spindle 1500(r/min) command
(2) Multiple spindles can be commanded in one block.
(3) If two or more commands are issued to the same spindle in a block, the command issued last
will be valid.
(Example) S1 = 3500 S1 = 3600 S1 = 3700 ; S1 = 3700 will be valid.
(4) The S∗∗∗∗∗ command and S =∗∗∗∗∗ command can be used together.
The spindle targeted for the S∗∗∗∗∗ command is delimited by the spindle selection command.

When G44.1 spindle No. is 2


1st spindle 2nd spindle
control mode control mode
System 1
Execution program S1=200 S2=400 G43.1 S300 S2=100 S=100 G44.1 S300 S1=500

1st spindle

Rotation speed 200r/min 300r/min 100r/min 500r/min

2nd spindle
400r/min 100r/min 300r/min
Rotation speed

(5) The commands for each spindle can be commanded from the machining program for either
system 1 or system 2.

127
10. Spindle Functions
10.8 Multiple spindle control

10.8.2 Multiple spindle control I (spindle selection command)

Function and purpose

The following S commands (S∗∗∗∗) can be changed for the 1st spindle to 4th spindle by issuing the
spindle selection command (G43.1, etc. [G group 20]).

Command format

G43.1; 1st spindle control mode ON


G44.1; Selected spindle control mode ON (Selected spindle No. is set with
SnG44.1)
G47.1; All spindles simultaneous control mode ON

Detailed description

(1) The selected spindle No. is set with the parameter (#1534 SnG44.1).
(2) The spindle selection command is a modal G code.
(3) A program error (P33) will occur if the spindle selection command is issued while the multiple
spindle control II mode is valid.
(4) The spindle control mode entered when the power is turned ON or reset can be set with the
parameters for each system. The state when the power is turned ON or reset is as follows.
G group 20 modal state Set with setup parameter "#1199 Sselect".
0:G43.1
1:G44.1
2:G47.1
G44.1 spindle No. Set with setup parameter "#1534 SnG44.1".
0:2nd spindle
1:1st spindle
2:2nd spindle
3:3rd spindle
4:4th spindle

(5) If the S command is issued in the same block as the spindle selection command, it will be valid
for the spindle switched to with the spindle selection command.
Example)
G43.1 S100 ; → Command 100 rotations for 1st spindle
S200 G44.1 S300 ; → After commanding 200 rotations for 1st spindle, command
(SnG44.1=2) 300 rotations for 2nd spindle

If a spindle that does not exist is set, the 2nd spindle will be used. Note that if there is only one
spindle, the 1st spindle will be used.

128
10. Spindle Functions
10.8 Multiple spindle control

(6) Commands can be issued from either system 1 or system 2.

When G44.1 spindle No. is 2


In G43.1 mode
System 1 Execution G97 S1000 S2000 G44.1 S500 G43.1 S3000 S2=3000
program

1st spindle control 2nd spindle 1st spindle control 2nd spindle
control control
In G43.1 mode
System 2 Execution G96 S200 S100 G44.1 S300 S1=1000
program

1st spindle control 2nd spindle 1st spindle


control control

1st spindle Rotation


speed 1000r/min 2000r/min 200m/min 100m/min 3000r/min 1000r/min

Rotation 500r/min 300m/min 3000r/min


2nd spindle
speed

Relation with other functions

The following functions change after the spindle selection command.


(1) S command (S∗∗∗∗∗)
The S command in G97 (rotation speed command)/G96 (constant surface speed command) will
be the command for the spindle designated with the spindle selection command.
(2) Spindle clamp speed command
The spindle clamp speed command issued with G92 S_Q_ will also follow the spindle
selection command mode.
(3) Per rotation command (synchronous feed)
Even if F is commanded in the G95 mode, the per rotation feedrate for the spindle designated
with the spindle selection command will be applied.
(4) Constant surface speed control spindle changeover
The constant surface speed control will also follow the spindle selection command mode.

If spindle other than the current mode is commanded with S =∗∗∗∗∗, the spindle rotation
speed command designated with will have the priority.
(Example)
S2=∗∗∗∗ in G43 system mode .......................................2nd spindle rotation speed
command
S1=∗∗∗∗ in G44 system 2nd spindle selection mode ....1st spindle rotation speed
command
Note that the constant surface speed command in the constant surface speed control (G96)
will be modal information independent from the rotation speed command.
When G44.1 spindle No. is 2
System 1
Execution S1=200 S2=300 G43.1 G90 G0 X100. G96 S300 G01 X50. F200 G97 G44.1 G96 S300 G01 X20. F200 G97
program

1st spindle
Rotation speed 200r/min 300m/min 300×1000/(50×3.14)r/min

2nd spindle
Rotation speed 300r/min 300m/min 300×1000/(20×3.14)r/min

129
10. Spindle Functions
10.8 Multiple spindle control

Spindle control rights

If the constant surface speed control, S command and spindle related M command are
commanded randomly from each system to one spindle, the spindle may not operate correctly. For
example, if S is commanded (per minute feed) during constant surface speed control with system 1,
the rotation speed will not change from the system 1 side, and the actual rotation speed will relay
on system 2 from which S was commanded last. These commands must be commanded from only
one system, or commanded simultaneously while using standby, etc.

After this, system 1 will machine


S200 even if it appears to be S100

System 1 Execution ...


program G43.1 G0 X50. S100 G01 X10.

1st spindle 0r/min 100r/min 200r/min


rotation speed

1st spindle System 1 System 2


control rights

System 2 Execution G43.1 G0 X50. G01 X30. S200 G01 X10. ...
program

[Spindle control rights transfer conditions] When G44.1 spindle No. is 2


(1) The system that commanded the S command last has the spindle control rights.

System 1 Execution G43.1 G97 S1000 G44.1 S500 G43.1 S3000 S2=3000
program

System 2 Execution G43.1 G0 X50. G96 S200 S100 G44.1 S300 S1=1000
program

1st spindle System 1 System 2 System System 2


control rights 1

2nd spindle System 1 System 2 System 1


control rights

(2) If different S commands are executed simultaneously in both systems, system 2 will have the
priority. In addition, system 2 will have the control rights.

System 1 Execution G43.1 S300 S100 ...


program

1st spindle
rotation speed 200r/min 300r/min 200r/min

1st spindle System 1 System 2 System 1 System 2


control rights

System 2 Execution G43.1 S200 ... S200 ...


program

130
10. Spindle Functions
10.8 Multiple spindle control

10.8.3 Multiple spindle control II

Function and purpose

Multiple spindle control II is a function that designates which spindle to select with the signals from
PLC. The command is issued to the spindle with one S command.

Detailed description

(1) Spindle command selection, spindle selection


The S command to the spindle is output as the rotation speed command to the selected
spindle when the spindle selection signal (SWS) from the PLC turns ON. The selected spindle
rotates at the output rotation speed. The spindle whose selection is canceled when the spindle
selection signal (SWS) turns OFF maintains the speed at which it was rotating at before being
canceled. This allows each axis to be simultaneously rotated at differing rotation speeds. The
spindle command selection signal is used to determine which system each spindle receives
the S command from.

PLC side Spindle enable


Spindle command Spindle
selection selection Spindle X2C8
Spindle rotation Spindle rotation stop 1st spindle
R110 Y350 speed input speed output
Y294
R8/9 R108/109
SWS
PLC side U148
R310 2nd spindle
W1D0
W114
R208/209 R308/309
SWS
S command $1 PLC side I300
S command $2 3rd spindle
R4606 J600
S02C
R4500/450 R4600/460
SWS
PLC side I310
R4626 J610
4th spindle
S06C
R4520/452 R4620/462
SWS

Encoder selection
R124

Encoder input $1

Encoder input $2

R324

(Note) Refer to the PLC Interface Manual for details on each signal.

131
10. Spindle Functions
10.8 Multiple spindle control

Relation with other functions

(1) Spindle clamp speed setting (G92)


This is valid only on the spindle selected with the spindle selection signal (SWS).
The spindle not selected with the spindle selection signal (SWS) maintains the speed at which
it was rotating at before being canceled.
(The spindle clamp speed is maintained with the G92 command.)
(2) Constant surface speed control
Constant surface speed control can be applied on all spindles.
The spindle rotation speed is automatically controlled during constant surface speed control, so
when machining with constant surface speed, the spindle selection signal (SWS) for that spindle
must be left ON.
The spindle not selected with the spindle selection signal (SWS) maintains the speed at which
it was rotating at before being canceled.
(3) Thread cutting/synchronous feed
The threads are cut with the spindle selected with the spindle selection signal (SWS). The
encoder feedback selected with the encoder selection signal is used.
(4) Polygon machining (servo-spindle)
The polygon machining spindle is selected with the spindle selection signal (SWS). Do not
select the polygon machining spindle multiple times, and do not change the polygon
machining spindle selection signal during the polygon machining mode.
If a C axis mode command is issued to the polygon machining spindle, the "M01 operation
error 1026" will occur. When the C axis command is canceled, the error will be canceled and
machining will resume.
If synchronous tap is commanded during polygon machining, a program error (P34) will occur.
(5) Synchronous tap
The synchronous tap spindle is selected with the spindle selection signal (SWS).
Select the synchronous tap spindle before issuing the synchronous tap command. Do not
change the synchronous tap spindle selection signal during the synchronous tapping mode.
If a C axis mode command is issued to the synchronous tap spindle, the "M01 operation error
1026" will occur. When the C axis command is canceled, the error will be canceled and
machining will resume.
If a polygon machining command is issued to the synchronous tap spindle, the "M01 operation
error 1026" will occur. When the polygon machining command is canceled, the error will be
canceled and machining will resume.
(6) Asynchronous tap
The asynchronous tap spindle is selected with the spindle selection signal (SWS).
Select the asynchronous tap spindle before issuing the tap command. Input a calculation
request to change the asynchronous tap spindle selection. Do not change the asynchronous tap
spindle selection signal during the asynchronous tapping mode.
(7) Tap return
The tap return spindle is selected with the spindle selection signal (SWS).
Select the spindle for which the tap cycle execution in stopped before turning the tap return
signal ON.
If tap return is executed when a different spindle is selected, the "M01 operation error 1032"
will occur. Do not change the spindle selection signal during tap return.

132
10. Spindle Functions
10.8 Multiple spindle control

Restrictions

(1) The S manual value command is invalid when multiple spindle control II is valid.
(2) Setup parameter "#1199 Sselect" is invalid when multiple spindle control II is valid.
(3) The spindle control mode changeover G code cannot be used when multiple spindle control II
is valid. A program error (P34) will occur.
(4) The "S1=∗∗∗" and "S2=∗∗∗" commands are invalid when multiple spindle control II is valid. A
program error (P33) will occur.
(5) The spindle gear shift command output signal (GR1/GR2) is not output when multiple spindle
control II is valid.

133
11. Tool Functions
11.1 Tool functions (T8-digit BCD)

11. Tool Functions


11.1 Tool functions (T8-digit BCD)
Function and purpose

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.
If the T function is designated in the same block as a movement command, the commands may be
executed in either of the following two orders. The machine specifications determine which
sequence applies.
(1) The T function is executed after the movement command.
(2) The T function is executed simultaneously with the movement command.

Processing and completion sequences are required for all T commands.

134
12. Tool Offset Functions
12.1 Tool offset

12. Tool Offset Functions


12.1 Tool offset
Function and purpose

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

135
12. Tool Offset Functions
12.1 Tool offset

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 1 is selected when parameter "#1037 cmdtyp" is set to "1", and type 2 is selected when set to
"2".
Classification of length
Type of tool offset Classification of shape offset,
offset, diameter
memory wear compensation
compensation
Type 1 Not applied Not applied
Type 2 Applied Applied

Reference

Reference
tool

Shape Tool length


offset

Shape Wear amount


Wear
amount Tool diameter
compensation

136
12. Tool Offset Functions
12.1 Tool offset

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

Offset No. Offset amount


1 a1
2 a2
3 a3
• •
• •
n 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

Tool diameter(D)/
Tool length (H)
Offset (Position offset)
No. Shape offset Wear offset Shape offset Wear offset
amount amount amount amount
1 b1 c1 d1 e1
2 b2 c2 d2 e2
3 b3 c3 d3 e3
• • • • •
• • • • •
n bn cn dn en

CAUTION
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.

137
12. Tool Offset Functions
12.1 Tool offset

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 Shape offset amount Wear offset amount
unit Metric system Inch system Metric system Inch system
#1015 cunit=100 ±99999.99mm ±9999.999 inch ±9999.99 mm ±999.999 inch
#1015 cunit=10 ±9999.999mm ±999.9999 inch ±999.999 mm ±99.9999 inch

138
12. Tool Offset Functions
12.2 Tool length offset/cancel

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


Function and purpose

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.

Command format

When tool length offset is + When tool length offset is −


G43 Zz Hh ; Tool length offset + start G44 Zz Hh ; Tool length offset − start
: :
G49 Zz ; Tool length offset cancel G49 Zz ;

Detailed description

(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.

Z axis movement amount


G43 Zz Hn1 ; z+ (lh1) Offset in + direction by tool offset amount
G44 Zz Hh1 ; z− (lh1) Offset in − direction by tool offset amount
G49 Zz ; z −(+) (lh1) Offset amount cancel.
lh1 : 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
R
N1 G28 Z0 T01 M06 ;
N2 G90 G92 Z0 ;
N3 G43 Z5000 H01 ;
N4 G01 Z-50000 F500 ;

(Example 2) For incremental value Tool length offset


command H01=-100.
H01 = −100000
N1 G28 Z0 T01 M06 ; +5.00
N2 G91 G92 Z0 ;
0
Workpiece

N3 G43 Z5000 H01 ; W


N4 G01 Z-55000 F500 ;

-50.000

139
12. Tool Offset Functions
12.2 Tool length offset/cancel

(2) Offset No.


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

Table

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

Workpiece

Table
(b) The valid range of the offset No. will differ according to the specifications (No. of offset
sets).
(c) If the commanded offset No. exceeds the specification range, the program error (P170)
will occur.
(d) Tool length cancel will be applied when H0 is designated.
(e) The offset No. commanded in the same block as G43 or G44 will be valid for the following
modals.

(Example 3)
G43 Zz1 Hh1 ; ........... Tool length offset is executed with h1.
:
G45 Xx1 Yy1 Hh6 ;
:
G49 Zz2 ; ................... The tool length offset is canceled.
:
G43 Zz2 ; ................... Tool length offset is executed again with h1.

(f) 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 + (lh1) movement.
:
G43 Zz2 Hh2 ; ........... Becomes the z2 + (lh2 - lh1) movement.
:
The same applies for the G44 command in the G44 modal.

140
12. Tool Offset Functions
12.2 Tool length offset/cancel

(3) Axis valid for tool length offset


(a) When parameter “#1080 Dril_Z” is set to "1", the tool length offset is always applied on the
Z axis.
(b) 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 ; ................+ offset to X axis
:
G49 Xx2 ;
:
G44 Yy1 Hh2 ; ................−offset to Y axis
:
G49 Yy2 ;
:
G43 αα1 Hh3 ; ................+ offset to additional offset
:
G49 αα1 ;
:
G43 Xx3 Yy3 Zz3 ; .........Offset is applied on Z axis
:
G49 ;

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.

(c) 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
:
49 ;

(4) Movement during other commands in tool length offset modal


(a) 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 Hh1 ;
:
G28 Zz2 ; ........................ Canceled when reference point is reached.
:
G43 Zz2 Hh2 ; (Same as G49)
:
G49 G28 Zz2 ; ................ After the Z axis is canceled, reference point
return is executed.

(b) 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.

141
12. Tool Offset Functions
12.3 Tool radius compensation

12.3 Tool radius compensation


Function and purpose

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.

Command format

G40X___Y___ ; : Tool radius compensation cancel


G41X___Y___ ; : Tool radius compensation (left)
G42X___Y___ ; : Tool radius compensation (right)
G38I___J___ ; : Change or hold of compensation vector Can be commanded only
during the radius compensation
G39X___Y___ ; : Corner changeover mode.

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.

142
12. Tool Offset Functions
12.3 Tool radius compensation

12.3.1 Tool radius compensation operation

Tool radius compensation cancel mode

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

Tool radius compensation start (start-up)

Tool radius compensation starts when all the following conditions are met in the compensation
cancel mode.
(1) The movement command is issued after G41 or G42.
(2) The tool radius compensation offset No. is 0 < D ≤ max. offset No.
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 T____; S____; G00____; G41____; G01____; G02____;

Start of pre-reading 5 blocks

G01_; G02_;

Pre-read buffer T__; S__; G00_; G41_; G01_; G02_;

Execution block T__; S__; G00_; G41_; G01_; G02_;

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.

143
12. Tool Offset Functions
12.3 Tool radius compensation

Start of movement for tool radius compensation

(1) For inner side of corner

Linear Linear Linear Circular

θ Program path θ
r = Compensation amount r Program
path
Tool center path s
s

G42 G42 Tool center


path

Start point Start point Center of circular

(2) For outer side of corner (obtuse angle) [90°≤0<180°]

Linear Linear(Type A) Linear Circular(Type A)


s Tool center path s
Tool center
r path
r = Compensation amount
G41 G41
Program path
θ θ

Start point Start point Center of circular Program


path
Linear Linear(Type B) Linear Circular(Type B)

Point of intersection Point of intersection


s s
Tool center path r Tool center
r r path
r
Program path G41
G41 θ
θ

Start point
Start point Center of circular Program
path

144
12. Tool Offset Functions
12.3 Tool radius compensation

(3) For outer side of corner (obtuse angle) [0<90°]

Linear Linear(Type A) Linear Circular(Type A)

Center
of circular

Tool center path


s s
Tool center path Program path
r r

θ Program path θ

G41 G41

Start point Start point

Linear Linear(Type B) Linear Circular(Type B)


Center
of circular

Tool center path


s s
r Tool center path r Program path

θ Program path θ
r r

G41 G41

Start point Start point

(Note 1) If there is axis movement command in the same block as G41 or G42, compensation is
performed perpendicularly to the next block's direction.

145
12. Tool Offset Functions
12.3 Tool radius compensation

Operation in compensation mode

Relative to the program path (G00, G01, G02, G03), the tool center path is found from the straight
line/circular arc to make compensation.
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.
When the M00 command has been issued during tool radius compensation, pre-reading is
prohibited.

(1) Machining an outer wall


Linear Linear (90°≤θ<180°) Linear Linear (0°<θ<90°)

Tool center path


r
s
θ
θ Program path
r
Program path

s
Point of intersection Tool center path

Linear Circular (90°≤θ180°) Linear Circular (0°<θ<90)

Tool center path


θ s
r

r r Program path θ Program path


r

s Tool center path


Center of circular
Center of circular

146
12. Tool Offset Functions
12.3 Tool radius compensation

Circular Linear (90°≤θ<180°) Circular Linear (0°<θ<90°)

Center of circular Program path


Program path
θ
θ
r
r r
Tool center path r Tool center path Center of
circular
s
Point of intersection
s
Circular Circular (90°≤θ<180°) Circular Circular (0°<θ<90°)

Center of circular

Program path
θ Program path

r θ
r
Tool center r r
s path Tool center path
Point of
intersection
Center of circular Center of circular s Center of circular

147
12. Tool Offset Functions
12.3 Tool radius compensation

(2) Machining an inner wall


Linear Linear (Obtuse angle) Linear Linear (Acute angle)

θ
Program path θ r Program path
r
s s
Point of Tool center path
r Tool center path
intersection

Linear Circular (Obtuse angle) Linear Circular (Acute angle)

θ
Program path Program path Center of
r θ circular
s s
Tool center path Point of Tool center path
intersection Point of r
r
intersection

Center of circular

Circular Linear (Obtuse angle) Circular Linear (Acute angle)

θ
Center of circular
Program path
θ Program path
s
s Tool center path
Point of
r Point of intersection
intersection r Tool center path

Center of circular

148
12. Tool Offset Functions
12.3 Tool radius compensation

Circular Linear (Obtuse angle) Circular Linear (Acute angle)

Point of intersection Tool center θ Center of circular


s path

r
θ
Center of
Program path s
Tool center
Center of Center of Point of
path
circular circular intersection
r

Program 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

Program path End point of


circular
r

s
r
R

Center of circular

(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.

Program error stop


Tool center path
r Center of circular A

r
Program path
A B

Line intersecting
circulars A, B

149
12. Tool Offset Functions
12.3 Tool radius compensation

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.

Tool radius compensation cancel operation

(1) For inner side of corner

Linear Linear Circular Linear

θ Program path θ

r = Compensation amount r Program path


s Tool center path s

G40 G40
Tool center
path
End point End point
Center of circular

150
12. Tool Offset Functions
12.3 Tool radius compensation

(2) For outer side of corner (obtuse angle)

Linear Linear (Type A) Circular Linear (Type A)


s Tool center path s

r = Compensation amount r
Tool center path
G40 G40
Program path
θ θ

End point End point


Program
Center of
path
circular

Linear Linear (Type B) Circular Linear (Type B)

Point of intersection Point of intersection


s s
Tool center path Tool center
r r path
r r

G40 Program path G40


θ θ

Program
path
End point End point
Center of circular

151
12. Tool Offset Functions
12.3 Tool radius compensation

(3) For outer side of corner (acute angle)


Linear Linear (Type A) Circular Linear (Type A)

Center of circular
s Tool center path

r Tool center path


Program path s
θ
r Program path
G40
θ
G40

End point

End point

Linear Linear (Type B) Circular Linear (Type B)


Center of circular

Tool center path

Tool center path


r r
Program path
s Program path s
θ θ
r r

G40 G40

End point End point

152
12. Tool Offset Functions
12.3 Tool radius compensation

12.3.2 Other operations during tool radius compensation

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
Inserted intersection Inserted
circular s Tool center path circular Program path
r = Compensation
r = Compensation amount amount
s
Program path 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 N5


N1 G28X0Y0 ;
Program path N2 G91G01G42X20.Y20.D1F100 ;
N3 G39X40. ;
N4 G39Y40. ;
N6 N4
N5 G39X-40. ;
N6 Y-40. ;
N7 G40X-20.Y-20. ;
N7 N8 M02 ;
N3
N2
X
D1=5.000
N1

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.)

153
12. Tool Offset Functions
12.3 Tool radius compensation

2 2
i +j
r2 = ×r1
j

r1
Tool center path j
r1 N15 i
N13
N14 N16
Program path
N12
N11

N11G1Xx11;N12G38Yy12;N13G38Xx13;N14G38Xx14Yy14;N15G38Xx15IiJjDd2;N16G40Xx16Yy16;

Vector hold Vector change

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 Left-hand compensation Right-hand compensation
G42 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.5 "Precautions for tool diameter compensation" for the movement when the
symbol is changed.
Linear Linear

Tool center path


r
Point of intersection
r If there is no point of
intersection when the
Program path
G41 G42 compensation direction
G41 is changed.

r
r

154
12. Tool Offset Functions
12.3 Tool radius compensation

Linear ↔ Circular

r
r

G41 G42 G41 G41 G42

Program path

r r

Tool center path

Linear return
G41
Tool center path
G42
r
Program path

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

155
12. Tool Offset Functions
12.3 Tool radius compensation

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


S
S

Intermediate point

N5 N6 N7 N8
~

(G41)
N5 G91 G01 X60. Y30. ; Temporarily no compensation vectors at intermediate
N6 G28 X50. Y-40. ; point.
(Reference point when there is no intermediate point)
N7 X30. Y-60. ;
N8 X70. Y40. ;
~

(2) G33 thread cutting command


Tool nose radius compensation does not apply to the G33 block.
G33
Point of
intersection
Tool center path
(G41)
r

Program 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.

156
12. Tool Offset Functions
12.3 Tool radius compensation

Blocks without movement and pre-read inhibit M command

The following blocks are known as blocks without movement.


a. M03 ; .................................. M command
b. S12 ; .................................. S command
c. T45 ; .................................. T command
d. G04 X500 ; ........................ Dwell
e. G22 X200. Y150. Z100 ; .... Machining inhibit region setting No movement
f. G10 L10 P01 R50 ; ............ Offset amount setting
g. G92 X600. Y400. Z500. ; ... Coordinate system setting
h. (G17) Z40. ; ...................... Movement but not on offset plane
i. G90 ; .................................. G code only
j. G91 X0 ; ............................ 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.
N2
N1 X30. Y60. ;
N2 G41 D10 ; Block without N3
movement
N3 X20. Y-50. ;
N1
N4 X50. Y-20. ; N4

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 X30. Y60. ; N2, 3, 4, 5, 6
N2 G41 D10 ;
N3 G4 X1000 ; N7
Block without Point of
N4 F100 ; intersection
movement N1
N5 S500 ;
N8
N6 M3 ;
N7 X20. Y-50. ;
N8 X50. Y-20. ;

N2 N5
N1 G41 X30. Y60. D10 ;
N6
N2 G4 X1000 ;
Point of
N3 F100 ; Block without N1 intersection
N4 S500 ; movement N7
N5 M3 ;
N6 X20. Y-50. ;
N7 X50. Y-20. ;

157
12. Tool Offset Functions
12.3 Tool radius compensation

(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 G91 X100. Y200. ; N7 N8


N7 G04 X P1000 ; Block without
movement
N8 X200. ;
N6 N8

Block N7 is executed
N6 here.

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.

N11

N6 X100. Y200. ; N6 N11


N7 G4 X1000 ; N7 N10

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

158
12. Tool Offset Functions
12.3 Tool radius compensation

(3) When commanded together with compensation cancel

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

N6

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.
(a,b) Hypothetical tool center path

(i,j)
N1 (G41) G1X_ ;
N2 A
Tool center path N2 G40XaYbIiJj;
G41 r r
N1
Program 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.
(a,b)

N2
Tool center path A
G41 When the I and j symbols
N1 r
in the above program
Program path r example are incorrect

(i,j)

Hypothetical tool center path

159
12. Tool Offset Functions
12.3 Tool radius compensation

If the compensation vector obtained with point of intersection calculation is extremely large, a
perpendicular vector will be created in the block before G40.
(a,b)
G40
Tool center path A
G41
r
Program path
(i,j) r
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.
r
Uncut section

N2 N1 (G42,G91) G01X200. ;
(i,j) N2 G02 J150. ;
N1 r N3 G40 G1X150. Y-150. I-100. J100. ;
Program path
r
Tool center path
G42
G40
N3

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.

Program path N1

N2
θ
r
Tool center path
r
Center of circular
This movement and feedrate
fall under block N2.

Stop point with single block

160
12. Tool Offset Functions
12.3 Tool radius compensation

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

Function and purpose

The compensation direction can be intentionally changed by issuing the G41/G42 command and
I, J, K in the same block.

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.

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


N110
N120 (G40)
N130
Y N140 N150 N100 G91 G41 X100. Y100. I150. D1 ;
D1 N110 G04 X1000 ;
N100 N120 G01 F1000 ;
X N130 S500 ;
N140 M03 ;
N150 X150. ;
Program path

Tool center path

(2) When there are no movement commands at the compensation start.

Y
N3
(G40)
X
N2
N1 G41 I150. D1 ;
N2 G91 X100. Y100. ;
D1 N1
N3 X150. ;

161
12. Tool Offset Functions
12.3 Tool radius compensation

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

(I,J)N110
(2)
(G17 G41 G91)
N100 D1
N120 N100 G41 G00X150. J50. ;
(1)
(2) N110 G02 I150. ;
N120 G00 X−150. ;
(N120)
Y

X
(1) I, J type vector
Program path (2) Intersection point calculation
type vector
Tool center path
Tool path after interrupt

(Reference)
(a) G18 plane

(K,I) N110

N100 (G18 G41 G91)


N120 N100 G41 G00 Z150. I50. ;
N110 G02 K50. ;
(N120) N120 G00 Z−150. ;
X

(b) G19 plane

(J,K) N110
(G19 G41 G91)
N100
N100 G41 G00 Y150. K50. ;
N120
N110 G02 J50. ;
N120 G00 Y−150. ;
(N120)

162
12. Tool Offset Functions
12.3 Tool radius compensation

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

N3 N4

N5
(I,J) N1 G41 D1 G01 F1000 ;
N2
N2 G91 X100. Y100. ;
N3 G41 I50. ;
N4 X150. ;
N5 G40 ;
N1
D1

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. (Example 2) With I-100.
(-100, 0 IJ direction)
Offset vector direction

(100, 0 IJ direction)
Offset vector direction

(2) In G42 mode


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. (Example 2) With I-100.
(0, 100 IJ direction) Offset vector direction

Offset vector direction (-100, 0 IJ direction)

163
12. Tool Offset Functions
12.3 Tool radius compensation

Selection of offset modal

The G41 or G42 modal can be selected at any time.


y N1 G28 X0 Y0 ;
N2 G41 D1 F1000 ;
x N3 G01 G91 X100. Y100. ;
(I,J) N4 G42 X100. I100. J-100. D2 ;
N4
N3 D2 N5 X100. Y-100. ;
N6 G40 ;
N2
N7 M02 ;
D1 N5
N6 %

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)
D1 A D1
(I,J) N100 G41 X150. I50. ;
Y N100 N110 X100. Y-100. ;
N110
X

Vector A is the offset amount entered in offset number modal D1 in the N200 block.

< Example 2>


(G41 D1 G91)
B D2
D1

Y (I,J) N200 G41 X150. I50. D2 ;


N200
N210 X100. Y-100. ;
N210
X

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

164
12. Tool Offset Functions
12.3 Tool radius compensation

Precautions

(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) will occur.
An IJ designation in an arc mode functions as an arc center designation in the offset mode.
(2) 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.
Y

N1 G28 X0Y0 ;
X Cut section
N2 G42 D1 F1000 ;
(I,J)
N3 G91 X100. ;
N4 G42 X100. Y100. I10. ;
N5 X100. Y-100. ;
N6 G40 ;
N6 N7 M02 ;
N2 N4 N5

N3

(3) The vectors differ for the G38 I _J_ (K_) command and the G41/G42 I_J_(K_) command.
G38 G41/G42
~

~
(G41) (G41)
~

~
G38 G91 X100. I50. J50. ; G41 G91 X100. I50. J50. ;
Example

(I J)
(I J)
(Offset amount) (Offset amount)

Vector in IJ direction having an offset Vector perpendicular in IJ direction and


amount size having an offset amount size

165
12. Tool Offset Functions
12.3 Tool radius compensation

(4) 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 I, J (K) Offset method


No No Intersection point calculation type vector
No Yes Intersection point calculation type vector
Yes No Intersection point calculation type vector
I, J, type vector
Yes Yes
No insertion block

N3 A
N1 G91 G01 G41 X200. D1 F1000 ;
N2 X-150. Y150. ;
N3 G41 X300. I50. ;
(I,J) N4 X-150. Y-150. ;
N4 N5 G40 X-200. ;

N2
Y
During the I, J type vector compensation,
the A insertion block will not exist.
N1 X
N5

166
12. Tool Offset Functions
12.3 Tool radius compensation

12.3.4 Interrupts during tool radius compensation

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)

N1 G41D1; S (Stopping position


for single block)
N2 X20. Y50. ; MDI interrupt

N3 G3 X40. Y-40. R70. ; S1000 M3;

N2 N3

(2) Interrupt with movement


The offset vectors are automatically re-ca
lculated at the movement block after interrupt.

With linear interrupt

S
N1 G41D1;
N2 X20. Y50. ; MDI interrupt

N3 G3 X40.Y-40. R70. ; X50. Y-30. ; S

X30. Y50. ;

N2
N3

With circular interrupt

N1 G41 D1 ; S
N2 X20. Y50. ; MDI interrupt

N3 G3 X40. Y-40. R70.; G2 X40. Y-40. R70. ;


G1 X40. ;
S

N3
N2

167
12. Tool Offset Functions
12.3 Tool radius compensation

Manual interrupt

(1) Interrupt with manual absolute OFF. Tool path after interrupt
The tool path is shifted by an amount
equivalent to the interrupt amount.
Tool path after
Interrupt compensation
Program 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

168
12. Tool Offset Functions
12.3 Tool radius compensation

12.3.5 General precautions for tool radius compensation

Precautions

(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 (−) G41 offset amount (−) or G42 offset amount (+)
(a) (b)

169
12. Tool Offset Functions
12.3 Tool radius compensation

12.3.6 Changing of offset No. during compensation mode

Function and purpose

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 ;


α = 0, 1, 2, 3
N101 G0α Xx1 Yy1 ;
N102 G0α Xx2 Yy2 Dr2 ; ................................... Offset No. changed
N103 Xx3 Yy3 ;

(1) During linear linear

The offset amount designated The offset amount designated


with N101 will be applied. with N102 will be applied.

Tool center path r2


r1

r1
N102
N101 r2
N103
Program path

Tool center path r1

r1
Program path
r1
r1

r2

r2

170
12. Tool Offset Functions
12.3 Tool radius compensation

(2) Linear circular

Tool center path r2


Program path N102
r1 r1 G02

N101

Tool center path


r1 Center of circular
Program path
r1
N101
r1
r1
N102
G03
r2

Center of circular

(3) Circular circular

Tool center path


r1
Program path
N101
r1
r2
N102

Center of circular

Center of circular

r1
r1

r1
r1

r2
Tool center path
Program path Center of circular
Center of circular

171
12. Tool Offset Functions
12.3 Tool radius compensation

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

Function and purpose

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.

Example of program

When the following type of program is created:

Tool center path


N1 G91 G00 G41 X 500. Y 500. D1 ;
N2 S1000 ; N6 N4 N6
N3 M3 ;
N4 G01 Z-300. F1 ;
N6 Y 100. F2 ; N4: Z axis lowers
• (1 block)
• N1 Y
Y
• N1
• Z
X

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

N1 G91 G00 G41 X 500. Y 500. D1;


N2 S1000 ; N6
N3 M3 ; N4
N4 Z-250. ;
N5 G01 Z-50. F1 ; N6 N5
N6 Y 100. F2 ;
Cut in
Y Z
N1
X X

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.

172
12. Tool Offset Functions
12.3 Tool radius compensation

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 G91 G00 G41 X 500. Y 400. D1 ;


N2 Y100. S1000 ;
N6 N6
N6
N3 M3 ;
N4 Z-250. ; N4

N5 G01 Z-50. F1 ; N2
N5
N6 Y 100. F2 ; N2

Y N1 Y
N1
X Z

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

173
12. Tool Offset Functions
12.3 Tool radius compensation

12.3.8 Interference check

Function and purpose

(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 Parameter Operation
Interference check #8102 : OFF A program error results before the execution of the
alarm function #8103 : OFF block in which the cut arises, and operation stops.
Interference check #8102 : ON The tool path is changed so that workpiece is not
avoidance function #8103 : OFF cut into.
Interference check #8103 : ON Cutting proceeds unchanged even when it occurs.
invalid function Use this for microscopic segment programs.
(Note) #8102 COLL. ALM OFF (interference check avoidance)
#8103 COLL. CHK OFF (interference check invalid)

Detailed description

(Example)
Avoidance path

Outer diameter
of tool

(G41)
N1 G90 G1 X50. Y-100.;
N1 N3
N2 X70. Y-100.;
N3 X120. Y0;

N2

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. Y−40. ;

(2) With avoidance function


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

174
12. Tool Offset Functions
12.3 Tool radius compensation

(3) With interference check invalid function


The tool passes while cutting the N1 and N3 line.

(2) (3)' (4)'

(1) (2)' (3) N3

(4) (1)'
N1

N2

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.

175
12. Tool Offset Functions
12.3 Tool radius compensation

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


Program path
r

N1 N3
Vectors intersect

N2

When interference check cannot be executed

(1) 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)
(2) When there is an interference following the fourth movement block
Tool center path

Program path
N6
N1
N5
N2 Interference check is not possible

N3
N4

176
12. Tool Offset Functions
12.3 Tool radius compensation

Operation during interference avoidance

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

N1 N3

N2

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

Program path

N2 N3

N1

Tool center path when interference is avoided

Linear movement Tool center path without interference check

r
Program path

N2 N3

N1 r Center of circular

177
12. Tool Offset Functions
12.3 Tool radius compensation

Avoidance
N3 vector

N2

Tool center path


N1 Avoidance
vector
Program path
If all of the line vectors for
the interference avoidance
are deleted, create a new N4
avoidance vector as shown r2
on the right to avoid the r1
interference. N3

Avoidance vector 1
Tool center path 2 Avoidance vector 2 N2

r2 r1
Tool center path 1
N1
Program path

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

Program path

178
12. Tool Offset Functions
12.3 Tool radius compensation

Interference check alarm

The interference check alarm occurs under the following conditions.

(1) When the interference check alarm function has been selected
(a) 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
N1
point of the N1 block have all
been deleted, program error
(P153) results prior to N1
execution.
1
N2
23
N3
4

(2) When the interference check avoidance function has been selected
(a) 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.
(i) When, in the figure, the N4
N2 interference check is
conducted, the N2 end 3 4
N3
point vectors are all
deleted but the N3 end Alarm stop
point vectors are 2 N2
1
regarded as valid.
Program error (P153) now N1
occurs at the N1 end
point.

(ii) In a case such as that 1234


shown in the figure, the
tool will move in the
reverse direction at N2.
Program error (P153)
occurs after N1 execution.

N1 N4
N2 N3

179
12. Tool Offset Functions
12.3 Tool radius compensation

(b) When avoidance vectors cannot be created


(i) Even when, as in the
figure, the conditions for
creating the avoidance Alarm stop
vectors are met, it may
still be impossible to
create these vectors or
the interference vectors N1
may interfere with N3.
Program error (P153) will
occur at the N1 end point N2
when the vector
intersecting angle is more
N4
than 90°.

N3

Alarm stop

N1

N2
N4

N3

Angle of
intersection

(c) 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

Program path Tool center


path
Stop

180
12. Tool Offset Functions
12.4 Programmed offset input

12.4 Programmed offset input; G10


Function and purpose

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.

Command format

(1) Workpiece offset input


G90 G10 L2 P__Xp__Yp__Zp__;
G91
P : 0 External workpiece
1 G54
2 G55
3 G56
4 G57
5 G58
6 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.
(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.

(2) Tool offset input


(a) For tool offset memory I
G10 L10 P__R__ ;
P : Offset No.
R : Offset amount

(b) For tool offset memory II


G10 L10 P__R__ ; Tool length compensation shape offset
G10 L11 P__R__ ; Tool length compensation wear compensation
G10 L12 P__R__ ; Tool radius shape offset
G10 L13 P__R__ ; Tool radius wear compensation

181
12. Tool Offset Functions
12.4 Programmed offset input

Detailed description

(1) Program error (P171) will occur if this command is input when the specifications are not
available.
(2) G10 is an unmodal command and is valid only in the commanded block.
(3) 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.
(4) 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.
(5) Decimal point inputs can be used for the offset amount.
(6) 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.
(7) 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.
(8) L2 can be omitted when the workpiece offset is input.
(9) Do not command G10 in the same block as the fixed cycle and sub-program call command.
This will cause malfunctioning and program errors.

Example of program

(1) Input the offset amount from the tape.

• • • • • • ; G10L10P10R–12345 ; G10L10P05R98765 ; G10L10P30R2468 ; • • •

H10=–12345 H05=98765 H30=2468

(2) Updating of offset amount


(Example 1) Assume that H10 = -1000 is already set.
N1 G01 G90 G43 Z – 100000 H10; (Z = –101000)
N2 G28 Z0;
(The mode is the G91 mode, so –500
N3 G91 G10 L10 P10R – 500 ;
is added.)
N4 G01 G90 G43 Z – 100000
(Z = –101500)
H10 ;

182
12. Tool Offset Functions
12.4 Programmed offset input

(Example 2) Assume that H10 = –1000 is already set.


Main program
N1 G00 X100000 ; a
N2 #1 = –1000 ;
N3 M98 P1111 L4 ; b1, b2, b3, b4

Subprogram O1111
N1 G01 G91 G43 Z0 H10 F100 ; c1, c2, c3, c4
G01 X1000 ; d1, d2, d3, d4
#1 = #1 − 1000 ;
G90 G10 L10 P10 R#1 ;
M99;

(a) (b1) (b2) (b3) (b4)


c1 (Note)

1000 1000 1000 1000


d1 Final offset amount
c2 will be H10= –5000.
d2
c3
d3
c4
d4

1000 1000 1000 1000

(Example 3) The program for Example 2 can also be written as follows.


Main program
N1 G00 X100000 ;
N2 M98 P1111 L4 ;

Subprogram
O1111 N1
G01 G91 G43 Z0 H10 F100 ;
N2 G01 X1000 ;
N3 G10 L10 P10 R−1000 ;
N4 M99 ;

183
12. Tool Offset Functions
12.4 Programmed offset input

(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 X−15.000 Y−15.000 ;
N102 X0 Y0 ;
M02 ;

-X -20. -10. M

Basic machine coordinate


system zero point

N100

G54 coordinate before change


-X -10.
N101
(W1)
G54 coordinate after
change N102
-X
W1

-Y -20.

-Y
-Y

(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 X = +5.000

Y=0 Y = +5.000

When workpiece coordinate system offset amount is set in G54 to G59


G90 G10 L2 P1 X−10.000 Y−10.000 ;
G90 G10 L2 P2 X−20.000 Y−20.000 ;
G90 G10 L2 P3 X−30.000 Y−30.000 ;
G90 G10 L2 P4 X−40.000 Y−40.000 ;
G90 G10 L2 P5 X−50.000 Y−50.000 ;
G90 G10 L2 P6 X−60.000 Y−60.000 ;

184
12. Tool Offset Functions
12.4 Programmed offset input

(4) When using one workpiece coordinate system as multiple workpiece coordinate
systems

#1 = −50. #2 = 10. ;
M98 P200 L5 ;
Main program
M02 ;
%
N1 G90 G54 G10 L2 P1 X#1 Y#1 ;
N2 G00 X0 Y0 ;
N3 X−5. F100 ;
N4 X0 Y−5. ;
Subprogram N5 Y0 ;
O200 N6 #1 = #1 + #2 ;
N7 M99 ;
%

-X -60. -50. -40. -30. -20. -10. M


Basic machine coordinate
system zero point
G54”” W
-10.
5th time
G54”’ W
-20.
4th time
G54” W
-30.
3rd time
G54’ W
-40.
2nd time
G54 W
-50.
1st time -Y

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 G90 G10 L10 P10R−100 ;
N2 G43 Z−10000 H10 ;
N3 G0 X–10000 Y−10000 ;
N4 G90 G10 L10 P10 R−200 ; .. The H10 offset amount is updated when the N4 block is
executed.

185
12. Tool Offset Functions
12.5 Tool position offset

12.5 Tool position offset; G45 to G48

Function and purpose

Using the G45 to G46 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 to Dn
(The numbers given are the total number of sets for tool length offset, tool position offset
and cutter compensation.)
G45 command G46 command G47 command G48 command
Expansion by offset Reduction by offset × 2 expansion by offset × 2 reduction by offset
amount only amount only amount amount

Internal Internal Internal Internal


arithmetic arithmetic arithmetic arithmetic
processing processing processing processing

Movement Movement Movement Movement


amount amount amount amount
Start point End point Start point End point Start point End point Start point End point

± =
(Program command value) (Offset amount) (Movement amount after offset)

Command format

G45 Xx Dd ; Expansion of movement amount by offset amount set in offset memory


G46 Xx Dd ; Reduction of movement amount by offset amount set in offset memory
G47 Xx Dd ; Expansion of movement amount by double the offset amount set in offset
memory
G48 Xx Dd ; Reduction of movement amount by double the offset amount set in offset
memory

186
12. Tool Offset Functions
12.5 Tool position offset

Detailed description

Details for incremental values are given below.


Movement amount of
Example
Command equivalent command
(when X = 1000)
(assigned offset amount = l)
l = 10 X= 1010
G45Xx Dd X(x+l)
l = −10 X= 990
l = 10 X = −1010
G45X−x Dd X−(x+l)
l = −10 X = −990
l = 10 X= 990
G46Xx Dd X(x−l)
l = −10 X= 1010
l = 10 X = −990
G46X−x Dd X−(x−l)
l = −10 X = −1010
l = 10 X= 1020
G47Xx Dd X(x+2∗l)
l = −10 X= 980
l = 10 X = −1020
G47X−x Dd X−(x+2∗l)
l = −10 X = −980
l = 10 X= 980
G48Xx Dd X(x−2∗l)
l = −10 X= 1020
l = 10 X = −980
G48X−x Dd X−(x−2∗l)
l = −10 X = −1020

187
12. Tool Offset Functions
12.5 Tool position offset

Checkpoints for G45 to G48 use


(1) 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.)
(2) 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.
Start point

End point Programmed


command G48X20.000D01;
Offset Offset amount = +15.000
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 G45X0 D01; G45X − 0 D01; G46X0 D01; G46X − 0 D01;
Equivalent
X1234; X − 1234; X − 1234; X1234;
command
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 to 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.)

Programed path G45


1/4 circle G45 for compensation outside
the circle
G46 G46 for compensation inside
the circle

G47
1/2 circle
G47 for compensation outside
the circle
G48 G48 for compensation inside
the circle

Programmed path

188
12. Tool Offset Functions
12.5 Tool position offset

G45
3/4 circle

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

Programmed path

Example of program

(Example 1)

Y
End point
Tool nose center path

Programmed
1000
path 200
Tool

X
Start point
1000
Programmed arc
center

Tool position offset with 1/4 arc command


It is assumed that offset has already been provided in the + X direction by D01 = 200.
G91 G45 G03 X−1000 Y1000 I−1000 F1000 D01;
Even if the offset numbers are not assigned in the same block as the G45 to 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 to G48 block.
In other words, even for an absolute value command, offset can be applied to
movement amounts (incremental values) in the same block.

189
12. Tool Offset Functions
12.5 Tool position offset

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.)
G01 G45X220. Y60. D20 ;
(D20) = +50. 000
Y End point after offset
110.
50.
60.
50.
Start point Programmed end point
X
220. 270.

(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 to G42).

Programmed path Tool nose center path

Desired shape G01 G45 Xx1 Dd1 ;


Xx2 Yy2 ;
G45 Yy3 ;

Workpiece

Machined Y
shape

“l”:offset amount setting


Under-cutting
l
X
Tool

Programmed path Tool nose center path

G01 Xx1 ;
Machined shape G45 Xx2 Yy2 Dd2 ;
Yy3 ;

Workpiece Desired shape

Y
l “l”:offset amount setting

Over-cutting X
Tool

190
12. Tool Offset Functions
12.5 Tool position offset

(Example 2)

N4 Tool nose center path

N3 N1 G46 G00 Xx1 Yy1 Dd1 ;


N2 G45 G01 Yy2 Ff2 ;
N3 G45 G03 Xx3 Yy3 Ii3 ;
Programmed path N4 G01 Xx4 ;

Y N2

N1
X

(Example 3)
When the G45 to 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).

Programmed path Tool nose center path


N107
N112 N111 N106
20R
N104
N110 N108 N105
10R
30 N113
N109
N114
N103

40
N115 10R

N116 N101 N102


40
N100

30 10 30 30 40 10

Start point

191
12. Tool Offset Functions
12.5 Tool position offset

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 X−20.0 Y20.0 J20.0 ;
N106 G45 G01 Y0 ;
N107 G47 X−30.0 ;
N108 Y−30.0 ;
N109 G48 X−30.0 ;
N110 Y 30.0 ;
N111 G45 X−30.0 ;
N112 G45 G03 X−10.0 Y−10.0 J−10.0 ;
N113 G45 G01 Y−20.0 ;
N114 X10.0 ;
N115 Y−40.0 ;
N116 G46 X−40.0 Y−40.0 ;
N117 M02 ;
%

192
12. Tool Offset Functions
12.6 Inputting the tool life management data

12.6 Inputting the tool life management data


Function and purpose

Using the G10 command, the tool life management data can be registered, changed and
added to, and preregistered groups can be deleted.

Command format

(1) Registering data


G10 L3 ; Start of life management data registration
P_L_Q_; Registration of the group No., the life, the control
method
T_H_D_; Registration of the tool No., the length compensation First group
No., the radius compensation No.
T_H_D_;
P_L_Q_; Registration of next group No., the life, the control
method
T_H_D_; Registration of the tool No., the length compensation Next group
No., the radius compensation No.
G11 ; End of life management data registration
P : Group No.
L : Life
Q : Control method
T : Tool No., The spare tools are selected in the order of the tool numbers
registered here.
H : Length compensation No.
D : Radius compensation No.

(2) Changing and adding groups


G10 L3 P1; Start of life management data change or addition
P_L_Q_; Change or addition of the group No., the life,
the control method
T_H_D_; Change or addition of the tool No., the length First group
compensation No., the radius compensation No.
T_H_D_;
P_L_Q_; Change or addition of next group No., the life,
the control method
T_H_D_; Change or addition of the tool No., the length Next group
compensation No., the radius compensation No.
G11 ; End of life management data change or addition
P : Group No.
L : Life
Q : Control method
T : Tool No.
H : Length compensation No.
D : Radius compensation No.

(3) Deleting a group


G10 L3 P2; Start of life management data deletion
P_; Delete the group No.
P_; Delete next group No.
G11 ; End life management data deletion
P : Group No.

193
12. Tool Offset Functions
12.6 Inputting the tool life management data

Example of operation

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

Command range

Item Command range


Group No. (Pn) 1 to 99999999
Life (Ln) 0 to 9999 times (No. of times control method)
0 to 4000 minutes (time control method)
Control method (Qn) 1 to 3
1: Number of mounts control
2: Time control
3: Number of cutting times control
Tool No. (Tn) 1 to 99999999
Length compensation No. (Hn) 0 to 200
Radius compensation No. (Dn) 0 to 200

194
12. Tool Offset Functions
12.6 Inputting the tool life management data

Precautions

(1) The tool life data is registered, changed, added to or deleted by executing the program in the
memory or MDI mode.
(2) The group No. and tool No. cannot be commanded in duplicate.
(3) When two or more addresses are commanded in one block, the latter address will be valid.
(4) If the life data (L_) is omitted, the life data for that group will be "0".
(5) If the control method (Q_) 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.
(6) If the length compensation No. (H_) is omitted, the length compensation No. for that group will
be "0".
(7) If the radius compensation No. (D_) is omitted, the radius compensation No. for that group will
be "0".
(8) Programming with a sequence No. is not possible between G10 L3 and G11.
(9) If the usage data count valid signal (Y2CA) is ON, G10 L3 cannot be commanded.
(10) The registered data is held even if the power is turned OFF.
(11) When G10 L3 is commanded, the commanded group and tool will be registered after all of the
registered data is erased.
(12) The change and addition conditions in the G10L3P1 command are as follows.
(a) Change conditions
1) Both the commanded group No. and tool No. are registered.
→Change the commanded tool No. data.
(b) Additional conditions
1) Neither the commanded group No. nor tool No. is registered.
→Additionally register the commanded group No. and tool No. data.
2) 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.

195
13. Program Support Functions
13.1 Canned cycles

13. Program Support Functions


13.1 Canned cycles

13.1.1 Standard canned cycles; G80 to G89, G73, G74, G76

Function and purpose

These standard canned cycles are used for predetermined sequences of machining operations
such as positioning, hole drilling, boring, tapping, etc. which are specified in a block. The various
sequences in the table below are provided for the standard canned cycles.
By editing the standard canned cycle subprogram, the canned cycle sequence can be changed by
the user. The user can also register and edit an original canned cycle program. For the standard
canned cycle subprogram, refer to the list of the canned cycle subprogram in the appendix of the
operation manual. The list of canned cycle functions for this control unit is shown below.
Hole machining Operation at hole bottom Return
G code start operation Application
(−Z direction) Dwell Spindle (+Z direction)
G80 ⎯ ⎯ ⎯ ⎯ Cancel
Drill, spot drilling
G81 Cutting feed ⎯ ⎯ Rapid feed
cycle
Drill, counter
G82 Cutting feed Yes ⎯ Rapid feed
boring cycle
Deep hole drilling
G83 Intermittent feed ⎯ ⎯ Rapid feed
cycle
Reverse
G84 Cutting feed Yes Cutting feed Tapping cycle
rotation
G85 Cutting feed ⎯ ⎯ Cutting feed Boring cycle
G86 Cutting feed Yes Stop Rapid feed Boring cycle
Forward
G87 Cutting feed ⎯ Cutting feed Back boring cycle
rotation
G88 Rapid traverse Yes Stop Rapid feed Boring cycle
G89 Cutting feed Yes ⎯ Cutting feed Boring cycle
G73 Cutting feed Yes ⎯ Rapid feed Stepping cycle
Forward Reverse tapping
G74 Intermittent feed Yes Cutting feed
rotation cycle
Oriented
G76 Cutting feed — Rapid feed Fine boring cycle
spindle stop
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.

196
13. Program Support Functions
13.1 Canned cycles

Command format

G8∆ (G7∆) X_ Y_ Z_ R_ Q_ P_ F_ L_ S_ , S _ ,I_ ,J_;


G8∆ (G7∆) X_ Y_ Z_ R_ Q_ P_ F_ L_ S_ , R _ ,I_ ,J_;

G8∆ (G7∆) : Hole machining mode


X_ Y_ : Hole positioning data
Z_R_ Q_ P_ F_ : Hole machining data
L_ : Number of repetitions
S_ : Spindle rotation speed
, S_ : Spindle rotation speed during return
,R_ : Synchronization changeover
, I_ : Positioning axis in-position width
,J_ : 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, synchronization changeover (or spindle
rotation speed during return), positioning axis in-position width and drilling axis in-position width.

Detailed description

(1) Outline of data and corresponding addresses


(a) Hole machining mode: Canned cycle modes such as drilling, counter boring, tapping and
boring.
(b) Hole position data: Data used to position the X and Y axes. (Unmodal)
(c) Hole machining data: Actual machining data used for machining. (Modal)
(d) Number of repetitions: Number of times to carry out hole machining. (Unmodal)
(e) Synchronization changeover: Synchronous/asynchronous tapping selection command is
issued during G84/G74 tapping. (Modal)

(2) 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.

197
13. Program Support Functions
13.1 Canned cycles

(3) There are 7 actual operations which are each described in turn below.

Operation 1 Operation 2
Initial point
Operation 3 Operation 7
R point

Operation 4 Operation 6

Operation 5

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.
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.
(4) Canned cycle addresses and meanings
Address Significance
G Selection of hole machining cycle sequence (G80 to G89, G73, G74, G76)
X Designation of hole drilling position (absolute value or incremental value)
Y Designation of hole drilling position (absolute value or incremental value)
Z Designation of hole bottom position (absolute value or incremental value)
Designation of dwell time at hole bottom position (decimal points will be
P
ignored)
Designation of cut amount for each cutting pass with G73 or G83, or
Q
designation of the shift amount at G76 or G87 (incremental value)
R Designation of R point position (absolute value or incremental value)
F Designation of feed rate for cutting feed
L Designation of number of repetitions. 0 to 9999
Designation of shift amount at G76 or G87 (incremental value)
I, J, K (The shift amount is designated with the Q address depending on the
parameter setting.)
S Spindle rotation speed command
,S Spindle rotation speed designation for synchronous tap return
,R Synchronous/asynchronous tap cycle selection

198
13. Program Support Functions
13.1 Canned cycles

(5) Difference between absolute value command and incremental value command
For absolute value For incremental value

-r

R point +r R point

-z

-z
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


Control parameter Synchronous/
Program G84×××, Rxx
Synchronous tapping asynchronous
, R00 ⎯
Asynchronous
, Rxx OFF
No designation ON
Synchronous
, R01 ⎯
− is irrelevant to the setting

(b) Selection of asynchronous tapping cycle feed rate


Control parameter
G94/G95 F command value Feed designation
F1-digit value
OFF F designation
Other than F0 to Per-minute feed
G94 F8
ON
F0 to F8 (no
F1-digit feed
decimal point)
G95 ⎯ F designation Per-revolution feed
− is irrelevant to the setting

(c) Spindle rotation speed during return of synchronous tapping cycle


Meaning of Command range
Address Remarks
address (unit)
,S Spindle rotation 0 to 99999 (r/min) The data is held as modal
speed during information.
return 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.

199
13. Program Support Functions
13.1 Canned cycles

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 Positioning plane Hole drilling axis
G17 (X − Y) Xp − Yp Zp
G18 (Z − X) Zp − Xp Yp
G19 (Y − Z) Yp − Zp 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 ... W__; The W axis is used as the hole drilling axis.
G81 ... Z __; The Z 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.

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.
Command range
Address Meaning of address Remarks
(unit)
In-position width
,I When a value exceeding the
(position error amount)
0.001 to 999.999 command range is issued, a
In-position width for drilling (mm) program error will occur.
,J axis in fixed cycle (position (P35 CMD-VALUE OVER)
error amount)

200
13. Program Support Functions
13.1 Canned cycles

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 X–50. Z–50. R–50. L2 F2000, I0.2, J0.3 ;
:
Operation
Operation1 Operation5 ,I ,J
-50. pattern
-50.
Operation 1 Valid –
Operation2 Operation6 Operation 2 – Invalid
Operation 3 – Invalid
Operation 4 – Valid
Operation3 Operation7 Operation 5 Valid –
Operation4 Operation8 Operation 6 – Invalid
Operation 7 – Invalid
Operation 8 – Valid
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 X–50. Z–50. R–50. F2000, I0.2, J0.3 ;.....(A)
X–10. ; ...................................................................(B)
X–10., I0.2 ; ...........................................................(C)
:
Operation
,I ,J
pattern
Operation 1 Valid –
Operation5 Operation9 Operation 2 – Invalid
Operation1 -10. -10. Operation 3 – Invalid
-50.
Opera- Operation 4 – Valid
Opera-
tion6 tion10 Operation 5 Invalid –
Operation2
Operation 6 – Invalid
Operation 7 – Invalid
Opera- Opera- Operation 8 – Valid
Operation3
tion7 tion11 Operation 9 Valid –
Opera-
Operation 10 – Invalid
Operation4 Operation8 tion12
Operation 11 – Invalid
Operation 12 – Valid

Fig. 2 Operation in fixed cycle modal

201
13. Program Support Functions
13.1 Canned cycles

Setting values of synchronous tap in-position check parameters and tap axis movement

(1) Synchronous tap in-position check settings


Synchron- Hole R point I point →
ous tap bottom in-position R point "P" designation of
improve-m in-position in-position G84/G74 command In-position check during synchronous tap
check
ent check check
‘0’ — — — — Carry out in-position check at I point → R point/R
point/hole bottom.
No "P" designation Hole bottom: Do not carry out in-position check.
‘1’ — — — Example: G84 F1. Z-5. R point: Do not carry out in-position check.
S1000 R-5. I point → R point: Do not carry out in-position check.
"P" designation Hole bottom: Carry out in-position check by tap
Example: G84 F1. Z-5. in-position width.
‘1’ Valid Valid Valid
S1000 PO R point: Carry out in-position check.
R-5. I point → R point: Carry out in-position check.
"P" designation Hole bottom: Carry out in-position check by tap
Example: G84 F1. Z-5. in-position width.
‘1’ Valid Invalid Valid
S1000 PO R point: Do not carry out in-position check.
R-5. I point → R point: Carry out in-position check.
"P" designation Hole bottom: Do not carry out in-position check.
Example: G84 F1. Z-5. R point: Carry out in-position check.
‘1’ Invalid Valid Valid I point → R point: Carry out in-position check.
S1000 PO
R-5.
"P" designation Hole bottom: Do not carry out in-position check.
Example: G84 F1. Z-5. R point: Do not carry out in-position check.
‘1’ Invalid Invalid Valid I point → R point: Carry out in-position check.
S1000 PO
R-5.
"P" designation Hole bottom: Carry out in-position check by tap
Example: G84 F1. Z-5. in-position width.
‘1’ Valid Valid Invalid
S1000 PO R point: Carry out in-position check.
R-5. I point → R point: Do not carry out in-position check.
"P" designation Hole bottom: Carry out in-position check by tap
Example: G84 F1. Z-5. in-position width.
‘1’ Valid Invalid Invalid
S1000 PO R point: Do not carry out in-position check.
R-5. I point → R point: Do not carry out in-position check.
"P" designation Hole bottom: Do not carry out in-position check.
Example: G84 F1. Z-5. R point: Carry out in-position check.
‘1’ Invalid Valid Invalid I point → R point: Do not carry out in-position check.
S1000 PO
R-5.
"P" designation Hole bottom: Do not carry out in-position check.
Example: G84 F1. Z-5. R point: Do not carry out in-position check.
‘1’ Invalid Invalid Invalid I point → R point: Do not carry out in-position check.
S1000 PO
R-5.

(Note 1) The I point refers to the initial point.


(Note 2) "Synchronous tap improvement" in the above table corresponds to #1223 aux07/bit3 Synchronous
tap in-position check improvement, "Hole bottom in-position check" corresponds to #1223 aux07/
bit4 Synchronous tap hole bottom in-position check, and "R point in-position check" corresponds to
#1223 aux07/bit5 Synchronous tap R-point in-position check 2.

202
13. Program Support Functions
13.1 Canned cycles

(2) Relation between the in-position width and tap axis movement for a synchronous tap
in-position check
FIN
R point (1) Section in which the in-
Hole bottom
position check is carried
out by the sv024 value.
↑ (2) Section in which the in-
Speed position check is carried
Time T → out by the TapInp value.
(3) Section in which the in-
Start of
G0 feed position check is carried
In-position to the R
completion of out by the G1inps value.
G1 point →
the G0 feed deceleration G1 deceleration (4) Section in which the in-
from the R start at tap start at tap return →
point → position check is carried
cut-in →
out by the G0inps value.
(4) (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.

203
13. Program Support Functions
13.1 Canned cycles

(3) Relation between the parameter setting values and tap axis movement for a synchronous tap
in-position check
Synchronous In-position In-position In-position Operation at
tap check at check at check at Hole bottom Operation at Operation at I point →
improvement hole bottom R point I point → wait time hole bottom R point R point
R point
Time designated Operation Operation Operation
by "P". determined by determined by determined by
‘0’ — — — Processing time setting of inpos setting of inpos setting of inpos
is several 10ms (#1193) and aux (#1193) and aux (#1193) and aux
when no "P". 07 (#1223): bit 1 07 (#1223): bit 1 07 (#1223): bit 1
parameters. parameters. parameters.
Larger value of Wait until time in Wait until
"P" and TapDwl left column has completion of
‘1’ Not Not Executed (#1313) is valid. elapsed. in-position check
executed executed No dwell by G0inps value.
executed if both
values are 0.
Larger value of Wait until time in Wait until Wait until
"P" and TapDwl left column has completion of completion of
‘1’ Not Executed Executed (#1313) is valid. elapsed. in-position check in-position check
executed No dwell by G1inps value. by G0inps value.
executed if both
values are 0.
Larger value of Wait until dwell Wait until
"P" and TapDwl time in left completion of
‘1’ Executed Not Executed (#1313) is valid. column has in-position check
executed No dwell elapsed after by G0inps value.
executed if both completion of
values are 0. in-position check.
Larger value of Wait until dwell Wait until Wait until
"P" and TapDwl time in left completion of completion of
(#1313) is valid. column has in-position check in-position check
‘1’ Executed Executed Executed Processing time elapsed after by G1inps value. by G0inps value.
is several 10ms if completion of
both values are in-position check.
0.
Larger value of Wait until time in
“P” and TapDwl left column has
‘1’ Not Not Not executed (#1313) is valid. elapsed.
executed executed No dwell
executed if both
values are 0.
Larger value of Wait until time in Wait until
“P” and TapDwl left column has completion of
‘1’ Not Executed Not executed (#1313) is valid. elapsed. in-position check
executed No dwell by G1inps value.
executed if both
values are 0.
Larger value of Wait until dwell
“P” and TapDwl time in left
‘1’ Executed Not Not executed (#1313) is valid. column has
executed No dwell elapsed after
executed if both completion of
values are 0. in-position check.
Larger value of Wait until dwell Wait until
"P" and TapDwl time in left completion of
(#1313) is valid. column has in-position check
‘1’ Executed Executed Not executed Processing time elapsed after by G1inps value.
is several 10ms if completion of
both values are in-position check.
0.
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.

(Note 1) The I point refers to the initial point.


(Note 2) "Synchronous tap improvement" in the above table corresponds to #1223 aux07/bit3 Synchronous
tap in-position check improvement, "Hole bottom in-position check" corresponds to #1223 aux07/
bit4 Synchronous tap hole bottom in-position check, and "R point in-position check" corresponds to
#1223 aux07/bit5 Synchronous tap R-point in-position check 2.

204
13. Program Support Functions
13.1 Canned cycles

(a) G81 (Drilling, spot drilling)


Program
G81 Xx1 Yy1 Zz1 Rr1 Ff1 ,Ii1 ,Jj1;

(1) x1 , y1
(1) G0 Xx1 Yy1
(2) G0 Zr1
(2) r1 (3) G1 Zz1 Ff1
(4) G98 mode G0Z − (z1+r1)
G99 mode G0Z − z1
(3) (4)
z1
(4)

G98 G99
mode mode

The operation stops at after the (1), (2) and (4) commands during single block operation.
Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – Valid

(b) G82 (Drilling, counter boring)


Program
G82 Xx1 Yy1 Zz1 Rf1 Ff1 Pp1 ,Ii1 ,Jj1;
P : Dwell designation

(1) x1 , y1

(1) G0 Xx1 Yy1


(2) r1 (2) G0 Zr1
(3) G1 Zz1 Ff1
(4) G4 Pp1 (Dwell)
(5) (5) G98 mode G0Z − (z1+r1)
(3) (5) z1 G99 mode G0Z − z1

(4) G98 G99


mode mode

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – –
(5) – Valid
The operation stops at after the (1), (2) and (5) commands during single block operation.

205
13. Program Support Functions
13.1 Canned cycles

(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) x1,y1

(2) r1

q1 (3) (4) (5)


(7) (8) (10)
q1 m (6)
(1) G0 Xx1 Yy1
(9)
(2) G0 Zr1 q1 m z1
(3) G1 Zq1 Ff1
(n) (n)
(4) G0 Z − q1
(5) G0 Z (q1 − m)
(n) - 1
(6) G1 Z (q1 + m) Ff1
(7) G0 Z − 2 • q1 G98 G99
mode mode
(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

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – Invalid
(5) – Invalid
(6) – Invalid
(7) – Invalid
(8) – Invalid
(9) – Invalid
(10) – Invalid
:
:
n-1 – Invalid
n – Valid
When executing a second and following cutting in the G83 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.

206
13. Program Support Functions
13.1 Canned cycles

(d) G84 (Tapping cycle)


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

x1 ,y1 (1) G0 Xx1 Yy1


(1) (2) G0 Zr1
(3) G1 Zz1 Ff1
(4) G4 Pp1
(2) r1
(5) M4 (Spindle reverse rotation)
(7) (8) (7) (8) (6) G1 Z − z1 Ff1
(7) G4 Pp1
(8) M3 (Spindle forward rotation)
(3) (6) (6) z1 G98 mode G0Z − r1
(9)
G99 mode No movement

(4) (5) G98 G99


mode mode

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – –
(5) – –
(6) – Invalid
(7) – –
(8) – –
(9) – 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.

207
13. Program Support Functions
13.1 Canned cycles

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.

(i) 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

S : Command spindle rotation speed


S' : Spindle rotation speed during return
S1 : Tap rotation speed (spindle base specification parameters #3013 to #3016)
S2 : 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)

208
13. Program Support Functions
13.1 Canned cycles

(ii)When synchronous tap changeover spindle rotation speed 2 < spindle rotation speed
during return

Smax
S2
S(S1)
T3
T2
T1 T1

T1 T1

S1
S2
S'(Smax)
T2
T3

S : Command spindle rotation speed


S' : Spindle rotation speed during return
S1 : Tap rotation speed (spindle base specification parameters #3013 to #3016)
S2 : 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)
T3 : Synchronous tap changeover time constant 3
(spindle base specification parameters #3045 to #3048)

209
13. Program Support Functions
13.1 Canned cycles

(e) G85 (Boring)


Program
G85 Xx1 Yy1 Zz1 Rr1 Ff1 ,Ii1 ,Jj1;

(1) x1 , y1
(1) G0 Xx1 Yy1
(2) G0 Zr1
(2) (5) r1 (3) G1 Zz1 Ff1
(4) G1 Z − z1 Ff1
(5) G98 mode G0Z − r1
G99 mode No movement
(3) (4) (4) z1

G98 G99
mode mode

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – Invalid
(5) – Valid
The operation stops at after the (1), (2), and (4) or (5) commands during single block
operation.

(f) G86 (Boring)


Program
G86 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 ;

(1) x1 , y1 (7)
(1) G0 Xx1 Yy1
(2) G0 Zr1
(2) r1 (3) G1 Zz1 Ff1
(7) (4) G4 Pp1
(5) M5 (Spindle stop)
(3) (6) (6) G98 mode G0Z − (z1+r1)
z1 (6)
G99 mode G0Z − z1
(7) M3 (Spindle forward rotation)

(4)(5) G98 G99


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

210
13. Program Support Functions
13.1 Canned cycles

(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) G0 Xx1 Yy1


x1 , y1 (3) Xq1(Yq2) (2) M19 (Spindle orient)
(1)
(3) G0 Xq1 (Yq2) (Shift)
(12)(11)
(2) (4) G0 Zr1
(10) (5) G1 X−q1 (Y−q2) Ff1 (Shift)
r1
(8) (9) (6) M3 (Spindle forward rotation)
(7) G1 Zz1 Ff1
(4) (8) M19 (Spindle orient)
(9) G0 Xq1 (Yq2) (Shift)
(7) z1 (10) G98 mode G0Z − (z1+r1)
G99 mode G0Z − (r1+z1)
(11) G0 X−q1 (Y−q2) (Shift)
(6) (5) (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.

Tool during cutting


Tool after cutting

Cutter For G17 : I, J


Cancel
Cancel For G18 : K, I
Spindle orient For G19 : J, K
position
Shift
Shift

Machining hole
Shift amount

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.

211
13. Program Support Functions
13.1 Canned cycles

(h) G88 (Boring)


Program
G88 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 ;

x1 , y1 (1) G0 Xx1 Yy1


(1) (9) (2) G0 Zr1
(3) G1 Zz1 Ff1
(2) (4) G4 Pp1
r1 (5) M5 (Spindle stop)
(9) (6) Stop when single block stop
switch is ON.
(3) (8) (7) Automatic start switch ON
(8) z1 G98 mode G0Z − (z1+r1)
(8)
G99 mode G0Z − z1
G98 G99 (9) M3 (Spindle forward rotation)
(4)(5)(6)(7)
mode mode

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

(i) G89 (Boring)


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

(1) x1 , y1

(1) G0 Xx1 Yy1


(2) (6) r1 (2) G0 Zr1
(3) G1 Zz1 Ff1
(4) G4 Pp1
(5) G1 Z − z1 Ff1
(3) (5) (5) z1 (6) G98 mode G0Z − r1
G99 mode No movement

(4) G98 G99


mode mode

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – –
(5) – Invalid
(6) – Valid
The operation stops at after the (1), (2) and (5) or (6) commands during single block
operation.

212
13. Program Support Functions
13.1 Canned cycles

(j) G73 (Step cycle)


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

(1) x1 , y1

(2) r1

q (3) m
(5) (6)
q (4) (n)
q z1
(n)
(1) G0 Xx1 Yy1
(2) G0 Zr1
(3) G1 Zq1 Ff1 (n) -1
(4) G4 Pp1
(5) G0 Z−m G98 G99
(6) G1 Z (q1 + m) Ff1 mode mode
:
(n) G98 mode G0Z − (z1+r1)
G99 mode G0Z − z1

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – –
(5) – Invalid
(6) – Invalid
:
:
(n) -1 – Invalid
(n) – 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.

213
13. Program Support Functions
13.1 Canned cycles

(k) G74 (Reverse tapping cycle)


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

x1 ,y1
(1) (1) G0 Xx1 Yy1
(2) G0 Zr1
(2) (3) G1 Zz1 Ff1
(9) r1 (4) G4 Pp1
(7)(8)
(7) (8) (5) M3 (Spindle forward rotation)
(6) G1 Z – z1 Ff1
(7) G4 Pp1
(3) (6) (6) z1 (8) M4 (Spindle reverse rotation)
(9) G98 mode G0Z − r1
G99 mode No movement
G98 G99
(4)(5)
mode mode

Operation
i1 j1
pattern
(1) Valid –
(2) – Invalid
(3) – Invalid
(4) – –
(5) – –
(6) – Invalid
(7) – –
(8) – –
(9) – 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 and G84 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.

214
13. Program Support Functions
13.1 Canned cycles

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.

(i) 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

S : Command spindle rotation speed


S' : Spindle rotation speed during return
S1 : Tap rotation speed (spindle base specification parameters #3013 to #3016)
S2 : 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)

215
13. Program Support Functions
13.1 Canned cycles

(ii)When synchronous tap changeover spindle rotation speed 2 < spindle rotation speed
during return

Smax
S2
S(S1)
T3
T2
T1 T1

T1 T1

S1
S2
S'(Smax)
T2
T3

S : Command spindle rotation speed


S' : Spindle rotation speed during return
S1 : Tap rotation speed (spindle base specification parameters #3013 to #3016)
S2 : 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)
T3 : Synchronous tap changeover time constant 3
(spindle base specification parameters #3045 to #3048)

216
13. Program Support Functions
13.1 Canned cycles

(l) G76 (Fine boring)


Program
G76 Xx1 Yy1 Zz1 Rr1 Iq1 Jq2 Ff1 ;

x1 , y1 (7)
(1) (1) G0 Xx1 Yy1
(8)
(2) G0 Zr1
r1 (3) G1 Zz1 Ff1
(2) (4) M19 (Spindle orient)
(7)
(5) G1 Xq1 (Yq2) Ff1 (Shift)
(8)
G98 mode G0Z − (z1+r1)
(6)
G99 mode G0Z − z1
(3) (6) (6) z1 (7) G0 X − q1 (Y − q2) Ff1
(Shift)
(8) M3 (Spindle forward rotation)
(4)(5) 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 The shift amount is designated as
shown below with addresses I, J
and K.
Cutter
For G17 : I, J
Cancel For G18 : K, I
Spindle Cancel
orient For G19 : J, K
position The shift amount is executed with
ShiftShift linear interpolation, and the feed
rate follows the F command.
Machining hole
Shift amount
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.

217
13. Program Support Functions
13.1 Canned cycles

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 Record
Gm Gn X___Y___Z___R___Q___P___L___F___;
Ignore Execute Ignore Record
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. Z−50.R−20.F100.L3 ;

Z 10. 10. 10.


X

218
13. Program Support Functions
13.1 Canned cycles

(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 ;
X–200. ;
(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

# Items Details Setting range


1272 0:Invalid
ext08 bit1 M-function synchronous tap cycle valid.
(PR) 1:Valid
Synchronous tap cannot be selected with the M function when this parameter is OFF.

Base specifications parameters

# Items Details Setting range


1513 stapM M code for synchronous tap selection 0 to 99999999
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.

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

(Note1) Do not use M00, 01, 02, 30, 98 or 99.


(Note2) Depending on the model, selection with the M function may not be possible.

219
13. Program Support Functions
13.1 Canned cycles

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

Function and purpose

Whether to use R point or initial level for the return level in the final sequence of the canned cycle
can be selected.

Command format

G98 ;
G99 ;
G98 ; Initial level return
G99 ; R point level return

Detailed description

The relation of the G98/G99 mode and No. of repetition designation is as shown below.
G98
No. of hole Program At power ON, at cancel
G99
drilling example with M02, M30, and reset
button
G81X100.
Y100. Initial point Initial point
Z−50.
Only one R25. R point R point
execution F1000;

Initial level return is executed. R point level return is executed.

G81X100.
Y100.
Z−50.
R25.
Second and
L5F1000;
following
executions
First Second Final First Second Final
time time time time time time

Initial level return is executed for all


times.

Example of program

(Example 1)
Record only the hold machining data
G82 Zz1 Rr1 Pp1 Ff1 L0 ;
(Do not execute)
Execute hole drilling operation with
Xx1 Yy1 ;
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 ;

220
13. Program Support Functions
13.1 Canned cycles

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

Z axis
R absolute R
R point value R point
Z zero point
Z

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

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 ;

221
13. Program Support Functions
13.2 Special canned cycle

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


Function and purpose

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.)
The axis is positioned to the hole machining position when the special canned cycle is executed.
The hole machining operation is executed with the canned cycle for hole machining.
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.
If the special canned cycle is commanded without commanding the canned cycle for hole
machining, positioning will be executed following the current 01 group modal G code.

222
13. Program Support Functions
13.2 Special canned cycle

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.001mm
N001 G91 ;
N002 G81 Z − 10000 R5000 L0 F200 ;
N003 G90 G34 X200000 Y100000 I100000 J20000 K6 ;
N004 G80 ; ............... (Cancel of G81)
N005 G90 G0 X500000 Y100000 ;
x1=200mm
n = 6 holes

20°

I=100mm
y1=100mm

(500mm, 100mm)
Position before N005 G0 command
G34 is executed
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.

(Note 1) If an address other than the selected plane's vertical axis, horizontal axis, G,
N, I, J, K, H, O, P, F, M, S or 2nd auxiliary function is issued in the same block
as the G34 command, a program error (P32) will occur.

223
13. Program Support Functions
13.2 Special canned cycle

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.001mm
G91 ;
G81 Z − 10000 R5000 L0 F100 ;
G35 X200000 Y100000 I100000 J30000 K5 ;

d=100mm
n = 5 holes

θ=30°

y1=100mm

x1=200mm
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 an address other than the selected plane's vertical axis, horizontal axis, G, N,
I, J, K, H, O, P, F, M, S or 2nd auxiliary function is issued in the same block as
the G35 command, a program error (P32) will occur.
(Note 4) 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 5) 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.

224
13. Program Support Functions
13.2 Special canned cycle

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 ∆θ will be drilled starting at point created by the X axis and
angle θ. 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.001mm
N001 G91 ;
N002 G81 Z − 10000 R5000 F100 ;
N003 G36 X300000 Y100000 I300000 J10000 P15000 K6 ;

n = 6 holes

∆θ=
15°
Position before
G36 is executed θ=10°

y1=100mm

x1=300mm

(Note 1) If an address other than the selected plane's vertical axis, horizontal axis, G, N,
I, J, K, H, O, P, F, M, S or 2nd auxiliary function is issued in the same block as
the G36 command, a program error (P32) will occur.

225
13. Program Support Functions
13.2 Special canned cycle

Grid (G37.1)

G37.1 X x1 Y y1 I Dx P nx J Dy K ny ;
X, Y :Designation of start point coordinates. This will be affected by G90/G91.
I :Interval Dx of the X axis. The unit will follow the input setting unit. If Dx 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 Dy of the Y axis. The unit will follow the input setting unit. If Dy 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 Y−100000 I50000 P10 J100000 K8 ;

Position before ny = 8 holes


G37 is executed

y1=100mm ∆y=
100mm

∆x=50mm
x1=300mm 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 the selected plane's vertical axis, horizontal axis, G, N,
I, J, K, H, O, P, F, M, S or 2nd auxiliary function is issued in the same block as
the G37.1 command, a program error (P32) will occur.
(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.
(Note 5) If the G22/G23 command is programmed in the same block as the G37.1
command, the G22/G23 command will be ignored, and the G37.1 command
will be executed.

226
13. Program Support Functions
13.3 Subprogram control

13.3 Subprogram control; M98, M99, M198

13.3.1 Calling subprogram with M98 and M99 commands

Function and purpose

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 8 levels.

Main program Subprogram Subprogram Subprogram Subprogram


O0010 ; O1000 ; O1200 ; O2000 ; O2500 ;

N20 ;

M98 P1000 ; M98 P1200 M98 P2000 ; M98 P2500 ; •••


H20 ;
N60 ;

M02 ; M99 ; M99 ; M99 P60 ; M99 ;


(Level 1) (Level 2) (Level 3) (Level 8)
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 Case 2 Case 3 Case 4
1. Tape storing and editing Yes Yes Yes Yes
2. Subprogram control No Yes Yes No
3. Canned cycles No No Yes Yes
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
(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 8 nesting levels can be possible.

227
13. Program Support Functions
13.3 Subprogram control

Command format

Subprogram call
M98 P H L ;
P :Program number of subprogram to be called (own program if omitted)
P can only be omitted during memory operation and MDI operation.
(Numerical value with up to 8 digits)
H :Sequence number in subprogram to be called (head block if omitted)
(Numerical value with up to 5 digits)
L :Number of subprogram repetitions (When omitted, this is interpreted at
L1, and is not executed when L0)
(1 to 9999 with numerical value up to 4 digits)

For instance

M98 P1 L3 ; is equivalent to the following:


M98 P1 ;
M98 P1 ;
M98 P1 ;

Return to main program from subprogram


M99 P__ ;
P__ : Sequence number of return destination (returned to block following
block to be called if omitted)

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∆∆∆∆∆∆∆∆ ; Program number as subprogram
................................ ;
................................ ;
: ; Main body of subprogram
:
................................ ;
M99 ; Subprogram return command
% (EOR) Entry completion code

(1) 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.

228
13. Program Support Functions
13.3 Subprogram control

(2) 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."
(3) Up to 4 nesting levels can be used for calling subprograms, and program error (P230) results if
this number is exceeded.
(4) 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.)

Registration example
;
O ;
................................ ;
: Subprogram A
M99 ;
%

O∆∆∆∆ ;
................................ ;
: Subprogram B
M99 ;
%

O**** ;
................................ ;
: Subprogram C
M99 ;
%

(5) Main programs can be entered during memory, tape, MDI or BTR operation but subprograms
must be entered in the memory.

(6) 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

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

(8) To repeatedly use the subprogram, it can be repeated l1 times by programming M98 Pp1 Ll1;.

229
13. Program Support Functions
13.3 Subprogram control

Example of program

When there are 3 subprogram calls (known as 3 nesting levels)

Main program Sub program 1 Sub program 2 Sub program 3


O1; O10; O20;

(1) (2) (3)

M98P1; M98P10; M98P20;

(1)' (2)' (3)'


M02; M99; M99; M99;

Sequence of execution : (1) → (2) → (3) → (3)' → (2)' → (1)'

(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.
(2) 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.

230
13. Program Support Functions
13.3 Subprogram control

Example of program 2

The M98H__; M99P__; commands designate the sequence numbers in a program with a call
instruction.

For M98H__ ; For M99P__ ;

O123;
M98H3; N100___;
M98P123;
N200_;
N300___;
N3___; N400___;

Search
M99; M99P200;

Other cautions

(1) Program error (P232) results when the designated program number (P) is not located.
(2) 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.)
(3) When M99 is commanded by the main program, operation returns to the head. (This is same
for MDI.)
(4) 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.)
(5) Bear in mind that the search operation will take time when the sequence number is designated
by M99P__; .

231
13. Program Support Functions
13.3 Subprogram control

13.3.2 Calling subprogram with M198 commands

Function and purpose

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.

Command format

M198 P H L ;
P :Number of program in IC card to be called as subprogram. (Max. 8 digits)
H :Sequence number in subprogram to be called out (head block when omitted).
(Max. 5 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.

Detailed description

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.
Sub
Operation mode Memory IC card Tape
Main
Memory and MDI mode Memory
IC card
Tape mode
Tape
(Note1) This command functions only with the M65/M66.

232
13. Program Support Functions
13.4 Variable commands

13.4 Variable commands


Function and purpose

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.

Command format

#∆∆∆ = or #∆∆∆ = [formula]

Detailed description

(1) Variable expressions Example


(a) #m m = value consisting of 0 to 9 #100
(b) # [f] f = one of the following in the formula # [-#120]
Numerical value m 123
Variable #543
Formula operator formula #110+#119
− (minus) formula -#120
[Formula] [#119]
function [formula] SIN [#110]

(Note 1) The 4 standard operators are +, −, ∗ and /.


(Note 2) Functions cannot be used unless the user macro specifications are available.
(Note 3) Error "P241" results when a variable number is negative.
(Note 4) Examples of incorrect variable expressions are given below.
Incorrect Correct
#6/2 → #[6/2] (Note that expression such as "#6/2" is regarded as
"[#6] /2")
#- -5 → #[- [-5]]
#- [#1] → #[-#1]

233
13. Program Support Functions
13.4 Variable commands

(2) Type of variables


The following table gives the types of variables.
Type of variable Number Function
Common variables Common Common Can be used in common
variables variables 2 throughout main, sub and
1 macro programs.
System 100 sets 500 to 549 100 to 149
1 200 sets 500 to 599 100 to 199
300 sets 500 to 699 100 to 199
600 sets 500 to 999 100 to 199
700 sets 400 to 999 100 to 199
System 50 + 50 sets 500 to 549 100 to 149 *2
2 100 + 100 sets 500 to 599 100 to 199 *2
400 + 100 sets 500 to 899 100 to 199 *2
500 + 100 sets 500 to 999 100 to 199 *2
Can be used for local
Local variables 1 to 33
variables in macro programs.
Application is fixed by
System variables 1000 to
system.
Local variables in canned
Canned cycle variables 1 to 32
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

(3) Variable quotations


Variables can be used for all addresses except O, N and / (slash).
(a) When the variable value is used directly:
X#1 ...................................Value of #1 is used as the X value.
(b) When the complement of the variable value is used:
X - #2 ................................ Value with the #2 sign changed is used as the X value.
(c) 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.)
(d) When defining variables:
#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.

234
13. Program Support Functions
13.4 Variable commands

(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.

235
13. Program Support Functions
13.5 User macro specifications

13.5 User macro specifications

13.5.1 User macro commands; G65, G66, G66.1, G67

Function and purpose

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 Function
G65 User macro Simple call
G66 User macro Modal call A (Movement command call)
G66.1 User macro Modal call B (Per-block call)
G67 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.

236
13. Program Support Functions
13.5 User macro specifications

13.5.2 Macro call instruction

Function and purpose

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.

Simple macro calls

Main program To subprogram Subprogram (Oo1)


Oo1
G65Pp1Ll1 <argument>;
M99
To main program

M99 is used to conclude the user macro subprogram.

Format
G65 P___ L___ <argument> ;

P___ : Program No.


L___ : No. of repetitions

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.

237
13. Program Support Functions
13.5 User macro specifications

(1) Argument designation I


Format : A__ B__ C__ • • • • X__ Y__ Z__

Detailed description
(a) Arguments can be designated using any address except G, L, N, O and P.
(b) Except for I, J and K, there is no need for designation in alphabetical order.
(c) I, J and K must be designated in alphabetical order.
I__ J__ K__ ................... Correct
J__ I__ K__ ................... Incorrect
(d) Address which do not need to be designated can be omitted.
(e) 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


Call instructions and usable address
correspondence
Argument
designation I Variable in macro G65, G66 G66.1
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 #15
P #16 ∗
Q #17
R #18
S #19
T #20
U #21
V #22
W #23
X #24
Y #25
Z #26
: Can be used.
: Cannot be used.
∗ : Can be used while G66.1 command is modal.

238
13. Program Support Functions
13.5 User macro specifications

(2) Argument designation II


Format : A__ B__ C__ I__ J__ K__ I__ J__ K__• • • •

Detailed description
(a) 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.
(b) When the same address is duplicated, designate the addresses in the specified order.
(c) Addresses which do not need to be designated can be omitted.
(d) 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 Argument
Variable within Variable within
designation II designation II
macro macro
address address
A #1 J5 #17
B #2 K5 #18
C #3 I6 #19
I1 #4 J6 #20
J1 #5 K6 #21
K1 #6 I7 #22
I2 #7 J7 #23
J2 #8 K7 #24
K2 #9 I8 #25
I3 #10 J8 #26
J3 #11 K8 #27
K3 #12 I9 #28
I4 #13 J9 #29
J4 #14 K9 #30
K4 #15 I10 #31
I5 #16 J10 #32
K10 #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.

(3) 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 G65 A1.1 B-2.2 D3.3 I4.4 I7.7 ;


Variable
#1 : 1.1
#2 : –2.2
#4 : 4.4
#5 :
#6 :
#7 : 3.3 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.

239
13. Program Support Functions
13.5 User macro specifications

Modal call A (movement command call)

Main program Subprogram


To subprogram
Oo1
G65Pp1Ll1 <argument>;
M99
G67 To main program
To subprogram

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> ;
P___ : Program No.
L___ : No. of repetitions

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

N1 G90 G54 G0 X0Y0Z0;


N2 G91 G00 X-50.Y-50.Z-200.;
N3 G66 P9010 R-10.Z-30.F100; O 9010
N4 X-50.Y-50.; To subprogram after axis command execution N10 G00 Z #18 M0;
N5 X-50.; To subprogram after axis command execution
N20 G09 G01 Z #26 F#9;
N30 G00 Z- [#18+#26];
N6 G67; To main program
M99;
~

-150. -100. -50. W


X
N2 N1
N3 N10 Argument R
-50.
N4 N30
N20 Argument Z
N5
-100.
Subprogram
Subprogram

Argument F
Y

(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.

240
13. Program Support Functions
13.5 User macro specifications

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 the specified number of times.

Format
G66.1 P___ L___ <argument> ;
P___ : Program No.
L___ : No. of repetitions

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) Program number O, sequence numbers N and modal G codes are updated as modal
information.

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 :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.

241
13. Program Support Functions
13.5 User macro specifications

(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 O9016

G16X100. Y100. Z100. F500 ;

M99 ;

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 ;)
Mm 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: M98 P∆∆∆∆ ;
M98, Mm are not output
b: G65 P∆∆∆∆ Mm ;
c: G66 P ∆∆∆∆ 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 display of the setting and display unit but the M
codes and MF are not output.

242
13. Program Support Functions
13.5 User macro specifications

(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 Setting to call O8000 with type 0
M [02] 21 0 8001 (M98 type) during M20 command
M [03] 9999 0 199999999
M [04] 9999 0 199999999 Setting to call O8001 with type 0
M [05] 9999 0 199999999 (M98 type) during M21 command
: : :
: : : Set parameters not being used as
M [10] 9999 0 199999999 shown on left.

Differences between M98 and G65 commands

(1) The argument can be designated for G65 but not for M98.
(2) The sequence number can be designated for M98 but no for G65, G66 and G66.1.
(3) 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.

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.

243
13. Program Support Functions
13.5 User macro specifications

(Example 1)
Main program
User macro operation
G66Pp1; (p1 call) Macro p1
x1 y1 x2 M99
Zz1 ; After Z1 execution
Macro p2
G66Pp2; (p2 call)
x1 y1 x2 M99
Zz2 ; After Z2 execution
(p2 cancel)
G67 ; Macro p1 Macro p1 Macro p1

Macro p1
Zz3 ; x1 y1 x2 M99
After Z3 execution

G67 ; (p1 cancel)

Zz4 ;
Zz5 ;

13.5.3 Variables

Function and purpose

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”.)

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 ; #[#[#1]] = #[#10] from #1 = 10.
#5 = #[#[#1]] ; #[#10] = #20 from #10 = 20.
Therefore, #5 = #20 or #5 = 30.

#1 = 20 #10 = 20 #20 = 30 #5 #[#[#1]] = #[#10] from #1 = 10.


= 1000 ; #[#10] = #20 from #10 = 20.
#[#[#1]] = #5 ; Therefore, #20 = #5 or #20 = 1000.

(Example 2) Example of multiple designation of variables


#10 = 5
<Formula>##10 = 100; is handled in the
In which case ##10 = 100 ; #5 =
same manner as # [#10] = 100.
100

(Example 3) Replacing variable numbers with <formula>


#10 = 5 ;
#[#10 + 1] = 1000 ; In which case, #6 = 1000.
#[#10 − 1] = −1000 ; In which case, #4 = −1000.
#[#10∗3] = 100 ; In which case, #15 = 100.
#[#10/2] = −100 ; In which case, #3 = −100. (Rounded off.)

244
13. Program Support Functions
13.5 User macro specifications

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 ; ................... #1 = <vacant>
#2 = #0 + 1 ;............. #2 = 1
#3 = 1 + #0 ;............. #3 = 1
#4 = #0∗10 ; ............. #4 = 0
#5 = #0 + #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> When #101 = 0
#101 EQ #0 #101 EQ #0
<Vacant> = <Vacant> established 0 = <Vacant> not established
#101 NE 0 #101 NE 0
<Vacant> ≠ 0 established 0 ≠ 0 not established
#101 GE #0 #101 GE #0
<Vacant> ≥ <Vacant> established 0 ≥ <Vacant> established
#101 GT 0 #101 GT 0
<Vacant> > 0 not established 0 > 0 not established
#101 LE #0 #101 LE #0
<Vacant> ≤ <Vacant> established 0 ≤ <Vacant> established
#101 LT 0 #101 LT 0
<Vacant> < 0 not established 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.

245
13. Program Support Functions
13.5 User macro specifications

13.5.4 Types of variables

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.

Local variables (#1 to #33)

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> ;
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 Local Call command Local
Argument Argument
G65 variable G65 variable
G66.1 address G66.1 address
G66 number G66 number
A #1 Q #17
B #2 R #18
C #3 S #19
D #7 T #20
E #8 U #21
F #9 V #22
∗ G #10 W #23
H #11 X #24
I #4 Y #25
J #5 Z #26
K #6 − #27
∗ L #12 − #28
M #13 − #29
∗ N #14 − #30
O #15 − #31
∗ P #16 − #32
− #33
" " 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.

246
13. Program Support Functions
13.5 User macro specifications

[Argument specification II]


Argument specification Variable in Argument specification II Variable in
II address macro address macro
A #1 I6 #19
B #2 J6 #20
C #3 K6 #21
I1 #4 I7 #22
J1 #5 J7 #23
K1 #6 K7 #24
I2 #7 I8 #25
J2 #8 J8 #26
K2 #9 K8 #27
I3 #10 I9 #28
J3 #11 J9 #29
K3 #12 K9 #30
I4 #13 I10 #31
J4 #14 J10 #32
K4 #15 K10 #33
I5 #16
J5 #17
K5 #18
(Note 1) 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.
Main program Subprogram (9900)
G91 G01 X [#19∗COS [#1] ]
G65 P9900 A60. S100. F800; Y [#19∗SIN [#1] ] F#9;
To subprogram

M02; M99;

Refer to the local


variables and control the
movement, etc.

Local variables set A(#1)= 60.000


by argument

F(#9)= 800
Local variable
S(#19)= 100.000
data table

247
13. Program Support Functions
13.5 User macro specifications

(2) The local variables can be used freely in that subprogram.


Main program Subprogram (1)

#30=FUP [#2/#5/2] ;
G65 P1 A100. B50. J10. F500;
To subprogram #5=#2/#30/2 ;
M98 H100 L#30 ;
X#1 ;
M99 ;
Example of front surface milling N100 G1 X#1 F#9 ;
Y#5 ;
X-#1 ;
Y#5 ; The local variables
can be changed in
the subprogram.
B M99 ;

J
The local variables
Local variables set by argument can be changed in
the subprogram.
A
Local variable data table

A (#1) 100.000
B (#2) 50.000
F (#9) 500
J (#5) 10.000 8.333
(#30) 3

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.

248
13. Program Support Functions
13.5 User macro specifications

(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.

Main (level 0) O1 (macro level 1) O10 (macro level 2) O100 (macro level 3)
#1=0.1 #2=0.2 #3=0.3;

G65 P10A10. B20. C30.; G65 P100A100. B200.;


G65 P1A1. B2. C3.;

M02; M99; M99; M99;

Local variables (0) Local variables (1) Local variables (2) Local variables (3)
#1 0.100 A (#1) 1.000 A (#1) 10.000 A (#1) 100.000
#2 0.200 B (#2) 2.000 B (#2) 20.000 B (#2) 200.000
#3 0.300 C (#3) 3.000 C (#3) 30.000 C (#3)
D (#7) D (#7)

Z(#26) Z(#26) Z(#26)

#32 #32 #32 #32

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

249
13. Program Support Functions
13.5 User macro specifications

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 to #1035, #1200 to #1295. 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 to
#1031 can be read at once by reading out the value of variable number #1032.
Similarly, the input signals #1200 to #1231, #1232 to #1263, and #1264 to #1295 can be read by
reading the values of the variable numbers #1033 to #1035.
Variable numbers #1000 to #1035, #1200 to #1295 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 No. of Interface System No. of Interface
variable points input signal variable points input signal
#1000 1 Register R72 bit 0 #1016 1 Register R73 bit 0
#1001 1 Register R72 bit 1 #1017 1 Register R73 bit 1
#1002 1 Register R72 bit 2 #1018 1 Register R73 bit 2
#1003 1 Register R72 bit 3 #1019 1 Register R73 bit 3
#1004 1 Register R72 bit 4 #1020 1 Register R73 bit 4
#1005 1 Register R72 bit 5 #1021 1 Register R73 bit 5
#1006 1 Register R72 bit 6 #1022 1 Register R73 bit 6
#1007 1 Register R72 bit 7 #1023 1 Register R73 bit 7
#1008 1 Register R72 bit 8 #1024 1 Register R73 bit 8
#1009 1 Register R72 bit 9 #1025 1 Register R73 bit 9
#1010 1 Register R72 bit 10 #1026 1 Register R73 bit 10
#1011 1 Register R72 bit 11 #1027 1 Register R73 bit 11
#1012 1 Register R72 bit 12 #1028 1 Register R73 bit 12
#1013 1 Register R72 bit 13 #1029 1 Register R73 bit 13
#1014 1 Register R72 bit 14 #1030 1 Register R73 bit 14
#1015 1 Register R72 bit 15 #1031 1 Register R73 bit 15

System No. of Interface


variable points input signal
#1032 32 Register R72, R73
#1033 32 Register R74, R75
#1034 32 Register R76, R77
#1035 32 Register R78, R79

250
13. Program Support Functions
13.5 User macro specifications

System No. of Interface System No. of Interface


variable points input signal variable points input signal
#1200 1 Register R74 bit 0 #1216 1 Register R75 bit 0
#1201 1 Register R74 bit 1 #1217 1 Register R75 bit 1
#1202 1 Register R74 bit 2 #1218 1 Register R75 bit 2
#1203 1 Register R74 bit 3 #1219 1 Register R75 bit 3
#1204 1 Register R74 bit 4 #1220 1 Register R75 bit 4
#1205 1 Register R74 bit 5 #1221 1 Register R75 bit 5
#1206 1 Register R74 bit 6 #1222 1 Register R75 bit 6
#1207 1 Register R74 bit 7 #1223 1 Register R75 bit 7
#1208 1 Register R74 bit 8 #1224 1 Register R75 bit 8
#1209 1 Register R74 bit 9 #1225 1 Register R75 bit 9
#1210 1 Register R74 bit 10 #1226 1 Register R75 bit 10
#1211 1 Register R74 bit 11 #1227 1 Register R75 bit 11
#1212 1 Register R74 bit 12 #1228 1 Register R75 bit 12
#1213 1 Register R74 bit 13 #1229 1 Register R75 bit 13
#1214 1 Register R74 bit 14 #1230 1 Register R75 bit 14
#1215 1 Register R74 bit 15 #1231 1 Register R75 bit 15

System No. of Interface System No. of Interface


variable points input signal variable points input signal
#1232 1 Register R76 bit 0 #1248 1 Register R77 bit 0
#1233 1 Register R76 bit 1 #1249 1 Register R77 bit 1
#1234 1 Register R76 bit 2 #1250 1 Register R77 bit 2
#1235 1 Register R76 bit 3 #1251 1 Register R77 bit 3
#1236 1 Register R76 bit 4 #1252 1 Register R77 bit 4
#1237 1 Register R76 bit 5 #1253 1 Register R77 bit 5
#1238 1 Register R76 bit 6 #1254 1 Register R77 bit 6
#1239 1 Register R76 bit 7 #1255 1 Register R77 bit 7
#1240 1 Register R76 bit 8 #1256 1 Register R77 bit 8
#1241 1 Register R76 bit 9 #1257 1 Register R77 bit 9
#1242 1 Register R76 bit 10 #1258 1 Register R77 bit 10
#1243 1 Register R76 bit 11 #1259 1 Register R77 bit 11
#1244 1 Register R76 bit 12 #1260 1 Register R77 bit 12
#1245 1 Register R76 bit 13 #1261 1 Register R77 bit 13
#1246 1 Register R76 bit 14 #1262 1 Register R77 bit 14
#1247 1 Register R76 bit 15 #1263 1 Register R77 bit 15

251
13. Program Support Functions
13.5 User macro specifications

System No. of Interface System No. of Interface


variable points input signal variable points input signal
#1264 1 Register R78 bit 0 #1280 1 Register R79 bit 0
#1265 1 Register R78 bit 1 #1281 1 Register R79 bit 1
#1266 1 Register R78 bit 2 #1282 1 Register R79 bit 2
#1267 1 Register R78 bit 3 #1283 1 Register R79 bit 3
#1268 1 Register R78 bit 4 #1284 1 Register R79 bit 4
#1269 1 Register R78 bit 5 #1285 1 Register R79 bit 5
#1270 1 Register R78 bit 6 #1286 1 Register R79 bit 6
#1271 1 Register R78 bit 7 #1287 1 Register R79 bit 7
#1272 1 Register R78 bit 8 #1288 1 Register R79 bit 8
#1273 1 Register R78 bit 9 #1289 1 Register R79 bit 9
#1274 1 Register R78 bit 10 #1290 1 Register R79 bit 10
#1275 1 Register R78 bit 11 #1291 1 Register R79 bit 11
#1276 1 Register R78 bit 12 #1292 1 Register R79 bit 12
#1277 1 Register R78 bit 13 #1293 1 Register R79 bit 13
#1278 1 Register R78 bit 14 #1294 1 Register R79 bit 14
#1279 1 Register R78 bit 15 #1295 1 Register R79 bit 15

Macro interface outputs (#1100 to #1135, #1300 to #1395)

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

252
13. Program Support Functions
13.5 User macro specifications

System No. of Interface


variable points output signal
#1132 32 Register R172, R173
#1133 32 Register R174, R175
#1134 32 Register R176, R177
#1135 32 Register R178, R179

System No. of Interface System No. of Interface


variable points output signal variable points output signal
#1300 1 Register R174 bit 0 #1316 1 Register R175 bit 0
#1301 1 Register R174 bit 1 #1317 1 Register R175 bit 1
#1302 1 Register R174 bit 2 #1318 1 Register R175 bit 2
#1303 1 Register R174 bit 3 #1319 1 Register R175 bit 3
#1304 1 Register R174 bit 4 #1320 1 Register R175 bit 4
#1305 1 Register R174 bit 5 #1321 1 Register R175 bit 5
#1306 1 Register R174 bit 6 #1322 1 Register R175 bit 6
#1307 1 Register R174 bit 7 #1323 1 Register R175 bit 7
#1308 1 Register R174 bit 8 #1324 1 Register R175 bit 8
#1309 1 Register R174 bit 9 #1325 1 Register R175 bit 9
#1310 1 Register R174 bit 10 #1326 1 Register R175 bit 10
#1311 1 Register R174 bit 11 #1327 1 Register R175 bit 11
#1312 1 Register R174 bit 12 #1328 1 Register R175 bit 12
#1313 1 Register R174 bit 13 #1329 1 Register R175 bit 13
#1314 1 Register R174 bit 14 #1330 1 Register R175 bit 14
#1315 1 Register R174 bit 15 #1331 1 Register R175 bit 15

System No. of Interface System No. of Interface


variable points output signal variable points output signal
#1332 1 Register R176 bit 0 #1348 1 Register R177 bit 0
#1333 1 Register R176 bit 1 #1349 1 Register R177 bit 1
#1334 1 Register R176 bit 2 #1350 1 Register R177 bit 2
#1335 1 Register R176 bit 3 #1351 1 Register R177 bit 3
#1336 1 Register R176 bit 4 #1352 1 Register R177 bit 4
#1337 1 Register R176 bit 5 #1353 1 Register R177 bit 5
#1338 1 Register R176 bit 6 #1354 1 Register R177 bit 6
#1339 1 Register R176 bit 7 #1355 1 Register R177 bit 7
#1340 1 Register R176 bit 8 #1356 1 Register R177 bit 8
#1341 1 Register R176 bit 9 #1357 1 Register R177 bit 9
#1342 1 Register R176 bit 10 #1358 1 Register R177 bit 10
#1343 1 Register R176 bit 11 #1359 1 Register R177 bit 11
#1344 1 Register R176 bit 12 #1360 1 Register R177 bit 12
#1345 1 Register R176 bit 13 #1361 1 Register R177 bit 13
#1346 1 Register R176 bit 14 #1362 1 Register R177 bit 14
#1347 1 Register R176 bit 15 #1363 1 Register R177 bit 15

253
13. Program Support Functions
13.5 User macro specifications

System No. of Interface System No. of Interface


variable points output signal variable points output signal
#1364 1 Register R178 bit 0 #1380 1 Register R179 bit 0
#1365 1 Register R178 bit 1 #1381 1 Register R179 bit 1
#1366 1 Register R178 bit 2 #1382 1 Register R179 bit 2
#1367 1 Register R178 bit 3 #1383 1 Register R179 bit 3
#1368 1 Register R178 bit 4 #1384 1 Register R179 bit 4
#1369 1 Register R178 bit 5 #1385 1 Register R179 bit 5
#1370 1 Register R178 bit 6 #1386 1 Register R179 bit 6
#1371 1 Register R178 bit 7 #1387 1 Register R179 bit 7
#1372 1 Register R178 bit 8 #1388 1 Register R179 bit 8
#1373 1 Register R178 bit 9 #1389 1 Register R179 bit 9
#1374 1 Register R178 bit 10 #1390 1 Register R179 bit 10
#1375 1 Register R178 bit 11 #1391 1 Register R179 bit 11
#1376 1 Register R178 bit 12 #1392 1 Register R179 bit 12
#1377 1 Register R178 bit 13 #1393 1 Register R179 bit 13
#1378 1 Register R178 bit 14 #1394 1 Register R179 bit 14
#1379 1 Register R178 bit 15 #1395 1 Register R179 bit 15
(Note 1) The last values of the system variables #1100 to #1135, #1300 to #1395 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 to
#1131, #1300 to #1395.
<Vacant> is treated as 0.
Any number except 0 and <vacant> is treated as 1.
Any value less than 0.00000001 is indefinite.

254
13. Program Support Functions
13.5 User macro specifications

Input signal #1032 (R72,R73) #1132 (R172,R173) Output signal

#1000 #1100

#1031 #1131

#1033 (R74,R75) #1133 (R174,R175)

Macro instructions
#1200 #1300

#1231 #1331

#1034 (R76,R77) #1134 (R176,R177)

#1232 #1332

#1263 #1363

#1035 (R78,R79) #1135 (R178,R179)

#1264 #1364

#1295 #1395

255
13. Program Support Functions
13.5 User macro specifications

Tool offset

Variable number range Type 1 Type 2


#10001 to #10000 + n #2001 to #2000 + n (Length dimension)
#11001 to #11000 + n #2201 to #2200 + n (Length wear)
#16001 to #16000 + n #2401 to #2400 + n (Radius dimension)
#17001 to #17000 + n #2601 to #2600 + n (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 400 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
#101=1000; #101=1000.0
#10001=#101; After
execution
H1=1000.000
#102=#10001; #102=1000.0

(Example 1) Calculation and tool offset data setting

G28 Z0 T01 ; Zero point return #1


Tool change (spindle T01)
M06 ; G00
Start point memory H1
#1=#5003 ; Rapid traverse to safety G31
G00 Z-500. ; position #5063
Skip measurement
G31 Z-100. F100;
Measured distance
#10001=#5063-#1 ; calculation and tool offset Sensor
data setting

(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.

256
13. Program Support Functions
13.5 User macro specifications

Work coordinate system offset

By using variable numbers #5201 to #532n, 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.
The last digit of the variable No. corresponds to the control axis No.
Axis No.
Axis 1 Axis 2 Axis 3 Axis 4 . . Axis n Remarks
Axis name
External work offset #5201 #5202 #5203 #5204 . . #520n External workpiece offset
specifications are required.
G54 #5221 #5222 #5223 #5224 . . #522n
G55 #5241 #5242 #5243 #5244 . . #524n
G56 #5261 #5262 #5263 #5264 . . #526n
G57 #5281 #5282 #5283 #5284 . . #528n
G58 #5301 #5302 #5303 #5304 . . #530n
G59 #5321 #5322 #5323 #5324 . . #532n

(Example 1)
N1
N1 G28 X0 Y0 Z0 ; -90. -20.
N2 #5221=-20. #5222=-20. ;
N3 G90 G00 G54 X0 Y0 ; N3
-10.
W1 N11 -20.
W1
N10 #5221=-90. #5222=-10. ; G54 work coordinate
N11 G90 G00 G54 X0Y0 ; system defined by
N10 G54 work coordinate
system defined by
N2
M02 ;

(Example 2) Base machine coordinate system


External workpiece offset
M
G55
G54

Coordinate system
W2 (G55)
before change
W1 (G54)
N100 #5221=#5221+#5201 ;
#5222=#5222+#5202 ;
#5241=#5241+#5201 ;
#5242=#5242+#5202 ;
Base machine coordinate system
#5201=0 #5202=0;
M
G55
G54
Coordinate system
after change
W2 (G55)
W1 (G54)

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.

257
13. Program Support Functions
13.5 User macro specifications

Alarm (#3000)

The NC system can be forcibly set to the alarm state by using variable number #3000.

Format
#3000 = 70 (CALL#PROGRAMMER#TEL#530) :
70 : Alarm number
CALL#PROGRAMMER#TEL#530 : Alarm message

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


IF [#1 NE 0] GOTO 100 ;
#3000=70 Stops with
(CALL#PROGRAMMER#TEL#530) ; NC alarm
N100 <Operator message>

CALL#PROGRAMMER#TEL#530 70

(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.

258
13. Program Support Functions
13.5 User macro specifications

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.
Contents when
Variable Initialization of
Type Unit power is switched Count condition
number contents
on
Integrating At all times while
3001
(run-out) time 1 Same as when Value substituted power is ON
ms
Integrating power is switched off for variable
3002 In-automatic start
(run-out) time 2

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

#3001=0 ;
(allowable WHILE [#3001LE#20] DO1 ;
G65P9010 T time) ms; To
subprogram

END1 :

M99 ;

Entered in local
Local variable
Allowable time portion :
variable #20 DO1-END is repeated and when
T#20
allowable time is reached, operations
jumps to M99.

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 Single block stop Miscellaneous function finish signal
0 Not suppressed Awaited
1 Suppressed Awaited
2 Not suppressed Not awaited
3 Suppressed Not awaited
(Note 1) #3003 is cleared to zero by NC reset.

259
13. Program Support Functions
13.5 User macro specifications

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 Bit 0 Bit 1 Bit 2
Contents (value) Feed hold Feedrate override G09 check
0 Valid Valid Valid
1 Invalid Valid Valid
2 Valid Invalid Valid
3 Invalid Invalid Valid
4 Valid Valid Invalid
5 Invalid Valid Invalid
6 Valid Invalid Invalid
7 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.

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.

Format
#3006 = 1 ( TAKE FIVE ) :
TAKE FIVE Message

The message should not be longer than 31 characters and it should be enclosed within round ( )
parentheses.

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 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
nth axis 6 5 4 3 2 1

260
13. Program Support Functions
13.5 User macro specifications

G command modals

Using variable numbers #4001 to #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
to #4221.
Variable number
Pre-read Execution Function
block block
Interpolation mode : G00:0, G01:1, G02:2, G03:3,
#4001 #4201
G33:33
#4002 #4202 Plane selection : G17:17, G18:18, G19:19
#4003 #4203 Absolute/incremental : G90:90, G91:91
#4004 #4204 No variable No.
#4005 #4205 Feed designation : G94:94, G95:95
#4006 #4206 Inch/metric : G20:20, G21/21
#4007 #4207 Tool nose R compensation : : G40:40, G41:41, G42:42
#4008 #4208 Tool length offset : G43:43, G44:44, G49:49
Canned cycle : G80:80, G73 to 74, G76:76,
#4009 #4209
G81 to G89:81 to 89
#4010 #4210 Return level : G98:98, G99:99
#4011 #4211
#4012 #4212 Work coordinate system : G54 to G59:54 to 59
Acceleration/deceleration : G61 to G64:61 to 64,
#4013 #4213
G61.1:61.1
#4014 #4214 Macro modal call : G66:66, G66.1:66.1, G67:67
#4015 #4215
#4016 #4216
#4017 #4217 Constant surface speed control : G96:96, G97:97
#4018 #4218 No variable No.
#4019 #4219 Mirror image : G50.1:50.1, G51.1:51.1
#4020 #4220
#4021 #4221 No variable No.
(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#1 X#24 Y#25;
M99;
%

261
13. Program Support Functions
13.5 User macro specifications

Other modals

Using variable numbers #4101 to #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
to #4320.
Variable number Variable number
Modal
Executio Executio Modal information
Pre-read information Pre-read
n n
#4101 #4301 #4111 #4311 Tool length offset No. H
#4102 #4302 #4112 #4312
#4103 #4303 #4113 #4313 Miscellaneous function M
#4104 #4304 #4114 #4314 Sequence number N
#4105 #4305 #4115 #4315 Program number O
#4106 #4306 #4116 #4316
Tool radius
#4107 #4307 compensation No. D
#4117 #4317
#4108 #4308 #4118 #4318
#4109 #4309 Feedrate F #4119 #4319 Spindle function S
#4110 #4310 #4120 #4320 Tool function T

Position information

Using variable numbers #5001 to #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 End point Tool
information coordinate Servo
Machine Work Skip position
of block deviation
immediately coordinate coordinate coordinate offset amount
Axis No. before amount
1 #5001 #5021 #5041 #5061 #5081 #5101
2 #5002 #5022 #5042 #5062 #5082 #5102
3 #5003 #5023 #5043 #5063 #5083 #5103
4 #5004 #5024 #5044 #5064 #5084 #5104
: : : : : : :
n #5000+n #5020+n #5040+n #5060+n #5080+n #5100+n
Remarks (reading
Yes No No Yes No Yes
during movement)
(Note 1) The number of axes which can be controlled differs according to the specifications.
(Note 2) The last digit of the variable No. corresponds to the control axis No.

262
13. Program Support Functions
13.5 User macro specifications

Basic machine coordinate system M

Work coordinate system W

G00

G01

Read
command
[End point
coordinates]

W Work coordinate
system
[Work
coordinates]
Machine coordinate
system
[Machine M
coordinates]

(1) The positions of the end point coordinates and skip coordinates are positions in the work
coordinate system.
(2) 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.
(3) 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.)

Read
command
Gauge, etc.

Skip coordinates

263
13. Program Support Functions
13.5 User macro specifications

(4) 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.

Skip signal

G31
F (feedrate)
W
Work coordinate
system
[Input coordinates [Work
of skip signal] coordinates]
Machine coordinate
system
M
[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 to #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.

264
13. Program Support Functions
13.5 User macro specifications

(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> O9031
F(#9) 200
X(#24)100.000 N1 #180=#4003;
Main program Y(#25)100.000 N2 #30=#5001 #31=#5002;
Z(#26) -10.000 N3 G91 G01 Z#26 F#9;
N4 G31 X#24 Y#25 F#9;
N5 G90 G00 X#30 Y#31;
G65 P9031 X100. Y100. Z-10. F200; To subprogram N6 #101=#30-#5061 #102=#31-#5062;
N7 #103=SQR [#101∗#101+#102*#102] ;
<Common variable> N8 G91 G01Z-#26;
#101 87.245 N9 IF [#180 EQ 91] GOTO 11;
#102 87.245 N10 G90;
#103 123.383 N11 M99;
Skip input

Start point N4 #102


Z N8 N3 #103
N5
Y #101
X

#101 X axis measurement amount N1 G90/G91 modal recording


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

(Example 2) Reading of skip input coordinates

-X -150 -75 -25 Y X

N1 G91 G28 X0 Y0;


N2 G90 G00 X0 Y0;
N3 X0Y-100.; -50
N4 G31 X-150. Y-50. F80;
N5 #111=#5061#112=#5062; -75
N6 G00 Y0;
N7 G31 X0; -100
N8 #121=#5061#122=#5062; -Y
N9 M02;
Skip signal

#111 = −75. + ε #112 = −75. + ε


#121 = −25. + ε #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.

265
13. Program Support Functions
13.5 User macro specifications

Variable name setting and quotation

Any name (variable name) can be given to common variables #500 to #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.

Format
SETVN n [ NAME1, NAME2, • • • • • • • ] :
n : Head number of variable to be named
NAME1 : #n name (variable name)
NAME2 : #n + 1 name (variable name)

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 -12345.678 A234567
#501 5670.000 DIST
#502 -156.500 TOOL25

#518 10.000 NUMBER


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

(Note) At the head of the variable name, do not use the characters determined by the NC for
use in arithmetic commands, etc. (e.g. SIN, COS).

Workpiece coordinate shift amount

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

266
13. Program Support Functions
13.5 User macro specifications

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 Variable No. Data setting range
Number of workpiece
#3901
machining times
0 to 999999
Maximum workpiece
#3902
value
(Note) Always substitute a positive value for the number of workpiece machining times.

Tool life management

(1) Definition of variable numbers


(a) Designation of group No.
#60000
The tool life management data group No. to be read with #60001 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.

(b) Tool life management system variable No. (Read)


#60001 to #64700

# ? ? ? ? ?

+ Variable No. or data type


Data class
6: Tool life management

(c) Details of data classification


Data class M System L System Remarks
00 For control For control Refer to following types
05 Group No. Group No. Refer to registration No.
10 Tool No. Tool No. Refer to registration No.
15 Tool data flag Method Refer to registration No.
20 Tool status Status Refer to registration No.
25 Life data Life time/No. of times Refer to registration No.
Usage time/No. of
30 Usage data Refer to registration No.
times
Tool length
35 – Refer to registration No.
compensation data
Tool radius
40 – Refer to registration No.
compensation data
45 Auxiliary data – Refer to registration No.
The group No., L System method, and life data are common for the group.

267
13. Program Support Functions
13.5 User macro specifications

(d) Registration No.


M system 1 to 200
L system 1 to 16

(e) Data type


Type M System L System Remarks
Number of Number of registered
1
registered tools tools
2 Life current value Life current value
3 Tool selected No. Tool selected No.
Number of
Number of remaining
4 remaining
registered tools
registered tools
Signal being
5 Signal being executed
executed
Cutting time
Cutting time cumulative
6 cumulative value
value (minute)
(minute)
7 Life end signal Life end signal
Life prediction
8 Life prediction signal
signal

Variable No. Item Type Details Data range


60001 Number of Common to Total number of tools registered in each group. 0 to 200
registered tools system
60002 Life current value For each group Usage time/No. of uses of tool being used. 0 to 4000
(Designate Spindle tool usage data or usage data for tool in minutes
group No. use (#60003). 0 to 9999 times
#60000)
60003 Tool selected No. Registration No. of tool being used. 0 to 200
Spindle tool registration No. (If spindle tool is not
data of the designated group, ST:1 first tool, or if
ST:1 is not used, the first tool of ST:0. When all
tools have reached their lives, the last tool.)
60004 Number of No. of first registered tool that has not reached its 0 to 200
remaining life.
registered tools
60005 Signal being "1" when this group is used in program being 0/1
executed executed.
"1" when spindle tool data group No. and
designated group No. match.
60006 Cutting time Indicates the time that this group is used in the
cumulative value program being executed.
(minute)
60007 Life end signal "1" when lives of all tools in this group have been 0/1
reached.
"1" when all tools registered in designated group
reach lives.
60008 Life prediction "1" when new tool is selected with next command 0/1
signal 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".

268
13. Program Support Functions
13.5 User macro specifications

Variable No. Item Type Details Data range


60500 Group No. Each group/ This group's No. 1 to 99999999
+*** registration No.
61000 Tool No. Tool No. 1 to 99999999
+*** (Designate the
61500 Tool data flag group No. Usage data count method, length compensation 0 to FF (H)
+*** #60000 and method, radius compensation method, etc.,
registration No. parameters.
*** .)
bit 0, 1 : Tool length compensation data format
Note the group
No., method bit 2, 3 : Tool radius compensation data format
and life are 0: Compensation No. method
common for the 1: Incremental value compensation
groups. 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
62000 Tool status Tool usage state 0 to 4
+***
0: Not used tool
1: Tool being used
2: Normal life tool
3: Tool error 1
4: Tool error 2
62500 Life data Life time or No. of lives for each tool 0 to 4000
+*** minutes
0 to 9999 times
63000 Usage data Usage time or No. of uses for each tool 0 to 4000
+*** minutes
0 to 9999 times
63500 Tool length Length compensation data set as compensation Compensation
+*** compen-sation No., absolute value compensation amount or No.:
data increment value compensation amount method. 0 to No. of tool
compensation
sets

Absolute value
compensation
amount
±99999.999

Increment value
compensation
amount
±99999.999

269
13. Program Support Functions
13.5 User macro specifications

Variable No. Item Type Details Data range


64000 Tool radius Radius compensation data set as compensation Compensation
+*** compensation No., absolute value compensation amount or No.:
data increment value compensation amount method. 0 to No. of tool
compensation
sets

Absolute value
compensation
amount
±99999.999

Increment value
compensation
amount
±99999.999
64500 Auxiliary data Spare data 0 to 65535
+***

Example of program for tool life management

(1) Normal commands


#101 = #60001 ; ........... Reads the number of registered tools.
#102 = #60002 ; ........... Reads the life current value.
#103 = #60003 ; ........... Reads the tool selection No.
#60000 = 10 ; ............... Designates the group No. of the life data
to be read.
#104 = #60004 ; ........... Reads the remaining number of registered
tools in group 10.
Designated
#105 = #60005 ; ........... Reads the signal being executed in group 10. program No. is
#111 = #61001 ; ........... Reads the group 10, #1 tool No. valid until reset.
#112 = #62001 ; ........... Reads the group 10, #1 status.
#113 = #61002 ; ........... Reads the group 10, #2 status.
%

(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.


#60000 = 10 ;
#111 = #61017 ; ........... Program error (P241)

270
13. Program Support Functions
13.5 User macro specifications

(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, The group 10 life data
Nn is the method. is registered.
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.
The life data other than
TTn ; ............................Tn is the tool No. group 10 is registered.
:
G11 ; ............................Registers the life data with the G10
command.
(The registered data is deleted.)
#111 = 61001 ; ............Group 10 does not exist. #201 = –1.

Precautions for tool life management

(1) 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.
(2) If a non-registered group No. is designated and the tool life management system variable is
commanded, "-1" will be read as the data.
(3) If an unused registration No. tool life management system variable is commanded, "-1" will be
read as the data.
(4) Once commanded, the group No. is valid until NC reset.

271
13. Program Support Functions
13.5 User macro specifications

Reading the parameters

System data can be read in with the system variables.


(Note) These can be used only with some models.
Variable No. Application
#100000 Parameter # designation
#100001 System No. designation
#100002 Axis No./spindle No. designation
#100010 Parameter value read

The parameter values are read in with the following four blocks using these four system variables.
#100000 = 1001 ; ..........Designates the parameter #.
#100001 = 1 ; ................Designates the system No.
#100002 = 1 ; ................Designates the axis No./spindle No.
#100 = #100010 ; ..........Reads the parameter value.

(1) Parameter # designation (#100000)


The parameter to be read in is designated by substituting the parameter # in this system
variable.
If the parameters are read without designating this number, the parameters will be read in the
same manner as if the minimum parameter # (#1) is designated. Once designated, the setting
is held until the parameter # is designated again or until it is reset.
A program error (P39) will occur if a parameter # that does not exist is set.

(2) System No. designation (#100001)


Always set "0".
When using the PLC axis, set "10".

(3) Axis/spindle No. designation (#100002)


(a) System variable for axis/spindle No. designation
The axis No./spindle No. of the parameter to be read in is designated by substituting an
index value in this system variable. This designation will be ignored when reading in
parameters that are not for a specific axis or spindle.
If the parameters are read without designating this number, the parameters will be read in
the same manner as if the index value 1 (1st axis/1st spindle) is designated. Once
designated, the setting is held until the index value is designated again or until it is reset.
A program error (P39) will occur if an axis/spindle No. that does not exist is set.

(b) Index values


Index values Axis parameter Spindle parameter
1 1st axis 1st spindle
2 2nd axis 2nd spindle
3 3rd axis –
4 4th axis –
5 5th axis –
6 6th axis –

272
13. Program Support Functions
13.5 User macro specifications

(4) Parameter read (#100010)


The designated parameter data is read with this system variable.
The following data is read according to the parameter type.
Type Read data
Value The values displayed on the Parameter screen are output.
Text ASCII codes are converted into decimal values.

Example of programs for reading parameters

(1) To read the parameter [#1002 axisno Number of axes]


#100000 = 1002 ;.....................Designates [#1002].
#100001 = 0 ;
#101 = #100010 ;.....................Reads the number of axes.
#100001 = 5 ; ...........................Designates [5th system]. (Program error (P39) occurs.)
#100001 = 10 ; .........................Designates [PLC axis].
#110 = #100010 ;.....................Reads the number of PLC axes.

(2) To read the parameter [#2037 G53ofs #1 reference point]


[Conditions]
<1st axis> <2nd axis>
#2037 G53ofs 1000.000 200.000

#100002 = 1 ; ...........................Designates [1st axis].


#100000 = 2037 ;.....................Designates [#2037].
#101 = #100010 ;.....................Reads the [#1 reference point] for the 1st axis.
(#101 = 100.000.)
#100002 = 2 ; ...........................Designates [2nd axis].
#102 = #100010 ;.....................Reads the [#1 reference point] for the 2nd axis.
(#102 = 200.000.)

(3) To read each parameter for each axis and spindle


#100002 = 1 ; ...........................Designates [1st spindle].
#100000 = 3001 ;.....................Designates [#3001].
#101 = #100010 ;.....................Reads the [#3001 slimt1 Number of limit rotation gears 00]
for 1st spindle.
#100000 = 3002 ;.....................Designates [#3002].
#102 = #100010 ;.....................Reads the [#3002 slimt2 Number of limit rotation gears 01]
for 1st spindle.
#100002 = 2 ; ...........................Designates [2nd spindle].
#100000 = 3001 ;.....................Designates [#3001].
#201 = #100010 ;.....................Reads the [#3001 slimt1 Number of limit rotation gears 00]
for 2nd spindle.
#100000 = 3002 ;.....................Designates [#3002].
#202 = #100010 ;.....................Reads the [#3002 slimt2 Number of limit rotation gears 01]
for 2nd spindle

273
13. Program Support Functions
13.5 User macro specifications

Example of parameter read macro program

<Macro specifications>
Q341 A_. Q_ . ;
A_. ...... Storage common variable Designates the common variable No. for storing the
data read in.
Q_....... Parameter # designation For an axis/spindle parameter, designates the
axis/spindle No. with one digit after the decimal point.

<Macro contents>
#100000 = FIX [#17] ; .......... Designates parameter #.
#100002 = FIX [#17∗10] MOD 10 ; .......... Designates axis/spindle No.
#[#1] = #100010 ; ........... Reads parameter data.
M99 ;

Precautions for reading parameters

(1) The number of axes and spindles is the maximum number in the specifications determined by
the model.
(2) The inch/metric changeover function for the setting and display is valid even for the data read
in.

274
13. Program Support Functions
13.5 User macro specifications

Reading PLC data

PLC data can be read in with the system variables.


(Note 1) These can be used only with some models.
(Note 2) The read devices are limited.
Variable No. Application
#100100 Device type designation
#100101 Device No. designation
#100102 Number of read bytes designation
#100103 Read bit designation
#100110 PLC data read

The PLC data is read in with the following five blocks using these five system variables.
#100100 = 1 ; ............ Designates the device type.
#100101 = 0 ; ............ Designates the device No.
#100102 = 1 ; ............ Designates the number of bytes.
#100103 = 2 ; ............ Designates the bit. (Valid only when reading word device bits.)
#100 = #100110 ; ...... Reads in the PLC data.

(1) Device designation (#100100)


(a) System variable for device designation
The type of device to be read in can be designated by substituting the device designation
value in this system variable.
If the data is read without designating this number, the data will be read in the same
manner as if the minimum device designation value (0: M device) is designated. Once
designated, the setting is held until the device is designated again or until it is reset.
A program error (P39) will occur if a device that does not exist is set.

(b) Device designation values


Device Device
designa- Device designa- Device
tion value Unit Device No. tion value Unit Device No.
0 M Bit M0 to M5503 10 F Bit F0 to F255
1 D Word D0 to D1023 11 I* Bit I0 to I3FF
2 C Bit C0 to C23 12 J* Bit J0 to J63F
3 G Bit G0 to G3071 13 L Bit L0 to L255
4 X* Bit X0 to X4BF 14 Q Bit Q0 to Q151
5 Y* Bit Y0 to Y53F 15 S* Bit S0 to S13F
6 R Word R0 to R8191 16 U* Bit U0 to U17F
7 T Bit T0 to T103 17 W* Bit W0 to W1FF
8 B Bit B0 to B103
9 E Bit E0 to E127
The unit is the amount of data per device No. "Word" has 16 bits, and "Bit" has one bit.
* is a device that expresses the device No. as a hexadecimal.

275
13. Program Support Functions
13.5 User macro specifications

(2) Device No. designation (#100101)


The device to be read in is designated by substituting the device No. in this system variable.
Convert a device expressed as a hexadecimal into a decimal when designating.
If the data is read without designating this number, the data will be read in the same manner
as if the minimum device No. (0) is designated. Once designated, the setting is held until the
device No. is designated again or until it is reset.
A program error (P39) will occur if a device No. that does not exist is set.

(3) Number of bytes designation (#100102)


(a) System variable for number of bytes designation
The reading size is designated by substituting the number of bytes designation value in
this system variable.
If the data is read without designating this number, the data will be read in the same
manner as if the minimum number of bytes designation value (0: bit designation) is
designated. Once designated, the setting is held until the number of bytes is designated
again or until it is reset.
A program error (P39) will occur if a number of bytes that does not exist in the
specifications is set.

(b) Number of bytes designation value


Number of Read in data Operation
bytes
designa- Size Sign Range Word device Bit device
tion value
0 1 bit – 0 to 1 The number of The bits for the
bits designated designated device No.
is read in. are read in.
1 1 byte No 0 to 255 The low-order 8 bits are read in from
101 Yes –128 to 127 byte is read in. the designated device
No.
2 2 bytes No 0 to 65535 Two bytes are 16 bits are read in from
102 Yes –32768 to 32767 read in. the designated device
No.
4 4 bytes No 0 to 4294967295 The designated 32 bits are read in from
104 Yes –2147483648 to device (L) and the designated device
2147483647 next device (H) No.
are read in.

0 to 4 are designated without a sign, and 101 to 104 are designated with a sign.

276
13. Program Support Functions
13.5 User macro specifications

(4) Bit designation (#100103)


(a) System variable for bit designation
The bit to be read in is designated by substituting the bit designation value in this system
variable.
This designation is valid only when reading the bits for a 16-bit device, and is invalid in all
other cases.
If the data is read without designating this number, the data will be read in the same
manner as if the minimum bit designation value (0: bit 0) is designated. Once designated,
the setting is held until the bit is designated again or until it is reset.
A program error (P39) will occur if a bit that does not exist is set.

(b) Bit designation values


Bit designation
Read in bit
value
0 Bit 0
1 Bit 1
: :
15 Bit 15

(5) PLC data read (#100110)


The data for the designated device is read in with this system variable.
Refer to the table for number of bytes designation for details on the range of data read in.

277
13. Program Support Functions
13.5 User macro specifications

Examples of programs for reading PLC data

(1) To read a bit device


#100100 = 0 ; ............ Designates [M device].
#100101 = 0 ; ............ Designates [Device No. 0].
#100102 = 0 ; ............ Designates [Bit].
#100 = #100110 ;...... Reads M0 (one bit).
#100102 = 1 ; ............ Designates [1 byte].
#101 = #100110 ;...... Reads M0 to M7 (eight bits).
(If M7 to M0 is 0001 0010, this will be #102 = 18 (0x12).)
#100102 = 102 ;........ Designates [Signed two bytes].
#102 = #100110 ; ..... Reads M0 to M15 (16 bits).
(If M15 to M0 is 1111 1110 1101 1100, this will be
#102 = –292 (0xFEDC).)
#100102 = 4 ; ............ Designates [4 bytes].
#104 = #100110 ; ..... Reads M0 to M31 (32 bits).
(If M31 to M0 is 0001 0010 0011 0100 0101 0110 0111 1000,
this will be #104 = 305419896 (0x12345678).)

(2) To read a word device


#100100 = 1 ; ............ Designates [D device].
#100101 = 0 ; ............ Designates [Device No. 0].
#100102 = 0 ; ............ Designates [Bit].
#100103 = 1 ; ............ Designates [Bit 1].
#100 = #100110 ;...... Reads the D0 bit 1.
(If D0 = 0x0102, this will be #101 =1.)
#100102 = 1 ; ............ Designates [1 byte].
#101 = #100110 ; ..... Reads the low-order byte of D0.
(If D0 = 0x0102, this will be #101 =2.)
#100102 = 2 ; ............ Designates [2 bytes].
#102 = #100110 ; ..... Reads D0. (If D0 = 0x0102, this will be #102 =258.)
#100102 = 104 ;........ Designates [Signed four bytes].
#104 = #100110 ; ..... Reads D0 and D1.
(If D0 = 0xFFFE and D1 = 0xFFFF, this will be #104 =–2.)

278
13. Program Support Functions
13.5 User macro specifications

Examples of using macro program for reading PLC data

<Macro specifications>
G340 F_. A_. Q_. H_. ;
F_. ...........Number of bytes designation F0 ..... Designates bit.
F1 ..... Designates one byte.
F2 ..... Designates two bytes.
A_. ............Device designation A0 ..... Designates M.
A1 ..... Designates D.
A2 ..... Designates C.
A3 ..... Designates G.
A4 ..... Designates X.
A5 ..... Designates Y.
A6 ..... Designates R.
A7 ..... Designates T.
Q_.............Device No. designation For a bit, designates the bit with two digits
after the decimal point.
For a byte, a decimal value is not designated.
H_............. Storage common variable Designates the common variable No. for
storing the read data.

<Macro contents>
#100100 = #1 ; ...... Designates device.
#100101 = FIX [#17] ; ...... Designates device No.
#100102 = #9 ; ...... Designates number of bytes.
#100103 = FIX [#17∗100] MOD 100 ; ...... Designates bit.
#[#11] = #100110 ; ...... Reads PLC data.
M99 ;

Precautions for reading PLC data

(1) As the PLC data is read asynchronously from the ladder execution, the data is not necessarily
from the running program. Take care when reading devices that change.
(2) If reading of a device that does not exist is attempted by designating the device No. and
number of bytes, the 0 value will be read in only for the sections that do not exist.

279
13. Program Support Functions
13.5 User macro specifications

Time reading variables

The following operations can be carried out using the system variable extension for the user macro
time.

(1) By adding time information system variable #3011 and #3012, the current date (#3011) and
current time (#3012) can be read and written.
(2) By adding parameter #1273/bit1, the unit (millisecond unit/hour unit) of the cumulative time
during system variable #3002 automatic start can be changed.
Variable No. Details
#3001 The cumulative time during power ON can be read and the value can be
substituted.
The unit is a millisecond unit.
#3002 The cumulative time during automatic start can be read and the value can
be substituted.
The unit can be changed between millisecond and hour with parameter
#1273/bit1.
#3011 The current date can be read and written.
YYYY/MM/DD is read as a YYYYMMDD value.
When a YYYYMMDD value is written in, it will be set as YY/MM/DD (the
last two digits of the year are displayed).
Command range for year/month/date setting
Year (YYYY) : 2000 to 2099
Month (MM) : 1 to 12
Date (DD) : 1 to maximum number of days in month
#3012 The current time can be read and written.
HH/MM/SS is read as a HHMMSS value.
When an HHMMSS value is written in, it will be set as HH/MM/DD.
Command range for hour/minute/second setting
Hour (HH) : 0 to 23 (24-hour system)
Minute (MM) : 0 to 59
Second (SS) : 0 to 59

(3) The cumulative time returns to 0 at approx. 2.44 × 1011 milliseconds (approx. 7.7 years).
(4) If a negative value or a value exceeding 244335917226 milliseconds (67871.08811851 hours
for #3002 time designation) is set for the cumulative time, a program error (P35) will occur.
(5) If a value exceeding the command range is set for the date or time, a program error (P35) will
occur.
(6) Always set the month/date/hour/minute/second as a two-digit value when setting the date and
time.
If the value only has one digit, always add 0. (February 14, 2001 ⇒ #3001= 20010214 ;, etc.)

280
13. Program Support Functions
13.5 User macro specifications

Examples of using time reading variable

(Example 1) To read the current date (February 14, 2001) in common variable #100
#100 = #3011 ; (20010214 is inserted in #100)
(Example 2) To write current time (18 hours, 13 minutes, 6 seconds) into system variable #3012
#3012 = 181306 ; (The command value cumulative time #2: time is set to 18:13:06.)
(Example 3) By setting the following type of program, the machining start/end time
(year/month/date/hour/minute/second) can be viewed.

#100=#3011 ; ⇒ Machining start year/month/date


#101=#3012 ; ⇒ Machining start hour/minute/second
G28 X0 Y0 Z0 ;
G92 ;
G0 X50. ;
.
.
.
#102=#3011 ; ⇒ Machining end year/month/date
#103=#3012 ; ⇒ Machining end hour/minute/second
M30 ;

Limits and precautions for using time reading variable

(1) #3011 reads the date as an eight-digit value, so the difference of the two dates read in will not
be the difference of days.
(2) #3012 reads the time as a six-digit value, so the difference of the two times read in will not be
the difference of hours.

281
13. Program Support Functions
13.5 User macro specifications

13.5.5 Arithmetic commands

A variety of arithmetic operations can be performed between variables.

Command format

#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
#i = #j Definition, substitution
substitution of variables
(2) Addition arithmetic #i = #j + #k Addition
#i = #j – #k Subtraction
#i = #j OR #k Logical sum (at every bit of 32 bits)
#i = #j XOR #k Exclusive OR (at every bit of 32 bits)
(3) Multiplication arithmetic #i = #j ∗ #k Multiplication
#i = #j / #k Division
#i = #j MOD #k Remainder
#i = #j AND #k Logical product (at every bit of 32 bits)
(4) Functions #i = SIN [#k] Sine
#i = COS [#k] Cosine
#i = TAN [#k] Tangent (sin/cos used for tan)
#i = ASIN [#k] Arcsine
#i = ATAN [#j] Arctangent (ATAN or ATN may be used)
#i = ACOS [#j] Arc-cosine
#i = SQRT [#k] Square root (SQRT or SQR may be used)
#i = ABS [#k] Absolute value
#i = BIN [#k] Conversion from BCD to BIN
#i = BCD [#k] Conversion from BIN to BCD
#i = ROUND [#k] Rounding off
(ROUND or RND may be used)
#i = FIX [#k] Discard fractions less than 1
#i = FUP [#k] Add for fractions less than 1
#i = LN [#k] Natural logarithm
#i = EXP [#k] Exponent with e (=2.718 .....) as bottom
(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)
Common variables
#101 = 1000 ; after execution
#101 1000.000
#10001 = #101 ;
#102 1000.000
#102 = #10001 ;

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

282
13. Program Support Functions
13.5 User macro specifications

Sequence of arithmetic operations

(1) 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 + #112∗SIN[#113]


(1) Function
(2) Multiplication arithmetic
(3) Addition arithmetic

(2) 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

Examples of arithmetic commands

(1) Main program G65 P100 A10 B20. ; #1 10.000


and argument #101=100.000 #102=200.000 ; #2 20.000
designation #101 100.000
#102 200.000
(2) Definition and #1=1000 #1 1000.000
substitution #2=1000. #2 1000.000
(=) #3=#101 #3 100.000 From common variables
#4=#102 #4 200.000
#5=#10001 (#10001=-10.) #5 −10.000 ··· From offset amount
(3) Addition and #11=#1+1000 #11 2000.000
subtraction #12=#2−50. #12 950.000
(+, −) #13=#101+#1 #13 1100.000
#14=#10001−3. (#10001 = -10.) #14 −13.000
#15=#10001+#102 #15 190.000
(4) Multiplication #21=100∗100 #21 10000.000
and division #22=100.∗100 #22 10000.000
(∗, /) #23=100∗100 #23 10000.000
#24=100.∗100. #24 10000.000
#25=100/100 #25 1.000
#26=100./100 #26 1.000
#27=100/100. #27 1.000
#28=100./100. #28 1.000
#29=#10001∗#101 #29 −1000.000
( #10001 = -10.)
#30=#10001/#102 #30 –0.050
(5) Remainder #19=48 #19/#20 = 48/9 = 5 with 3 over
(MOD) #20=9
#31=#19 MOD #20 #31 = 3

283
13. Program Support Functions
13.5 User macro specifications

(6) Logical sum #3=100 #3 = 01100100 (binary)


(OR) #4=#3 OR 14 14 = 00001110 (binary)
#4 = 01101110 = 110
(7) Exclusive #3=100 #3 = 01100100 (binary)
OR (XOR) #4=#3 XOR 14 14 = 00001110 (binary)
#4 = 01101010 = 106
(8) Logical #9=100 #9 = 01100100 (binary)
product #10=#9 AND 15 15 = 00001111 (binary)
(AND) #10 = 00000100 = 4
(9) Sin (SIN) #501 = SIN [60] #501 0.860
#502 = SIN [60.] #502 0.860
#503 = 1000∗SIN [60] #503 866.025
#504 = 1000∗SIN [60.] #504 866.025
#505 = 1000.∗SIN [60] #505 866.025
#506 = 1000.∗SIN [60.] #506 866.025
(Note) SIN [60] is equivalent to SIN [60.]
(10) Cosine #541 = COS [45] #541 0.707
(COS) #542 = COS [45.] #542 0.707
#543 = 1000∗COS [45] #543 707.107
#544 = 1000∗COS [45.] #544 707.107
#545 = 1000.∗COS [45] #545 707.107
#546 = 1000.∗COS [45.] #546 707.107
(Note) COS [45] is equivalent to COS [45.]
(11) Tangent #551 = TAN [60] #551 1.732
(TAN) #552 = TAN [60.] #552 1.732
#553 = 1000∗TAN [60] #553 1732.051
#554 = 1000∗TAN [60.] #554 1732.051
#555 = 1000.∗TAN [60] #555 1732.051
#556 = 1000.∗TAN [60.] #556 1732.051
(Note) TAN [60] is equivalent to TAN [60.]
(12) Arcsine #531 = ASIN [100.500/201.] #531 30.000
ASIN #532 = ASIN [100.500/201] #432 30.000
#533 = ASIN [0.500] #533 30.000
#534 = ASIN [–0.500] #534 –30.000
(Note) When #1273/bit 0 is
set to 1, #534 will be
330º.
(13) Arctangent #561 = ATAN [173205/100000] #561 60.000
(ATAN or #562 = ATAN [173205/100000.] #562 60.000
ATN) #563 = ATAN [173.205/100] #563 60.000
#564 = ATAN [173.205/100.] #564 60.000
#565 = ATAN [1.73205] #565 60.000

284
13. Program Support Functions
13.5 User macro specifications

(14) Arccosine #521 = ACOS [100./141.421] #521 45.000


(ACOS) #522 = ACOS [100./141.421] #522 45.000
(15) Square root #571 = SQRT [1000] #571 31.623
(SQR or #572 = SQRT [1000.] #572 31.623
SQRT) #573 = SQRT [10. ∗10. +20. ∗20.] #573 22.360
(Note) In order to increase the accuracy,
proceed with the operation inside
parentheses.
(16) Absolute #576 = −1000 #576 −1000.000
value (ABS) #577 = ABS [#576] #577 1000.000
#3 = 70. #4 = −50.
#580 = ABS [#4 − #3] #580 120.000
(17) BIN, BCD #1 = 100
#11 = BIN [#1] #11 64
#12 = BCD [#1] #12 256
(18) Rounding off #21 = ROUND [14/3] #21 5
(ROUND or #22 = ROUND [14./3] #22 5
RND) #23 = ROUND [14/3.] #23 5
#24 = ROUND [14./3.] #24 5
#25 = ROUND [−14/3] #25 −5
#26 = ROUND [−14./3] #26 −5
#27 = ROUND [−14/3.] #27 −5
#28 = ROUND [−14./3.] #28 −5
(19) Discarding #21 = FIX [14/3] #21 4.000
fractions #22 = FIX [14./3] #22 4.000
below #23 = FIX [14/3.] #23 4.000
decimal #24 = FIX [14./3.] #24 4.000
point (FIX) #25 = FIX [−14/3] #25 −4.000
#26 = FIX [−14./3] #26 −4.000
#27 = FIX [−14/3.] #27 −4.000
#28 = FIX [−14./3.] #28 −4.000
(20) Adding #21 = FUP [14/3] #21 5.000
fractions #22 = FUP [14./3] #22 5.000
less than 1 #23 = FUP [14/3.] #23 5.000
(FUP) #24 = FUP [14./3.] #24 5.000
#25 = FUP [−14/3] #25 −5.000
#26 = FUP [−14./3] #26 −5.000
#27 = FUP [−14/3.] #27 −5.000
#28 = FUP [−14./3.] #28 −5.000
(21) Natural #101 = LN [5] #101 1.609
logarithms #102 = LN [0.5] #102 −0.693
(LN) #103 = LN [−5] Error "P282"
(22) Exponents #104 = EXP [2] #104 7.389
(EXP) #105 = EXP [1] #105 2.718
#106 = EXP [−2] #106 0.135

285
13. Program Support Functions
13.5 User macro specifications

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 Average error Maximum error Type of error
a=b+c
2.33 × 10−10 5.32 × 10−10 Min. |ε/b|, |ε/c|
a=b−c
a = b∗c 1.55 × 10−10 4.66 × 10−10
Relative error
a = b/c 4.66 × 10−10 1.86 × 10−9
|ε/a|
a= b 1.24 × 10−9 3.73 × 10−9
a = SIN [b]
5.0 × 10−9 1.0 × 10−8 Absolute error
a = COS [b]
|ε|°
a = ATAN [b/c] 1.8 × 10−6 3.6 × 10−6
(Note) SIN/COS is calculated for the function TAN.

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 10−8.
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 10−8, care should be taken when dividing or multiplying after having used a
trigonometric function.

286
13. Program Support Functions
13.5 User macro specifications

13.5.6 Control commands

The flow of programs can be controlled by IF-GOTO- and WHILE-DO-.

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 = When #i and #j are equal
#i NE #j ≠ When #i and #j are not equal
#i GT #j > When #i is greater than #j
#i LT #j < When #i is less than #j
#i GE #j ≥ When #i is #j or more
#i LE #j ≤ When #i is #j or less
"n" of GOTO n must always be in the same program. Program error (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, program error (P231) will result.
If "/" is at the head of the block and Nn follows, control can be branched to the sequence number.

N10 #22=#20 #23=#21;


IF [#2 EQ1] GOTO100; Branching to
#22=#20-#3; N100 when Branch
Branch
search

search
#23=#21-#4; content of #2 is 1
With
N100 N10
N100 X#22 Y#23;
#1=#1+1;
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.

287
13. Program Support Functions
13.5 User macro specifications

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 (2) Any number may be used for the WHILE −DOm
of times. identifier number.
WHILE ~ DO1 ;

~
END1 ;
WHILE ~ DO1 ;

~
Possible WHILE ~ DO3 ;

~
END1 ;
END3 ;

~
Possible
WHILE ~ DO1 ; WHILE ~ DO2 ;

~
Possible END2 ;
END1 ;
~
WHILE ~ DO1 ;
~

END1 ;

(3) Up to 27 nesting levels for WHILE− DOm. "m" is (4) The number of WHILE − DOm nesting levels
any number from 1 to 127 for the nesting depth. cannot exceed 27.
DO1
WHILE ~ DO1 ;
WHILE ~ DO1 ;
DO2
~

WHILE ~ DO2 ;
WHILE ~ DO2 ;
: :
Possible

WHILE~DO27; DO27 WHILE ~ DO3 ;


~

Not possible

WHILE ~ DO28;
~

END 27 ; END 28;


~

:
END 3 ;
END 2 ; :
END 2 ;
~

END 1 ; END 1 ;

(Note) :With nesting, "m" which has been used once


cannot be used.

288
13. Program Support Functions
13.5 User macro specifications

(5) WHILE − DOm must be designated first and (6) WHILE − DOm and ENDm must correspond on
ENDm last. a 1:1 (pairing) basis in the same program.
WHILE ~ DO1 ;

END 1 ;
Not Not
possible WHILE ~ DO1 ;
possible
WHILE ~ DO1 ;
END 1 ;

(7) Two WHILE − DOm's must not overlap. (8) Branching externally is possible from the WHILE
− DOm range.

WHILE ~ DO1 ; WHILE ~ DO1 ;


~ ~

Not
possible WHILE ~ DO2 ; IF ~ GOTOn ;

END 1 ; END 1 ;
Possible
~

END 2 ;
Nn

(9) No branching is possible inside WHILE − DOm. (10) Subprograms can be called by M98, G65 or
G66 between WHILE − DOm's.
WHILE~DO1;
IF~GOTOn;
Not possible

IF~GOTOn; Main program Subprogram


Not possible

WHILE~DO1; END1; WHILE~DO1;


WHILE~DO02;
Possible

G65
WHILE~DO1; To subprogram
Nn; P100;
END2;
Nn;
END1;
END1; END1;
M02; M99;

(11) Calls can be initiated by G65 or G66 between (12) A program error will occur at M99 if WHILE and
WHILE − DOm's and commands can be issued END are not paired in the subprogram
again from 1. Up to 27 nesting levels are (including macro subprogram).
possible for the main program and
Main program Subprogram
subprograms.
WHILE
Main program Subprogram M98 To subprogram ~DO1;
P100;
WHILE ~ DO1 ; WHILE ~ DO1 ;
~

M99;
M02;
Possible

G65 P100 ; To subprogram


Don ENDn
~

END 1 ; constitutes
illegal usage.
END 1 ;
~

M02 ; M99 ;

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

289
13. Program Support Functions
13.5 User macro specifications

13.5.7 External output commands

Function and purpose

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.

Command format

POPEN For preparing the processing of data outputs


PCLOS For terminating the processing of data outputs
BPRNT For character output and variable value binary output
DPRNT For character output and digit-by-digit variable numerical output

Command sequence

POPEN Open command

DPRNT Data output command

PCLOS Closed command

Open command : POPEN

(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.

Close command : PCLOS

(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.

290
13. Program Support Functions
13.5 User macro specifications

Data output command : DPRNT

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

l1 : Character string
v1 : Variable number
d1 : Significant digits above decimal point
c1 : Significant digits below decimal point c+d≤8

(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 to Z, 0 to 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.

291
13. Program Support Functions
13.5 User macro specifications

13.5.8 Precautions

Precautions

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

G91G28X0Y0Z0 ; • • • • • (1)
G92X0Y0Z0 ; • • • • • (2)
G00X-100.Y-100. ; • • • • • (3)
#101=100.∗ COS [210.] ; • • • • • (4)
Macro statement
#102=100.∗ SIN [210.] ; • • • • • (5)
G01X#101Y#102F800 ; • • • • • (6)

Macro statements are:


(1) Arithmetic commands (block including =)
(2) Control commands (block in

292
13. Program Support Functions
13.5 User macro specifications

(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.

-X x1
W
Main program
a1 ;
Start angle a1
b1 ;
No. of holes y1
G81Z–100.R50.F300L0 To subprogram
r1 ;
Radius
G65P9920Aa1Bb1Rr1Xx1Yy1 ; x1 ;
X axis center
position -Y
y1 ; Y axis center
position

O9920 (Subprogram) O9920

0 → #101 #101 = No. of hole count


#101=0 ; G90, G91 mode
#102=#4003 ; Read in → #102 #102 = G90 or G91
#103=#5001 ; Read previous coordinates
(Note 1)
#104=#5002 ; X → #103 #103 = X axis current position
Y → #104 #104 = Y axis current position
#111=#1 ; Start angle → 111 #111 = Start angle

WHILE [#101LT#2] DO1 ; N


#101 ≤ No. of holes END
#120=#24+#18∗COS [#111] ;
Y
#121=#25+#18∗SIN [#111] ; (Note 1)
Radius∗COS [#111] #120 = Hole position
+ Center coordinates X→#120 X coordinates
#122=#120 #123=#121 ; Radius∗SIN [#111] #121 = Hole position
Y coordinates
IF [#102EQ90] GOTO100 ; + Center coordinates Y→#121 #122 = X axis absolute value
#120 → #122 #123 = Y axis absolute value
#121 → #123
#122=#120 − #103 ;
#123=#121 − #104 ; (Note 1)
Y Judgment of G90, G91
#102=90
#103=#120 mode
(Note 1) N
#104=#121
#120-#103 → #122 #122 = X axis incremental value
#121-#104 → #123 123 = Y axis incremental value
N100 X#122Y#123 ; #120 → #103 X axis current position update
#101=#101+1 ; (Note 1) #121 → #104 Y axis current position update
#111=#1+360.∗#101/#2 ;
N100X#122Y#123 Drilling command
END1 ;
M99 ; #101+1 → #101 No.of holes counter up
360 deg.∗#101/
No. of holes+#1 → #111 #111 = Hole position angle
(Note 1) The processing time can be shortened
by programming in one block.

295
13. Program Support Functions
13.5 User macro specifications

-X -500. W

To subprogram

To subprogram
-500.
To subprogram

-Y

296
14. Coordinates System Setting Functions
14.9 Simple zero point return

Accuracy

(1) 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] [Improvement function valid]
G0 G0
(-30,30,30) (-30,30,30)
(30,30,30) (30,30,30)

G0 G0 G28
G28

The accuracy drops.

(2) 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] [Improvement function valid]

G0 G0
(-30,30,30) (30,30,30) (-30,30,30) (30,30,30)

G28 (30,15,30) G28 (30,15,30)


G0 G0

385
14. Coordinates System Setting Functions
14.9 Simple zero point return

(3) 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] [Improvement function valid]


G0 G0
(-30,30,30) (-30,30,30)
(30,30,30) (30,30,30)

G0 G0
G28 G2 The accuracy drops.

(4) 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] [Improvement function valid]
G0 G0
(-30,30,30) (-30,30,30)
(30,30,30) (30,30,30)

G28 (30,15,30) (30,15,30)


G0 G0 G28

The accuracy drops.

386
14. Coordinates System Setting Functions
14.9 Simple zero point return

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.
(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.

387
14. Coordinates System Setting Functions
14.10 Reference point check

14.10 Reference point check; G27


Function and purpose

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.

Command format

G27 Xx1 Yy1 Zz1 Pp1 ;


G27 : Check command
Xx1 Yy1 Zz1 : Return control axis
Pp1 : Check number
P1 : 1st reference point check
P2 : 2nd reference point check
P3 : 3rd reference point check
P4 : 4th reference point check

Detailed description

(1) If the P command has been omitted, the first reference point will be checked.
(2) 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.
(3) An alarm will occur if the reference point is not reached after the command is completed.

388
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

14.11 Work coordinate system setting and offset ; G54 to G59 (G54.1)
Function and purpose

(1) 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.
(2) 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 to 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.)
(3) 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.)
(4) 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)

Command format

(1) Work coordinate system selection (G54 to G59)


(G90) G54 Xx1 Yy1 Zz1 αα1;
αα1 :Additional axis

(2) Work coordinate system setting (G54 to G59)


(G54) G92 Xx1 Yy1 Zz1 αα1;
αα1 :Additional axis

(3) Extended work coordinate system selection (P1 to P48)


G54.1 Pn ;

(4) Extended work coordinate system setting (P1 to P48)


G54.1 Pn ;
G92 Xx Yy Zz ;

(5) Extended work coordinate system offset amount setting (P1 to P48)
G10 L20 Pn Xx Yy Zz ;

389
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

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.
(2) The G54 work coordinate system is selected when the power is switched on.
(3) Commands G54 through G59 are modal commands (group 12).
(4) The coordinate system will move with G92 in a work coordinate system.
(5) The offset setting in a work coordinate system denotes the distance from the zero point of the
basic machine coordinate system.
R#1 Reference point
(#1) (zero point)
-X M return position
Basic machine coordinate
-X(G54)(-500, system zero point
-500)
-X(G55)(-2000, W1 G54 reference point (zero point)
-1000) -Y
W2 (G54)

-Y(G55) G55 reference point (zero point)


G54 X = −500
Y = −500
G55 X = −2000
-Y 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 : Set the offset amount in the external workpiece
coordinate system.
n=1 to 6 : Set the offset amount in the designated workpiece
coordinate system.
Others : The program error (P35) will occur.
G10 L2 Xx Yy Zz ; Set the offset amount in the currently selected workpiece
coordinate system.
When in G54.1 modal, the program error (P33) will occur.
G10 L20 Pn Xx Yy Zz ; n=1 to 48 : Set the offset amount in the designated
workpiece coordinate system.
Others : The program error (P35) will occur.
G10 L20 Xx Yy Zz ; Set the offset amount in the currently selected workpiece
coordinate system.
When in G54 to G59 modal, the program error (P33) will
occur.
G10 Pn Xx Yy Zz ; L2 (workpiece offset) will be judged if there is no L value.
G10 Xx Yy Zz ;

390
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

(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 to G59) will move in parallel and new work coordinate systems 2 through 6 will be set.
(8) 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.
R#1
Reference (zero) point return
-X M position
Basic machine coordinate
system zero point
-X [M]
Imaginary machine coordinate system
coordinate point based on G92
-X(G54)
Old work 1 (G54) coordinate system
-X(G55) W1
Old work 2 (G55) coordinate system
-X(G54') W2
New work 1 (G54) coordinate system
-X(G55') [W1] -Y(G55) -Y(G54)
New work 2 (G55) coordinate system
[W2]
-Y
-Y(G54')
-Y(G55')
-Y
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) will occur when the G54.1 command is executed.

391
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

(14) When number of workpiece offset sets additional specifications is not added, the program
error (P172) 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)
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 G54 to
G59, G54.1 and P2 to P96 will move in parallel with it, and a new workpiece coordinate system
will be set.
(17) The offset amount of the extended workpiece coordinate system is assigned to the variable
number as shown in Table 1.

Table 1 Variable numbers of the extended workpiece coordinate offset system


1st axis to nth 1st axis to nth 1st axis to nth 1st axis to nth
axis axis axis axis
P 1 #7001 to #700n P25 #7481 to #748n P49 #7961 to #796n P73 #8441 to #844n
P 2 #7021 to #702n P26 #7501 to #750n P50 #7981 to #798n P74 #8461 to #846n
P 3 #7041 to #704n P27 #7521 to #752n P51 #8001 to #800n P75 #8481 to #848n
P 4 #7061 to #706n P28 #7541 to #754n P52 #8021 to #802n P76 #8501 to #850n
P 5 #7081 to #708n P29 #7561 to #756n P53 #8041 to #804n P77 #8521 to #852n
P 6 #7101 to #710n P30 #7581 to #758n P54 #8061 to #806n P78 #8541 to #854n
P 7 #7121 to #712n P31 #7601 to #760n P55 #8081 to #808n P79 #8561 to #856n
P 8 #7141 to #714n P32 #7621 to #762n P56 #8101 to #810n P80 #8581 to #858n
P 9 #7161 to #716n P33 #7641 to #764n P57 #8121 to #812n P81 #8601 to #860n
P10 #7181 to #718n P34 #7661 to #766n P58 #8141 to #814n P82 #8621 to #862n
P11 #7201 to #720n P35 #7681 to #768n P59 #8161 to #816n P83 #8641 to #864n
P12 #7221 to #722n P36 #7701 to #770n P60 #8181 to #818n P84 #8661 to #866n
P13 #7241 to #724n P37 #7721 to #772n P61 #8201 to #820n P85 #8681 to #868n
P14 #7261 to #726n P38 #7741 to #774n P62 #8221 to #822n P86 #8701 to #870n
P15 #7281 to #728n P39 #7761 to #776n P63 #8241 to #824n P87 #8721 to #872n
P16 #7301 to #730n P40 #7781 to #778n P64 #8261 to #826n P88 #8741 to #874n
P17 #7321 to #732n P41 #7801 to #780n P65 #8281 to #828n P89 #8761 to #876n
P18 #7341 to #734n P42 #7821 to #782n P66 #8301 to #830n P90 #8781 to #878n
P19 #7361 to #736n P43 #7841 to #784n P67 #8321 to #832n P91 #8801 to #880n
P20 #7381 to #738n P44 #7861 to #786n P68 #8341 to #834n P92 #8821 to #882n
P21 #7401 to #740n P45 #7881 to #788n P69 #8361 to #836n P93 #8841 to #884n
P22 #7421 to #742n P46 #7901 to #790n P70 #8381 to #838n P94 #8861 to #886n
P23 #7441 to #744n P47 #7921 to #792n P71 #8401 to #840n P95 #8881 to #888n
P24 #7461 to #746n P48 #7941 to #794n P72 #8421 to #842n P96 #8901 to #890n

CAUTION
If the workpiece coordinate system offset amount is changed during single block stop, the new
setting will be valid from the next block.

392
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

Example of program

(Example 1)

(1) G28 X0Y0 ;


(2) G53 X−1000 Y−500 ;
(3) G53 X0Y0 ;

R#1

Present (1) Reference (zero) point


position return position (#1)
(2) (3) M

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 Y−500 ;
(4) G01G91X−500F 100 ;
(5) Y−500 ;
(6) X+500 ;
(7) Y+500 ;
(8) G90G00G55X0Y0 ; Reference (zero) point
(9) G01X−500 F200 ; return position (#1)
(10) X0Y−500 ;
(11) G90G28X0Y0 ; (1)
Present position
(2)
M
-X(G54) -1000 -500 (3) -500
(9) W2
-X(G55) (8) W1
- -1000
(5) (4) (7) 500
(10) (11) - -1500
(6)
1000

-Y -Y
(G55) (G54)

393
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

(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) G28 X0 Y0 ;
(2) G90 G53 X0 Y0 ; (This is not required when there is no G53 offset.)
(3) G54 X Amount by which work coordinate system deviates
−500Y−500 ;
(4) G92 X0 Y0 ; New work coordinate system is set.
(5) M98 P1111 ;

(#1) Reference (zero) point


return position
(1)
Present position (2)
-X

Old G55 coordinate system -X(G54) M Old G54 coordinate


-X (3) system
-X(G55) (G54') New G54 coordinate
New G55 coordinate system (4) system
-X(G55') W1

W2 -Y
(G54)
-Y -Y
(G55) (G54')
-Y(G55')

-Y

(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.

394
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

(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


Workpiece1 X = −100.000 Y = −100.000 ....................................... G54
2 X = −100.000 Y = −500.000 ...................................... G55
3 X = −500.000 Y = −100.000 ...................................... G56
4 X = −500.000 Y = −500.000 ...................................... G57
5 X = −900.000 Y = −100.000 ...................................... G58
6 X = −900.000 Y = −500.000 ....................................... G59

(2) Machining program (subprogram)


O100;
N1 G90 G0 G43X-50. Y-50. Z-100. H10; Positioning
N2 G01 X-200. F50;
Y-200. ;
X- 50. ; Surface cutting
Y- 50. ;
N3 G28 X0 Y0 Z0 ;
~

N4 G98 G81 X-125. Y-75. Z-150. R-100. F40; 1


X-175. Y-125. ; Drilling 2
X-125. Y-175. ; 3
X- 75. Y-125. ; 4
G80;
N5 G28 X0 Y0 Z0 ;
~

N6 G98 G84 X-125. Y-75. Z-150. R-100. F40 ; 1


X-175. Y-125. ; Tapping 2
X-125. Y-175. ; 3
X- 75. Y-125. ; 4
G80;
M99;

(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 ;
%

395
900mm
500mm
100mm 0 M
-X
200mm
175
125 100mm
-X -X -X 75 50mm
G58 G56 G54 W1 50
W5 W3 75
175
1 125 200mm
2 4
3
500mm
14.11

(Workpiece 5) (Workpiece 3)

396
-Y -Y (Workpiece 1) -Y

-X -X -X
14. Coordinates System Setting Functions

G59 G57 G55


W6 W4 W2

(Workpiece 6) (Workpiece 4) (Workpiece 2)


-Y -Y -Y

-Y
Work coordinate system setting and offset
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

(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 P6 P4 P2
P7 P5 P3 P1

P9 P11 P13 P15


P10 P12 P14 P16

P24 P22 P20 P18


P23 P21 P19 P17

P25 P27 P29 P31


P26 P28 P30 P32

P40 P38 P36 P34


P39 P37 P35 P33

P41 P43 P45 P47


P42 P44 P46 P48

01000 Zero point return 01001


G28 XYZ ; Initialize added workpiece coordinate system P No. G43 X-10.Y-10.Z-100.H10.; Contour
#100=1 ; Absolute value mode G01 X-30.;
G90 ; Repeat P No. to 48 Y-30.;
WHILE [#100LE48]D01 ; Set workpiece coordinate system X-10.;
G54.1 P#100 ; Read sub-program Y-10.;
M98 P1001 ; P No. +1 G00 G40 Z10.;
#100=#100+1 ; G98 G81· X-20.Y-15.Z-150.R5.F40; Drilling
END1 ; Return to zero point X-25.Y-20.;
G28 Z ; X-20.Y-25.;
G28 XY ; X-15.Y-20.;
M02 ; G80 ;
M99 ;

397
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

(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.

P3
P20
P19 Y
P1 P2 Z
P21
P23
P22
P5 P6
P24
P4
X

B
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 ;
%

398
14. Coordinates System Setting Functions
14.11 Work coordinate system setting and offset

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 ;
%

399
14. Coordinates System Setting Functions
14.12 Local coordinate system setting

14.12 Local coordinate system setting; G52


Function and purpose

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.

Command format

G54 (54 to G59) G52 Xx1 Yy1 Zz1 αα1 ;


αα1 :Additional axis

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 to G59).
(2) 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.
(3) The local coordinate system is canceled by (G54 to G59) G52X0 Y0 Z0 α0 ;.
(4) Coordinate commands in the absolute value (G90) cause the tool to move to the local
coordinate system position.
(G91) G52X_Y_;
Incremental value
Ln
Local coordinate
Absolute value systems
Ln Absolute value
Ln (G90)
G52X_Y_;
Work coordinate
Wn(n=1 to 6) system
Reference point Work coordinate system offset
(Screen setting, G10 L2P_X_Y_ ;)
R
External work coordinate system offset
(Screen setting, G10 P0 X_Z_;)
M Machine coordinate system

(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.

400
14. Coordinates System Setting Functions
14.12 Local coordinate system setting

(Example 1) Local coordinates for absolute value mode (The local coordinate system offset is not
cumulated)
(8)
2500 (9)
(1) G28X0Y0 ;
(2) G00G90X1. Y1. ; (6)
(3) G92X0Y0 ; 2000
(5) (7)
(4) G00X500Y500 ; (4) Local coordinate
(5) G52X1. Y1. ; 1500 (3) [W1]L1 system created by (5).
(6) G00X0Y0 ; (2)
(7) G01X500F100 ; 1000
(8) Y500 ; (10) New coordinate system
(9) G52X0Y0 ; 500 [W1] created by (3)
(10) G00X0Y0 ; Matched with local
coordinate system by (9).
(1)
500 1000 1500 2000 2500 3000
R#1
W1 Current position X

The local coordinate system is created by (5), canceled


(9) and matched with the coordinate system for (3).

(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) G28X0Y0 ; Y' Y"


(2) G92X0Y0 ; Y
(3) G91G52X500Y500 ; 2500
(4) M98P100 ;
(5) G52X1. Y1. ;
(6) M98P100 ; 2000 (D)
(7) G52X-1.5 Y1.5 ;
(B) (6)
(8) G00G90X0Y0 ;
1500 (C)
X"
M02 ;
[W1]L2 Local coordinate system
(A) O100 ; created by (5).
(B) G90G00X0Y0 ; 1000 (D)
(C) G01X500 ;
(D) Y500 ; (B) (4)
500 X'
(E) G91 ; (3) (C)
Local coordinate system
(F) M99 ; (2) [W1]L1 created by (3).
(8)
(1)
500 1000 1500 2000 2500 3000
R#1 Matched X
W1 Current position 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.

401
14. Coordinates System Setting Functions
14.12 Local coordinate system setting

(Example 3) When used together with workpiece coordinate system

G54 G55
X 1000 1000 Workpiece coordinate system
Y 500 2000 (parameter setting value)
(1) G28X0Y0 ;
(2) G00G90G54X0Y0 ; Y 3000
(3) G52X500Y500 ;
(4) M98P200 ;
(5) G00G90G55X0Y0 ; 2500 (D)
(6) M98P200 ;
(B)
(7) G00G90G54X0Y0 ;
2000 G55
~

(C)
M02 ; (5) W2
(A) O200 ; 1500 (D)
(B) G00X0Y0 ;
(C) G01X500F100 ; (B)
1000
(D) Y500 ; Local coordinate system
(7) (C)
(E) M99 ; (3) created by (3)
(2) [W1] L1
% 500 G54
W1
1
500 1000 1500 2000 2500 3000
R#1
Current position X

(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;.

402
14. Coordinates System Setting Functions
14.12 Local coordinate system setting

(Example 4) Combination of workpiece coordinate system G54 and multiple local coordinate
systems

G54
X 500 Workpiece coordinate offset
(1) G28X0Y0 ; Y 500 (parameter setting value)
(2) G00G90G54X0Y0 ;
(3) M98P300 ;
(4) G52X1. Y1. ;
3000
(5) M98P300 ;
(6) G52X2. Y2. ;
(7)
(7) M98P300 ; 2500
(8) G52X0Y0 ; Local coordinate system
[W1] L2 created by (6)
~

2000
M02 ;
(A) O300 ; (5)
(B) G00X0Y0 ; 1500
(C) G01X500F100 ; Local coordinate system
(D) Y500 ; [W1] L1
created by (4)
(E) X0Y0 ; 1000
(D)
(F) M99 ; (8)
% (2) (3)
500 G54
(E) (C)
(B) W1

500 1000 1500 2000 2500 3000


R#1
Current position

(Explanation)
The local coordinate system is created at the G54 coordinate system (1000,1000)
position by (4).
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).

403
14. Coordinates System Setting Functions
14.13 Workpiece coordinate system preset

14.13 Workpiece coordinate system preset; G92.1


Function and purpose

(1) This function presets the workpiece coordinate system shifted with the program command
during manual operation to the workpiece coordinate system offset from the machine zero
point by the workpiece coordinate offset amount by the program command (G92.1).
(2) The set workpiece coordinate system will be shifted from the machine coordinate system
when the following type of operation or program command is executed.
• When manual interrupt is executed while manual absolute is OFF
• When movement command is issued in machine lock state
• When axis is moved with handle interrupt
• When operation is started with mirror image
• When local coordinate system is set with G52
• When workpiece coordinate system is shifted with G92
This function presets the shifted workpiece coordinate system to the workpiece coordinate
system offset from the machine zero point by the workpiece coordinate offset amount. This
takes place in the same manner as manual reference point return. Whether to preset the
relative coordinates or not can be selected with the parameters.

Command format

G92.1 X0 Y0 Z0 α0 ;
(G50.3)
α0 Additional axis

404
14. Coordinates System Setting Functions
14.13 Workpiece coordinate system preset

Detailed description

(1) Command the address of the axis to be preset. The axis will not be preset unless commanded.
(2) A program error (P35) will occur if a value other than "0" is commanded.
(3) This can be commanded in the following G code systems.
• G code system 2 to 7
• G code system 1 when the G code changeover parameter (#1267 ext3/bit0 = 1) is set.
(4) Depending on the G code system, the G code will be "G50.3".
(5) When manual operation is carried out when manual absolute is set to OFF, or if the axis is
moved with handle interrupt

Y Workpiece coordinate x
Present position after preset
Manual
movement Present position
amount Preset
W1’
Workpiece
coordinate y
after preset
W1
Workpiece coordinate X
zero point
W1 Workpiece coordinate X
Workpiece offset zero point

M Machine coordinate
zero point

If manual operation is carried out when manual absolute is set to OFF, or if the axis is moved
with handle interrupt, the workpiece coordinate system will be shifted by the manual
movement amount.
This function returns the shifted workpiece coordinate zero point W1' to the original workpiece
coordinate zero point W1, and sets the distance from W1 to the present position as the
workpiece coordinate system's present position.

405
14. Coordinates System Setting Functions
14.13 Workpiece coordinate system preset

(6) When movement command is issued in machine lock state

Y Y
Movement amount Workpiece
during machine lock coordinate x
after preset
Workpiece coordinate Preset
system coordinate
Present position value
Present position

Workpiece
coordinate y
after preset

W1 Workpiece coordinate W1 Workpiece coordinate


zero point X zero point
X

If the movement command is issued in the machine lock state, the present position will not
move, and only the workpiece coordinates will move.
This function returns the moved workpiece coordinates to the original present position, and
sets the distance from W1 to the present position as the workpiece coordinate system's
present position.

(7) When operation is carried out with mirror image

Workpiece
Y coordinate x Y
after preset
Present position Present position

Preset

Actual
operation Program command Workpiece
coordinate y
after preset

Workpiece Mirror image center W1


W1 X Workpiece coordinate
coordinate
zero point X
zero point

If operation is carried out with mirror image, only the NC internal coordinates are used as the
program command coordinates. The other coordinates are the present position coordinates.
This function sets the NC internal coordinates as the present position coordinates.

406
14. Coordinates System Setting Functions
14.13 Workpiece coordinate system preset

(8) Setting local coordinate system with G52

Y Y
Local coordinates x Workpiece
coordinate x
Present position after preset Present position
Preset
Local
coordinates y
L1

Local coordinate zero point


Workpiece
coordinate y
after preset

W1 Workpiece coordinate W1 Workpiece coordinate


zero point X zero point X

The local coordinate system is set with the G52 command, and the program commands, etc.,
are issued with the local coordinate system.
With this function, the set local coordinate system is canceled, and the program commands,
etc., use the workpiece coordinate system which has W1 as the zero point. The canceled local
coordinate system is only the selected workpiece coordinate system.

(9) Shifting the workpiece coordinate system with G92

Y Y
Workpiece
Workpiece coordinate x
coordinates x Present position after preset Present position

Preset
Workpiece
W1’ coordinates y

Workpiece zero point


after G92 command Workpiece
coordinate y
after preset

W1 Workpiece coordinate X W1 Workpiece coordinate X


zero point zero point

The workpiece coordinate system shifts with the G92 command, and the distance between
W1' and the present position is set as the present position of the workpiece coordinate
system.
This function returns the shifted workpiece coordinate zero point to W1, and sets the distance
from W1 to the present position as the workpiece coordinate system's present position. This is
valid for all workpiece coordinate systems.

407
14. Coordinates System Setting Functions
14.13 Workpiece coordinate system preset

Example of program

The workpiece coordinate system shifted with G92 is preset with G92.1.

Y Y
(5)
(4) 1500
1500

(3) G92.1
(2) command 1000
1000 preset
Workpiece zero point
after G92 command
500 500

(1)
W1 500 1000 1500 X W1 500 1000 1500 X
Workpiece coordinate zero point (Unit: mm) Workpiece coordinate zero point (Unit: mm)

(Example)
G28 X0 Y0 ;...................... (1)
G00 G90 X1. Y1. ;............ (2)
G92 X0 Y0 ;...................... (3)
G00 X500 Y500 ;.............. (4)
G92.1 X0 Y0 ;................... (5)

Precautions

(1) Cancel tool radius compensation, tool length offset and tool position offset before using this
function. If these are not canceled, the workpiece coordinates will be at a position obtained by
subtracting the workpiece coordinate offset amount from the machine value. Thus, the
compensation vector will be temporarily canceled.
(2) This function cannot be executed while the program is being resumed.
(3) Do not command this function during the scaling, coordinate rotation or program mirror image
modes.
A program error (P34) will occur if commanded.

408
15. Measurement Support Functions
15.1 Automatic tool length measurement

15. Measurement Support Functions


15.1 Automatic tool length measurement; G37
Function and purpose

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.

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) : 0 to 60000 (mm/min)
• #8005 ZONE r (deceleration range) : 0 to 99999.999 (mm)
• #8006 ZONE d (measurement range) : 0 to 99999.999 (mm)

409
15. Measurement Support Functions
15.1 Automatic tool length measurement

Example of execution

For new measurement

-100

-200
F

-300 R
D

-400
-Z Instrument
H01=0 D

T01 ;
M06 T02 ;
G90 G00 G43 Z0 H01 ;
G37 Z-400 R200 D150 F1 ;
Coordinate value when measurement position is reached = -300
-300 - (-400) = 100
0+100 = 100 Where, H01 = 100

410
15. Measurement Support Functions
15.1 Automatic tool length measurement

Detailed description

(1) Operation with G37 command

Rapid traverse rate


Speed

Measurement
allowable range
D(d) D(d)
F(Fp)
Distance R(r)
Offset amount
Measuring
position Operation 1 Normal completion
Stop point Or no detection
Operation 2 Alarm stop (P607)
Sensor
output Operation 3
Alarm stop (P607)

(2) The sensor signal (measuring position arrival signal) is used in common with the skip signal.
(3) The feedrate will be 1mm/min if the F command and parameter measurement speed are 0.
(4) An updated offset amount is valid unless it is assigned from the following Z axis (measurement
axis) command of the G37 command.
(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.
1 0.2 (ms)
Maximum measuring error (mm) = Measuring speed (mm/min) • •
60 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)
1 1
= Measuring speed (mm/min) • •
60 Position loop gain (s−1)
The standard position loop gain is 33 (s−1).

411
15. Measurement Support Functions
15.1 Automatic tool length measurement

Precautions

(1) Program error (P600) results if G37 is commanded when the automatic tool length
measurement function is not provided.
(2) Program error (P604) results when no axis has been commanded in the G37 block or when
two or more axes have been commanded.
(3) Program error (P605) results when the H code is commanded in the G37 block.
(4) Program error (P606) results when G43_H is not commanded prior to the G37 block.
(5) 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.
(6) 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.
(7) 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.
(9) 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.
(10) The automatic tool length measurement command (G37) must be commanded together with
the G43H_ command that designates the offset No.
G43H_;
G37 Z_ R_ D_ F_;

412
15. Measurement Support Functions
15.2 Skip function

15.2 Skip function; G31

Function and purpose

When the skip signal is input externally during linear interpolation based on the G31 command, the
machine feed is stopped immediately, the remaining distance is discarded and the command in the
following block is executed.

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.

Detailed description

(1) If Ff is assigned as the federate in the same block as the G31 dommand block, 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.
(2) The machine will not automatically accelerate and decelerate with the G31 block. The G31
maximum speed will depend on the machine specifications.
(3) 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.
(4) The G31 command is unmodal and so it needs to be commanded each time.
(5) 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) When the G31 command is issued during tool diameter compensation, program error (P608)
will result.
(7) When there is no F command in the G31 command and the parameter speed is also zero,
program error (P603) will result.
(8) 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.

413
15. Measurement Support Functions
15.2 Skip function

Execution of G31

G90 G00 X-100000 Y0 ;


G31 X-500000 F100 ;
G01 Y-100000 ;
G31 X0 F100 ;
Y-200000 ;
G31 X-50000 F100 ;
Y-300000 ;
X0 ;

-500000 G31 -10000 0 Y


X
W
G01
G31 -100000

G01
G31
-200000

G01
G01
-300000

Detailed description (Readout of skip coordinates)

The coordinate positions for which the skip signal is input are stored in the system variables #5061
(1st axis) to #506n (n-th axis), so these can be used in the user macros.
~

G90 G00 X-100. ;


G31 X-200. F60 ; Skip command
#101 = #5061 Skip signal input coordinate values (workpiece
coordinate system) are readout to #101.
~

414
15. Measurement Support Functions
15.2 Skip function

Detailed description (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 δ2
δ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.

F Skip signal input

Area inside shaded section


denotes coasting amount δ0

Time (S)
t1 ± t2 Tp

Stop pattern with skip signal input

The relationship between the coasting amount and speed when Tp is 30ms and t1 is 5ms is shown
in the following figure.
Tp = 0.03
0.050 t1 = 0.005
Max. value
Coasting amount δ (mm)

Average
0.040 Min. value

0.030

0.020

0.010

0 10 20 30 40 50 60 70
Feedrate F (mm/min)

Relationship between coasting amount and feedrate (example)

415
15. Measurement Support Functions
15.2 Skip function

Detailed description (Skip coordinate readout error)

(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.

ε : Readout error (mm)


F
ε = ± 60 × t2 F: Feedrate (mm/min)
t2 : Response error time 0.001 (s)
Readout error ε (µm)

+1

0
60 Feedrate
-1
Measurement value comes within shaded
section.

Readout error of skip signal 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 ± 1µm.

(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.

416
15. Measurement Support Functions
15.2 Skip function

Examples of compensating for coasting

(1) Compensating for skip signal input coordinates

#110 = Skip feedrate ;


#111 = Response delay time t1 ;

~
G31 X100. F100 ; Skip command
G04 ; Machine stop check
#101 = #5061 ; Skip signal input coordinate readout
#102 = #110∗#111/60 ; Coasting based on response delay time
#105 = #101−#102−#103 ; 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 ; Skip command


G04 ; Machine stop check
#101 = #5061 ; Skip signal input coordinate readout
#102 = #110∗#111/60 ; Coasting based on response delay time
#103 = #110∗#112/60 ; Coasting based on position loop time constant
#105 = #101−#102−#103 ; Skip signal input coordinates
~

417
15. Measurement Support Functions
15.3 Multi-stage skip function

15.3 Multi-stage skip function; G31.n, G04


Function and purpose

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.

Command format

G31.1 Xx Yy Zz αα Ff ;

Xx Yy Zz αα ; Command format axis coordinate word and target coordinates


Ff ; Feedrate (mm/min)
Same with G31.2 and G31.3 ; Ff is not required with G04
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.

Detailed description

(1) Feedrate G31.1 set with the parameter corresponds to "#1176 skip1f", G31.2 corresponds to
"#1178 skip2f", and G31.3 corresponds to "#1180 skip3f".
(2) A command is skipped if it meets the specified skip signal condition.
(3) The G31.n and G04 commands work the same as the G31 command for other than (1) and (2)
above.
(4) The feedrates corresponding to the G31.1, G31.2, and G31.3 commands can be set by
parameters.
(5) 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 Valid skip signal
setting 1 2 3
1
2
3
4
5
6
7
(Skip when signal is input.)

418
15. Measurement Support Functions
15.3 Multi-stage skip function

Example of 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 Skip speed
G31.1 :7 20.0mm/min (f1)
G31.2 :3 5.0mm/min (f2)
G31.3 :1 1.0mm/min (f3)

Program example :
N10G31.1 X200.0 ;
N20G31.2 X40.0 ;
N30G31.3 X1.0 ;

f Operation
(f1) N10

Measurement
distance
Skip speed

(f2) N20

(f3) N30

t
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.

419
15. Measurement Support Functions
15.4 Multi-skip function 2

15.4 Multi-skip function 2


Function and purpose

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).
X1 X1
Skip signal 1 Skip signal 1
System 1

System 1
Z
Z
System 2

System 2
Skip signal 1 Skip signal 2
X2
X2
Same skip signals input in both systems 1 and
Different skip signals input in systems 1 and 2
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 ;
Xx Zz αα : Command format axis coordinate word and target coordinates
Pp : Skip signal parameter
Ff : Feedrate (mm/min)

420
15. Measurement Support Functions
15.4 Multi-skip function 2

Detailed description

(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.
Skip signal Valid skip signal
parameter P 7 6 5 4 3 2 1
1
2
3
4
5
6
7
8
~ ~ ~ ~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~
125
126
127
(Skip when signal is input.)

(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.

421
15. Measurement Support Functions
15.4 Multi-skip function 2

(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.

Relations between skip and multi-skip


Skip specifications x o
Condition Speed condition Speed
G31 X100 ;
Program error (P601) Skip 1 Parameter
Without P and F
G31 X100 P5 ; Command
Program error (P602) Parameter
Without F value
G31 X100 F100 ; Command
Program error (P601) Skip 1
Without P value
G31 X100 P5 F100 ; Command Command
Program error (P602)
value value
(Note) "Parameter" in the above table indicates that specified with a skip command (G31).

(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).

422
15. Measurement Support Functions
15.5 Speed change skip

15.5 Speed change skip


Function and purpose

When the skip signal is detected during linear interpolation by the skip command (G31), the
feedrate is changed.

Command format

G31 Xx Yy Zz αα Ff F1=f1 ... Fn=fn ;


(n is the skip signal 1 to 8)

Xx Yy Zz αα : Command format axis coordinate word and target coordinates


Ff : Feedrate when starting the cutting feed (mm/min)
Fn : Feedrate after detecting the skip signal (mm/min)
fn=0: Movement stop
fn≠0: Changing the feedrate to fn
F1=Feedrate after inputting the skip signal 1
:
F8=Feedrate after inputting the skip signal 8

Detailed description

(1) When the skip signal for which the feedrate fn≠0 is commanded, the speed is changed to the
command speed corresponding to the skip signal.
(2) When the skip signal for which the feedrate fn=0 is commanded, the movement is stopped.
The acceleration and deceleration time constant at the movement stop does not follow the
skip time constant, but the normal G31 skip.
After the movement is stopped, the remaining movement commands are canceled and the
following block executed.
(3) When the skip signal has not been input until the G31 block completion, the G31 command will
be also completed upon completion of the movement command.
(4) When the skip return is valid, the return operation by the skip signal detection is executed after
the movement is stopped.
(5) Even if the acceleration and deceleration with the inclination constant G1 (#1201 G1_acc) is
valid, the speed change skip will be the operation of the time constant acceleration and
deceleration.
(6) When the feedrate command (Fn=fn) is not specified after detecting the skip signal, the
normal G31 skip operation will be applied.

423
15. Measurement Support Functions
15.5 Speed change skip

(7) If the skip signal is input during the deceleration by the movement command completion, the
speed change will be ignored.

Speed
Skip signal 4

f Skip signal 3

f4
Skip signal 2 (Speed change) : Invalid
f3 Skip signal 1 (Movement stop) : Valid

f2

f1
0 Time

Deceleration section by the movement


command completion

(8) The skip signal for which the feedrate is not commanded in the program is ignored.
(9) The speed change or the movement stop is performed when detecting the rising edge of the
skip signal. Note that if several rising edges are input at 3.5ms intervals or less, they maybe
judged the simultaneous input. When they are judged the simultaneous input, the smaller
value will be valid.

Speed
Skip signal 3 + Skip signal 4

f4 Skip signal 2

f3 Skip signal 1

f2

f1

0 Time

Skip signal 4

Skip signal 3

Skip signal 2

Skip signal 1

Time

424
15. Measurement Support Functions
15.5 Speed change skip

(10) If the G31 block is started with the skip signal input, that signal is considered to rise at the
same time as the block start.
(11) If the skip signals for changing the speed and for stopping the movement are simultaneously
input, the skip signal for stopping the movement will be valid regardless of the size of the
number.
(12) If the skip time constant "#2102 skip_tL" is illegal, the "Y51 PARAMETER ERROR 15" will
occur, and if the "#2103 skip_t1" is illegal, the "Y51 PARAMETER ERROR 16" will occur.
(13) The items other than (1) to (12) are the same with the G31 command.

Example of operation

Example of program
G31 X100. Ff F1=0 F2=f2 F3=f3 F4=f4 ;

Operation

Speed
Skip signal 4

f Skip signal 3

f4 Skip signal 2

f3 Skip signal 1

f2

f1
0 Time

Skip time constant


Position loop time constant
-1
(Position loop gain )

425
15. Measurement Support Functions
15.6 Programmable current limitation

15.6 Programmable current limitation


Function and purpose

This function allows the current limit value of the servo axis to be changed to a desired value in the
program, and is used for the workpiece stopper, etc.
The commanded current limit value is designated with a ratio of the limit current to the rated
current.

Command format

G10 L14 X dn ;
(n is the skip signal 1 to 8)
L14 : Current limit value setting (+ side/– side)
X : Axis address
dn : Current limit value 1% to 300%

Precautions and restrictions

(1) If the current limit is reached when the current limit is valid, the current limit reached signal is
output.
(2) The following two modes can be used with external signals as the operation after the current
limit is reached.
• Normal mode
The movement command is executed in the current state.
During automatic operation, the movement command is executed to the end, and then the
next block is moved to with the droops still accumulated.
• Interlock mode
The movement command is blocked (internal interlock).
During automatic operation, the operation stops at the corresponding block, and the next
block is not moved to.
During manual operation, the following same direction commands are ignored.
(3) During the current limit, the droop generated by the current limit can be canceled with external
signals.
(Note that the axis must not be moving.)
(4) The setting range of the current limit value is 1% to 300%. Commands that exceed this range
will cause a program error (P35).
(5) If a decimal point is designated with the G10 command, only the integer will be valid.
(Example) G10 L14 X10.123 ; The current limit value will be set to 10%.
(6) For the axis name "C", the current limit value cannot be set from the program (G10 command).
To set from the program, set the axis address with an incremental axis name, or set the axis
name to one other than "C".

426
16. Machining mode
16.1 High-speed machining mode

16. Machining mode


16.1 High-speed machining mode
Function and purpose

This function runs a machining program that approximates a freely curved surface with fine
segments at high speed using the MELDAS 64 (M type). 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.

(1) Basic Specifications


The performance of simultaneous 3-axis and 1mm-length fine segment is as follows.
High-speed machining mode Performance of fine segment length
OFF 8.4 m/min
III 16.8 m/min

Command format

G05 P3 ;...........High-speed machining mode III ON


G05 P0 ;...........High-speed machining mode III OFF

Example of program

G28 X0. Y0. Z0. ;


G91 G00 X-100. Y-100. ;
G01 F3000 ;
High-speed machining mode III ON
G05 P3 ;
X0.1 ;
X0.1 Y0.001 ; INC modal, linear cutting
X0.1 Y0.002 ;
G90 G00 X0 Y0 Z0 ; Rapid traverse
G02 X_Y_R_F_ ; ABS modal, R designation arc
G03 X_Y_I_J_F_ ; Arc



G05 P0 ; High-speed machining mode III OFF
M02;

427
16. Machining mode
16.1 High-speed machining mode

Detailed description

(1) The following G codes can be used in high-speed machining mode III.
G00, G01, G02, G03, G90, G91, G17, G18, G19
(2) 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.)
(3) Tape, MDI, and memory operation are all possible with the high-speed machining mode III.
(4) 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.
(5) Depending on the No. of characters in one block, the machining speed may decrease.
(6) When high-speed machining mode III is validated, absolute/incremental, G00 to G03, and F
command modal information are carried over.
(7) High-speed machining mode III commands are possible in a sub-program.

Program example
Main program Sub-program
01 O1000
• G05 P3 ; High-speed machining
• mode III ON
G61.1 ; •
M98 P1000 L100 ; •
• •
• •
• •
• G05 P0 ; High-speed machining
mode III OFF
M99 ;

M99 commands cannot be used in the high-speed machining mode III modal.
(A program error (P33) will occur.)
Always turn OFF the high-speed machining mode III before the M99 command.

428
16. Machining mode
16.1 High-speed machining mode

Restrictions

(1) This function requires the "High-speed machining mode III" specifications.
If G05 is commanded when there are no specifications, program error (P65) will occur.
(2) When machining with the high-speed machining mode III, the program path and actual path
may differ.

G01
Program path
G01
Actual path
G01
The actual path may move to an
G01 end point up to 4 fine segment
blocks ahead.

(3) 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, program
error (P34) 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.
(4) The program error (P33) 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.
(5) The optional block skip (/) cannot be used during high-speed machining mode III modal.
The program error (P33) will occur.
(6) The sequence No. (N) cannot be used during the high-speed machining mode III modal.
The program error (P33) will occur.
(7) The automatic operation process is prioritized during high-speed machining mode III modal,
so the monitor display, etc., may be delayed.
(8) 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]
G05 P3 ; X-577;Y-577;Z-577;G05 P0; · · · · · ·

[Speed]

(9) During high-speed machining mode operation by tape operation, the machining speed may be
suppressed due to the No. of characters in one block.
(10) If there is no P command in the G05 command block, a program error (P33) will occur.
(11) Decimal points are invalid in P commands.
(12) Program error (P35) will occur for commands other than P0/P3.
Note that program error (P39) will occur for P1/P2 commands.
(13) Variable commands and user macro cannot be used during high-speed machining mode III
modal.
(14) The high-speed machining mode III cannot be used when using the 2-part system. A program
error (P34) will occur.
(15) If an address other than G, P or N is commanded in the G5P3, G5P0 command block, a
program error (P33) will occur.

429
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) The setting ranges given in the table are the setting ranges on the screen. Designate parameters
related to the length by doubling the input setting unit.
(Example 1) If the input setting unit in the metric system is "B" (0.001mm), set 30mm in
the parameter.
(Example 2) If the input setting unit in the inch system is "B" (0.0001inch), set 5inch in
the parameter.
(Note 3) The binary type parameters must be converted into by-type data, and commanded with a decimal
data after address D.
(Example 1) Binary data
01010101B = 55H = 85D ....................... Command 85
(Example 2) ASCII code
"M" = 01001101B = 4DH = 77D ............. Command 77
(B indicates Binary, H indicates Hexadecimal, and D indicates Decimal.)

[Machining parameters] Parameter 1.


# Item P A N Data type Setting range (Unit) Remarks

8007 OVERRIDE 11 – 1010 D 0 to 100 (%)


8008 MAX ANGLE 11 – 756 L 0 to 180 (° )
8009 DSC. ZONE 11 – 760 L 0 to 99999.999 (mm)

8013 G83 n 11 – 832 L 0 to 99999.999 (mm)

8051 G71 THICK 11 – 784 L (mm)


8052 PULL UP 11 – 796 L (mm)
8053 G73 U 11 – 800 L (mm)
8054 W 11 – 804 L (mm)
8055 R 11 – 808 L (time)
8056 G74 RETRACT 11 – 820 L (mm)
8057 G76 LAST-D 11 – 824 (mm)
8058 TIMES 11 – 997 D 0 to 99 (time)
8059 ANGLE 11 – 998 D 0 to 99 (° )

430
Appendix 1. Program Parameter Input N No. Correspondence Table

[Axis parameters] Parameter 1.


# Item P A N Data type Setting range (Unit) Remarks

8202 OT-CHECK OFF 2 No. 897 H2 0 to 1

8204 OT-CHECK-N 2 No. 916 L ±99999.999 (mm)


8205 OT-CHECK-P 2 No. 912 L ±99999.999 (mm)

[PLC data] Setup parameter 6.


# Item P A N Data type Setting range (Unit) Remarks
#6301 PLC constant 5 – 1 L ±99999999
to to
#6348 48

[PLC timer] Setup parameter 6.


# Item P A N Data type Setting range (Unit) Remarks
T0 10ms TIMER (T0 to T15) 6 – 0 S 0 to 32767 0.01s
to to
T15 15
T16 100ms TIMER (T16 to T95) 6 – 16 S 0 to 32767 0.1s
to to
T95 95
T96 100ms TIMER (T96 to T103) 6 – 96 S 0 to 32767 0.1s
to (INC.) to
T103 103

[PLC counter] Setup parameter 6.


# Item P A N Data type Setting range (Unit) Remarks
C0 PLC counter 7 – 0 L 0 to 32767
to to
C23 23

[Bit selection] Setup parameter 6.


# Item P A N Data type Setting range (Unit) Remarks
0x00 to 0xFF
6401 Bit selection 8 – 1 D (Hex)
(Note)
to to or 0 to 256 (Dec)
6496 96 H0 to H7 0 to 1

(Note) Convert the 0x00 to 0xFF data into a decimal before using.

431
Appendix 1. Program Parameter Input N No. Correspondence Table

[20: High precision control] Setup parameter 6.


# Item P A N Data type Setting range (Unit) Remarks
8025 SPLINE ON 20 – 1 H0 0 to 1
8027 Toler-1 20 – 2 L 0 to 100.000 (mm)
0 to 10.0000 (mm)
8028 Toler-2 20 – 3 L 0 to 100.000 (mm)
0 to 10.0000 (mm)
8029 FairingL 20 – 4 L 0 to 100.000 (mm)
8030 MINUTE LENGTH 20 – 5 D -1 to 127 (mm)
8033 Fairing ON 20 – 6 H0 0 to 1
8034 AccClamp ON 20 – 6 H1 0 to 1
8035 AccClampMag 20 – 7 L 0 to 999 (%)
8036 CordecJudge 20 – 6 H2 0 to 1
8037 CorJudgeL 20 – 8 L 0 to 99999.999 (mm)
8019 R COMP 20 – 101 D 0 to 99 (%)
8020 DCC ANGLE 20 – 102 D 0 to 89 (° )
8021 COMP CHANGE 20 – 103 H0 0 to 1
8022 CORNER COMP 20 – 104 L -1000 to 99 (%)
8023 CURVE COMP 20 – 105 L -1000 to 99 (%)
8026 CANCEL ANG. 20 – 106 D 0 to 180 (° )

432
Appendix 2. Program Error

Appendix 2. Program Error


(The bold characters are the message displayed in 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 specification have not been prepared.

Error No. Details Remedy

P 10 EXCS. AXIS No. • Divide the alarm block command into two.
The number of axis addresses • Check the specifications.
commanded in the same block exceeds
the specifications.
P 11 AXIS ADR. ERROR • Revise the axis names in the program.
The axis address commanded by the
program and the axis address set by the
parameter do not match.
P 20 DIVISION ERROR • Check the program.
An axis command which cannot be
divided by the command unit has been
issued.
P 29 NOT ACCEPT CMND • Check the program.
The normal line control command
(G40.1, G41.1, G42.1) has been issued
during the modal in which the normal line
control is not acceptable.
P 30 PARITY H • Check the paper tape.
The number of holes per character on the • Check the tape puncher and tape reader.
paper tape is even for EIA code and odd
for ISO code.
P 31 PARITY V • Make the number of characters per block on
The number of characters per block on the paper tape even.
the paper tape is odd. • Set the parameter parity V selection OFF.
P 32 ADDRESS ERROR • Check and revise the program address.
An address not listed in the specifications • Check and correct the parameters values.
has been used. • Check the specifications.
P 33 FORMAT ERROR • Check the program.
The command format in the program is
not correct.
P 34 G-CODE ERROR • Check and correct the G code address in the
A G code not listed in the specifications program.
has been used.
An illegal G code was commanded
during the coordinate rotation command
(G68).
G51.2 or G50.2 was commanded when • Check the parameter setting values.
the rotary tool axis No. (#1501 polyax)
was set to “0”.
G51.2 or G50.2 was commanded when
the tool axis was set to the linear axis
(#1017 rot “0”).

433
Appendix 2. Program Error

Error No. Details Remedy

P 35 CMD-VALUE OVER • Check the program.


The setting range for the addresses has
been exceeded.
P 36 PROGRAM END ERR • Enter the M02 and M30 command at the end
“EOR” has been read during tape and of the program.
memory operation. • Enter the M99 command at the end of the
subprogram.
P 37 PROG. NO. ZERO • The program numbers are designated across
A zero has been specified for program a range from 1 to 99999999.
and sequence numbers. • The sequence numbers are designated
across a range from 1 to 99999.
P 39 NO SPEC ERR • Check the specifications.
• A non-specified G code was specified.
• The high-speed program server operation
specifications are not provided.
P 40 PREREAD BL. ERR • Reconsider the program.
When tool radius compensation is
executed‚ there is an error in the pre-read
block and so the interference check is
disabled.
P 60 OVER CMP. LENG. • Reconsider the axis address command.
The commanded movement distance is
excessive. (Over 231)
P 62 F-CMD. NOTHING • The default movement modal command at
• No feed rate command has been issued. power ON is G01. This causes the machine
• There is no F command in the cylindrical to move without a G01 command if a
interpolation or pole coordinate movement command is issued in the
interpolation immediately after the G95 program, and an alarm results. Use an F
mode is commanded. command to specify the feedrate.
• Specify F with a thread lead command.
P 65 NO G05P3 SPEC • Check the high-speed mode III
specifications.
P 70 ARC ERROR • Check the numerical values of the addresses
• There is an error in the arc start and end that specify the start and end points, arc
points as well as in the arc center. center as well as the radius in the program.
• The difference of the involute curve • Check the “+” and “–” directions of the
through the start point and the end point is address numerical values.
large.
• When arc was commanded, one of the
two axes configuring the arc plane was a
scaling valid axis.

434
Appendix 2. Program Error

Error No. Details Remedy

P 71 ARC CENTER • Check the numerical values of the addresses


• The arc center is not sought during in the program.
R-specified circular interpolation. • Check whether the start point or end point is
• The curvature center of the involute curve on the inner side of the base circle for
cannot be obtained. involute interpolation. When carrying out tool
radius compensation, check that the start
point and end point after compensation are
not on the inner side of the base circle for
involute interpolation.
• Check whether the start point and end point
are at an even distance from the center of the
base circle for involute interpolation.
P 72 NO HELICAL SPEC • Check the helical specifications.
A helical command has been issued • An Axis 3 command was issued by the
though it is not included in the circular interpolation command. If there is no
specifications. helical specification, the linear axis is moved
to the next block.
P 90 NO THREAD SPEC • Check the specifications.
A thread cutting command has been
issued though it is not included in the
specifications.
P 93 SCREW PITCH ERR • Issue the thread cutting command and then
The screw pitch has not been set set the screw pitch command properly.
correctly when the thread cutting
command is issued.
P100 NO CYLIND SPEC • Check the specifications.
Cylindrical interpolation was commanded
when the cylindrical interpolation
specifications were not provided.
P111 PLANE CHG (CR) • Before issuing the plane selection
Plane selection commands (G17, G18, commands, issue G68 and then G69
and G19) were issued when a coordinate (coordinate rotation cancel).
rotation command (G68) was issued.
P112 PLANE CHG (CC) • Issue the plane selection command after the
• A plane selection command (G17‚ G18‚ tool radius compensation command or nose
G19) has been issued when the tool R compensation command has been
radius compensation command (G41‚ canceled (issue axial movement command
G42) or nose R compensation after the G40 cancel command).
command (G41‚ G42‚ G46) is issued.
• The plane selection command was
issued when nose R compensation is
completed‚ there is no axial movement
command after the G40 command‚ and
the compensation has not been
canceled.

435
Appendix 2. Program Error

Error No. Details Remedy

P113 ILLEGAL PLANE • Issue arc command on the correctly selected


The arc command axis is not on the plane.
selected plane.
P122 NO AUTO C-OVR • Check the specifications.
An automatic corner override command • Delete the G62 command from the program.
(G62) has been issued though it is not
included in the specifications.
P130 2nd AUX. ADDR • Check and correct the 2nd miscellaneous
The 2nd miscellaneous function address function address in the program.
specified in the program does not match
that set by the parameter.
P131 NO G96 SPEC • Check the specifications.
(No constant peripheral speed) • Change from the constant peripheral speed
The constant peripheral speed command command (G96) to the rotation speed
(G96) was issued despite the fact that command (G97).
such a command does not exist in the
specifications.
P132 SPINDLE S = 0 • Reconsider the program.
No spindle speed command has been
specified.
P133 G96 P-No. ERR • Reconsider the parameter specified for the
An invalid constant peripheral speed constant peripheral speed control axis.
control axis has been specified.
P140 NO T-POS OFST • Check the specifications.
The position compensation command
(G45 to G48) specifications are not
available.
P141 PAT-ROT ERROR • Reconsider the program.
Position compensation was commanded
during the figure rotation or coordinate
rotation command.
P142 T-OFFS G2 ERR • Reconsider the program.
A position compensation invalid arc
command was commanded.
P150 NO C-CMP SPEC • Check the specifications.
• Even though there were no tool radius
compensation specifications, tool
radius compensation commands (G41
and G42) were issued.
• Even though there were no nose R
compensation specifications, nose R
compensation commands (G41, G42,
and G46) were issued.

436
Appendix 2. Program Error

Error No. Details Remedy

P151 G2‚ 3 CMP. ERR • Issue the linear command (G01) or rapid
A compensation command (G40‚ G41‚ traverse command (G00) in the
G42‚ G43‚ G44‚ G46) has been issued in compensation command block or cancel
the arc mode (G02‚ G03). block.
(Set the modal to linear interpolation.)
P152 I.S.P NOTHING • Reconsider the program.
In interference block processing during
execution of a tool radius compensation
(G41 or G42) or nose R compensation
(G41‚ G42‚ or G46) command‚ the
intersection point after one block is
skipped cannot be determined.
P153 I.F ERROR • Reconsider the program.
An interference error has arisen while the
tool radius compensation command
(G41‚ G42) or nose R compensation
command (G41‚ G42‚ G46) was being
executed.
P155 F-CYC ERR (CC) • The radius compensation mode is
A fixed cycle command has been issued established when a fixed cycle command is
in the radius compensation mode. executed and so the radius compensation
cancel command (G40) should be issued.
P156 BOUND DIRECT • Change the vector to that with which the
At the start of G46 nose R compensation‚ compensation direction is defined.
the compensation direction is undefined • Exchange with a tool having a different tip
if this shift vector is used. point number.
P157 SIDE REVERSED • Change the G command to that which allows
During G46 nose R compensation‚ the inversion of the compensation direction (G00‚
compensation direction is inverted. G28‚ G30‚ G33‚ or G53).
• Exchange with a tool having a different tip
point number.
• Turn ON the #8106 G46 inversion error
avoidance parameter.
P158 ILLEGAL TIP P. • Change the tip point number to a legal one.
During G46 nose R compensation‚ the tip
point is illegal (other than 1 to 8).
P170 NO CORR. No. • Add the compensation number command to
The compensation number (DOO‚ TOO‚ the compensation command block.
HOO) command was not given when the • Check the number of compensation number
radius compensation (G41‚ G42‚ G43‚ sets a correct it to a compensation number
G46) command was issued. command within the permitted number of
Alternatively‚ the compensation number compensation sets.
is larger than the number of sets in the
specifications.

437
Appendix 2. Program Error

Error No. Details Remedy

P172 G10 L-No. ERR • Check the address L-Number of the G10
(G10 L-number error) command and correct the number.
The L address command is not correct
when the G10 command is issued.
P173 G10 P-No. ERR • First check the number of compensation sets
(G10 compensation error) and then set the address P designation to
When the G10 command is issued‚ a within the permitted number of sets.
compensation number outside the
permitted number of sets in the
specifications has been commanded for
the compensation number command.
P177 LIFE COUNT ACT • The tool life management data cannot be
Registration of tool life management data registered when counting the used data. Turn
with G10 was attempted when the used the used data count valid signal OFF.
data count valid signal was ON.
P178 LIFE DATA OVER • Review the No. of registrations. The
The No. of registration groups‚ total No. maximum No. of registrations is shown
of registered tools or the No. of below.
registrations per group exceeded the System System 1 System 2
specifications range.
No. of groups 80 40/40
No. of tools 80 40/40
Per group 16

P179 GROUP No. ILL. • The group No. cannot be commanded in


• When registering the tool life duplicate. When registering the group data‚
management data with G10‚ the group register it in group units.
No. was commanded in duplicate. • Correct to the correct group No.
• 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.
P180 NO BORING CYC. • Check the specifications.
A fixed cycle command was issued • Correct the program.
though there are not fixed cycle (G72 –
G89) specifications.
P181 NO S-CMD (TAP) • Issue the spindle rotation speed command
The spindle rotation speed command (S) when the hole drilling fixed cycle
has not been issued when the hole command G84‚ G74 (G84‚ G88) is given.
drilling fixed cycle command is given.

438
Appendix 2. Program Error

Error No. Details Remedy

P182 SYN TAP ERROR • Check connection to the main spindle.


Connection to the main spindle unit was • Check that the main spindle encoder exists.
not established.
P183 PTC/THD‚ No. • Specify the pitch data and the number of
The pitch or thread number command threads by F or E command.
has not been issued in the tap cycle of a
hole drilling fixed cycle command.
P184 NO PTC/THD CMD • Check the pitch or the number of threads per
The pitch or the number of threads per inch.
inch is illegal in the tap cycle of the hole
drilling fixed cycle command.
P190 NO CUTTING CYC • Check the specification.
A lathe cutting cycle command was input • Delete the lathe cutting cycle command.
although the lathe cutting cycle was
undefined in the specification.
P191 TAPER LENG ERR • The radius set value in the lathe cycle
In the lathe cutting cycle‚ the specified command must be smaller than the axis shift
length of taper section is illegal. amount.
P192 CHAMFERING ERR • Set a chamfering amount not exceeding the
Chamfering in the thread cutting cycle is cycle.
illegal.
P200 NO MRC CYC SPC • Check the specification.
The fixed cycle for compound lathe I
(G70 to G73) was commanded when the
fixed cycle for compound lathe I
specifications were not provided.
P201 PROG. ERR (MRC) • Delete the following G codes from this
• When called with a fixed cycle for subprogram that is called with the fixed cycle
compound lathe I command, the for compound lathe I commands (G70 to
subprogram contained at least one of the G73): G27‚ G28‚ G29, G30‚ G31‚ G33‚ G34,
following commands: fixed cycle G-code.
• Reference point return command (G27, • Remove G2 and G3 from the first move block
G28, G29, G30) of the finish shape program in fixed cycle for
• Thread cutting (G33, G34) compound lathe I.
• Fixed cycle skip-function (G31)
• The first move block of the finish shape
program in fixed cycle for compound lathe
I contains an arc command.
P202 BLOCK OVR (MRC) • Specify 50 or a less value. The number of
The number of blocks in the shape blocks in the shape program called by the
program of the fixed cycle for compound fixed cycle for compound lathe I commands
lathe I is over 50 or 200 (this differs (G70 to G73) must be decreased below 50 or
according to the model). 200 (this differs according to the model).

439
Appendix 2. Program Error

Error No. Details Remedy

P203 CONF. ERR (MRC) • Check the fixed cycle for compound lathe I
The fixed cycle for compound lathe I (G70 to G73) shape program.
(G70 to G73) shape program could not
cut the work normally because it defined
an abnormal shape.
P204 VALUE ERR (MRC) • Check the fixed cycle for compound lathe
A command value of the fixed cycle for (G70 to G76) command value.
compound lathe (G70 to G76) is illegal.
P210 NO PAT CYC SPC • Check the specification.
A fixed cycle for compound lathe II (G74
to G76) command was input although it
was undefined in the specification.
P220 NO SPECIAL CYC • Check the specifications.
No special fixed cycle specifications are
available.
P221 NO HOLE (S_CYC) • Reconsider the program.
A 0 has been specified for the number of
holes in special fixed cycle mode.
P222 G36 ANGLE ERR • Reconsider the program.
A G36 command specifies 0 for angle
intervals.
P223 G12 G13 R ERR • Reconsider the program.
The radius value specified with a G12 or
G13 command is below the
compensation amount.
P224 NO G12‚ G13 SPC • Check the specifications.
There are no circular cutting
specifications.
P230 NESTING OVER • Check the number of subprogram calls and
• A subprogram has been called 4 or more correct the program so that it does not
times in succession from the subprogram. exceed 4 times.
• The program in the IC card contains the • When using the IC card, the IC card and the
M198 command. number of IC card program calls.
• 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).
P231 NO N-NUMBER • Specify the sequence numbers in the call
At subprogram call time‚ the sequence block of the subprogram.
number set at return from the • When using an IC card, check the program
subprogram or specified by GOTO‚ was and its No. in the IC card.
not set.
P232 NO PROGRAM No. • Enter the subprogram.
The subprogram has not been found • Check the program number in the IC card.
when the subprogram is called.

440
Appendix 2. Program Error

Error No. Details Remedy

P241 NO VARl NUMBER • Check the specifications.


The variable number commanded is • Check the program variable number.
higher than the numbers in the
specifications.
P242 EQL. SYM. MSSG. • Designate the “=” sign in the variable
The “=” sign has not been commanded definition of the program.
when a variable is defined.
P243 VARIABLE ERR. • Correct the program.
An invalid variable has been specified in
the left or right side of an operation
expression.
P252 PAT. & COOD-ROT • Reconsider the program.
A coordinate rotation related command
(G68, G69) was issued during figure
rotation.
P260 NO COOD-RT SPC • Check the specifications.
Even though there were no coordinate
rotation specifications, a coordinate
rotation command was issued.
P270 NO MACRO SPEC • Check the specifications.
A macro specification was commanded
though there are no such command
specifications.
P271 NO MACRO INT. • Check the specifications.
A macro interrupt command has been
issued though it is not included in the
specifications.
P272 MACRO ILL. • Reconsider the program and place the
A statement and a macro statement exist executable statement and macro statement
together in the same block. in separate blocks.
P273 MACRO OVERCALL • Reconsider the program and correct it so that
The number of macro call nests the macro calls do not exceed the limit
exceeded the specifications. imposed by the specification.
P275 MACRO ARG. EX. • Reconsider the program.
The number of macro call argument type
II sets has exceeded the limit.
P276 CALL CANCEL • Reconsider the program.
A G67 command was issued though it • The G67 command is the call cancel
was not during the G66 command modal. command and so the G66 command must be
designated first before it is issued.
P277 MACRO ALM MESG • Refer to the operator messages on the DIAG
An alarm command has been issued in screen.
#3000. • Refer to the instruction manual issued by the
machine manufacturer.

441
Appendix 2. Program Error

Error No. Details Remedy

P280 EXC. [ ‚ • Reconsider the program and correct it so the


The number of parentheses “[” or “]” number of “[” or “]” does not exceed five.
which can be commanded in a single
block has exceeded five.
P281 [ ‚ ] ILLEGAL • Reconsider the program and correct it so that
The number of “[” and “]” parentheses “[” and “]” parentheses are paired up
commanded in a single block does not properly.
match.
P282 CALC. IMPOSS. • Reconsider the program and correct the
The arithmetic formula is incorrect. formula.
P283 DIVIDE BY ZERO • Reconsider the program and correct it so that
The denominator of the division is zero. the denominator for division in the formula is
not zero.
P290 IF SNT. ERROR • Reconsider the program.
There is an error in the IF conditional
GOTO statement.
P291 WHILE SNT. ERR • Reconsider the program.
There is an error in the WHILE
conditional DO -END statement.
P292 SETVN SNT. ERR • Reconsider the program.
There is an error in the SETVN • The number of characters in the variable
statement when the variable name name of the SETVN statement must be 7 or
setting was made. less.
P293 DO-END EXCESS • Reconsider the program and correct it so that
The number of ’s for DO-END in the the number of ’s in the DO – END statement
WHILE conditional DO – END does not exceed 27.
statement has exceed 27.
P294 DO-END MMC. • Reconsider the program and correct it so that
The DO’s and END’s are not paired off the DO’s and END’s are paired off properly.
properly.
P295 WHILE/GOTO TPE • During tape operation‚ a program which
There is a WHILE or GOTO statement on includes a WHILE or GOTO statement
the tape during tape operation. cannot be executed and so the memory
operation mode is established instead.
P296 NO ADR (MACRO) • Review the program.
A required address has not been
specified in the user macro.
P297 ADR-A ERR. • Review the program.
The user macro does not use address A
as a variable.
P298 PTR OP (MACRO) • Review the program.
User macro G200‚ G201‚ or G202 was
specified during tape or MDI operation.
P300 VER. NAME ERROR • Reconsider the variable names in the
The variable names have not been program and correct them.
commanded properly.

442
Appendix 2. Program Error

Error No. Details Remedy

P301 VAR NAME DUPLI • Correct the program so that the name is not
The name of the variable has been duplicated.
duplicated.
P350 NO SCALING SPC • Check the specifications.
The scaling command (G50, G51) when
the scaling specifications were not
available.
P360 NO PROG.MIRR. • Check the specifications.
A mirror image (G50.1 or G51.1)
command has been issued though the
programmable mirror image
specifications are not provided.
P370 NO OPOS MR SPC • Check the specifications.
The facing turret mirror image
specifications are not provided.
P371 MIRR ILLEGAL • Check the program.
Facing turret mirror image was • Check the parameters.
commanded to an axis for which external
mirror image or parameter mirror image
is valid.
Facing turret mirror image validating
mirror image for a rotary axis was
commanded.
P380 NO CORNER R/C • Check the specifications.
A command was issued for corner • Remove the corner chamfering/corner
chamfering/corner rounding though there rounding command from the program.
are no such specifications.
P381 NO ARC R/C SPC • Check the specifications.
Corner chamfering/corner rounding was
specified in the arc interpolation block
although corner chamfering/corner
rounding II is unsupported.
P382 CORNER NO MOVE • Replace the block succeeding the corner
The block next to corner chamfering/ chamfering/corner rounding command by
corner rounding is not a movement G01 command.
command.
P383 CORNER SHORT • Make the corner chamfering/corner rounding
In the corner chamfering/corner rounding less than the movement distance since this
command‚ the movement distance was distance is shorter than the corner chamfering/
shorter than the value in the corner corner rounding.
chamfering/corner rounding command.
P384 CORNER SHORT • Make the corner chamfering/corner rounding
When the corner chamfering/corner less than the movement distance since this
rounding command was input‚ the distance in the following block is shorter than
movement distance in the following block the corner chamfering/corner rounding.
was shorter than the length of the corner
chamfering/corner rounding.

443
Appendix 2. Program Error

Error No. Details Remedy

P385 G0 G33 IN CONR • Recheck the program.


A block with corner chamfering/corner
rounding was given during G00 or G33
modal.
P390 NO GEOMETRIC • Check the specifications.
A geometric command was issued
though there are no geometric
specifications.
P391 NO GEOMETRIC 2 • Check the specifications.
There are no geometric IB specifications.
P392 LES AGL (GEOMT) • Correct the geometric angle.
The angular difference between the
geometric line and line is 1° or less.
P393 INC ERR (GEOMT) • Specify this block by an absolute value.
The second geometric block was
specified by an incremental value.
P394 NO G01 (GEOMT) • Specify the G01 command.
The second geometric block contains no
linear command.
P395 NO ADRS (GEOMT) • Recheck the program.
The geometric format is invalid.
P396 PL CHG. (GEOMT) • Execute the plane switching command
A plane switching command was before geometric command processing.
executed during geometric command
processing.
P397 ARC ERR (GEOMT) • Recheck the geometric circular arc command
In geometric IB‚ the circular arc end point and the preceding and following commands.
does not contact or cross the next block
start point.
P398 NO GEOMETRIC 1B • Check the specifications.
Although the geometric IB specifications
are not included‚ a geometric command
is given.
P421 PRAM. IN ERROR • Check the program.
• 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.

444
Appendix 2. Program Error

Error No. Details Remedy

P430 AXIS NOT RET. • Execute reference point return manually.


• A command was issued to move an • The command was issued to an axis for
axis‚ which has not returned to the which axis removal is validated so invalidate
reference point‚ away from that axis removal.
reference point.
• A command was issued to an axis
removal axis.
P431 NO 2nd REF. SPC • Check the specifications.
A command for second‚ third or fourth
reference point return was issued though
there are no such command
specifications.
P434 COLLATION ERR • Check the program.
One of the axes did not return to the start
position when the origin point collate
command (G27) was executed.
P435 G27/M ERROR • An M code command cannot be issued in a
An M command was issued G27 command block and so the G27
simultaneously in the G27 command command and M code command must be
block. placed in separate blocks.
P436 G29/M ERROR • An M code command cannot be issued in a
An M command was issued G29 command block and so the G29
simultaneously in the G29 command command and M code command must be
block. placed in separate blocks.
P438 NOT USE (G52) • Review the program.
A local coordinate system command was
issued during execution of the G54.1
command.
P450 NO CHUCK BARR. • Check the specification.
The chuck barrier on command (G22)
was specified although the chuck barrier
was undefined in the specification.
P460 TAPE I/O ERROR • Check the power and cable of the connected
An error has arisen in the tape reader or‚ devices.
alternatively‚ in the printer during macro • Check the I/O device parameters.
printing.
P461 FILE I/O ERROR • In memory mode, the programs stored in
A file of the machining program cannot memory may have been destroyed. Output
be read. 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.
P462 DNC ERROR • L01 DNC ERROR is displayed
A communication error occurred during simultaneously, so remedy the problem
the BTR operation. according to the error No.

445
Appendix 2. Program Error

Error No. Details Remedy

P480 NO MILL SPEC • Check the specification.


• Milling was commanded when the milling
specifications were not provided.
• Pole coordinate interpolation was
commanded when the pole coordinate
interpolation specifications were not
provided.
P481 MILL ILL. G • Check the program.
• An illegal G code was used during the
milling mode.
• An illegal G code was used during
cylindrical interpolation or pole coordinate
interpolation.
• The G07.1 command was issued during
the tool radius compensation.
P482 MILL ILL. AXIS • Check the machining program, parameters
• A rotary axis was commanded during the and PLC I/F signal.
milling mode.
• Milling was executed even though an
illegal value was set for the milling axis
No.
• Cylindrical interpolation or pole
coordinate interpolation was commanded
during mirror image.
• Cylindrical interpolation or pole
coordinate interpolation was commanded
before the tool compensation was
completed after the T command.
• G07.1 was commanded when cylindrical
interpolation was not possible (there is no
rotary axis, or external mirror image is
ON).
• An axis other than a cylindrical coordinate
system axis was commanded during
cylindrical interpolation.
P484 MILL AXIS RET. • Carry out manual reference point return.
• Movement was commanded to an axis
that had not completed reference point
return during the milling mode.
• Movement was commanded to an axis
that had not completed reference point
return during cylindrical interpolation or
pole coordinate interpolation.

446
Appendix 2. Program Error

Error No. Details Remedy

P485 MILL ILL. MODAL • Check the program.


• The milling mode was turned ON during • Before issuing G12.1, issue G40 or G97.
nose R compensation or constant surface • Before issuing G12.1, issue a T command.
speed control. • Before issuing G13.1, issue G40.
• A T command was issued during the • Specify the radius value of a cylinder other
milling mode. than 0, or specify the X axis’s current value
• The mode was switched from milling to other than 0 before issuing G12.1/G16.
cutting during tool compensation.
• Cylindrical interpolation or pole
coordinate interpolation was commanded
during the constant surface speed control
mode (G96).
• The command unacceptable in the
cylindrical interpolation was issued.
• A T command was issued during the
cylindrical interpolation or pole coordinate
interpolation mode.
• A movement command was issued when
the plane was not selected just before or
after the G07.1 command.
• A plane selection command was issued
during the pole coordinate interpolation
mode.
• Cylindrical interpolation or pole
coordinate interpolation was commanded
during tool radius compensation.
• The G16 plane in which the radius value
of a cylinder is 0 was specified.
• A cylindrical interpolation or pole
coordinate interpolation command was
issued during program coordinate rotation
(G68).
P486 MILLING ERROR • Check the program.
• The milling command was issued during
the mirror image (when parameter or
external input is turned ON).
• Pole coordinate interpolation, cylindrical
interpolation or milling interpolation was
commanded during facing turret mirror
image.
• The start command of the cylindrical
interpolation or polar coordinate
interpolation was issued during the
normal line control.

447
Appendix 2. Program Error

Error No. Details Remedy

P511 SYNC CODE ERR • Check the program.


• Two or more synchronization M codes
were commanded in the same block.
• The synchronization M code and "!" code
were commanded in the same block.
P600 NO AUTO TLM. • Check the specifications.
An automatic tool length measurement
command (G37) was execute though
there are no such command
specifications.
P601 NO SKIP SPEC. • Check the specifications.
A skip command (G31) was issued
though there are no such command
specifications.
P602 NO MULTI SKIP • Check the specifications.
A multiple skipping command (G31.1‚
G31.2 or G31.3) was issued though there
are no such command specifications.
P603 SKIP SPEED 0 • Specify the skip speed.
The skip speed is 0.
P604 TLM ILL. AXIS • Specify only one axis.
No axis or more than one axis was
specified in the automatic tool length
measurement block.
P605 T-CMD IN BLOCK • Specify this T code before the block.
The T code is in the same block as the
automatic tool length measurement
block.
P606 NO T-CMD BEFOR • Specify this T code before the block.
The T code was not yet specified in
automatic tool length measurement.
P607 TLM ILL. SIGNL • Check the program.
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.
P608 SKIP ERROR (CC) • Specify a radius compensation cancel (G40)
A skip command was specified during command’ or remove the skip command.
radius compensation processing.

448
Appendix 2. Program Error

Error No. Details Remedy

P610 ILLEGAL PARA. • Check whether #1549 Iv0vR1 to #1553


• The parameter setting is not correct. Iv0vR5 are set in descending order (in order
• G114.1 was commanded when the of large values).
spindle synchronization with PLC I/F • Check whether #1554 Iv0rd2 to #1557 Iv0rd5
command was selected. are set in descending order.
• G113 was commanded when the • Check and correct #1514 expLinax and
spindle-spindle polygon machining option #1515 expRotax.
was OFF and the spindle synchronization • Check the program.
with PLC I/F command was selected. • Check the parameter.
P612 EXP. ERROR • Check the program.
A movement command for exponential
function interpolation was issued during
facing turret mirror image.
P700 CMD-VALUE ILL. • Check the program.
Spindle synchronization was • Check the parameter.
commanded to a spindle that is not
connected serially.
P900 NO TANZ. SPEC • Check the specifications.
A normal line control command (G40.1,
G41.1, G42.1) was issued when the
normal line control specifications were
not provided.
P901 TAN. AXIS G92 • Check the program.
A coordinate system preset command
(G92) was issued to a normal line control
axis during normal line control.
P902 TAN. AXIS LINE • Correct the normal line control axis.
• The normal line control axis was set to a
linear axis.
• The normal line control axis was set to the
linear type rotary axis II axis.
• The normal line control axis has not been
set.
• The normal line control axis was the same
as the plane selection axis.
P903 PLANE CHG (TAN) • Delete the plane selection command (G17,
The plane selection command (G17, G18, G19) from the program for normal line
G18, G19) was issued during normal line control.
control.
P990 PREPRO S/W ERR • Reduce the number of commands that
Combining commands that required require pre-reading or delete such
pre-reading (nose R offset‚ corner commands.
chamfering/corner rounding‚ geometric I‚
geometric IB‚ and fixed cycle for
compound lathe) resulted in eight or
more pre-read blocks.

449
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 Group 08
01 02 03 05 06 07
Commanded G43, G44,
G00 to G03 G17 to G19 G90, G91 G94, G95 G20, G21 G40 to G42
G code G49
G command Arc and G41, Arc and G43
commanded G42 cause to G49 cause
last is valid. error P151 error P70
G00 to G03.1 Group 1
Positioning/ modal is
Also possible Diameter is The G49
interpolation updated
during arc compensated, movement in
modal and then the arc modal
moves moves with
G01
G04 is G04 is
executed executed
Group 1
modal is G40 to G42 G43 to G49
G04
updated are ignored are ignored
Dwell
G04 is
executed

G09
Exact stop
check
G10 to G11 G10 to G11
are executed are executed
G10 is priority G10 is used
G10, G11 for axis for axis, so the G40 to G42 G43 to G49
selected plan are ignored are ignored
Program data No movement
axis will be the
setting I, J, K rotation basic axis.
input

G command
commanded
last is valid.
G17 to G19 Plane axis
Plane selection changeover
during
diameter
compensation
causes error
P112

450
Appendix 3. Order of G Function Command Priority

G Group 08
01 02 03 05 06 07
Commanded G43, G44,
G00 to G03 G17 to G19 G90, G91 G94, G95 G20, G21 G40 to G42
G code G49
G20, G21 Possible in
same block
Inch/metric
changeover

G27 to G30 G27 to G30


are executed are executed
G00 to G03.1
G27 to G30 modals are G40 to G42 G43 to G49
Reference point updated are ignored are ignored
compare/ return G27 to G30
are executed

G31 to G31.3 Error:P608


Skip Error:P608
G command
G33 commanded
Thread cutting last is valid.

G37 is G37 is G37 is


G37 executed executed executed
Automatic tool G00 to G33 G40 to G42 G43 to G49
length are ignored are ignored are ignored
measurement

Arc and G41, G command


G42 cause commanded
error P151 last is valid.
G40 to G42 G41 and G42 Plane axis
in arc modal changeover
Tool diameter
cause error during
compensation
P151 diameter
compensation
causes error
P112

451
Appendix 3. Order of G Function Command Priority

G Group 19
09 10 12 13 14 17
Commanded G50.1
G73 to G89 G98, G99 G54 to G59 G61 to G64 G66 to G67 G96, G97
G code G51.1
Group 1 G66 to G67
command is are executed
During the arc
executed
G00 to G03.1 command, all
Group 9 is modals are axis names
G00 to G03.1 canceled updated become
Positioning/ mirror center
interpolation data
Movement
with mirror
shape

G04 is G04 is
executed executed
G04 is
G04 G73 to G89 executed G50.1 and
Dwell are ignored G51.1 are
Group 12 is
ignored
changed

G09
Exact stop
check
G10 to G11 G10 is G66 to G67 G10 to G11
are executed executed are executed are executed
G10, G11
G73 to G89 G54 to G59 G10 is G50.1 and
Program data are ignored modals are ignored G51.1 are
setting updated ignored

G17 to G19
Plane selection

452
Appendix 3. Order of G Function Command Priority

G Group 19
09 10 12 13 14 17
Commanded G50.1
G73 to G89 G98, G99 G54 to G59 G61 to G64 G66 to G67 G96, G97
G code G51.1
G20, G21
Inch/metric
changeover

G66 to G67 G27 to G30


are executed are executed
G27 to G30
G27 to G30 G50.1 and
Reference point are ignored G51.1 are
compare/ return ignored

G31 to G31.3
Skip
Group 1 G66 to G67
command is are executed
G33 executed
G33 modals is
Thread cutting Group 9 is updated
canceled

G66 to G67 G37 is


G37 are executed executed
Automatic tool G37 modals is G50.1 and
length ignored G51.1 are
measurement ignored

G40 to G42 Error:P155


Tool diameter
Error:P155
compensation

453
Appendix 3. Order of G Function Command Priority

G Group 01 08
02 03 05 06 07
Commanded G00 to G03.1 G43, G44,
G17 to G19 G90, G91 G94, G95 G20, G21 G40 to G42
G code G33 G49
Arc and G43,
G44 cause
G command
G43, G44, G49 error P70 commanded
Length last is valid.
compensation Arc and G43,
G44 cause
error P70
G50.1
G51.1
Program mirror
image
G52 is G52 is
G52 executed executed
Local G40 to G42 G43 to G49
coordinate are ignored are ignored
system

G53 is G53 is
G53 executed executed
Machine G40 to G42 G40 to G42
coordinate are ignored are ignored
system

G54 to G59
Workpiece
coordinate
system
G61 to G64
Mode selection
G65 is G65 is
executed executed
G65 G00 to G03.1 G43 to G49
Macro call modals are modals are
updated updated

454
Appendix 3. Order of G Function Command Priority

G Group 01 08
02 03 05 06 07
Commanded G00 to G03.1 G43, G44
G17, G19 G90, G92 G94, G95 G20, G21 G40 to G42
G code G33 G49
G66 to G67
are executed
G66 to G67
G00 to G03.1 are executed
G66 to G67
modals are
G43 to G49
Macro call updated
modals are
updated

G73 to G89 Error:P155


are canceled
Canned cycle
G73 to G89 G01 to G33 during
Canned cycle modals are compensation
updated
Error:P155
G90, G91 Use in same
block
Absolute value/
incremental
value
G92
Coordinate
system setting
G command
G94, G95
commanded
Synchronous/ last is valid.
asynchronous

G96, G97
Constant
surface speed
control
G98, G99
Initial point/ R
point return

455
Appendix 3. Order of G Function Command Priority

G Group 19
09 10 12 13 14 17
Commanded G50.1
G73 to G89 G98 to G99 G54 to G59 G61 to G65 G66 to G67 G96, G97
G code G51.1
G66 to G67
are executed
G43, G44, G49
G43 to G49
Length modals are
compensation updated

G66 to G67 G command


G50.1 are executed commanded
last is valid.
G51.1 G50.1
Program mirror G51.1 is
image ignored

G52 is G52 is
G52 executed executed

Local G73to G89 G50.1


coordinate are ignored G51.1 is
system ignored

G53 is
G53 executed

Machine G50.1
coordinate G51.1 is
system invalid

G command G66 to G67


G54 to G59 commanded are executed
last is valid.
Workpiece G54 to G59
coordinate modals are
system updated

G command
G61 to G64 commanded
Mode selection last is valid.

G65 is Error G65 is


executed executed
G65 G73to G89 G50.1
Macro call are ignored G51.1 is
ignored

456
Appendix 3. Order of G Function Command Priority

G Group 19
09 10 12 13 14 17
Commanded G50.1
G73 to G89 G98, G99 G54 to G59 G61 to G67 G66 to G67 G96, G97
G code G51.1
G66 to G67 G66 to G67 G command G66 to G67
are executed are executed commanded are executed
last is valid.
G73 to G89 G54 to G59 G50.1
G66 to G67 are ignored modals are
G51.1 is
Macro call updated
ignored
G command
commanded
last is valid.
G command G66 to G67
commanded are executed
G73 to G89 All axes
last is valid.
G73 to G89 become
Canned cycle are ignored mirror center

G90, G91
Absolute value/
incremental
value
G92 is
G92 executed
Note that G92
Coordinate G73 to G89 is priority for
system setting are ignored axis

G94, G95
Synchronous/
asynchronous
G96, G97 G command
commanded
Constant
last is valid.
surface speed
control
G command
G98, G99
commanded
Initial point/R last is valid.
point return

457
Revision History

Date of revision Manual No. Revision details

Jul. 1997 BNP-B2182* First edition created.

Mar. 2000 BNP-B2182A The content of "MELDAS64 INSTRUCTION MANUAL


(SUPPLEMENT)"(BNP-B2248) was reflected.

May 2000 BNP-B2182B Some program error messages were added.


Mistakes and illegal description were corrected.

Feb. 2002 BNP-B2182C The contents revised to correspond to M64AS, M64S, M65S and M66S.
Miswrite is corrected.
Design of the cover and the back cover were changed.
Manual name changed from "MELDAS 64/65 Programming Manual" to
"MELDAS 60/60S Series Programming Manual".
MODEL, MODEL CODE, and Manual No. were added on the back cover.

Mar. 2003 BNP-B2182D Revisions to comply with M60S Series Version B3.

May. 2004 BNP-B2182E Revisions to comply with M60S Series Version C0, C1.
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.

© 1997-2004 MITSUBISHI ELECTRIC CORPORATION


ALL RIGHTS RESERVED.
MITSUBISHI ELECTRIC CORPORATION
HEAD OFFICE : MITSUBISHI DENKI BLDG., 2-2-3, MARUNOUCHI, CHIYODA-KU, TOKYO 100-8310, JAPAN

MODEL M60/60S Series/MAGIC64 (M)


MODEL
CODE 005-236

Manual No. BNP-B2182E(ENG)


Specifications subject to change without notice.
(0405) MEE Printed in Japan on recycled paper.

You might also like