Programing Manual Meldas
Programing Manual Meldas
60/60S Series
64
PROGRAMMING MANUAL
(LATHE TYPE)
BNP-B2181E(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 and M65V.
* The "MELDAS60S Series" includes the M64AS, M64S, M65S and M66S.
CAUTION
For items described as "Restrictions" or "Usable State" in this manual, the instruction manual
issued by the machine maker takes precedence over this manual.
Items not described in this manual 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.
General precautions
I
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 handling
DANGER is mistaken.
When the user may be subject to injuries or when physical damage may occur if
CAUTION
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.
Items not described in this manual 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.
II
CAUTION
2. Items related to operation
Before starting actual machining, always carry out dry run 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.
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.
III
CONTENTS
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.......................................................................................................... 8
3.3 Program address check function................................................................................. 11
3.4 Tape memory format ................................................................................................... 12
3.5 Optional block skip ("/") ............................................................................................... 12
3.6 Program/sequence/block numbers; O, N.................................................................... 13
3.7 Parity H/V..................................................................................................................... 14
3.8 G code lists .................................................................................................................. 15
3.9 Precautions before starting machining........................................................................ 20
4. Buffer Register................................................................................................................... 21
4.1 Input buffer................................................................................................................... 21
4.2 Pre-read buffers........................................................................................................... 22
5. Position Commands ......................................................................................................... 23
5.1 Incremental/absolute value commands ...................................................................... 23
5.2 Radius/diameter commands ....................................................................................... 24
5.3 Inch/metric conversion; G20, G21............................................................................... 25
5.4 Decimal point input ...................................................................................................... 29
6. Interpolation Functions .................................................................................................... 33
6.1 Positioning (Rapid Traverse); G00.............................................................................. 33
6.2 Linear interpolation; G01 ............................................................................................. 40
6.3 Circular interpolation; G02, G03.................................................................................. 43
6.4 R specification circular interpolation; G02, G03.......................................................... 47
6.5 Plane selection; G17, G18, G19 ................................................................................. 49
6.6 Thread cutting.............................................................................................................. 51
6.6.1 Constant lead thread cutting; G33....................................................................... 51
6.6.2 Inch thread cutting; G33 ...................................................................................... 55
6.6.3 Continuous thread cutting.................................................................................... 56
6.6.4 Variable lead thread cutting................................................................................. 57
6.6.5 Circular thread cutting; G35, G36........................................................................ 60
6.7 Helical interpolation; G17, G18, G19, and G02, G03 (Only MAGIC64) ....................... 64
6.8 Milling interpolation; G12.1.......................................................................................... 67
6.8.1 Selecting milling mode......................................................................................... 69
6.8.2 Milling interpolation control and command axes ................................................. 70
6.8.3 Selecting a plane during the milling mode .......................................................... 72
6.8.4 Setting milling coordinate system........................................................................ 73
6.8.5 Preparatory functions .......................................................................................... 76
6.8.6 Switching from milling mode to turning mode; G13.1 ......................................... 81
6.8.7 Feed function ....................................................................................................... 81
6.8.8 Program support functions .................................................................................. 81
6.8.9 Miscellaneous functions ...................................................................................... 82
6.8.10 Tool offset functions........................................................................................... 83
6.8.11 Interference check ............................................................................................. 99
i
6.9 Circular interpolation; G07.1 (6 and 7 only in G code system)................................... 107
6.10 Pole coordinate interpolation; G12.1 (Only 6, 7 in G code system) ......................... 115
6.11 Exponential function interpolation; G02.3, G03.3 ..................................................... 122
7. Feed Functions .................................................................................................................. 128
7.1 Rapid traverse rate ...................................................................................................... 128
7.2 Cutting feedrate ........................................................................................................... 128
7.3 F1-digit feed................................................................................................................. 129
7.4 Synchronous/asynchronous feed; G94, G95.............................................................. 131
7.5 Feedrate designation and effects on control axes ...................................................... 133
7.6 Thread cutting mode.................................................................................................... 137
7.7 Automatic acceleration/deceleration ........................................................................... 138
7.8 Speed clamp................................................................................................................ 138
7.9 Exact stop check; G09 ................................................................................................ 139
7.10 Exact stop check mode; G61 .................................................................................... 142
7.11 Deceleration check .................................................................................................... 143
7.11.1 G1 → G0 deceleration check ............................................................................ 145
7.11.2 G1 → G1 deceleration check ............................................................................ 146
7.12 Automatic corner override; G62 ................................................................................ 147
7.13 Tapping mode; G63................................................................................................... 152
7.14 Cutting mode; G64 .................................................................................................... 152
8. Dwell ................................................................................................................................... 153
8.1 Per-second dwell; G04 ................................................................................................ 153
9. Miscellaneous Functions ................................................................................................. 155
9.1 Miscellaneous functions (M8-digits BCD) ................................................................... 155
9.2 2nd miscellaneous functions (A8-digits, B8-digits or C8-digits) ................................. 157
9.3 Index table indexing..................................................................................................... 158
10. Spindle Functions ........................................................................................................... 160
10.1 Spindle functions (S2-digits BCD) ..... During standard PLC specifications ............ 160
10.2 Spindle functions (S6-digits Analog) ......................................................................... 160
10.3 Spindle functions (S8-digits)...................................................................................... 161
10.4 Constant surface speed control; G96, G97 .............................................................. 162
10.5 Spindle clamp speed setting; G92 ............................................................................ 163
10.6 Spindle/C axis control................................................................................................ 164
10.7 Spindle synchronization control I; G114.1 ................................................................ 167
10.8 Spindle synchronization control II ............................................................................. 173
10.9 Tool-spindle synchronization IA
(spindle-spindle polygon machining); G114.2........................................................... 180
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining); G51.2
(Only 6 and 7 in G code system)............................................................................. 187
10.11 Tool-spindle synchronization IC (spindle-NC axis polygon machining); G51.2
(Only 6 and 7 in G code system)............................................................................. 195
10.12 Multiple spindle control............................................................................................ 198
10.12.1 Multiple spindle control I (multiple spindle command) .................................... 199
10.12.2 Multiple spindle control I (multiple selection command) ................................. 200
10.12.3 Multiple spindle control II ................................................................................. 203
11. Tool Functions................................................................................................................. 206
11.1 Tool functions (T8-digits BCD) .................................................................................. 206
12. Tool Offset Functions .................................................................................................... 207
12.1 Tool offset ................................................................................................................. 207
12.1.1 Tool offset start .................................................................................................. 208
12.1.2 Expanded method at starting tool offset............................................................ 209
12.2 Tool length offset ...................................................................................................... 211
12.3 Tool nose wear offset ............................................................................................... 213
ii
12.4 Tool nose radius compensation; G40, G41, G42, G46 ............................................ 214
12.4.1 Tool nose point and compensation directions ................................................. 216
12.4.2 Tool nose radius compensation operations ..................................................... 220
12.4.3 Other operations during tool nose radius compensation ................................. 237
12.4.4 G41/G42 commands and I, J, K designation ................................................... 245
12.4.5 Interrupts during tool nose radius compensation ............................................. 250
12.4.6 General precautions for tool nose radius compensation ................................. 252
12.4.7 Interference check ............................................................................................ 253
12.5 Programmed tool offset input; G10 ........................................................................... 258
12.6 Tool life management II ............................................................................................ 261
12.6.1 Counting the tool life .......................................................................................... 264
13. Program Support Functions ......................................................................................... 266
13.1 Fixed cycles for turning ............................................................................................ 266
13.1.1 Longitudinal cutting cycle; G77 ......................................................................... 267
13.1.2 Thread cutting cycle; G78.................................................................................. 269
13.1.3 Face cutting cycle; G79 ..................................................................................... 272
13.2 Fixed cycle for turning (MELDAS special format)..................................................... 275
13.3 Compound fixed cycles ............................................................................................. 276
13.3.1 Longitudinal rough cutting cycle; G71 ............................................................... 277
13.3.2 Face rough cutting cycle; G72........................................................................... 291
13.3.3 Formed material rough cutting cycle; G73 ........................................................ 293
13.3.4 Finishing cycle; G70 .......................................................................................... 297
13.3.5 Face cut-off cycle; G74...................................................................................... 298
13.3.6 Longitudinal cut-off cycle; G75 .......................................................................... 300
13.3.7 Compound thread cutting cycle; G76................................................................ 302
13.3.8 Precautions for compound fixed cycles ; G70 ~ G76 ....................................... 306
13.4 Compound fixed cycle (MELDAS special format)..................................................... 311
13.5 Hole drilling fixed cycles; G80 ~ G89 ........................................................................ 314
13.5.1 Face deep hole drilling cycle 1; G83
(Longitudinal deep hole drilling cycle 1; G87) ................................................... 322
13.5.2 Face tapping cycle; G84 (Longitudinal tapping cycle; G88) / Face reverse
tapping cycle; G84.1 (Longitudinal reverse tapping cycle; G88.1) ................... 323
13.5.3 Face boring cycle; G85 (Longitudinal boring cycle; G89)................................. 327
13.5.4 Deep hole drilling cycle 2; G83.2....................................................................... 327
13.5.5 Hole drilling fixed cycle cancel; G80 ................................................................. 330
13.5.6 Precautions when using a hole drilling fixed cycle............................................ 330
13.6 Hole drilling fixed cycle; G80 ~ G89 (MELDAS special format) ............................... 332
13.6.1 Initial point and R point level return; G98, G99 ................................................. 351
13.6.2 Setting of workpiece coordinates in fixed cycle mode ...................................... 352
13.7 Subprogram control; M98, M99, M198 ..................................................................... 353
13.7.1 Calling subprogram with M98 and M99 commands ......................................... 353
13.7.2 Calling subprogram with M198 commands....................................................... 359
13.8 Variable commands .................................................................................................. 360
13.9 User macro ................................................................................................................ 363
13.9.1 User macro commands; G65, G66, G66.1, G67 .............................................. 363
13.9.2 Macro call instruction ........................................................................................ 364
13.9.3 Variables ............................................................................................................ 372
13.9.4 Types of variables.............................................................................................. 374
13.9.5 Operation commands ........................................................................................ 412
13.9.6 Control commands ............................................................................................ 418
13.9.7 External output commands................................................................................ 421
13.9.8 Precautions ........................................................................................................ 423
13.10 Double-turret mirror image ...................................................................................... 425
iii
13.11 Corner chamfering/corner rounding I ...................................................................... 435
13.11.1 Corner chamfering ",C" (or "I_", "K_", "C_").................................................... 435
13.11.2 Corner rounding ",R_" (or "R_") ...................................................................... 437
13.11.3 Corner chamfering/corner rounding expansion .............................................. 439
13.11.4 Interrupt during corner chamfering/corner rounding ....................................... 441
13.12 Corner chamfering/corner rounding II ..................................................................... 443
13.12.1 Corner chamfering ",C" (or "I_", "K_", "C_").................................................... 443
13.12.2 Corner rounding ",R_" (or "R_") ...................................................................... 446
13.12.3 Corner chamfering/corner rounding expansion .............................................. 447
13.12.4 Interrupt during corner chamfering/corner rounding ....................................... 447
13.13 Linear angle command ........................................................................................... 448
13.14 Geometric ............................................................................................................... 449
13.14.1 Geometric I ..................................................................................................... 449
13.14.2 Geometric IB ................................................................................................... 452
13.15 Program parameter input; G10, G11 ..................................................................... 466
13.16 Macro interrupt ........................................................................................................ 467
13.17 Tool change position return; G30.1 ~ G30.5 .......................................................... 475
13.18 ASCII code macro ................................................................................................... 478
13.19 Balance cut; G15, G14 ............................................................................................ 483
13.20 Synchronizing operation between systems ............................................................ 487
13.20.1 Synchronization standby code (! code)........................................................... 487
13.20.2 Start Point Designation Synchronizing (Type 1); G115 ................................ 490
13.20.3 Start Point Designation Synchronizing (Type 2); G116 ............................... 492
13.20.4 Synchronization function expansion (M code) ................................................ 494
13.21 2-system simultaneous thread-cutting cycle........................................................... 497
13.21.1 Parameter setting command ........................................................................... 497
13.21.2 2-system simultaneous thread-cutting cycle I; G76.1..................................... 498
13.21.3 2-system simultaneous thread cutting cycle II; G76.2 .................................... 500
14. Coordinate System Setting Functions ......................................................................... 503
14.1 Coordinate words and control axes .......................................................................... 503
14.2 Basic machine, workpiece and local coordinate systems ........................................ 504
14.3 Machine zero point and 2nd reference point (Zero point) ........................................ 505
14.4 Automatic coordinate system setting ........................................................................ 506
14.5 Machine coordinate system selection; G53 .............................................................. 507
14.6 Coordinate system setting; G92................................................................................ 508
14.7 Reference point (Zero point) return; G28, G29......................................................... 509
14.8 2nd, 3rd, and 4th reference point (Zero point) return; G30 ...................................... 513
14.9 Simple zero point return ............................................................................................ 516
14.10 Reference point check; G27.................................................................................... 521
14.11 Workpiece coordinate system setting and offset; G54 ~ G59 (G54.1) .................. 522
14.12 Local coordinate system setting; G52..................................................................... 528
14.13 Workpiece coordinate system preset; G92.1.......................................................... 529
15. Protection Function ........................................................................................................ 523
15.1 Chuck barrier/tailstock barrier; G22, G23 ................................................................. 534
15.2 Stored stroke limit...................................................................................................... 537
16. Measurement Support Functions.................................................................................. 541
16.1 Automatic tool length measurement; G37 ................................................................ 541
16.2 Skip function; G31 ..................................................................................................... 545
16.3 Multi-stage skip function; G31.n, G04....................................................................... 551
16.4 Multi-stage skip function 2; G31................................................................................ 553
16.5 Speed change skip ................................................................................................... 556
16.6 Programmable current limitation .............................................................................. 559
Appendix 1. Program Parameter Input N No. Correspondence Table........................... A-1
Appendix 2. Program Error ................................................................................................. A-4
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 case of a lathe, the axis parallel to the spindle is known as the Z axis and its forward direction
is the direction in which the turret moves away from the spindle stock while the axis at right angles
to the Z axis is the X axis and its forward direction is the direction in which it moves away from the
Z axis, as shown in the figure below.
Tailstock
Spindle stock
Tool +Z
+X
+Y Turret
Since coordinates based on the right hand rule are used with a lathe, the forward direction of the Y
axis in the above figure which is at right angles to the X-Z plane is downward. It should be borne in
mind that an arc on the X-Z plane is expressed as clockwise or counterclockwise as seen from the
forward direction of the Y axis. (Refer to the section on circular interpolation.)
Spindle nose
Machine zero point
G54 Workpiece zero points (G54 ~ G59)
G55
G58
G52 G59
G30
1
1. Control Axes
1.2 Coordinate systems and coordinate zero point symbols
: Reference point
Upon completion of the reference point return, the parameters are referred to and automatically set
for the basic machine coordinate system and workpiece coordinate systems (G54 ~ G59).
The basic machine coordinate system is set so that the first reference point is at the position
designated by the parameter from the basic machine coordinate zero point (machine zero point).
Basic machine
coordinate system Machine zero point
+Z
Hypothetical machine
coordinate system Local
(shifted by G92) coordinate
system
X1 (G52)
+X Z1
The local coordinate system (G52) is valid on the coordinate systems designated by the
commands for the workpiece coordinate systems 1 to 6.
Using the G92 command, the basic machine coordinate system can be shifted and made the
hypothetical machine coordinate system. At the same time, workpiece coordinate systems 1 to 6
are also shifted.
2
2. Input Command Units
2.1 Input command units
These are the units used for the movement amounts in the program. They are expressed in
millimeters, inches or degrees (°).
These are the units of setting data which are used, as with the compensation amounts, in common
for all axes.
The 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.)
The input setting units can be selected from the following types common to axes.
Linear axis
Input unit Millimeter Inch Rotation
parameters Diameter Radius Diameter Radius axis (°)
command command command command
#1015 cunit = 10000 1.0 1.0 0.1 0.1 1.0
Input = 1000 0.1 0.1 0.01 0.01 0.1
command unit = 100 0.01 0.01 0.001 0.001 0.01
= 10 0.001 0.001 0.0001 0.0001 0.001
#1003 iunit = B 0.0005 0.001 0.00005 0.0001 0.001
Min.
=C 0.00005 0.0001 0.000005 0.00001 0.0001
movement unit
=D 0.000005 0.00001 - - 0.00001
#1003 iunit = B 0.001 0.001 0.0001 0.0001 0.001
Input setting
=C 0.0001 0.0001 0.00001 0.00001 0.0001
unit
=D 0.00001 0.00001 - - 0.00001
(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 turned 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
2. Input Command Units
2.2 Input command units
Detailed description
(Note 1) Set the data with a mm/min or inch/min unit for micrometric system (B).
Set a value ten times the micrometer value for sub-micrometric system (C).
Set the data with a mm/min unit for 10 nanometres (D).
4
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 "Table of tape codes" is assigned during operation, a program
error (P32) will result.
(Note 2) For the sake of convenience, a " ; " has been used in the CNC display to indicate the End
of Block (EOB/LF) which separates one block from another. Do not use the " ; " key,
however, in actual programming but use the keys in the following table instead.
CAUTION
" ; " "EOB" and " % " "EOR" are explanatory notations. The actual code is "Line feed" and "%".
(ISO code (R-840)
Detailed description
5
3. Data Formats
3.1 Tape codes
• • •• • • •• •• • • • • ••
•• •• • • • • • •• • •
•• •• •• • • ••• •••• ••• • ••
••••••••••••••••••••••••••••••••••••••••••••••••
•• •••• •• • •••••
••••• ••• ••• •••••• ••••• ••• • • •••
••••• ••• •• •••••• ••••••• • • •
• • • • • •••••• •••••• •
• • •• • • • • • •••••••• • • •
Operator information print-out example
Information in this section is ignored and nothing is executed.
If a tape rewinder is not used, there is no need for the 2-meter dummy at both ends of the tape
and for the head EOR (%) code.
6
3. Data Formats
3.1 Tape codes
•• •••• •• • • 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)
(B)
••••• •• •••
NULL
DEL (Delete)
•
Under the ISO code, LF or NL is EOB and % is EOR.
The (A) codes 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
7
3. Data Formats
3.2 Program formats
The prescribed arrangement used when assigning control information to the controller is known as
the program format, and the format used with this controller is called the "word address format".
Detailed description
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 "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.
(3) Programs
A program is a collection of several blocks.
8
3. Data Formats
3.2 Program formats
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.
9
3. Data Formats
3.2 Program formats
(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.
10
3. Data Formats
3.3 Program address check function
The program can be checked in word units when operating machining programs.
Detailed description
Example of program
11
3. Data Formats
3.4 Tape memory format
(1) Storage tape and significant sections (ISO, EIA automatic judgment)
Both ISO and EIA tape codes can be stored in the memory in the same way as tape operation.
After resetting, ISO/EIA is automatically judged by the EOB code at the head.
The interval to be stored in the memory is from the next character after the head EOB to the
EOR code after resetting.
The significant codes listed in the "Table of tape code" in Section 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.
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.
(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.
(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.
(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.
12
3. Data Formats
3.6 Program/sequence/block numbers; O, N
These numbers are used for monitoring the execution of the machining programs and for calling
both machining programs and specific stages in machining programs.
(1) Program numbers are classified by workpiece correspondence or by subprogram units, and
they are designated by the address "O" 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
N100 G00 G90 X120. Z100. ; 12345678 100 0
G94 S1000 ; 12345678 100 1
N102 G71 P210 Q220 I0.2 K0.2 D0.5 F600 ; 12345678 102 0
N200 G94 S1200 F300 ; 12345678 200 0
N210 G01 X0 Z95. ; 12345678 210 0
G01 X20. ; 12345678 210 1
G03 X50. Z80. K–15. ; 12345678 210 2
G01 Z55. ; 12345678 210 3
G02 X80. Z40. I15. ; 12345678 210 4
G01 X100. ; 12345678 210 5
G01 Z30. ; 12345678 210 6
G02 Z10. K–15. ; 12345678 210 7
N220 G01 Z0 ; 12345678 220 0
N230 G00 X120. Z150. ; 12345678 230 0
N240 M02 ; 12345678 240 0
% 12345678 240 0
13
3. Data Formats
3.7 Parity H/V
Parity check provides a mean of checking whether the tape has been correctly perforated or not.
This involves checking for perforated code errors or, in other words, for perforation errors. There
are two types of parity check: Parity H and Parity V.
(1) Parity H
Parity H checks the number of holes configuring a character and it is done during tape
operation, tape input and sequence number search.
A parity H error is caused in the following cases.
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
code" in Section 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.
14
3. Data Formats
3.8 G code lists
G codes include the six G code lists 2, 3, 4, 5, 6 and 7. One list is selected by setting in parameter
"#1037 cmdtyp".
cmdtyp G code list
3 List 2
4 List 3
5 List 4
6 List 5
7 List 6
8 List 7
G functions are explained using the G code list 3.
(Note 1) A program error (P34) will result if a G code that is not in the Table of G code lists is
commanded.
(Note 2) An alarm will result if a G code without additional specifications is commanded.
Table of G code lists
G code list
Group Function
2 3 4 5 6 7
∆G00 ∆G00 ∆G00 ∆G00 ∆G00 ∆G00 01 Positioning
∆G01 ∆G01 ∆G01 ∆G01 ∆G01 ∆G01 01 Linear interpolation
G02 G02 G02 G02 G02 G02 01 Circular interpolation CW
G03 G03 G03 G03 G03 G03 01 Circular interpolation CCW
G02.3 G02.3 G02.3 G02.3 G02.3 G02.3 01 Exponential function interpolation CW
G03.3 G03.3 G03.3 G03.3 G03.3 G03.3 01 Exponential function interpolation CCW
G04 G04 G04 G04 G04 G04 00 Dwell
G07.1 G07.1 Cylindrical interpolation
19
G107 G107
15
3. Data Formats
3.8 G code lists
G code list
Group Function
2 3 4 5 6 7
∆G21 ∆G21 ∆G21 ∆G21 ∆G21 ∆G21 06 Metric command
G22 G22 G22 G22 04 Barrier check ON
*G23 *G23 *G23 *G23 04 Barrier check OFF
G22 G22 00 Soft limit ON
G23 G23 00 Soft limit OFF
G27 G27 G27 G27 G27 G27 00 Reference point return check
G28 G28 G28 G28 G28 G28 00 Automatic reference point return
G29 G29 G29 G29 G29 G29 00 Return from reference point
G30 G30 G30 G30 G30 G30 00 2nd, 3rd and 4th reference point return
G30.1 G30.1 G30.1 G30.1 G30.1 G30.1 00 Tool change position return 1
G30.2 G30.2 00 Tool change position return 2
G30.3 G30.3 00 Tool change position return 3
G30.4 G30.4 00 Tool change position return 4
G30.5 G30.5 00 Tool change position return 5
G37 G37 G36/G37 G36/G37 G36/G37 G36/G37 00 Automatic tool length measurement
*G40 *G40 *G40 *G40 *G40 *G40 07 Tool nose R compensation cancel
G41 G41 G41 G41 G41 G41 07 Tool nose R compensation left
G42 G42 G42 G42 G42 G42 07 Tool nose R compensation right
Tool nose R compensation (direction automatically
G46 G46 G46 G46 G46 G46 07
selected) ON
G43.1 G43.1 G43.1 G43.1 G43.1 G43.1 20 1st spindle control mode
G44.1 G44.1 G44.1 G44.1 G44.1 G44.1 20 2nd spindle control mode
G47.1 G47.1 G47.1 G47.1 G47.1 G47.1 20 2-spindle synchronous control mode
16
3. Data Formats
3.8 G code lists
G code list
Group Function
2 3 4 5 6 7
G53 G53 G53 G53 G53 G53 00 Machine coordinate system selection
*G54 *G54 *G54 *G54 *G54 *G54 12 Workpiece coordinate system selection 1
G55 G55 G55 G55 G55 G55 12 Workpiece coordinate system selection 2
G56 G56 G56 G56 G56 G56 12 Workpiece coordinate system selection 3
G57 G57 G57 G57 G57 G57 12 Workpiece coordinate system selection 4
G58 G58 G58 G58 G58 G58 12 Workpiece coordinate system selection 5
G59 G59 G59 G59 G59 G59 12 Workpiece coordinate system selection 6
G54.1 G54.1 G54.1 G54.1 G54.1 G54.1 12 Workpiece coordinate system 48 sets expanded
G61 G61 G61 G61 G61 G61 13 Exact stop check mode
G90 G77 G90 G77 G90 G77 09 Longitudinal cutting fixed cycle
G92 G78 G92 G78 G92 G78 09 Thread cutting fixed cycle
G94 G79 G94 G79 G94 G79 09 Face cutting fixed cycle
*G80 *G80 *G80 *G80 *G80 *G80 09 Hole drilling fixed cycle cancel
G79 G83.2 G79 G83.2 G79 G83.2 09 Deep hole drilling cycle 2
G83 G83 G83 G83 G83 G83 09 Deep hole drilling cycle (Z axis)
G84 G84 G84 G84 G84 G84 09 Tap cycle (Z axis)
G85 G85 G85 G85 G85 G85 09 Boring cycle (Z axis)
G87 G87 G87 G87 G87 G87 09 Deep hole drilling cycle (X axis)
G88 G88 G88 G88 G88 G88 09 Tap cycle (X axis)
17
3. Data Formats
3.8 G code lists
G code list
Group Function
2 3 4 5 6 7
G89 G89 G89 G89 G89 G89 09 Boring cycle (X axis)
G84.1 G84.1 G84.1 G84.1 09 Reverse tap cycle (Z axis)
G88.1 G88.1 G88.1 G88.1 09 Reverse tap cycle (X axis)
G115 G115 G115 G115 G115 G115 00 • Start point designation synchronizing Type 1
G116 G116 G116 G116 G116 G116 00 • Start point designation synchronizing Type 2
• Miscellaneous function output during axis
G117 G117 G117 G117 G117 G117 00
movement
(Note 1) A (∗) symbol indicates the G code to be selected in each group when the power is turned
ON or when a reset is executed to initialize the modal.
(Note 2) A (∆) symbol indicates the G code for which parameters selection is possible as an
initialization status when the power is turned ON or when a reset is executed to initialize
the modal. Note that inch/metric changeover can only be selected when the power is
turned ON.
(Note 3) A (•) symbol indicates a function dedicated for multi-system.
(Note 4) If two or more G codes from the same group are commanded, the last G code will be
valid.
(Note 5) 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 6) Whether the modal is initialized differs for each reset input.
18
3. Data Formats
3.8 G code lists
(2) G36
G36 is used for the two functions, automatic tool length measurement and circular
thread cutting (CCW). The applied function follows the parameter "#1238 set10/bit0"
(circular thread cutting) setting.
CAUTION
The commands with "no value after G" will be handled as "G00".
19
3. Data Formats
3.9 Precautions before starting machining
CAUTION
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.
Before starting actual machining, always carry out dry run operation to confirm the machining
program, tool offset amount and workpiece offset amount, etc.
20
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 RS-232C operation, the contents of
the input buffer are immediately transferred to the pre-read buffers, and provided that the data
stored in the input buffer do not exceed 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
Input buffer Pre-read
Tape buffer 5
Buffer 4
Memory Mode Buffer 3
switching Buffer 2
Arithmetic
Keyboard 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.
21
4. Buffer Register
4.2 Pre-read buffers
During automatic processing, the contents of 1 block are normally pre-read so that program
analysis processing is conducted smoothly. However, during nose R 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:
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 optional 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.)
22
5. Position Commands
5.1 Incremental/absolute value commands
5. Position Commands
5.1 Incremental/absolute value commands
Function and purpose
There are 2 methods of issuing tool movement amount commands: the incremental value method
and the absolute value method.
The incremental value method applies for coordinates of a point which is to be moved and it issues
a command using the distance from the present point; on the other hand, the absolute value
system issues a command using the distance from the coordinate zero point. The following figure
shows what happens when the tool is moved from point P1 to point P2.
X axis
Z W P1
U
2
Spindle P2
X
Z axis
Incremental value commands and absolute value commands for the X axis and Z axis are identified
by address when parameter "#1076 AbsInc" is set to 1, and identified by G code (G90/
G91) when set to 0. Similarly, even with additional axes (C axis or Y axis), they are differentiated by
addresses, or G code.
Command system Remarks
Absolute value X axis Address X • Set correspondence between
Z axis Address Z addresses and axes into "#1013
C/Y axis Address C/Y axname" and "#1014 incax".
Incremental value X axis Address U • Absolute and incremental values can
be used together in the same block.
Z axis Address W
C/Y axis Address H/V
(Example)
X_____ W _____ ;
Incremental value command for Z axis
Absolute value command for X axis
(Note 1) When parameter "#1076 AbsInc" is 1, and H is used for the incremental command
address, address H of blocks in M98, G114.2, and G10 L50 modal will be handled as the
parameter of each command, and the axis will not be moved.
23
5. Position Commands
5.2 Radius/diameter commands
The cross sections of workpieces machined on a lathe are circular, and the diameter or radius
value of those circles can be used for movement commands in the X-axis direction. A radius
command will move the tool by the commanded amount only, but a diameter command will move
the tool both in the X-axis direction by an amount equivalent to one-half the commanded amount
only and in the Z-axis direction by the commanded amount only.
This system permits radius or diameter commands to be issued, depending on the parameter
(#1019 dia) setting. The figure below shows the command procedure when the tool is to be moved
from point P1 to point P2.
X axis
P1
r2
Spindle
P2 r1
Z axis
(1) In the above example, the tool moves from P1 to P2 in the minus direction of the X axis and so
when an incremental value is issued, the minus sign is given to the numerical value being
commanded.
(2) In this manual, diameter commands are used in descriptions of both the X and U axes for the
sake of convenience.
24
5. Position Commands
5.3 Inch/metric conversion
The commands can be changed between inch and metric with the G20/G21 command.
Command format
G20/G21;
G20 Inch command
G21 Metric command
Detailed description
The G20 and G21 commands merely select the command units. They do not select the Input units.
G20 and G21 selection is meaningful only for linear axes and it is meaningless for rotation axes.
(Example) Relationship between input command units and G20/G21 commands (with decimal
point input type I)
Input command Command mm output (#1016 iout=0) inch output (#1016 iout=1)
Axis
cunit example G21 G20 G21 G20
X 10 X100 ; 0.100mm 0.254mm 0.0039inch 0.0100inch
Z 10 Z100 ; 0.100mm 0.254mm 0.0039inch 0.0100inch
X 1 X100 ; 0.0100mm 0.0254mm 0.00039inch 0.00100inch
Z 1 Z100 ; 0.0100mm 0.0254mm 0.00039inch 0.00100inch
25
5. Position Commands
5.3 Inch/metric conversion
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.
26
5. Position Commands
5.3 Inch/metric conversion
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.
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.
27
5. Position Commands
5.3 Inch/metric conversion
[POSITION] [POSITION]
X 25.400 X 25.400
Y 50.800 Y 50.800
Z 76.200 Z 76.200
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.
28
5. Position Commands
5.4 Decimal point input
This function enables the decimal point 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 minimum input command unit (type I) or zero point
(type II) is to apply for the least significant digit of data without a decimal point.
Command format
. Metric system
. Inch system
Detailed description
(1) The decimal point command is valid for the distances, angles, times and speeds in machining
programs.
(2) Refer to the table rising the "Addresses used and valid/invalid decimal point commands" for
details on the valid addresses for the decimal point commands.
(3) The number of significant digits in a decimal point command is shown below (for input
command unit cunit=10).
Movement command Movement command
Feedrate Dwell (X)
(linear) (rotation)
Decimal Decimal Decimal
Integer Integer Integer Decimal part Integer
part part part
0 ~ 60000. .000 ~ .999
MM (millimeter) 0 ~ 99999. .000 ~ .999 0 ~ 99999. .000 ~ .999 0 ~ 99999. .000 ~ .999
0 ~ 999. .0000 ~ .9999
0 ~ 2362. .0000 ~ .9999
INCH (inch) 0 ~ 9999. .0000 ~ .9999 99999. (359.) .0 ~ .999 .000000 0 ~ 99. .000 ~ .999
0 ~ 99.
~ .999999
(Note) The top row gives the feedrate as a per-minute rate and the bottom row as a per-
rotation rate.
(4) The decimal point command is valid even for commands defining the variable data used in
subprograms.
(5) 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, P, S and T.
All variable commands, however, are treated as data with decimal points.
Precautions
(1) If an arithmetic operator is inserted, the data will be handled as data with a decimal point.
(Example1) G00 X123+0 ;
This is the X axis command 123mm command. It will not be 123µm.
29
5. Position Commands
5.4 Decimal point input
Example of program
In the table on the next page, decimal point input I and II result in the following for commands in
which a decimal point is not used in an address where a decimal point command is valid.
Both decimal point input I and II become the same for commands using a decimal point.
30
5. Position Commands
5.4 Decimal point input
31
5. Position Commands
5.4 Decimal point input
Decimal Decimal
Address point Application Remarks Address point Application Remarks
command command
Q Invalid Minimum spindle clamp S Invalid Spindle function codes
rotation speed Invalid Maximum spindle clamp
Invalid MRC finishing shape end rotation speed
sequence number Invalid Constant surface speed
Valid Cut-off cycle control, surface speed
Cut amount/shift amount Invalid Program parameter input, 2 bytes
Valid Compound thread cutting word type data
cycle T Invalid Tool function codes
Minimum cut amount
U Valid Coordinate position data
Valid Compound thread cutting
cycle Valid Program tool compensation
First cut amount input
Valid Deep hole drilling cycle 1 Valid Rough cutting cycle
Cut amount of each pass (longitudinal) cutting
amount
Invalid Program tool compensation
input V Valid Coordinate position data
Hypothetical tool nose point Valid Program tool compensation
number input
Invalid Deep hole drilling cycle (2) W Valid Coordinate position data
Dwell at cut point Valid Program tool compensation
Valid Arc center coordinates input
(absolute value) (geometric) Valid Rough cutting cycle (face)
Valid Thread cutting start shift cutting amount
angle X Valid Coordinate position data
R Valid R-designated arc radius Valid Dwell
Valid Corner rounding circular ,R Valid Program tool compensation
radius input
Valid Automatic tool length Y Valid Coordinate position data
measurement, deceleration
range r Valid Program tool compensation
input
Valid MRC longitudinal/face
escape amount Z Valid Coordinate position data
Invalid MRC shaping division Valid Program tool compensation
number input
Valid Cut-off cycle, return amount
Valid Cut-off cycle, escape amount
Valid Compound thread cutting
cycle, finishing allowance
Valid Compound thread cutting
cycle/turning cycle, taper
difference
Valid Hole drilling cycle/deep hole
drilling cycle (2), distance to
reference point
Valid Program tool compensation
input/nose R compensation
amount
Valid Coordinate position data
Valid Rough cutting cycle
(longitudinal) (face) pull
amount
Valid Synchronous tap/ ,R
asynchronous tap
changeover
32
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
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, G33 or G34 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 (G83 ~ G89) in the 09 group is cancelled (G80) by the G00 command.
(4) Whether the tool moves along a linear or non-linear path is determined by parameter, but the
positioning time does not change.
(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.
(5) When no number following the G address, this is treated as G00.
CAUTION
The commands with "no value after G" will be handled as "G00".
33
6. Interpolation Functions
6.1 Positioning (Rapid Traverse)
Example of program
+X Turret
Start point
(+180, +300)
End point (+100, +150)
Workpiece +Z
(Unit : mm)
Chuck
Precautions
(Note 1) When the parameter "#1086 G0Intp" is 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 X-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:
G00 Z–300000 X400000 ; (With an input setting unit of 0.001mm)
X
400
fx
Z
Start
300 point
fz (Unit : mm)
34
6. Interpolation Functions
6.1 Positioning (Rapid Traverse)
(Note 2) When parameter "#1086 G0Intp" is 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 X-axis and Z-axis rapid traverse rates are both 9600 mm/min, the
tool will follow the path in the figure below if the following is programmed:
G00 Z − 300000 X400000 ; (With an input setting unit of 0.001mm)
400
fx
Z
Start
300 point
fz (Unit : mm)
35
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
manual.
(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”.
Ts : Acceleration/deceleration
Ts time constant
Td : Deceleration check time
Td Td = Ts + (0 ~ 14ms)
2 × Ts
Td Ts
Ts : Acceleration/deceleration
time constant
Td : Deceleration check time
Td = 2 × Ts + (0 ~ 14ms)
36
6. Interpolation Functions
6.1 Positioning (Rapid Traverse)
Ts : Acceleration/deceleration
Ts time constant
Td : Deceleration check time
Td Td = 2 × Ts + (0 ~ 14ms)
37
6. Interpolation Functions
6.1 Positioning (Rapid Traverse)
This command commands the in-position width for the positioning command from the machining
program.
In-position width
Positioning coordinate value of each axis
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 Fig. 2.
Ts Ts
Td Td Start of in-position
check with parameter
Start of in-position check
with ",I" address command
38
6. Interpolation Functions
6.1 Positioning (Rapid Traverse)
When the setting value of the servo parameter "#2224 SV024" 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
G0 in-position
SV024
G1 in-position
SV024
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.
39
6. Interpolation Functions
6.2 Linear interpolation
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
X axis
Z W
Command point
U
/
2 Present position
Z axis
X
Detailed description
(1) Once this command is issued, the mode is maintained until another G function (G00, G02,
G03, G33, G34) 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 rotation 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.
40
6. Interpolation Functions
6.2 Linear interpolation
Example of program
(Example 1)
X axis
20.0
Present position
Z axis
50.0
(Unit: mm)
Turret
+X
240
P1 P0
200
+Z
140
P3 P4
100
P2
Input setting unit : 0.001mm
41
6. Interpolation Functions
6.2 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.
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.
42
6. Interpolation Functions
6.3 Circular Interpolation
Command format
The circular center coordinate value is commanded with an input setting unit. Caution is required
for the arc command of an axis for witch the input command unit differs. Command with a decimal
point to avoid confusion.
X axis
Center
End point
I
U/2
Start
X point
Z W K
Z axis
43
6. Interpolation Functions
6.3 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 direction of the circular rotation is differentiated by G02 and G03:
G02 : Clockwise (CW)
G03 : Counterclockwise (CCW)
Turret
+X
Chuck
CCW(G03)
+X
CW(G02) +Z
+Z
Work-
piece CW(G02)
+Z
+X
CCW(G03)
+X Turret
(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) Rotation direction :Clockwise (G02) or counterclockwise (G03)
(b) Circular end point coordinates:Given by addresses X, Z, U, W
(c) Circular center coordinates :Given by addresses I, K (incremental value commands)
(d) Feedrate :Given by address F
(4) A program error results when I, K or R is not commanded.
Consideration must be given to the sign for I and K since I is the distance in the X-axis direction
to the arc center as seen from the start point and K is the distance in the Z-axis direction.
(5) No T commands can be issued in the G2/G3 modal status.
A program error (P151) results if a T command is issued in the G2/G3 modal status.
44
6. Interpolation Functions
6.3 Circular Interpolation
Example of program
X axis
50.0
Workpiece
coordinate 120.0
zero point
20.0
Z axis
70.0 50.0
(Unit: mm)
45
6. Interpolation Functions
6.3 Circular Interpolation
(1) The terms "clockwise" (G02) and "counterclockwise" (G03) used for circular operations are
defined as a case where in a right-hand coordinate system, the negative direction is viewed
from the positive direction of the coordinate axis which is at right angles to the plane in
question.
(2) If all the end point coordinates are omitted or the end point is at the same position as the start
point, commanding the center using I and K is the same as commanding a 360° arc (perfect
circle).
(3) The following occurs when the start and end point radii do not match in a circular command:
(a) Program error (P70) results at the circular start point when error ∆R is greater than the
parameter "#1084 RadErr".
G02Z80.K50. ;
X
Alarm stop
(b) Spiral interpolation in the direction of the commanded end point results when error ∆R is
less than the parameter value.
End
Center point
Start
point Start point radius End point
Z radius ∆R
46
6. Interpolation Functions
6.4 R specification circular interpolation
Along with the conventional circular interpolation commands based on the circular center
coordinate (I, K) designation, these commands can also be issued by directly designating the
circular radius R.
Command format
Detailed description
The circular center is on the bisector line which is perpendicular to the line connecting the start and
end paints of the circular. The point, where the circular with the specified radius whose start point is
the center intersects the perpendicular bisector line, serves as the center coordinates of the
circular command.
If the R sign of the commanded program is plus, the circular is smaller than a semicircular; if it is
minus, the circular is larger than a semicircular.
O2 End point
Center
point
Circular path when R sign is plus
L Center point
Start point r O1
The following condition must be met with an R specification circular interpolation command:
L
≤1
2×r
When L/2 - r > (parameter : #1084 RadErr), an alarm will occur.
Where L is the line from the start point to end point.
If an R specification and I, K specification are given at the same time in the same block, the circular
command with the R specification takes precedence.
In the case of a full-circle command (where the start and end points coincide), an R specification
circular command will be completed immediately even if it is issued and no operation will be
executed. An I, K specification circular command should therefore be used in such a case.
47
6. Interpolation Functions
6.4 R specification circular interpolation
Example of program
(Example 1)
G03 Zz1 Xx1 Rr1 Ff1 ; R specification circular on Z-X plane
(Example 2)
G02 Xx1 Zz1 Ii1 Kk1 Rr1 Ff1 ; R specification circular on X-Z plane
(When the R specification and I, K specification are
contained in the same block, the R specification has
priority in processing.)
48
6. Interpolation Functions
6.5 Plane selection
These commands are used to select the control plane and the plane on which the circular exists.
If the 3 basic axes and the parallel axes corresponding to these basic axes are entered as
parameters, the commands can select the plane composed of any 2 axes which are not parallel
axes. If a rotation axis is entered as a parallel axis, the commands can select the plane containing
the rotation axis.
These commands are used to select:
• The plane for circular interpolation
• The plane for nose R compensation
Command format
I K J
J I K
49
6. Interpolation Functions
6.5 Plane selection
Parameter entry
#1026~1028 #1029~1031
Basic axes and parallel axes can be entered in
base_I, J, K aux_I, J, K
the parameters. The same axis name can be
I X Y entered in duplication, but when it is assigned in
J Y duplication, the plane is determined by plane
K Z selection system (4).
It is not possible to set axes, which have not
Fig. 1 Examples of plane selection been entered, as control axes.
parameter entry
This section describes the plane selection for the parameter entry samples shown in Fig. 1.
(1) Axis addresses assigned in the same block as the plane selection (G17, G18, G19) command
determine which of the basic axes or parallel axes are to be in the actual plane selected.
(Example)
X Z Y
(2) Plane selection is not performed with blocks in which the plane selection G code (G17, G18,
G19) is not assigned.
G18 X_ Z_ ; Z-X plane
Y_ Z_ ; Z-X plane (no plane change)
(3) When the axis addresses are omitted in the block containing the plane selection G codes (G17,
G18, G19), it is assumed that the axis addresses of the 3 basic axes have been assigned.
G18 ; (Z-X plane = G18 XZ ;)
(4) When the basic axes or their parallel axes are duplicated and assigned in the same block as
the plane selection G code (G17, G18, G19), the plane is determined in the order of basic axes,
and then parallel axes.
G18 XYZ ; The Z-X plane is selected.
Therefore, the Y movement is unrelated to the selected plane.
(Note 1) When the "2" in the parameter "#1025 I_plane" is kept ON, the G18 plane is selected
when the power is turned ON or when the system is reset.
50
6. Interpolation Functions
6.6 Thread cutting
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, tapered
thread-cutting, and continuous thread-cutting.
F/E
F/E F/E
Straight thread Scrolled thread Continuous thread
Command format
X axis W
End
point
U/2 α
Start point
δ1
Z δ2
Z axis
51
6. Interpolation Functions
6.6 Thread cutting
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.
(Parameter "#1229 set 01/bit" is set to "1" for precision lead designation.)
(2) The lead in the long axis direction is commanded for the taper thread lead.
U/2
a°
Input unit
D (0.00001mm)
system
Command
F (mm/rev) E (mm/rev) E (ridges/inch)
address
Minimum 1 (= 0.000001), 1 (= 0.0000001),
command
unit (1.=1.000000) (1.=1.0000000)
(Note 1) It is not possible to assign a lead where the feedrate as converted into per-minute feed
exceeds the maximum cutting feedrate.
52
6. Interpolation Functions
6.6 Thread cutting
(3) The constant surface speed control function should not be used for taper thread cutting
commands or scrolled thread cutting commands.
(4) The spindle rotation 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.
Note that this is valid from the time the thread cutting command is executed to the time the axis
moves.
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 feedrate 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 δ1 and δ2 to the required thread length.
(9) The spindle rotation speed is subject to the following restriction:
Maximum feedrate
1≤R≤
Thread lead
Where R ≤ Tolerable speed of encoder (r/min)
R = Spindle rotation 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) Dry run is valid for thread cutting but the feedrate based on dry run is not synchronized with the
spindle rotation.
The dry run signal is checked at the start of thread cutting and any switching during thread
cutting is ignored.
(11) Synchronous feed applies for the thread cutting commands even with an asynchronous feed
command (G94).
(12) Spindle override is invalid and 100% fixed during thread cutting.
(13) When a thread cutting command is programmed during nose R compensation, the
compensation is temporarily canceled and the thread cutting is executed.
(14) When the mode is switched to another automatic mode while G33 is executed, the following
block which does not contain a thread cutting command is first executed and then the
automatic operation stops.
(15) When the mode is switched to the manual mode while G33 is executed, the following block
which does not contain a thread cutting command is first executed and then the automatic
operation stops. In the case of a single block, the following block which does not contain a
thread cutting command (When G33 mode is cancelled) is first executed and then the
automatic operation stops. Note that automatic operation is stopped until the G33 command
axis starts moving.
(16) The thread cutting command waits for the single rotation sync signal of the rotary encoder and
starts movement.
Note that when using two systems, if one system issues a thread cutting command during
ongoing thread cutting by another system, the movement will start without waiting for the
rotary encoder single rotation sync signal. Therefore, carry out synchronization between
systems before issuing a thread cutting command with multiple systems.
(17) The thread cutting start shift angle is not a modal. If there is no Q command with G33, this will
be handled as "Q0".
53
6. Interpolation Functions
6.6 Thread cutting
(18) If a value exceeding 360.000 is commanded with G33 Q, this will be handled as "Q360.000".
(19) G33 cuts one row with one cycle. To cut two rows, change the Q value, and issue the same
command.
Example of program
X axis
20.0
Z axis
90.0
40.0 50.0
(Unit: mm)
54
6. Interpolation Functions
6.6 Thread cutting
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, tapered thread-cutting, and continuous thread-cutting can be performed.
Command format
X axis W
End
point
U/2 X α
Start point
δ1
Z δ2
Z axis
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 or
precision lead length is to be designated can be selected by parameter setting. (The number of
ridges is designated by setting parameter "#1229 set 01/bit 1" to "0".)
(3) The E command value should be set within the lead value range when the lead is converted.
(4) See Section "6.6.1 Constant lead thread cutting" for other details.
55
6. Interpolation Functions
6.6 Thread cutting
Example of program
X axis
20.0
Z axis
90.0
40.0 50.0
(Unit: mm)
G33 G33
G33
56
6. Interpolation Functions
6.6 Thread cutting
Variable lead thread cutting is enabled by a command specifying a lead increment or decrement
amount per turn of the screw.
Command format
Non-lead axis
Lead axis
57
6. Interpolation Functions
6.6 Thread cutting
Detailed description
58
6. Interpolation Functions
6.6 Thread cutting
Precautions
The maximum thread length in the variable lead thread cutting function follows the program format.
The following table shows the maximum thread lengths. A program error (P60) will occur if these
values are exceeded.
59
6. Interpolation Functions
6.6 Thread cutting
Circular thread cutting making the longitudinal direction the lead is possible.
Command format
Ii Kk
G35(G36) Xx/Uu Zz/Ww { } Ff/Ee Qq ;
Rr
G35 Clockwise (CW)
G36 Counterclockwise (CCW)
Xx/Uu Circular end point coordinate, X axis (absolute value of workpiece
coordinate system for X, incremental value from present position for U)
Zz/Ww Circular end point coordinate, Z axis (absolute value of workpiece
coordinate system for Z, incremental value from present position for W)
Ii Circular center, X axis (incremental value of circular center looking
from start point)
Kk Circular center, Z axis (incremental value of circular center looking
from start point)
Rr Arc radius
Ff/Ee Longitudinal (axis with largest movement amount) direction lead
(Ff.. normal lead thread cutting/Ee .. precision lead thread, inch
thread)
Qq Thread cutting start shift angle, 0.000 to 360.000°
X axis
Z W
End point
U/2
Start point
X Z axis
R l
Center
K
F/E
C ircular thread
60
6. Interpolation Functions
6.6 Thread cutting
Detailed description
(1) A program error (P33) will occur if the start point and end point match or if the arc center angle
is more than 180°.
(2) The following will occur if the start point radius and end point radius do not match.
• A program error (P70) will occur if the error ∆R is more than parameter "#1084 RadErr" (arc
error).
• Interpolation will start from the arc center where the start point radius and end point radius
match if the error ∆R is less than parameter "#1084 RadErr".
Start point
C enter radius ∆R
End point radius
X X
Center Z Center Z
61
6. Interpolation Functions
6.6 Thread cutting
(7) When the movement amount is equal, the horizontal direction in the selected plane will be the
long axis.
Plane selection Long axis when movement amount is equal
G17 (XY plane) I axis
G18 (ZX plane) K axis
G19 (YZ plane) J axis
(8) G36 is used to command two functions, automatic tool length measurement and circular
thread cutting (CCW). Which function is selected follows parameter "#1238 set10/bit0" (Arc
thread cutting).
When #1238 set10/bit0 is set to 0
G code Function
G35 Circular thread cutting clockwise (CW)
G36 Automatic tool length measurement X
(9) If the lead axis and non-lead axis cutting feedrate is faster than the clamp speed when thread
cutting is started, the "M01 operation error 107" will occur, and thread cutting will not start.
(10) During thread cutting, the cutting feedrate may exceed the clamp speed to guarantee the lead.
In this case, the error "M01 operation error 107" will appear, but thread cutting will continue.
However, if the "cutting feedrate > clamp speed" is established during circular thread cutting
commanded in the second or following block of continuous thread cutting, automatic operation
will be stopped just before the circular thread cutting command in the 2nd block, and the error
"M01 operation error 107" will appear.
(11) Continuous thread cutting is possible by commanding the thread cutting command in
succession. This allows special threads in which the leads or shapes change midway to be cut.
The continuous thread cutting command can be issued in the order of arc → arc, arc →
constant lead, and constant lead → arc.
(12) Normally, an illegal lead will be cut at the start and end of the threads, due to a delay in the
servo system.
Thus, command the required thread length with the illegal thread length added to the start and
end.
As another method, command the required thread length as a circular thread (G35/G36), and
then command the illegal lead length before and after that command (start and end of thread
cutting) as a constant lead thread (G33). (Continuous thread cutting in order of constant lead
→ arc → constant lead.)
62
6. Interpolation Functions
6.6 Thread cutting
(1) A program error (P113) will occur if the G35/G36 command is issued to an axis not within the
selected plane.
(2) The thread cutting speed is not synchronized with the spindle rotation when dry run is valid.
(The thread pitch is not guaranteed.)
(3) If the dry run switch is turned ON during thread cutting, the dry run signal will be ignored.
(4) If the FEEDHOLD switch is pressed during thread cutting, the block will stop at the end point of
the block following that in which thread cutting is completed (when the thread cutting mode is
exited).
(5) Circular thread cutting will function normally even during mirror image.
(6) A program error (P201) will occur if the G35/G36 circular thread cutting command is issued in
the finish shape program of the fixed cycle for compound lathes.
(7) A program error (P385) will occur if thread cutting corner rounding or corner chamfering is
commanded during circular thread cutting or the next block.
(8) Geometric and circular thread cutting cannot be commanded simultaneously. If commanded
simultaneously, a program error (P395) or program error (P70) will occur.
(9) If thread cutting is commanded during nose R compensation, nose R compensation will be
temporarily canceled, and thread cutting will be executed.
Precautions
(1) Do not issue the circular thread cutting command during constant surface speed control. The
thread will not be cut correctly because the spindle rotation speed will change during thread
cutting.
(2) Spindle override does not function during thread cutting.
(3) A program error (P39) will occur if G35/G36 is commanded when the additional specifications
are not provided.
63
6. Interpolation Functions
6.7 Helical interpolation
6.7 Helical interpolation; G17, G18, G19, and G02, G03 (Only MAGIC64)
Function and purpose
This function moves the tool in a helical shape by linearly interpolating another linear axis
simultaneously with the circular interpolation.
Command format
(Note 1) In this manual, the following setting descriptions are used: I axis: X, J axis: Y, K axis: Z
64
6. Interpolation Functions
6.7 Helical interpolation
Detailed description
The following type of movement will take place when the following type of command is issued.
G17 G02 Xx Yy Zz Ii Jj Ff ;
End point
X j
i
Start point
The left drawing shows the process as an exploded view, and the right drawing shows the arc
plane from directly above.
65
6. Interpolation Functions
6.7 Helical interpolation
Example of program
(Example)
G17 G02 X100. Y100. Z100. I-100. J100. F120 ;
End point
X J100.
I-100.
Start point
The left drawing shows the process as an exploded view, and the right drawing shows the arc
plane from directly above.
At the start of the block, the axis centers at the point –100mm in the X axis direction and
100mm in the Y axis direction from the workpiece coordinates (start point), and starts cutting at
the feedrate 120mm/min while rotating.
(1) When executing helical interpolation, command another linear axis (several axis can be
commanded) that does not contain the circular interpolation command and arc axis.
(2) Up to four axes can be commanded simultaneously. (Up to two linear axis can be commanded
simultaneously in addition to the arc axis.)
(3) A command exceeding one rotation cannot be issued. (The circular interpolation command
specifications are followed.)
(4) Command the feedrate as the composite speed for each axis.
(5) With helical interpolation, the axis that configures the plane is the circular interpolation axis,
and the other axes are the linear interpolation axes.
(6) Drawing with the graphic check function is not possible.
66
6. Interpolation Functions
6.8 Milling interpolation
Y (Hypothetical axis)
A G12.1 command is issued to perform milling and a G13.1 command is issued to cancel milling
and returns to normal turning.
Command format
67
6. Interpolation Functions
6.8 Milling interpolation
Command range
Address Meaning of address Remarks
(unit)
D Selection of milling 0: Y axis • If there is no D command, the
hypothetical axis 1: Rotation axis milling hypothetical axis name
name name will follow parameter (#1517
mill_C).
• If only the D command is issued,
it will be handled as D0.
• A program error (P35) will occur
if a value other than 0 or 1 is
issued as the numerical
command after the D command.
E Designation of G12.1 command • If there is no E command, the
constant surface system rotation axis constant surface speed control
speed control axis command address axis will follow parameter (#1516
mill_ax).
• A program error (P33) will occur
if only an E command is issued.
• A program error (P33) will occur
if an axis address is not
commanded after "E=".
• A program error (P300) will occur
if an axis that does not exist in
the command system is
designated as the rotation axis
name.
• A program error (P32) will occur
if a value is commanded for the
rotation axis name.
• To issue a program command
after the "E= rotation axis name",
delimit the "E= rotation axis
name" and the other command
with a comma (,). A program
error (P33) will occur if there is
no comma.
The following G codes are used to select milling and set the conditions.
G code Function Remarks
G12.1 Milling mode ON Default is G13.1.
G13.1 Milling mode OFF
G16 Selection of Y-Z cylindrical plane One of G17, G16, and G19 can be
G17 Selection of X-Y plane defined as the default (when G12.1
is issued) by the parameter.
G19 Selection of Y-Z plane
G41 Tool radius compensation left Default is G40.
G42 Tool radius compensation right
68
6. Interpolation Functions
6.8 Milling interpolation
Machining mode
Detailed description
(1) The G12.1 and G13.1 commands are used to switch between the turning (G13.1) and milling
(G12.1) modes.
(2) These commands are modal and the initial mode effective at power ON is the turning mode.
(3) The following requirements must be satisfied before a G12.1 command is issued. Otherwise, a
program error (P485) results.
(a) Nose R compensation has been canceled.
(b) Constant surface speed control has been canceled.
(4) If one of the command axes in the milling mode has not completed reference point return, a
program error (P484) results.
(5) The G12.1 command automatically cancels an asynchronous mode F command. Therefore,
specify an F value in milling mode.
(Note1) If G12.1 is executed, while no movement command has been given, after nose R
compensation is canceled by an independent G40 command, nose R compensation is
canceled in the G12.1 block.
(Note2) If the milling interpolation command is issued during the mirror image, a program error
(P486) results.
(Note3) When the G12.1 command is issued, the deceleration check is executed.
(Note 4) If a command other than a plane section is issued during the G12.1 command, a program
error (P33) will occur.
69
6. Interpolation Functions
6.8 Milling interpolation
Detailed description
(1) The two orthogonal linear axes (X axis and Z axis) and a rotation axis are used as control axes
for milling interpolation. The rotation axis is selected with the E command. The axis designated
with the parameter will be selected if there is no E command.
(2) Three orthogonal linear axes are used as the command axes for milling interpolation. They are
the X, Z, and a hypothetical axis.
The hypothetical axis is a hypothetical axis for interpolation which intersects the X and Z axes
at right angles. The hypothetical axis name is the control rotation axis name selected with Y or
in (1) with the D command. The axis name designated with the parameter will be selected if
there is no D command.
(Hypothetical axis)
(3) Command axis X for milling is not just the interpolated one of control axis X. It is handled as X
in the milling coordinate system when a G12. 1 command is issued.
(4) Whether the position in the milling coordinate system is a diameter command or radius
command is selected with the following parameter.
Parameter Details
0: Radius command for all axes
#8111 Milling Radius
1: Follows parameter (#1019 dia) for each axis
(Example 1)
(Program 1)
:
20 :
:
N1 G0 X40 ;
N2 G12.1 ;
N3
(or G12.1 E=C, D0 ;)
10 N3 G1 X10. Y10. F10. ;
:
:
:
Hypothetical axis 10 0
(Unit: mm)
70
6. Interpolation Functions
6.8 Milling interpolation
X = Mill _ X X
Mill _ X
(a) (b)
Program path
Program path
Hypothetical
axis
Hypothetical
axis
X X
(d) (c)
Hypothetical Program path
axis Mill _ X
Mill _ X
Program path
Hypothetical
10 10 axis
(Unit: mm)
Current values
X 28.284 (diameter value display)
C 45.000
(5) Milling interpolation is also available for a two-control-axis system consisting of one linear axis
and one rotation axis. The X axis must be used as the linear axis. The rotation and milling
hypothetical axes are selected as shown above. In milling mode, the G17 plane must be
selected.
(6) The table below lists the incremental axis names of the hypothetical axis used in milling mode.
These axis commands handle radius commands only.
Selected hypothetical
Absolute axis name Incremental axis name
axis
Y axis Y V
Rotation axis (C) Rotation axis name (C) Rotation axis incremental name (H)
(The following description uses Y for the hypothetical axis name and C for the rotation axis
name.)
71
6. Interpolation Functions
6.8 Milling interpolation
A plane selection command decides the plane on which the tool moves for circular interpolation or
tool radius compensation in milling mode.
Command format
G17/G19 ;
G16 C_ ;
G16 Y-Z cylindrical plane
C_ Cylindrical radius value
G17 X-Y plane
G19 Y-Z plane
(1) These G commands for plane selection are modal. The G17 plane is automatically selected as
the default each time the turning mode is switched to the milling mode by a G12.1 command.
When the milling mode is switched back to the turning mode by a G13.1 command, the plane
that was selected before the milling mode is entered is restored.
(2) G16 or G19 can also be defined as the default effective when a G12.1 command is issued. A
parameter is used for this.
(3) The three planes selected are explained below.
(a) G16
G16 indicates the plane obtained by developing a cylinder with its bottom radius X. This is
useful to process the side face of a workpiece.
72
6. Interpolation Functions
6.8 Milling interpolation
(b) G17
G17 is an X-Y plane in an XYZ orthogonal coordinate system. This is useful to process the
end face of a workpiece.
X-Y plane
(c) G19
G19 is a Y-Z plane in an XYZ orthogonal coordinate system.
Z
Center of workpiece
Y-Z plane
73
6. Interpolation Functions
6.8 Milling interpolation
The coordinate system for the milling mode is set according to the selected plane each time the
turning mode (G13.1) is switched to the milling mode by a G12.1 command.
(1) For the X and Z axes, the current positions are set as radius value on the coordinate value.
(2) The Y axis is decided as the axis which intersects the X and Z axes at right angles. Y=0 is
defined in a G12.1 command.
X
Tool
During the milling mode on the G17 plane, the X axis is operated in the area (positive or
negative side) that has existed before issuing the G12.1 command. When you want to control
the X axis in the positive side during the milling mode, moving the X axis to the positive area
(including 0) is required before issuing the G12.1 command. When you want to control the X
axis in the negative side during the milling mode, moving the X axis to the negative area (not
including 0) is required before issuing the G12.1 command.
G16 plane
(1) To select a G16 plane, the radius value of a cylinder is specified by "G16 C_ ;". If no radius
value is specified, the current X axis value is used as the radius value to define a cylinder. If no
radius value can be defined, a program error (P485) occurs.
(2) As in normal turning mode, the X axis indicates the distance from the center line of the
workpiece.
(3) G16 (Y-Z cylindrical plane) is actually the side of a cylinder.
(4) The X axis indicates the distance from the center line of the workpiece. The Y axis indicates
the circumference with the radius value of the bottom of a cylinder defined by a G16 command.
74
6. Interpolation Functions
6.8 Milling interpolation
(5) The zero point of the Y axis is the position where a G12.1 command is issued.
(Example)
: : : :
: : : :
G12.1 G16 C50. ; G12.1 ; G12.1 E=e,Dd ; G12.1 E=e,Dd ;
or or or
: G16 C50. ; G16 C50. ; G16 C50. ;
: : : :
: : : :
Z
r
75
6. Interpolation Functions
6.8 Milling interpolation
Classifi- Classifi-
G code Function G code Function
cation cation
∗ G00 Positioning G65 Macro call
∗ G01 Linear interpolation G66 Macro modal call A
∗ G02 Circular interpolation (CW) G66.1 Macro modal call B
∗ G03 Circular interpolation (CCW) G67 Macro modal call cancel
G04 Dwell
G09 Exact stop check G80 Hole drilling cycle cancel
G83 Deep hole drilling cycle (Z axis)
G13.1 Turning mode G84 Tap cycle (Z axis)
G85 Boring cycle (Z axis)
G87 Deep hole drilling cycle (X axis)
G16 Y-Z cylindrical plane selection G88 Tap cycle (X axis)
G17 X-Y plane selection G89 Boring cycle (X axis)
G90 Absolute value command
G19 Y-Z plane selection G91 Incremental value command
(1) If an invalid G code is issued in milling mode, a program error (P481) occurs.
If the milling interpolation is commanded in milling mode, a program error (P481) occurs.
(2) In milling mode, all movement commands are commanded with the coordinate system
determined by the selected machining plane. The rotation axis thus cannot be moved by a
direct command in milling mode. To perform milling at a specific position of a workpiece,
therefore, positioning must have been made in turning mode.
(Example)
:
:
G0 X100. C180.; ⇒ Positioning before milling
G12.1; (or G12.1 E=C,D0;)
G0 X50.;
:
:
(3) If a command for an axis other than X, Z, and Y (rotation axis) is issued in milling mode, a
program error (P481) occurs.
76
6. Interpolation Functions
6.8 Milling interpolation
(4) The G84, G88 synchronous tapping cycles cannot be used during the milling mode.
(5) In milling mode, the Y axis can be specified by only four G codes: G00, G01, G02, and G03.
These are called the milling interpolation commands.
Positioning (G00)
If a G00 command is issued in milling mode, positioning is made to the specified point on the
selected plane at a rapid traverse rate.
G00 X/U__ Y/V__ Z/W__ ;
If a G01 command is issued in milling mode, linear interpolation is made to the specified point on
the selected plane at the speed specified by an F speed.
S z
y Z
X
Y E
Development
S z
77
6. Interpolation Functions
6.8 Milling interpolation
E
A x
z
S E
y
Z
S z
y Z
A
Y E
78
6. Interpolation Functions
6.8 Milling interpolation
If a G02 or G03 command is issued in milling mode, circular interpolation is performed at the
specified speed on the selected plane.
(A, Q)
E X
S
X
Development
(A, Q) k
E
j
S
79
6. Interpolation Functions
6.8 Milling interpolation
(A, Q) Q
i
S
j
E Z
A
Q
Z
A
j E
Y k S
80
6. Interpolation Functions
6.8 Milling interpolation
Detailed description
(1) A G13.1 command is used to cancel the milling mode and return to the turning mode.
(2) The G13.1 command is effective if the following requirement is met. If not, a program error
(P485) occurs.
(a) Tool radius compensation has been canceled.
(3) The G13.1 command restores the plane selected before the preceding G12.1 command was
issued.
(4) The G13.1 command restores the mode (synchronous or asynchronous) and the F value (if in
asynchronous mode) selected before the preceding G12.1 command was issued.
(Note 1) If G13.1 is executed, while no movement command has been given, after cancellation by
an independent G40 command, tool radius compensation is canceled in the G13.1 block.
(Note 2) When G13.1 command is issued, the deceleration check is executed.
(Note 3) If another command is issued during the G13.1 command, a program error will occur.
An asynchronous feed mode (G94 command) can use F6.3 digits to specify the feedrate per
minute in units of 0.001mm/min. The specifiable range is 0.001 to 999999.999mm/min. If the
effective speed exceeds the cutting feed clamp speed, it is clamped by that clamp speed.
(Note 1) Whenever the turning mode is switched to the milling mode by a G12.1 command, the F
command modal value is canceled. After mode change, therefore, the feedrate must be
set by an F command.
(Note 2) A G12.1 command forces the mode to shift to the asynchronous mode.
(Note 3) When the milling mode is canceled by a G13.1 command, both the feed mode and F
command modal value return to the original state before the preceding G12.1 command
was issued.
81
6. Interpolation Functions
6.8 Milling interpolation
82
6. Interpolation Functions
6.8 Milling interpolation
(1) In milling mode, tool compensation is performed by adding the tool length offset amount
specified on the cutting coordinates converted from the milling coordinate system.
X : Tool position
Tool position
X
Tool length offset X
Y
Y
Milling coordinate system
Actual tool position
83
6. Interpolation Functions
6.8 Milling interpolation
(2) As in (1) on previous page, if the offset amount is different from the actual one, the shape is not
corrected normally.
(a) If the offset amount is larger than tool length:
Example: The actual tool length is 15.0 when tool length X = 20.0
Milling command
Actual shape
Tool movement
84
6. Interpolation Functions
6.8 Milling interpolation
Actual
shape
Milling command
Tool movement
The workpiece shape can be compensated in the direction of the vector by the radius amount of the
tool specified by a G command (G40 to G42) and selected compensation number.
Command format
G40 Xx Yy ; Tool radius compensation cancel
G41 Xx Yy ; Tool radius compensation (left)
G42 Xx Yy ; Tool radius compensation (right)
(1) A tool radius compensation command must be issued after the milling mode is entered.
The tool radius compensation command must be canceled before the turning mode is
restored.
(2) A tool compensation number must be specified before the milling mode is entered (before a
G12. 1 command is issued).
A T command in milling mode causes a program error (P485).
(3) Tool radius compensation is performed on the selected plane.
G17 plane ... XY axes
G19 plane
G16 plane YZ axes
85
6. Interpolation Functions
6.8 Milling interpolation
In the compensation cancel mode, the offset vector is 0 and the tool center path matches the
programmed path. A program that contains tool radius compensation must end after the
compensation is canceled.
Tool radius compensation starts if all the following requirements are met in compensation cancel
mode:
Whether in continuous or single block operation, compensation always starts after reading three
movement command blocks, or if three movement command blocks are not found, up to five
continuous blocks.
Similarly, in compensation mode, up to five blocks are pre-read for compensation operation.
Starting to pre-read
five blocks
G01_; G02_;
There are two ways of starting tool radius compensation: type A and type B.
The type depends on selection of the control parameter "#1229 set01/bit2".
This type is used in common with the compensation cancel type.
In the following explanatory figure, "S" denotes the single block stop point.
86
6. Interpolation Functions
6.8 Milling interpolation
θ Program path
θ
r = Compensation amount
r
Program path
Tool center path
s s
G42
G42
Tool center
path
(2) Machining an outside corner (obtuse angle) (Type A or B can be selected by parameter)
[90° ≤ θ < 180°]
θ θ
Program path
G41
G41 θ θ
Start point
Start point Program path
Center of circular
87
6. Interpolation Functions
6.8 Milling interpolation
(3) Machining an outside corner (acute angle) (Type A or B can be selected by parameter)
[θ < 90°]
Center of
s circular
Tool center path Tool center path
r
s
Program path
θ Program path
r
G41
θ
G41
Start point
Start point
s Center of
circular
Tool center path
r
Tool center path
s
θ Program path Program path
r r
θ
r
G41
Start point
G41
Start point
88
6. Interpolation Functions
6.8 Milling interpolation
Compensation is valid both for positioning and for interpolation commands such as circular and
linear interpolation.
Even if the same compensation command (G41 or G42) is specified in the compensation mode,
the command will be ignored.
If four or more blocks not accompanying movement are assigned continuously in the compensation
mode, over-cutting or under-cutting will result.
Linear → Linear (90° ≤ θ < 180°) Linear → Linear (0° < θ < 90°)
Linear → Circular (90° ≤ θ < 180°) Linear → Circular (0° < θ < 90°)
Center of circular
Center of circular
Circular→ Linear (90° ≤ θ < 180°) Circular → Linear (0° < θ < 90°)
Center of circular
Program path
Program path
θ
θ
r
r
r r Center of circular
Tool center path Tool center path
s
Intersection
89
6. Interpolation Functions
6.8 Milling interpolation
Circular → Circular (90° ≤ θ < 180°) Circular → Circular (0° < θ < 90°)
Center of circular
Program path
θ Program path
r θ
r
r
Center of circular Tool center path r
s
Intersection
θ
θ
Program path Program path
r
r s s
Tool center path r Tool center path
Intersection
Center of circular
90
6. Interpolation Functions
6.8 Milling interpolation
r
θ
Center of circular
Program path
s
Tool center path
Center of circular Center of circular
Inter-
section
Program path
Hypothetical circle
Tool center path
s
r
R
Center of circular
r Center of circular A
r
Program path
A B
91
6. Interpolation Functions
6.8 Milling interpolation
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 other than a circular
command. If an attempt is made to cancel the compensation by a circular command, program error
(P151) results.
θ θ
Program path
r = Compensation amount r
Tool center path
s s Program path
92
6. Interpolation Functions
6.8 Milling interpolation
(2) Machining an outside corner (obtuse angle) (Type A or B can be selected by parameter)
[90° ≤ θ < 180°]
s s
Tool center path
r = Compensation amount r
Tool center path
G40 G40
Program path
θ θ
End point
End point Center of circular Program path
93
6. Interpolation Functions
6.8 Milling interpolation
(3) Machining an outside corner (acute angle) (Type A or B elm be selected by parameter)
[θ < 90°]
Center of
circular
s
Tool center path
Tool center path
r
s Program path
θ Program path
r
G40
θ
G40
End point
End point
Center of
circular
Tool center path
r Tool center path
s
θ Program path
r Program path
r
s
θ
G40 r
End point
G40
End point
94
6. Interpolation Functions
6.8 Milling interpolation
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.
Linear → Linear
Linear ↔ Circular
r
r
Program path
r r
95
6. Interpolation Functions
6.8 Milling interpolation
Circular → Circular
r
Program path G41 G42
G41
Center of circular
G41 G41 G42
Linear return
G41
Tool center path
G42
r
Program path
G0 block
If there is a block containing a G0 command, the preceding block does not perform intersection
operation, the tool comes to the position vertical to the end point, and the G0 block temporarily
loses the offset vector. Compensation is not canceled, but instead the tool moves from the
intersection vector directly to a point without vector, that is, to the point specified by the program.
The offset vector is regenerated by a block containing a G1 command.
:
:
N10 G12.1; N13
N11 G42; N12
N12 G1 Y100..F100; N14 N17
N13 X–100.;
N14 G0 Y–100.; X
N15 G1 X100.; N16
N15
N16 Y0.;
N17 G40 G0 X200.;
:
:
(Unit: mm)
96
6. Interpolation Functions
6.8 Milling interpolation
N6 N8
Block N7 is
N6 executed here.
97
6. Interpolation Functions
6.8 Milling interpolation
: N10 : N20
N10 G1 X__ Y__; N20 G1 X__ Y__;
N11 G40; N11 N21 G0 X__ Y__; N21
N12 G0 X__ Y__; N22 G40;
N12 N22
Compensation is canceled by a G0
Compensation is canceled by a movement command before G40.
command following G40.
(Note) In program (a), if G13.1 is commanded after G40 without a movement command,
cancellation is done at block G13.1.
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 match, the tool moves in order to turn the corner although this movement
belongs to the next block. Consequently, operation in the single block mode will execute the
previous block + corner movement as a single block and the remaining joining movement + next
block will be executed as a single block in the following operation.
N1
Program path
N2
θ
r
Tool center path
r Center of circular
This movement and feedrate
are under block N2.
98
6. Interpolation Functions
6.8 Milling interpolation
A tool, whose tool radius has been compensated under the tool radius compensation function by
the usual 2-block pre-reading, may sometimes cut into the workpiece. This is known as
interference. An interference check is the function which prevents such interference from
occurring.
The types of interference check are indicated below, and each can be selected for use by
parameter.
Function Parameter Operation
Interference check Rad compen intrf byp : OFF Operation stops with a program error
alarm function Interference check invalid signal before execution of the block causing
OFF cutting.
Interference check Rad compen intrf byp : ON The tool path is changed to prevent
avoiding function Interference check invalid signal cutting from occurring.
OFF
(Example)
N3 X120. Y0 ;
N1 N3
N2
Cutting by N2
Cutting by N2
99
6. Interpolation Functions
6.8 Milling interpolation
(4) (1)’
N1
N2
As a result of the above processing, vectors (1) (2) (3)’ , and (4)’ remain as valid, and operation
is done with the path connecting these vectors as the interference avoidance path.
100
6. Interpolation Functions
6.8 Milling interpolation
Detailed description
r Program path
N1 N3
Vectors intersect here.
N2
Program path
N6
N1
N5
N2 No interference check available
N3
N4
N1 N3
N2
101
6. Interpolation Functions
6.8 Milling interpolation
Program path
N2 N3
N1
Program path
N2 N3
N1 r Center of circular
Avoidance
N3 vector
N2
Avoidance vector 1
Tool center path 2 Avoidance vector 2 N2
102
6. Interpolation Functions
6.8 Milling interpolation
Program path
In the figure below, the tool moves in the opposite direction at N2. After N1 is executed,
program error (P153) occurs.
1234
N1 N4
N2 N3
N1
1
N2
23
N3
4
103
6. Interpolation Functions
6.8 Milling interpolation
N4
3 4
N3
Alarm stop
2 N2
1
N1
(ii) In the figure, the tool moves in the opposite direction at N2.
This causes program error (P153) after N1 execution.
1234
N1 N4
N2 N3
104
6. Interpolation Functions
6.8 Milling interpolation
Alarm stop
N1
N2
N4
N3
Alarm stop
N1
N2
N4
N3
Angle of intersection
105
6. Interpolation Functions
6.8 Milling interpolation
(c) The program advance direction and the advance direction after compensation are
reversed.
An interference may be assumed when no interference occurs actually if grooves running
in parallel with narrower width between the two than the tool diameter or a
bottom-widened groove is programmed.
Stop
Stop
106
6. Interpolation Functions
6.9 Circular interpolation
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.
Hypothetical C
X
r
C
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.
0°
Develop-
ment 2πr
360°
107
6. Interpolation Functions
6.9 Circular interpolation
Command format
(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
108
6. Interpolation Functions
6.9 Circular interpolation
109
6. Interpolation Functions
6.9 Circular interpolation
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.
Cylindrical G19
coordinate system
110
6. Interpolation Functions
6.9 Circular interpolation
111
6. Interpolation Functions
6.9 Circular interpolation
112
6. Interpolation Functions
6.9 Circular interpolation
(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
G22/23 Chuck barrier ON/OFF
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 (P481) will occur if the cylindrical interpolation or the pole coordinate
interpolation is commanded during the cylindrical interpolation mode.
113
6. Interpolation Functions
6.9 Circular interpolation
Example of program
<Program>
<Parameter>
N01 G28XZC; #1029 aux_I
N02 T0202; #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
114
6. Interpolation Functions
6.10 Pole coordinate interpolation
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.
115
6. Interpolation Functions
6.10 Pole coordinate interpolation
Command format
(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
116
6. Interpolation Functions
6.10 Pole coordinate interpolation
117
6. Interpolation Functions
6.10 Pole coordinate interpolation
118
6. Interpolation Functions
6.10 Pole coordinate interpolation
(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)
119
6. Interpolation Functions
6.10 Pole coordinate interpolation
(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
G22/23 Chuck barrier ON/OFF
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 (P481) will occur if the cylindrical interpolation or the pole coordinate
interpolation is commanded during the pole coordinate interpolation mode.
120
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
N04
N01
N03 N02
X axis
N10 N11
N07
N08 N09
<Program>
:
:
N00 T0101;
:
:
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 ;
121
6. Interpolation Functions
6.11 Exponential function interpolation
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.
Z axis (G00)
(G01)
(G01)
(G02.3/G03.3)
A axis
(Rotation axis)
J1 J2 J3
X axis
(Linear axis)
X=B (eCA-1)
X axis
{B, C... constant}
(Linear axis)
A axis
(Rotation axis)
122
6. Interpolation Functions
6.11 Exponential function interpolation
Command format
(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.
123
6. Interpolation Functions
6.11 Exponential function interpolation
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
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.
124
6. Interpolation Functions
6.11 Exponential function interpolation
Machining example
Z axis
i1
z1
z2 p1
z0 A axis
X axis
x0 x2 j1 x1
r2 r1
125
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).
r1 r1 X r1 X r1
X X
A A A A
Operation
X X X X
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;
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
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;
126
6. Interpolation Functions
6.11 Exponential function interpolation
(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.
127
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 speed range that can be set is
1mm/min to 1,000,000mm/min when the input setting unit is 1µm. Note that the upper limit speed is
limited by the machine specification.
Refer to the specifications manual of the machine for the rapid traverse rate settings.
Two paths are available during 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 by parameter "#1086 G0Intp".
The positioning time is the same in each case.
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
0.001 ~
mm/min 0.001 ~ 1000000.000 mm/min
1000000.000
0.0001 ~
inch/min 0.0001 ~ 39370.0787inch/min
39370.0787
0.001 ~
°/min 0.001 ~ 1000000.000°/min
1000000.000
(Note 1) A program error (P62) results when there is no F command in the first cutting command
(G01, G02, G03, G33, G34) after the power has been turned 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.
128
7. Feed Functions
7.3 F1-digit feed
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.
(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")
129
7. Feed Functions
7.3 F1-digit feed
(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.
(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.
130
7. Feed Functions
7.4 Synchronous/asynchronous feed
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.
Command format
G94;
G95;
G94 Per-minute feed (mm/min) (asynchronous feed)
G95 Per-rotation feed (mm/rev) (synchronous feed)
The G95 command is a modal command and so it is valid until the G94 command (per-minute feed)
is next assigned.
Metric input
Input
command unit B (0.001mm) C (0.0001mm)
system
Command
Per-minute feed Per-rotation feed Per-minute feed Per-rotation feed
mode
Command
F (mm/min) F (mm/rev) F (mm/min) F (mm/rev)
address
Minimum 1 (= 1.000), 1 (= 0.0001), 1 (= 1.0000), 1 (= 0.00001),
command unit (1. = 1.000) (1. = 1.0000) (1. = 1.0000) (1. = 1.00000)
Command 0.001 0.0001 0.0001 0.00001
range ~1000000.000 ~999.9999 ~100000.0000 ~99.99999
Input
command unit D (0.00001mm)
system
Command
Per-minute feed Per-rotation feed
mode
Command
F (mm/min) F (mm/rev)
address
Minimum 1 (= 1.00000), 1 (= 0.000001),
command unit (1. = 1.00000) (1. = 1.000000)
Command 0.0001 0.000001
range ~100000.00000 ~99.999999
Inch input
Input
command unit B (0.0001inch) C (0.00001inch)
system
Command
Per-minute feed Per-rotation feed Feed per minute Per-rotation feed
mode
Command
F (inch/min) E (inch/rev) F (inch/min) E (inch/rev)
address
Minimum 1 (= 0.01), 1 (= 0.000001), 1 (= 0.01), 1 (= 0.0000001),
command unit (1. = 1.0000) (1. = 1.000000) (1. = 1.00000) (1. = 1.0000000)
Command 0.0001 0.000001 0.00001 0.0000001
range ~ 39370.0787 ~ 99.999999 ~ 3937.00787 ~ 9.9999999
131
7. Feed Functions
7.4 Synchronous/asynchronous feed
(2) The effective speed (actual movement speed of machine) under per-rotation feed conditions is
given in the following formula (Formula 1).
FC = F × N × OVR ........... (Formula 1)
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.
(Note 1) The effective rate (mm/min or inch/min), which is produced by converting the
commanded speed, the spindle rotation 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 rotation speed is zero when synchronous feed is executed, operation alarm
"105" results.
(Note 4) During machine lock processing, the rate will be 1,000,000 mm/min (or 39,370 inch/min,
1,000,000 °/min) regardless of the commanded speed and spindle rotation speed.
(Note 5) Under dry run conditions, asynchronous speed applies and movement results at the
externally set speed (mm/min or inch/min).
(Note 6) Whether asynchronous feed (G94) or synchronous feed (G95) is to be established when
the power is turned ON or when M02 or M30 is executed can be selected by setting
parameter "#1074 I_Sync".
132
7. Feed Functions
7.5 Feedrate designation and effects on control axes
It has already been mentioned that a machine has a number of control axes. These control axes
can be divided into linear axes which control linear movement and rotation 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 rotation
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.
Even when only one machine axis is to be controlled or there are two or more axes to be controlled
simultaneously, the feedrate 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 Z) are to be controlled
Z
Feedrate for Z axis = f ×
2 2
Speed in this direction is "f" x +z
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.
133
7. Feed Functions
7.5 Feedrate designation and effects on control axes
(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
x
Linear speed is "f"
P1
z i Z
(Example) When the feedrate is designated as "f" and the linear axes (X and Z) are to be
controlled using the circular interpolation function
In this case, the feedrate 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 rotation axes are to be controlled, the designated feedrate functions as the rotation speed of
the rotation 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 rotation axis (C) is to be controlled ("f" units
= °/min)
In this case, in order to make the cutting feed (linear speed) in the tool advance direction "fc":
π•r
fc = f ×
180
Therefore, the feedrate to be designated in the program must be:
180
f = fc ×
π•r
134
7. Feed Functions
7.5 Feedrate designation and effects on control axes
When linear and rotation axes are to be controlled at the same time
The NC unit proceeds in exactly the same way whether linear or rotation axes are to be controlled.
When a rotation axis is to be controlled, the numerical value assigned by the coordinate words (C, H)
is the angle and the numerical values assignees by the feedrate (F) are all handled as linear speeds.
In other words, 1° of the rotation axis is treated as being equivalent to 1mm of the linear axis.
Consequently, when both linear and rotation axes are to be controlled simultaneously, the
components for each axis of the numerical values assigned by F will be the same as for section (1)
above (applying when linear axes are to be controlled). However, although in this case both the
size and direction of the speed components based on linear axis control do not vary, the direction
of the speed components based on rotation 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 with vary along with the tool movement.
(Example) When the feedrate is designated as "f" and linear (X) and rotation (C) axes are to be
controlled simultaneously
If the X-axis incremental command value is "x" and the C-axis incremental command
value is "c":
135
7. Feed Functions
7.5 Feedrate designation and effects on control axes
X-axis feedrate (linear speed) "fx" and C-axis feedrate (angular speed) "ω" are expressed as:
x c
fx = f × ........ (1) ω=f× ........ (2)
2
x +c 2
x + c2
2
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 formulae (1), (2), (3), (4) and (5) is:
ft = ftx2 + fty2
π π π×r×c 2
x2 − x × c × rsin ( θ) +( )
=f× 180 90 180
x2 + c2
........... (6)
Consequently, feedrate "f" designated by the program must be as follows:
x2 + c2
f = ft ×
π π
x2 − x × c × rsin ( θ) + ( π × r × c )2 ........... (7)
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.
136
7. Feed Functions
7.6 Thread cutting mode
F7-digit or E8-digit commands for thread leads can be issued for the thread cutting mode (G33,
G34, G76, G78 commands).
The thread Iead command range is 0.0001 to 999.9999mm/rev (F7 digits) or 0.0001 to 999.99999
mm/rev (E8 digits) (with input unit of µm).
Input unit
D (0.00001mm)
system
Command
F (mm/rev) E (mm/rev) E (ridges/inch)
address
Minimum 1 (= 0.000001), 1 (= 0.0000001),
command unit (1.=1.000000) (1.=1.0000000)
0.000001 0.0000001
Command range
~ 99.999999 ~ 99.9999999
137
7. Feed Functions
7.7 Automatic acceleration/deceleration
The rapid traverse and manual feed acceleration/deceleration pattern is linear acceleration and
linear deceleration.
Time constant TR can be set independently for each axis using parameters in 1ms steps from 1 to
500ms.
The cutting feed (not manual feed) acceleration/deceleration pattern is exponential acceleration/
deceleration. Time constant Tc can be set independently for each axis using parameters in 1ms
steps across a range from 1 to 500ms. (Normally, the same time constant is set for all axes.)
f f
With continuous commands
With continuous
commands
t t
TR TR TC TC
Td
With rapid traverse and manual feed, the following block is executed after the command pulse of
the present block has become "0" and the tracking error of the acceleration/deceleration circuit has
become "0". However, with cutting feed, the following block is executed as soon as the command
pulse of the present block becomes "0" although an external signal (error detect) can detect that
the tracking error of the acceleration/deceleration circuit has reached "0" and the following block
can be executed. When the in-position check has been made valid (selected by parameter "#1193
inpos") during the deceleration check, it is first confirmed that the tracking error of the
acceleration/deceleration circuit has reached "0", then it is checked that the position deviation is
less than the parameter setting value "#2204 SV024", and finally the following block is executed. It
depends on the machine as to whether the error detect function can be activated by a switch or M
function and so reference should be made to the instructions issued by the machine maker.
This function exercises control over the actual cutting feedrate in which override has been applied
to the cutting feedrate command so that the speed clamp value which has been preset
independently for each axis is not exceeded.
(Note) Speed clamping is not applied to synchronous feed and thread cutting.
138
7. Feed Functions
7.9 Exact stop check
In order for roundness to be prevented during corner cutting and for machine shock to be alleviated
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.
The parameter "#1193 inpos" among the base specifications parameters enables control to be
exercised either by the deceleration check time or in-position state. The in-position state is valid
when "#1193 inpos" is set to 1.
The in-position width is set into parameter "#2224 SV024" on the servo parameter screen by the
machine maker.
Command format
Example of program
N001 G09 G01 X100.000 F150 ; The commands in the following block are started
once the deceleration check time or in-position
state has been checked after the machine has
decelerated and stopped.
N002 Z100.000 ;
Tool
N001
X
axis N001
Without N002
G09
Time
Z
axis
N002
Solid line indicates speed pattern with G09 command.
Broken line indicates speed pattern without G09 command.
139
7. Feed Functions
7.9 Exact stop check
Detailed description
Next block
Previous block
Ts
Lc (in-position width)
Ts Ts
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.
140
7. Feed Functions
7.9 Exact stop check
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.
141
7. Feed Functions
7.10 Exact stop check mode
Whereas the G09 exact stop check command checks the in-position status only for the block in
which the command has been assigned, the G61 command functions as a modal. This means that
deceleration will apply at the end points of each block to all the cutting commands (G01 to G03)
subsequent to G61 and that the in-position status will be checked. G61 is released by automatic
corner override (G62), tapping mode (G63), or cutting mode (G64).
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.
142
7. Feed Functions
7.11 Deceleration check
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.
143
7. Feed Functions
7.11 Deceleration check
144
7. Feed Functions
7.11 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
The acceleration
rate is excessive
due to the
composite speed
of G1 and G0.
G0Ipfg: 0 G1 G0
G1 G0
G0Ipfg: 1 G1 G0
G1 G0
Command deceleration
Example of program
(2) G91 G1 X100. Z-100. F4000 ; A deceleration check is carried out, because the Z axis
G0 X80. Z100. ; moves in the reverse direction in the program above.
(3) G90 G1 X100. Z100. F4000 ; (When the program start position is X0 Z0)
G0 X80. Z120. ; A deceleration check is carried out, because the X axis
moves in the reverse direction in the program above.
(4) G91 G1 X100. Z100. F4000 ; A deceleration check is not carried out, because both
G0 X100. Z100. ; the X axis and the Z axis move in the same direction in
the program above.
(5) G91 G1 X100. Z80. F4000 ; A deceleration check is not carried out, because the X
G0 X80. ; axis moves in the same direction, and there is no Z
axis movement command in the program above.
145
7. Feed Functions
7.11 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
(2) G91 G1 X100. Z-100. F4000 ; A deceleration check is carried out, because the Z
G1 X80. Z100. ; axis moves in the reverse direction in the program
above.
(3) G90 G1 X100. Z100. F4000 ; (When the program start position is X0 Z0)
G1 X80. Z120. ; A deceleration check is carried out, because the X
axis moves in the reverse direction in the program
above.
(4) G91 G1 X100. Z100. F4000 ; A deceleration check is not carried out, because both
G1 X100. Z100. ; the X axis and the Z axis move in the same direction
in the program above.
(5) G91 G1 X100. Z80. F4000 ; A deceleration check is not carried out, because the
G1 X80. ; X axis moves in the same direction, and there is no Z
axis movement command in the program above.
146
7. Feed Functions
7.12 Automatic corner override
With this command, when cutting with tool radius compensation, an override is automatically
applied to the feedrate to reduce the load during inside corner cutting or during inside cutting of
automatic corner R.
Automatic corner override is valid until the nose R compensation cancel (G40), exact stop check
mode (G61), tapping mode (G63), or cutting mode (G64) command is issued.
Command format
G62 ;
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.
Deceleration
range
Ci
Tool
Fig. 1
147
7. Feed Functions
7.12 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.
Automatic corner R
surface shape
Programmed
center path
Workpiece
Nose R
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.)
148
7. Feed Functions
7.12 Automatic corner override
Application example
Program
θ
Nose R center
Ci
Tool
Ci
Tool
Program θ
Ci
Nose R center
Tool
Tool
149
7. Feed Functions
7.12 Automatic corner override
N1 θ
N2
Program
Ci
Nose R center
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 nose R compensation mode is entered.
(3) Automatic corner override will not be applied on a corner where the nose R compensation is
started or canceled.
(4) Automatic corner override will not be applied on a corner where the nose R compensation I, K
vector command is issued.
150
7. Feed Functions
7.12 Automatic corner override
(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.
151
7. Feed Functions
7.13 Tapping mode
The G63 command allows the control mode best suited for tapping to be entered, as indicated
below :
G63 is released by the exact stop check mode (G61), automatic corner override (G62), or cutting
mode (G64) command.
Command format
G63 ;
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 check mode (G61), high-accuracy control mode (G61.1),
automatic corner override (G62), or tapping mode (G63) command.
Command format
G64 ;
152
8. Dwell
8.1 Per-second dwell
8. Dwell
The G04 command can delay the start of the next block.
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
Detailed description
(1) When designating the dwell time with X or U, 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, U 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.
153
8. Dwell
8.1 Per-second dwell
Previous block
cutting command
Next block
Dwell command
Dwell time
Example of program
(Note 1) The above examples are the results under the following conditions.
• Input setting unit 0.001mm or 0.0001inch
• #100 = 1000 ;
(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 seconds.
(1) When using this function, command X or U after G04 in order to make sure that the dwell is
based on X or U.
154
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 M 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 92 miscellaneous functions which are usable as such commands.
Reference should be made to the instructions issued by the machine maker 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. The machine specifications determine
which sequence applies.
(1) The M function is executed after the movement command.
(2) The M function is executed at the same time as the movement command.
Which of these sequences actually applies depends on the machine specifications.
Processing and completion sequences are required in each case for all M commands except M96,
M97, M98 and M99. The 8 M functions used for specific purposes will now be described.
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.
155
9. Miscellaneous Functions
9.1 Miscellaneous functions (M8-digits BCD)
If the tape reader reads the M01 command when the optional stop switch on the machine operation
board is ON, it will stop and the same effect as with the M00 function will apply.
If the optional stop switch is OFF, the M01 command is ignored.
(Example)
~
N10 G00 X1000 ;
Optional stop switch command is ignored.
Stops at N11 when switch is ON
N11 M01 ; Next command (N12) is executed without
stopping at N11 when switch is OFF
N12 G01 X2000 Z3000 F600 ;
~
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.
(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.
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 a miscellaneous function, change the setting to another M code with the
parameter (#1109 subs_M and #1110 M96_M, #1111 M97_M).
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 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.
156
9. Miscellaneous Functions
9.2 2nd miscellaneous functions (A8-digits, B8-digits or C8-digits)
These serve to assign the indexing table positioning and other such functions. In this controller,
they are assigned by an 8-digit number from 0 to 99999999 following address A, B or C. The
machine maker determines which codes correspond to which positions.
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 2nd 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 2nd miscellaneous function.
157
9. Miscellaneous Functions
9.3 Index table indexing
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 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>
Unclamp
command
Unclamp
completed
B axis movement
158
9. Miscellaneous Functions
9.3 Index table indexing
Precautions
159
10. Spindle Functions
10.1 Spindle functions (S2-digits BCD)
The spindle functions are also known simply as S functions and they assign the spindle rotation
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 to S99.
When the S6-digits function is added, a 6-digit value (0 to 999999) can be designated after the S
code. Other commands conform to the S2-digits function. Always select S command binary output
when using this function.
In this function, the appropriate gear signal, voltage corresponding to the commanded spindle
rotation speed, and start signal are output by the numeric command of the six digits following the S
code.
Processing and completion sequences are required for all S commands.
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
and tapping rotation speed
(2) Parameters corresponding to all gears………………. Orientation rotation speed, minimum
rotation speed
160
10. Spindle Functions
10.3 Spindle functions (S8-digits)
These functions are assigned with an 8-digit (0 ~ 99999999) number following the address S, and
one group can be assigned in one block.
The output signal is a 32-bit binary data with sign and start signal. Processing and completion
sequences are required for all S commands.
161
10. Spindle Functions
10.4 Constant surface speed control
These commands automatically control the spindle rotation 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
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 designated by address P.
(Example) When G96_ax = 1
Program Constant surface speed control axis
G96 S100 ; 1st axis
G96 S100 P3 ; 3rd axis
r/min.
162
10. Spindle Functions
10.5 Spindle clamp speed setting
The maximum clamp rotation speed of the spindle can be assigned by address S following G92
and the minimum clamp rotation speed by address Q.
Command format
G92 Ss Qq ;
Ss Maximum clamp rotation speed
Qq Minimum clamp rotation speed
Detailed description
Besides this command, parameters can be used to set the rotation 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 rotation speed ranges based on
the parameters and based on "G92 Ss Qq ;".
Set in the parameter (#1146 Sclamp, #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.
163
10. Spindle Functions
10.6 Spindle/C axis control
This function enables one spindle (MDS-A-SP and later) to also be used as a C axis (rotation axis)
by an external signal.
Detailed description
Spindle
forward run Orientation Orientation
C axis
Motor speed movement
Servo ON
Servo READY
∗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
164
10. Spindle Functions
10.6 Spindle/C axis control
(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) will occur as shown above in ∗2.
In response to this kind of situation, the following two processes must be carried out on
user PC, as shown above in ∗1.
• 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.
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.
(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.
165
10. Spindle Functions
10.6 Spindle/C axis control
(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 "#3329
SP129 bitE: 1"), and set the axis to "Axis without zero point" (Zero point return parameters
"#2031 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 is not possible for the C axis.
Set the reference point return to the orientation method in the parameters (Spindle parameters
"#3329 SP129 bitE: 0"), or set the axis to "Axis without zero point" (Zero point return
parameters "#2031 noref: 1").
166
10. Spindle Functions
10.7 Spindle synchronization control I
In a machine having two or more spindles, this function controls the rotation speed and phase of
one spindle in synchronization with the rotation of the other spindle.
The function is used when the rotation speed of the two spindles must be matched, for example, if
a workpiece grasped by the 1st spindle is to be grasped by a 2nd spindle, or if the spindle rotation
speed has to be changed when one workpiece is grasped by both the 1st and 2nd spindles.
Command format
167
10. Spindle Functions
10.7 Spindle synchronization control I
(1) The rotation speed and rotation direction of the basic spindle and synchronous spindle during
spindle synchronization control are the rotation speed and rotation direction commanded for
the basic spindle. Note that the rotation direction of the synchronous spindle can be reversed
from the basic spindle through the program.
(2) The basic spindle's rotation speed and rotation direction can be changed during spindle
synchronization control.
(3) The synchronous spindle's rotation command is also valid during spindle synchronization
control.
When spindle synchronization control is commanded, if neither a forward run command nor
reverse run command is commanded for the synchronous spindle, the synchronization
standby state will be entered without starting the synchronous spindle's rotation. If the forward
run command or reverse run command is input in this state, the synchronous spindle will start
rotation. The synchronous spindle's rotation direction will follow the direction commanded in
the program.
If spindle stop is commanded for the synchronous spindle during spindle synchronization
control (when both the forward run and reverse run commands are turned OFF), the
synchronous spindle rotation will stop.
(4) The rotation speed command (S command) and constant surface speed control are invalid for
the synchronous spindle during spindle synchronization control. Note that the modal is
updated, so these will be validated when the spindle synchronization is canceled.
(5) The constant surface speed can be controlled by issuing a command to the basic spindle even
during spindle synchronization control.
168
10. Spindle Functions
10.7 Spindle synchronization control I
Rotation synchronization
(1) When rotation synchronization control (command with no R address) is commanded with the
G114.1 command, the synchronous spindle rotating at a random rotation speed will accelerate
or decelerate to the rotation speed commanded beforehand for the basic spindle, and will
enter the rotation synchronization state.
(2) If the basic spindle's commanded rotation speed is changed during the rotation
synchronization state, acceleration/deceleration will be carried out while maintaining the
synchronization state following the spindle acceleration/deceleration time constants set in the
parameters, and the commanded rotation speed will be achieved.
(3) In the rotation synchronization state, the basic spindle can be controlled to the constant
surface speed even when two spindles are grasping one workpiece.
(4) Operation will take place in the following manner.
M23 S2=750 ; ... Forward rotate 2nd spindle (synchronous spindle) at 750
: r/min (speed command)
M03 S1=1000 ; ... Forward rotate 1st spindle (basic spindle) at 1000 r/min
: (speed command)
G114.1 H1 D-2 ; ... Synchronize 2nd spindle (synchronous spindle) to 1st
: spindle (basic spindle) with reverse run
S1=500 ; ... Change 1st spindle (basic spindle) rotation speed to 500
: r/min
G113 ; ... Cancel spindle synchronization
<Operation>
Basic spindle
Synchronous spindle
1000
750
500
Forward
run
0
Reverse
run
–500
–750
–1000
1st spindle (basic spindle) forward run 1st spindle (basic spindle) rotation speed change
169
10. Spindle Functions
10.7 Spindle synchronization control I
Phase synchronization
(1) When phase synchronization (command with R address) is commanded with the G114.1
command, the synchronous spindle rotating at a random rotation speed will accelerate or
decelerate to the rotation speed commanded beforehand for the basic spindle, and will enter
the rotation synchronization state.
Then, the phase is aligned so that the rotation phase commanded with the R address is
reached, and the phase synchronization state is entered.
(2) If the basic spindle's commanded rotation speed is changed during the phase synchronization
state, acceleration/deceleration will be carried out while maintaining the synchronization state
following the spindle acceleration/deceleration time constants set in the parameters, and the
commanded rotation speed will be achieved.
(3) In the phase synchronization state, the basic spindle can be controlled to the constant surface
speed even when two spindles are grasping one workpiece.
(4) Operation will take place in the following manner.
M23 S2=750 ; ... Forward rotate 2nd spindle (synchronous spindle) at 750
: r/min (speed command)
M03 S1=1000 ; ... Forward rotate 1st spindle (basic spindle) at 1000 r/min
: (speed command)
G114.1 H1 D-2 Rxx ; ... Synchronize 2nd spindle (synchronous spindle) to 1st
: spindle (basic spindle) with reverse run
: Shift phase of synchronous spindle by R command value
S1=500 ; ... Change 1st spindle (basic spindle) rotation speed to 500
: r/min
G113 ; ... Cancel spindle synchronization
<Operation>
Basic spindle
Synchronous spindle
1000
750
500
Forward
run
0
Reverse
run
–500
–750
–1000
Phase alignment
2nd spindle (synchronous spindle) Spindle synchronization cancel
reverse run synchronization
1st spindle (basic spindle) forward run 1st spindle (basic spindle) rotation speed change
170
10. Spindle Functions
10.7 Spindle synchronization control I
Cautions on programming
(1) To enter the rotation synchronization mode while the basic spindle and synchronous spindle
are chucking the same workpiece, turn the basic spindle/synchronous spindle rotation
commands ON before turning the spindle synchronization control mode ON.
$1 $2
: :
M6 ; 1st spindle chuck close :
: M25 S2=0 ; 2nd spindle stops at S=0
: :
!2 ; !1 ; Synchronizing
M5 S1=0 ; 1st spindle stops at S=0 M15 ; 2nd spindle chuck close
: M24 ; 2nd spindle rotation
command ON
M3 ; 1st spindle rotation :
command ON
!2 ; !1 ; Synchronizing
: G114.1 H1 D-2 ; Rotation synchronization
: : Mode ON
S1=1500 ; Synchronous rotation at :
S=1500
: :
(2) To chuck the same workpiece with the basic spindle and synchronous spindle in the phase
synchronization mode, align the phases before chucking.
$1 $2
: :
M6 ; 1st spindle chuck close :
: :
M3 S1=1500 ; 1st spindle rotation :
command ON
: S=1500 G114.1 H1 D-2 R0 ; Phase synchronization
: : Mode ON
: M24 ; 2nd spindle rotation
command ON
: :
: M15 ; 2nd spindle chuck close
(*)
: :
(*) Close the chuck after confirming that the spindle phase synchronization complete signal
(X30A) has turned ON (phase alignment complete).
(3) When in the spindle synchronization control mode, do not turn the synchronous spindle side's
rotation command OFF when the basic spindle and synchronous spindle have chucked the
same workpiece. This is hazardous as the synchronous spindle will stop.
171
10. Spindle Functions
10.7 Spindle synchronization control I
(1) The spindle rotating with spindle synchronization control will stop when emergency stop is
applied.
(2) The rotation speed clamp during spindle synchronization control will follow the smaller clamp
value set for the basic spindle or synchronous spindle.
(3) Orientation of the basic spindle and synchronous spindle is not possible during the spindle
synchronization control mode. To carry out orientation, cancel the spindle synchronization
control mode first.
(4) The rotation speed command (S command) is invalid for the synchronous spindle during the
spindle synchronization control mode. Note that the modal will be updated, so this will be
validated when spindle synchronization control is canceled.
(5) The constant surface speed control is invalid for the synchronous spindle during the spindle
synchronization control mode. Note that the modal will be updated, so this will be validated
when spindle synchronization is canceled.
(6) The rotation speed command (S command) and constant surface speed control for the
synchronous spindle will be validated when spindle synchronization control is canceled. Thus,
the synchronous spindle may carry out different operations when this control is canceled.
(7) If the phase synchronization command (command with R address) is issued while the phase
shift calculation request signal is ON, an operation error (1106) will occur.
(8) If the phase shift calculation request signal is ON and the basic spindle or synchronous spindle
is rotation while rotation synchronization is commanded, an operation error (1106) will occur.
(9) If the phase synchronization command R0 (<Ex.> G114.2 H1 D-2 R0) is commanded while the
phase offset request signal is ON, the basic spindle and synchronous spindle phases will be
aligned to the phase error of the basic spindle and synchronous spindle saved in the NC
memory.
(10) If a value other than the phase synchronization command R0 (<Ex.> G114.1 H1 D-2 R000) is
commanded while the phase offset request signal is ON, the phase error obtained by adding
the value commanded with the R address command to the phase difference of the basic
spindle and synchronous spindle saved in the NC memory will be used to align the basic
spindle and synchronous spindle.
(11) The phase offset request signal will be ignored when the phase shift calculation request signal
is ON.
(12) The phase error of the basic spindle and synchronous spindle saved in the NC is valid only
when the phase shift calculation signal is ON and for the combination of the basic spindle
selection (H_) and synchronous spindle (D_) commanded with the rotation synchronization
command (no R address).
For example, if the basic spindle and synchronous spindle phase error is saved as "G114.1 H1
D-2 ;", the saved phase error will be valid only when the phase offset request signal is ON and
"G114.1 H1 D_2 R∗∗∗ ;" is commanded. If "G114.1 H2 D-1 R∗∗∗ ;" is commanded in this case,
the phase shift amount will not be calculated correctly.
(13) When the spindle synchronization commands are being issued with the PLC I/F method
(#1300 ext36/bit7 OFF), a program error (P610) will occur if the spindle synchronization
control is commanded with G114.1/G113.
172
10. Spindle Functions
10.8 Spindle synchronization control II
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.
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.
173
10. Spindle Functions
10.8 Spindle synchronization control II
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.
174
10. Spindle Functions
10.8 Spindle synchronization control II
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 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.
175
10. Spindle Functions
10.8 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.
Spindle synchronization
control signal (Y398)
In spindle synchronization
control signal (X308)
Spindle synchronization
complete signal (X309)
(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.
176
10. Spindle Functions
10.8 Spindle synchronization control II
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. When
signal 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)
(Note 1) Use the error temporary cancel only when there is still an error between the spindle and
synchronization with the chuck close signal.
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
177
10. Spindle Functions
10.8 Spindle synchronization control II
Multi-speed acceleration/deceleration
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
178
10. Spindle Functions
10.8 Spindle synchronization control II
(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.)
179
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
In a machine having a rotary tool controlled with a serial connection and having a spindle controlled
with a serial connection as the workpiece axis, polygon machining can be carried out by controlling
the workpiece axis rotation in synchronized with the rotation of the rotary tool axis.
The serial connection control of spindle and rotary tool axis can be carried out with MDS-∗-SP or
MDS-∗-SPJ2.
Command format
180
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
181
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
The rotary tool axis and workpiece axis rotation speed and rotation direction during spindle
synchronization IA (polygon machining) are as follows.
(1) The rotation speed and rotation direction of the rotary tool axis are the rotation speed
commanded with the S command and the rotation direction commanded with the M command,
etc., for the spindle selected as the rotary tool axis.
(2) The workpiece axis rotation speed is determined by the No. of rotary tool gear teeth and No. of
workpiece corners commanded with G114.2.
L
Sw = Sh ∗ E
(3) The workpiece axis rotation direction is determined by the sign of the address D commanded
with G114.2.
In other words, when the D sign is "+", the workpiece axis rotates in the same direction as the
rotary tool axis, and when "−", the workpiece axis rotates in the reverse direction of the rotary
tool axis.
(4) After spindle synchronization IA (polygon machining) is commanded, the relation of the rotary
tool axis and workpiece axis is held in all operation modes of automatic or manual modes until
spindle synchronization cancel (G113) is commanded or until the spindle synchronization
cancel signal is input.
Even during feed hold, the rotary tool axis and workpiece axis synchronization state is held.
When using the 1st or 2nd spindle as the workpiece axis, the workpiece axis will be controlled in
the following manner.
(1) When the spindle synchronization IA (polygon machining) mode is commanded, if neither a
forward run command nor a reverse run command is input for the workpiece axis, the
workpiece axis will not start rotating even if the polygon axis is rotating, and instead will wait for
synchronization.
If a forward run command or reverse run command is input for the workpiece axis in this state,
the workpiece axis will start rotation.
(2) If spindle stop is commanded (both forward run command and reverse run command are
turned OFF) in respect to the workpiece axis during the spindle synchronization IA (polygon
machining) mode, the workpiece axis rotation will stop even when the rotary tool axis is
rotating.
(3) The rotation command (S command) and constant surface speed control are invalid in respect
to the workpiece axis during the spindle synchronization IA (polygon machining) mode. Note
that the modal will be updated, so these will be effective after the spindle synchronization is
canceled.
(4) If a rotary tool axis rotation speed that exceeds the workpiece axis maximum rotation speed is
commanded, the rotary tool axis rotation speed will be clamped so that the workpiece axis
rotation speed does not exceed the workpiece axis maximum rotation speed.
182
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
Acceleration/deceleration control
(1) The rotary tool axis will accelerate or decelerate linearly with the spindle synchronization
acceleration/deceleration time constant (spt) of the spindle selected as the rotary tool axis.
(1) If the spindle synchronization control II (with R designation) is commanded with the G114.2
command, the synchronous spindle rotating at a random rotation speed will accelerate or
decelerate to the rotation speed following the basic spindle and synchronous spindle rotation
ratio command, and the spindle synchronization control state will be entered. After that, the
phase will be aligned to match the rotation phase commanded with the R address.
(2) The spindle synchronization phase shift amount is commanded as the shift amount from the
synchronous spindle's reference point (one rotation signal). There is no shift amount in respect
to the basic spindle.
(3) If the basic spindle's commanded rotation speed is changed during the spindle synchronization
control state, acceleration/deceleration will be carried out following the spindle acceleration/
deceleration set in the parameters while maintaining the synchronization state, and will reach the
commanded rotation speed.
(4) The following type of operation will take place.
M03 S1=0 ; ……Carries out forward run (speed command) 1st spindle
• (synchronous spindle)
Txx00 ; ……Rotary tool selection
M83 S2=500 ; ……Carries out forward run (speed command) 2nd spindle
• (basic spindle)
G114.2 H2 D1 E1 L5 ……Carries out forward run 1st spindle (synchronous spindle)
Rxx ; and synchronizes with 2nd spindle (basic spindle).
• Shifts synchronous spindle phase by amount of R command
• value.
G113 ; ……Cancels spindle synchronization
183
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
<Operation>
Rotation
speed Basic spindle
Synchronous spindle
600
500
400
300
200
100 Phase
alignment
184
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
Example of program
•
•
•
M03 S1=0 ; 1st spindle forward run
Txx00 ; Rotary tool selection
M83 S2=500 ; 2nd spindle forward run
G00 X40.Z-5. ;
G00 X18. ;
G01 Z20. F0.1 ; 1st cut in
G00 X40. ; Z axis feedrate is 0.1mm per workpiece axis rotation
Z-5. ;
•
•
•
G00 X14. ;
G01 Z20. F0.1 ; Final cut in
G00 X40. ; Z axis feedrate is 0.1mm per workpiece axis rotation
Z-5. ;
185
10. Spindle Functions
10.9 Tool-spindle synchronization IA (spindle-spindle polygon machining)
(1) The axis address (X, Z, C) command in the same block as G114.2 will be ignored.
ex. G114.2 X_ ;
Ignored.
(2) If a modal is commanded in the same block as G114.2, the modal will be updated.
ex. G114.2 G01 ;
The group 01 modal is set to G01.
(3) If a miscellaneous command (M, S, T) is commanded in the same block as G114.2, the
miscellaneous command will be executed simultaneously with the change to the rotary tool
machining mode.
ex. G114.2 M03 ;
M03 is executed simultaneously with G114.2.
(4) If there is a group 00 G code command in the same block as G114.2, the G code commanded
last in the block will have the priority.
ex. G114.2 G4 P30 ;
G4 P30. is executed.
If this relation is not established, the encoder reference point will not stay at a constant
position of the spindle, and thus the phase (position) will deviate with each phase
alignment command.
Note that even in this case, if the No. of rotary tool gear teeth (No. of workpiece corners) is
equivalent to the rotation ratio, the blade and workpiece phase (position) will not deviate.
(Following relation)
(Rotary tool spindle rotation speed ∗ No. of rotary tool gear teeth) /
encoder rotation speed = n ("n" is an integer of 1 or more)
(b) During phase alignment control, phase alignment is carried out following each spindle
encoder's reference point, so if the positional relation of the workpiece and reference point
(rotary tool and reference point) deviates when the power is turned OFF/ON or when the
tool is changed, etc., the phase will deviate.
(2) If S is commanded in the same block as G114.2, the synchronization speed will be created at
the previous S command until the S command ends, so the spindle speed may fluctuate
momentarily. Thus, do not command S in the same block if possible.
186
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
In machines having a serial connection-controlled workpiece axis, and furthermore having a serial
connection-controlled spindle as a rotary tool axis, spindle-spindle polygon machining can be
carried out by controlling the rotation of the rotary tool axis rotation in synchronization with the
workpiece axis.
If parameter #1501 is set to a value other than 0, polygon machining takes place, and if set to 0,
spindle-spindle polygon machining takes place.
The workpiece axis and rotary tool axis can be serially connected and controlled with MDS-∗-SP or
MDS-∗-SPJ2.
Command format
The spindle-spindle polygon machining mode is also canceled in the following cases.
• Power OFF
• Emergency stop
• Reset (reset 1, reset 2, reset & rewind)
(only when #1239 set11/bit3 = 1)
• Spindle-spindle polygon machining cancel signal
187
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
188
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
The workpiece axis and rotary tool axis rotation speed and rotation direction during spindle-
spindle polygon machining are as follows.
(1) The workpiece axis rotation speed and rotation direction are rotation speed commanded with
the S command and the rotation direction commanded with the M command, etc., for the
spindle selected as the workpiece axis.
(2) The rotary tool axis rotation speed is determined by the number of rotary tool teeth and number
of workpiece corners commanded with G51.2.
Sw = Sh ∗ Q
P
Sw : Rotary tool axis rotation speed (r/min)
Sh : Workpiece axis rotation speed (r/min)
P : Workpiece axis rotation ratio (number of workpiece corners)
Q : Rotary tool axis rotation ratio (number of rotary tool teeth)
(3) The rotary tool axis rotation direction is determined by the sign of the rotary tool axis selection
Q commanded with G51.2.
If the Q sign is "+", the rotary tool axis will rotate in the same direction as the workpiece axis. If
the Q sign is "–", the rotary tool axis will rotate in the direction opposite the workpiece axis.
(4) After spindle-spindle polygon machining is commanded, the relation of the workpiece axis and
rotary tool axis rotation is held until spindle-spindle polygon machining cancel (G50.2) is
commanded, the spindle-spindle polygon machining cancel signal is input, or until the reset or
emergency stop signal is input.
The workpiece axis and rotary tool axis synchronization states are held even at feed hold.
(1) When the spindle-spindle polygon machining mode is commanded, even if neither the forward
run nor reverse run command is input for the rotary tool axis, the rotary tool axis will start
rotating.
(2) If spindle stop is commanded to a rotary tool axis during the spindle-spindle polygon
machining mode (when the spindle stop signal is ON), the rotary tool axis will stop rotating
even if the workpiece axis is rotating.
(3) The rotation speed command (S command) and constant surface speed control are invalid for
the rotary tool axis during the spindle-spindle polygon machining mode. Note that the modal is
updated, so these will be validated when the spindle-spindle polygon machining is canceled.
(4) If a workpiece axis rotation speed that exceeds the rotary tool axis's maximum rotation speed
is commanded, the workpiece axis rotation speed will be clamped so that the rotary tool axis
rotation does not exceed the rotary tool axis's maximum rotation speed.
189
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
Acceleration/deceleration control
(1) Acceleration/deceleration of the workpiece axis will be carried out linearly according to the
spindle synchronization acceleration/deceleration time constant (spt) of the spindle selected as
the workpiece axis.
(2) By setting the spindle synchronization multi-speed acceleration/deceleration time constant
changeover speed (spdct1 to 7) and the scale for the time constant changeover speed (spddiv
1 to 7), the acceleration/deceleration time can be changed in up to eight steps.
(3) If the workpiece axis command rotation speed is changed during the spindle synchronization
control state, the commanded speed will be reached by accelerating or decelerating according
to the spindle acceleration/deceleration set in the parameters while maintaining the
synchronized state.
(1) If the spindle-spindle polygon command (R=0 with no R command) is commanded with G51.2,
the synchronous spindle rotating at a random rotation speed will accelerate/
decelerate to the rotation speed following the rotation ratio command of the workpiece axis
spindle and rotary tool spindle. The spindles will then enter the spindle synchronous control
state. After that, the phases will be aligned to realize the rotation phase commanded with the R
address.
(2) The spindle synchronization phase shift amount commands the shift amount from the rotary
tool axis spindle's reference point (one rotation signal). This is not the shift amount for the
workpiece axis.
190
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
.
Txx00 ; Select rotary tool
M03 S100 ; Forward rotate 1st spindle (workpiece axis) (speed command)
.
G51.2 H1 D3 P1 Q5 Rxx ; Spindle-spindle polygon command, synchronize 3rd spindle
. (rotary tool axis) to 1st spindle (workpiece axis spindle) with
. forward run. Shift synchronous spindle's phase by R command
value.
.
G50.2 ;
Cancel spindle-spindle polygon mode
<Operation>
Rotation speed
Workpiece axis
Rotary tool axis
600
400
Synchronization complete
300
3rd spindle (rotary tool axis) forward run
synchronization
200
100
191
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
.
Txx00 ; Select rotary tool
M03 S100 ; Forward rotate 1st spindle (workpiece axis) (speed command)
.
G51.2 H1 D3 P1 Q5 ; Spindle-spindle polygon command, synchronize 3rd spindle
. (rotary tool axis) to 1st spindle (workpiece axis spindle) with
. forward run.
.
G50.2 ; Cancel spindle-spindle polygon mode
<Operation>
Rotation speed
Workpiece axis
Rotary tool axis
600
400
300
3rd spindle (rotary tool axis) forward run
synchronization
200
100
192
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
Example of program
.
.
.
Txx00 ; .......................................Select rotary tool
M03 S500 ; .................................1st spindle forward run
G00 X40. Z-5. ;
193
10. Spindle Functions
10.10 Tool-spindle synchronization IB (spindle-spindle polygon machining)
194
10. Spindle Functions
10.11 Tool-spindle synchronization IC (spindle-NC axis polygon machining)
This function carries out polygon machining by controlling the workpiece (spindle) and tool axis
(NC servo axis) to rotate in synchronization at the commanded ratio.
Command format
Explanation of operation
Program Operation
S1000 ; The spindle rotation speed (workpiece rotation speed) is commanded
G51.2 P1 Q2 ; The polygon machining mode is entered with the G51.2 command.
The spindle and rotary tool axis start rotating, and control is applied so
that the spindle rotation speed and tool axis rotation speed are the
commanded ratio
(P:Q).
Cutting into
workpiece
G50.2 ; The polygon machining mode between the spindle and rotary tool axis is
canceled by the G50.2 command, and the spindle and rotary tool axis
rotation stop.
The rotary tool axis is designated with the base specifications parameters "#1501 polyax".
195
10. Spindle Functions
10.11 Tool-spindle synchronization IC (spindle-NC axis polygon machining)
Rotation direction
(1) The spindle rotation direction during the polygon machining mode is determined by the P
command sign and the spindle parameter "#3393 SP193(SPECT)/bit 4 :command polarity".
P command sign #3393 SP193/bit 4 Rotation direction
(+) 0 CW
(+) 1 CCW
(–) 0 CCW
(–) 1 CW
(2) The rotation direction of the rotary tool axis during the polygon machining mode is determined by
the Q command sign and the base specifications parameters "#1018 CCW".
Q command sign #1018 CCW Rotation direction
(+) 0 CW
(+) 1 CCW
(–) 0 CCW
(–) 1 CW
Example of program
196
10. Spindle Functions
10.11 Tool-spindle synchronization IC (spindle-NC axis polygon machining)
Precautions
(1) The "spindle synchronization (polygon machining)" specifications must be provided to use this
function.
If G51.2 or G50.2 is commanded without the specifications, the program error (P39) will occur.
(2) Always command G51.2 and G50.2 in independent blocks.
• If the G51.2 (G50.2) command and group 0 G code are commanded in the same block, the
G code commanded last in the block will have the priority.
• If the G51.2 (G50.2) command and G code other than a group 0 code are commanded in
the same block, the program error (P33) will occur.
(3) While in the polygon machining mode, a movement command cannot be issued in the
machining program for a servo axis set as the rotary tool axis.
If a movement command is issued to the rotary tool axis during the polygon machining mode,
the program error (P32) will occur.
(4) The servo axis set as the rotary tool axis can be used as a feed axis in modes other than the
polygon machining mode.
(5) The following functions are invalid for the rotary tool axis during the polygon machining mode.
• Override
• Feed hold
• Stored stroke limit
(6) The spindle rotation speed can be changed with the S command even during the polygon
machining mode.
The spindle override and spindle rotation speed clamp are also valid.
If the spindle rotation speed is changed, the rotary tool axis rotation speed will also change so
that the spindle and rotary tool axis establish the P:Q ratio.
(7) The forward run/reverse run commands are invalid for the spindle during the polygon
machining mode.
(8) If the feedrate for the rotary tool axis exceeds the rapid traverse rate (axis specifications
parameters "#2001 rapid") during the polygon machining mode, the speed will be clamped at
the rapid traverse rate. If the rotary tool axis is clamped at the rapid traverse rate, the spindle
speed will also be set to lower than the command speed so that the spindle and rotary tool axis
establish the P:Q ratio.
(9) The position loop gain for the rotary tool axis will be the value set in the axis specifications
parameters "#2017 tap_g" during the polygon machining mode. The position loop gain for the
spindle will be the spindle parameters "#3209 PGT" setting value.
(10) The following functions cannot be used simultaneously with polygon machining.
• Synchronous tap
• Thread cutting
(11) If an axis other than the rotary tool axis reaches the stroke end during the polygon machining
mode, the axis other than the rotary tool axis will stop moving, but the rotary tool axis and
spindle rotation will not stop.
(12) If the rotary tool axis reaches the stroke end during the polygon machining mode, the rotary
tool axis and spindle rotation will stop, and the movement of axes other than the rotary tool axis
will also stop.
(13) By setting the spindle parameters "#3393 SP193(SPECT)/bitE: Position control switch type" to
"0", the polygon machining will start after the spindle returns to the zero point.
197
10. Spindle Functions
10.12 Multiple spindle control
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.
Tool spindle
(3rd spindle)
2nd spindle
1st spindle
Turret
1
198
10. Spindle Functions
10.12 Multiple spindle control
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
1st spindle
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.
199
10. Spindle Functions
10.12 Multiple spindle control
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
Detailed description
(1) The selected spindle No. is set with the parameter (#1534 SnG44.1).
(2) The spindle selection commands are modal G codes.
(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
(6) 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.
200
10. Spindle Functions
10.12 Multiple spindle control
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
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
201
10. Spindle Functions
10.12 Multiple spindle control
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.
System 2 Execution G43.1 G0 X50. G01 X30. S200 G01 X10. ...
program
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
(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.
1st spindle
rotation speed 200r/min 300r/min 200r/min
202
10. Spindle Functions
10.12 Multiple spindle control
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
Encoder selection
R124
Encoder input $1
Encoder input $2
R324
(Note) Refer to the PLC Interface Manual for details on each signal.
203
10. Spindle Functions
10.12 Multiple spindle control
204
10. Spindle Functions
10.12 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.
205
11. Tool Functions
11.1 Tool functions (T8-digits BCD)
Tool functions are also known as T functions, and are used to designate the tool Nos. and tool
compensation Nos. The designations are made by the 8 digits (0 to 99999999) following the
address T. These commands are used with the higher-order six or seven digits indicating the tool
No., and the lower-order one or two digits indicating the compensation No.
Which is to be used is determined by setting in the parameter "#1098 TLno.". The usable T
commands differ according to each machine, so refer to the instruction manual issued by the
machine maker. One set of T commands can be issued in one block.
Command format
T ∗∗∗∗∗∗∗ ∗ ;
Tool compensation number
Tool number
T ∗∗∗∗∗∗ ∗∗ ;
Tool compensation number
Tool number
Reference should be made to the instructions issued by the machine maker for the
correspondence between the actual tools and the tool numbers commanded in the program.
BCD codes and start signals are output.
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.
(a) The T function is executed after the movement command.
(b) The T function is executed simultaneously with the movement command.
Processing and completion sequences are required for all T commands.
206
12. Tool Offset Functions
12.1 Tool offset
Tool offset is performed by the T functions which are commanded with the 3-, 4- or 8-digit number
following address T. There are two types of tool offset: tool length offset and tool nose wear offset.
There are two ways to issue the commands: the tool length offset and tool nose wear offset are
designated by the last 1 or 2 digits of the T command or the tool nose wear offset is assigned by the
last 1 or 2 digits of the T command and the tool length offset by the tool number. Parameter "#1098
TLno." is used to switch between them. Parameter "#1097 T1digt" is also used to select the last 1
or 2 digits for the offset.
One group of T command can be assigned in a block.
Command format
(1) When designating the tool length and tool nose wear offset number using the last 1 or 2 digits
of the T command.
T ∗∗∗∗∗∗∗ ∗ ;
Tool length offset + tool nose wear offset
Tool number
T ∗∗∗∗∗∗ ∗∗ ;
Tool length offset + tool nose wear offset
Tool number
(2) When differentiating between the tool length offset number and tool nose wear offset number
T ∗∗∗∗∗∗∗ ∗ ;
Tool nose wear offset
Tool number + tool length offset
T ∗∗∗∗∗∗ ∗∗ ;
Tool nose wear offset
Tool number + tool length offset
The lower two digits of the tool No. are the tool length offset No.
207
12. Tool Offset Functions
12.1 Tool offset
There are two ways to execute tool offset and these can be selected by parameter: executing offset
when the T command is executed and executing offset in the block with a movement command
without performing offset when the T command is executed.
N2
Tool path after offset N1 T0101 ;
Offset amount
N1 N2 X100. Z200. ;
Programmed machining path
Tool length offset and tool nose wear offset are conducted simultaneously.
(Note 1) The movement applying to offset with the T command execution is rapid traverse in a
G00 modal and cutting feed with other modals.
(Note 2) When performing offset with T command execution, the path is offset as a linear
movement in a circular modal.
(Note 3) When performing offset with T command execution, offset will not function until the arrival
of any G command except those listed below when the T command has been assigned in
the same block as the G commands listed below.
G04 : Dwell
G10 : Program tool offset input/program parameter input
G11 : Program parameter input mode cancel
G65 : User macro simple call
G92 : Coordinate system setting
N1 T0101 ;
N2 Offset amount N2 X100. Z200. ;
Tool length offset and tool nose wear offset are conducted simultaneously.
(Note 1) When performing offset with a movement command, offset is applied if the offset amount
is lower than the parameter "#1084 RadErr" when offset is performed for the first time
with a circular command. If the amount is higher, the program error (P70) results. (This
also applies when the arc command and T command are in the same block for offsetting
with T command execution.)
208
12. Tool Offset Functions
12.1 Tool offset
By setting the parameter "#1100 Tmove", the offset operation when T is commanded is selected
whether that is carried out when the T command is executed or carried out with superimposed on
the movement command.
In addition to these two methods, a type to compensate only the wear amount when the T
command is executed and to compensate the tool length superimposed on the movement
command can be selected with the parameter.
Detailed description
To select the type to compensate only the wear amount when the T command is executed and to
compensate the tool length superimposed on the movement command, set the "#1100 Tmove" to
2.
When 2 is set, the length offset will follow setting 1 (superimposed on movement command), and
the wear offset will follow setting 0 (move when T is commanded).
The offset operation for each "#1100 Tmove" setting is as shown below.
(1) Relation with "#1101 Tabsmv" (tool offset amount superimposition during absolute
command)
When "#1100 Tmove" is set to 2, the offset operation will follow the "#1101 Tabsmv" setting.
209
12. Tool Offset Functions
12.1 Tool offset
(2) Parameters
Setting
# Items Details
range
1100 Tmove Designate the timing to perform tool length offset and wear 0 to 2
offset.
0: Compensates when T command is executed.
1: Superimposes and compensates with the movement
command in the block where the T command is located.
If there is no movement command in the same block‚
compensation will be executed after the movement
command is superimposed in the next movement
command block.
2: Compensates wear amount when the T command is
executed.
Superimposes and compensates a tool length offset
amount with the movement command in the same
block.
If there is no movement command in the same block,
compensation will be executed after the movement
command is superimposed in the next movement
command block.
1101 Tabsmv Designate the type of movement command superimposed 0,1
when #1100 Tmove is set to 1 or 2.
0: Compensates regardless of the movement command
type.
1: Compensates only at the movement command in the
absolute value command.
210
12. Tool Offset Functions
12.2 Tool length offset
This function offsets the tool length with respect to the programmed basic position. This position
may generally be set to either the center position of the turret or the tool nose position of the basic
tool.
Basic position
(basic point)
X-axis tool length
offset amount
X
Z-axis tool length
offset amount Z
Basic tool
Basic point
When tool numbers are changed, the tool length offset corresponding to the new tool numbers are
added to the movement amounts in the machining program.
In this example, the tool length is offset with the tool number and offset is performed in the block
with the movement command.
211
12. Tool Offset Functions
12.2 Tool length offset
(Note 1) When G28, G29 or G30 is commanded, the offset is temporarily canceled. Therefore,
the machine moves to the position where the offset was canceled and the offset
amount is stored in the memory. This means that with the next movement command
the machine will move to the offset position.
(Note 2) When G28, G29 or G30 and the offset cancel are commanded in the same block, the
machine is moved to the position where the offset was canceled, however the offset
amount remains stored in the memory. This means that the display coordinate may
be displayed including the offset amount. Issue these command in the separate block
so that the offset amount should not be stored in the memory.
(Note 3) Even if the offset amount of the offset number currently selected by MDI is changed
during automatic operation, the changed offset amount will not be valid unless a T
command with the same number is executed again.
(Note 4) The tool length offset and tool nose wear offset amounts are cleared by resetting and
by emergency stop. They can be retained by parameter "#1099 Treset".
212
12. Tool Offset Functions
12.3 Tool nose wear offset
Tool nose
Tool nose wear offset is canceled when 0 has been assigned as the offset number.
N1 G1 X10.0 Z10.0 F10 ;
Tool offset path N2 T0100 ;
N2 N3 G1 X10.0 Z20.0 ;
N1 N3
In this case, offset is performed
in the block with the movement
command.
Offset amount
Programmed machining path
(Note 1) When G28, G29 or G30 is commanded, the offset is temporarily canceled. Therefore, the
machine moves to the position where the offset was canceled and the offset amount is
stored in the memory. This means that with the next movement command the machine
will move to the offset position.
(Note 2) When G28, G29 or G30 and the offset cancel are commanded in the same block, the
machine is moved to the position where the offset was canceled, however the offset
amount remains stored in the memory. This means that the display coordinate may be
displayed including the offset amount. Issue these command in the separate block so that
the offset amount should not be stored in the memory.
(Note 3) Even if the offset amount of the offset number currently selected by MDI is changed
during automatic operation, the changed offset amount will not be valid unless a T
command with the same number is executed again.
(Note 4) The tool length offset and tool nose wear offset amounts are cleared by resetting and by
emergency stop. They can be retained by parameter "#1099 Treset".
213
12. Tool Offset Functions
12.4 Tool nose radius compensation
The tool nose is generally rounded and so a hypothetical tool nose point is treated as the tool nose
for programming purposes. When this is done, an error caused by the tool nose rounding arises
during taper cutting or circular cutting between the actually programmed shape and the cutting
shape. Tool nose radius compensation is a function for automatically calculating and offsetting this
error by setting the tool nose radius value.
The command codes enable the offset direction to be fixed or automatically identified.
R
Machining shape
commanded in program
Hypothetical tool nose point
(Note 1) By means of the preset hypothetical tool nose point and movement commands in the
machining program, the G46 tool nose radius compensation function automatically
identifies the compensation direction and provides tool nose radius compensation.
(Note 2) G40 serves to cancel the tool nose radius compensation mode.
214
12. Tool Offset Functions
12.4 Tool nose radius compensation
X axis
Automatic identification in
G46 mode
Left compensation
Left compen-
sation fixed in
G41 mode Right compensation
Right compensation
fixed in G42 mode
Z axis
(Note 3) Tool nose radius compensation pre-reads the data in the following two movement
command blocks (up to 5 blocks when there are no movement commands) and controls
the tool nose radius center path by the intersection point calculation method so that it is
offset from the programmed path by an amount equivalent to the nose radius.
N3
r
Prior to the N1 block execution, the
next movement command block is
pre-read and the coordinates at the
intersection point are calculated.
N2 block
N1 block
(Note 4) In the above figure, "r" is the tool nose radius compensation amount (nose radius).
(Note 5) The tool nose radius compensation amount corresponds to the tool length number and it
is preset along with the tool nose point.
(Note 6) If there are 4 or more blocks without movement amounts among 5 continuous blocks,
overcutting or undercutting will result.
Blocks in which optional block skip is valid are ignored.
(Note 7) Tool nose radius compensation is also valid for fixed cycles (G77 ~ G79) and for rough
cutting cycles (G70, G71, G72, G73).
However, in the rough cutting cycles, the finished shape with the tool nose radius
compensation applied will be cut with the compensation canceled and, upon completion of
the cutting, operation will automatically return to the compensation mode.
(Note 8) With thread cutting commands, compensation is temporarily canceled 1 block before.
(Note 9) A tool nose radius compensation (G41 or G42) command can be assigned during tool nose
radius compensation (G46). Compensation does not need to be canceled with G40 at this
time.
(Note 10)The compensation plane, movement axes and next advance direction vector follow the
plane selection command designated by G17, G18 or G19.
G17 X-Y plane X, Y, I, J
G18 Z-X plane Z, X, K, I
G19 Y-Z plane Y, Z, J, K
215
12. Tool Offset Functions
12.4 Tool nose radius compensation
Since the tool nose is generally rounded, the programmed tool nose position is aligned with point P
shown in the examples of the figures below.
With tool nose radius compensation, one point among those in the figures below indicating the
position relationship is selected for each tool length number and preset.
(Selection from points 1 to 8 in the G46 mode and 0 to 9 in the G41/G42 mode.)
2 6 1
4 3 8
+X
0,9 P 5 7
7 5
P
1 2 6
Tool nose point
3 4 0 or 9
8
Correspondence between hypothetical tool
+Z nose numbers and tool nose points
(1) When the nose R center has been aligned with the machining start position
Programmed path or
Machining shape with no tool machining shape with tool
nose radius compensation +Z
nose radius compensation
216
12. Tool Offset Functions
12.4 Tool nose radius compensation
(2) When the tool nose point has been aligned with the machining start position
+X
Machining completion position
G40
Machining shape with no tool
nose radius compensation Machining start
position
r G42 or G46
Programmed path or
Nose R tool nose point path with machining shape with tool
tool nose radius compensation nose radius compensation +Z
Compensation directions
(1) The compensation direction of the G41/G42 commands is determined by the G41/G42 codes.
The direction in a G46 command is automatically determined in accordance with the following
table from the relationship between the tool nose points and the commanded movement
vectors.
(2) When tool nose radius compensation has been started and the initial movement vector
(including G0) corresponds to an "×" mark in the table, the compensation direction cannot be
specified and so it is determined by the next movement vector. When the direction cannot be
determined even after reading 5 blocks ahead, program error (P156) results.
(3) When an attempt is made to reverse the compensation direction during tool nose radius
compensation, program error (P157) results except when the reversal is done in the G00 block.
Even if the directions differ before and after the G28, G30 or G53 block, an error will not result
since compensation is temporarily canceled. Using a parameter (#8106 G46 reverse axis error
evade), the tool can also be moved unchanged in the same compensation direction.
217
12. Tool Offset Functions
12.4 Tool nose radius compensation
(4) When the compensation direction during tool nose radius compensation coincides with an "×"
in the table below, the direction complied with the previous compensation direction.
Determining the compensation direction by the movement vectors and tool nose point in
command G46
Compensation Compensation
direction of Tool nose points direction of
tool nose tool nose
Direction of Direction
tool nose 1 2 3 4 5 6 7 8 of tool nose
advance advance
Move- Move-
ment ment
vector vector
(tool nose Left Left Right Right Left Right (tool nose
points points
1 to 4) 5 to 8)
(Note 1) An "×" mark in the tables indicates that the compensation direction is not determined from
the movement vector (tool nose points).
(Note 2) The " " mark denotes a movement vector in the 45° direction. (The other movement
vectors are based on this.)
(Note 3) The " " mark denotes a movement vector with a range larger than 45° and smaller than
135°. (The other movement vectors are based on this.)
218
12. Tool Offset Functions
12.4 Tool nose radius compensation
(Example) With tool nose point 3, movement vector in the Z axis (−) direction
(with ← movement vector)
219
12. Tool Offset Functions
12.4 Tool nose radius compensation
The tool nose radius compensation cancel mode is established by any of the following conditions.
(1) After the power has been turned 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 compensation cancel command (G40) has been executed
(5) After tool number 0 has been selected (T00 has been executed)
The offset vectors are zero in the compensation cancel mode, and the tool nose point path
coincides with the program path.
Programs including tool nose radius compensation must be terminated in the compensation cancel
mode.
Tool nose radius compensation starts when all the following conditions are met in the
compensation cancel mode.
(1) The movement command is issued after G41, G42 or G46.
(2) The movement command is any command except a circular command.
At the start of compensation, the operation is executed after at least 2 to 5 blocks have been read
continuously for intersection point calculation regardless of single block operation (Two flocks are
pre-read if movement commands are present; up to 5 blocks are pre-read if such commands are
not present.)
During compensation mode, up to 5 blocks are pre-read and the compensation is arithmetically
processed.
Machining
T____; S____; G00____; G41____; G01____; G02____;
program
Starting to pre-read
2∼5 blocks ahead
G01_; G02_;
There are two ways of starting the compensation operation: type A and type B.
The type to be used is selected by setting bit2 of parameter "#1229 set 01/bit2".
This type is used in common with the compensation cancel type.
In the following explanatory figure, "S" denotes the single block stop point.
220
12. Tool Offset Functions
12.4 Tool nose radius compensation
With a G41, G42 or G46 command alone, the tool does not moves as much as the specified amount of
tool nose radius compensation. It does not start tool nose radius compensation with a G00 command. It
starts tool nose radius compensation normally with a G01, G02 or G03 command.
Note that even if there is an axis command, the tool nose radius compensation will not be applied
unless there is movement.
Program path
~
N1 G42 ;
Nose R center path
N2 G00 X_Z_ ; N3
N3 G01 X_Z_F_ ; N2
~
N1
Program path
~
N1
~
Program path
N1 G42 ;
N2 G01 X_Z_F_ ; Nose R center path
N4
N3 G00 X_Z_ ; N3
N4 G01 X_Z_ ;
~
N2
N1
~
Program path
N1 G42 ;
N2 G00 X_Z_ ; Nose R center path
N3 G00 X_Z_ ; N4
N3
N4 G01 X_Z_F_ ;
~
N2
N1
221
12. Tool Offset Functions
12.4 Tool nose radius compensation
(2) When a G41/G42/G46 command is issued at an inside corner, in the same block as a
movement command
θ Program path θ
Program path
r = Nose R radius r
Nose R s
s center path
G42 G42
Nose R
Start point center path
Start point
Center of circular
(3) When an independent G41/G42/G46 command is issued at an outside corner (obtuse angle)
Type A Type B
N3 Nose R center path Intersection N3 Nose R center path
~
N1 N1
Type A, Type B
Intersection N3 Nose R center path
~
N1
Type A Type B
Inter-
~
N2 N2
N1 N1
222
12. Tool Offset Functions
12.4 Tool nose radius compensation
~ Type A Type B
Nose R center path Inter- Nose R center path
N1 G41 ; section
N4 N4
N2 G00 X_Z_ ;
Program path Program path
N3 G00 X_Z_ ; N3
N4 G01 X_Z_F_ ; N3
~
N2
N2
N1
N1
(4) When a G41/G42/G46 command is issued at an outside corner (obtuse angle), in the same
block as a movement command [90° ≤ θ < 180°]
r Nose R
r = Nose R radius center path
G41 G41
Program path
θ θ
Intersection Intersection
s s
Nose R center path r
r r Nose R
r
center path
Program path G41
G41 θ
θ
223
12. Tool Offset Functions
12.4 Tool nose radius compensation
(5) When an independent G41/G42/G46 command is issued at an outside corner (acute angle)
Type A Type B
~ Nose R center path Nose R center path
N3 N3
N1 G41 ; Program path Program path
N2 G00 X_Z_ ;
N3 G01 X_Z_F_ ;
N2
~
N2
N1 N1
Type A, Type B
~
N1
Type A Type B
Nose R center path Nose R center path
~
N4 N4
N1 G41 ;
Program path Program path
N2 G01 X_Z_F_ ;
N1 Program N1
N3 G00 X_Z_ ; path
N3 Nose R
N4 G01 X_Z_ ; center path
Nose R
~
center path N3 N2
Program path
N2
Type A Type B
~
N2
Program path
N3
224
12. Tool Offset Functions
12.4 Tool nose radius compensation
(6) When a G41/G42/G46 command is issued at an outside corner (acute angle), in the same
block as a movement command [ θ < 90° ]
Center of
s circular
Nose R center path Nose R
r center path
s
Program path Program path
θ r
G41
θ
G41
Start point
Start point
θ
G41 r
Start point
G41
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.
225
12. Tool Offset Functions
12.4 Tool nose radius compensation
The tool center path is obtained and compensated from the linear and arc designations for the
program path (G00, G01, G02, G03).
Compensation is valid both for positioning and for interpolation commands such as circular and
linear interpolation.
Even if the same compensation command (G41, G42, G46) is issued in a tool nose radius
compensation (G41, G42, G46) 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 nose radius compensation, pre-reading is
prohibited.
Linear → Linear (90° ≤ θ < 180°) Linear → Linear (0° < θ < 90°)
s
Intersection Nose R center path
Linear → Circular (90° ≤ θ < 180°) Linear → Circular (0° < θ < 90°)
226
12. Tool Offset Functions
12.4 Tool nose radius compensation
Circular → Linear (90° ≤ θ < 180°) Circular → Linear (0° < θ < 90°)
Center of circular
Program path
Program path
θ θ
r
r r Center of
Nose R r Nose R circular
center path center path
s
Intersection
s
Circular → Circular (90° ≤ θ < 180°) Circular → Circular (0° < θ < 90°)
Center of
circular
Program path Program path
θ
r θ
r Nose R r r
s center path Nose R
center path
Intersection
227
12. Tool Offset Functions
12.4 Tool nose radius compensation
θ
Program path Program path
r
θ r
s s
Intersection Nose R center path r Nose R
center path
θ
Program path Program path
Center of
θ circular
r
Nose R s s
center path Nose R center path
Inter- Intersection r
section r
Center of circular
θ Center of circular
Program path
θ Program path
s
s Nose R center path Inter-
r Inter- section
section Nose R center path
r
Center of circular
228
12. Tool Offset Functions
12.4 Tool nose radius compensation
r
θ
Center of
circular
Program path s
Center of Center of Intersec- Nose R center path
circular circular tion
Program path
Hypothetical circle
Nose R center path
s
r
R
Center of circular
r
Program path
A B
229
12. Tool Offset Functions
12.4 Tool nose radius compensation
If either of the following conditions is met in the tool nose 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 T00 tool number has been executed.
The cancel mode is established once the compensation cancel command has been read, 5-block
pre-reading is suspended and 1-block pre-reading is applies instead.
Issuing a tool nose radius compensation cancel command results in the following.
(1) If the command before G40 is G00 after the tool nose radius compensation is completed, the
tool nose radius compensation is temporarily stopped, and the tool nose radius compensation
is canceled in that state by an independent G40 command.
(2) If there is an interpolation command before G40 after the tool nose radius compensation is
completed, the tool nose radius compensation is not canceled by the independent G40
command, so the nose R center can stop in a vertical position. Instead, the tool nose radius
compensation is canceled by the first axis movement command after G40. The nose radius
compensation will not be canceled by the axis command if there is no axis movement. If there
is no axis movement command after G40, and the program finishes by M02, etc., the tool nose
radius compensation will remain valid. Resetting will cancel the tool nose radius compensation,
but the operation will not be canceled.
(3) When an independent T00 command is issued in a block, a tool nose radius cancel mode will
result in that block, and the axis will move to the tool nose radius cancel position.
230
12. Tool Offset Functions
12.4 Tool nose radius compensation
Program path
N1
~
G01 X_Z_F_ ; Nose R center path
N2 G00 X_Z_ ; N1
N3 G40 ; N2
~
N3
Program path
~
N5
Program path
~
N5
N6
Program path
~
N1 G01 X_Z_F_ ;
Nose R center path
N2 G00 X_Z_ ;
N1
N3 G00 X_Z_ ; N2
N4 G40 ;
~
N3
N4
231
12. Tool Offset Functions
12.4 Tool nose radius compensation
(a)-2 When a G40 command is issued at an inside corner, in the same block as a movement
command
θ θ
Program path Program path
r = Nose R radius r
s Nose R center path s
Nose R
G40 G40 center path
232
12. Tool Offset Functions
12.4 Tool nose radius compensation
(b)-1 When an independent G40 command is issued at an outside corner (obtuse angle)
Type A, Type B
~ N1 Nose R center path
Type A, Type B
N3 N1 Nose R center path
~
Intersection
N2 Program path
N1 G01 X_Z_F_ ;
N2 G01 X_Z_ ;
N3 G40 ; N3
N4
N4 M05 ;
N5 G00 X_Z_ ;
~
N5
Type A
N1 Nose R center path
~
N1 G01 X_Z_F_ ;
N2 Program path
N2 G00 X_Z_ ; Type B
N3 G01 X_Z_ ; (Type B) N1 Nose R center path
N4 G40 ; N3 N2
Program path
N5 M05 ; N4
N6 G01 X_Z_ ; N5
N6
N3
~
N4
N5
N6
Type A, Type B
~
N3
N4
233
12. Tool Offset Functions
12.4 Tool nose radius compensation
(b)-2 When a G40 command is issued at an outside corner (obtuse angle), in the same block
as a movement command
s Intersection s Intersection
Nose R center path Nose R
r r center path
r r
Program path G40
G40
θ θ
234
12. Tool Offset Functions
12.4 Tool nose radius compensation
(c)-1 When an independent G40 command is issued at an outside corner (acute angle)
Type A, Type B
N1 Nose R center path
~
N1 G01 X_Z_F_ ; Program path
N2 G00 X_Z_ ;
N3 G40 ; N2
~
N3
Type A, Type B
N1 Nose R center path
~
N3
N4
~
Nose R
center path N3
Type A, Type B
~
N3
(Type A, Type B)
235
12. Tool Offset Functions
12.4 Tool nose radius compensation
(c)-2 When a G40 command is issued at an outside corner (acute angle), in the same block
as a movement command
Center of circular
s Nose R center path
r Nose R
Program path center path
s
θ
r Program path
G40
θ
G40
End point
End point
Nose R
center path
Nose R center path
r r
Program path
s Program path s
θ θ
r r
G40 G40
236
12. Tool Offset Functions
12.4 Tool nose radius compensation
The compensation direction is determined by the tool nose radius compensation commands (G41,
G42).
G code Compensation direction
G41 Left-side compensation
G42 Right-side 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.
Linear → Linear
r
Program path
G41 G41 G42
r
r
Linear ↔ Circular
r
r
Program path
r
Nose R center path
237
12. Tool Offset Functions
12.4 Tool nose radius compensation
Linear return
G41
Nose R center path
G42
r
Program path
238
12. Tool Offset Functions
12.4 Tool nose radius compensation
G00
Left
G01(G41)
Intersection
G01
G41 (G42)
command
G01
Program
G01
G01
Right
(G41)
G01(G42)
G41
G01
G01
(G42)
239
12. Tool Offset Functions
12.4 Tool nose radius compensation
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.
X
S S
Z
Intermediate point
N5 N6 N7 N8
~
(G41)
N5 G01 U 30. W 60. ;
←Temporarily no compensation vectors at intermediate
N6 G28 U-40. W 50. ; point
N7 U-60. W 30. ; (Reference point when there is no intermediate point)
N8 U 40. W 70. ;
~
(Note 1) The offset vectors do not change with the coordinate system setting (G92) command.
(2) The compensation vector will be eliminated temporarily with the G53 command (basic
machine coordinate system selection).
240
12. Tool Offset Functions
12.4 Tool nose radius compensation
Nose R Nose R
N1 G01 X_Z_F_ ; center path center path
N1 N2 N4
N2 G00 X_Z_ ; N3 N5
N3 G00 X_Z_ ;
N4 G00 X_Z_ ; Program Program
path path
N5 G01 X_Z_ ;
~
Intersection
~
Nose R Nose R
N1 G01 X_Z_F_ ; N2 center path
center path
N2 G01 X_Z_ ; N1 N3 N4 N5
N3 G00 X_Z_ ;
N4 G00 X_Z_ ; Program Program
path path
N5 G01 X_Z_ ;
~
~
Intersection
N1 G01 X_Z_F_ ; Nose R Nose R
N2 G01 X_Z_ ; center path N2 N3 center path
N4
N3 G01 X_Z_ ; N1 N5
N4 G00 X_Z_ ; Intersection
N5 G01 X_Z_ ; Program Program
path path
~
G33
Intersection
Nose R center path
r
Program path
241
12. Tool Offset Functions
12.4 Tool nose radius compensation
N6 U200. W100. ; N7 N8
N7 G04 P1000 ; ….. Block without
N8 W200. ; movement
N6 N8
Block N7 is
N6 executed here.
242
12. Tool Offset Functions
12.4 Tool nose radius compensation
The offset vector is created perpendicularly to the end point of the previous block when there are
four or more successive blocks without movement, or when pre-read prohibit M command is
issued.
N11
N6 U200. W100. ;
N7 G4 X1000 ;
N8 F100 ; N6 N11
Block without N7~N10
N9 S500 ; movement
N10 M4 ;
N11 W100. ; N6
X
N6 U200. W100. ;
N7 G40 M5 ;
N8 U50. W100. ; N8
Z
N7
N6
(a,b)
X
G40
Nose R center path A
G41
Z r
Program path
(i,k) r
243
12. Tool Offset Functions
12.4 Tool nose radius compensation
Corner movement
When a multiple number of compensation vectors are created at the joints between movement
command blocks, the tool will move in a linear between those vectors. This action is called corner
movement.
When the vectors do not coincide, the tool moves in order to machine the corner.
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
Nose R center path
r Center of circular
This movement and feedrate
fall under block N2.
244
12. Tool Offset Functions
12.4 Tool nose radius compensation
The compensation direction can be intentionally changed by issuing the G41/G42 command and I,
J, K in the same block.
Command format
The new I, K type vector (G18 plane) created by this command is now described. (Similar
descriptions apply to vector I, J for the G17 plane and to J, K for the G19 plane.)
As shown in the figures below, the vectors with a size equivalent to the offset amount are made to
serve as the I, K type compensation vector perpendicularly to the direction designated by I, K
without the intersection point of the programmed path being calculated. The I, K 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).
N110 (G40)
N120
~
N130
N140 N150 N100 G41 U100. W100. K150. T0101 ;
X
N110 G04 X1000 ;
T0101
N100 N120 G01 F1000 ;
Z N130 S500 ;
N140 M03 ;
Program path N150 Z150. ;
~
X (G40)
N3
~
T0101 N1
245
12. Tool Offset Functions
12.4 Tool nose radius compensation
~
(I,K)N110
(2) (G18 G41)
N100 T0101 N100 G41 T0101 G01 W150. I50. ;
(1) (N120) N110 G02 W100. I50. ;
N120 G01 W100.
X
~
Z
N3 N4
N1 N5 G40 ;
T0101
246
12. Tool Offset Functions
12.4 Tool nose radius compensation
X
N1 G28 X0Z0 ;
N2 G41 T0101 F1000 ;
Z
N3 G01 U100. W100. ;
N4 (I,K) N4 G42 W100. I-100. K100.
N3 T0102 T0102 ;
N5 U-100. W100. ;
N2 N6 G40 ;
N5 N7 M02 ;
T0101 N6 %
247
12. Tool Offset Functions
12.4 Tool nose radius compensation
The offset amounts are determined by the offset number (modal) in the block with the I, K
designation.
<Example 1>
~
(I,K)
X N100 N100 G41 W150. K50. ;
N110 N110 U-100. W100. ;
Z
~
Vector (A) is the offset amount entered in tool offset number modal 1 in the N100 block.
<Example 2>
(G41 T0101)
(B) T0102
T0101
~
X (I,K) N200 G41 W150. K50. T0102 ;
N200
N210 U-100. W100. ;
N210
~
Z
Vector (B) is the offset amount entered in tool offset number modal 2 in the N200 block.
248
12. Tool Offset Functions
12.4 Tool nose radius compensation
Precautions
(1) Issue the I, K type vector in a linear mode (G0, G1). If it is issued in an arc mode at the start of
compensation, program error (P151 G2, 3 CMP. ERR) will result.
An I, K designation in an arc mode functions as an arc center designation in the offset mode.
(2) When the I, K 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.
N1 G28 X0Z0 ;
Z N2 G41 T0101 F1000 ;
N3 W100. ;
N3 N4 N5 N6 N4 G41 U-100. W100. K10. ;
N5 U100. W100. ;
N6 G40 ;
N7 M02 ;
Cut
(I,K)
(3) Refer to the following table for the offset methods based on the presence and/or absence of the
G41 and G42 commands and I, K (J) command.
G41/G42 I, K (J) Offset method
No No Intersection point calculation type vector
No Yes Intersection point calculation type vector
Yes No Intersection point calculation type vector
Yes Yes I, K type vector No insertion block
249
12. Tool Offset Functions
12.4 Tool nose radius compensation
MDI interrupt
Tool nose 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 blow after block stop during tape or
memory operation.
N2 N3
U50. W30. ;
N2
N3
N1 G41 T0101 ;
MDI interrupt
N2 U50. W20. ;
N3 G3 U−40. W40. R70. ; G2 U−40. W40. R70. ;
G1 W40. ; S
N2 N3
250
12. Tool Offset Functions
12.4 Tool nose radius compensation
Manual interrupt
Program path
Interrupt
Interrupt
251
12. Tool Offset Functions
12.4 Tool nose radius compensation
(1) The compensation amount is normally assigned by designating the number of the
compensation amount by the last 1 or 2 digits of the T code. Depending on the machine
specifications, the high-order digits may be used. The T code will remain valid once
designated until another T code is subsequently commanded.
Besides being used to designate the compensation amounts for tool nose radius compensation,
the T codes are also used to designate the offset amounts for tool length offset.
(2) The compensation 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 compensation amount
designated in that block.
(1) An error results when any of the following commands are programmed during tool nose radius
compensation.
G17, G18, G19 ("P112" when a plane differing from that applying during the compensation has
been commanded)
G31 ("P608")
G74, G75, G76 ("P155")
G81 ~ G89 ("P155")
(2) An error ("P158") results when a tool nose point other than 1 to 8 has been designated in the
G46 mode.
(3) An error ("P156") results when the compensation direction is not determined by the movement
vector of the initial cutting command even when the tool nose radius compensation operation has
started in the G46 mode and 5 blocks have been pre-read.
(4) An error ("P151") results when a circular command is issued in the first or last block of the tool
nose radius compensation.
(5) A program error ("P157") results when the offset direction is reversed in the G46 mode.
A parameter can be set to move the tool in the same compensation direction. (Control
parameter "#8106 G46 NO REV-ERR")
(6) A program error ("P152") results during tool nose radius compensation when the intersection
point is not determined with single block skip in the interference block processing.
(7) A program error results when there is an error in one of the pre-read blocks during tool nose
radius compensation.
(8) A program error ("P153") results when interference arises under no interference avoidance
conditions during tool nose radius compensation.
(9) A program error ("P150") results when a tool nose radius compensation command is issued
even though the tool nose radius compensation specification has not been provided.
252
12. Tool Offset Functions
12.4 Tool nose radius compensation
A tool, whose tool nose has been compensated under the tool nose 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 two types of interference check, as indicated below, and each can be selected for use by
parameter.
Function Parameter Operation
Interference check Interference check avoidance OFF A program error results before the execution of
alarm function Interference check invalid OFF the block in which the cut arises, and operation
stops.
Interference check Interference check avoidance ON The tool path is changed so that workpiece is
avoidance function Interference check invalid OFF not cut into.
Interference check Interference check invalid OFF Cutting continues as is, even if the workpiece
invalid function is cut into.
Use in the fine segment program.
Detailed description
(Example)
N1 N3
N2
Z
Cutting with N2 Cutting with N2
253
12. Tool Offset Functions
12.4 Tool nose radius compensation
N2 N3
N1
r
Program path
N2 N3
N1 Center of circular
r
In the case of the figure below, the groove will be left uncut.
Program path
254
12. Tool Offset Functions
12.4 Tool nose radius compensation
(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 on
the right, the N2 in
interference check is
conducted, the N2 end
point vectors are all
deleted but the N3 end Alarm
point vectors are stop
regarded as valid.
Program error (P153)
now occurs at the N1 N1 2 3
end point.
1 4 N4
N2 N3
255
12. Tool Offset Functions
12.4 Tool nose radius compensation
N1 N4
N2 N3
Alarm stop
N1
N2
N4
Angle of
N3
intersection
256
12. Tool Offset Functions
12.4 Tool nose radius compensation
(c) When the program advance direction and the advance direction after compensation are
reversed
In the following case,
interference is still
Program path Nose R center path
regarded as
occurring even when
there is actually no Stop
interference.
When grooves which
are narrower than the
tool nose R diameter
or which have parallel
or widening walls are
programmed.
Stop
257
12. Tool Offset Functions
12.5 Programmed offset input
The amount of tool offset and workpiece offset can be set or changed by the G10 command. When
commanded with absolute values (X,Z,R), the commanded offset amounts serve as the new
amounts; when commanded with incremental values (U,W,C), the new offset amounts are
equivalent to the commanded amounts plus the current offset amount settings.
Command format
(4) When there is no L command with tool length offset input (L10) or tool nose wear offset input
(L11)
Tool length offset input command : P = 10000 + offset number
Tool nose wear offset input command : P = offset number
258
12. Tool Offset Functions
12.5 Programmed offset input
Detailed description
(1) The following table shows the offset numbers and the setting ranges of the hypothetical tool
nose points.
(2) The setting range for the offset amount is given blow.
Program error (P35) occurs for any value not listed in the table after command unit conversion.
With an incremental value command, the setting range for the offset amount is the sum of the
present setting and command value.
Tool length offset amount Tool wear offset amount
Setting
Metric system Inch system Metric system Inch system
#1003 = B ±99999.999 (mm) ±9999.9999 (inch) ±9999.999 (mm) ±9999.9999 (inch)
#1003 = C ±9999.9999 (mm) ±999.99999 (inch) ±999.9999 (mm) ±999.99999 (inch)
#1003 = D ±999.99999 (mm) - ±99.99999 (mm) -
259
12. Tool Offset Functions
12.5 Programmed offset input
260
12. Tool Offset Functions
12.6 Tool life management II
Tool life management divides the tools being used into several groups, and manages the life
(usage time, No. of uses) of the tools in each group. When the life is reached, a similar spare tool in
the same group will be selected in order. This tool life management function with spare tools allows
unmanned operation over a long time.
The tool life management data can be set from the NC program or from the Tool Life Management
screen.
Refer to the Operation manual for the method of setting from the Tool Life Management screen.
When using the NC program, register the data with the same method as program compensation
input.
Command format
261
12. Tool Offset Functions
12.6 Tool life management II
(1) The tool life data is registered by executing the above program in the memory or MDI mode.
(2) When the above program is executed, all data (group No., tool No., life data) registered
previously will be deleted. The registered data is held even when the power is turned OFF.
(3) The group No. designated with P does not have to be consecutive, but it should be set in
ascending order if possible. This will make monitoring on the screen easier. The group No.
cannot be commanded in duplicate.
(4) If the life data L_ is omitted, the life data for that group will be "0". If N_, which designates the
method, is omitted, the method for that group will follow the base specification parameter
"#1106 Tcount".
(5) Programming with a sequence No. is not possible between G10 L3 and G11.
(6) If the usage data count valid signal (Y2CA/W14A) is ON, G10 L3 cannot be commanded.
(P177 LIFE COUNT ACT)
Example of program
(1) Format
:
T99 ; Start use of group tool
:
:
T88 ; Cancel group tool offset
: (Equivalent to T∆∆00: ∆∆is number of tool being used).
:
M02 (M30) ; End of machining program
(2) Actual example
:
T0119 ; Start use of group 01 tool
:
:
T0188 ; Cancel group 01 tool offset
: If the number of the tool being used is 17, this is equivalent to T1700.
:
T0609 ; Selects tool No. 06 and offset No. 09.
: * Life management is not carried out for tool 06.
:
T0600 ; Cancel of group 06 tool offset
:
:
T0299 ; Start use of group 02 tool
:
:
T0199 ; Start use of group 01 tool
: If the selected tool has several compensation numbers, the second
compensation No. is selected.
262
12. Tool Offset Functions
12.6 Tool life management II
Example of tool selection operation (When one tool has several compensation numbers)
(1) To use several compensation numbers with one tool, select the next compensation No. for
each T99 command.
(2) If T99 is commanded for more times than the number of registered compensation
numbers, the last compensation No. will be selected, and the operation will continue. (Refer to
following.)
(3) If the above program is executed after resetting with M02/M30, or by resetting with external
reset, the selection will be made from the head compensation No.
263
12. Tool Offset Functions
12.6 Tool life management II
The tool life can be counted with the time-count type or No. of uses-count type. The count method
and timing for the No. of uses-count type can be changed to type 2 with the parameter setting
(#1277 ext13/bit0).
If the usage data is equivalent to or more than the life data as a result of the count up, a spare tool
in the group will be selected with the next group selection command (T99), and the newly
selected tool will be counted.
When all tools in the group have reached their lives and a spare tool cannot be selected, the count
will continue.
(1) Counting the time of uses when the time-count type method is selected
In the cutting mode (G01, G02, G03, G31, G33, etc.), the time that the tool is used is counted
with 100ms units.
The time is not counted during dwell, machine lock, miscellaneous function lock or dry run.
Whether to count or not for a single block can be changed by setting the parameter.
264
12. Tool Offset Functions
12.6 Tool life management II
(2) Counting the No. of uses when the No. of uses-count type method is selected
(a) Type 1 (#1277 ext13/bit0: 0)
The No. of uses is counted when the number of the tool being used is changed with the
tool selection command (T99) and when the program is in the cutting mode
(excluding machine lock, miscellaneous function lock and dry run states).
The use is not counted if the cutting mode is not entered even once after the No. changes.
Whether to count or not during single block can be changed with the parameter setting.
<<Operation example>>
Program Program
T0199........ 1 T0199....... 1
: :
T0299 T0199
: :
T0199........ 2 T0199
:
Group 01 has been used one time.
T0299
:
T0199........ 3
Group 01 has been used three
times.
* The No. of uses is for one program execution. If the program is executed again after
resetting, it will be counted.
(Note 1) A count is not made in the machine lock, miscellaneous function lock or dry
run states.
(Note 2) During single block, select whether to count with the parameter.
(Note 3) The maximum value of the life is 999999 times.
265
13. Program Support Functions
13.1 Fixed cycles for turning
When performing rough cutting and other such operations during turning, these functions enable
shapes normally commanded in several blocks to be commanded in a single block. In other words,
they simplify the machining program. The following types of fixed cycles for turning are available.
G code Function
G77 Longitudinal turning cycle
G78 Thread cutting cycle
G79 Face turning cycle
Command format
Detailed description
(1) Fixed cycle commands are modal G codes and so they are valid until another command in the
same modal group or a cancel command is issued.
The following G code cancel commands are available.
G00, G01, G02, G03
G07,
G09,
G10, G11,
G27, G28, G29, G30,
G31,
G33, G34,
G37,
G92,
G52, G53,
G65,
(2) The fixed cycle call becomes the movement command block call.
The movement command block call calls the fixed cycle macro subprogram only when there is
an axis movement command during the fixed cycle mode. It is executed until the fixed cycle is
canceled.
(3) A manual interrupt can be applied while a fixed cycle for turning (G77 ~ G79) is being executed.
Upon completion of the interrupt, however, the tool must be returned to the position where the
manual interrupt was applied and then the fixed cycle for turning should be resumed.
If it is resumed without the tool having been returned, all subsequent operations will deviate by
an amount equivalent to the manual interrupt.
266
13. Program Support Functions
13.1 Fixed cycles for turning
This function enables continuous straight cutting in the longitudinal direction using the following
command.
G77 X/U_ Z/W_ F_ ;
X axis
4(R)
U (R) : Rapid traverse
3(F) 1(R) (F) : Cutting feed
2(F) 2
Z W
X
Z axis
This function enables continuous taper cutting in the longitudinal direction using the following
command.
G77 X/U_ Z/W_ R_ F_ ;
X axis
4(R)
U (R) : Rapid traverse
3(F) 1(R) 2 (F) : Cutting feed
2(F)
R
Z W
X
Z axis
With a single block, the tool stops at the end points of operations 1, 2, 3 and 4.
267
13. Program Support Functions
13.1 Fixed cycles for turning
W W
4 4 1
U 3 1 U
2 2 3
2
R
2
R
X X
Z Z
2 R
R
U 2
2 3 U 3 1
1 2
4
4
W
W
Program error (P191) results with shapes (2) and (3) unless the following condition is satisfied.
|u/2 | ≥ | r |
268
13. Program Support Functions
13.1 Fixed cycles for turning
Straight cutting
This function enables straight thread cutting using the following command.
G78 X/U_ Z/W_ F/E_ Q_ ;
X axis
4(R)
U (R) : Rapid traverse
3(R) 1(R) 2
2(F) (F) : Cutting feed
Z W
X
Z axis
Taper cutting
This function enables taper thread cutting using the following command.
G78 X/U_ Z/W_ R_ F/E_ Q_ ;
X axis 4(R)
U
3(R) 1(R)
2(F) 2
(R) : Rapid traverse
r (F) : Cutting feed
Z W X
Z axis
269
13. Program Support Functions
13.1 Fixed cycles for turning
With a single block, the tool stops at the end points of operations 1, 3 and 4.
When the feed hold function is applied during a thread cutting cycle, automatic operation will stop if
no thread is then being cut, or if applied in the interval from the execution of the thread cutting
command to the axis movement. If thread cutting is proceeding when the function is applied, the
operation stops at the next movement completion position (completion of operation 3) of the thread
cutting.
The dry run valid/invalid status does not change during thread cutting.
270
13. Program Support Functions
13.1 Fixed cycles for turning
W W
4 4
1
U 3
U 3 1 2
2 2 R
2
R
X X
Z Z
X X
Z Z
R
2
R U
U 2 1
3 2 3
2
1 4
4
W
W
Program error (P191) results with shape (2) and (3) unless the following condition is satisfied.
| u/2 | ≥ | r |
(Note 1) The thread cutting start shift angle is not a modal. If there is no Q command with G78,
this will be handled as "Q0".
(Note 2) If a value exceeding 360.000 is command for G78 Q, this will be handled as "Q360.000".
(Note 3) G78 cuts one row with one cycle. To cut two rows, change the Q value, and issue the
same command.
271
13. Program Support Functions
13.1 Fixed cycles for turning
Straight cutting
This function enables continuous straight cutting in the face direction using the following command.
G79 X/U_ Z/W_ F_ ;
X axis
1(R)
U
2(F) 4(R)
2
(R) : Rapid traverse
3(F) (F) : Cutting feed
Z W
X
Z axis
272
13. Program Support Functions
13.1 Fixed cycles for turning
Taper cutting
This function enables continuous taper thread cutting using the following command.
G79 X/U_ Z/W_ R_ F_ ;
X axis r
1(R)
U (R) : Rapid traverse
2(F) 4(R)
2 (F) : Cutting feed
3(F)
Z W
X
Z axis
With a single block, the tool stops at the end points of operations 1, 2, 3 and 4.
273
13. Program Support Functions
13.1 Fixed cycles for turning
R W R
1(R) 1(R)
U
U 2(F) 4(R) 2 2(F)
2 4(R)
3(F) 3(F)
X X
Z Z W
R W W
3(F) 3(F)
U U 2(F) 4(R)
2 4(R) 2
2(F)
X 1(R) X 1(R)
Z Z R
Program error (P191) results with shapes (2) and (3) unless the following condition is satisfied.
|w|≥|r|
274
13. Program Support Functions
13.2 Fixed cycle for turning (MELDAS special format)
When performing rough cutting and other such operations during turning, these functions enable
shapes normally commanded in several blocks to be commanded in a single block. In other words,
they simplify the machining program.
When using the MELDAS special format (#1265 ext01/bit1 ON), some addresses differ from the
normal format. The sections that differ from the normal format are shown below.
Refer to section "13.1 Fixed cycle for turning " for details on the fixed cycles for turning.
Command format
Detailed description
275
13. Program Support Functions
13.3 Compound fixed cycles
These functions enable prepared fixed cycle to be executed by commanding the corresponding
program in a block.
The types of fixed cycles are listed below.
G code Function
G70 Finishing cycle
G71 Longitudinal rough cutting cycle (finished shape chamfering) Compound fixed
G72 Face rough cutting cycle (finished shape chamfering) cycles I
G73 Formed material rough cutting cycle
G74 Face cut-off cycle
Compound fixed
G75 Longitudinal cut-off cycle
cycles II
G76 Compound thread cutting cycle
If, with any of the above functions for the compound fixed cycle I (G70 ~ G73), the finished shape
program has not been entered in the memory, the function cannot be used.
Command format
G70 A_ P_ Q_ ;
G71 U_ R_ ;
G71 A_ P_ Q_ U_ W_ F_ S_ T_ ;
G72 W_ R_ ;
G72 A_ P_ Q_ U_ W_ F_ S_ T_ ;
G73 U_ W_ R_ ;
G73 A_ P_ Q_ U_ W_ F_ S_ T_ ;
G74 R_ ;
G74 X (U)_ Z (W)_ P_ Q_ R_ F_ ;
(Same for G75)
G76 P_ R_ ;
G76 X (U)_ Z (W)_ P_ Q_ R_ F_ ;
Detailed description
(1) The A, P and Q commands of the compound fixed cycles I are described below.
(a) When the A command is not present, P and Q in the program now being executed are
called.
When the A command is present and the P command is not present, the head block of
the program designated by the A command is treated as the P command.
(b) When the Q command is not present, operation continues until the M99 command is
located.
When both the Q and M99 commands are not present, operation continues until the final
block in the finished shape program.
276
13. Program Support Functions
13.3 Compound fixed cycles
This function calls the finished shape program and, while automatically calculating the tool path,
performs rough cutting in the longitudinal direction.
Command format
(f) d (f) d
X X
(f) (R)
(R)
u/2 u/2
(f) 45° e p Hole base p
(f) e
Z w Z w
277
13. Program Support Functions
13.3 Compound fixed cycles
278
13. Program Support Functions
13.3 Compound fixed cycles
Cutting shape
(1) Finished shape start block and finished shape end block
G71 Aa Pp Qq
The finished shape start block and finished shape end block are designated with the above
command.
There may be up to 50 finished shape blocks, including the blocks inserted with corner
chamfer, corner R command and nose R command. A program error (P202) will occur if the
number of blocks is exceeded.
<When creating finished shape program in <When creating finished shape program in program
machining program other than that being currently currently being executed>
executed> G71 Pp Qq
G71 Aa Pp Qq p: Finished shape start sequence No.
a: Finished shape program No. q: Finished shape end sequence No.
p: Finished shape start sequence No.
(From head of finished shape program when
omitted)
q: Finished shape end sequence No.
(To end of finished shape program or M99 when
omitted)
Program currently being executed Program currently being executed
G0 X80.0 Z75.0 T0101 ; ← (a) G0 X80.0 Z75.0 T0101 ; ← (a)
G71 U10. R3. ; ← (b) G71 U10. R3. ; ← (b)
G71 A100 P10 Q20 U3. W1.5 F500 S1500 ; ←(c) G71 P10 Q20 U3. W1.5 F500 S1500 ; ←(c)
G70 A100 P10 Q20 ; ← (d) N10 G0 X15.0 Z65.0 ;
: G1 Z55. F450 ;
Shape program G1 X30.0 ; Finished shape
O100 G3 X40.0 Z50.0 R5.0 ; program
G28 XZ ; G1 Z42.0 ;
N10 G0 X15.0 Z65.0 ; G1 X50.0 ;
G1 Z55. F450 ; G1 X55.0 Z35.0 ;
G1 X30.0 ; N20 G1 X60.0 ;
G3 X40.0 Z50.0 R5.0 ; Finished shape G70 A100 P10 Q20 ; ← (d)
: program
G1 Z42.0 ; Program execution order (a) (b) (c) (d)
G1 X50.0 Z35.0 ;
N20 G1 X60.0 ; * G70 command: Finishing cycle
N30 G0 X13.0 Z68.0 ; The workpiece is finished
: following the finishing program,
Program execution order (a) (b) (c) (d) and then the axis returns to the
G70 command position.
279
13. Program Support Functions
13.3 Compound fixed cycles
<Machining of mid-section>
A (G71 cycle command point)
280
13. Program Support Functions
13.3 Compound fixed cycles
A X A
C C
(2) (1)
B B
Z
B
B
(3) (4)
C C
A A
281
13. Program Support Functions
13.3 Compound fixed cycles
A
A X
C C
B
B
(2) (1)
(3) (4)
B B
C C
A A
* When setting the B point X axis at the base, the method is the same as the "<Rough
cutting direction when pocket machining is OFF>".
282
13. Program Support Functions
13.3 Compound fixed cycles
<ext07/bit5=0>
Cycle start point
Finishing allowance
First cut
Finished shape
Finishing allowance
<ext07/bit5=1>
Finishing allowance
Finished shape
Finishing allowance
283
13. Program Support Functions
13.3 Compound fixed cycles
A A
C C
B B
Z axis direction reverses Z axis direction reverses at middle of arc
Program error (P203) Program error (P203)
C B
There is a pocket when pocket
machining is OFF.
(An error will not occur, but the
B pocket section will be rough cut with
Program error (P203) one cut.)
284
13. Program Support Functions
13.3 Compound fixed cycles
B B
The Z axis direction reverses, so a finished The Z axis direction reverses in the middle of the arc, so
shape with cover at shaded section is created. a finished shape with cover at the shaded section is
(The shaded section is not cut) created.
(The shaded section is not cut)
B
B
Program error (P203) Program error (P203)
285
13. Program Support Functions
13.3 Compound fixed cycles
G1
G1 p
G0
G0
q p
G1 G1
G1 Finished shape start block
G1 after nose R compensation
G1
Finished shape end block G3 G1
after nose R compensation
G1
G1
<ext07/bit6=1>
The shape for which nose R compensation is not executed in the finished shape program
will be the rough cutting shape.
286
13. Program Support Functions
13.3 Compound fixed cycles
Cut amount
(1) The cut amount is designated by Ud. However, it is possible to change the cut amount with
each cutting pass by setting the cut change amount (∆d) using a parameter.
Cut amount designation (ext07/bit7)
<ext07/bit7=0>
If the amount of one cut commanded in the program is deeper than the cutting depth of the
finished shape (d < ∆d), a program error (P204) occurred.
<ext07/bit7=1>
A program error will not occur even if the amount designated for one cut is deeper than the
cutting depth of the finished shape, and the command will be executed as one cut.
Note that the amount of one cut must be commanded between 0 and 99.999mm. A
program error will occur if the value is not within this range.
(2) The end of the cutting is the cut amount, but if this value is smaller than the value set in the
parameters, cutting will not be carried out, and instead finishing rough cutting will be executed.
Parameter Cut amount (d) [Machining parameter] "#8051 G71 THICK"
0 to 99.999mm
Cutting change amount (∆d) [Machining parameter] "#8017 G71 DELTA-D"
0 to 99.999mm
Minimum cut amount for final cut [Machining parameter] "#8016 G71 MINIMUM"
0 to 99.999mm
1st d + ∆d
d + ∆d
2nd d
d
3rd d – ∆d
d – ∆d
4th d + ∆d d + ∆d
287
13. Program Support Functions
13.3 Compound fixed cycles
(1) The cutting method differs according to whether pocket machining is ON or OFF.
Pocket machining OFF ............Retracts in 45° direction in respect to workpiece
Pocket machining ON ..............Traces shape
(2) The retract amount is designated with Re, but the retract amount can also be set by
designating the amount in the parameters.
Pocket machining OFF ............Retracts in 45° direction in respect to workpiece
Parameter retract amount (e) [Machining parameter] "#8052 G71 PULL UP" 0 to 99.999mm
<When pocket machining is OFF>
(R)
(f) 45° e
(f)
Z
X X
(R)
(R) e
(f) (f)
(Note) ext08/bit0 is also used to select whether to automatically determine pocket machining.
(Refer to the explanation of "Hh" in Command format.)
288
13. Program Support Functions
13.3 Compound fixed cycles
Finishing margin
When the finishing allowance is designated, the Uu/Ww section will be left uncut from the finished
shape.
X axis finishing allowance ...... The finishing allowance is left uncut in the rough cutting start
point direction.
Z axis finishing allowance ...... The finishing allowance is left uncut in the rough cutting start
point direction.
Note that if down cutting (block commanded in direction in which
X axis faces hole base) is executed when pocket machining is
ON and then cutting is started from the middle of the longitudinal
direction, the Z axis finishing allowance direction will be
reversed.
<Finishing allowance when pocket machining is OFF or finishing allowance of open section when pocket
machining is ON (finished shape start block X axis is at base)>
G71 Ud Re H0 (or H1) ; Cycle
G71 Pp Qq ... ; command
point
Finished shape end block
q Rough cutting
start point
(f)
Finished shape
start block
p u/2
w
<Finishing allowance of mid-section when pocket machining is ON (Finished shape start block X axis =
finished shape end block X axis)>
The block that starts cutting from the middle of the
G71 Ud Re H1; (Valid when pocket machining is ON) longitudinal direction will have a reversed Z axis
G71 Pp Qq ... ; Cycle finishing allowance direction.
command Note) During nose R compensation, program so that
point the p and q X axis positions after nose R
Finished shape end block
Rough cutting compensation have the same value. (Refer to
q start point p "Cutting shape" (5).)
Finished shape
start block
289
13. Program Support Functions
13.3 Compound fixed cycles
Example of program
290
13. Program Support Functions
13.3 Compound fixed cycles
This function calls the finished shape program and, while automatically calculating the path,
performs rough cutting in the face direction.
Command format
(R) (R)
(f) (f)
Hole base
(f)
X X
e
(R)
(f) 45° (R) (f)
e
(f)
(f) q u/2 q u/2
Z Z
w Finishing allowance w
Finishing allowance
291
13. Program Support Functions
13.3 Compound fixed cycles
* The other detailed functions are the same as "13.3.1 Longitudinal rough cutting cycle".
292
13. Program Support Functions
13.3 Compound fixed cycles
This calls the finished shape program, automatically calculates the path and performs rough cutting
while cutting the workpiece into the finished shape.
Command format
G73 Ui Wk Rd ;
G73 Aa Pp Qq Uu Ww Ff Ss Tt ;
Ui X-axis direction cutting allowance i • Cutting allowances when P, Q
Wk Z-axis direction cutting allowance k commands are not present
Rd Number of divisions d • Modal data
• Sign is ignored
• Radius designation applies to the
cutting allowance.
Aa Finished shape program number (program being executed when omitted)
Pp Finished shape start sequence number (program head when omitted)
Qq Finished shape end sequence number (up to end of program or M99 when
omitted)
Note that this is up to M99 when M99
comes first, even when there is a Qq
command.
Uu X-axis direction finishing allowance u • Cutting allowance when P, Q
Ww Z-axis direction finishing allowance w commands are present
• Sign is ignored.
• Diameter/radius designation changes
in accordance with the parameters
(#1019 dia).
• The shift direction is determined by the
shape. For details, refer to the
"finishing allowance direction" for G71.
293
13. Program Support Functions
13.3 Compound fixed cycles
k+w
S1
S2
X
S3 i + u/2
7
1
13 S
Z 2
19
6 8
14
12 5
E 18 11 4
17 10 3
16 9
15
A u/2
w
(Note) With a single block, operation stops at the end point of each block.
294
13. Program Support Functions
13.3 Compound fixed cycles
Finished shape
1 cycle configuration
Cut amount
The cut amount is the value produced by dividing the cutting allowances (i, k) by the number of
divisions (d−1).
X axis direction i/(d−1)
Z axis direction k/(d−1)
When divisions cannot be made, chamfering is performed and adjustment is made at the final
pass.
i
(d-1)
i
(d-1)
i
(d-1)
Remainder
k
(d-1)
k k
Remainder (d-1) (d-1)
295
13. Program Support Functions
13.3 Compound fixed cycles
When this cycle is commanded with the tool nose R compensation mode still in force, tool nose R
compensation is applied to the finished shape program covered by this cycle and the cycle is
executed for this shape.
However, when this cycle is commanded with the tool nose R compensation mode still in force, the
compensation is temporarily canceled immediately before this cycle and started at the head block
of the finished shape program.
Others
1 2 3 4
S1 S1 S
S E E
Drawing E E
S
S
S1
S1
Initial X axis "−" direction − + +
Complete Z
"−" direction + + −
axis
X axis cutting "+" direction + − −
Z axis cutting "+" direction − − +
296
13. Program Support Functions
13.3 Compound fixed cycles
After rough cutting have been carried out by the G71 ~ G73 commands, finishing cutting can be
performed by the following command.
Command format
G70 A_ P_ Q_ ;
A Finished shape program number (program being executed when omitted)
P Finished shape start sequence number (program head when omitted)
Q Finished shape end sequence number (up to end of program when omitted)
Note that this is up to M99 when M99 comes first, even when there is a Q command.
(1) The F, S and T commands in the finished shape program are valid during the finishing cycle.
(2) When the G70 cycle is completed, the tool returns to the start point by rapid traverse and the
next block is read.
(Example 1) When a sequence number is designated
~
N110
N300 ……… ;
N120
~
N200
~
M99 ;
If the N100 cycle is executed in either Example 1 or Example 2, the N110 block is executed
next.
297
13. Program Support Functions
13.3 Compound fixed cycles
The G74 fixed cycle automatically enters a groove in the face direction of the workpiece by
commanding the coordinates of the groove end point, cut amount, cutter shift amount and cutter
escape at the bottom of the cut.
The machining program commands are as follows.
Command format
G74 Re ;
C74 X/(U)x Z/(w)z Pi Qk Rd Ff ;
Re Return amount (no X/U, P commands) (modal)
X/Ux B point X coordinate (absolute/incremental value)
Z/Wz B point Z coordinate (absolute/incremental value)
Pi Tool shift amount (radius designation, incremental value, sign not required)
Qk Cut amount (radius designation, incremental value, sign not required)
Rd Escape at the bottom of the cut When there is no sign, escapes even at the
bottom of the first cut. When a - sign is
attached, the tool escapes from the second
cut without escaping the first cut.
Ff Feedrate
z w
(11)
(10) S (Start point)
(9) (5) (1) (12) • Operation (9) as well as
i (7) (4) (3) (2) operation (12) immediately
(8) (6)
d before the final cycle are
executed with the remainder
u/2 amount.
• Operations (2), (4), (6), (8),
(10), (11) and (12) are
e executed at the rapid traverse
rate.
B
x
k k k k
298
13. Program Support Functions
13.3 Compound fixed cycles
Others
(1) When X/U and P are omitted or when the values of "x" and "i" are zero, operation will apply to
the Z axis only. Note that when there is an Rd command and no sign, the tool will escape at the
bottom of the cut.
(2) A case where the X/U or Z/W command is not present is treated as the assignment of a
parameter setting command (G74 Re). Even when G74 Pi Qk Rd ; is commanded, Rd is
regarded as Re, and the return amount is set.
(3) The escape direction does not change when a - sign is attached to the Rd command, or when
there is no sign.
(4) A program error (P204) results in the following cases.
(a) When " i " is zero or P has not been commanded even though X/U has been commanded.
(b) When tool shift amount " i " is greater than the "x" movement amount.
(c) When the escape amount "d" is greater than the shift amount " i ".
(d) When the return amount "e" is greater than the cut amount "k".
(e) When the cut in amount "k" is larger than the hole depth "w".
299
13. Program Support Functions
13.3 Compound fixed cycles
The G75 fixed cycle automatically enters a groove in the longitudinal direction of the workpiece by
commanding the coordinates of the groove end point, cut amount, cutter shift amount and cutter
escape at the bottom of the cut.
Command format
G75 Re ;
C75 X/(U)x Z/(w)z Pi Qk Rd Ff ;
Re Return amount (no X/U, P commands) (modal)
X/Ux B point X coordinate (absolute/incremental value)
Z/Wz B point Z coordinate (absolute/incremental value)
Pi Cut amount (radius designation, incremental value, sign not required)
Qk Tool shift amount (radius designation, incremental value, sign not required)
Rd Escape at the bottom of the cut When there is no sign, escapes even at the
bottom of the first cut. When a - sign is
attached, the tool escapes from the second
cut without escaping the first cut.
Ff Feedrate
z w
S (Start point)
(12)
i
(1) • Operation (9) as well as
e (2)
operation (12) immediately
i (3) before the final cycle are
(4) executed with the remainder
(5) amount.
i (11) u/2 • Operations (2), (4), (6), (8),
(6) (10), (11) and (12) are
(7)
executed at the rapid traverse
i rate.
(8)
(9)
B
d (10)
k x
300
13. Program Support Functions
13.3 Compound fixed cycles
Others
(1) When Z/W and Q are omitted or when the values of "z" and "k" are zero, operation will apply to
the X axis only (slitting). Note that when there is an Rd command and no sign, the tool will
escape at the bottom of the cut.
(2) A case where both the X/U and Z/W commands are not present is treated as the assignment of
a parameter setting command (G75 Re). Even when G75 Pi Qk Rd ; is commanded, Rd is
regarded as Re, and the return amount is set.
(3) The escape direction does not change when a - sign is attached to the Rd command, or when
there is no sign.
(4) A program error (P204) results in the following cases.
(a) When "k" is zero or Q has not been commanded even though Z/W has been commanded.
(b) When tool shift amount "k" is greater than the "z" movement amount.
(c) When the escape amount "d" is greater than the shift amount "k".
(d) When the return amount "e" is greater than the cut amount " i ".
(e) When the cut in amount "i" is larger than the hole depth "u/2".
301
13. Program Support Functions
13.3 Compound fixed cycles
The G76 fixed cycle enables the workpiece to be cut at the desired angle by designating the thread
cutting start point and end point, and it automatically cuts so that the cutting cross section (cutting
torque) per cutting pass is constant.
Various longitudinal direction threads can be cut by bearing in mind the command value for the
thread end point coordinate and taper height component.
Command format
G76 Pmra Rd ;
G75 X/U Z/W Ri Pk Q∆d Fl ;
m Number of cutting passes for finishing: 00 ~ 99 (times) (modal)
r Chamfering amount: 00 ~ 99 (0.1mm/rev) (modal)
The chamfering width based on thread lead "l" is designated by a 2-digit integer
without decimal point from 0.0 to 9.9.
a Tool nose angle (thread angle): 00 ~ 99 (°) (modal)
The angle from 0° to 99° is assigned in 1° units.
"m", "r" and "a" are commanded in succession in address P.
(Example) When m=5, r=1.5 and a=0° P is 051500 and the leading and trailing
zeroes cannot be omitted.
d Finishing allowance 0 to 9999 (µm) (modal)
X/U X-axis end point coordinate of thread
The X coordinate of the end point for the thread is commanded by an absolute or
incremental value.
Z/W Z-axis end point coordinate of thread
The Z coordinate of the end point for the thread is commanded by an absolute or
incremental value.
i Taper height component (radius value) for thread straight thread when "i" is zero
k Thread height
This is commanded by a positive radial value.
∆d Cut amount
The cut amount of the first cutting pass is commanded by a positive radius value.
l Thread lead
(Note 1) The two above G76 commands cannot be placed in the same block.
The data commanded by P, Q and R are automatically identified according to the
presence or absence of the X/U and Z/W axis addresses.
(Note 2) Parameter settings can be used for the above "r" modal data but these parameter (#8014
chamfer amount) settings are rewritten by the program commands.
(Note 3) The chamfering amount designation is valid even for thread cutting fixed cycles.
(Note 4) Program error (P204) results in the following cases.
(a) When "a" is outside the rating
(b) When both the X and Z commands have not been issued or when the start and end
point coordinates are the same for either the X or Z command.
(c) When the thread is greater than the movement of the X axis at the thread bottom
(Note 5) The precautions for the thread cutting command (G33) and thread cutting cycle (G78)
should be observed.
302
13. Program Support Functions
13.3 Compound fixed cycles
1 cycle configuration
The tool moves at rapid traverse for operations (1), (2), (5) and (6) in the cycle and at the cutting
feed based on the F designation for operations (3) and (4).
z w
S
(6) (1)
(5)
u/2
(4)
(2)
(3)
( -i)
x r
When Ri is negative a°/2
z w
S
(6) (1)
(5)
(2)
u/2
(4) (3) k
i
a°/2
r
x When Ri is positive
303
13. Program Support Functions
13.3 Compound fixed cycles
a° ∆d for 1st
cutting pass
2nd cutting
k pass
∆d × √ 2 nth cutting pass
∆d × √ n
Example of program
X axis
32.0
0.2
Z axis
24.0 46.0
304
13. Program Support Functions
13.3 Compound fixed cycles
Interrupt operation
(1) When the feed hold button is pressed while G76 is being executed, automatic operation will
stop upon completion of a block without thread cutting if thread cutting is ongoing. (The
automatic operation pause lamp lights immediately in the feed hold mode and it goes off when
automatic operation stops.)
If feed hold is applied when no thread is then being cut, or if applied in the interval from the
execution of the thread cutting command to the axis movement, the automatic operation
pause lamp will turn ON, and the automatic operation will pause.
(2) The tool stops upon completion of operations (1), (4) and (5) when the mode is switched to
another automatic operation mode during the G76 command execution, when automatic
operation is changed to manual operations or when single block operation is conducted.
(3) The dry run valid/invalid status during G76 execution does not change during thread cutting.
305
13. Program Support Functions
13.3 Compound fixed cycles
Precautions
(1) Command all required parameters in a compound fixed cycle command block.
(2) Provided that the finished shape program has been entered in the memory, compound fixed
cycle I commands can be executed in the memory, MDI or tape operation mode.
(3) When executing a G70 ~ G73 command, ensure that the sequence number of the finished
shape program which is stop with P and Q is not duplicated in that program.
(4) The finished shape program specified by P and Q in the G71 ~ G73 blocks should be prepared
so that the maximum number of blocks is 200 for all the commands for corner chamfering,
corner rounding and other commands including the automatic insertion blocks based on tool
nose R compensation. If this number is exceeded, program error (P202) results.
If the cutting start position is the cycle start position (#1271 ext07/bit5 =1), the finished shape
program can have up to 199 blocks. (When the cycle start point is on the other side of the
finished shape program's final position.)
(5) The finished shape program which is designated by the G71 ~ G73 blocks should be a
program with monotonous changes (increases or reductions only) for both the X and Z axes.
(6) Blocks without movement in the finished shape program are ignored.
(7) N, F, S, M, and T commands in the finished shape program are ignored.
(8) When any of the following commands are present in a finished shape program, program error
(P201) results.
(a) Commands related to reference point return (G27, G28, G29, G30)
(b) Thread cutting (G33)
(c) Fixed cycles
(d) Skip functions (G31, G37)
(9) If subprogram call or macro call commands are present in the finished shape program, these
commands will also be executed.
(10) Except for thread cutting cycles, operation stops at the end (start) point of each block in the
single block mode.
306
13. Program Support Functions
13.3 Compound fixed cycles
(11) Remember that, depending on whether the sequence or program number is designated, the
next block upon completion of the G71, G72 or G73 command will differ.
(a) When the sequence number is (b) When the program number is
designated designated
The next block is the next block designated The next block is the next block of the cycle
by Q. command.
~
N100 G71P200 Q500 U_W_ ….. ; N100 G71 A100 U_W_ ….. ;
N200
N200
N300 O100
Finished shape N300
N400 program N10 X100. Z50. ;
N400
N500 N20
N600
Operation moves to the N600 block upon Operation moves to the N200 block upon
completion of the cycle. completion of the cycle.
(12) The next block applying upon completion of the G70 command is the next block of the
command block.
~
N100 ...... ;
N200 ;
N300 ;
N400 ;
N500 ;
~
Operation moves to the N1100 block upon completion of the G70 command.
(13) It is possible to apply a manual interrupt while a compound fixed cycle command (G70 ~ G76)
is being executed. However, upon completion of the interrupt, the tool must first be returned to
the position where the interrupt was applied and then the compound fixed cycle must be
restarted.
If it is restarted without the tool having been returned, all subsequent movements will deviate
by an amount equivalent to the manual interrupt amount.
(14) Compound fixed cycle commands are unmodal commands and so they must be issued every
time they are required.
(15) Program error (P203) results with the G71 and G72 commands even when, because of tool
nose R compensation, there is no further movement of the Z axis in the second block or the Z
axis has moved in the opposite direction.
(16) A program error (P204) will occur if the finished shape program is issued in the same program
with G70 to G73 and both P and Q are not designated.
Note that if A, P and Q are all not designated in G71 to G73, this will be interpreted as the first
block for the compound fixed cycle I, and an error will not occur.
307
13. Program Support Functions
13.3 Compound fixed cycles
(17) Set the cycle start point in the final block of the compound turning fixed cycle I so that the tool
retracts from the workpiece cutting face. This is necessary to prevent the cutter from interfering
with the convex sections of the workpiece.
Poor example Good example
Cycle command point
Interferes at final block since cycle start
point is low
q q
Cycle
command
point
p p
(18) Pocket machining is an option. If the option is not provided, H1 will operate as H0 even if
designated.
308
13. Program Support Functions
13.4 Compound fixed cycle (MELDAS special format)
This function allows a prepared fixed cycle to be executed by commanding the program in one
block.
When using the MELDAS special format (#1265 ext01/bit0 ON), some of the addresses differ from
the normal format.
With the normal format, G71 to G76 are commanded in two blocks. However with the MELDAS
special format, these are commanded with one block. The sections that differ from the normal
format are explained in this section.
Refer to section "13.3 Compound fixed cycle" for details on the compound fixed cycle.
Command format
G71 P Q U_ W D F S T ;
(Same for G72)
P Finished shape start sequence No.
Q Finished shape end sequence No.
U X axis direction finishing allowance
W Z axis direction finishing allowance
D Cut amount
F Cutting speed
S Spindle speed
T Tool command
G73 P Q U_ W I K D F S T ;
P Finished shape start sequence No.
Q Finished shape end sequence No.
U X axis direction finishing allowance
W Z axis direction finishing allowance
I X axis direction cutting allowance
K Z axis direction cutting allowance
D Number of divisions
F Cutting speed
S Spindle speed
T Tool command
309
13. Program Support Functions
13.4 Compound fixed cycle (MELDAS special format)
Detailed description
310
13. Program Support Functions
13.4 Compound fixed cycle (MELDAS special format)
311
13. Program Support Functions
13.4 Compound fixed cycle (MELDAS special format)
By commanding P2 in the G76 block of the compound thread cutting cycle, zigzag thread cutting
with a set cut amount can be carried out.
z w
(4)
u/2
(3)
(2)
z w
(2)
u/2
(4) (3)
312
13. Program Support Functions
13.4 Compound fixed cycle (MELDAS special format)
Tool nose
√2D/2
H1
(√2+√4)D/2
√2D
√4D
(√4+√6)D/2
√6D
H2 k
H3
H4
H5
H6 H7
H8
d (Finishing allowance)
H9
Parameter setting value
(1) Always designate P and Q in G71 to G73. A program error (P204) will occur if either is not
designated.
(2) The thread cutting start shift angle is to a modal. If there is no Q command at G76, this will be
handled as "Q0".
(3) If a value exceeding 360.000 is commanded for Q in G76, it will be handled as "Q360.000".
(4) G76 cuts one row with one cycle. To cut two rows, change the Q value, and issue the same
command.
313
13. Program Support Functions
13.5 Hole drilling fixed cycles
These fixed cycles are used for predetermined sequences of machining operations such as normal
positioning, hole drilling, boring and tapping which are specified in a block. The various sequences
available using these functions are listed in the table below.
Hole
Operation at hole Return
G code drilling Hole drilling start Application
bottom operation
axis
G80 − − − − Cancel
Cutting feed, In-position check Rapid Deep hole
G83 Z Dwell
intermittent feed traverse drilling cycle 1
In-position check Tapping cycle
G84 Dwell, spindle
Z Cutting feed Cutting feed (Reverse tap
(G84.1) reverse rotation cycle)
In-position check
G85 Z Cutting feed Dwell Cutting feed Boring cycle
314
13. Program Support Functions
13.5 Hole drilling fixed cycles
Command format
(3) Cancel
G80 ;
315
13. Program Support Functions
13.5 Hole drilling fixed cycles
Address Significance
Selection of hole machining cycle sequence (G80, G83, G84, G85,
G
G87, G88, G89)
∗ X/U (Z/W), Designation of hole position initial point (absolute/incremental
C/H value)
Designation of hole bottom position (absolute/incremental value
∗ Z/W (X/U)
from R point)
Designation of R point position (incremental value from initial point)
R
(sign ignored)
Designation of cut amount for each cutting pass with G83 (G87);
Q
always incremental value, radius value (sign ignored)
Designation of dwell time at hole bottom point; relationship between
P
time and designated value is same as for G04 designation
F Designation of feedrate for cutting feed
K Designation of number of repetitions, 0 ~ 9999 (standard value = 1)
D Designate of spindle used in tap cycle
S Designation of spindle rotation speed
,S Designation of spindle rotation speed at return
Designation of synchronous tapping/asynchronous tapping
,R (Note) The spindle rotation direction can be reversed using the
synchronous tap command polarity reversal signal.
M Designation of miscellaneous command
∗ : Addresses in parentheses apply for commands G87, G88 and G89.
316
13. Program Support Functions
13.5 Hole drilling fixed cycles
Detailed description
The hole drilling axes for the hole drilling fixed cycle and the positioning are shown in the outline
drawing below.
(3)
(4)
x4
(1)
q4
(2)
z2
q2
r2
r4 x2
z4 C
+Z
Rotary tool for Z axis +X
(1) G83 Xx1 Cc1 Zz1 Rr1 Qq1 Pp1 Ff1 Kk1 ;
(2) G83 Xx2 Cc2 Zz2 Rr2 Qq2 Pp2 Ff2 Kk2 ;
(3) G87 Zz3 Cc3 Xx3 Rr3 Qq3 Pp3 Ff3 Kk3 ;
(4) G87 Zz4 Cc4 Xx4 Rr4 Qq4 Pp4 Ff4 Kk4 ;
317
13. Program Support Functions
13.5 Hole drilling fixed cycles
Example of operation
There are 7 actual operations which are each described in turn below.
Operation 3 Operation 7
R point
Operation 4
Operation 6
Operation 5
Operation 1 : This denotes the positioning (by rapid traverse) of the tool to the X (Z) and C
axis initial point. If ",I" (Positioning axis in-position width) is commanded,
in-position check will be carried out after the block completes.
Operation 2 : This is output provided that the M code for C-axis clamping is issued.
Operation 3 : The tool is positioned as far as the R point by rapid traverse.
Operation 4 : Hole machining is conducted by cutting feed.
If ",J" (Hole drilling axis in-position width) is commanded, in-position check will
be carried out after the block completes.
Note that in case of deep drilling cycle 1 or 2, in-position check will not be
carried out halfway for the hole drilling. It will be carried out at designated hole
bottom position (the last hole drilling).
Operation 5 : This operation takes place at the hole bottom position and it differs according
to the fixed cycle mode. Possible actions include rotary tool reverse rotation
(M04), rotary tool forward rotation (M03) and dwell.
Operation 6 : The tool is retracted as far as the R point.
Operation 7 : The tool is returned as far as the initial point at the rapid traverse rate.
(Operations 6 and 7 may be a single operation depending on the fixed cycle mode.)
(Note) As for the synchronous tapping command, in-position check will be carried out depending on
the parameter #1223 (Synchronous tap improvement). (Only some models)
Whether the fixed 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 G commands are modal. Once, for instance, G98 is designated, the G98 mode will remain
valid until the G99 command is issued. The G98 mode is established in the initialized state when
the NC unit is ready to operate.
318
13. Program Support Functions
13.5 Hole drilling fixed cycles
Refer to "Example of operation" for in-position check of the other hole drilling cycle (including
asynchronous tapping).
Setting values of synchronous tap in-position check parameters and tap axis movement
319
13. Program Support Functions
13.5 Hole drilling fixed cycles
(2) In-position width and tap axis movement for a synchronous tap in-position check
FIN
Hole bottom R point
320
13. Program Support Functions
13.5 Hole drilling fixed cycles
(3) Relation between the parameter setting values and tap axis movement for a synchronous tap
in-position check
Synchro- In-position In-position In-position Operation at
nous tap check at check at check at Hole bottom Operation at Operation at I point →
improve- hole R point I point → wait time hole bottom R point R point
ment bottom R point
‘0’ — — — Time designated Operation Operation Operation
by "P". determined by determined by determined by
Processing time is setting of inpos setting of inpos setting of inpos
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.
‘1’ Not Not Executed Larger value of Wait until time in Wait until
executed executed "P" and TapDwl left column has completion of
(#1313) is valid. elapsed. in-position check
No dwell executed by G0inps value.
if both values are
0.
‘1’ Not Executed Executed Larger value of Wait until time in Wait until Wait until
executed "P" and TapDwl left column has completion of completion of
(#1313) is valid. elapsed. in-position check in-position check
No dwell executed by G1inps value. by G0inps value.
if both values are
0.
‘1’ Executed Not Executed Larger value of Wait until dwell Wait until
executed "P" and TapDwl time in left column completion of
(#1313) is valid. has elapsed after in-position check
No dwell executed completion of by G0inps value.
if both values are in-position check.
0.
‘1’ Executed Executed Executed Larger value of Wait until dwell Wait until Wait until
"P" and TapDwl time in left column completion of completion of
(#1313) is valid. has elapsed after in-position check in-position check
Processing time is completion of by G1inps value. by G0inps value.
several 10ms if in-position check.
both values are 0.
‘1’ Not Not Not Larger value of Wait until time in
executed executed executed "P" and TapDwl left column has
(#1313) is valid. elapsed.
No dwell executed
if both values are
0.
‘1’ Not Executed Not Larger value of Wait until time in Wait until
executed executed "P" and TapDwl left column has completion of
(#1313) is valid. elapsed. in-position check
No dwell executed by G1inps value.
if both values are
0.
‘1’ Executed Not Not Larger value of Wait until dwell
executed executed "P" and TapDwl time in left column
(#1313) is valid. has elapsed after
No dwell executed completion of
if both values are in-position check.
0.
‘1’ Executed Executed Not Larger value of Wait until dwell Wait until
executed "P" and TapDwl time in left column completion of
(#1313) is valid. has elapsed after in-position check
Processing time is completion of by G1inps value.
several 10ms if in-position check.
both values are 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.
321
13. Program Support Functions
13.5 Hole drilling fixed cycles
13.5.1 Face deep hole drilling cycle 1; G83 (Longitudinal deep hole drilling cycle 1; G87)
q q
d d
q q
.. ..
. .
P -Z point P Z point
(1) Return amount "d" is set by the setup parameter (#8013 G83 return). The tool returns at rapid
traverse.
(2) (Mα) : The M code (Mm) is output when there is a C-axis clamping M code command (Mm).
(3) (Mβ) : The C-axis unclamping M code (C-axis clamp M code + 1 = Mm + 1) is output when
there is a C-axis clamping M code command (Mm).
(4) P : Dwell is performed for the duration equivalent to the time designated by P.
(5) P' : After the C-axis unclamping M code (Mm+2) has been output, dwell is performed for
the duration equivalent to the time set by the parameter (#1184 clmp_ D).
R point R point
(Mβ), P '
Z point P Z point P
See "When the Q command is present (deep hole drilling)" for details on Mα, Mβ, P and P ' .
322
13. Program Support Functions
13.5 Hole drilling fixed cycles
Detailed description
G84 (G88) is explained below. With the reverse tapping cycle G84.1 (G88.1), the tap rotation
direction is reversed.
G84 (G88) Xx1 Cc1 Zz1 Rr1 Pp1 Ff1 Kk1 Dd1 Ss1 ,Ss2 ,Rr2 Mm1 ;
G98 mode G99 mode
(1) See Section 13.5.1"When the Q command is present (deep hole drilling)" for details on Mα, Mβ,
P and P ' .
(2) When G84 (G88) is executed, the override will be canceled and the override will automatically
be set to 100%.
(3) 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 (G88) execution, block stop
occurs after returning completes.
(4) During single block operation, the axis will not stop at the turning point of tap cycle.
(5) During the G84 (G88) modal, the "Tapping" NC output signal will be output.
(6) During the G84 (G88) synchronous tapping modal, the M3, M4, S code, etc. will not be output.
(7) The tool stops at the reference point and the rotary tool forward rotation signal is output.
(8) The rotation of the rotary tool is reversed at the hole bottom and tapping is performed.
(9) Before the rotary tool reverse (M04) or forward rotation (M03) signal is output, the fixed cycle
subprograms should be edited if the rotary tool stop (M05) command is required.
323
13. Program Support Functions
13.5 Hole drilling fixed cycles
(Example)
M29 ; (M command synchronous tap)
G84 Z50. R20. F2. ; or G84 Z50. R20. F2. M29 ;
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
M function code (M**) × { × { × { × { × { × {
Synchronous/
A A A A S S S S A S S S
asynchronous selection
× : Does not command A : Asynchronous tap
{ : Commands S : Synchronous tap
324
13. Program Support Functions
13.5 Hole drilling fixed cycles
The synchronous tap selection is canceled when the reset, G80 (hole drilling fixed cycle cancel), 01
group G code or other fixed cycle G code is commanded.
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.
(1) 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
325
13. Program Support Functions
13.5 Hole drilling fixed cycles
(2) 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
(1) The command value range is "1 to the number of spindles". A program error (P35) will occur if
a value exceeding the range is set.
(2) When multiple spindle control II is valid, the spindle is selected from the PLC so do not
command Dd1. A program error (P32) will occur if commanded.
(3) When Dd1 is omitted, the spindle designated with the spindle selection command will be
selected.
326
13. Program Support Functions
13.5 Hole drilling fixed cycles
Detailed description
R point R point
(Mβ), P ' (Mβ), P '
f 2f f 2f
Z point P Z point P
(1) See Section 13.5.1 "When the Q command is present (deep hole drilling)" for details on Mα,
Mβ, P and P ' .
(2) The tool returns to the R point at a cutting feedrate which is double the designated feedrate
command. However, it does not exceed the maximum cutting feedrate.
The deep hole drilling cycle 2 drills deep holes in the X-axis or Z-axis direction by commanding the
X or Z coordinate of the end point and the cut amount with cutting feed.
Command format
G83.2 W/Z/U/X R I K A Q J F ;
W/Z/U/X Incremental value from hole drilling start point/coordinates of hole bottom (with
sign)
R Incremental value (sign ignored) from present position up to hole drilling start
point, always radius value with incremental value.
I Cut amount of first cutting pass (sign ignored), always radius value with
incremental value.
K Cut amount of second and subsequent cutting passes (sign ignored), always
radial value with incremental value.
A Drill stop safety distance for second and subsequent cutting passes (sign
ignored), always radial value with incremental value.
Q Dwell time at cut point (sign ignored, decimal point invalid)
J Dwell time at return point (sign ignored, decimal point invalid)
F Cutting feedrate
327
13. Program Support Functions
13.5 Hole drilling fixed cycles
Operation
Z W R
K K K I
A A A A
G1 G0
Dwell J
G0
Dwell Q
No dwell J
Example of program (when deep hole drilling cycle 2 is used as a modal command)
G28 XZ ;
G0 X0. Z0. ;................................................................................................................. (1)
G83.2 Z110. R20. I30. K20. A5. Q1000 J500. F300. ; ............................................... (2)
X100. ;......................................................................................................................... (3)
X50. ;........................................................................................................................... (4)
M02 ;
Operation
Movement as
far as X100. Movement as far as X50.
328
13. Program Support Functions
13.5 Hole drilling fixed cycles
Detailed description
(1) When the drill stop safety distance (address "A") command is not given, the parameter #8013
return parameter setting value is used.
(2) The deep hole drilling cycle 2 is a modal command and so it will remain valid until a command
in the same modal group or the cancel command (G80) is issued.
(3) If the command either for the cut amount (address "I") for the first cutting pass or the cut
amount (address "K") for the second and subsequent passes is not present (including a
command value of zero), the command value which is present will be used and the operation
will be executed with both I and K equal to the command value.
If both commands are not present, hole drilling is conducted once as far as the hole bottom.
(4) When the axis address of the hole drilling axes has been commanded a multiple number of
times in a block, the address commanded last is valid.
(5) The deep hole drilling fixed cycle 2 is also canceled by any G code in the 01 group except G80.
If it is commanded in the same block as the fixed cycle, the fixed cycle will be ignored.
m = 01 group code, n = hole drilling fixed cycle code
(a) Gm Gn X(z)__ C__ Z(x)__ R__ I__ K__ A__ Q__ J__ F__ ;
Executed Ignored Executed Ignored Memorized
(b) Gn Gm X(z)__ C__ Z(x)__ R__ I__ K__ A__ Q__ J__ F__ ;
Ignored Executed Ignored Memorized
(Examples) G01 G83.2 Z50. R−10. I8. K10. A3. Q1000 J500 F100. ;
G83.2 G01 Z50. R−10. I8. K10. A3. Q1000 J500 F100. ;
In both cases, G01 Z50. F100. is executed.
(6) When a miscellaneous command is issued in the same block as the deep hole drilling cycle 2
command, it is output at the same time as the initial positioning.
(7) When a tool length offset command (T function) is issued in the deep hole drilling cycle 2 mode,
execution will follow the tool length offset function.
(8) If the basic axis, additional axis or R data are in the block during the deep hole drilling cycle 2
mode, hole drilling is performed; if the data are not present, no holes are machined.
Even if the X-axis data are present, no holes will be machined if the dwell (G04) time command
is present in the block.
(9) Command the hole machining data (A, I, K, Q, J) in the block (including the basic axis,
additional axis or R data) in which the hole drilling operation is conducted.
Even if they are commanded in a block with no hole drilling operation, the modal data will not
be updated.
(10) A program error (P33) results with the following commands.
(a) When both the X hole drilling axis (command address X or U) and the Z hole drilling axis
(command address Z or W) have been commanded.
(b) When any axis except X or Z (any command address except X, U, Z and W) has been
commanded.
329
13. Program Support Functions
13.5 Hole drilling fixed cycles
(11) When the feed hold button is pressed while the deep hole drilling cycle 2 is being executed,
feed hold results at that point, and when automatic operation is restarted, the remainder is
executed.
(12) When an interrupt based on manual operation is performed during the feed hold (manual
absolute switch ON), the operation in the deep hole drilling cycle 2 modal is shifted from the
automatic operation restart by an amount equivalent to the movement caused by the interrupt.
(13) With single block operation, block stop results upon completion of the deep hole drilling cycle 2
command.
Detailed description
This cancels the hole drilling fixed cycle (G83, G84, G85, G87, G88, G89). The hole machining
mode and hole machining data are both canceled.
Precautions
(1) When a G84 or G88 fixed cycle is commanded, the rotary tool must be rotated in the specified
direction beforehand by the previous miscellaneous functions (M3, M4).
(2) If there is data for the basic axis, additional axis or R in the same block during fixed cycle mode,
hole drilling is carried out. If there is no data, the hole drilling is not carried out.
Note that even with X axis data, if that block is a dwell (G04) time command, the hole drilling is
not carried out.
(3) Command hole machining data (Q, P) in the block in which hole drilling is carried out (block
containing data for the basic axis, additional axis or R).
The modal data is not updated in blocks without hole drilling, even if these data are
commanded.
(4) The F modal may change when a reset is applied during execution of G85 (G89).
330
13. Program Support Functions
13.5 Hole drilling fixed cycles
(5) The hole drilling fixed cycle is also canceled by 01 group G codes other than G80. If these are
commanded in the same block as the fixed cycle, the fixed cycle will be ignored.
m = 01 group code n = hole drilling fixed cycle code
(a) Gm Gn X(z)__ C__ Z(x)__ R__ Q__ P__ K__ F__ ;
Executed Ignored Executed Ignored Memorized
331
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
These fixed cycles are used for predetermined sequences of machining operations such as normal
positioning, hole drilling, boring and tapping which are specified in a block. The various sequences
available using these functions are listed in the table below.
This function is valid when the MELDAS special format is added (#1265 ext01/bit2 is ON).
Hole machining Operation at hole Return
G code start bottom operation Application
(−Z direction) Dwell Spindle (+Z direction)
G80 ⎯ ⎯ ⎯ ⎯ Cancel
Drill, spot drilling
G81 Cutting feed ⎯ ⎯ Rapid traverse
cycle
Drill, counter boring
G82 Cutting feed Yes ⎯ Rapid traverse
cycle
Deep hole drilling
G83 Intermittent feed Yes ⎯ Rapid traverse
cycle
G83.1 Intermittent feed Yes ⎯ Rapid traverse Stepping cycle
Reverse
G84 Cutting feed Yes Cutting feed Tapping cycle
rotation
Reverse Synchronous tap
G84.2 Cutting feed Yes Cutting feed
rotation cycle
G85 Cutting feed ⎯ ⎯ Cutting feed Boring cycle
G89 Cutting feed Yes ⎯ Cutting feed Boring cycle
A fixed 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.
Command format
G8∆ X Y Z R Q P F L S , S ,I ,J
G8∆ Hole machining mode
X Y Z Hole positioning data
R Q P F Hole machining data
L Number of repetitions
S Spindle rotation speed
,S Spindle rotation speed during return
,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, spindle rotation speed during return,
positioning axis in-position width and drilling axis in-position width.
332
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
Detailed description
(1) The hole machining mode refers to the fixed cycle modes such as drilling, counter boring,
tapping and boring. The hole positioning data is the data used to position the X and Y axes.
The hole machining data is the machining data actually used for machining. The hole
positioning data and No. of repetitions are unmodals and the hole machining data and spindle
rotation speed during return are modals.
(2) If M00 or M01 is commanded in the same block as the fixed cycle or during the fixed cycle
mode, the fixed cycle will be ignored. Instead, M00 and M01 will be output after positioning.
The fixed cycle will be executed if X, Y, Z or R is commanded.
(3) There are 7 actual operations which are each described in turn below.
Operation 1 : This indicates the X and Y axes positioning, and executes positioning with G00.
Operation 2 : This is an operation done after positioning is completed (at the initial point), and
when G87 is commanded, the M19 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 1 Operation 2
Initial point
Operation 3 Operation 7
R point
Operation 4 Operation 6
Operation 5
Operation 5 : This operation takes place at the hole bottom position and it differs according to
the fixed cycle mode. Possible actions include spindle stop (M05) spindle
reverse rotation (M04), spindle forward rotation (M03), dwell and tool shift.
Operation 6 : Escaping to the R point may take place with either cutting feed or rapid traverse
depending on the fixed cycle mode.
Operation 7 : The tool is returned to the initial pint at the rapid traverse rate.
Whether the fixed 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 fixed cycle.
333
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
Address Significance
G Selection of hole drilling fixed cycle sequence (G80 to G89)
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 G83, or designation of
Q
the shift amount at G87 (incremental value)
R Designation of R point position (absolute value or incremental value)
F Designation of feedrate for cutting feed
L Designation of number of repetitions. 0 to 9999
(5) Difference between absolute value command and incremental value command
-r
R point +r R point
-z
-z
Workpiece Workpiece
334
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
The fixed 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. The basic axis will be the hole drilling axis if there is no designation.
(Example 1) When G17 (XY plane) is selected, and the axis parallel to the Z axis is set as the W
axis.
G81 ... Z__ ; The Z axis is used as the hole drilling axis.
G81 ... W__ ; The W axis is used as the hole drilling axis.
G81 ... ; (No Z or W) The Z axis is used as the hole drilling axis.
(Note 1) The hole drilling axis can be fixed to the Z axis with parameter #1080 Dril_Z.
(Note 2) Change over the hole drilling axis in the fixed cycle canceled state.
(Note 3) A program error will occur if the hole drilling axis does not exist.
In the following explanations on the movement in each fixed 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.
335
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
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), G83.1 (step cycle) and G84.2
(synchronous 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 hole drilling axis.
Command range
Address Meaning of address Remarks
(unit)
In-position width When a value exceeding
,I
(position error amount) the command range is
1 to 999.999 (mm)
In-position width for hole issued, a program error will
1µm unit
,J drilling axis in fixed cycle occur.
(position error amount) Program error (P35)
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 ;
:
Operation6
Operation 1 Valid –
Operation2
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
In the following machining program, the commanded in-position width is valid for the following Fig.
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).
336
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
In the following machining program, the commanded in-position width is valid for the following Fig.
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
Operation5 Operation9 ,I ,J
Operation1 pattern
-10. -10.
-50. Operation 1 Valid –
Opera- Opera- Operation 2 – Invalid
tion6 tion10
Operation2 Operation 3 – Invalid
Operation 4 – Valid
Operation 5 Invalid –
Opera- Opera-
Operation3 Operation 6 – Invalid
tion7 tion11
Opera- Operation 7 – Invalid
Operation4 tion12
Operation8 Operation 8 – Valid
Operation 9 Valid –
Operation 10 – Invalid
Operation 11 – Invalid
Operation 12 – Valid
337
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
Setting values of synchronous tap in-position check parameters and tap axis movement
338
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(3) Relation between the parameter setting values and tap axis movement for a
synchronous tap in-position check
Synchro- In-position In-position In-position Operation at
nous tap check at check at check at Hole bottom Operation at Operation at I point →
improve- hole R point I point → wait time hole bottom R point
R point
ment bottom R point
‘0’ — — — Time designated Operation Operation Operation
by "P". determined by determined by determined by
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.
‘1’ Not Not Executed Larger value of Wait until time in Wait until
executed executed "P" and TapDwl left column has completion of
(#1313) is valid. elapsed. in-position check
No dwell by G0inps value.
executed if both
values are 0.
‘1’ Not Executed Executed Larger value of Wait until time in Wait until Wait until
executed "P" and TapDwl left column has completion of completion of
(#1313) is valid. elapsed. in-position check in-position check
No dwell by G1inps value. by G0inps value.
executed if both
values are 0.
‘1’ Executed Not Executed Larger value of Wait until dwell Wait until
executed "P" and TapDwl time in left completion of
(#1313) is valid. column has in-position check
No dwell elapsed after by G0inps value.
executed if both completion of
values are 0. in-position check.
‘1’ Executed Executed Executed 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
Processing time elapsed after by G1inps value. by G0inps value.
is several 10ms if completion of
both values are in-position check.
0.
‘1’ Not Not Not Larger value of Wait until time in
executed executed executed "P" and TapDwl left column has
(#1313) is valid. elapsed.
No dwell
executed if both
values are 0.
‘1’ Not Executed Not Larger value of Wait until time in Wait until
executed executed "P" and TapDwl left column has completion of
(#1313) is valid. elapsed. in-position check
No dwell by G1inps value.
executed if both
values are 0.
‘1’ Executed Not Not Larger value of Wait until dwell
executed executed "P" and TapDwl time in left
(#1313) is valid. column has
No dwell elapsed after
executed if both completion of
values are 0. in-position check.
‘1’ Executed Executed Not Larger value of Wait until dwell Wait until
executed "P" and TapDwl time in left completion of
(#1313) is valid. column has in-position check
Processing time elapsed after by G1inps value.
is several 10ms if completion of
both values are in-position check.
0.
(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.
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.
339
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(1) x1 , y1
G98 G99
mode mode
The operation stops at after the (1), (2) and (4) commands during single block operation.
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – Valid
340
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(1) x1 , y1
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – –
Operation (5) – Valid
The operation stops at after the (1), (2) and (5) commands during single block operation.
341
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(1) x1,y1
(1) G0 Xx1 Yy1
(2) G0 Zr1
(3) G1 Zq1 Ff1 (2) r1
(4) G0 Z − q1
(5) G0 Z (q1 − m)
q1 (3) (4)
(6) G1 Z (q1 + m) Ff1 (5)
(7) (8) (10)
(7) G0 Z − 2 • q1
q1 m (6)
(8) G0 Z (2 • q1 − m)
(9) G1 Z (q1 + m) Ff1 (9)
q1 m z1
(10) G0 Z − 3 • q1
: (n) (n)
(n) - 2
: (n) - 1
(n) - 1 G4 Pp1 (Dwell)
(n) G98 mode G0Z − (z1+r1) G98 G99
G99 mode G0Z − z1 mode mode
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – Invalid
Operation (5) – Invalid
Operation (6) – Invalid
Operation (7) – Invalid
Operation (8) – Invalid
Operation (9) – Invalid
Operation (10) – Invalid
:
:
Operation
– Invalid
(n-2)
Operation
– Invalid
(n-1)
Operation (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.
342
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(1) x1 , y1
(2) r1
q1 (3) m
(5) (6)
q1 (4) (n)
q1 z1
(n)
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – –
Operation (5) – Invalid
Operation (6) – Invalid
:
:
Operation
– Invalid
(n-1)
Operation (n) – Valid
When executing a second and following cutting in the G83.1 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.
343
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
x1 ,y1
(1) (1) G0 Xx1 Yy1
(2) G0 Zr1
(9) (3) G1 Zz1 Ff1
(2) r1 (4) G4 Pp1
(7) (8) (7) (8) (5) M4 (Spindle reverse rotation)
(6) G1 Z − z1 Ff1
(7) G4 Pp1
(3) (6) (6) z1 (8) M3 (Spindle forward rotation)
(9) G98 mode G0Z − r1
G99 mode No movement
(4) (5) G98 G99
mode mode
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – –
Operation (5) – –
Operation (6) – Invalid
Operation (7) – –
Operation (8) – –
Operation (9) – Valid
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.
344
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
x1 ,y1
(1) (1) G0 Xx1 Yy1
(2) G0 Zr1
(9) (3) G1 Zz1 Ff1
(2) r1 (4) G4 Pp1
(7) (8) (7) (8) (5) M4 (Spindle reverse rotation)
(6) G1 Z − z1 Ff1
(7) G4 Pp1
(3) (6) (6) z1 (8) M3 (Spindle forward rotation)
(9) G98 mode G0Z − r1
G99 mode No movement
(4) (5) G98 G99
mode mode
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – –
Operation (5) – –
Operation (6) – Invalid
Operation (7) – –
Operation (8) – –
Operation (9) – Valid
When G84.2 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.2 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.2 modal, the "Tapping" NC output signal will be output.
During the G84.2 synchronous tapping modal, the M3, M4, M5 and S code will not be output.
345
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
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)
346
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
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
(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
347
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – Invalid
Operation (5) – Valid
The operation stops at after the (1), (2), (4) or (5) commands during single block operation.
(1) x1 , y1
Operation
i1 j1
pattern
Operation (1) Valid –
Operation (2) – Invalid
Operation (3) – Invalid
Operation (4) – –
Operation (5) – Invalid
Operation (6) – Valid
The operation stops at after the (1), (2), (5) or (6) commands during single block operation.
348
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(1) Before the fixed cycle is commanded, the spindle must be rotating in a specific direction with
an M command (M3 or M4).
(2) If there is a basic axis, additional axis or R data in the block during the fixed cycle mode, the
hole drilling operation will be executed. If there is no 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 fixed 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 fixed cycle, the following will occur.
(Where, 00 to 03 and 33 are m, and the fixed 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 fixed 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., rotation axis, additional axis) is commanded in the same block as
the fixed cycle control axis, the fixed 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 fixed cycle G code command, the hole machining data will be recorded, but the hole
machining will not be executed.
(Example) G83.1 X___ Y___ Z___ R___ Q___ P___ F___ L0___ ;
Execute Record only code having an address
(8) When the fixed cycle is executed, only the modal command commanded in the fixed cycle
program will be valid in the fixed cycle subprogram. The modal of the program that called out
the fixed cycle will not be affected.
(9) Other subprograms cannot be called from the fixed cycle subprogram.
(10) Decimal points in the movement command will be ignored during the fixed 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) G91 G81 X10. Z−50. R−20. F100. L3 ;
349
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
(12) If the spindle rotation speed value during return is smaller than the spindle rotation 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.
The synchronous and asynchronous tap will follow the combination shown below.
Combination
Program command
0 0 0 0 1 1 1 1 No command
(G84/G84.2))
#1229 (bit4) 0 0 1 1 0 0 1 1 0 0 1 1
M function code (M**) × × × × × ×
Synchronous/
A A A A S S S S A S S S
asynchronous selection
0: G84 × : Does not command A : Asynchronous tap
1: G84.2 : Commands S : Synchronous tap
350
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
Whether to use R point or initial level for the return level in the final sequence of the fixed cycle can
be selected.
Command format
Detailed description
The relation of the G98/G99 mode and No. of repetition designation is as shown below.
G98
No. of hole
Program example At power ON, at cancel with G99
drilling times
M02, M30, and reset button
G81 X100. Y100.
Z−50. R25. F1000 ; Initial point Initial point
Second and
following
executions
First Second Final First Second Final
time time time time time time
Example of program
(Example 1)
G82 Zz1 Rr1 Pp1 Ff1 L0 ;.......... Record only the hole machining data (Do not execute)
Xx1 Yy1 ; ............................. Execute hole drilling operation with G82 mode
The No. of fixed cycle repetitions is designated with L. If L1 is designated or L not designated, the
fixed 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∆ Xx1 Yy1 Zz1 Rr1 Pp1 Qq1 Ff1 Ll1 ;
351
13. Program Support Functions
13.6 Hole drilling fixed cycle (MELDAS special format)
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
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 fixed 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 fixed cycle sequence
N003 Xx2 Yy2 ; .......................... Change of positioning point, and execution of fixed 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
fixed cycle for 15 times
N011 G98 Xx6 Yy6 Zz6 Rr6 ; .. Change of positioning point, and execution of fixed cycle
N012 Ww1 ; ............................... Execute W axis according to 01 group modal before N001, and
then execute fixed cycle
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 ;
352
13. Program Support Functions
13.7 Subprogram control
Fixed sequences or repeatedly used parameters 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.
N20;
M98 P1000; M98 P1200 M98 P2000; M98 P2500;
H20;
N60;
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 fixed 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. Fixed 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. Fixed cycles × ×
7. Subprogram editing for fixed cycle × ×
(Note 1) " " denotes a 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 option is available.
(Note 3) A maximum of 8 nesting levels form the nesting depth.
353
13. Program Support Functions
13.7 Subprogram control
Command format
Subprogram call
M98 P H L ;
M98 Subprogram call command
P_ Program number of subprogram to be called (own program if omitted)
P can be omitted only during memory operation and MDI operation.
(Max. 8 digits)
H_ Sequence number in subprogram to be called (head block if omitted)
(Max. 5 digits)
L_ Number of subprogram repetitions
(When omitted, this is interpreted at L1, and is not executed when L0.)
(Between 1 and 9999 times according to 4-digit value.)
For instance, M98 P1 L3 ; is equivalent to the following:
M98 P1 ;
M98 P1 ;
M98 P1 ;
Subprograms have the same format as machining programs for normal memory operation except
that the subprogram completion instruction M99 (P_ L_ ) ; is entered as an independent block at
the last block.
(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 Operating Manual.
(2) Only those subprograms numbers ranging from 1 to 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 8 nesting levels can be used for calling programs from subprograms, and program error
(P230) results if this number is exceeded.
354
13. Program Support Functions
13.7 Subprogram control
(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.)
;
O ;
................................. ;
:
: Subprogram A
M99 ;
%
;
O ∆∆∆∆ ;
................................ ;
:
: Subprogram B
M99 ;
%
;
O **** ;
................................ ;
:
: Subprogram C
M99 ;
%
;
355
13. Program Support Functions
13.7 Subprogram control
(5) Main programs can be executed during memory, tape or MDI 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
• MDI interrupt
• Automatic tool length measurement
• Macro interrupt
• Multi-step skip function
(7) Subprogram nesting is not subject to the following commands which can be called even
beyond the 8th nesting level.
• Fixed cycles
• Pattern cycles
(8) To repeatedly use the subprogram, it can be repeated l1 times by programming M98 Pp1
Ll1;.
(9) When using the 2-part system, if the subprogram attributed to the system with the call
command is empty, the subprogram call operation will change according to the
parameters.
#1050 #1285
Details
MemPrg ext21/bit1
0, 2, 4, 6 - The subprogram registered in the memory common for the
systems is called out.
1, 3, 5, 7 OFF The subprogram registered in the memory for the selected
system is called out.
ON The subprogram registered in the memory for the selected
system is called out.
If the subprogram in the selected system is empty, the
subprogram with the same number in the 1st system is called
out.
356
13. Program Support Functions
13.7 Subprogram control
Example of program 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.
357
13. Program Support Functions
13.7 Subprogram control
Example of program 2
The M98 H_ ; M99 P_ ; commands designate the sequence numbers in a program with a call
instruction.
M98H__ ; M99P__ ;
O123;
M98H3; N100___;
M98P123;
N200_;
N300___;
N3___; N400___;
Search
M99; M99P200;
Precautions
(1) Program error (P232) results when the designated P (program number) is not located.
(2) Single block stop does not occur with the M98 P_ ; 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) Branching from tape and BTR operation to the subprogram with M98 P_ is possible, but the
return destination sequence No. cannot be designated with M99 P_ ;. (P_ is ignored).
(5) Bear in mind that the search operation will take time when the sequence number is designated
by M99 P_ ;.
358
13. Program Support Functions
13.7 Subprogram control
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 Number of sequence in program 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 { × ×
(Note 1) The section from the head of the program to the first LF (carriage return code, 0x0A
hexadecimal) is invalid, and is not run or displayed. Note that if the head starts with a 0
number, the program will be valid from the head.
(Note 2) To run a program saved on an IC card with the tape mode, set the number of characters
in the program to 250 characters or more.
359
13. Program Support Functions
13.8 Variable commands
Command format
Detailed description
360
13. Program Support Functions
13.8 Variable commands
(Note 1) All common variables are retained even when the power is turned 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
(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 ;
361
13. Program Support Functions
13.8 Variable commands
362
13. Program Support Functions
13.9 User macro
By combining the user macros with variable commands, it is possible to use macro program call,
operation, data input/output with PLC, control, decision, branch and many other instructions for
measurement and other such applications.
M30 ; M99 ;
Macro programs use variables, operation instructions and control instructions to create
subprograms which function to provide dedicated control.
These dedicated control functions (macro programs) are called by the macro call instructions
exactly when required from the main program.
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 (G66, G66.1) cancel
Detailed description
(1) When the G66 or G66.1 command is entered, the specified user macro program 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 (G66.1) and G67 commands must be paired in the same program.
363
13. Program Support Functions
13.9 User macro
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
To subprogram
O o1
~
~
G65Pp1Ll1 <argument> ;
~
M99
To main program
Format
M98 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.
364
13. Program Support Functions
13.9 User macro
: Can be used.
× : Cannot be used.
∗ : Can be used while G66.1 command is modal.
365
13. Program Support Functions
13.9 User macro
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.
366
13. Program Support Functions
13.9 User macro
Oo1
To subprogram
~
G66 Pp1 Ll1 <argument> ;
:
M99 ;
~
: To main
: program
G67 ;
~
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 designated 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.
367
13. Program Support Functions
13.9 User macro
The designated user macro subprogram is unconditionally called at each command block
commanded between G66.1 and G67, and is executed the number of times designated with L.
The <argument> is the same as for a simple call.
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. Note that the G code
designated last, or the N code commanded after other than O and N is the argument.
(2) The same applies as when G65 P_ is assigned at the head of a block for all significant blocks
in the G66.1 mode.
(Example 1)
N100 G01 G90 X100. Z200. F400 R1000 ;
in the G66.1 P1000 ; mode is the same as:
N100 G65 P1000 G01 G90 X100. Z200. 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 new as variables in the G66.1
mode is subject to the restrictions applying to value as normal NC command values.
(4) Program No. O, sequence numbers N and modal G code are updated as modal information.
368
13. Program Support Functions
13.9 User macro
User macro subprograms 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: M98 P∆∆∆∆ ;
b: G65 P∆∆∆∆∆ <argument> ;
c: G66 P∆∆∆∆∆ <argument> ;
d: G66.1 P∆∆∆∆∆ <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.
(2) The correspondence between the "××" 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 G00 to G255 can be used with this command. (G01 to G99 can also be
used with parameter “#1081Gmac_P”).
(4) The commands cannot be issued during a user macro subprogram which has been called by a
G code.
M99 ;
369
13. Program Support Functions
13.9 User macro
The user macro subprograms 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∆∆∆∆ ;
b: G65 P∆∆∆∆ Mm ;
c: G66 P∆∆∆∆ Mm ; M98, Mm are not output
d: G66.1 P∆∆∆∆ 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.
Any code except the codes basically required by the machine and the M0, M1, M2, M30 and
M96 ~ M99 codes can be entered.
(3) As with M98, the display appears on the CRT screen of the setting and display unit but the M
codes and MF are not output.
(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) Up to 10 M codes can be set, but set the parameter in the following manner when they will not
all be used.
M[01] 20 0 8000 For M20 commands, set to call O8000 in type 0 (M98 type)
M[02] 21 0 8001 For M21 commands, set to call O8001 in type 0 (M98 type)
M[03] 9999 0 199999999
M[04] 9999 0 199999999
M[05] 9999 0 199999999
: : :
Set parameters that will not be used as shown at the left.
: : :
M[10] 9999 0 199999999
370
13. Program Support Functions
13.9 User macro
(1) The argument can be designated for G65 but not for M98.
(2) The sequence number can be designated for M98 but not 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.
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.
(Example 1)
Zz3 ; x1 w1 x2 M99
After Z3 execution
371
13. Program Support Functions
13.9 User macro
13.9.3 Variables
Both the variable specifications and user macro specifications are required for the variables which
are used with the user macros.
The offset amounts of the local, common and system variables among the variables for this NC unit
are retained even when the unit's power is turned OFF. (Common variables can also be set to <
Blank > in parameter “#1129PwrVC1”)
When the user macro specifications apply, variable numbers can be turned into variables (multiple
use of variables) or replaced by <formula>. Only one of the arithmetical (+, −, ×, ÷) 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.
372
13. Program Support Functions
13.9 User macro
Undefined variables
Variables applying with the user macro specifications such as variables which have not been used
even once after the power was turned ON or local variables not quoted by the G65, G66 or G66.1
commands can be used as <Blank>. Also, variables can forcibly be set to <Blank>. Variable #0 is
always used as the <Blank> variable and nothing can be defined in the left-side member.
(Note 1) Only compare EQ and NE by integers. Use GE, GT, LE and LT for comparison
when there are numbers below the decimal point.
373
13. Program Support Functions
13.9 User macro
Common variables
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 body.
[Argument designation 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.
The hyphen (–) mark indicates that there is no corresponding address.
374
13. Program Support Functions
13.9 User macro
375
13. Program Support Functions
13.9 User macro
(1) Local variables in subprograms can be defined by means of the <argument> designation
during macro call. (Local variables can be used freely in those subprograms.)
M02 ; M99 ;
F (#9) = 800
Local variable data
table S (#19) = 100.000
(2) Local variables can be used independently on each of the macro calls 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 P1 A1. B2. C3. ; G65 P10 A10. B20. C30. ; G65 P100 A100. B200. ;
~
~
Local variables (0) Local variables (1) Local variables (2) Local variables (3)
#1 0.100 A (#1) 0.100 A (#1) 10.000 A (#1) 100.000
#2 0.200 B (#2) 0.200 B (#2) 20.000 B (#2) 200.000
#3 0.300 C (#3) 0.300 C (#3) 30.000 C (#3)
D (#7) D (#7)
~
~
~
~
~
~
~
The statuses of the local variables appear on the setting and display unit.
For details, refer to the Operating Manual.
376
13. Program Support Functions
13.9 User macro
The status of the interface input signals can be ascertained by reading out the values of variable
numbers #1000 to #1035, #1200 to #1295. Available 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. In the same manner,
by reading the values for variable numbers #1033 to #1035, the input signals for #1200 to #1231,
#1232 to #1263 and #1264 to #1295 can be read.
Variable numbers #1000 to #1035, #1200 to #1295 are for readout only, and nothing can be placed
in the left side member of their operation formula.
System No. of System No. of Interface input
Interface input signal
variable points variable points 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 input signal
variable points
#1032 32 Register R72, R73
#1033 32 Register R74, R75
#1034 32 Register R76, R77
#1035 32 Register R78, R79
377
13. Program Support Functions
13.9 User macro
378
13. Program Support Functions
13.9 User macro
379
13. Program Support Functions
13.9 User macro
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. In the same manner, by reading the values for variable numbers #1133 to #1135,
the output signals for #1300 to #1331, #1332 to #1363 and #1364 to #1395 can be read. (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 System No. of Interface input
Interface input signal
variable points variable points 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
System No. of
Interface input signal
variable points
#1132 32 Register R172, R173
#1133 32 Register R174, R175
#1134 32 Register R176, R177
#1135 32 Register R178, R179
380
13. Program Support Functions
13.9 User macro
381
13. Program Support Functions
13.9 User macro
382
13. Program Support Functions
13.9 User macro
#1031 #1131
#1200 #1300
Macro instructions
#1231 #1331
#1232 #1332
#1263 #1363
#1264 #1364
#1295 #1395
383
13. Program Support Functions
13.9 User macro
Tool offset
This is used to change the variable number of the user macro variable's tool offset shape
compensation and wear compensation.
The variable No. of the address #2000 X, Z and R compensation amounts is changed according to
the value set in the "#1120 TofVal (change macro variable)" parameter.
Variable number range
Details
#1120 TofVal=0,1 #1120 TofVal=0 #1120 TofVal=1
#10001 to #10000+n #2001 to #2000+n #2701 to #2700+n X shape compensation amount
#11001 to #11000+n #2701 to #2700+n #2001 to #2000+n X wear compensation amount
Tool compensation selection
#12001 to #12000+n – additional axis shape compensation
amount
Tool compensation selection
#13001 to #13000+n – additional axis wear compensation
amount
#14001 to #14000+n #2101 to #2100+n #2801 to #2800+n Z shape compensation amount
#15001 to #15000+n #2801 to #2800+n #2101 to #2100+n Z wear compensation amount
#16001 to #16000+n #2201 to #2200+n #2901 to #2900+n R shape compensation amount
#17001 to #17000+n #2901 to #2900+n #2201 to #2200+n R wear compensation amount
#18001 to #18000+n #2301 to #2300+n Nose compensation amount
(Note) Using the parameter (#1520 Tchg34) select whether the additional axis tool compensation is
valid for the 3rd axis or 4th axis.
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.
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.
data setting
Sensor
384
13. Program Support Functions
13.9 User macro
(Note 1) In (Example 1) no consideration is given to the delay in the skip sensor signal.
#5001 is the X-axis start point position and #5061 is the X-axis skip coordinates, and
indicated is the position at which the skip signal is input while G31 is being executed.
(Note 2) For multiple systems
There are cases when each system has tool data and when the systems share common
tool data. This can be selected with parameter (#1501 MemTol).
Parameter #1501 MemTol 0 : Tool data provided for each system
1 : Tool data shared by systems
When the tool data is shared by the systems, the read amount and substitution amount
for the system 1 tool offset variable and system 2 tool offset variable will be the same
(when the same variable No. is commanded).
385
13. Program Support Functions
13.9 User macro
By using variable numbers #5201 to #532n, it is possible to read out the workpiece 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 in the variable number corresponds to the control axis number.
Axis No.
1st 2nd 3rd 4th • •
nth
Remarks
Coordinate axis axis axis axis axis
name
External workpiece
External workpiece • •
#5201 #5202 #5203 #5204 #520n offset specifications
offset
are required.
G54 #5221 #5222 #5223 #5224 • • #522n
G55 #5241 #5242 #5243 #5244 • • #524n Workpiece coordinate
G56 #5261 #5262 #5263 #5264 • • #526n system offset
G57 #5281 #5282 #5283 #5284 • • #528n specifications are
G58 #5301 #5302 #5303 #5304 • • #530n required.
G59 #5321 #5322 #5323 #5324 • • #532n
(Example 1)
N1 G28 X0 Z0 ;
N2 #5221 = –20. #5223 = –20. ; N1
N3 G00 G54 X0 Z0 ; -90. -20.
~
N3
N10 #5221 = –10. #5223 = –90. ;
-10.
N11 G00 G54 X020 ;
W1 N11 -20.
~
Coordinate
system before G55
G54
change
W2 (G55)
N100 #5221 = #5221 + #5201 ;
W1 (G54)
#5222 = #5222 + #5202 ;
#5241 = #5241 + #5201 ;
#5242 = #5242 + #5202 ;
#5201 = 0 #5202 = 0 ; Basic machine coordinate system
G55
~
Coordinate G54
system after
change W2 (G55)
W1 (G54)
This is an example where the eternal workpiece offset values are added to the workpiece
coordinate (G54, G55) system offset values without changing the position of the workpiece
coordinate systems.
386
13. Program Support Functions
13.9 User macro
NC alarm (#3000)
The NC unit 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: MACRO ALM MESG" appears in the <ALARM> column on "DIAG 1." screen while the
alarm number and alarm message "70: (CALL #PROGRAMMER #TEL #530)" is indicated in the
<Operator massage>.
<ALARM> DIAG 1.
1F [#1 NE 0] GOTO 100 ; Stops with
#3000=70 (CALL #PROGRAMMER #TEL #530 ) ; NC alarm
P277 : MACRO ALM MESG
(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 manage. It is recommended that the alarm messages be enclosed in round
parentheses.
387
13. Program Support Functions
13.9 User macro
The integrating time can be read when the power is turned ON or automatic start or values can be
substituted by using variable numbers #3001 and #3002.
Variable Contents when power Initialization
Type Unit Count conditions
number is switched on of contents
At all times while
Power ON 3001 Value
Same as when power is power is ON
1ms substituted
Automatic turned OFF
3002 for variable In-automatic start
start
The integrating time returns to zero in about 2.44 × 1011 ms (approximately 7.7 years).
To subprogram O9010
#3001=0 ;
~
END1 ;
M99 ;
Local variable
Allowable time portion:
T#20 ——— DO1~END1 is repeated and
Entered in local variable #20 when 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 Wait
1 Suppressed Wait
2 Not suppressed No wait
3 Suppressed No wait
(Note 1) #3003 is cleared to zero by resetting.
388
13. Program Support Functions
13.9 User macro
By substituting the values below in variable number #3004, it is possible to make the feed hold,
feedrate override and G09 functions either valid or invalid in the subsequent blocks.
#3004 contents Bit 0 Bit 1 Bit 2
(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) #3004 is cleared to zero by resetting.
(Note 2) The functions are valid when the above bits are 0 and invalid when they are 1.
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 invalid; when they are 1, it means that it is valid.
Bit 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
nth axis 4 3 2 1
389
13. Program Support Functions
13.9 User macro
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 medals in the block being executed with variable numbers #4201
to #4221.
Variable number
Pre-read Execution Function
block block
#4001 #4201 Interpolation mode: G00:0, G01:1, G02:2, G03:3, G33:33
#4002 #4202 Plane selection: G17:17, G18:18, G19:19
#4003 #4203 Absolute/incremental: G90:90, G91:91
#4004 #4204 Barrier check: G22:22, G23:23
#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, G46:46
#4008 #4208 No variable No.
Fixed cycle: G80:80, G70~79:70~79, G83~G85:83~85,
#4009 #4209
G83.2:83.2, G87~G89:87~89
#4010 #4210 Return level: G98:98, G99:99
#4011 #4211
#4012 #4212 Workpiece coordinate system: G54~G59:54~59
#4013 #4213 Acceleration/deceleration:G61~G64:61~64, G61.1:61.1
#4014 #4214 Macro modal call: G66:66, G66.1:66.1, G67:67
#4015 #4215
#4016 #4216 No variable No.
#4017 #4217 Constant surface speed control: G96:96, G97:97
#4018 #4218 Balance cut: G14:14, G15:15
#4019 #4219
#4020 #4220
#4021 #4221
(Example)
G29 X0 Z0 ;
G00 X150. Z200 ;
G65 P300 G02 W−30. K−15. F1000 ;
M02 ;
O300
#1 = #4001 ; → Group 01 G modal (pre-read) #1 = 2.0
#2 = #4201 ; → Group 01 G modal (now being executed) #2 = 0.0
G#1 W#24 ;
M99 ;
%
390
13. Program Support Functions
13.9 User macro
Other modals
Using variable numbers #4101 to #4120, it is possible to read the modal commands assigned up to
the block immediately before.
Similarly, it is possible to read the medals in the block being executed with variable numbers #4301
to #4320.
Variable number
Modal information Variable number
Pre-read Execution Modal information
Pre-read Execution
#4101 #4301
#4111 #4311
#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
#4107 #4307
#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 Workpiece Skip position
of block deviation
coordinate coordinate coordinate offset
immediately amount
before amount
Axis No.
1 #5001 #5021 #5041 #5061 #5081 #5101
2 #5002 #5022 #5042 #5062 #5082 #5102
3 #5003 #5023 #5043 #5063 #5083 #5203
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) The number of axes which can be controlled differs according to the NC specifications.
The last digit of the variable number corresponds to the control axis number.
391
13. Program Support Functions
13.9 User macro
G00
G01
Read
command
[End point
coordinates]
W Workpiece
coordinate
system
[Workpiece
coordinates] Machine
coordinate
[Machine
M system
coordinates]
(1) The positions of the end point coordinates and skip coordinates are positions in the workpiece
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 workpiece 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.
392
13. Program Support Functions
13.9 User macro
(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, workpiece coordinates and skip
coordinates.
Skip signal
G31
F (feedrate)
W Workpiece coordinate
system
[Workpiece
[Input coordinates of skip signal] coordinates]
Machine coordinate
M system
[Machine coordinates]
The position of the skip signal input coordinate value is the position in the workpiece
coordinate system. The coordinate value 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.
393
13. Program Support Functions
13.9 User macro
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 the variable
name. An alarm will result at execution when this sign is used.
Format
SETVNn [NAME1, NAME2,….…] ;
n Head number of variable which assigns name
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 turned
OFF.
(2) The variables in the program are quoted as variable names. In cases like this, the variables
should be enclosed in square parentheses.
(Example 1) G01X [#POINT1] ;
(3) The variable numbers, data and variable names appear on the CRT 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
(Note) Do not use characters (SIN, COS, etc.) predetermined by the NC for use as operation
commands at the head of the variable name.
394
13. Program Support Functions
13.9 User macro
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.
Workpiece coordinate
Axis No.
system shift amount
1 #2501
2 #2601
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 input the number of workpiece machining times as a positive value.
395
13. Program Support Functions
13.9 User macro
# ? ? ? ? ?
396
13. Program Support Functions
13.9 User macro
Variable
Item Type Details Data range
No.
60001 Number of System Total number of tools registered in each 0 to 80
registered common group.
tools
60002 Life For each Usage time/No. of uses of tool being used. 0 to 999999
current group min
value Usage data of tool being used (If tool uses 0 to 999999
(Desig- several compensation numbers, the total of
nate times
the usage data for each compensation No.).
group
60003 Tool No. Registration No. of tool being used. 0 to 16
selected #60000)
No. Designated group's selection tool registration
No. (If tool is not selected, the first tool of
ST:1, or if ST:1 is not used, the first tool of
ST:0. When all tools have reached their lives,
the last tool).
60004 Remaining Total number of "usable" tools in the group. 0 to 16
number of
registered Number of tools registered in designated
tools group for which ST is 0: Not used.
60005 Signal "1" when this group is used in program being 0/1
being executed.
executed
"1" when tool in designated group is selected.
60006 Cutting Indicates the time that this group is used in
time the program being executed.
cumulative
value
(minute)
60007 Life end "1" when lives of all tools in this group have 0/1
signal been reached.
"1" when all tools registered in designated
group reach lives.
60008 Life "1" when new tool is selected with next 0/1
prediction command in this group.
signal
"1" when there is a tool for which ST is 0: Not
used in the tools registered the designated
group, and there are no tools for which ST is
1: Tools in use.
397
13. Program Support Functions
13.9 User macro
Variable
Item Type Details Data range
No.
60500 Group No. Each This group's No. 1 to 9999
+*** group/
61000 Tool No. registra- Tool's No. and compensation No. 0 to 9999
+*** tion No.
(Group Tool No. + compensation No.
No. (When tool No. = 22 and compensation No. =
#60000/ 01, 2201=899H)
61500 Method registra- Whether to management this group's life as 0/1
+*** tion No. time or No. of uses.
*** is
0: Time, 1: No. of uses
desig-
62000 Status nated.) Tool usage state 0 to 3
+***
0: Not used tool
Note the 1: Tool being used
group 2: Normal life tool
No., 3: Tool skip tool
62500 Life method This group's tool life value 0 to 999999
+*** time/No. of and life min
uses are 0 to 999999
common times
for the
63000 Usage 0 to 999999
groups.
+*** time/No. of min
uses 0 to 999999
times
63500 –
+***
64000 –
+***
64500 –
+***
398
13. Program Support Functions
13.9 User macro
Example of program
(6) When tool life management data is registered with G10 command after group No. is
designated
#60000 = 10 ; .......... Designates the group No.
G10 L3 ; ................... Starts the life management data registration.
P10 LLn NNn ; ........ 10 is the group No., Ln is the life per tool,
Nn is the method.
TTn ; ........................ Tn is the tool No. The group 10 life data
: is registered.
G11 ; ....................... Registers the group 10 data with the G10
................................. command.
#111 = #61001 ; ...... Reads the group 10, #1 tool No.
G10 L3 ; ................... Starts the life management data registration.
P1 LLn NNn ; .......... 1 is the group No., Ln is the life per tool,
................................. Nn is the method.
TTn ; ........................ Tn is the tool No.
: The life data other than
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. #111 = –1.
399
13. Program Support Functions
13.9 User macro
Precautions
(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.
(5) When the tool life control I specifications are provided with the L System, the tool life
management system variable specifications are not provided. "P241 NO VARI NUMBER" will
occur if commanded.
400
13. Program Support Functions
13.9 User macro
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.
401
13. Program Support Functions
13.9 User macro
402
13. Program Support Functions
13.9 User macro
(1) To read the parameter per system [#1002 axisno Number of axes]
#100000 = 1002 ; .....................Designates [#1002].
#100001 = 1 ; ...........................Designates [1st system].
#101 = #100010 ; .....................Reads the number of axes in system 1.
#100000 = 1002 ; .....................Designates [#1002].
(can be omitted since parameter # is the same)
#100001 = 2 ; ...........................Designates [2nd system].
#102 = #100010 ; .....................Reads the number of axes in system 2.
#100001 = 5 ; ...........................Designates [5th system]. (Program error (P39) occurs.)
#100001 = 10 ; .........................Designates [PLC axis].
#110 = #100010 ; .....................Reads the number of PLC axes.
403
13. Program Support Functions
13.9 User macro
(3) To read each parameter for each system, 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
(4) To read text type parameter [#1169 system name System name]
[Conditions] [1st system] [2nd system]
#1169 system name SYS1 SYS2
#100000 = 1169 ; .....................Designates #1169.
#100001 = 1 ; ...........................Designates 1st system.
#101 = #100010 ; .....................This becomes #101 = 1398362929 (0x53595331).
<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 ;
(1) The number of systems, 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.
404
13. Program Support Functions
13.9 User macro
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.
405
13. Program Support Functions
13.9 User macro
0 to 4 are designated without a sign, and 101 to 104 are designated with a sign.
406
13. Program Support Functions
13.9 User macro
407
13. Program Support Functions
13.9 User macro
408
13. Program Support Functions
13.9 User macro
<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 ;
(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.
409
13. Program Support Functions
13.9 User macro
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.)
410
13. Program Support Functions
13.9 User macro
(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 ;
(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.
411
13. Program Support Functions
13.9 User macro
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 #i = #j + #k Addition
operation #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 #i = #j ∗ #k Multiplication
operation #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 tan θ uses sinθ/cosθ.
#i = ASIN [#k] Arcsine
#i = ATAN [#k] Arctangent (ATAN or ATN may be used)
#i = ACOS [#k] Arccosine
#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 treats as a value with a decimal point at the
end (1 = 1.000).
(Note 2) Offset amounts from #10001 and workpiece 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
after execution
#101 = 1000 ; #101 1000.000
#10001 = #101 ; #102 1000.000
#102 = #10001 ;
(Note 3) The <formula> after a function must be enclosed in the square parentheses.
412
13. Program Support Functions
13.9 User macro
Sequence of operations
(1) The sequence of the operations (1) to (3) is, respectively, the functions followed by the
multiplication operation followed in turn by the addition operation.
(2) The part to be given priority in the operation sequence should be enclosed in brackets. Up to 5
pairs of such brackets including those for the functions may be used.
413
13. Program Support Functions
13.9 User macro
414
13. Program Support Functions
13.9 User macro
415
13. Program Support Functions
13.9 User macro
416
13. Program Support Functions
13.9 User macro
Operation accuracy
As shown in the following table errors will be generated when performing operations once and
these errors will be accumulated by repeating the operations.
Operation format Average error Maximum error Type of error
a=b+c ε
2.33 × 10−10 5.32 × 10−10 Min. | ε | , | |
a=b−c b c
a = b∗c 1.55 × 10−10 4.66 × 10−10
Relative error
4.66 × 10−10 1.86 × 10−9
| ε |
a = b/c
a=b 1.24 × 10−9 3.73 × 10−9 a
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.
417
13. Program Support Functions
13.9 User macro
Branching
Format
IF [conditional expression] GOTO n ; (where 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 Nn 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.
~
Branching to N100
N10 #22=#20 #23=#21 ; when content of #2 is 1
IF [#2 EQ1] GOTO100 ;
Branch
search
Branch
#22=#20–#3 ; search
#23=#21–#4 ;
~
N100 With
N10
N100 X#22 Z#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 conducted up 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) Only compare EQ and NE by integers. Use GE, GT, LE and LT for comparison when
there are numbers below the decimal point.
418
13. Program Support Functions
13.9 User macro
Repetition
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 to 127 (DO1, DO2, DO3, ..... DO127). Up to 27 nesting levels can be used.
(1) Same identification number can be used any (2) Any number may be used for the WHILE~ DOm
number of times. identification number.
WHILE ~ DO1 ;
~
WHILE ~ DO1 ;
END1 ;
Possible
~
END1 ;
WHILE ~ DO3 ;
~
END3 ;
WHILE ~ DO1 ; Possible
~
Possible WHILE ~ DO2 ;
END1 ; ~
END2 ;
~
WHILE ~ DO1 ;
~
END1 ;
(3) Up to 27 nesting levels for WHILE~DOm. (4) The number of WHILE~DOm nesting levels
"m" is any number form 1 to 127 for the nesting cannot exceed 27.
depth.
DO1 WHILE ~ DO1 ;
WHILE ~ DO1 ;
~
WHILE~DO27 ; DO27
WHILE ~ DO28 ;
Possible
~
Not
possible
END28 ;
END27 ;
~
: END3 ;
: :
END2 ; END2 ;
~
END1 ; END1 ;
419
13. Program Support Functions
13.9 User macro
(5) WHILE ~ DOm must be designated first and (6) WHILE ~ DOm and ENDm must correspond on a
ENDm last. 1:1 (pairing) basis in the same program.
WHILE ~ DO1 ;
END1 ;
Not
possible Not WHILE ~ DO1 ;
WHILE ~ DO1 ; possible
END1 ;
(7) Two WHILE ~ DOm’s must not overlap. (8) Branching externally is possible from the WHILE
~ DOm range.
Not
possible WHILE ~ DO2 ; IF ~ GOTOn ;
END1 ;
Possible END1 ;
~
END2 ;
Nn ;
(9) No branching is possible inside WHILE ~ (10) Subprograms can be called by M98, G65 or G66
DOm. between WHILE ~ DOm’s.
IF ~ GOTOn ; WHILE ~ DO1 ;
Main program Subprogram
WHILE ~ DO1 ; IF ~ GOTOn ;
WHILE ~ DO1 ; WHILE ~ DO2 ;
Nn ; END1 ;
Not
~
Possible
possible Not
END1 ; G65 P100 ; END 2 ;
possible To subprogram
~
WHILE ~ DO1 ;
END1 ; M99 ;
Nn ;
M02 ;
END 1 ;
(11) Calls can be initiated by G65 or G66 between (12) A program error results with M99 unless WHILE
WHILE ~ DOm’s and commands can be and END are paired within the subprograms
issued again from 1. Up to 27 nesting levels (including macro programs).
are possible for the main program and
subprograms.
Main program Subprogram (100) Main program Subprogram
~
~
~
Possible
~
~
M02 ; M99 ;
END1 ; M99 ;
(Note) Even if a fixed cycle containing WHILE is called, the nesting level will be counted up.
420
13. Program Support Functions
13.9 User macro
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
(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.
(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.
421
13. Program Support Functions
13.9 User macro
DPRNT [ l1 # v1 [ d1 c1 ] l2 # 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 ~ Z, 0 ~ 9) and special characters (+, −, ∗, /) can be used.
(3) The required significant digits above and below the decimal point in the variable values are
commanded within square parentheses. As a result, the variable values equivalent to the
commanded number of digits including the decimal point are output in ISO code in decimal
notation from the high-order digits. Trailing zeroes are not omitted.
(4) Leading zeroes are omitted.
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.
422
13. Program Support Functions
13.9 User macro
13.9.8 Precautions
Precautions
(1) When the user macro commands are employed, it is possible to use the M, S, T and other
control commands together with the operation, decision, branching and other macro
commands for creating 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 on the parameter screen) can be decided
upon 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
G91G28X0 Z0 ; ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(1)
G92X0 Z0 ; ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(2)
G00X–100. Z–100. ; ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(3)
#101=100.∗COS [210,] ; ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(4)
Macro statement
#103=100.∗SIN [210.] ; ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(5)
G01 X#101 Z #103 F800 ; ⋅ ⋅ ⋅ ⋅ ⋅ ⋅(6)
423
13. Program Support Functions
13.9 User macro
Flow of processing
424
13. Program Support Functions
13.10 Double-turret mirror image
In a machine in which the base turret and facing turret are integrated, this function is used to cut
with the facing turret cutter using a program created with the base turret side.
The distance between the two turrets is set in the parameters beforehand.
Command format
425
13. Program Support Functions
13.10 Double-turret mirror image
Detailed description
When G68 is commanded, the following program coordinate system is shifted to the facing
turret side of the axis for which the facing turret mirror image is valid (hereafter unless noted in
particular, the X axis will be described as the axis for which double-turret mirror image is valid). The
axis movement direction is reversed from the program command. When G69 is commanded, the
following program coordinate system will be returned to the base turret side.
Base turret
Program path
(G69)
Turret distance
Z (parameter "#1202 mirofs"
set with radius value)
(G68)
Facing turret
426
13. Program Support Functions
13.10 Double-turret mirror image
T0101 ;
Base turret path
Program G00 X0. ;
Base turret
G68 ; Double-turret
Path for mirror image ON
reversing
program Distance T0202 ; Facing turret
between cutters
selection
Facing
turret path G00 X10. Z0. ;
* This figure does not incorporate Facing turret G01 Z-50. F400 ;
the tool length.
X20. ;
Facing
G00 U10. W-30. ;
Facing turret
turret path G01 W-50. F400 ;
* This figure does not incorporate
the tool length. X20. Z-80. ;
427
13. Program Support Functions
13.10 Double-turret mirror image
The workpiece coordinate values of the axis for which double-turret mirror image is valid are
displayed in the following manner.
#1273 ext09/bit3 = 0 #1273 ext09/bit3 = 1
In double-turret The workpiece coordinate values are at the The workpiece coordinate values are the
mirror image position where the program command same as the program command value, and
mode value sign has been reversed, and increases/decreases opposite the actual
increases/decreases in the same manner movement, that is, movement on the
as the actual movement, that is, movement machine coordinate system.
on the machine coordinate system.
(Indicates coordinate values for facing
turret side.)
At startup Workpiece coordinate value = Workpiece coordinate value =
Workpiece coordinate value before {Workpiece coordinate value before
double-turret mirror image starts – double-turret mirror image starts –
distance between cutters distance between cutters} × (–1)
When Workpiece coordinate value = Workpiece coordinate value =
movement is Workpiece coordinate value before Workpiece coordinate value before
commanded movement + movement amount movement – movement amount
while valid
When canceled Workpiece coordinate value = Workpiece coordinate value =
Workpiece coordinate value before {Workpiece coordinate value before
double-turret mirror image is canceled + double-turret mirror image is canceled ×
distance between cutters (–1)} + distance between cutters
428
13. Program Support Functions
13.10 Double-turret mirror image
X
Base turret
A
C
Double-turret
Facing turret
429
13. Program Support Functions
13.10 Double-turret mirror image
X tool length
2 6 1
X tool length
Workpiece offset 7 0 5
Wear
amount 3 8 4
Z tool length
Turret distance
Z (parameter:
Workpiece coordinate radius value,
zero point X axis only)
Z tool length
Z tool length
Wear 2 6 1
amount
7 0
X tool length
X tool length 5
3 8 4
The original tool direction for the facing turret is shown in the drawing.
To set the facing turret tool to the same direction as the base turret tool, set the base specification
parameter "#1118 mirr_A" to "1".
430
13. Program Support Functions
13.10 Double-turret mirror image
The outline drawings above show the case when #1118 mirr_A is set to 0. If #1118 mirr_A is
set to 1, the sign of the X axis tool length offset amount for the double-turret will be reversed.
Wear amount 2 6 1
7 0
5
-X
3 8 4
Facing turret side
431
13. Program Support Functions
13.10 Double-turret mirror image
X 2 6 1 X 2 6 1
0 5 0 5
7 7
3 8 4 3 8 4
Z Z
2 6 1 3 8 4
7 0 7 0 5
5
-X 3 8 4 -X 2 6 1
Facing turret side Facing turret side
432
13. Program Support Functions
13.10 Double-turret mirror image
(1) The balance cut command (G68, G69) cannot be issued when the double-turret mirror image
option is valid in the G code system 6, 7 (#1037 cmdtyp = 7, 8).
(2) If double-turret mirror image is turned ON for an axis in a system having axes that are
exchanged with complex control or in a system to which the axis control is transferred, the
"M01 operation error 1035" will occur.
Note that double-turret mirror image can be started after the axis is exchanged with complex
control.
(4) A program error (P486) will occur if pole coordinate interpolation, cylindrical interpolation or
milling interpolation is commanded while double-turret mirror image is ON.
(5) A program error (P612) will occur if double-turret mirror image is turned ON while the axis is
moving with exponential function interpolation.
(6) A program error (P371) will occur if the axis to which double-turret mirror image is commanded
is a rotation axis.
433
13. Program Support Functions
13.10 Double-turret mirror image
(5) Resetting
(a) When parameter #1210 RstGmd/bit14 = 0
The double-turret mirror image will be canceled when reset.
(b) When parameter #1210 RstGmd/bit14 = 1
The double-turret mirror image state will be maintained even if reset.
434
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Chamfering at any angle or corner rounding is performed automatically by adding ",C_" or ",R_" to
the end of the block to be commanded first among those command blocks which shape the corner
with lines only.
By setting the parameters, "I_", "K_", "C_" can be set for the chamfer instead of ",C_", and "R_" can
be set for rounding instead of ",R_".
The corner is chamfered in such a way that the positions produced by subtracting the lengths
commanded by ",C_" (or "I_", "K_", "C_") from the hypothetical starting and final corners which
would apply if no chamfering were to be performed, are connected.
Command format
Example of program
X axis
Hypothetical corner
intersection point 140
Chamfering Chamfering
start point end point
10.0
10.0
Z axis
100.0 100.0
435
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Detailed description
(1) The start point of the block following the corner chamfering serves as the hypothetical corner
intersection point.
(2) If the base specification parameter "#1272 ext08/bit6" is "0", the ",C" command will be
interpreted as a C command if there is no "," (comma).
(3) If there are multiple or duplicate corner chamfering commands in the same block, the
command issued last will be valid.
(4) When both corner chamfering and corner rounding are commanded in the same block, the
latter command is valid.
(5) Tool offset is calculated for the shape which has already been subjected to corner chamfering.
(6) When the block following a command with corner chamfering does not contain a linear
command, a corner chamfering/corner rounding II function results.
(7) Program error (P383) results when the movement amount in the block commanding corner
chamfering is less than the chamfering amount.
(8) Program error (P384) results when the movement amount in the block following the block
commanding corner chamfering is less than the chamfering amount.
(9) A program error (P382) results when a movement command is not issued in the block
following the corner chamfering I command.
(10) If "C" is used as the axis name or 2nd miscellaneous function, corner chamfering cannot be
commanded with "C".
(11) Corner chamfering cannot be commanded with "I" or "K" in an arc command block. "I" and "K"
are the arc center commands.
Precautions
(1) Corner chamfering and corner rounding can be commanded with "I", "K", "R" only when the 1st
block of the corner chamfering/corner rounding command is linear.
(2) Corner chamfering with "I", "K", and corner rounding with "R" can be commanded when the 1st
block of the corner chamfering/corner rounding command is linear and the 2nd block is an arc
command. "I", "K" in the 2nd block are the arc center commands.
N100 G01 Xx Zz Ii ;.................. Ii corner chamfering length
N200 G02 Xx Zz Ii Kk ; ............ Ii, Kk arc center command
(3) If ",C_", ",R_" or "I_", "K_", "C_", "R_" are commanded in the same block, ",C_", ",R_" will have
the priority.
436
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Corner rounding of the hypothetical starting and final corners when corner is assumed as not
rounded is performed at the radius of the arc commanded in ",R_" (or "R_")
Command format
Example of program
X axis
Corner rounding
end point
Corner rounding
start point 140
Hypothetical
corner
intersection
point
R10.0
Z axis
100.0 100.0
437
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Detailed description
(1) The start point of the block following the corner rounding serves as the hypothetical corner
intersection point.
(2) If the base specification parameter "#1272 ext08/bit6" is "0", the ",R" command will be
interpreted as a R command if there is no "," (comma).
(3) When both corner chamfering and corner rounding are commanded in the same block the
latter command is valid.
(4) Tool offset is calculated for the shape which has already been subjected to corner rounding.
(5) When the block following a command with corner rounding does not contain a linear command,
a corner chamfering/corner rounding II function results.
(6) Program error (P383) results when the movement amount in the block commanding corner
rounding is less than the R value.
(7) Program error (P384) results when the movement amount in the block following corner
rounding is less than the R value.
(8) A program error (P382) will occur if a movement command is not issued in the block following
corner rounding.
(9) Corner rounding cannot be commanded with "R" in an arc command block. "R" is the arc
radius command.
Precautions
(1) Corner chamfering and corner rounding can be commanded with "I", "K", "R" only when the 1st
block of the corner chamfering/corner rounding command is linear.
(2) Corner chamfering with "I", "K", and corner rounding with "R" can be commanded when the 1st
block of the corner chamfering/corner rounding command is linear and the 2nd block is an arc
command. "I", "K" in the 2nd block are the arc center commands.
N100 G01 Xx Zz Ii ;.................. Ii corner chamfering length
N200 G02 Xx Zz Ii Kk ; ............ Ii, Kk arc center command
(3) If ",C_", ",R_" or "I_", "K_", "C_", "R_" are commanded in the same block, ",C_", ",R_" will have
the priority.
438
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Using an E command, the feedrate can be designated for the corner chamfering and corner
rounding section.
In this way the corner section can be cut to the correct shape.
Example
F200.
E100.
(G94)
G01 U70. ,C30. F200. E100. ;
W–110. ;
F200.
F200.
E100.
(G94)
G01 U70. ,R30. F200. E100. ;
W–110. ; F200.
X
439
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Detailed description
(1) The E command is modal. It is also valid for the feed in the next corner chamfering/corner
rounding section.
Example
F100. (G94)
G01 U30. ,C10. F100. E50. ;
E50.
W–50. ,C10. ;
U50. ,C10. ;
F100. W–50. ;
E50. F100.
X E50.
F100.
Z
(2) E command modal has separate asynchronous feedrate modal and synchronous feedrate
modal functions.
Which one is validated depends on the asynchronous/synchronous mode (G94/G95).
(3) When the E command is 0, or there has not been an E command up to now, the corner
chamfering/corner rounding section feedrate is the same as the F command feedrate.
Example
X
F100. F100.
F100. E50.
Z
F100. F100.
E50. F100.
F100. F100.
(G94) E50. (G94) F100.
G01 U30. ,C10. F100. E50. ; G01 U30. ,C10. F100. ;
W–50. ,C10. ; W–50. ,C10. ;
U50. ,C10. E0 ; F100. U50. ,C10. E50 ; F100.
W–50. ; W–50. ;
(4) E command modal is not cleared when the reset button is pressed.
It is cleared when the power is turned OFF. (In the same manner as F commands.)
(5) All E commands except those shown below are at the corner chamfering/corner rounding
section feedrate.
• E commands during thread cutting modal
• E commands during thread cutting cycle modal
440
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
Detailed description
(1) The operations are shown below for manual interrupt during corner chamfering or corner
rounding.
With an absolute value command and manual absolute switch ON.
N1 G28 XZ ;
N2 G00 X40. Z120. ;
N3 G03 X140. Z70. K−50. ,R20. F100 ;
N4 G01 X40. Z20. ;
: Z-axis interrupt
X
When
X-axis interrupt
interrupt
is applied
140.
N4
N3
When
40. interrupt
is not applied
Z
20. 70. 120. (Unit: mm)
441
13. Program Support Funtions
13.11 Corner chamfering/corner rounding I
N1 G28 XZ ;
N2 G00 U40. W120. ;
N3 G03 U100. W−50. K−50. ,R20. F100 ;
N4 G01 U−100. W−50. ;
:
X Z-axis interrupt
When interrupt
is applied
X-axis interrupt
140.
N4
N3
40. When
interrupt
is not applied
Z
20. 70. 120. (Unit: mm)
(2) With a single block during corner chamfering or corner rounding, the tool stops after corner
chamfering or corner rounding is executed.
442
13. Program Support Funtions
13.12 Corner chamfering/corner rounding II
In a block that forms a corner with continuous random angle lines or arcs, corner chamfering and
corner rounding can be performed by adding ",C" or ",R" to the end of the block commanded first.
By setting the parameters, "I_", "K_", "C_" can be set for the chamfering instead of ",C_", and "R_"
can be set for rounding instead of ",R_". Corner chamfering and corner rounding can both be
commanded as an absolute value or incremental value.
The corner is chamfered by commanding ",C" (or "I_", "K_", "C_") in the 1st block of two blocks
having continuous arcs. For an arc, this will be the chord length.
Command format
Example of program
443
13. Program Support Funtions
13.12 Corner chamfering/corner rounding II
N1 G28 X Z ; N4
60. N3
N2 G00 U10. W140. ;
N3 G02 U40. W–80. R100. ,C20. F100 ; 20.
Z
N4 U–20. W–60. I80. K–60. ; 60 140
(Unit: mm)
:
Detailed description
(1) The corner chamfering and corner rounding options are required to use this function. A
program error (P381) will occur if the function is commanded when the option is not provided.
(2) The start point of the block following the corner chamfering serves as the hypothetical corner
intersection point.
(3) If the base specification parameters "#1272 ext08/bit6" is "0", the ",C" command will be
interpreted as a C command if there is no "," (comma).
(4) If there are multiple or duplicate corner chamfering commands in the same block, the
command issued last will be valid.
(5) When both corner chamfering and corner rounding are commanded in the same block, the
latter command is valid.
(6) Tool offset is calculated for the shape which has already been subjected to corner chamfering.
(7) A program error (P385) results when positioning or thread cutting is commanded in the corner
chamfering command block or next block.
(8) A program error (P382) results when the block following corner chamfering contains a G
command other than group 01 or another command.
(9) Program error (P383) results when the movement amount in the block commanding corner
chamfering is less than the chamfering amount.
(10) Program error (P384) results when the movement amount in the block following the block
commanding corner chamfering is less than the chamfering amount.
(11) Even if a diameter is commanded, it will be handled as a radius value during corner
chamfering.
(12) A program error (P382) results when a movement command is not issued in the block
following the corner chamfering II command.
(13) If "C" is used as the axis name or 2nd miscellaneous function, corner chamfering cannot be
commanded with "C".
(14) Corner chamfering cannot be commanded with "I" or "K" in an arc command block. "I" and "K"
are the arc center commands.
444
13. Program Support Funtions
13.12 Corner chamfering/corner rounding II
Precautions
(1) Corner chamfering and corner rounding can be commanded with "I", "K", "R" only when the 1st
block of the corner chamfering/corner rounding command is linear.
(2) Corner chamfering with "I", "K", and corner rounding with "R" can be commanded when the 1st
block of the corner chamfering/corner rounding command is linear and the 2nd block is an arc
command. "I", "K" in the 2nd block are the arc center commands.
N100 G01 Xx Zz Ii ;.................. Ii corner chamfering length
N200 G02 Xx Zz Ii Kk ; ............ Ii, Kk arc center command
(3) If ",C_", ",R_" or "I_", "K_", "C_", "R_" are commanded in the same block, ",C_", ",R_" will have
the priority.
445
13. Program Support Funtions
13.12 Corner chamfering/corner rounding II
The corner is rounded by commanding ",R_" (or "R_") in the 1st block of two blocks containing
continuous arcs.
Command format
Example of program
N4 X60. Z0 R50. ;
: R10.
N3
N4
Relative value command
60.
N1 G28 X Z ;
N2 G00 U30. W100. ;
Z
N3 G02 U50. W–50. I50. K0 ,R10. F100 ; 50. 100.
N4 U–50. W–50. I0. K–50. ; (Unit: mm)
:
446
13. Program Support Funtions
13.12 Corner chamfering/corner rounding II
Detailed description
(1) The corner chamfering and corner rounding options are required to use this function. A
program error (P381) will occur if the function is commanded when the option is not provided.
(2) The start point of the block following the corner rounding serves as the hypothetical corner
intersection point.
(3) If the base specification parameters "#1272 ext08/bit6" is "0", the ",R" command will be
interpreted as a R command if there is no "," (comma).
(4) When both corner chamfering and corner rounding are commanded in the same block the
latter command is valid.
(5) Tool offset is calculated for the shape which has already been subjected to corner rounding.
(6) A program error (P385) results when positioning or thread cutting is commanded in the corner
rounding command block or next block.
(7) A program error (P382) results when the block following corner rounding contains a G
command other than group 01 or another command.
(8) Program error (P383) results when the movement amount in the block commanding corner
rounding is less than the R value.
(9) Program error (P384) results when the movement amount in the block following the block
commanding corner rounding is less than the R value.
(10) Even if a diameter is commanded, it will be handled as a radius value during corner rounding.
(11) A program error (P382) results when a movement command is not issued in the block
following corner rounding.
(12) Corner rounding cannot be commanded with "R" in an arc command block. "R" is the arc
radius command.
Precautions
(1) Corner chamfering and corner rounding can be commanded with "I", "K", "R" only when the 1st
block of the corner chamfering/corner rounding command is linear.
(2) Corner chamfering with "I", "K", and corner rounding with "R" can be commanded when the 1st
block of the corner chamfering/corner rounding command is linear and the 2nd block is an arc
command. "I", "K" in the 2nd block are the arc center commands.
N100 G01 Xx Zz Ii ;.................. Ii corner chamfering length
N200 G02 Xx Zz Ii Kk ; ............ Ii, Kk arc center command
(3) If ",C_", ",R_" or "I_", "K_", "C_", "R_" are commanded in the same block, ",C_", ",R_" will have
the priority.
Refer to section "13.11.4 Interrupt during corner chamfering/corner rounding" for details.
447
13. Program Support Funtions
13.13 Linear angle command
The end point coordinates are calculated automatically by commanding the linear angle and one of
the end point coordinate axes.
Command format
X
(z1,x1)
x1
a2
N1 N2
a3
a1
x2
(z2,x2)
Z
Detailed description
(1) The angle is from the + direction of the horizontal axis on the selected plane. The counter-
clockwise (CCW) direction is considered to be + and the clockwise direction (CW) −.
(2) Either of the axes on the selected plane is commanded for the end point.
(3) The angle is ignored when the angle and the coordinates of both axes are commanded.
(4) When only the angle has been commanded, this is treated as a geometric command.
(5) The angle of either the start point (a1) or end point (a2) may be used.
(6) This function is valid only for the G01 command; it is not valid for other interpolation or
positioning commands.
(7) The range of slope "a" is −360.000 ≤ a ≤ 360.000.
When a value outside this range is commanded, it will be divided by 360 (degrees) and the
remainder will be commanded.
(Example) If 400 is commanded, 40° (remainder of 400/360) will become the command angle.
(8) If address A is used for the axis name or 2nd miscellaneous function, use ",A" as the angle.
(9) If "A" and ",A" are commanded in the same block, ",A" will be interpreted as the angle.
448
13. Program Support Functions
13.14 Geometric
13.14 Geometric
13.14.1 Geometric I
When it is difficult to determine the point at which the two straight lines intersect with a continuous
linear interpolation command, the end point of the first straight line will be automatically calculated
inside the CNC and the movement command will be controlled provided that the slope of the first
straight line as well as the end point coordinates and slope of the second straight line are
commanded.
(Note) If the parameter (#1082 Geomet) is set to 0, geometric I will not function.
Command format
N1 G01 Aa1 (A–a2) Ff1 ; This designates the angle and feedrate.
N2 Xx2 Zz2 A–a2 (Aa3 ) Ff2 ; This designates the next block end point coordinates,
angle and feedrate.
Aa1, A–a2, Aa3 Angle
Ff1, Ff2 Feedrate
Xx2, Zz2 Next block end point coordinates
? X
a3 Z
N1 a2 N2
a1 a1
Present Horizontal axis
position End point (Z2,X2)
449
13. Program Support Functions
13.14 Geometric
Detailed description
(1) Program error (P396) results when the geometric command is not on the selected plane.
(2) The slope is expressed as the angle that is formed with the horizontal axis + direction on the
selected plane. The counterclockwise (CCW) direction is considered to be + and the
clockwise direction (CW) −.
(3) Slope "a" ranges from −360.000 ≤ a ≤ 360.000.
When a value outside this range is commanded, it will be divided by 360 (degrees) and the
remainder will be commanded.
(Example) If 400. is commanded, 40° (remainder of 400/360) will become the command
angle.
(4) The slope of the line can be commanded on the start or end point side. The start or end point
side of the commanded slope is identified automatically inside the NC unit.
(5) The end point coordinates of the second block should be commanded with absolute values.
When incremental values are used, program error (P393) will result.
(6) The feedrate can be commanded for each block.
(7) When the angle where the two straight lines intersect is less than 1°, program error (P392) will
result.
(8) Program error (P396) results when the plane is selected in the 1st block and 2nd block.
(9) This function is ignored when address A is used for the axis name or as the 2nd
miscellaneous function.
(10) Single block stop is possible at the end point of the 1st block.
(11) Program error (P394) results when the 1st and 2nd blocks do not contain the G01 or G33
command.
(1) Corner chamfering or corner rounding can be commanded after the angle command in the 1st
block.
(Example 1) (x2, z2)
N1 Aa1, Cc1 ;
N2 Xx2 Zz2 Aa2 ; N2
a2
c1
?
a1
N1
c1
(x1,z1)
450
13. Program Support Functions
13.14 Geometric
(Example 2)
(x2, z2)
N1 Aa1, Rr1 ;
N2 Xx2 Zz2 Aa2 ; N2
a2
r1
? a1
N1
(x1, z1)
(2) The geometric command I can be issued after the corner chamfering or corner rounding
command.
(Example 3)
N3 a2
(x3, z3)
N1 Xx2 Zz2 ,Cc1 ;
N2 Aa1 ; ?
N3 Xx3 Zz3 Aa2 ; N2
a1
c1
(x2, z2) N1
c1
(x1, z1)
(3) The geometric command I can be issued after the linear angle command.
(Example 4)
(x3, z3) N3 a3
N1 Xx2 Aa1 ; ?
N2 Aa2 ;
N3 Xx3 Zz3 Aa3 ; N2
a2
(x2, z2) N1
a1
(x1, z1)
451
13. Program Support Functions
13.14 Geometric
13.14.2 Geometric IB
With the geometric IB function, the contact and intersection are obtained by commanding an arc
center point or linear angle in the movement commands of two continuous blocks (only for blocks
having arc commands), instead of commanding the first block end point.
Control target block
(1) Two-arc contact
N2
r1
(??)
X r2
Z N1
N2 N1
Z
(Note) If the parameter (#1082 Geomet) is set to a value other than 2, geometric IB will not
function.
452
13. Program Support Functions
13.14 Geometric
When the contact of two continuous contacting arcs is not indicated in the drawings, it can be
automatically calculated by commanding the 1st arc center coordinate value or radius, and the 2nd
arc end point absolute value and center coordinate value or radius.
(p1, q1)
(x2, z2) r2
(p2, q2)
r1
453
13. Program Support Functions
13.14 Geometric
(1) A program error (P393) will result before the 1st block if the 2nd block does not contain a
coordinate absolute value command.
(2) A program error (P398) will result before the 1st block if there are no geometric IB
specifications.
(3) A program error (P395) will result before the 1st block if there is no R (here, the 1st block is
designated with P and Q (I, K)) or P and Q (I, K) designation.
(4) A program error (P396) will result before the 1st block if another plane selection command
(G17 to G19) is issued in the 2nd block.
(5) A program error (P397) will result before the 1st block if two arcs that do not contact are
commanded.
(6) The contact calculation accuracy is ±1µm (fractions rounded up).
(7) Single block operation stops at the 1st block.
(8) When I or K is omitted, the values are regarded as I0 and K0. P and Q cannot be omitted.
(9) The error range in which the contact is obtained is set in parameter "#1084 RadErr".
Tool path
"Arc error"
(10) For an arc block perfect circle command (arc block start point = arc block end point), the R
designation arc command finishes immediately, and there is no operation. Thus, use a PQ (IK)
designation arc command.
(11) G codes of the G modal group 1 in the 1st/2nd block can be omitted.
(12) Addresses being used as axis names cannot be used as command addresses for arc center
coordinates or arc radii.
(13) If the 2nd block arc inscribes the 1st arc block when the 2nd block is an R designation arc, the
R+ sign becomes the inward turning arc command, and the R– sign becomes the outward
turning arc command.
R–
N2
R+
N1
454
13. Program Support Functions
13.14 Geometric
X axis
80.0
N2
?
80.0
50.0 50.0
N1
20.0
Z axis
60.0
X axis
30.
N2 R60.
N1
80.
40.
Z axis
70.
455
13. Program Support Functions
13.14 Geometric
456
13. Program Support Functions
13.14 Geometric
When the intersection of a shape in which a line and arc intersect is not indicated in the drawings, it
can be automatically calculated by commanding the following program.
Command format 2 (Automatic calculation of linear - arc intersection: For G18 plane)
* I and K (X and Z axes arc center coordinate incremental value) commands can be issued
instead of P and Q.
1st block arc : Radius command incremental amount from the start point to the center
2nd block arc : Radius command incremental amount from the end point to the center
(??)
N2 H=1 H=1 N1
(??)
H=0 (??)
(??) (p2, q2) H=0
(p1, q1) –a4 N2
N1 –a2 (x2, z2) a3
a1
(x2, z2)
X
457
13. Program Support Functions
13.14 Geometric
(1) When the 2nd miscellaneous function address is A, the 2nd miscellaneous function is
validated and this function is invalidated.
(2) A program error (P393) will result before the 1st block if the 2nd block does not contain a
coordinate absolute value command.
(3) A program error (P398) will result before the 1st block if there are no geometric IB
specifications.
(4) A program error (P395) will result before the 1st block if there is no P and Q (I, K) designation.
A program error (P395) will also result if there is no A designation for the line.
(5) A program error (P396) will result before the 1st block if another plane selection command
(G17 to G19) is issued in the 2nd block.
Tool path
(6) A program error (P397) will result before the 1st block if a
straight line and arc that do not contact or intersect are
commanded. Arc error
(8) When I or K is omitted, the values are regarded as I0 and K0. P and Q cannot be omitted.
(10) The linear - arc contact is automatically calculated by designating R instead of P and Q
(I, K).
(11) The error range in which the intersection is obtained is set in parameter "#1084 RadErr".
(12) The line slope is rotated at the angle regarded as its horizontal axis. Counterclockwise (CCW)
is positive (+). Clockwise (CW) is negative (−).
(13) The line slope can be commanded from either the start point side or the end point side. The
judgment whether the designated slope is start point side or end point side is carried out
automatically.
458
13. Program Support Functions
13.14 Geometric
(14) When the distance to the intersection of the line and arc is the same (as in the drawing below),
the control by address H (short/long distance selection) is invalidated. In this case the
judgment is carried out based on the angle of the line.
Linear - arc
N1 G1 A –a2 Ff1 ;
N2 G2 Xx2 Zz2 Pp2 Qq2 Ff2 ;
459
13. Program Support Functions
13.14 Geometric
X axis
N2 180°
?
N1
100.0 80.0
50.0
Z axis
460
13. Program Support Functions
13.14 Geometric
Z
Geometric IB + corner rounding II
N2
N1 G01 A__ ,R__ ; X
N2 G03 X__ Z__ P__ Q__ H__ ;
N1
Z
N1 G01 A__ ;
X N2
N2 G03 X__ Z__ P__ Q__ H__ ,C__ ;
G01 X__ Z__ ; N1
Z
N1 G01 A__ ;
X N2
N2 G03 X__ Z__ P__ Q__ H__ ,R__ ;
G01 X__ Z__ ; N1
Z
Geometric IB + corner chamfering II
461
13. Program Support Functions
13.14 Geometric
When the contact of a shape in which a line and arc contact is not indicated in the drawings, it can
be automatically calculated by commanding the following program.
Command format 3 (Automatic calculation of linear - arc intersection: For G18 plane)
N1 (??) –a4
(??) N2
N1 –a2 r1 N2
r2
(x2, z2) a3
X a1
(x2, z2)
462
13. Program Support Functions
13.14 Geometric
(1) When the 2nd miscellaneous function address is A, the 2nd miscellaneous function is
validated and this function is invalidated.
(2) A program error (P393) will result before the 1st block if the 2nd block does not contain a
coordinate absolute value command.
(3) A program error (P398) will result before the 1st block if there are no geometric IB
specifications.
(4) A program error (P396) will result before the 1st block if another plane selection command
(G17 to G19) is issued in the 2nd block.
(5) A program error (P397) will result before the 1st block if a straight line and arc that do not
contact are commanded.
(6) A program error (P395) will result before the 1st block if there is no R designation for the 2nd
block. A program error (P395) will also result if there is no A designation for the line.
(8) The linear - arc intersection is automatically calculated by designating R instead of P and Q (I,
K).
(9) The error range in which the contact is obtained is set in Tool path
parameter "#1084 RadErr".
Arc error
(10) The line slope is rotated at the angle regarded as the positive
(+) direction of its horizontal axis. Counterclockwise (CCW) is
positive (+). Clockwise (CW) is negative (−).
(11) The line slope can be commanded from either the start point side or the end point side. The
judgment whether the designated slope is start point side or end point side is carried out
automatically.
(13) In linear - arc contact, the arc command can only be an R command. Thus, when the arc block
start point = arc block end point, the arc command finishes immediately, and there is no
operation. (Perfect circle commands are not possible.)
(14) G codes of the G modal group 1 in the 1st block can be omitted.
(15) Addresses being used as axis names cannot be used as command addresses for angles or
arc radii.
463
13. Program Support Functions
13.14 Geometric
X axis
N2
?
135°
50.0 N1
100.0
50.0 40.0
Z axis
464
13. Program Support Functions
13.14 Geometric
N1 G03 R__ ;
X
N2 G01 X__ Z__ A__ ,C__ ;
G01 X__ Z__ R__ ;
Z
N1 G03 R__ ;
X
N2 G01 X__ Z__ A__ ,R__ ;
G01 X__ Z__ ;
Z
X
N1 G01 A__ ;
N2 G02 X__ Z__ R__ ,C__ ;
G01 X__ Z__ ; Z
N1 G01 A__ ; X
N2 G02 X__ Z__ R__ ,R__ ;
G01 X__ Z__ ; Z
465
13. Program Support Functions
13.15 Program parameter input
The parameters set from the setting and display unit can be changed in the machining programs.
The data format used for the data setting is as follows.
Command format
Example of program
466
13. Program Support Functions
13.16 Macro interrupt
A user macro interrupt signal (UIT) is input from the machine to interrupt the program being
currently executed and instead call another program and execute it. This is called the user macro
interrupt function.
Use of this function allows the program to operate flexibly enough to meet varying conditions.
For setting the parameters of this function, refer to the Operating Manual.
Command format
The user macro interrupt function is enabled and disabled by the M96 and M97 commands
programmed to make the user macro interrupt signal (UIT) valid or invalid. That is, if an interrupt
signal (UIT) is input from the machine side in a user macro interrupt enable period from when M96
is issued to when M97 is issued or the NC is reset, a user macro interrupt is caused to execute the
program specified by P__ instead of the one being executed currently.
Another interrupt signal (UIT) is ignored while one user macro interrupt is being in service. It is also
ignored in a user macro interrupt disable state such as after an M97 command is issued or the
system is reset.
M96 and M97 are processed internally as user macro interrupt control M codes.
A user macro interrupt is enabled only during execution of a program. The requirements for the
user macro interrupt are as follows:
(1) An automatic operation mode, memory or tape, or MDI has been selected.
(Note 1) A macro interrupt is disabled in manual operation mode (JOG, STEP, HANDLE, etc.)
467
13. Program Support Functions
13.16 Macro interrupt
Outline of operation
(1) When a user macro interrupt signal (UIT) is input after an M96 Pp1 ; command is issued by the
current program, interrupt program Op1 is executed. When an M99 ; command is issued by
the interrupt program, control returns to the main program.
(2) If M99 Pp2 ; is specified, the blocks from the one next to the interrupted block to the last one
are searched for the block with sequence number Np2 ;. Control thus returns to the block with
sequence number Np2 ; that is found first in the above search.
Current program
Interrupt program
M99 (Pp2) ;
Np2 ;
M97 ;
468
13. Program Support Functions
13.16 Macro interrupt
Interrupt type
[Type 1]
• When an interrupt signal (UIT) is input, the system immediately stops moving the tool and
interrupts dwell, then permits the interrupt program to run.
• If the interrupt program contains a move or miscellaneous function (MSTB) command, the
commands in the interrupted block are lost. After the interrupt program completes, the main
program resumes operation from the block next to the interrupted one.
• If the interrupted program contains no move and miscellaneous (MSTB) commands, it resumes
operation, after completion of the interrupt program, from the point in the block where the
interrupt was caused.
If an interrupt signal (UIT) is input during execution of a miscellaneous function (MSTB) command,
the NC system waits for a completion signal (FIN). The system thus executes a move or
miscellaneous function (MSTB) command in the interrupt program only after input of FIN.
[Type 2]
• When an interrupt signal (UIT) is input, the program completes the commands in the current
block, then transfers control to the interrupt program.
• If the interrupt program contains no move and miscellaneous function (MSTB) commands, the
interrupt program is executed without interrupting execution of the current program.
However, if the interrupt program has not ended even after the execution of the original block is
completed, the system may stop machining temporarily.
469
13. Program Support Functions
13.16 Macro interrupt
[Type 1]
Main program
block (1) block (2) block (3)
Interrupt program
Interrupt program
Interrupt program
470
13. Program Support Functions
13.16 Macro interrupt
Calling method
User macro interrupt is classified into the following two types depending on the way an interrupt
program is called. These two types of interrupt are selected by parameter "#1229 set01/bit0".
a. Subprogram type interrupt
b. Macro type interrupt
Both types of interrupt are included in calculation of the nest level. The subprograms and user
macros called in the interrupt program are also included in calculation of the nest level.
Subprogram The user macro interrupt program is called as a subprogram. As with calling
type interrupt by M98, the local variable level remains unchanged before and after an
interrupt.
Macro type The user macro interrupt program is called as a user macro. As with calling
interrupt by G65, the local variable level changes before and after an interrupt.
No arguments in the main program can be passed to the interrupt program.
A user macro interrupt signal (UIT) is accepted in the following two modes. These two modes are
selected by a parameter "#1112 S_TRG".
a. Status trigger mode
b. Edge trigger mode
Status trigger The user macro interrupt signal (UIT) is accepted as valid when it is ON.
mode If the interrupt signal (UIT) is ON when the user macro interrupt function is
enabled by M96, the interrupt program is activated.
By keeping the interrupt signal (UIT) ON, the interrupt program can be
executed repeatedly.
Edge trigger The user macro interrupt signal (UIT) is accepted as valid at its rising edge,
mode that is, at the instance it turns ON.
This mode is useful to execute an interrupt program once.
ON
OFF
471
13. Program Support Functions
13.16 Macro interrupt
M99 (P__) ;
An M99 command is issued in the interrupt program to return to the main program. Address P is
used to specify the sequence number of the return destination in the main program. The blocks
from the one next to the interrupted block to the last one in the main program are first searched for
the block with sequence number Np2 ;. If it is not found, all the blocks before the interrupted one
are then searched. Control thus returns to the block with sequence number Np2 ; that is found first
in the above search.
(This is equivalent to M99 P__ used after M98 calling.)
If modal information is changed by the interrupt program, it is handled as follows after control
returns from the interrupt program to the main program.
Returning with The change of modal information by the interrupt program is invalidated and
M99 ; the original modal information is not restored.
With interrupt type 1, however, if the interrupt program contains a move or
miscellaneous function (MSTB) command, the original modal information is
not restored.
Returning with The original modal information is updated by the change in the interrupt
M99 P__ ; program even after returning to the main program. This is the same as in
returning with M99 P__ ; from a program called by M98.
Main program
being executed Interrupt program
User macro
interrupt (Modal change)
signal (UIT)
Modal before
interrupt is
restored. M99 (p2) ;
Modal modified
by interrupt
program remains
effective.
472
13. Program Support Functions
13.16 Macro interrupt
Modal information when control passes to the user macro interrupt program can be known by
reading system variables #4401 to #4520.
The unit specified with a command applies.
The above system variables are available only in the user macro interrupt program. If they are used
in other programs, program error (P241) results.
The user macro interrupt is controlled by M96 and M97. However, these commands may have
been used for other operation. To be prepared for such case, these command functions can be
assigned to other M codes.
(This invalidates program compatibility.)
User macro interrupt control with alternate M codes is possible by setting the alternate M code in
parameters "#1110 M96_M" and "#1111 M97_M" and by validating the setting by selecting
parameter "#1109 subs_M".
(M codes 03 to 97 except 30 are available for this purpose.)
If the parameter "#1109 subs_M" used to enable the alternate M codes is not selected, the M96
and M97 codes remain effective for user macro interrupt control.
In either case, the M codes for user macro interrupt control are processed internally and not output
to the outside.
473
13. Program Support Functions
13.16 Macro interrupt
Parameters
Restrictions
(1) If the user macro interrupt program uses system variables #5001 and after (position
information) to read coordinates, the coordinates pre-read in the buffer are used.
(2) If an interrupt is caused during execution of the tool diameter compensation, a sequence
number (M99 P__ ;) must be specified with a command to return from the user macro interrupt
program. If no sequence number is specified, control cannot return to the main program
normally.
474
13. Program Support Functions
13.17 Tool change position return
By specifying the tool change position in a parameter “#8206 tool change” and also specifying a
tool change position return command in a machining program, the tool can be changed at the most
appropriate position.
The axes that are going to return to the tool change position and the order in which the axes begin
to return can be changed by commands.
Command format
475
13. Program Support Functions
13.17 Tool change position return
Detailed description
(1) The following drawing shows an example of operation during a tool change position return
command.
Tool changing
position
X axis (1) G30.1 (3) G30.3
(2) G30.2
Z axis
476
13. Program Support Functions
13.17 Tool change position return
(2) After all necessary tool change position return is completed by a G30.n command, tool change
position return complete signal TCP (X22B) is turned ON. When an axis out of those having
returned to the tool change position by a G30.n command leaves the tool change position, the
TCP signal is turned OFF.
(With a G30.3 command, for example, the TCP signal is turned ON when the Z axis has
reached the tool change position after the X axis did (supposing tool change position return for
additional axes is OFF). The TCP signal is then turned OFF when the X or Z axis leaves the
position. If tool change position return for additional axes is ON with parameter "#1092
Tchg_A", the TCP signal is turned ON when the additional axis or axes have reached the tool
change position after the standard axes did. It is then turned OFF when one of the X, Z, and
additional axes leaves the position.)
[TCP signal output timing chart] (G30.3 command with tool change position return for
additional axes set ON)
(3) Tool compensation data such as tool length offset and tool nose wear compensation are
temporarily canceled by the tool change position return command. The machine moves to the
tool change position set in the parameters, but because the tool compensation amount is
stored in the memory, it moves by the next movement command to a position with the tool
compensation applied.
(4) This command is executed by dividing blocks for every axis. If this command is issued during
single-block operation, therefore, a block stop occurs each time one axis returns to the tool
change position. To make the next axis tool change position return, therefore, a cycle start
needs to be specified.
477
13. Program Support Functions
13.18 ASCII code macro
A macro program can be called out by setting the correspondence of a subprogram (macro
program) preregistered with the parameters to codes, and then commanding the ASCII code in the
machining program.
This function can be used in addition to the G, M, S, T and B miscellaneous command macro call
function.
O0002 ;
O200
:
:
D2000 ;
:
:
:
M30 ;
M99 ;
Parameter
#7401 (ASCII [01] Valid/Invalid) 1 (Valid)
#7402 (ASCII [01] Code) D
#7403 (ASCII [01] Type) 0 (M98 type)
#7404 (ASCII [01] Program No.) 200
#7405 (ASCII [01] Variable) 146
O0003 ;
O3000
:
:
A500 ;
:
:
:
M30 ;
M99 ;
Parameter
#7411 (ASCII [02] Valid/Invalid) 1 (Valid)
#7412 (ASCII [02] Code) A
#7413 (ASCII [02] Type) 0 (G65 type)
#7414 (ASCII [02] Program No.) 3000
#7415 (ASCII [02] Variable) 100 (Not used)
478
13. Program Support Functions
13.18 ASCII code macro
Command format
Detailed description
(1) The command above functions in the same way as that below. The correspondence of
commands is set for each ASCII code with the parameters.
0: M98 P∆∆∆∆ ;
1: G65 P∆∆∆∆ <Argument> ;
2: G66 P∆∆∆∆ <Argument> ;
3: G66.1 P∆∆∆∆ <Argument> ;
When parameters are set for 2 and 3 above, the modal call will be canceled. Thus, command
the cancel command (G67) after commanding the call code or the during the user macro.
(2) The ASCII code for calling the macro with the ASCII codes and the program No. P∆∆∆∆ to be
called are set with the parameters.
Up to two ASCII codes can be registered.
(3) The code section is output to the variables, but the output destination differs according to the
call type and address.
(a) For M98 type
The code section is output to the common variable, and the variable No. is set with the
parameters.
When corresponding to the first address (parameter #7401), the section is output to the
common variable that indicates the first variable No. (parameter #7404).
(b) For G65/G66/G66.1 type
The code section is output to the local variable. The variable No. differs according to the
address, and corresponds to the following table.
479
13. Program Support Functions
13.18 ASCII code macro
Example of program
A program that controls the tailstock with address A and machines a long thin workpiece is shown
below.
Parameter
#7411 (ASCII [02] Valid/Invalid) 1 (Valid)
#7412 (ASCII [02] Code) A
#7413 (ASCII [02] Type) 1 (G65 type)
#7414 (ASCII [02] Program No.) 500
#7415 (ASCII [02] Variable) 100 (Not used)
120 100 Z0
Press with A1
Pull with A0
50
15
X0
M W –15
Machine
coordinate
zero point –50
Tailstock Tailstock A
spindle spindle
200
(Unit: mm)
480
13. Program Support Functions
13.18 ASCII code macro
Restrictions
(1) Calling a macro with an ASCII code from a program macro-called with an ASCII code
A macro cannot be called with an ASCII code from a program macro-called with an ASCII
code.
The other patterns are shown below.
If it is determined that the macro cannot be called, the command will be handled as a normal
command.
Called side
GMSTB
ASCII G65/66/66.1 M98
macro
ASCII × ×
Calling GMSTB macro × ×
side G65/66/66.1
M98
The macro subprogram can be called in up to four levels using simple call (G65) and modal
call (G66/G66.1).
The macro call command's argument is valid only in the called macro level.
Since the macro call nest level is four levels, the argument for each macro call can be used in
the program as a local variable.
(3) Nest level of subprogram call
Counting the main program as 0, up to eight levels of subprograms can be called (M98) from a
subprogram.
The following commands are used for subprogram nesting.
(a) M98
(b) G65 G66 G66.1
(c) G code call Miscellaneous function call (M/S/T/B)
(d) MDI interrupt
(e) Automatic tool length measurement
(f) Multi-step skip function
481
13. Program Support Functions
13.18 ASCII code macro
If "M" is designated for the ASCII code address, the codes basically necessary for that
machine will be overlapped. In this case, commands will be identified with the following priority
using code values.
"S", "T" and "B" will also overlap with the miscellaneous command macro call. However, if
these commands do not correspond to the identification, the ASCII code macro will be
executed.
If the other addresses do not correspond to the ASCII code macro command, they will be
identified as normal commands. If the command to be used overlaps with an ASCII code
macro command, it must be commanded in the program macro-called with the ASCII code.
Note that there are cases when the command will be unconditionally handled as a normal
command, as explained in (5) below.
(5) Conditions for handling address set in ASCII code macro command as normal command
(a) When there is a data setting command (G10) in the same block.
(b) When ASCII code macro call is executed after the G code macro call command in the
same block (also applies for M, S, T, B and ASCII)
Example) When address "D" (G65 type) is set in the ASCII code macro, and M50 is set
in the macro call (G65 type).
M50 D200 ; Execute M code macro with argument (200 set in #7)
482
13. Program Support Functions
13.19 Balance cut
The timing for starting the operation of the system 1 turret and system 2 turret can be synchronized.
Turret
(system 1)
Workpiece
Turret
(system 2)
When machining a relatively thin and long workpiece with a lathe, the workpiece could slack, and
highly accurate machining may not be possible.
In this case, if the cutters are applied simultaneously from both sides of the workpiece and the
workpiece is machined while synchronizing these (balance cut), the slack can be suppressed.
Furthermore, the machining time can be shortened by machining with two cutters.
With this function, the movement of two turrets belonging to different systems can be completely
synchronized, so the following type of machining can be done easily.
Command format
G15 ;
G14 ;
G15 Balance cut command ON (modal)
G14 Balance cut command OFF (modal)
Detailed description
483
13. Program Support Functions
13.19 Balance cut
Example of operation
System 2
(1) (3) (4) (5) (6) (7) ......
Synchronized
section : Synchronizing
484
13. Program Support Functions
13.19 Balance cut
Example of program
An example of a program for machining with a 1-spindle 2-turret CNC lathe while simultaneously
applying the cutters from the top and bottom of a thin long workpiece using balance cut is shown
below.
50
15
X0
-15
-50
+Z
System 2 System 2
+X
G28 XZ ; G28 XZ ;
S100 T0101 ; T0101 ;
G15 ; G15 ;
G00 X15 Z–3 ; G00 X15 Z–3 ;
G01 Z100 F0.2 ; G01 Z100 F0.2 ;
X50 Z120 ; X50 Z120 ;
X52 ; X52 ;
G14 ; G14 ;
G28 XZ ; G28 XZ ;
M30 ; M30 ;
485
13. Program Support Functions
13.19 Balance cut
486
13. Program Support Functions
13.20 Synchronizing operation between systems
CAUTION
When programming a multi-system, carefully observe the movements caused by other
systems' programs.
The multi-axis, multi-system complex control NC system can simultaneously run multiple
machining programs independently. The synchronizing-between-systems function is used in cases
when, at some particular point during operation, the operations of systems 1 and 2 are to be
synchronized or in cases when the operation of only one system is required.
Simultaneous and
independent operation
Simultaneous and
independent operation
! ......; ! ......;
← Synchronized operation
! ......; ! ......;
← Synchronized operation
Simultaneous and
independent operation
% %
487
13. Program Support Functions
13.20 Synchronizing operation between systems
Command format
!Ll ;
l Synchronizing number 1 to 9999
$1 $2
!L1; !L1;
Synchro-
nized
operation
Detailed description
(1) If !L1 is commanded from one system, operation of the first system's program will wait until !L1
is commanded from the other system's program.
When !L1 is commanded, the programs for the two systems will start simultaneously.
Pi1 Pn 1
!L1;
Synchronized
operation !L1;
Pi2 Pn 2
488
13. Program Support Functions
13.20 Synchronizing operation between systems
(2) Program error (P35) occurs when an illegal system number has been issued.
(3) The synchronizing command is normally issued in a single block. However, if a movement
command or M, S or T command is issued in the same block, whether to synchronize after the
movement command or M, S or T command or to execute the movement command or M, S or
T command after synchronization will depend on the parameter (#1093 Wmvfin).
#1093 Wmvfin 0: Synchronize before movement command execution.
1: Synchronize after executing movement command.
(4) If there is no movement command in the same block as the synchronizing command, when the
next block movement starts, synchronization may not be secured between the systems. To
synchronize the systems when movement starts after synchronization, issue the movement
command in the same block as the synchronizing command.
(5) Synchronizing is done only while the system to be synchronized is operating automatically. If
this is not possible, the synchronizing command will be ignored and operation will advance to
the next block.
(6) The L command is the synchronizing identification number. The same numbers are
synchronized but when they are omitted, the numbers are handled as L0.
(7) "SYN" will appear in the operation status section during synchronization. The synchronizing
signal will be output to the PLC I/F.
$1 $2
P11
P21
!L1;
!L1;
P12
P22
!L2; P23
P13
!L2;
P24
489
13. Program Support Functions
13.20 Synchronizing operation between systems
The system can wait for the other system to reach the start point before starting itself.
The synchronization point can be set in the middle of a block.
Command format
!Ll G115 X_ Z_ C_ ;
!Ll Synchronizing command
G115 G command
X_ Z_ C_ Start point (Command axis and workpiece coordinate values for checking
synchronization of other system.)
Detailed description
(1) Designate the start point using the workpiece coordinates of the other system.
(2) The start point check is executed only for the axis designated by G115.
(Example) !L2 G115 X100.;
Once the other system reaches X100., the own system will start. The other axes are not
checked.
(3) The other system starts first when synchronizing is executed.
(4) The own system waits for the other system to move and reach the designated start point, and
then starts.
490
13. Program Support Functions
13.20 Synchronizing operation between systems
(5) When the start point designated by G115 is not on the next block movement path of the other
system, the own system starts once the other system has reached all of the start point axis
coordinates.
例
Example:
X also has passed
Z has passed
(6) The waiting status continues when the G115 command has been duplicated between
systems.
Waiting
Other system !L1 G115
(7) The single block stop function does not apply for the G115 block.
(8) A program error (P32) will occur if an address other than an axis is designated in G115
command block.
491
13. Program Support Functions
13.20 Synchronizing operation between systems
Starting of the other system can be delayed until the own system reaches the designated start point.
The synchronization point can be set in the middle of a block.
Command format
!Ll G116 X_ Z_ C_ ;
!Ll Synchronizing command
G116 G command
X_ Z_ C_ (Command axis and workpiece coordinate values for checking
synchronization of own system.)
Detailed description
(1) Designate the start point using the workpiece coordinates of own system.
(2) The start point check is executed only for the axis designated by G116.
(Example) !L1 G116 X100.;
Once the own system reaches X100., the other system will start. The other axes are not
checked.
(3) The own system starts first when synchronizing is performed.
(4) The other system waits for the own system to move and reach the designated start point, and
then starts.
492
13. Program Support Functions
13.20 Synchronizing operation between systems
(5) When the start point designated by G116 is not on the next block movement path of the own
system, the other system starts once the own system has reached all of the start point axis
coordinates.
例
Example:
X also has passed
Z has passed
(6) The waiting status continues when the G116 command has been duplicated between
systems.
(7) The single block stop function does not apply for the G116 block.
(8) A program error (P32) will occur if an address other than an axis is designated in G116
command block.
493
13. Program Support Functions
13.20 Synchronizing operation between systems
The system synchronization function is commanded with the conventional "!" code, but by using
this expansion function, the systems can be synchronized with the M code commanded in the
machining program.
If the synchronization M code is commanded in either system during automatic operation, the
system will wait for the same M code to be commanded in the other system before executing the
next block.
The synchronization M code is used to control the synchronization of system 1 and system 2.
Whether the synchronization M code can be used is determined with the parameter settings.
Command format
M∗∗∗ ;
∗∗∗ Synchronization M code
The minimum and maximum values of the synchronization M code range are set beforehand in the
parameters.
Detailed description
(1) When the synchronization M code is commanded in the machining program, the two systems
will be synchronized and operation will start in the commanded block. If the synchronization M
code is commanded in either system during automatic operation, the system will wait for the
same M code to be commanded in the other system before executing the next block.
M101 Synchronizing
M101 ; Synchronized
M102 ; operation
Synchronized
M102 ;
operation
494
13. Program Support Functions
13.20 Synchronizing operation between systems
(2) When the synchronization M code has been commanded in one system, and the system is
standing by for synchronization, an alarm will occur if a different M code is commanded in the
other system.
Simultaneous
P11 P21 and independent
M100 ; operation
Different M code
M100 Synchronizing
M101 ; Alarm
Operation stops
P12 P22
(3) The systems are synchronized with the M code following the parameters below.
(a) M code range designation parameter (M code minimum value ≤ M code ≤ M code
maximum value)
# Item Details Setting range
1310 WtMmin Minimum The minimum value of the M code is set. If the 0,
value for setting value is "0", the synchronization M code 100 to 99999999
synchroni- will be ignored.
zation M
code
1311 WtMmax Maximum The maximum value of the M code is set. If the 0,
value for setting value is "0", the synchronization M code 100 to 99999999
synchroni- will be ignored.
zation M
code
System synchronization using the M code is valid when both of the above parameters are
set to a value other than "0". (This function is invalid if either parameter is set to a value
other than "0".)
The synchronization M code cannot be used if the M code maximum value is smaller than
the minimum value.
When the synchronization M code is valid, both the M code and ! code can be used for
synchronization.
495
13. Program Support Functions
13.20 Synchronizing operation between systems
(1) When synchronizing with the M code, always command the M code in an independent block.
(2) When standing by after commanding the synchronization M code in one system, an alarm will
occur if a different M code is commanded in the other system. Operation will stop in both
systems.
(3) The M code in the machining program can be ignored with the synchronization ignore signal.
Operation with a single system is possible without deleting the M code in the machining
program.
(4) When the M code can be used, both the M code and ! code can be used.
(5) While the synchronization M code is valid, if one system is standing by with an M code, an
alarm will occur if there is a ! code synchronization command in the other system.
(6) While the synchronization M code is valid, if one system is standing by with a ! code, an alarm
will occur if there is an M code synchronization command in the other system.
(7) The G115 and G116 commands cannot be used when synchronizing with the M code.
(8) If the M code command numbers are overlapped, the order of priority will be M code macro, M
command synchronous tap, synchronization M code and normal M code.
496
13. Program Support Functions
13.21 2-system simultaneous thread-cutting cycle
The 2-system simultaneous thread-cutting cycle function allows system 1 and system 2 to perform
thread-cutting simultaneously for the same spindle.
Featured in this cycle is the command (G76.1) for simultaneously cutting threads in two places,
which is known as the "2-system simultaneous thread-cutting cycle I".
Command format
Address Meaning
m Number of cutting passes for finishing
Chamfering amount
This sets the chamfering width based on the thread lead 1 across a range
r
from 0.0 to 9.9 with a 2-digit integer with the decimal point omitted. (00 to
P
99)
Tool nose angle (thread angle)
a This selects the angle from 80°, 60°, 55°, 30°, 29° or 0° and commands the
value in two digits.
R d Finishing allowance
Detailed description
(1) The data is set in machining parameters m: #8058, r: #8014, a: #8059 and d: #8057 for each
system.
(2) Issue the command for each system.
497
13. Program Support Functions
13.21 2-system simultaneous thread-cutting cycle
Command format
Detailed description
(1) When G76.1 is issued by system 1 and system 2, synchronized operation is done until the
command is issued to another system. The thread-cutting cycle starts when the commands
are aligned properly.
$1 $2
G00X_ Z_ ;
G76.1… ; G00X_ Z_ ;
G76… ;
498
13. Program Support Functions
13.21 2-system simultaneous thread-cutting cycle
(2) In the G76.1 cycle, G76.1 is issued simultaneously by system 1 and system 2, and the thread
is cut in synchronization at the start and end of thread-cutting.
(3) In one cycle, operation is synchronized at the start and end of the thread-cutting.
Synchronized operation
(4) The same precautions for thread-cutting command (G33), thread-cutting cycle (G78) and
compound thread-cutting cycle (G76) apply to this cycle.
(5) As the threads are cut in two places by the G76.1 command, the various commands do not
need to be the same. Each of them can be issued independently.
(6) Thread cutting controls the Z axis position while tracking the spindle encoder rotation. Thus,
the relative relation of the spindle position detected by the spindle encoder and the Z axis will
change with the following elements.
(a) Z axis feedrate (spindle rotation speed ∗ screw pitch)
(b) Cutting feed acceleration/deceleration time constant
(c) Position loop gain
Thus, when cutting a multi-thread screw, the above conditions must be the same from the start
to end of machining.
499
13. Program Support Functions
13.21 2-system simultaneous thread-cutting cycle
Command format
The meanings of the addresses other than A are the same as the 2-system simultaneous
thread cutting cycle I.
Detailed description
(1) When G76.2 is issued by system 1 and system 2, synchronized operation is done until the
command is issued to another system. The thread-cutting cycle starts when the commands
are aligned properly.
$1 $2
G00X_Z_;
G76.2…;
G00X_Z_;
G76.2…;
500
13. Program Support Functions
13.21 2-system simultaneous thread-cutting cycle
(2) G76.2 assumes the same thread cutting, and deeply cuts in with the cutting amount using
system 1 and system 2 alternately.
a°
d
d× 2
d× n
K
Finishing allowance d
501
13. Program Support Functions
13.21 2-system simultaneous thread-cutting cycle
(3) In one cycle, operation is synchronized at the start and end of the thread-cutting.
Synchronized operation
(4) The same precautions for thread-cutting command (G33), thread-cutting cycle (G78) and
compound thread-cutting cycle (G76) apply to this cycle.
(5) G76.2 is the same thread cutting, so the various parameters, thread section, taper height,
screw thread height, cutting amount and thread lead must be commanded to the same values
for system 1 and system 2.
Note that the start shift angle can be commanded to match the thread cutting state.
(6) Thread cutting controls the Z axis position while tracking the spindle encoder rotation. Thus,
the relative relation of the spindle position detected by the spindle encoder and the Z axis will
change with the following elements.
(a) Z axis feedrate (spindle rotation speed ∗ screw pitch)
(b) Cutting feed acceleration/deceleration time constant
(c) Position loop gain
Thus, with G76.2 which is same thread cutting, the parameters must be set so that the
conditions are the same for system 1 and system 2.
(7) Thread cutting start shift angle command
Example) $1 $2
a°
System 1
502
14. Coordinate System Setting Functions
14.1 Coordinate words and control axes
In the case of a lathe, the axis parallel to the spindle is known as the Z axis and its forward direction
is the direction in which the turret moves away from the spindle stock while the axis at right angle to
the Z axis is the X axis and its forward direction is the direction in which it moves away from the Z
axis, as shown in the figure below.
Tailstock
Spindle stock
Tool +Z
+X
+Y Turret
Coordinate axes and polarities
Since coordinates based on the right hand rule are used with a lathe, the forward direction of the Y
axis in the above figure which is at right angles to the X-Z plane is downward. It should be borne in
mind that an arc on the X-Z plane is expressed as clockwise or counterclockwise as seen from the
forward direction of the Y axis. (Refer to the section on circular interpolation.)
Spindle nose
Machine zero point
G54
Workpiece zero points (G54 ~ G59)
G55
G58
G59
G52
G30
503
14. Coordinate System Setting Functions
14.2 Basic machine, workpiece and local coordinate systems
The basic machine coordinate system is fixed in the machine and it denotes that position which is
determined inherently by the machine.
The workpiece coordinate systems are used for programming and in these systems the reference
point on the workpiece is set as the coordinate zero point.
The local coordinate systems are created on the workpiece coordinate systems and they are
designed to facilitate the programs for parts machining.
Upon completion of the reference point return, the basic machine coordinate system and
workpiece coordinate systems (G54 ~ G59) are automatically set with reference to the parameters.
The basic machine coordinate system is set so that the first reference point is brought to the
position specified by the parameter from the basic machine coordinate zero point (machine zero
point).
Basic machine
coordinate Machine zero point
system +Z
Hypothetical
machine Local
coordinate coordinate
system system
(G92 shift) X1 (G52)
+X Z1
The local coordinate systems (G52) are valid on the coordinate systems designated by workpiece
coordinate systems 1 to 6.
The hypothetical machine coordinate system can be set on the basic machine coordinate system
using a G92 command. At this time, the workpiece coordinate system 1 to 6 is also simultaneously
shifted.
504
14. Coordinate System Setting Functions
14.3 Machine zero point and 2nd reference point (Zero point)
14.3 Machine zero point and 2nd reference point (Zero point)
Function and purpose
The machine zero point serves as the reference for the basic machine coordinate system. It is
inherent to the machine and is determined by the reference (zero) point return.
The 2nd reference (zero) point relates to the position of the coordinates which have been set
beforehand by parameter from the basic machine coordinate system zero point.
z
Local coordinate system
x (G52)
505
14. Coordinate System Setting Functions
14.4 Automatic coordinate system setting
When the tool has arrived at the reference point by dog-type reference point return after the CNC's
power has been turned ON, this function create the various coordinate systems in accordance with
the parameter values input beforehand from the setting and display unit.
The actual machining program is programmed over the coordinate systems which have been set
above.
x2 x1
Local coordinate system
+X z2 (G52)
z1
Detailed description
CAUTION
If the workpiece coordinate offset amount is changed during automatic operation
(including single block operation), the changes will be valid from the next block of the
command several blocks later.
506
14. Coordinate System Setting Functions
14.5 Machine coordinate system selection
The tool is moved to a command position in the basic machine coordinate system, using a G53
command and feed mode command (G01 or G00) and the coordinate command following them.
Command format
G53 G00 Xx Zz αα ;
G53 G00 Uu Ww ββ ;
αα Additional axis
ββ Incremental command of the additional axis
Detailed description
(1) When the power is turned ON, the basic machine coordinate system is automatically set as
referenced to the reference (zero) point return position, which is determined by the automatic
or manual reference (zero) point return.
(2) The basic machine coordinate system is not changed by the G92 command.
(3) The G53 command is valid only in the block in which it has been designated.
(4) When an incremental value is issued (U, W, β), the axis will move with the incremental value
within the selected coordinate system.
(5) The 1st reference point coordinates denote the distance from the basic machine coordinate
system zero point to the reference (zero) point return position.
(–500, 500)
507
14. Coordinate System Setting Functions
14.6 Coordinate system setting
This function places the tool at the desired position, and the coordinate system is set by assigning
the coordinate system setting command G92 at that position.
This system can be set as desired though normally the X and Y axes are set so that the workpiece
center serves as the zero point and the Z axis is set so that the workpiece end serves as the zero
point.
Basic machine
coordinate Machine zero point +Z
system
Command format
Detailed description
(1) The basic machine coordinate system is shifted by the G92 command, the hypothetical
machine coordinate system is created, and at the same time all workpiece coordinate systems
1 to 6 are also shifted.
(2) When G92 and S or Q are assigned, the spindle clamp rotation speed is set. (Refer to the
section on setting the spindle clamp rotation speed.)
508
14. Coordinate System Setting Functions
14.7 Reference point (Zero point) return
(1) After the commanded axes have been positioned by G0, they are returned respectively at
rapid traverse to the 1st reference (zero) point when G28 is commanded.
(2) By commanding G29, the axes are first positioned independently at high speed to the G28 or
G30 intermediate point and then positioned by G0 at the commanded position.
Start Intermediate
point point
G30
(x1, z1, α1)
G28
(0, 0)
Command format
G28 Xx1 Zz1 αα1 ; Additional axis Automatic reference point return
G29 Xx2 Zz2 αα2 ; Additional axis Start position return
509
14. Coordinate System Setting Functions
14.7 Reference point (Zero point) return
Detailed description
G00 Xx1 Zz1 αα1 ; The rapid traverse (non-interpolation type) independent
G00 Xx2 Zz2 αα2 ; for each axis takes place.
In this case, x1, z1 and α1 are the coordinate value of the G28 or G30 intermediate point.
(5) Program error (P430) results when G29 is executed when automatic reference (zero) point
return (G28) is not performed after the power has been turned ON.
(6) The intermediate point coordinate value (x1, z1, α1) of the positioning point are assigned by
absolute/incremental value commands.
(7) G29 is valid for either G28 or G30 but the commanded axes are positioned after a return has
been made to the latest intermediate point.
(8) The tool offset will be temporarily canceled during reference point return unless it is already
canceled, and the intermediate point will be the offset position.
(9) The intermediate point can also be ignored by parameter "#1091 Mpoint" setting.
(10) Control from the intermediate point to the reference (zero) point is ignored for reference
(zero) point return in the machine lock status. The next block is executed when the
commanded axis survives as far as the intermediate point.
(11) Mirror image is valid from the start point to the intermediate point during reference (zero)
point return in the mirror image mode and the tool will move in the opposite direction to that of
the command. However, mirror image is ignored from the intermediate point to the reference
(zero) point and the tool will move to the reference (zero) point.
510
14. Coordinate System Setting Functions
14.7 Reference point (Zero point) return
Example of program
R
Reference (zero)
point position (#1)
1st operation after
power has been
turned ON G0 Xx3 Zz3 ;
2nd and
subsequent Intermediate point
operations
(x1, z1)
G0Xx1 Zz1;
511
14. Coordinate System Setting Functions
14.7 Reference point (Zero point) return
Present
position
G0 Xx2 Zz2 ;
(x2, z2)
512
14. Coordinate System Setting Functions
14.8 2nd, 3rd, and 4th reference point (Zero point) return
14.8 2nd, 3rd, and 4th reference point (Zero point) return; G30
Function and purpose
The tool can return to the 2nd, 3rd, or 4th reference (zero) point by specifying G30 P2 (P3 or P4).
R#2
Reference
point
G30P
G28 G28 G29
Intermediate
Start point
point G30 (x1, z1, α1)
G30P3
G30P4
R#3
R#4
G29
3rd reference
point
4th reference point
Command format
513
14. Coordinate System Setting Functions
14.8 2nd, 3rd, and 4th reference point (Zero point) return
Detailed description
(1) The 2nd, 3rd, or 4th reference (zero) point return is specified by P2, P3, or P4. A command
without P or with P0, P1, P5 or a greater P number is ignored, returning the tool to the 2nd
reference (zero) point.
(2) In the 2nd, 3rd, or 4th reference (zero) point return mode, as in the 1st reference (zero) point
return mode, the tool returns to the 2nd, 3rd, or 4th reference (zero) point via the intermediate
point specified by G30.
(3) The 2nd, 3rd, and 4th reference (zero) point coordinates refer to the positions specific to the
machine, and these can be checked with the setting and display unit.
(4) If G29 is specified after completion of returning to the 2nd, 3rd, and 4th reference (zero) points,
the intermediate position used last is used as the intermediate position for returning by G29.
–Z R#1
G29Xx2Zz2;
R#2
(x2, z2)
+X
2nd reference (zero) point
(5) With reference (zero) point return on a plane during compensation, the tool moves without tool
nose radius compensation (zero compensation) from the intermediate point as far as the
reference (zero) point. With a subsequent G29 command, the tool move without tool nose
radius compensation from the reference (zero) point to the intermediate point and it move with
such compensation until the G29 command from the intermediate point.
–Z R#2
(x1, z1)
+X
G29Xx2Zz2;
(x2, z2)
514
14. Coordinate System Setting Functions
14.8 2nd, 3rd, and 4th reference point (Zero point) return
(6) The tool length offset amount for the axis involved is canceled temporarily after the 2nd, 3rd
and 4th reference (zero) point return.
(7) With the 2nd, 3rd and 4th reference (zero) point return in the machine lock status, control from
the intermediate point to the reference (zero) point will be ignored. When the designated axis
reaches as far as the intermediate point, the next block will be executed.
(8) With the 2nd, 3rd and 4th reference (zero) point return in the mirror image mode mirror image
will be valid from the start point to the intermediate point and the tool will move in the opposite
direction to that of the command. However, mirror image is ignored from the intermediate point
to the reference (zero) point and the tool moves to the reference (zero) point.
–Z R#2
X-axis
mirror image +X
G30P2Xx1Zz1;
No mirror image
515
14. Coordinate System Setting Functions
14.9 Simple zero point return
By setting the parameter (#1222 aux06/bit7), the G28, G29 and G30 positioning operations can be
simplified and the time shortened.
The time is shortened by approx. several ten ms.
When this function is validated, the positioning accuracy may drop.
Do not use this function when using an inclined axis.
-1000
-1000
500
G0 movement G0 movement
Improvement
0
function valid
Intermediate Zero point
-500 point movement return
-1000
516
14. Coordinate System Setting Functions
14.9 Simple zero point return
500
G0 movement G0 movement
Improvement
0 function invalid
-500 Zero point return
-1000
500 G0 movement
G0 movement
Improvement
0 function valid
Zero point return
-500
-1000
-1000
-1000
517
14. Coordinate System Setting Functions
14.9 Simple zero point return
Accuracy
G0 G0
(30, –30) (30, –30)
(30, 30) (30, 30)
G0 G0
G28 G28
G0 G0
(30, –30) (30, –30)
(30, 30) (30, 30)
518
14. Coordinate System Setting Functions
14.9 Simple zero point return
G0 G0
(30, –30) (30, –30)
(30, 30) (30, 30)
G0 G0
G28 G28 The accuracy
drops.
519
14. Coordinate 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 traverse command, cutting
feed command, and movement command to the intermediate point before G28 may drop.
If the rapid traverse 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.
520
14. Coordinate System Setting Functions
14.10 Reference point check
This command first positions the tool at the position assigned by the program and then, if that
positioning point is the 1st 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 1st reference point and return to the 1st reference
point, it is possible to check whether the tool has returned to the reference point after the program
has been run.
Command format
Detailed description
(1) If the P command has been omitted, the 1st 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.
(3) An alarm will occur if the reference point is not reached after the command is completed.
521
14. Coordinate System Setting Functions
14.11 Workpiece coordinate system setting and offset
14.11 Workpiece coordinate system setting and offset; G54 ~ G59 (G54.1)
Function and purpose
(1) The workpiece 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 workpiece coordinate system.
There are 6 workpiece coordinate systems which are used by the programmer for
programming. (G54 ~ G59)
In addition to the six sets of workpiece coordinate systems between G54 and G59, there are
48 additional workpiece coordinate system sets. (The 48 sets are options.)
(3) Among the workpiece coordinate systems currently selected by these commands, any
workpiece 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
nose R, tool length and tool position offset.)
(4) An hypothetical 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 nose radius, tool length and tool position offset.) (G54 ~ G92)
Command format
522
14. Coordinate System Setting Functions
14.11 Workpiece coordinate system setting and offset
Detailed description
(1) With any of the G54 to G59 commands, the nose radius offset amounts for the commanded
axes will not be canceled even if workpiece coordinate system selection is commanded.
(2) The G54 workpiece coordinate system is selected when the power is turned ON.
(3) Commands G54 to G59 are modal commands (group 12).
(4) The coordinate system will move with G92 in a workpiece coordinate system.
(5) The offset setting in a workpiece coordinate system denotes the distance from the basic
machine coordinate system zero point.
Workpiece
Workpiece Workpiece Workpiece coordinate Z3
X2 Z2 coordinate coordinate X3
coordinate system 6 (G59)
system 1 (G54) system 2 (G55) system 5 (G58)
Hypothetical
machine Local
coordinate coordinate
system (shifted X1 system
by G92) (G52)
+X Z1
(6) The offset settings of workpiece coordinate systems can be changed any number of times.
(They can also be changed by G10 L2 Pp1 Xx1 Zz1.)
523
14. Coordinate System Setting Functions
14.11 Workpiece coordinate system setting and offset
(7) A new workpiece coordinate system 1 is set by issuing the G92 command in the G54
(workpiece coordinate system 1) mode. At the same time, the other workpiece coordinate
systems 2 to 6 (G55 ~ G59) will move in parallel and new workpiece coordinate systems 2 to 6
will be set.
(8) A hypothetical machine coordinate system is formed at the position which deviates from the
new workpiece reference (zero) point by an amount equivalent to the workpiece coordinate
system offset amount.
R#1
Reference (zero) point return
–Z M position
(9) By setting the hypothetical machine coordinate system, the new workpiece coordinate system
will be set at a position which deviates from that hypothetical machine coordinate system by an
amount equivalent to the workpiece coordinate system offset amount.
(10) When the first automatic (G28) or manual reference (zero) point return is completed after the
power has been turned ON, the basic machine coordinate system and workpiece coordinate
systems are set automatically in accordance with the parameter settings.
(11) If G54 X– ; 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.
524
14. Coordinate System Setting Functions
14.11 Workpiece 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 1st axis to 1st axis to 1st axis to
nth axis nth axis nth axis nth axis
P1 #7001 to #700n P25 #7481 to #748n P49 #7961 to #796n P73 #8441 to #844n
P2 #7021 to #702n P26 #7501 to #750n P50 #7981 to #798n P74 #8461 to #846n
P3 #7041 to #704n P27 #7521 to #752n P51 #8001 to #800n P75 #8481 to #848n
P4 #7061 to #706n P28 #7541 to #754n P52 #8021 to #802n P76 #8501 to #850n
P5 #7081 to #708n P29 #7561 to #756n P53 #8041 to #804n P77 #8521 to #852n
P6 #7101 to #710n P30 #7581 to #758n P54 #8061 to #806n P78 #8541 to #854n
P7 #7121 to #712n P31 #7601 to #760n P55 #8081 to #808n P79 #8561 to #856n
P8 #7141 to #714n P32 #7621 to #762n P56 #8101 to #810n P80 #8581 to #858n
P9 #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.
525
14. Coordinate System Setting Functions
14.11 Workpiece coordinate system setting and offset
Example of program
(Example 1)
(1) G28 X0 Z0 ;
(2) G53 X–500 Z–1000 ; Reference (zero) point
(3) G53 X0 Z0 ; return position (#1)
X
R#1
(Unit: mm)
When the 1st reference point coordinate is zero, the basic machine coordinate system zero point
and reference (zero) point return position (#1) will coincide.
(Example 2)
(1) G28 X0 Z0 ;
(2) G00 G53 X0 Z0 ;
(3) G54 X−500 Z −500 ; (1)
(4) G01 W−500 F100 ; Present position
(5) U−500 ; (2)
(6) W+500 ; M
(G54) –1000 –500
(7) U+500 ; (3) –500
(8) G00 G55 X0 Z0 ; W2
(G55) (9) (8) W1
(9) G01 Z−500 F200 ; – –1000
(10) X−500 Z0 ; (5) (4) (7) 500
(11) G28 X0 Z0 ; (10) (11) – –1500
(6) 1000
526
14. Coordinate System Setting Functions
14.11 Workpiece coordinate system setting and offset
(Example 3) When workpiece coordinate system G54 has deviated (−500, −500) in Example 2 (It
is assumed that (3) to (10) in Example 2 have been entered in subprogram O1111.)
(1) G28 X0 Z0 ;
(2) G00 G53 X0 Z0 ; (Not required when there is no basic machine
coordinate system offset.)
(3) G54 X–500 Z–500 ; Amount by which workpiece coordinate system
deviates
(4) G92 X0 Z0 ; New workpiece coordinate system is set.
(5) M98 P1111 ;
W2 –X
(G54)
–X –X
(G55) (G54')
–X (G55')
–X
(Note) The workpiece coordinate system will deviate each time steps (3) to (5) are repeated. The
reference point return (G28) command should therefore be issued upon completion of the
program.
CAUTION
If the workpiece coordinate system offset amount is changed during single block stop,
the changes will be valid from the next block.
527
14. Coordinate System Setting Functions
14.12 Local coordinate system setting
The local coordinate systems can be set independently on the G54 ~ G59 workpiece 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
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 workpiece coordinate systems (G54 ~ G59).
(2) The local coordinate system offset is cleared by the reference point (zero point) return or
dog-type manual reference (zero) point return after the power is turned ON.
(3) The local coordinate system is canceled by (G54 ~ G59) G52 X0 Z0 ;.
(4) Coordinate commands in the absolute value cause the tool to move to the local coordinate
system position.
External workpiece 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.
528
14. Coordinate System Setting Functions
14.13 Workpiece coordinate system preset
(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
529
14. Coordinate 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.
530
14. Coordinate System Setting Functions
14.13 Workpiece coordinate system preset
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
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.
Workpiece
Y coordinate x Y
after preset
Present position Present position
Preset
Actual
operation Program command Workpiece
coordinate y
after preset
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.
531
14. Coordinate System Setting Functions
14.13 Workpiece coordinate system preset
Y Y
Local coordinates x Workpiece
coordinate x
Present position after preset Present position
Preset
Local
coordinates y
L1
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.
Y Y
Workpiece
Workpiece coordinate x
coordinates x Present position after preset Present position
Preset
Workpiece
W1’ coordinates y
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.
532
14. Coordinate 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.
533
15. Protection Function
15.1 Chuck barrier/tailstock barrier
By limiting the tool nose movement range, the chuck barrier and tailstock barrier prevent collision
with the chuck and tailstock due to programming errors. If movement is commanded which
exceeds the region set in the parameters, the tool will automatically stop at the barrier boundary.
X axis
P7
P1
P3 P2
P4
P5
P6
Z axis
Command format
534
15. Protection Function
15.1 Chuck barrier/tailstock barrier
Detailed description
(1) An alarm will appear if the machine stops because it was about to exceed the set region.
Reset to cancel this alarm.
(2) This function is also valid during machine lock.
(3) This function is validated when all axes in which chuck barrier and tailstock barrier are set have
finished their reference point returns.
(4) When there is a stored stroke check function, and the stored stroke limit region is set, the
chuck barrier/tailstock barrier function is validated simultaneously with the stored stroke check
function.
(5) A detailed barrier can be set on the left and right by using the PLC external signal.
P1 P1
P4 P2 P4
P2 P3 P5
P5
P3 P6 P6
Type 1 Type 2
(a) Three points can be input as parameters for both the chuck barrier and tailstock barrier. Set in
the machine coordinate system.
Points P1, P2 and P3 are for the chuck barrier. Points P4, P5 and P6 are for the tailstock
barrier.
(b) The barrier region should be a symmetric shape regarding the Z axis. When the X axis
coordinates of barrier point P_ are a negative value, reverse the sign to the positive side, then
convert and check.
The absolute value of each barrier point's X axis coordinates must be set as follows.
P1 ≥ P2 ≥ P3, P4 ≥ P5 ≥ P6
(Note that the Z axis coordinates do not have to follow this setting.)
535
15. Protection Function
15.1 Chuck barrier/tailstock barrier
P1 ≥ P2 ≥ P3 P4 ≥ P5 ≥ P6
P7 ≥ P8 P9 ≥ P10
If the P8 Z axis coordinate must be less than P1 to P3, and the P10 Z axis coordinate must be
more than P4 to P6.
P7 P1 P4 P9 P7 P1 P4 P9
P2 P5 P2 P5
P8 P3 P6 P10 P8 P3 P6 P10
P0 P0
536
15. Protection Function
15.1 Chuck barrier/tailstock barrier
If a spindle section is not to be set in the manner of the conventional barrier, set the P3, P7
and P8 values to the same values, and the P6, P9 and P10 values to the same values.
The barrier range will be as shown below in this case.
i) For external claw ii) For internal claw
P1 P4 P1 P4
P2 P5 P2 P5
P3,P7,P8 P6,P9,P10 P3,P7,P8 P6,P9,P10
P0 P0
P1 P4
P2 P5
P3 P6
P8 P10
P0
537
15. Protection Function
15.1 Chuck barrier/tailstock barrier
Restrictions
(1) There is only one checkpoint from the tool regarding the chuck barrier/tailstock barrier.
Therefore, the following cautions must be observed.
In the following examples, when the barrier points are set to be checked by the hypothetical
tool nose point and the tool moves in the direction of the arrow in the drawing, the following
situation may occur.
In Example 1, there is a checkpoint in the range "a", so the tool will automatically stop at the
barrier boundary. However, in Example 2 there is a checkpoint in range "b", so the chuck and
tool may collide in range "a".
(Example 1) (Example 2)
(a) (a)
(b)
To avoid this, Example 3 is given. In this example, if the barrier points P1, P2 and P3 are set
and the checkpoint is set in range "c", the tool can be stopped at the barrier boundary.
(Example 3)
P1
(c)
P3
P2
(2) When the tool enters the barrier region and an alarm occurs, the tool may move in the
opposite direction from which it came, once the alarm is canceled by resetting.
(3) There is no barrier region for axes without a reference point return function. Thus, there is no
barrier alarm for that axis.
(4) When the tool enters a canceled barrier region, and that barrier is then validated, an alarm will
result immediately if the tool is moved.
If the alarm is canceled with reset in this manner, invalidate the barrier (G23) before escaping
or change the value set for each barrier point.
(5) The soft limit is valid even if the barrier is invalid (G23).
538
15. Protection Function
15.2 Stored stroke limit
Three tool entry prohibited ranges can be set with stored stroke limit I, stored stroke limit II and
stored stroke limit IB. These areas are set with parameters.
Command format
With the stored stroke limit II function, the prohibited range (parameters) can be changed and this
function can be turned ON and OFF with the program commands.
G22 X__ Z__ C__ I__ J__ K__ ;
G22 Stored stroke limit II function parameter change
Stored stroke limit II function ON (all axes)
G23 Stored stroke limit II function OFF (all axes)
X, Z, C (1st to 3rd axis name) Stored stroke limit + side designation
I, J, K (Plane selection axis name) Stored stroke limit – side designation
Detailed description
A (X, Z) A (X, Z)
Prohibited
Prohibited range Machine range Machine
coordinate coordinate
system system
B (I, K) B (I, K)
539
15. Protection Function
15.2 Stored stroke limit
Precautions
(1) If the maximum value and minimum value of the stored stroke limit's prohibited range are set to
the same value, the following will occur.
(a) When the maximum value and minimum value are set to 0, if the outside is the prohibited
range, the entire range will be prohibited. If the inside is the prohibited range, the entire
range will be the moveable range.
(b) If data other than 0 is set for the maximum value and minimum value, the entire range will
be the moveable range.
(2) The settings (G22, G23) with the stored stroke limit II program command are valid at the G
code system 6 and 7 (cmdtyp = 7, 8).
(3) G22 and G23 are unmodal (group 0), and are valid only in the commanded block.
540
16. Measurement Support Functions
16.1 Automatic tool length measurement
These functions issue the command values from the measuring start position as far as the
measurement time, 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.
Command format
G37 α_ R_ D_ F_ ;
α Measuring axis address and coordinates of measurement position
......... X, Z
R This commands the distance between the measurement position and
point where the movement is to start at the measuring speed (Radius
value fixed, incremental value)
D This commands the range within which the tool is to stop. (Radius value
fixed, incremental value)
F This commands the measuring speed.
When R_, D_ or F_ is omitted, the value set in the parameter is used
instead.
<Parameter> ("TLM" on machining parameter screen)
• #8004 Measuring feedrate (Fp) : 0 ~ 60000 (mm/min)
• #8005 Deceleration range r : 0 ~ 99999.999 (mm)
• #8006 Measurement range d : 0 ~ 99999.999 (mm)
541
16. Measurement Support Functions
16.1 Automatic tool length measurement
Detailed description
Measurement
allowable range
D(d) D(d)
F(Fp)
Distance R(r)
Offset amount
(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) During the synchronous feed mode, the axis will move at the synchronous feedrate
[mm/rev].
(5) An updated offset amount is valid unless it is assigned from the following T command of the
G37 command.
(6) Excluding the corresponding values at the PLC side, the delay and fluctuations in the sensor
signal processing range from 0 to 0.2ms.
As a result, the measuring error shown below is caused.
Maximum measuring error [mm] = Measuring speed [mm/min] × 1/60 × 0.2 [ms]/1000
(7) The machine position coordinates at that point in time are ready by sensor signal detection,
and the machine will overtravel and stop at a position equivalent to the servo droop.
Maximum overtravel [mm] = Measuring speed [mm/min] × 1/60 × 1/Position loop gain [1/s]
The standard position loop gain is 33 [1/s].
542
16. Measurement Support Functions
16.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 T code is commanded in the G37 block. If the
low-order digit or two digits is 0, the (4) error will occur.
(4) Program error (P606) results when T code is not commanded prior to the G37 block. When
the low-order digit or two digits is 0, the program error (P606) will occur even if T is
commanded.
(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. If the sensor signal stays ON during operation 3 in the above example, it will be judged
as a normal measurement even when the (b) region is not present.
(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) When the measurement command distance < measurement allowable range, it becomes the
measurement allowable range for all axes.
543
16. Measurement Support Functions
16.1 Automatic tool length measurement
(11) When the measurement command distance < measurement speed movement distance, all
axes move at the measurement speed.
(12) When the measurement allowable range > measurement speed movement distance, the
axis moves in the measurement allowable range at the measurement speed.
(13) Always cancel nose R compensation before commanding G37.
(14) Calculate the tool length offset amount without regard for the nose R value and tool nose
point No., even if the nose R compensation option is attached.
To set the tool nose point No. to 0, subtract the nose R value from the measured tool length
offset amount and set.
When the tool nose point No. (tool nose shape) is 5, 6, 7, or 8, measure the tool length at the
tool tip.
Z axis tool length offset amount with Measured Z axis tool length
nose R value subtracted Tip of tool nose
offset amount
Measured Z axis tool length offset amount
544
16. Measurement Support Functions
16.2 Skip function
When the skip signal 1 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
Detailed description
(1) If Ff is commanded as the feedrate, command speed f will apply; if it not commanded, 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.
(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 signal 1 is input during G31 command start, the G31 command will be completed
immediately.
When a skip signal 1 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 nose R 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) If only the Z axis is commanded when the machine lock is ON or the Z axis cancel switch is
ON, the skip signal will be ignored and execution will continue as far as the end of the
block.
545
16. Measurement Support Functions
16.2 Skip function
Execution of G31
(Example 2) When the next block is a one axis movement command with absolute value
G31 Z1000 F100 ;
G01 X1000 ;
(Example 3) When the next block is a two axes movement command with absolute value
G31 Z1000 F100 ;
G01 X1000 Z2000 ;
546
16. Measurement Support Functions
16.2 Skip function
As the skip signal inputting coordinate positions have been stored in the system variables #5061
(1st axis) ~ #506n (n-th axis), it is possible to use them with user macro.
~
G00 X–100. ;
G31 X–200. F60 ; Skip command
#101 = #5061 Skip signal input coordinate values (workpiece
coordinate system) are readout to #101.
~
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. The coasting amount can be
calculated from the following formula.
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 from when skip signal is detected, PC is passed, and
control unit is reached.)
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.
Time (S)
t1±t2 Tp
547
16. Measurement Support Functions
16.2 Skip function
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
Coasting amount δ (mm) Max. value
Average value
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)
548
16. Measurement Support Functions
16.2 Skip function
+1
0
60 Feedrate (mm/min)
-1
Measurement value comes
within shaded section.
Readout error of skip input coordinates
549
16. Measurement Support Functions
16.2 Skip function
~
G31 X100. F100 ; Skip command
G04 ; Machine stop check
#101 = #5061 ; Skip signal input coordinate readout
#102 = #110∗#111/60 ; Coasting amount based on response delay time
#105 = #101–#102 ; Skip signal input coordinates
~
550
16. Measurement Support Functions
16.3 Multi-stage skip function
The setting of combinations of skip signals to be input enables skipping under various conditions.
The actual skip operation is the same as with G31.
The G commands which can specify skipping are G31.1, G31.2, G31.3, and G04, and the
correspondence between the G commands and skip signals can be set by parameters.
Command format
G31.1 Xx Zz αα Ff ;
Xx 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
(5) Feedrate G31.1 set with the parameter corresponds to “#1176 skip1f”, G31.2 corresponds to
“#1178 skip2f”, and G31.3 corresponds to “#1180 skip3f”.
(5) A command is skipped if it meets the specified skip signal condition.
(5) The G31.n and G04 commands work the same as the G31 command for other than (1) and
(2) above.
(5) The ederates 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.
551
16. Measurement Support Functions
16.3 Multi-stage skip function
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
N10 G31.1 X200.0 ;
N20 G31.2 X40.0 ;
N30 G31.3 X1.0 ;
f
(f1) Operation N10
Measurement
distance
Skip speed
(f2) N20
(f3) N30
(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.
552
16. Measurement Support Functions
16.4 Multi-stage skip function 2
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-stage 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 according to the earlier skip signal if the input skip signals are different. The
skip operation is the same as with a normal skip command (G31 without P command).
X1 X1
Skip signal 1 Skip signal 1
System 1
System 1
Z Z
System 2
System 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 speed dwelling,
the remaining speed 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 command
Ff Feedrate (mm/min)
553
16. Measurement Support Functions
16.4 Multi-stage 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 command p. p can range from 1 to 127. If p is
specified outside the range, program error (P35) occurs.
Skip signal
Valid skip signals
command
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 ;
554
16. Measurement Support Functions
16.4 Multi-stage skip function 2
(4) If skip signal command Pp is not specified, the skip condition specified by the G31 command
works. If speed command Ff is not specified, the skip speed specified by the G31 command
parameter works.
Table 2 Relations between skip and multi-stage skip
Skip specifications × {
Condition Speed Condition Speed
G31 X100 ;
Program error (P601) Skip 1 Parameter
(Without P and F)
G31 X100 P5 ;
Program error (P602) Command value Parameter
(Without F)
G31 X100 F100 ;
Program error (P601) Skip 1 Command value
(Without P)
G31 X100 P5 F100 ;
Program error (P602) Command value Command 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 command P
is given priority and axis address P is ignored.
(Example) G31 P500. F100 ;
(6) Those items other than (1) to (5) are the same with the ordinary skip function (G31 without
P).
555
16. Measurement Support Functions
16.5 Speed change skip
When the skip signal is detected during linear interpolation by the skip command (G31), the
feedrate is changed.
Command format
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.
556
16. Measurement Support Functions
16.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
(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
557
16. Measurement Support Functions
16.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
558
16. Measurement Support Functions
16.6 Programmable current limitation
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%
(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".
559
APPENDIXES
Appendix 1. Program Parameter Input N No. Correspondence Table
A-1
Appendix 1. Program Parameter Input N No. Correspondence Table
A-2
Appendix 1. Program Parameter Input N No. Correspondence Table
(Note) Convert the 0x00 to 0xFF data into a decimal before using.
A-3
Appendix 2. Program Error
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”).
A-4
Appendix 2. Program Error
A-5
Appendix 2. Program Error
A-6
Appendix 2. Program Error
A-7
Appendix 2. Program Error
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.
A-8
Appendix 2. Program Error
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
A-9
Appendix 2. Program Error
A - 10
Appendix 2. Program Error
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.
A - 11
Appendix 2. Program Error
A - 12
Appendix 2. Program Error
A - 13
Appendix 2. Program Error
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.
A - 14
Appendix 2. Program Error
A - 15
Appendix 2. Program Error
A - 16
Appendix 2. Program Error
A - 17
Appendix 2. Program Error
A - 18
Appendix 2. Program Error
A - 19
Appendix 2. Program Error
A - 20
Revision History
Sept. 2001 BNP-B2181B • 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.
Apr. 2002 BNP-B2181C • Revisions to comply with M60S system software version B0
• Miswrite is corrected.
Mar. 2003 BNP-B2181D • Revisions to comply with M60S system software version B3
May 2004 BNP-B2181E • Revisions to comply with M60S system software version C0 and 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.